Compare commits

..

2 Commits

Author SHA1 Message Date
d3d8f89d53 chore: bump version to 0.0.55 2023-02-10 05:34:10 +01:00
3d8aee09c3 build: bump patcher version 2023-02-10 05:33:50 +01:00
287 changed files with 12302 additions and 29353 deletions

3
.env Normal file
View File

@ -0,0 +1,3 @@
sentryDSN=
apiKey=
appId=

120
.github/ISSUE_TEMPLATE/bug-issue.yml vendored Normal file
View File

@ -0,0 +1,120 @@
name: 🐞 Bug report
description: Report a very clearly broken issue.
title: 'bug: <title>'
labels: [bug]
body:
- type: markdown
attributes:
value: |
# ReVanced Manager bug report
Important to note that your issue may have already been reported before. Please check for existing issues [here](https://github.com/revanced/revanced-manager/labels/bug).
- type: dropdown
attributes:
label: Type
options:
- Error while running the manager
- Error at runtime
- Cosmetic
- Other
validations:
required: true
- type: textarea
attributes:
label: Bug description
description: How did you find the bug? Any additional details that might help?
validations:
required: true
- type: textarea
attributes:
label: Steps to reproduce
description: Add the steps to reproduce this bug including your environment.
placeholder: Step 1. Download some files. Step 2. ...
validations:
required: true
- type: textarea
attributes:
label: Android version
description: Android version used.
validations:
required: true
- type: textarea
attributes:
label: Manager version
description: Manager version used.
validations:
required: true
- type: textarea
attributes:
label: Target package name
description: App you tried to patch.
validations:
required: true
- type: textarea
attributes:
label: Target package version.
description: Version of the app you tried to patch.
validations:
required: true
- type: dropdown
attributes:
label: Installation type
options:
- Non-root
- Root
validations:
required: true
- type: textarea
attributes:
label: Patches selected.
description: Patches you selected for the app.
validations:
required: true
- type: textarea
attributes:
label: Device logs (exported using Manager settings).
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: textarea
attributes:
label: Installer logs (exported using Installer menu option) [unneeded if issue is not during patching].
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: false
- type: textarea
attributes:
label: Screenshots or videos
description: Add screenshots or videos that show the bug here.
placeholder: Drag and drop the screenshots/videos into this box.
validations:
required: false
- type: textarea
attributes:
label: Solution
description: If applicable, add a possible solution.
validations:
required: false
- type: textarea
attributes:
label: Additional context
description: Add additional context here.
validations:
required: false
- type: checkboxes
id: acknowledgements
attributes:
label: Acknowledgements
description: Your issue will be closed if you haven't done these steps.
options:
- label: I have searched the existing issues and this is a new and no duplicate or related to another open issue.
required: true
- label: I have written a short but informative title.
required: true
- label: I filled out all of the requested information in this issue properly.
required: true
- label: The issue is related solely to the ReVanced Manager and not related to patching errors or patches
required: true

View File

@ -1,126 +0,0 @@
name: 🐞 Bug report
description: Report a bug or an issue.
title: "bug: "
labels: ["Bug report"]
body:
- type: markdown
attributes:
value: |
<p align="center">
<picture>
<source
width="256px"
media="(prefers-color-scheme: dark)"
srcset="https://raw.githubusercontent.com/revanced/revanced-manager/main/assets/revanced-headline/revanced-headline-vertical-dark.svg"
>
<img
width="256px"
src="https://raw.githubusercontent.com/revanced/revanced-manager/main/assets/revanced-headline/revanced-headline-vertical-light.svg"
>
</picture>
<br>
<a href="https://revanced.app/">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/revanced/revanced-manager/main/assets/revanced-logo/revanced-logo.svg" />
<img height="24px" src="https://raw.githubusercontent.com/revanced/revanced-manager/main/assets/revanced-logo/revanced-logo.svg" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://github.com/ReVanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://i.ibb.co/dMMmCrW/Git-Hub-Mark.png" />
<img height="24px" src="https://i.ibb.co/9wV3HGF/Git-Hub-Mark-Light.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="http://revanced.app/discord">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://reddit.com/r/revancedapp">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://t.me/app_revanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://x.com/revancedapp">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/93124920/270180600-7c1b38bf-889b-4d68-bd5e-b9d86f91421a.png">
<img height="24px" src="https://user-images.githubusercontent.com/93124920/270108715-d80743fa-b330-4809-b1e6-79fbdc60d09c.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://www.youtube.com/@ReVanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" />
</picture>
</a>
<br>
<br>
Continuing the legacy of Vanced
</p>
# ReVanced Manager bug report
Before creating a new bug report, please keep the following in mind:
- **Do not submit a duplicate bug report**: You can review existing bug reports [here](https://github.com/ReVanced/revanced-manager/labels/Bug%20report).
- **Review the contribution guidelines**: Make sure your bug report adheres to it. You can find the guidelines [here](https://github.com/ReVanced/revanced-manager/blob/main/CONTRIBUTING.md).
- **Do not use the issue page for support**: If you need help or have questions, check out other platforms on [revanced.app](https://revanced.app).
- type: textarea
attributes:
label: Bug description
description: |
- Describe your bug in detail
- Add steps to reproduce the bug if possible (Step 1. ... Step 2. ...)
- Add images and videos if possible
- List used patches if applicable
validations:
required: true
- type: textarea
attributes:
label: Version of ReVanced Manager and version & name of app you are patching
validations:
required: true
- type: dropdown
attributes:
label: Installation method
options:
- Regular
- Mount
validations:
required: false
- type: textarea
attributes:
label: ReVanced Manager logs
description: Export logs in ReVanced Manager settings.
render: shell
validations:
required: true
- type: textarea
attributes:
label: Patch logs
description: Export logs in "Patcher" screen.
render: shell
validations:
required: false
- type: checkboxes
id: acknowledgements
attributes:
label: Acknowledgements
description: Your bug report will be closed if you don't follow the checklist below.
options:
- label: This issue is not a duplicate of an existing bug report.
required: true
- label: I have chosen an appropriate title.
required: true
- label: All requested information has been provided properly.
required: true
- label: The bug is only related to ReVanced Manager
required: true

View File

@ -1,5 +1 @@
blank_issues_enabled: false
contact_links:
- name: 🗨 Discussions
url: https://github.com/revanced/revanced-suggestions/discussions
about: Have something unspecific to ReVanced Manager in mind? Search for or start a new discussion!
blank_issues_enabled: false

View File

@ -0,0 +1,52 @@
name: ⭐ Feature request
description: Create a detailed feature request.
title: 'feat: <title>'
labels: [feature-request]
body:
- type: dropdown
attributes:
label: Type
options:
- Functionality
- Cosmetic
- Other
validations:
required: true
- type: textarea
attributes:
label: Issue
description: What is the current problem. Why does it require a feature request?
validations:
required: true
- type: textarea
attributes:
label: Feature
description: Describe your feature in detail. How does it solve the issue?
validations:
required: true
- type: textarea
attributes:
label: Motivation
description: Why should your feature should be considered?
validations:
required: true
- type: textarea
attributes:
label: Additional context
description: Add additional context here.
validations:
required: false
- type: checkboxes
id: acknowledgements
attributes:
label: Acknowledgements
description: Your issue will be closed if you haven't done these steps.
options:
- label: I have searched the existing issues and this is a new and no duplicate or related to another open issue.
required: true
- label: I have written a short but informative title.
required: true
- label: I filled out all of the requested information in this issue properly.
required: true
- label: The issue is related solely to the ReVanced Manager
required: true

View File

@ -1,106 +0,0 @@
name: ⭐ Feature request
description: Create a detailed request for a new feature.
title: "feat: "
labels: ["Feature request"]
body:
- type: markdown
attributes:
value: |
<p align="center">
<picture>
<source
width="256px"
media="(prefers-color-scheme: dark)"
srcset="https://raw.githubusercontent.com/revanced/revanced-manager/main/assets/revanced-headline/revanced-headline-vertical-dark.svg"
>
<img
width="256px"
src="https://raw.githubusercontent.com/revanced/revanced-manager/main/assets/revanced-headline/revanced-headline-vertical-light.svg"
>
</picture>
<br>
<a href="https://revanced.app/">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/revanced/revanced-manager/main/assets/revanced-logo/revanced-logo.svg" />
<img height="24px" src="https://raw.githubusercontent.com/revanced/revanced-manager/main/assets/revanced-logo/revanced-logo.svg" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://github.com/ReVanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://i.ibb.co/dMMmCrW/Git-Hub-Mark.png" />
<img height="24px" src="https://i.ibb.co/9wV3HGF/Git-Hub-Mark-Light.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="http://revanced.app/discord">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://reddit.com/r/revancedapp">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://t.me/app_revanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://x.com/revancedapp">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/93124920/270180600-7c1b38bf-889b-4d68-bd5e-b9d86f91421a.png">
<img height="24px" src="https://user-images.githubusercontent.com/93124920/270108715-d80743fa-b330-4809-b1e6-79fbdc60d09c.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://www.youtube.com/@ReVanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" />
</picture>
</a>
<br>
<br>
Continuing the legacy of Vanced
</p>
# ReVanced Manager feature request
Before creating a new feature request, please keep the following in mind:
- **Do not submit a duplicate feature request**: You can review existing feature requests [here](https://github.com/ReVanced/revanced-manager//labels/Feature%20request).
- **Review the contribution guidelines**: Make sure your feature request adheres to it. You can find the guidelines [here](https://github.com/ReVanced/revanced-manager/blob/main/CONTRIBUTING.md).
- **Do not use the issue page for support**: If you need help or have questions, check out other platforms on [revanced.app](https://revanced.app).
- type: textarea
attributes:
label: Feature description
description: |
- Describe your feature in detail
- Add images, videos, links, examples, references, etc. if possible
- Add the target application name in case you request a new patch
- type: textarea
attributes:
label: Motivation
description: |
A strong motivation is necessary for a feature request to be considered.
- Why should this feature be implemented?
- What is the explicit use case?
- What are the benefits?
- What makes this feature important?
validations:
required: true
- type: checkboxes
id: acknowledgements
attributes:
label: Acknowledgements
description: Your feature request will be closed if you don't follow the checklist below.
options:
- label: This issue is not a duplicate of an existing feature request.
required: true
- label: I have chosen an appropriate title.
required: true
- label: The feature request is only related to ReVanced Manager
required: true

2
.github/config.yaml vendored
View File

@ -1,2 +0,0 @@
firstPRMergeComment: >
Thank you for contributing to ReVanced. Join us on [Discord](https://revanced.app/discord) to receive a role for your contribution.

View File

@ -1,38 +0,0 @@
version: 2
updates:
- package-ecosystem: github-actions
labels: []
directory: /
target-branch: dev
schedule:
interval: monthly
- package-ecosystem: npm
labels: []
directory: /
target-branch: dev
schedule:
interval: monthly
# ReVanced Manager Flutter
- package-ecosystem: pub
labels: []
directory: /
target-branch: dev
schedule:
interval: monthly
- package-ecosystem: gradle
labels: []
directory: /
target-branch: dev
schedule:
interval: monthly
# ReVanced Manager Compose
- package-ecosystem: gradle
labels: [ "ReVanced Manager Compose" ]
directory: /
target-branch: compose-dev
schedule:
interval: monthly

View File

@ -1,116 +0,0 @@
name: Build pull request
on:
workflow_dispatch:
inputs:
# Enable or disable cache
flutter-cache:
description: Cache
type: boolean
default: true
# Select app flavour
app-flavour:
description: App flavour
default: 'release'
type: choice
options:
- release
- debug
- profile
# Select pull request
pr-number:
description: PR number (Without hashtag)
required: true
run-name: "Build pull request ${{ inputs.pr-number }}"
jobs:
build:
name: Build
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Setup pull request
env:
GH_TOKEN: ${{ github.token }}
run: |
gh repo clone "${{ github.repository }}"
cd revanced-manager
gh repo set-default "${{ github.repository }}"
gh pr checkout "${{ inputs.pr-number }}"
echo "COMMIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: false
fetch-depth: 0
- name: Cache Gradle
uses: burrunan/gradle-cache-action@v1
- name: Setup Java
run: echo "JAVA_HOME=$JAVA_HOME_17_X64" >> $GITHUB_ENV
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
cache: ${{ inputs.flutter-cache }}
- name: Get dependencies
run: flutter pub get
- name: Generate translations
run: dart run slang
- name: Generate code files
run: dart run build_runner build --delete-conflicting-outputs
- name: Build
continue-on-error: true
id: flutter-build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
flutter build apk --"${{ inputs.app-flavour }}";
- name: Prepare comment
run: |
if [[ "${{ steps.flutter-build.outcome }}" == "success" ]]; then
echo "MESSAGE=✅ Succeeded build on ${{ env.COMMIT_HASH }}." >> $GITHUB_ENV
else
echo "MESSAGE=🚫 Failed build on ${{ env.COMMIT_HASH }}." >> $GITHUB_ENV
fi
- name: "Comment on pull request #${{ inputs.pr-number }}"
uses: thollander/actions-comment-pull-request@v2
with:
GITHUB_TOKEN: ${{ github.token }}
pr_number: ${{ inputs.pr-number }}
mode: recreate
message: |
## ⚒️ Build status
${{ env.MESSAGE }}
Details: [${{ github.run_id }}](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})!
### ⚙️ Workflow run configuration
- Flutter cache: ${{ inputs.flutter-cache }}
- App flavor: ${{ inputs.app-flavour }}
- name: Upload
uses: actions/upload-artifact@v4
with:
if-no-files-found: error
name: revanced-manager-(${{ env.COMMIT_HASH }}-${{ inputs.pr-number }}-${{ inputs.app-flavour }})
path: |
build/app/outputs/flutter-apk/app-${{ inputs.app-flavour }}.apk
build/app/outputs/flutter-apk/app-${{ inputs.app-flavour }}.apk.sha1

55
.github/workflows/commit-build.yml vendored Normal file
View File

@ -0,0 +1,55 @@
name: "Android CI Actions"
on:
push:
branches:
- "**"
tags-ignore:
- "v*" # Ignore tags that start with "v" (e.g. v1.0.0) because they are handled by release-build.yml
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set env
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Set up JDK 12
uses: actions/setup-java@v3
with:
java-version: '12'
distribution: 'zulu'
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Set environment variables
run: echo $SECRETS | base64 -d > lib/utils/environment.dart
env:
SECRETS: ${{ secrets.SECRETS }}
- name: Set up Flutter
run: flutter pub get
- name: Generate files with Builder
run: flutter packages pub run build_runner build --delete-conflicting-outputs
- name: Build with Flutter
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }}
run: flutter build apk
- name: Sign APK
id: sign_apk
uses: ilharp/sign-android-release@v1
with:
releaseDir: build/app/outputs/apk/release
signingKey: ${{ secrets.SIGNING_KEYSTORE }}
keyStorePassword: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }}
keyAlias: ${{ secrets.SIGNING_KEY_ALIAS }}
keyPassword: ${{ secrets.SIGNING_KEY_PASSWORD }}
- name: Add version to APK
run: mv ${{ steps.sign_apk.outputs.signedFile }} revanced-manager-${{ env.RELEASE_VERSION }}.apk
- name: Upload APK
uses: actions/upload-artifact@v3
with:
name: revanced-manager-${{ env.RELEASE_VERSION }}
path: revanced-manager-${{ env.RELEASE_VERSION }}.apk

46
.github/workflows/crowdin.yml vendored Normal file
View File

@ -0,0 +1,46 @@
name: Sync Crowdin translations
on:
push:
branches:
- "flutter"
paths:
- "assets/i18n/en_US.json"
- ".github/workflows/crowdin.yml"
schedule:
- cron: "0 0 * * *" # daily
workflow_dispatch:
jobs:
sync-crowdin:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Crowdin
uses: crowdin/github-action@v1
with:
config: crowdin.yml
upload_sources: true
upload_translations: false
download_translations: true
push_translations: true
create_pull_request: false
localization_branch_name: i18n_flutter
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
# commented due to Manager not being ready for the translated files to be in the main branch
# - name: GitHub is so dumb i just cant
# run: |
# sudo chmod -R ugo+rwX .
# - name: Merge
# run: |
# git checkout flutter
# git add *
# git merge i18n_flutter
# git push

View File

@ -1,28 +0,0 @@
name: Open a PR to main
on:
push:
branches:
- dev
workflow_dispatch:
env:
MESSAGE: Merge branch `${{ github.head_ref || github.ref_name }}` to `main`
jobs:
pull-request:
name: Open pull request
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Open pull request
uses: repo-sync/pull-request@v2
with:
destination_branch: 'main'
pr_title: 'chore: ${{ env.MESSAGE }}'
pr_body: |
This pull request will ${{ env.MESSAGE }}.
pr_draft: true
github_token: ${{ secrets.REPOSITORY_PUSH_ACCESS }}

View File

@ -0,0 +1,41 @@
name: "Android CI PR Build"
on:
pull_request:
branches:
- "**"
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set env
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Set up JDK 12
uses: actions/setup-java@v3
with:
java-version: '12'
distribution: 'zulu'
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Set environment variables
run: echo $SECRETS | base64 -d > lib/utils/environment.dart
env:
SECRETS: ${{ secrets.SECRETS }}
- name: Set up Flutter
run: flutter pub get
- name: Generate files with Builder
run: flutter packages pub run build_runner build --delete-conflicting-outputs
- name: Build with Flutter
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: flutter build apk
- name: Add version to APK
run: mv build/app/outputs/flutter-apk/app-release.apk revanced-manager-${{ env.RELEASE_VERSION }}.apk
- name: Upload APK
uses: actions/upload-artifact@v3
with:
name: revanced-manager-${{ env.RELEASE_VERSION }}
path: revanced-manager-${{ env.RELEASE_VERSION }}.apk

54
.github/workflows/release-build.yml vendored Normal file
View File

@ -0,0 +1,54 @@
name: "Release Build"
on:
push:
tags:
- "v*"
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set env
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
- name: Set up JDK 12
uses: actions/setup-java@v3
with:
java-version: '12'
distribution: 'zulu'
- uses: subosito/flutter-action@v2
with:
channel: 'stable'
- name: Set environment variables
run: echo $SECRETS | base64 -d > lib/utils/environment.dart
env:
SECRETS: ${{ secrets.SECRETS }}
- name: Set up Flutter
run: flutter pub get
- name: Generate files with Builder
run: flutter packages pub run build_runner build --delete-conflicting-outputs
- name: Build with Flutter
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SIGNING_KEY_ALIAS: ${{ secrets.SIGNING_KEY_ALIAS }}
SIGNING_KEY_PASSWORD: ${{ secrets.SIGNING_KEY_PASSWORD }}
SIGNING_STORE_PASSWORD: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }}
run: flutter build apk
- name: Sign APK
id: sign_apk
uses: ilharp/sign-android-release@v1
with:
releaseDir: build/app/outputs/apk/release
signingKey: ${{ secrets.SIGNING_KEYSTORE }}
keyStorePassword: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }}
keyAlias: ${{ secrets.SIGNING_KEY_ALIAS }}
keyPassword: ${{ secrets.SIGNING_KEY_PASSWORD }}
- name: Add version to APK
run: mv ${{steps.sign_apk.outputs.signedFile}} revanced-manager-${{ env.RELEASE_VERSION }}.apk
- name: Publish release APK
uses: "marvinpinto/action-automatic-releases@latest"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
prerelease: false
files: revanced-manager-${{ env.RELEASE_VERSION }}.apk

View File

@ -1,61 +0,0 @@
name: Release
on:
workflow_dispatch:
push:
branches:
- main
- dev
paths:
- ".github/workflows/release.yml"
- "android/**"
- "assets/**"
- "lib/**"
- "pubspec.yaml"
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Java
run: echo "JAVA_HOME=$JAVA_HOME_17_X64" >> $GITHUB_ENV
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "lts/*"
cache: 'npm'
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
- name: Install dependencies
run: npm install
- name: Get dependencies
run: flutter pub get
- name: Generate translations
run: dart run slang
- name: Generate code files
run: dart run build_runner build --delete-conflicting-outputs
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.REPOSITORY_PUSH_ACCESS }}
signingKey: "keystore.jks"
keyStorePassword: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }}
keyAlias: ${{ secrets.SIGNING_KEY_ALIAS }}
keyPassword: ${{ secrets.SIGNING_KEY_PASSWORD }}
run: |
echo "${{ secrets.SIGNING_KEYSTORE }}" | base64 --decode > android/app/keystore.jks
npx semantic-release

View File

@ -1,59 +0,0 @@
name: Sync Crowdin
on:
workflow_dispatch:
schedule:
- cron: 00 12 * * 1
push:
paths:
- assets/i18n/*.json
- assets/i18n/*.dart
- .github/workflows/sync_crowdin.yml
jobs:
sync:
name: Sync
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Dart
uses: dart-lang/setup-dart@v1
- name: Sync translations from Crowdin
uses: crowdin/github-action@v1
with:
config: crowdin.yml
upload_sources: true
upload_translations: false
download_bundle: 16
localization_branch_name: feat/translations
create_pull_request: true
pull_request_title: "chore: Sync translations"
pull_request_body: "Sync translations from [crowdin.com/project/revanced](https://crowdin.com/project/revanced)"
pull_request_base_branch_name: "dev"
commit_message: "chore: Sync translations"
github_user_name: revanced-bot
github_user_email: github@revanced.app
env:
GITHUB_TOKEN: ${{ secrets.REPOSITORY_PUSH_ACCESS }}
CROWDIN_PROJECT_ID: ${{ secrets.CROWDIN_PROJECT_ID }}
CROWDIN_PERSONAL_TOKEN: ${{ secrets.CROWDIN_PERSONAL_TOKEN }}
- name: Remove empty values from JSON
run: |
cd assets/i18n
sudo chmod 777 *.json
dart nuke.dart >> $GITHUB_STEP_SUMMARY
- name: Commit translations
run: |
git config user.name revanced-bot
git config user.email github@revanced.app
sudo chown -R $USER:$USER .git
git add assets/i18n/*.json
git commit -m "chore: Remove empty values from JSON" assets/i18n/*.json
git push origin HEAD:feat/translations

View File

@ -1,19 +0,0 @@
name: Update documentation
on:
push:
paths:
- docs/**
jobs:
trigger:
runs-on: ubuntu-latest
name: Dispatch event to documentation repository
if: github.ref == 'refs/heads/main'
steps:
- uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.DOCUMENTATION_REPO_ACCESS_TOKEN }}
repository: revanced/revanced-documentation
event-type: update-documentation
client-payload: '{"repo": "${{ github.event.repository.name }}", "ref": "${{ github.ref }}"}'

172
.gitignore vendored
View File

@ -1,41 +1,14 @@
# See https://www.dartlang.org/guides/libraries/private-files
# Files and directories created by pub
.dart_tool/
.packages
build/
# If you're building an application, you may want to check-in your pubspec.lock
# pubspec.lock
# Directory created by dartdoc
# If you don't generate documentation locally you can remove this line.
doc/api/
# dotenv environment variables file
.env*
# Avoid committing generated Javascript files:
*.dart.js
*.info.json # Produced by the --dump-info flag.
*.js # When generated by dart2js. Don't specify *.js if your
# project includes source files written in JavaScript.
*.js_
*.js.deps
*.js.map
.flutter-plugins
.flutter-plugins-dependencies
# Generated Builder file
**/*.g.dart
**/*.locator.dart
**/*.router.dart
flutter_*.png
#### Custom
local.properties
# Miscellaneous
*.class
*.lock
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
# IntelliJ related
*.iml
@ -43,8 +16,123 @@ local.properties
*.iws
.idea/
# Node Dependency directories
node_modules/
# Visual Studio Code related
.classpath
.project
.settings/
# FVM
.fvm
# Flutter repo-specific
/bin/cache/
/bin/mingit/
/dev/benchmarks/mega_gallery/
/dev/bots/.recipe_deps
/dev/bots/android_tools/
/dev/docs/doc/
/dev/docs/flutter.docs.zip
/dev/docs/lib/
/dev/docs/pubspec.yaml
/dev/integration_tests/**/xcuserdata
/dev/integration_tests/**/Pods
/packages/flutter/coverage/
version
# packages file containing multi-root paths
.packages.generated
# Flutter/Dart/Pub related
**/doc/api/
**/*.g.dart
**/*.locator.dart
**/*.router.dart
.dart_tool/
.flutter-plugins
.flutter-plugins-dependencies
**/generated_plugin_registrant.dart
.packages
.pub-cache/
.pub/
build/
flutter_*.png
linked_*.ds
unlinked.ds
unlinked_spec.ds
# Android related
**/android/**/gradle-wrapper.jar
**/android/.gradle
**/android/captures/
**/android/gradlew
**/android/gradlew.bat
**/android/local.properties
**/android/**/GeneratedPluginRegistrant.java
**/android/key.properties
*.jks
# iOS/XCode related
**/ios/**/*.mode1v3
**/ios/**/*.mode2v3
**/ios/**/*.moved-aside
**/ios/**/*.pbxuser
**/ios/**/*.perspectivev3
**/ios/**/*sync/
**/ios/**/.sconsign.dblite
**/ios/**/.tags*
**/ios/**/.vagrant/
**/ios/**/DerivedData/
**/ios/**/Icon?
**/ios/**/Pods/
**/ios/**/.symlinks/
**/ios/**/profile
**/ios/**/xcuserdata
**/ios/.generated/
**/ios/Flutter/.last_build_id
**/ios/Flutter/App.framework
**/ios/Flutter/Flutter.framework
**/ios/Flutter/Flutter.podspec
**/ios/Flutter/Generated.xcconfig
**/ios/Flutter/app.flx
**/ios/Flutter/app.zip
**/ios/Flutter/flutter_assets/
**/ios/Flutter/flutter_export_environment.sh
**/ios/ServiceDefinitions.json
**/ios/Runner/GeneratedPluginRegistrant.*
# macOS related
**/macos/Flutter/GeneratedPluginRegistrant.swift
**/macos/Flutter/Flutter-Debug.xcconfig
**/macos/Flutter/Flutter-Release.xcconfig
**/macos/Flutter/Flutter-Profile.xcconfig
# Windows related
**/windows/flutter/ephemeral/
**/windows/**/*.suo
**/windows/**/*.user
**/windows/**/*.userosscache
**/windows/**/*.sln.docstates
**/windows/x64/
**/windows/x86/
**/windows/**/*.[Cc]ache
**/windows/**/!*.[Cc]ache/
# Web related
lib/generated_plugin_registrant.dart
# Coverage
coverage/
# Symbolication related
app.*.symbols
# Obfuscation related
app.*.map.json
# Exceptions to above rules.
!**/ios/**/default.mode1v3
!**/ios/**/default.mode2v3
!**/ios/**/default.pbxuser
!**/ios/**/default.perspectivev3
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
!/dev/ci/**/Gemfile.lock
Firebase related
.firebase

View File

@ -1,64 +0,0 @@
{
"branches": [
"main",
{
"name": "dev",
"prerelease": true
}
],
"plugins": [
[
"@semantic-release/commit-analyzer", {
"releaseRules": [
{ "type": "build", "scope": "Needs bump", "release": "patch" }
]
}
],
"@semantic-release/changelog",
"@semantic-release/release-notes-generator",
[
"@droidsolutions-oss/semantic-release-update-file",
{
"files": [
{
"path": ["pubspec.yaml"],
"type": "flutter",
"branches": ["main", "dev"]
}
]
}
],
[
"@semantic-release/exec",
{
"prepareCmd": "flutter build apk"
}
],
[
"@semantic-release/git",
{
"assets": [
"pubspec.yaml"
]
}
],
[
"@semantic-release/github",
{
"assets": [
{
"path": "build/app/outputs/apk/release/revanced-manager*.apk"
}
],
"successComment": false
}
],
[
"@saithodev/semantic-release-backmerge",
{
"backmergeBranches": [{"from": "main", "to": "dev"}],
"clearWorkspace": true
}
]
]
}

6
.run/main.dart.run.xml Normal file
View File

@ -0,0 +1,6 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="main.dart" type="FlutterRunConfigurationType" factoryName="Flutter">
<option name="filePath" value="$PROJECT_DIR$/lib/main.dart" />
<method v="2" />
</configuration>
</component>

View File

@ -1,103 +0,0 @@
<p align="center">
<picture>
<source
width="256px"
media="(prefers-color-scheme: dark)"
srcset="assets/revanced-headline/revanced-headline-vertical-dark.svg"
>
<img
width="256px"
src="assets/revanced-headline/revanced-headline-vertical-light.svg"
>
</picture>
<br>
<a href="https://revanced.app/">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="assets/revanced-logo/revanced-logo.svg" />
<img height="24px" src="assets/revanced-logo/revanced-logo.svg" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://github.com/ReVanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://i.ibb.co/dMMmCrW/Git-Hub-Mark.png" />
<img height="24px" src="https://i.ibb.co/9wV3HGF/Git-Hub-Mark-Light.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="http://revanced.app/discord">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://reddit.com/r/revancedapp">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://t.me/app_revanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://x.com/revancedapp">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/93124920/270180600-7c1b38bf-889b-4d68-bd5e-b9d86f91421a.png">
<img height="24px" src="https://user-images.githubusercontent.com/93124920/270108715-d80743fa-b330-4809-b1e6-79fbdc60d09c.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://www.youtube.com/@ReVanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" />
</picture>
</a>
<br>
<br>
Continuing the legacy of Vanced
</p>
# 👋 Contribution guidelines
This document describes how to contribute to ReVanced Manager.
## 📖 Resources to help you get started
* The [documentation](/docs/README.md) provides steps to build ReVanced Manager from source
* Our [backlog](https://github.com/orgs/ReVanced/projects/12) is where we keep track of what we're working on
* [Issues](https://github.com/ReVanced/revanced-manager/issues) are where we keep track of bugs and feature requests
## 🙏 Submitting a feature request
Features can be requested by opening an issue using the
[Feature request issue template](https://github.com/ReVanced/revanced-manager/issues/new?assignees=&labels=Feature+request&projects=&template=feature_request.yml&title=feat%3A+).
> **Note**
> Requests can be accepted or rejected at the discretion of maintainers of ReVanced Manager.
> Good motivation has to be provided for a request to be accepted.
## 🐞 Submitting a bug report
If you encounter a bug while using ReVanced Manager, open an issue using the
[Bug report issue template](https://github.com/ReVanced/revanced-manager/issues/new?assignees=&labels=Bug+report&projects=&template=bug_report.yml&title=bug%3A+).
## 📝 How to contribute
1. Before contributing, it is recommended to open an issue to discuss your change
with the maintainers of ReVanced Manager. This will help you determine whether your change is acceptable
and whether it is worth your time to implement it
2. Development happens on the `dev` branch. Fork the repository and create your branch from `dev`
3. Commit your changes
4. Submit a pull request to the `dev` branch of the repository and reference issues
that your pull request closes in the description of your pull request
5. Our team will review your pull request and provide feedback. Once your pull request is approved,
it will be merged into the `dev` branch and will be included in the next release of ReVanced Manager
## 🤚 I want to contribute but don't know how to code
Even if you don't know how to code, you can still contribute by
translating ReVanced Manager on [Crowdin](https://translate.revanced.app/).
❤️ Thank you for considering contributing to ReVanced Manager,
ReVanced

120
README.md
View File

@ -1,109 +1,37 @@
<p align="center">
<picture>
<source
width="256px"
media="(prefers-color-scheme: dark)"
srcset="assets/revanced-headline/revanced-headline-vertical-dark.svg"
>
<img
width="256px"
src="assets/revanced-headline/revanced-headline-vertical-light.svg"
>
</picture>
<br>
<a href="https://revanced.app/">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="assets/revanced-logo/revanced-logo.svg" />
<img height="24px" src="assets/revanced-logo/revanced-logo.svg" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://github.com/ReVanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://i.ibb.co/dMMmCrW/Git-Hub-Mark.png" />
<img height="24px" src="https://i.ibb.co/9wV3HGF/Git-Hub-Mark-Light.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="http://revanced.app/discord">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://reddit.com/r/revancedapp">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://t.me/app_revanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://x.com/revancedapp">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/93124920/270180600-7c1b38bf-889b-4d68-bd5e-b9d86f91421a.png">
<img height="24px" src="https://user-images.githubusercontent.com/93124920/270108715-d80743fa-b330-4809-b1e6-79fbdc60d09c.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://www.youtube.com/@ReVanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" />
</picture>
</a>
<br>
<br>
Continuing the legacy of Vanced
</p>
# 💊 ReVanced Manager
![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/ReVanced/revanced-manager/release.yml)
![GPLv3 License](https://img.shields.io/badge/License-GPL%20v3-yellow.svg)
The official ReVanced Manager based on Flutter.
Application to use ReVanced on Android
## ❓ About
ReVanced Manager is an application that uses [ReVanced Patcher](https://github.com/revanced/revanced-patcher) to patch Android apps.
## 💪 Features
Some of the features ReVanced Manager provides are:
- 💉 **Patch apps**: Apply any patch of your choice to Android apps
- 📱 **Portable**: ReVanced Patcher that fits in your pocket
- 🤗 **Simple UI**: Quickly understand the ins and outs of ReVanced Manager
- 🛠️ **Customization**: Configurable API, custom sources, language, signing keystore, theme and more
> **Warning**: This repository currently has no active maintainer. For that reason, development is stale. Active development continues for [revanced-cli](https://github.com/revanced/revanced-cli). If you are interested in maintaining this repository, please let us know at manager@revanced.app.
## 🔽 Download
To download the Alpha version of Manager, go [here](https://github.com/revanced/revanced-manager/releases/latest) and install the provided APK file.
You can download the most recent version of ReVanced Manager at [revanced.app/download](https://revanced.app/download) or from [GitHub releases](https://github.com/ReVanced/revanced-manager/releases).
Learn how to use ReVanced Manager by following the [documentation](/docs).
## 📝 Prerequisites
1. Android 8 or higher
2. Does not work on some armv7 devices
3. [Vanced MicroG](https://github.com/TeamVanced/VancedMicroG/releases) required for YouTube and YouTube Music (Only for non-root)
## 📚 Everything else
## ⚠️ Disclaimer
*Please note that even though we're releasing the Manager, it is an ALPHA version. There's a big chance that the Manager might not work at all for you.*
### 📙 Contributing
## 🔴 Issues
For suggestions and bug reports, open an issue [here](https://github.com/revanced/revanced-manager/issues/new/choose).
Thank you for considering contributing to ReVanced Manager.
You can find the contribution guidelines [here](CONTRIBUTING.md).
## 💭 Discussion
If you wish to discuss the Manager, a thread has been made under the [#development](https://discord.com/channels/952946952348270622/1002922226443632761) channel in the Discord server, please note that this thread may be temporary and may be removed in the future.
### 🛠️ Building
To build a ReVanced Manager, you can follow the [documentation](/docs).
## 🌐 Translation
[![Crowdin](https://badges.crowdin.net/revanced/localized.svg)](https://crowdin.com/project/revanced)
### 📄 Documentation
If you wish to translate ReVanced Manager, we're accepting translations on [Crowdin](https://translate.revanced.app)
You can find the documentation for ReVanced Manager [here](/docs).
### 👋 Contributing
Thank you for considering contributing to ReVanced Manager. You can find the contribution guidelines [here](/CONTRIBUTING.md).
## ⚖️ License
ReVanced Manager is licensed under the GPLv3 license. Please see the [license file](LICENSE) for more information.
[tl;dr](https://www.tldrlegal.com/license/gnu-general-public-license-v3-gpl-3) you may copy, distribute and modify ReVanced Manager as long as you track changes/dates in source files.
Any modifications to ReVanced Manager must also be made available under the GPL, along with build & install instructions.
## 🛠️ Building Manager from source
1. Setup flutter environment for your [platform](https://docs.flutter.dev/get-started/install)
2. Clone the repository locally
3. Add your github token in gradle.properties like [this](https://github.com/revanced/revanced-manager/blob/docs/docs/5_building-from-source.md)
4. Open the project in terminal
5. Run `flutter pub get` in terminal
6. Then `flutter packages pub run build_runner build --delete-conflicting-outputs` (Must be done on each git pull)
7. To build release apk run `flutter build apk`

View File

@ -1,77 +0,0 @@
<p align="center">
<picture>
<source
width="256px"
media="(prefers-color-scheme: dark)"
srcset="assets/revanced-headline/revanced-headline-vertical-dark.svg"
>
<img
width="256px"
src="assets/revanced-headline/revanced-headline-vertical-light.svg"
>
</picture>
<br>
<a href="https://revanced.app/">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="assets/revanced-logo/revanced-logo.svg" />
<img height="24px" src="assets/revanced-logo/revanced-logo.svg" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://github.com/ReVanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://i.ibb.co/dMMmCrW/Git-Hub-Mark.png" />
<img height="24px" src="https://i.ibb.co/9wV3HGF/Git-Hub-Mark-Light.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="http://revanced.app/discord">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://reddit.com/r/revancedapp">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://t.me/app_revanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://x.com/revancedapp">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/93124920/270180600-7c1b38bf-889b-4d68-bd5e-b9d86f91421a.png">
<img height="24px" src="https://user-images.githubusercontent.com/93124920/270108715-d80743fa-b330-4809-b1e6-79fbdc60d09c.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://www.youtube.com/@ReVanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" />
</picture>
</a>
<br>
<br>
Continuing the legacy of Vanced
</p>
# 🔒 Security Policy
This document describes how to report security vulnerabilities for ReVanced Manager.
## 🚨 Reporting a Vulnerability
Please open an issue in our [advisory tracker](https://github.com/ReVanced/revanced-manager/security/advisories/new) or reach out privately to us on [Discord](https://discord.gg/revanced).
If a vulnerability is confirmed and accepted, you can join our [Discord](https://discord.gg/revanced) server to receive a special contributor role.
### ⏳ Supported Versions
| Version | Branch | Supported |
| --------------------------------------------------------------------------------------------------------------------------------------- | ----------- | ------------------ |
| ![Latest stable release](https://img.shields.io/github/v/release/ReVanced/revanced-manager?style=for-the-badge "Latest stable release") | main | :white_check_mark: |
| ![Latest version](https://img.shields.io/badge/version-latest-brightgreen?style=for-the-badge "Latest version") | dev | :white_check_mark: |
| ![Latest version](https://img.shields.io/badge/version-latest-brightgreen?style=for-the-badge "Latest version") | compose-dev | :white_check_mark: |

View File

@ -11,16 +11,14 @@ include: package:flutter_lints/flutter.yaml
analyzer:
exclude:
- lib/app/app.locator.dart
- lib/app/app.router.dart
- lib/models/patch.g.dart
- lib/models/patched_application.g.dart
- lib/utils/env_class.g.dart
linter:
rules:
- always_declare_return_types
- require_trailing_commas
- always_put_control_body_on_new_line
- always_require_non_null_named_parameters
- always_use_package_imports # we do this commonly
- annotate_overrides
- avoid_bool_literals_in_conditional_expressions
@ -39,6 +37,8 @@ linter:
- avoid_relative_lib_imports
- avoid_renaming_method_parameters
- avoid_return_types_on_setters
- avoid_returning_null
- avoid_returning_null_for_future
- avoid_returning_null_for_void
- avoid_setters_without_getters
- avoid_shadowing_type_parameters
@ -68,11 +68,12 @@ linter:
- flutter_style_todos
- hash_and_equals
- implementation_imports
- collection_methods_unrelated_type
- iterable_contains_unrelated_type
- leading_newlines_in_multiline_strings
- library_names
- library_prefixes
- library_private_types_in_public_api
- list_remove_unrelated_type
- missing_whitespace_between_adjacent_strings
- no_adjacent_strings_in_list
- no_duplicate_case_values
@ -94,6 +95,7 @@ linter:
- prefer_const_declarations
- prefer_const_literals_to_create_immutables
- prefer_contains
- prefer_equal_for_default_values
- prefer_final_fields
- prefer_final_in_for_each
- prefer_final_locals
@ -123,7 +125,6 @@ linter:
- slash_for_doc_comments
- sort_child_properties_last
- sort_constructors_first
- sort_pub_dependencies
- sort_unnamed_constructors_first
- test_types_in_equals
- throw_in_finally

View File

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

View File

@ -1,9 +1,3 @@
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()) {
@ -12,6 +6,11 @@ if (localPropertiesFile.exists()) {
}
}
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) {
flutterVersionCode = '1'
@ -22,90 +21,46 @@ if (flutterVersionName == null) {
flutterVersionName = '1.0'
}
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
android {
compileSdk flutter.compileSdkVersion
compileSdkVersion 33
ndkVersion flutter.ndkVersion
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
kotlinOptions {
jvmTarget = '17'
jvmTarget = '11'
}
sourceSets {
main.java.srcDirs += 'src/main/kotlin'
}
defaultConfig {
applicationId "app.revanced.manager.flutter"
minSdk 26
targetSdk 34
minSdkVersion 26
targetSdkVersion 33
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
}
buildTypes {
release {
ndk {
abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86_64'
}
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 {
shrinkResources false
minifyEnabled false
resValue "string", "app_name", "ReVanced Manager Debug"
applicationIdSuffix ".debug"
signingConfig signingConfigs.debug
ndk {
abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86_64'
}
}
profile {
shrinkResources false
minifyEnabled false
resValue "string", "app_name", "ReVanced Manager Profile"
applicationIdSuffix ".profile"
signingConfig signingConfigs.debug
ndk {
abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86_64'
}
}
}
packagingOptions {
jniLibs {
useLegacyPackaging true
excludes += ['/prebuilt/**']
}
resources {
excludes += ['/prebuilt/**']
}
exclude '/prebuilt/**'
}
namespace 'app.revanced.manager.flutter'
}
kotlin {
jvmToolchain(17)
}
flutter {
@ -113,6 +68,17 @@ flutter {
}
dependencies {
implementation("app.revanced:revanced-patcher:19.3.1")
implementation("app.revanced:revanced-library:2.2.1")
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
// ReVanced
implementation "app.revanced:revanced-patcher:6.4.3"
// Signing & aligning
implementation("org.bouncycastle:bcpkix-jdk15on:1.70")
implementation("com.android.tools.build:apksig:7.2.2")
// MicroG cronet
implementation("org.microg:cronet-common:$cronetVersion")
implementation("org.microg:cronet-native:$cronetVersion")
}

View File

@ -1,19 +0,0 @@
# 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
-keep class app.revanced.** { *; }
-keep class com.android.tools.smali.** { *; }
-keep class kotlin.** { *; }
-keep class com.google.auto.value.** { *; }
-keep class com.android.apksig.internal.** { *; }
-keepnames class com.google.common.collect.**
-keepnames class org.xmlpull.** { *; }
-dontwarn com.google.auto.value.**
-dontwarn com.google.j2objc.annotations.*
-dontwarn java.awt.**
-dontwarn javax.**

View File

@ -1,3 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="app.revanced.manager.flutter">
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>

View File

@ -1,32 +1,24 @@
<manifest xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="app.revanced.manager.flutter">
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES" />
<uses-permission android:name="android.permission.READ_MEDIA_VIDEO" />
<uses-permission android:name="android.permission.READ_MEDIA_AUDIO" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />
<uses-permission android:name="android.permission.REQUEST_DELETE_PACKAGES" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
tools:ignore="QueryAllPackagesPermission" />
<application
android:label="@string/app_name"
android:label="ReVanced Manager"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher"
android:largeHeap="true"
android:requestLegacyExternalStorage="true">
android:extractNativeLibs="true"
android:enableOnBackInvokedCallback="true">
<activity
android:name=".MainActivity"
android:exported="true"
@ -36,17 +28,13 @@
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<meta-data
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme" />
android:name="io.flutter.embedding.android.NormalTheme"
android:resource="@style/NormalTheme"/>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".ExportSettingsActivity"
android:exported="true">
</activity>
<meta-data
android:name="flutterEmbedding"
android:value="2" />
@ -59,22 +47,5 @@
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths" />
</provider>
<receiver
android:name=".utils.packageInstaller.InstallerReceiver"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="APP_INSTALL_ACTION" />
</intent-filter>
</receiver>
<receiver
android:name=".utils.packageInstaller.UninstallerReceiver"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="APP_UNINSTALL_ACTION" />
</intent-filter>
</receiver>
</application>
</manifest>

View File

@ -1,83 +0,0 @@
package app.revanced.manager.flutter
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import android.os.Bundle
import android.util.Base64
import org.json.JSONObject
import java.io.ByteArrayInputStream
import java.io.File
import java.security.cert.CertificateFactory
import java.security.cert.X509Certificate
import java.security.MessageDigest
class ExportSettingsActivity : Activity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val callingPackageName = getCallingPackage()!!
if (getFingerprint(callingPackageName) == getFingerprint(getPackageName())) {
// Create JSON Object
val json = JSONObject()
// Default Data
json.put("keystorePassword", "s3cur3p@ssw0rd")
// Load Shared Preferences
val sharedPreferences = getSharedPreferences("FlutterSharedPreferences", Context.MODE_PRIVATE)
val allEntries: Map<String, *> = sharedPreferences.getAll()
for ((key, value) in allEntries.entries) {
json.put(key.replace("flutter.", ""), value)
}
// Load keystore
val keystoreFile = File(getExternalFilesDir(null), "/revanced-manager.keystore")
if (keystoreFile.exists()) {
val keystoreBytes = keystoreFile.readBytes()
val keystoreBase64 = Base64.encodeToString(keystoreBytes, Base64.DEFAULT)
json.put("keystore", keystoreBase64)
}
// Load saved patches
val storedPatchesFile = File(filesDir.parentFile.absolutePath, "/app_flutter/selected-patches.json")
if (storedPatchesFile.exists()) {
val patchesBytes = storedPatchesFile.readBytes()
val patches = String(patchesBytes, Charsets.UTF_8)
json.put("patches", JSONObject(patches))
}
// Send data back
val resultIntent = Intent()
resultIntent.putExtra("data", json.toString())
setResult(Activity.RESULT_OK, resultIntent)
finish()
} else {
val resultIntent = Intent()
setResult(Activity.RESULT_CANCELED)
finish()
}
}
fun getFingerprint(packageName: String): String {
// Get the signature of the app that matches the package name
val packageInfo = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES)
val signature = packageInfo.signatures[0]
// Get the raw certificate data
val rawCert = signature.toByteArray()
// Generate an X509Certificate from the data
val certFactory = CertificateFactory.getInstance("X509")
val x509Cert = certFactory.generateCertificate(ByteArrayInputStream(rawCert)) as X509Certificate
// Get the SHA256 fingerprint
val fingerprint = MessageDigest.getInstance("SHA256").digest(x509Cert.encoded).joinToString("") {
"%02x".format(it)
}
return fingerprint
}
}

View File

@ -1,420 +1,317 @@
package app.revanced.manager.flutter
import android.app.PendingIntent
import android.app.SearchManager
import android.content.Intent
import android.content.pm.PackageInstaller
import android.os.Build
import android.os.Handler
import android.os.Looper
import app.revanced.library.ApkUtils
import app.revanced.library.ApkUtils.applyTo
import androidx.annotation.NonNull
import app.revanced.manager.flutter.utils.Aapt
import app.revanced.manager.flutter.utils.packageInstaller.InstallerReceiver
import app.revanced.manager.flutter.utils.packageInstaller.UninstallerReceiver
import app.revanced.patcher.PatchBundleLoader
import app.revanced.patcher.PatchSet
import app.revanced.manager.flutter.utils.aligning.ZipAligner
import app.revanced.manager.flutter.utils.signing.Signer
import app.revanced.manager.flutter.utils.zip.ZipFile
import app.revanced.manager.flutter.utils.zip.structures.ZipEntry
import app.revanced.patcher.Patcher
import app.revanced.patcher.PatcherConfig
import app.revanced.patcher.patch.PatchResult
import app.revanced.patcher.PatcherOptions
import app.revanced.patcher.extensions.PatchExtensions.compatiblePackages
import app.revanced.patcher.extensions.PatchExtensions.patchName
import app.revanced.patcher.logging.Logger
import app.revanced.patcher.util.patch.PatchBundle
import dalvik.system.DexClassLoader
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel
import kotlinx.coroutines.flow.FlowCollector
import kotlinx.coroutines.runBlocking
import org.json.JSONArray
import org.json.JSONObject
import java.io.File
import java.io.PrintWriter
import java.io.StringWriter
import java.util.logging.LogRecord
import java.util.logging.Logger
private const val PATCHER_CHANNEL = "app.revanced.manager.flutter/patcher"
private const val INSTALLER_CHANNEL = "app.revanced.manager.flutter/installer"
class MainActivity : FlutterActivity() {
private val handler = Handler(Looper.getMainLooper())
private lateinit var installerChannel: MethodChannel
private var cancel: Boolean = false
private var stopResult: MethodChannel.Result? = null
private lateinit var patches: PatchSet
override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine)
val patcherChannel = "app.revanced.manager.flutter/patcher"
val installerChannel = "app.revanced.manager.flutter/installer"
val openBrowserChannel = "app.revanced.manager.flutter/browser"
MethodChannel(
flutterEngine.dartExecutor.binaryMessenger,
openBrowserChannel
).setMethodCallHandler { call, result ->
if (call.method == "openBrowser") {
val searchQuery = call.argument<String>("query")
openBrowser(searchQuery)
result.success(null)
} else {
result.notImplemented()
}
}
val mainChannel =
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, patcherChannel)
this.installerChannel =
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, installerChannel)
val mainChannel = MethodChannel(flutterEngine.dartExecutor.binaryMessenger, PATCHER_CHANNEL)
installerChannel = MethodChannel(flutterEngine.dartExecutor.binaryMessenger, INSTALLER_CHANNEL)
mainChannel.setMethodCallHandler { call, result ->
when (call.method) {
"runPatcher" -> {
val inFilePath = call.argument<String>("inFilePath")
val patchBundleFilePath = call.argument<String>("patchBundleFilePath")
val originalFilePath = call.argument<String>("originalFilePath")
val inputFilePath = call.argument<String>("inputFilePath")
val patchedFilePath = call.argument<String>("patchedFilePath")
val outFilePath = call.argument<String>("outFilePath")
val integrationsPath = call.argument<String>("integrationsPath")
val selectedPatches = call.argument<List<String>>("selectedPatches")
val options = call.argument<Map<String, Map<String, Any>>>("options")
val tmpDirPath = call.argument<String>("tmpDirPath")
val cacheDirPath = call.argument<String>("cacheDirPath")
val mergeIntegrations = call.argument<Boolean>("mergeIntegrations")
val keyStoreFilePath = call.argument<String>("keyStoreFilePath")
val keystorePassword = call.argument<String>("keystorePassword")
if (
inFilePath != null &&
if (patchBundleFilePath != null &&
originalFilePath != null &&
inputFilePath != null &&
patchedFilePath != null &&
outFilePath != null &&
integrationsPath != null &&
selectedPatches != null &&
options != null &&
tmpDirPath != null &&
keyStoreFilePath != null &&
keystorePassword != null
cacheDirPath != null &&
mergeIntegrations != null &&
keyStoreFilePath != null
) {
cancel = false
runPatcher(
result,
inFilePath,
patchBundleFilePath,
originalFilePath,
inputFilePath,
patchedFilePath,
outFilePath,
integrationsPath,
selectedPatches,
options,
tmpDirPath,
keyStoreFilePath,
keystorePassword
cacheDirPath,
mergeIntegrations,
keyStoreFilePath
)
} else result.notImplemented()
}
"stopPatcher" -> {
cancel = true
stopResult = result
}
"getPatches" -> {
val patchBundleFilePath = call.argument<String>("patchBundleFilePath")!!
val cacheDirPath = call.argument<String>("cacheDirPath")!!
try {
val patchBundleFile = File(patchBundleFilePath)
patchBundleFile.setWritable(false)
patches = PatchBundleLoader.Dex(
patchBundleFile,
optimizedDexDirectory = File(cacheDirPath)
)
} catch (ex: Exception) {
return@setMethodCallHandler result.notImplemented()
} catch (err: Error) {
return@setMethodCallHandler result.notImplemented()
} else {
result.notImplemented()
}
JSONArray().apply {
patches.forEach {
JSONObject().apply {
put("name", it.name)
put("description", it.description)
put("excluded", !it.use)
put("compatiblePackages", JSONArray().apply {
it.compatiblePackages?.forEach { compatiblePackage ->
val compatiblePackageJson = JSONObject().apply {
put("name", compatiblePackage.name)
put(
"versions",
JSONArray().apply {
compatiblePackage.versions?.forEach { version ->
put(version)
}
})
}
put(compatiblePackageJson)
}
})
put("options", JSONArray().apply {
it.options.values.forEach { option ->
JSONObject().apply {
put("key", option.key)
put("title", option.title)
put("description", option.description)
put("required", option.required)
fun JSONObject.putValue(
value: Any?,
key: String = "value"
) = if (value is Array<*>) put(
key,
JSONArray().apply {
value.forEach { put(it) }
})
else put(key, value)
putValue(option.default)
option.values?.let { values ->
put("values",
JSONObject().apply {
values.forEach { (key, value) ->
putValue(value, key)
}
})
} ?: put("values", null)
put("valueType", option.valueType)
}.let(::put)
}
})
}.let(::put)
}
}.toString().let(result::success)
}
"installApk" -> {
val apkPath = call.argument<String>("apkPath")!!
PackageInstallerManager.result = result
installApk(apkPath)
}
"uninstallApp" -> {
val packageName = call.argument<String>("packageName")!!
uninstallApp(packageName)
PackageInstallerManager.result = result
}
else -> result.notImplemented()
}
}
}
private fun openBrowser(query: String?) {
val intent = Intent(Intent.ACTION_WEB_SEARCH).apply {
putExtra(SearchManager.QUERY, query)
}
if (intent.resolveActivity(packageManager) != null) {
startActivity(intent)
}
}
private fun runPatcher(
result: MethodChannel.Result,
inFilePath: String,
patchBundleFilePath: String,
originalFilePath: String,
inputFilePath: String,
patchedFilePath: String,
outFilePath: String,
integrationsPath: String,
selectedPatches: List<String>,
options: Map<String, Map<String, Any>>,
tmpDirPath: String,
keyStoreFilePath: String,
keystorePassword: String
cacheDirPath: String,
mergeIntegrations: Boolean,
keyStoreFilePath: String
) {
val inFile = File(inFilePath)
val originalFile = File(originalFilePath)
val inputFile = File(inputFilePath)
val patchedFile = File(patchedFilePath)
val outFile = File(outFilePath)
val integrations = File(integrationsPath)
val keyStoreFile = File(keyStoreFilePath)
val tmpDir = File(tmpDirPath)
Thread {
fun updateProgress(progress: Double, header: String, log: String) {
try {
handler.post {
installerChannel.invokeMethod(
"update",
mapOf(
"progress" to progress,
"header" to header,
"log" to log
"progress" to 0.1,
"header" to "",
"log" to "Copying original apk"
)
)
}
originalFile.copyTo(inputFile, true)
handler.post {
installerChannel.invokeMethod(
"update",
mapOf(
"progress" to 0.2,
"header" to "Unpacking apk...",
"log" to "Unpacking input apk"
)
)
}
val patcher =
Patcher(
PatcherOptions(
inputFile,
cacheDirPath,
Aapt.binary(applicationContext).absolutePath,
cacheDirPath,
logger = ManagerLogger()
)
)
handler.post {
installerChannel.invokeMethod(
"update",
mapOf("progress" to 0.3, "header" to "", "log" to "")
)
}
if (mergeIntegrations) {
handler.post {
installerChannel.invokeMethod(
"update",
mapOf(
"progress" to 0.4,
"header" to "Merging integrations...",
"log" to "Merging integrations"
)
)
}
patcher.addFiles(listOf(integrations)) {}
}
handler.post {
installerChannel.invokeMethod(
"update",
mapOf(
"progress" to 0.5,
"header" to "Applying patches...",
"log" to ""
)
)
}
val patches = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.CUPCAKE) {
PatchBundle.Dex(
patchBundleFilePath,
DexClassLoader(
patchBundleFilePath,
cacheDirPath,
null,
javaClass.classLoader
)
).loadPatches().filter { patch ->
(patch.compatiblePackages?.any { it.name == patcher.context.packageMetadata.packageName } == true || patch.compatiblePackages.isNullOrEmpty()) &&
selectedPatches.any { it == patch.patchName }
}
} else {
TODO("VERSION.SDK_INT < CUPCAKE")
}
patcher.addPatches(patches)
patcher.executePatches().forEach { (patch, res) ->
if (res.isSuccess) {
val msg = "Applied $patch"
handler.post {
installerChannel.invokeMethod(
"update",
mapOf(
"progress" to 0.5,
"header" to "",
"log" to msg
)
)
}
return@forEach
}
val msg = "Failed to apply $patch: " + "${res.exceptionOrNull()!!.message ?: res.exceptionOrNull()!!.cause!!::class.simpleName}"
handler.post {
installerChannel.invokeMethod(
"update",
mapOf("progress" to 0.5, "header" to "", "log" to msg)
)
}
}
handler.post {
installerChannel.invokeMethod(
"update",
mapOf(
"progress" to 0.7,
"header" to "Repacking apk...",
"log" to "Repacking patched apk"
)
)
}
val res = patcher.save()
ZipFile(patchedFile).use { file ->
res.dexFiles.forEach {
file.addEntryCompressData(
ZipEntry.createWithName(it.name),
it.stream.readBytes()
)
}
res.resourceFile?.let {
file.copyEntriesFromFileAligned(
ZipFile(it),
ZipAligner::getEntryAlignment
)
}
file.copyEntriesFromFileAligned(
ZipFile(inputFile),
ZipAligner::getEntryAlignment
)
}
handler.post {
installerChannel.invokeMethod(
"update",
mapOf(
"progress" to 0.9,
"header" to "Signing apk...",
"log" to ""
)
)
}
// Signer("ReVanced", "s3cur3p@ssw0rd").signApk(patchedFile, outFile, keyStoreFile)
try {
Signer("ReVanced", "s3cur3p@ssw0rd").signApk(patchedFile, outFile, keyStoreFile)
} catch (e: Exception) {
//log to console
print("Error signing apk: ${e.message}")
e.printStackTrace()
}
handler.post {
installerChannel.invokeMethod(
"update",
mapOf(
"progress" to 1.0,
"header" to "Finished!",
"log" to "Finished!"
)
)
}
} catch (ex: Throwable) {
val stack = ex.stackTraceToString()
handler.post {
installerChannel.invokeMethod(
"update",
mapOf(
"progress" to -100.0,
"header" to "Aborting...",
"log" to "An error occurred! Aborting\nError:\n$stack"
)
)
}
}
fun postStop() = handler.post { stopResult!!.success(null) }
fun cancel(block: () -> Unit = {}): Boolean {
if (cancel) {
block()
postStop()
}
return cancel
}
// Setup logger
Logger.getLogger("").apply {
handlers.forEach {
it.close()
removeHandler(it)
}
object : java.util.logging.Handler() {
override fun publish(record: LogRecord) {
if (record.loggerName?.startsWith("app.revanced") != true || cancel) return
updateProgress(-1.0, "", record.message)
}
override fun flush() = Unit
override fun close() = flush()
}.let(::addHandler)
}
try {
updateProgress(0.0, "Reading APK...", "Reading APK")
val patcher = Patcher(
PatcherConfig(
inFile,
tmpDir,
Aapt.binary(applicationContext).absolutePath,
tmpDir.path,
true // TODO: Add option to disable this
)
)
if (cancel(patcher::close)) return@Thread
updateProgress(0.02, "Loading patches...", "Loading patches")
val patches = patches.filter { patch ->
val isCompatible = patch.compatiblePackages?.any {
it.name == patcher.context.packageMetadata.packageName
} ?: false
val compatibleOrUniversal =
isCompatible || patch.compatiblePackages.isNullOrEmpty()
compatibleOrUniversal && selectedPatches.any { it == patch.name }
}.onEach { patch ->
options[patch.name]?.forEach { (key, value) ->
patch.options[key] = value
}
}.toSet()
if (cancel(patcher::close)) return@Thread
updateProgress(0.05, "Executing...", "")
val patcherResult = patcher.use {
patcher.apply {
acceptIntegrations(setOf(integrations))
acceptPatches(patches)
}
runBlocking {
// Update the progress bar every time a patch is executed from 0.15 to 0.7
val totalPatchesCount = patches.size
val progressStep = 0.55 / totalPatchesCount
var progress = 0.05
patcher.apply(false).collect(FlowCollector { patchResult: PatchResult ->
if (cancel(patcher::close)) return@FlowCollector
val msg = patchResult.exception?.let {
val writer = StringWriter()
it.printStackTrace(PrintWriter(writer))
"${patchResult.patch.name} failed: $writer"
} ?: run {
"${patchResult.patch.name} succeeded"
}
updateProgress(progress, "", msg)
progress += progressStep
})
}
if (cancel(patcher::close)) return@Thread
updateProgress(0.75, "Building...", "")
patcher.get()
}
if (cancel(patcher::close)) return@Thread
patcherResult.applyTo(inFile)
if (cancel(patcher::close)) return@Thread
ApkUtils.sign(
inFile,
outFile,
ApkUtils.SigningOptions(
keyStoreFile,
keystorePassword,
"alias",
keystorePassword
)
)
updateProgress(.85, "Patched", "Patched APK")
} catch (ex: Throwable) {
if (!cancel) {
val stack = ex.stackTraceToString()
updateProgress(
-100.0,
"Failed",
"An error occurred:\n$stack"
)
}
}
handler.post { result.success(null) }
}.start()
}
private fun installApk(apkPath: String) {
val packageInstaller: PackageInstaller = applicationContext.packageManager.packageInstaller
val sessionParams =
PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL)
val sessionId: Int = packageInstaller.createSession(sessionParams)
val session: PackageInstaller.Session = packageInstaller.openSession(sessionId)
session.use { activeSession ->
val sessionOutputStream = activeSession.openWrite(applicationContext.packageName, 0, -1)
sessionOutputStream.use { outputStream ->
val apkFile = File(apkPath)
apkFile.inputStream().use { inputStream ->
inputStream.copyTo(outputStream)
}
inner class ManagerLogger : Logger {
override fun error(msg: String) {
handler.post {
installerChannel
.invokeMethod(
"update",
mapOf("progress" to -1.0, "header" to "", "log" to msg)
)
}
}
val receiverIntent = Intent(applicationContext, InstallerReceiver::class.java).apply {
action = "APP_INSTALL_ACTION"
}
val receiverPendingIntent = PendingIntent.getBroadcast(
context,
sessionId,
receiverIntent,
PackageInstallerManager.flags
)
session.commit(receiverPendingIntent.intentSender)
session.close()
}
private fun uninstallApp(packageName: String) {
val packageInstaller: PackageInstaller = applicationContext.packageManager.packageInstaller
val receiverIntent = Intent(applicationContext, UninstallerReceiver::class.java).apply {
action = "APP_UNINSTALL_ACTION"
override fun warn(msg: String) {
handler.post {
installerChannel.invokeMethod(
"update",
mapOf("progress" to -1.0, "header" to "", "log" to msg)
)
}
}
val receiverPendingIntent =
PendingIntent.getBroadcast(context, 0, receiverIntent, PackageInstallerManager.flags)
packageInstaller.uninstall(packageName, receiverPendingIntent.intentSender)
}
object PackageInstallerManager {
var result: MethodChannel.Result? = null
val flags = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
PendingIntent.FLAG_MUTABLE or PendingIntent.FLAG_UPDATE_CURRENT
} else {
PendingIntent.FLAG_UPDATE_CURRENT
override fun info(msg: String) {
handler.post {
installerChannel.invokeMethod(
"update",
mapOf("progress" to -1.0, "header" to "", "log" to msg)
)
}
}
override fun trace(_msg: String) { /* unused */
}
}
}

View File

@ -0,0 +1,11 @@
package app.revanced.manager.flutter.utils.aligning
import app.revanced.manager.flutter.utils.zip.structures.ZipEntry
internal object ZipAligner {
private const val DEFAULT_ALIGNMENT = 4
private const val LIBRARY_ALIGNMENT = 4096
fun getEntryAlignment(entry: ZipEntry): Int? =
if (entry.compression.toUInt() != 0u) null else if (entry.fileName.endsWith(".so")) LIBRARY_ALIGNMENT else DEFAULT_ALIGNMENT
}

View File

@ -1,32 +0,0 @@
package app.revanced.manager.flutter.utils.packageInstaller
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.pm.PackageInstaller
import app.revanced.manager.flutter.MainActivity
class InstallerReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
when (val status = intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -1)) {
PackageInstaller.STATUS_PENDING_USER_ACTION -> {
val confirmationIntent = intent.getParcelableExtra<Intent>(Intent.EXTRA_INTENT)
if (confirmationIntent != null) {
context.startActivity(confirmationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK))
}
}
else -> {
val packageName = intent.getStringExtra(PackageInstaller.EXTRA_PACKAGE_NAME)
val message = intent.getStringExtra(PackageInstaller.EXTRA_STATUS_MESSAGE)
val otherPackageName = intent.getStringExtra(PackageInstaller.EXTRA_OTHER_PACKAGE_NAME)
MainActivity.PackageInstallerManager.result!!.success(mapOf(
"status" to status,
"packageName" to packageName,
"message" to message,
"otherPackageName" to otherPackageName
))
}
}
}
}

View File

@ -1,24 +0,0 @@
package app.revanced.manager.flutter.utils.packageInstaller
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.pm.PackageInstaller
import app.revanced.manager.flutter.MainActivity
class UninstallerReceiver : BroadcastReceiver() {
override fun onReceive(context: Context, intent: Intent) {
when (val status = intent.getIntExtra(PackageInstaller.EXTRA_STATUS, -1)) {
PackageInstaller.STATUS_PENDING_USER_ACTION -> {
val confirmationIntent = intent.getParcelableExtra<Intent>(Intent.EXTRA_INTENT)
if (confirmationIntent != null) {
context.startActivity(confirmationIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK))
}
}
else -> {
MainActivity.PackageInstallerManager.result!!.success(status)
}
}
}
}

View File

@ -0,0 +1,74 @@
package app.revanced.manager.flutter.utils.signing
import com.android.apksig.ApkSigner
import org.bouncycastle.asn1.x500.X500Name
import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo
import org.bouncycastle.cert.X509v3CertificateBuilder
import org.bouncycastle.cert.jcajce.JcaX509CertificateConverter
import org.bouncycastle.jce.provider.BouncyCastleProvider
import org.bouncycastle.operator.ContentSigner
import org.bouncycastle.operator.jcajce.JcaContentSignerBuilder
import java.io.File
import java.io.FileInputStream
import java.io.FileOutputStream
import java.math.BigInteger
import java.security.*
import java.security.cert.X509Certificate
import java.util.*
internal class Signer(
private val cn: String, password: String
) {
private val passwordCharArray = password.toCharArray()
private fun newKeystore(out: File) {
val (publicKey, privateKey) = createKey()
val privateKS = KeyStore.getInstance("BKS", "BC")
privateKS.load(null, passwordCharArray)
privateKS.setKeyEntry("alias", privateKey, passwordCharArray, arrayOf(publicKey))
privateKS.store(FileOutputStream(out), passwordCharArray)
}
private fun createKey(): Pair<X509Certificate, PrivateKey> {
val gen = KeyPairGenerator.getInstance("RSA")
gen.initialize(2048)
val pair = gen.generateKeyPair()
var serialNumber: BigInteger
do serialNumber =
BigInteger.valueOf(SecureRandom().nextLong()) while (serialNumber < BigInteger.ZERO)
val x500Name = X500Name("CN=$cn")
val builder = X509v3CertificateBuilder(
x500Name,
serialNumber,
Date(System.currentTimeMillis() - 1000L * 60L * 60L * 24L * 30L),
Date(System.currentTimeMillis() + 1000L * 60L * 60L * 24L * 366L * 30L),
Locale.ENGLISH,
x500Name,
SubjectPublicKeyInfo.getInstance(pair.public.encoded)
)
val signer: ContentSigner = JcaContentSignerBuilder("SHA256withRSA").build(pair.private)
return JcaX509CertificateConverter().getCertificate(builder.build(signer)) to pair.private
}
fun signApk(input: File, output: File, ks: File) {
Security.addProvider(BouncyCastleProvider())
if (!ks.exists()) newKeystore(ks)
val keyStore = KeyStore.getInstance("BKS", "BC")
FileInputStream(ks).use { fis -> keyStore.load(fis, null) }
val alias = keyStore.aliases().nextElement()
val config = ApkSigner.SignerConfig.Builder(
cn,
keyStore.getKey(alias, passwordCharArray) as PrivateKey,
listOf(keyStore.getCertificate(alias) as X509Certificate)
).build()
val signer = ApkSigner.Builder(listOf(config))
signer.setCreatedBy(cn)
signer.setInputApk(input)
signer.setOutputApk(output)
signer.build().sign()
}
}

View File

@ -0,0 +1,35 @@
@file:Suppress("unused")
package app.revanced.manager.flutter.utils.zip
import java.io.DataInput
import java.io.DataOutput
import java.nio.ByteBuffer
fun UInt.toLittleEndian() =
(((this.toInt() and 0xff000000.toInt()) shr 24) or ((this.toInt() and 0x00ff0000) shr 8) or ((this.toInt() and 0x0000ff00) shl 8) or (this.toInt() shl 24)).toUInt()
fun UShort.toLittleEndian() = (this.toUInt() shl 16).toLittleEndian().toUShort()
fun UInt.toBigEndian() = (((this.toInt() and 0xff) shl 24) or ((this.toInt() and 0xff00) shl 8)
or ((this.toInt() and 0x00ff0000) ushr 8) or (this.toInt() ushr 24)).toUInt()
fun UShort.toBigEndian() = (this.toUInt() shl 16).toBigEndian().toUShort()
fun ByteBuffer.getUShort() = this.short.toUShort()
fun ByteBuffer.getUInt() = this.int.toUInt()
fun ByteBuffer.putUShort(ushort: UShort): ByteBuffer = this.putShort(ushort.toShort())
fun ByteBuffer.putUInt(uint: UInt): ByteBuffer = this.putInt(uint.toInt())
fun DataInput.readUShort() = this.readShort().toUShort()
fun DataInput.readUInt() = this.readInt().toUInt()
fun DataOutput.writeUShort(ushort: UShort) = this.writeShort(ushort.toInt())
fun DataOutput.writeUInt(uint: UInt) = this.writeInt(uint.toInt())
fun DataInput.readUShortLE() = this.readUShort().toBigEndian()
fun DataInput.readUIntLE() = this.readUInt().toBigEndian()
fun DataOutput.writeUShortLE(ushort: UShort) = this.writeUShort(ushort.toLittleEndian())
fun DataOutput.writeUIntLE(uint: UInt) = this.writeUInt(uint.toLittleEndian())

View File

@ -0,0 +1,176 @@
package app.revanced.manager.flutter.utils.zip
import app.revanced.manager.flutter.utils.zip.structures.ZipEndRecord
import app.revanced.manager.flutter.utils.zip.structures.ZipEntry
import java.io.Closeable
import java.io.File
import java.io.RandomAccessFile
import java.nio.ByteBuffer
import java.nio.channels.FileChannel
import java.util.zip.CRC32
import java.util.zip.Deflater
class ZipFile(file: File) : Closeable {
var entries: MutableList<ZipEntry> = mutableListOf()
private val filePointer: RandomAccessFile = RandomAccessFile(file, "rw")
private var CDNeedsRewrite = false
private val compressionLevel = 5
init {
//if file isn't empty try to load entries
if (file.length() > 0) {
val endRecord = findEndRecord()
if (endRecord.diskNumber > 0u || endRecord.totalEntries != endRecord.diskEntries)
throw IllegalArgumentException("Multi-file archives are not supported")
entries = readEntries(endRecord).toMutableList()
}
//seek back to start for writing
filePointer.seek(0)
}
private fun findEndRecord(): ZipEndRecord {
//look from end to start since end record is at the end
for (i in filePointer.length() - 1 downTo 0) {
filePointer.seek(i)
//possible beginning of signature
if (filePointer.readByte() == 0x50.toByte()) {
//seek back to get the full int
filePointer.seek(i)
val possibleSignature = filePointer.readUIntLE()
if (possibleSignature == ZipEndRecord.ECD_SIGNATURE) {
filePointer.seek(i)
return ZipEndRecord.fromECD(filePointer)
}
}
}
throw Exception("Couldn't find end record")
}
private fun readEntries(endRecord: ZipEndRecord): List<ZipEntry> {
filePointer.seek(endRecord.centralDirectoryStartOffset.toLong())
val numberOfEntries = endRecord.diskEntries.toInt()
return buildList(numberOfEntries) {
for (i in 1..numberOfEntries) {
add(
ZipEntry.fromCDE(filePointer).also
{
//for some reason the local extra field can be different from the central one
it.readLocalExtra(
filePointer.channel.map(
FileChannel.MapMode.READ_ONLY,
it.localHeaderOffset.toLong() + 28,
2
)
)
})
}
}
}
private fun writeCD() {
val CDStart = filePointer.channel.position().toUInt()
entries.forEach {
filePointer.channel.write(it.toCDE())
}
val entriesCount = entries.size.toUShort()
val endRecord = ZipEndRecord(
0u,
0u,
entriesCount,
entriesCount,
filePointer.channel.position().toUInt() - CDStart,
CDStart,
""
)
filePointer.channel.write(endRecord.toECD())
}
private fun addEntry(entry: ZipEntry, data: ByteBuffer) {
CDNeedsRewrite = true
entry.localHeaderOffset = filePointer.channel.position().toUInt()
filePointer.channel.write(entry.toLFH())
filePointer.channel.write(data)
entries.add(entry)
}
fun addEntryCompressData(entry: ZipEntry, data: ByteArray) {
val compressor = Deflater(compressionLevel, true)
compressor.setInput(data)
compressor.finish()
val uncompressedSize = data.size
val compressedData =
ByteArray(uncompressedSize) //i'm guessing compression won't make the data bigger
val compressedDataLength = compressor.deflate(compressedData)
val compressedBuffer =
ByteBuffer.wrap(compressedData.take(compressedDataLength).toByteArray())
compressor.end()
val crc = CRC32()
crc.update(data)
entry.compression = 8u //deflate compression
entry.uncompressedSize = uncompressedSize.toUInt()
entry.compressedSize = compressedDataLength.toUInt()
entry.crc32 = crc.value.toUInt()
addEntry(entry, compressedBuffer)
}
private fun addEntryCopyData(entry: ZipEntry, data: ByteBuffer, alignment: Int? = null) {
alignment?.let {
//calculate where data would end up
val dataOffset = filePointer.filePointer + entry.LFHSize
val mod = dataOffset % alignment
//wrong alignment
if (mod != 0L) {
//add padding at end of extra field
entry.localExtraField =
entry.localExtraField.copyOf((entry.localExtraField.size + (alignment - mod)).toInt())
}
}
addEntry(entry, data)
}
fun getDataForEntry(entry: ZipEntry): ByteBuffer {
return filePointer.channel.map(
FileChannel.MapMode.READ_ONLY,
entry.dataOffset.toLong(),
entry.compressedSize.toLong()
)
}
fun copyEntriesFromFileAligned(file: ZipFile, entryAlignment: (entry: ZipEntry) -> Int?) {
for (entry in file.entries) {
if (entries.any { it.fileName == entry.fileName }) continue //don't add duplicates
val data = file.getDataForEntry(entry)
addEntryCopyData(entry, data, entryAlignment(entry))
}
}
override fun close() {
if (CDNeedsRewrite) writeCD()
filePointer.close()
}
}

View File

@ -0,0 +1,78 @@
package app.revanced.manager.flutter.utils.zip.structures
import app.revanced.manager.flutter.utils.zip.putUInt
import app.revanced.manager.flutter.utils.zip.putUShort
import app.revanced.manager.flutter.utils.zip.readUIntLE
import app.revanced.manager.flutter.utils.zip.readUShortLE
import java.io.DataInput
import java.nio.ByteBuffer
import java.nio.ByteOrder
data class ZipEndRecord(
val diskNumber: UShort,
val startingDiskNumber: UShort,
val diskEntries: UShort,
val totalEntries: UShort,
val centralDirectorySize: UInt,
val centralDirectoryStartOffset: UInt,
val fileComment: String,
) {
companion object {
const val ECD_HEADER_SIZE = 22
const val ECD_SIGNATURE = 0x06054b50u
fun fromECD(input: DataInput): ZipEndRecord {
val signature = input.readUIntLE()
if (signature != ECD_SIGNATURE)
throw IllegalArgumentException("Input doesn't start with end record signature")
val diskNumber = input.readUShortLE()
val startingDiskNumber = input.readUShortLE()
val diskEntries = input.readUShortLE()
val totalEntries = input.readUShortLE()
val centralDirectorySize = input.readUIntLE()
val centralDirectoryStartOffset = input.readUIntLE()
val fileCommentLength = input.readUShortLE()
var fileComment = ""
if (fileCommentLength > 0u) {
val fileCommentBytes = ByteArray(fileCommentLength.toInt())
input.readFully(fileCommentBytes)
fileComment = fileCommentBytes.toString(Charsets.UTF_8)
}
return ZipEndRecord(
diskNumber,
startingDiskNumber,
diskEntries,
totalEntries,
centralDirectorySize,
centralDirectoryStartOffset,
fileComment
)
}
}
fun toECD(): ByteBuffer {
val commentBytes = fileComment.toByteArray(Charsets.UTF_8)
val buffer = ByteBuffer.allocate(ECD_HEADER_SIZE + commentBytes.size)
.also { it.order(ByteOrder.LITTLE_ENDIAN) }
buffer.putUInt(ECD_SIGNATURE)
buffer.putUShort(diskNumber)
buffer.putUShort(startingDiskNumber)
buffer.putUShort(diskEntries)
buffer.putUShort(totalEntries)
buffer.putUInt(centralDirectorySize)
buffer.putUInt(centralDirectoryStartOffset)
buffer.putUShort(commentBytes.size.toUShort())
buffer.put(commentBytes)
buffer.flip()
return buffer
}
}

View File

@ -0,0 +1,190 @@
package app.revanced.manager.flutter.utils.zip.structures
import app.revanced.manager.flutter.utils.zip.*
import java.io.DataInput
import java.nio.ByteBuffer
import java.nio.ByteOrder
data class ZipEntry(
val version: UShort,
val versionNeeded: UShort,
val flags: UShort,
var compression: UShort,
val modificationTime: UShort,
val modificationDate: UShort,
var crc32: UInt,
var compressedSize: UInt,
var uncompressedSize: UInt,
val diskNumber: UShort,
val internalAttributes: UShort,
val externalAttributes: UInt,
var localHeaderOffset: UInt,
val fileName: String,
val extraField: ByteArray,
val fileComment: String,
var localExtraField: ByteArray = ByteArray(0), //separate for alignment
) {
val LFHSize: Int
get() = LFH_HEADER_SIZE + fileName.toByteArray(Charsets.UTF_8).size + localExtraField.size
val dataOffset: UInt
get() = localHeaderOffset + LFHSize.toUInt()
companion object {
const val CDE_HEADER_SIZE = 46
const val CDE_SIGNATURE = 0x02014b50u
const val LFH_HEADER_SIZE = 30
const val LFH_SIGNATURE = 0x04034b50u
fun createWithName(fileName: String): ZipEntry {
return ZipEntry(
0x1403u, //made by unix, version 20
0u,
0u,
0u,
0x0821u, //seems to be static time google uses, no idea
0x0221u, //same as above
0u,
0u,
0u,
0u,
0u,
0u,
0u,
fileName,
ByteArray(0),
""
)
}
fun fromCDE(input: DataInput): ZipEntry {
val signature = input.readUIntLE()
if (signature != CDE_SIGNATURE)
throw IllegalArgumentException("Input doesn't start with central directory entry signature")
val version = input.readUShortLE()
val versionNeeded = input.readUShortLE()
var flags = input.readUShortLE()
val compression = input.readUShortLE()
val modificationTime = input.readUShortLE()
val modificationDate = input.readUShortLE()
val crc32 = input.readUIntLE()
val compressedSize = input.readUIntLE()
val uncompressedSize = input.readUIntLE()
val fileNameLength = input.readUShortLE()
var fileName = ""
val extraFieldLength = input.readUShortLE()
val extraField = ByteArray(extraFieldLength.toInt())
val fileCommentLength = input.readUShortLE()
var fileComment = ""
val diskNumber = input.readUShortLE()
val internalAttributes = input.readUShortLE()
val externalAttributes = input.readUIntLE()
val localHeaderOffset = input.readUIntLE()
val variableFieldsLength =
fileNameLength.toInt() + extraFieldLength.toInt() + fileCommentLength.toInt()
if (variableFieldsLength > 0) {
val fileNameBytes = ByteArray(fileNameLength.toInt())
input.readFully(fileNameBytes)
fileName = fileNameBytes.toString(Charsets.UTF_8)
input.readFully(extraField)
val fileCommentBytes = ByteArray(fileCommentLength.toInt())
input.readFully(fileCommentBytes)
fileComment = fileCommentBytes.toString(Charsets.UTF_8)
}
flags = (flags and 0b1000u.inv()
.toUShort()) //disable data descriptor flag as they are not used
return ZipEntry(
version,
versionNeeded,
flags,
compression,
modificationTime,
modificationDate,
crc32,
compressedSize,
uncompressedSize,
diskNumber,
internalAttributes,
externalAttributes,
localHeaderOffset,
fileName,
extraField,
fileComment,
)
}
}
fun readLocalExtra(buffer: ByteBuffer) {
buffer.order(ByteOrder.LITTLE_ENDIAN)
localExtraField = ByteArray(buffer.getUShort().toInt())
}
fun toLFH(): ByteBuffer {
val nameBytes = fileName.toByteArray(Charsets.UTF_8)
val buffer = ByteBuffer.allocate(LFH_HEADER_SIZE + nameBytes.size + localExtraField.size)
.also { it.order(ByteOrder.LITTLE_ENDIAN) }
buffer.putUInt(LFH_SIGNATURE)
buffer.putUShort(versionNeeded)
buffer.putUShort(flags)
buffer.putUShort(compression)
buffer.putUShort(modificationTime)
buffer.putUShort(modificationDate)
buffer.putUInt(crc32)
buffer.putUInt(compressedSize)
buffer.putUInt(uncompressedSize)
buffer.putUShort(nameBytes.size.toUShort())
buffer.putUShort(localExtraField.size.toUShort())
buffer.put(nameBytes)
buffer.put(localExtraField)
buffer.flip()
return buffer
}
fun toCDE(): ByteBuffer {
val nameBytes = fileName.toByteArray(Charsets.UTF_8)
val commentBytes = fileComment.toByteArray(Charsets.UTF_8)
val buffer =
ByteBuffer.allocate(CDE_HEADER_SIZE + nameBytes.size + extraField.size + commentBytes.size)
.also { it.order(ByteOrder.LITTLE_ENDIAN) }
buffer.putUInt(CDE_SIGNATURE)
buffer.putUShort(version)
buffer.putUShort(versionNeeded)
buffer.putUShort(flags)
buffer.putUShort(compression)
buffer.putUShort(modificationTime)
buffer.putUShort(modificationDate)
buffer.putUInt(crc32)
buffer.putUInt(compressedSize)
buffer.putUInt(uncompressedSize)
buffer.putUShort(nameBytes.size.toUShort())
buffer.putUShort(extraField.size.toUShort())
buffer.putUShort(commentBytes.size.toUShort())
buffer.putUShort(diskNumber)
buffer.putUShort(internalAttributes)
buffer.putUInt(externalAttributes)
buffer.putUInt(localHeaderOffset)
buffer.put(nameBytes)
buffer.put(extraField)
buffer.put(commentBytes)
buffer.flip()
return buffer
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 814 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

View File

@ -1,30 +0,0 @@
<vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt"
android:width="108dp"
android:height="108dp"
android:viewportWidth="256"
android:viewportHeight="256">
<group android:scaleX="0.23"
android:scaleY="0.23"
android:translateX="98.56"
android:translateY="98.56">
<path
android:pathData="M253.85,4.9C254.32,3.82 254.22,2.57 253.58,1.58C252.93,0.6 251.83,0 250.64,0C243.29,0 230.47,0 225.95,0C224.96,0 224.06,0.59 223.66,1.5C216.03,18.88 144.1,182.7 130.29,214.16C129.89,215.07 128.99,215.66 128,215.66C127.01,215.66 126.11,215.07 125.71,214.16C111.9,182.7 39.97,18.88 32.34,1.5C31.94,0.59 31.04,0 30.05,0C25.53,0 12.71,0 5.36,0C4.17,0 3.07,0.6 2.42,1.58C1.78,2.57 1.68,3.82 2.15,4.9C16.78,38.3 101.47,231.61 111.24,253.9C111.8,255.18 113.06,256 114.45,256C120.29,256 135.71,256 141.55,256C142.94,256 144.2,255.18 144.76,253.9C154.52,231.61 239.22,38.3 253.85,4.9Z"
android:fillColor="#ffffff"/>
<path
android:pathData="M130.59,131.75C130.06,132.68 129.07,133.25 128,133.25C126.93,133.25 125.94,132.68 125.4,131.75C113.45,111.06 63.88,25.19 51.93,4.5C51.4,3.57 51.4,2.43 51.93,1.5C52.47,0.57 53.46,-0 54.53,-0L201.47,-0C202.54,-0 203.53,0.57 204.06,1.5C204.6,2.43 204.6,3.57 204.06,4.5C192.12,25.19 142.54,111.06 130.59,131.75Z">
<aapt:attr name="android:fillColor">
<gradient
android:startX="128"
android:startY="-0"
android:endX="128"
android:endY="254.6"
android:type="linear">
<item android:offset="0" android:color="#FFF04E98"/>
<item android:offset="0.5" android:color="#FF5F65D4"/>
<item android:offset="1" android:color="#FF4E98F0"/>
</gradient>
</aapt:attr>
</path>
</group>
</vector>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
<monochrome android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>
<background android:drawable="@color/ic_launcher_background"/>
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
<monochrome android:drawable="@drawable/ic_launcher_foreground"/>
</adaptive-icon>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="ic_launcher_background">#1B1B1B</color>
</resources>
</resources>

View File

@ -1,3 +1,4 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="app.revanced.manager.flutter">
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>

View File

@ -1,27 +1,37 @@
buildscript {
ext.cronetVersion = '102.5005.125'
ext.kotlin_version = '1.8.0'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.1.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
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")
url = uri("https://maven.pkg.github.com/revanced/revanced-patcher")
credentials {
username = project.findProperty("gpr.user") as String ?: System.getenv("GITHUB_ACTOR")
password = project.findProperty("gpr.key") as String ?: System.getenv("GITHUB_TOKEN")
username = (project.findProperty("gpr.user") ?: System.getenv("GITHUB_ACTOR")) as String
password = (project.findProperty("gpr.key") ?: System.getenv("GITHUB_TOKEN")) as String
}
}
mavenLocal()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
tasks.register("clean", Delete) {
task clean(type: Delete) {
delete rootProject.buildDir
}

View File

@ -1,8 +1,3 @@
org.gradle.jvmargs=-Xmx1536M -XX:+UseParallelGC
org.gradle.parallel=true
org.gradle.daemon=true
org.gradle.caching=true
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.defaults.buildfeatures.buildconfig=true
android.nonTransitiveRClass=false
android.nonFinalResIds=false
android.enableJetifier=true

View File

@ -1,8 +1,6 @@
#Mon May 09 12:07:41 MSK 2022
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-rc-1-bin.zip
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
distributionSha256Sum=9631d53cf3e74bfa726893aee1f8994fee4e060c401335946dba2156f440f24c
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

View File

@ -1,25 +1,11 @@
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()
include ':app'
includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle")
def localPropertiesFile = new File(rootProject.projectDir, "local.properties")
def properties = new Properties()
repositories {
google()
mavenCentral()
}
}
assert localPropertiesFile.exists()
localPropertiesFile.withReader("UTF-8") { reader -> properties.load(reader) }
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
id "com.android.application" version "8.1.2" apply false
id "org.jetbrains.kotlin.android" version "1.9.23" apply false
}
include ":app"
def flutterSdkPath = properties.getProperty("flutter.sdk")
assert flutterSdkPath != null, "flutter.sdk not set in local.properties"
apply from: "$flutterSdkPath/packages/flutter_tools/gradle/app_plugin_loader.gradle"

View File

@ -1,14 +0,0 @@
# Nuke:tm:
> ![CAUTION]
> Some of the code are licensed under BSD 3-Clause License, please check inside the code file for more information.
## Usage
Move to your desire directory and run
```bash
dart nuke.dart
```
and it will remove all the empty keys from the JSON files in the current folder.

200
assets/i18n/ar_SA.json Normal file
View File

@ -0,0 +1,200 @@
{
"okButton": "موافق",
"cancelButton": "إلغاء",
"updateButton": "تحديث",
"enabledLabel": "مفعّل",
"disabledLabel": "معطّل",
"yesButton": "نعم",
"noButton": "لا",
"warning": "تحذير",
"navigationView": {
"dashboardTab": "لوحة التحكم",
"patcherTab": "لوحة التعديل",
"settingsTab": "الإعدادات"
},
"homeView": {
"widgetTitle": "لوحة التحكم",
"updatesSubtitle": "تحديثات",
"patchedSubtitle": "التطبيقات المعدلة",
"updatesAvailable": "تحديثات متوفرة",
"noUpdates": "لا توجد تحديثات متاحة",
"WIP": "العمل قيد التنفيذ...",
"noInstallations": "لا توجد تطبيقات معدلة مثبتة",
"installed": "مثبت",
"updateDialogTitle": "تحديث المدير",
"updateChangelogTitle": "سجل التغييرات",
"notificationTitle": "تم تنزيل التحديث",
"notificationText": "أنقر لتثبيت التحديث",
"downloadingMessage": "جاري تحميل التحديث...",
"installingMessage": "جاري تثبيت التحديث...",
"errorDownloadMessage": "تعذر تحميل التحديث",
"errorInstallMessage": "تعذّر تثبيت التحديث",
"noConnection": "لا يوجد اتصال بالإنترنت",
"updatesDisabled": "تحديث تطبيق تم تعديله معطل حاليًا. أعد تعديل التطبيق مرة أخرى."
},
"applicationItem": {
"patchButton": "تعديل",
"infoButton": "معلومات",
"changelogLabel": "سجل التغييرات"
},
"latestCommitCard": {
"loadingLabel": "جاري التحميل...",
"timeagoLabel": "منذ {time}",
"patcherLabel": "المعدّل: ",
"managerLabel": "المدير: ",
"updateButton": "تحديث المدير"
},
"patcherView": {
"widgetTitle": "المُعَّدِّل",
"patchButton": "تعديل",
"patchDialogText": "لقد اخترت تعديل مورد وتم اكتشاف APK منقسم مثبت، لذا من الممكن أن تحدث أخطاء في التعديل.\nهل أنت متأكد أنك تريد المتابعة؟"
},
"appSelectorCard": {
"widgetTitle": "إختر تطبيقًا",
"widgetTitleSelected": "التطبيق المحدد",
"widgetSubtitle": "لم يتم اختيار أي تطبيق",
"noAppsLabel": "لم يتم العثور على تطبيقات",
"currentVersion": "الحالي",
"recommendedVersion": "موصى به",
"anyVersion": "أي"
},
"patchSelectorCard": {
"widgetTitle": "اختر التعديلات",
"widgetTitleSelected": "التعديلات التي تم اختيارها",
"widgetSubtitle": "اختر تطبيق أولاً",
"widgetEmptySubtitle": "لم يتم تحديد أي تعديلات"
},
"socialMediaCard": {
"widgetTitle": "وسائل التواصل",
"widgetSubtitle": "تابعونا!"
},
"appSelectorView": {
"viewTitle": "إختر تطبيقًا",
"searchBarHint": "البحث عن التطبيقات",
"storageButton": "التخزين",
"errorMessage": "لا يمكن استخدام التطبيق المحدد"
},
"patchesSelectorView": {
"viewTitle": "اختر التعديلات",
"searchBarHint": "البحث عن التعديلات",
"doneButton": "تم",
"recommended": "موصى به",
"all": "الكل",
"none": "بدون",
"loadPatchesSelection": "تحميل التعديلات المحددة",
"noSavedPatches": "لا توجد تعديلات محفوظة للتطبيق المختار.\nاضغط على تم لحفظ الاختيار الحالي.",
"noPatchesFound": "لم يتم العثور على تعديلات للتطبيق المحدد",
"selectAllPatchesWarningContent": "أنت على وشك تحديد جميع التعديلات، بما في ذلك التعديلات غير الموصى بها والتي يمكن أن تسبب سلوكاً غير مرغوب فيه."
},
"patchItem": {
"unsupportedDialogText": "قد يؤدي تحديد هذا التعديل إلى حدوث أخطاء في عملية التعديل.\n\nإصدار التطبيق: {packageVersion}\nالإصدارات المدعومة حالياً:\n{supportedVersions}",
"unsupportedPatchVersion": "التعديل غير مدعوم لهذا الإصدار من التطبيق. فعِّل خِيار التعديل التجريبي في الإعدادات للمتابعة."
},
"installerView": {
"widgetTitle": "المثبت",
"installButton": "تثبيت",
"installRootButton": "تثبيت كـ Root",
"openButton": "فتح",
"shareButton": "شارك ملف",
"notificationTitle": "ReVanced Manager يقوم بعملية التعديل",
"notificationText": "انقر للعودة إلى المثبت",
"shareApkMenuOption": "مشاركة APK",
"exportApkMenuOption": "تصدير APK",
"shareLogMenuOption": "مشاركة السجل",
"installErrorDialogTitle": "خطأ",
"installErrorDialogText1": "التثبيت بطريقة Root غير ممكن مع التعديلات التي تم اختيارها.\nأعد تعديل التطبيق الخاص بك أو اختر التثبيت كـ Non-Root.",
"installErrorDialogText2": "التثبيت بطريقة Non-Root غير ممكن مع التعديلات التي تم اختيارها.\nأعد تعديل التطبيق الخاص بك، أو اختر التثبيت كـ Root إذا كان قد تم عمل Root لجهازك.",
"installErrorDialogText3": "لا يمكن التثبيت بطريقة Root لأن ملف APK تم اختياره من وحدة التخزين.\nحدد تطبيقًا مثبتًا أو اختر التثبيت كـ Non-Root.",
"noExit": "المثبت لا يزال قيد التشغيل، لا يمكن الخروج..."
},
"settingsView": {
"widgetTitle": "الإعدادات",
"appearanceSectionTitle": "المظهر",
"teamSectionTitle": "الفريق",
"infoSectionTitle": "معلومات",
"advancedSectionTitle": "إعدادات متقدمة",
"logsSectionTitle": "السجلات",
"darkThemeLabel": "الوضع الداكن",
"darkThemeHint": "أهلا وسهلا بك إلى الجانب الداكن",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "استمتع بتجربة أقرب إلى جهازك",
"languageLabel": "اللغة",
"englishOption": "الإنجليزية",
"sourcesLabel": "المصادر",
"sourcesLabelHint": "تكوين مصادرك المخصصة",
"hostRepositoryLabel": "مستودع API",
"orgPatchesLabel": "تنظيم التعديلات",
"sourcesPatchesLabel": "مصدر التعديلات",
"orgIntegrationsLabel": "تنظيم الدمج",
"sourcesIntegrationsLabel": "مصدر الـدمج",
"sourcesResetDialogTitle": "إعادة التعيين",
"sourcesResetDialogText": "هل تريد بالتأكيد إعادة تعيين المصادر المخصصة إلى قيمها الافتراضية؟",
"apiURLResetDialogText": "هل أنت متأكد من أنك تريد إعادة رابط API إلى القيم الافتراضية؟",
"contributorsLabel": "المساهمون",
"contributorsHint": "قائمة المساهمين في ReVanced",
"logsLabel": "السجلات",
"logsHint": "مشاركة سجلات المدير",
"apiURLLabel": "رابط API",
"apiURLHint": "تكوين رابط API الخاص بك",
"selectApiURL": "رابط API",
"experimentalUniversalPatchesLabel": "دعم التعديلات العامة التجريبية",
"experimentalUniversalPatchesHint": "عرض جميع التطبيقات المراد استخدامها مع التعديلات العامة، قد يكون تحميل قائمة التطبيقات أبطأ",
"experimentalPatchesLabel": "دعم التعديلات التجريبية",
"experimentalPatchesHint": "تمكين استخدام التعديلات غير المدعومة في أي إصدار للتطبيق",
"enabledExperimentalPatches": "تم تمكين دعم التعديلات التجريبية",
"exportSectionTitle": "استيراد و تصدير",
"aboutLabel": "عن التطبيق",
"snackbarMessage": "نُسِخ إلى الحافظة",
"sentryLabel": "تسجيل الحراسة",
"sentryHint": "إرسال سجلات مجهولة لمساعدتنا في تحسين ReVanced Manager",
"restartAppForChanges": "إعادة تشغيل التطبيق لتطبيق التغييرات",
"deleteKeystoreLabel": "حذف ملف تخزين المفاتيح",
"deleteKeystoreHint": "حذف ملف تخزين المفاتيح المستخدم للتوقيع على التطبيق",
"deletedKeystore": "تم حذف مِلَفّ تخزين المفاتيح",
"deleteTempDirLabel": "حذف الملفات المؤقتة",
"deleteTempDirHint": "حذف الملفات المؤقتة غير المستخدمة",
"deletedTempDir": "تم حذف الملفات المؤقتة",
"exportPatchesLabel": "تصدير التعديلات المحددة",
"exportPatchesHint": "تصدير التعديلات المحددة إلى مِلَفّ JSON",
"exportedPatches": "تم تصدير التعديلات المحددة",
"noExportFileFound": "لا يوجد تعديلات محددة للتصدير",
"importPatchesLabel": "استيراد التعديلات المحددة",
"importPatchesHint": "استيراد التعديلات المحددة من مِلَفّ JSON",
"importedPatches": "تم استيراد التعديلات المحددة",
"resetStoredPatchesLabel": "إعادة تعيين التعديلات",
"resetStoredPatchesHint": "إعادة تعيين التعديلات المحددة المخزنة",
"resetStoredPatches": "تم إعادة تعيين التعديلات المحددة",
"jsonSelectorErrorMessage": "تعذر استخدام مِلَفّ JSON المحدد",
"deleteLogsLabel": "حذف السجلات",
"deleteLogsHint": "حذف سجلات المدير التي تم جمعها",
"deletedLogs": "تم حذف السجلات"
},
"appInfoView": {
"widgetTitle": "معلومات التطبيق",
"openButton": "فتح",
"uninstallButton": "إلغاء التثبيت",
"patchButton": "تعديل",
"unpatchButton": "إلغاء التعديل",
"unpatchDialogText": "هل أنت متأكد من إلغاء تعديل هذا التطبيق؟",
"rootDialogTitle": "خطأ",
"rootDialogText": "تم تثبيت التطبيق بأذونات المستخدم المتميز، لكن ReVanced Manager ليس لديه أذونات حاليًا.\nالرجاء منح أذونات المستخدم المتميز أولاً.",
"packageNameLabel": "اسم الحُزْمَة",
"originalPackageNameLabel": "اسم الحُزْمَة الأصلية",
"installTypeLabel": "نوع التثبيت",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "بدون Root",
"patchedDateLabel": "تاريخ التعديل",
"patchedDateHint": "{date} في {time}",
"appliedPatchesLabel": "التعديلات المطبقة",
"appliedPatchesHint": "{quantity} تعديلات مطبقة",
"updateNotImplemented": "لم يتم تنفيذ هذه الميزة بعد"
},
"contributorsView": {
"widgetTitle": "المساهمون",
"patcherContributors": "المساهمون المُعَدِّلون",
"patchesContributors": "المساهمون في التعديلات",
"integrationsContributors": "المساهمون في الدمج",
"cliContributors": "المساهمون في CLI",
"managerContributors": "المساهمون في Manager"
}
}

196
assets/i18n/az_AZ.json Normal file
View File

@ -0,0 +1,196 @@
{
"okButton": "Oldu",
"cancelButton": "İmtina",
"enabledLabel": "Fəaldır",
"disabledLabel": "Sıradan çıxarıldı",
"yesButton": "Bəli",
"noButton": "Xeyr",
"warning": "Xәbәrdarlıq",
"navigationView": {
"dashboardTab": "İdarəetmə lövhəsi",
"patcherTab": "Yamaqlayıcı",
"settingsTab": "Tənzimləmələr"
},
"homeView": {
"widgetTitle": "İdarəetmə lövhəsi",
"updatesSubtitle": "Güncəlləmələr",
"patchedSubtitle": "Yamaqlanmış tətbiqlər",
"updatesAvailable": "Güncəlləmə mövcuddur",
"noUpdates": "Güncəlləmə mövcud deyil",
"WIP": "Proses davam edir...",
"noInstallations": "Yamaqlanmış tətbiq yoxdur",
"installed": "Quraşdırıldı",
"updateDialogTitle": "Güncəlləmə meneceri",
"updateDialogText": "ReVanced Meneceri endirmək və güncəlləmə istədiyinizə əminsiniz?",
"notificationTitle": "Güncəlləmə endirildi",
"notificationText": "Güncəlləməni quraşdırmaq üçün toxunun",
"downloadingMessage": "Güncəlləmə endirilir...",
"installingMessage": "Güncəlləmə quraşdırılır...",
"errorDownloadMessage": "Güncəlləmə endirilə bilmir",
"errorInstallMessage": "Güncəlləmə quraşdırıla bilmir",
"noConnection": "İnternet bağlantısı yoxdur",
"updatesDisabled": "Yamaqlanmış bir tətbiqin güncəllənməsi hazırda sıradan çıxarılıb. Tətbiqi yenidən yamaqlayın."
},
"applicationItem": {
"patchButton": "Yamaqla",
"infoButton": "Məlumat",
"changelogLabel": "Dəyişiklik jurnalı"
},
"latestCommitCard": {
"loadingLabel": "Yüklənir...",
"timeagoLabel": "{time} əvvəl",
"patcherLabel": "Yamaqlayıcı: ",
"managerLabel": "Menecer: ",
"updateButton": "Güncəlləmə meneceri"
},
"patcherView": {
"widgetTitle": "Yamaqlayıcı",
"patchButton": "Yamaqla",
"patchDialogText": "Bir resurs yamağı seçmisiniz və bölünmüş bir APK quraşdırması aşkarlandı, ona görə də yamaq prosesi zamanı xəta baş verə bilər.\nDavam etmək istədiyinizə əminsiniz?"
},
"appSelectorCard": {
"widgetTitle": "Bir tətbiq seçin",
"widgetTitleSelected": "Seçilmiş tətbiq",
"widgetSubtitle": "Heç bir tətbiq seçilməyib",
"noAppsLabel": "Heç bir tətbiq tapılmadı",
"currentVersion": "Hazırkı",
"recommendedVersion": "Tövsiyyə edilən",
"anyVersion": "istənilən"
},
"patchSelectorCard": {
"widgetTitle": "Yamaqları seçin",
"widgetTitleSelected": "Seçilmiş yamaqlar",
"widgetSubtitle": "Əvvəlcə bir tətbiq seçin",
"widgetEmptySubtitle": "Heç bir yamaq seçilməyib"
},
"socialMediaCard": {
"widgetTitle": "Sosial",
"widgetSubtitle": "Xətdəyik!"
},
"appSelectorView": {
"viewTitle": "Bir tətbiq seçin",
"searchBarHint": "Tətbiq axtarın",
"storageButton": "Anbar",
"errorMessage": "Seçilmiş tətbiq istifadə edilə bilmir"
},
"patchesSelectorView": {
"viewTitle": "Yamaqları seçin",
"searchBarHint": "Yamaqları axtarın",
"doneButton": "Hazırdır",
"recommended": "Tövsiyyə edilən",
"all": "Hamısı",
"none": "Heç biri",
"loadPatchesSelection": "Yamaq seçimini yüklə",
"noSavedPatches": "Seçilmiş tətbiq üçün saxlanılmış yamaq yoxdur\nHazırkı seçimi saxlamaq üçün \"Hazırdır\"a toxunun",
"noPatchesFound": "Seçilmiş tətbiq üçün yamaq tapılmadı",
"selectAllPatchesWarningContent": "Tövsiyə edilməyən yamaqları ehtiva edən və istənilməyən davranışlara səbəb ola biləcək bütün yamaqları seçmək üzrəsiniz."
},
"patchItem": {
"unsupportedDialogText": "Bu yamağı seçmək, yamaqlama xətalarına səbəb ola bilər.\n\nTətbiq versiyası: {packageVersion} \nDəstəklənən versiyalar:\n{supportedVersions}",
"unsupportedPatchVersion": "Yamaq, bu tətbiq versiyası üçün dəstəklənmir. Davam etmək üçün tənzimləmələrdə təcrübi keçidi fəallaşdırın."
},
"installerView": {
"widgetTitle": "Quraşdırıcı",
"installButton": "Quraşdır",
"installRootButton": "Root olaraq quraşdır",
"openButton": "Aç",
"shareButton": "Faylı paylaş",
"notificationTitle": "ReVanced Menecer yamaqlayır",
"notificationText": "Quraşdırıcıya geri qayıtmaq üçün toxunun",
"shareApkMenuOption": "APK-nı paylaş",
"exportApkMenuOption": "APK-nı xaricə köçür",
"shareLogMenuOption": "Jurnalı paylaş",
"installErrorDialogTitle": "Xəta",
"installErrorDialogText1": "Hazırkı yamaq seçimi ilə Root quraşdırması mümkün deyil.\nTətbiqi yenidən yamaqlayın və ya Root-suz quraşdırmanı seçin.",
"installErrorDialogText2": "Hazırkı yamaq seçimi ilə Root-suz quraşdırma mümkün deyil.\nTətbiqi yenidən yamaqlayın və ya cihazınız Root-ludursa, Root quraşdırmasını seçin.",
"installErrorDialogText3": "Orijinal APK, anbardan seçildiyi üçün Root quraşdırması mümkün deyil.\nQuraşdırılmış bir tətbiq seçin və ya Root-suz quraşdırmanı seçin.",
"noExit": "Quraşdırıcı hələ də işləyir, çıxış edilə bilməz..."
},
"settingsView": {
"widgetTitle": "Tənzimləmələr",
"appearanceSectionTitle": "Görünüş",
"teamSectionTitle": "Komanda",
"infoSectionTitle": "Məlumat",
"advancedSectionTitle": "Qabaqcıl",
"logsSectionTitle": "Jurnallar",
"darkThemeLabel": "Qaranlıq rejim",
"darkThemeHint": "Qaranlıq tərəfə xoş gəldiniz",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Cihazınıza yaxın bir təcrübədən həzz alın",
"languageLabel": "Dil",
"englishOption": "İngiliscə",
"sourcesLabel": "Mənbələr",
"sourcesLabelHint": "Özəl mənbələrinizi konfiqurasiya edin",
"orgPatchesLabel": "Yamaq təşkilatı",
"sourcesPatchesLabel": "Yamaq mənbəyi",
"orgIntegrationsLabel": "İnteqrasiya təşkilatı",
"sourcesIntegrationsLabel": "İnteqrasiya mənbəyi",
"sourcesResetDialogTitle": "Sıfırla",
"sourcesResetDialogText": "Özəl mənbələri ilkin dəyərlərinə sıfırlamaq istədiyinizə əminsiniz?",
"apiURLResetDialogText": "API URL-ni ilkin dəyərinə sıfırlamaq istədiyinizə əminsiz?",
"contributorsLabel": "Töhfə verənlər",
"contributorsHint": "ReVanced-ə töhfə verənlərin siyahısı",
"logsLabel": "Jurnallar",
"logsHint": "Menecerin jurnallarını paylaş",
"apiURLLabel": "API URL",
"apiURLHint": "Özəl API URL-lərinizi konfiqurasiya edin",
"selectApiURL": "API URL",
"experimentalPatchesLabel": "Təcrübi yamaq dəstəyi",
"experimentalPatchesHint": "İstənilən bir tətbiq versiyasında dəstəklənməyən yamaqların istifadəsini fəallaşdır",
"enabledExperimentalPatches": "Təcrübi yamaq dəstəyi fəaldır",
"exportSectionTitle": "Daxilə və xaricə köçür",
"aboutLabel": "Haqqında",
"snackbarMessage": "Lövhəyə kopyalandı",
"sentryLabel": "Keşikçi jurnalı",
"sentryHint": "ReVanced Manager-i inkişaf etdirməyimizə kömək etməsi üçün anonim jurnallar göndərin",
"restartAppForChanges": "Dəyişiklikləri tətbiq etmək üçün tətbiqi yenidən başlat",
"deleteKeystoreLabel": "Keystore-u sil",
"deleteKeystoreHint": "Tətbiqi imzalamaq üçün istifadə edilən keystoru-u sil",
"deletedKeystore": "Keystore silindi",
"deleteTempDirLabel": "Müvəqqəti faylları sil",
"deleteTempDirHint": "İstifadə edilməyən müvəqqəti faylları sil",
"deletedTempDir": "Müvəqqəti fayllar silindi",
"exportPatchesLabel": "Yamaq seçimini xaricə köçür",
"exportPatchesHint": "Yamaq seçimini JSON faylına köçür",
"exportedPatches": "Yamaq seçimi xaricə köçürüldü",
"noExportFileFound": "Xaricə köçürüləcək yamaq seçimi yoxdur",
"importPatchesLabel": "Yamaq seçimini daxilə köçür",
"importPatchesHint": "Yamaq seçimini JSON faylından köçür",
"importedPatches": "Yamaq seçimi daxilə köçürüldü",
"resetStoredPatchesLabel": "Yamaqları sıfırla",
"resetStoredPatchesHint": "Saxlanılmış yamaq seçimini sıfırla",
"resetStoredPatches": "Yamaq seçimi sıfırlandı",
"jsonSelectorErrorMessage": "Seçilmiş JSON faylı istifadə edilə bilmir",
"deleteLogsLabel": "Jurnalları sil",
"deleteLogsHint": "Yığılmış menecer jurnallarını sil",
"deletedLogs": "Jurnallar silindi"
},
"appInfoView": {
"widgetTitle": "Tətbiq məlumatı",
"openButton": "Aç",
"uninstallButton": "Sil",
"patchButton": "Yamaqla",
"unpatchButton": "Yamağı götür",
"unpatchDialogText": "Yamağı götürmək istədiyinizə əminsiniz?",
"rootDialogTitle": "Xəta",
"rootDialogText": "Tətbiq, superuser icazələri ilə quraşdırıldı, ancaq hazırda ReVanced Manager-in heç bir icazəsi yoxdur.\nZəhmət olmasa əvvəlcə superuser icazələrini verin.",
"packageNameLabel": "Paket adı",
"originalPackageNameLabel": "Orijinal paket adı",
"installTypeLabel": "Quraşdırma növü",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Root-suz",
"patchedDateLabel": "Yamaqlama tarixi",
"patchedDateHint": "{time} {date}",
"appliedPatchesLabel": "Tətbiq edilmiş yamaqlar",
"appliedPatchesHint": "{quantity} tətbiq edilmiş yamaq",
"updateNotImplemented": "Bu özəllik hələ tətbiq olunmayıb"
},
"contributorsView": {
"widgetTitle": "Töhfə verənlər",
"patcherContributors": "Yamaqlama üzrə töhfə verənlər",
"patchesContributors": "Yamaqlara töhfə verənlər",
"integrationsContributors": "İnteqrasiyalara töhfə verənlər",
"cliContributors": "CLI-yə töhfə verənlər",
"managerContributors": "Manager-ə töhfə verənlər"
}
}

200
assets/i18n/bg_BG.json Normal file
View File

@ -0,0 +1,200 @@
{
"okButton": "OK",
"cancelButton": "Отказ",
"updateButton": "Актуализация",
"enabledLabel": "Включено",
"disabledLabel": "Изключено",
"yesButton": "Да",
"noButton": "Не",
"warning": "Внимание",
"navigationView": {
"dashboardTab": "Табло за управление",
"patcherTab": "Пачър",
"settingsTab": "Настройки"
},
"homeView": {
"widgetTitle": "Табло за управление",
"updatesSubtitle": "Актуализации",
"patchedSubtitle": "Модифицирани приложения",
"updatesAvailable": "Налични актуализации",
"noUpdates": "Няма налични актуализации",
"WIP": "В процес на разработка...",
"noInstallations": "Няма инсталирани модифицирани приложения",
"installed": "Инсталирани",
"updateDialogTitle": "Обнови ReVanced Manager",
"updateChangelogTitle": "Списък с промени",
"notificationTitle": "Актуализацията е изтеглена",
"notificationText": "Натиснете за да инсталирате актуализациите",
"downloadingMessage": "Изтегляне на актуализация...",
"installingMessage": "Инсталиране на актуализация...",
"errorDownloadMessage": "Свалянето на актуализацията не беше успешно",
"errorInstallMessage": "Инсталирането на актуализацията не беше успешно",
"noConnection": "Няма връзка с интернет",
"updatesDisabled": "Актуализацията на модифицирани приложения в момента не работи. Модифицирайте приложението наново."
},
"applicationItem": {
"patchButton": "Модифицирай",
"infoButton": "Информация",
"changelogLabel": "Списък с промените"
},
"latestCommitCard": {
"loadingLabel": "Зареждане...",
"timeagoLabel": "Преди {time}",
"patcherLabel": "Пачър: ",
"managerLabel": "Мениджър: ",
"updateButton": "Обнови ReVanced Manager"
},
"patcherView": {
"widgetTitle": "Модификатор",
"patchButton": "Модифицирай",
"patchDialogText": "Избрали сте модификация за ресурси и разделен APK пакет, което може да доведе до грешки при пачването.\nСигурни ли сте, че искате да продължите?"
},
"appSelectorCard": {
"widgetTitle": "Изберете приложение",
"widgetTitleSelected": "Избрано приложение",
"widgetSubtitle": "Няма избрано приложение",
"noAppsLabel": "Няма намерени приложения",
"currentVersion": "Текуща",
"recommendedVersion": "Препоръчана",
"anyVersion": "всяка"
},
"patchSelectorCard": {
"widgetTitle": "Изберете модификации",
"widgetTitleSelected": "Избрани модификации",
"widgetSubtitle": "Първо изберете приложение",
"widgetEmptySubtitle": "Няма избрани модификации"
},
"socialMediaCard": {
"widgetTitle": "Социални мрежи",
"widgetSubtitle": "Открийте ни онлайн!"
},
"appSelectorView": {
"viewTitle": "Изберете приложение",
"searchBarHint": "Търсене на приложение",
"storageButton": "Хранилище",
"errorMessage": "Избраното приложение не може да се използва"
},
"patchesSelectorView": {
"viewTitle": "Изберете модификации",
"searchBarHint": "Търсене на модификации",
"doneButton": "Готово",
"recommended": "Препоръчано",
"all": "Всички",
"none": "Нито един",
"loadPatchesSelection": "Заредете избраните модификации",
"noSavedPatches": "Няма запазени модификации за избраното приложение.\nНатиснете Готово за да запазите текущия избор.",
"noPatchesFound": "Няма налични модификации за избраното приложение",
"selectAllPatchesWarningContent": "Напът сте да изберете всички патчове, дори и тези, които не са препоръчителни, а това може да доведе до нежелани промени."
},
"patchItem": {
"unsupportedDialogText": "Изборът на тази модификация може да доведе до грешки.\n\nВерсия: {packageVersion}\nПоддържани версии: {supportedVersions}",
"unsupportedPatchVersion": "Модификацията не се поддържа за тази версия на приложението. Активираите експерименталната опция в настройките за да продължите."
},
"installerView": {
"widgetTitle": "Инсталатор",
"installButton": "Инсталиране",
"installRootButton": "Инсталиране с root",
"openButton": "Отвори",
"shareButton": "Споделяне на файла",
"notificationTitle": "ReVanced Мениджър модифицира",
"notificationText": "Натиснете за да се върнете при инсталатора",
"shareApkMenuOption": "Споделяне на APK",
"exportApkMenuOption": "Експортиране на APK",
"shareLogMenuOption": "Сподели логовете",
"installErrorDialogTitle": "Грешка",
"installErrorDialogText1": "Инсталиране с root не е възможно с настоящият избор на модификации.\nМодифицирайте приложението наново или изберете опция без root.",
"installErrorDialogText2": "Инсталиране без root не е възможно с настоящият избор на модификации.\nМодифицирайте приложението наново или изберете опция с root, ако устройството ви има такъв.",
"installErrorDialogText3": "Инсталиране с root не е възможно понеже АРК файла бе избран от хранилището.\nИзберете инсталирано приложение или опция без root.",
"noExit": "Инсталаторът все още работи, не може да излезе..."
},
"settingsView": {
"widgetTitle": "Настройки",
"appearanceSectionTitle": "Облик",
"teamSectionTitle": "Екип",
"infoSectionTitle": "Информация",
"advancedSectionTitle": "Разширени",
"logsSectionTitle": "Логове",
"darkThemeLabel": "Тъмен режим",
"darkThemeHint": "Добре дошъл на тъмната страна",
"dynamicThemeLabel": "Материална Тема",
"dynamicThemeHint": "Насладете се на преживяване по-близо до устройството си",
"languageLabel": "Език",
"englishOption": "Английски",
"sourcesLabel": "Източници",
"sourcesLabelHint": "Конфигурирайте собствени източници",
"hostRepositoryLabel": "API на хранилището",
"orgPatchesLabel": "Организация на модификациите",
"sourcesPatchesLabel": "Източник на модификациите",
"orgIntegrationsLabel": "Организация на интеграциите",
"sourcesIntegrationsLabel": "Източник на интеграциите",
"sourcesResetDialogTitle": "Нулиране",
"sourcesResetDialogText": "Искате ли да възстановите източниците до стойностите им по подразбиране?",
"apiURLResetDialogText": "Искате ли да възстановите АРI URL до стойността му по подразбиране?",
"contributorsLabel": "Хора, които допринесоха",
"contributorsHint": "Списък с хората, допринесли за ReVanced",
"logsLabel": "Логове",
"logsHint": "Сподели логовете на мениджъра",
"apiURLLabel": "API URL",
"apiURLHint": "Конфигурирайте собствен API URL",
"selectApiURL": "API URL",
"experimentalUniversalPatchesLabel": "Поддръжка на експериментални модификации",
"experimentalUniversalPatchesHint": "Показване на всички приложения за използване с универсални модификации, зареждането на списъкът с приложения може да е по-бавно",
"experimentalPatchesLabel": "Поддръжка на експериментални модификации",
"experimentalPatchesHint": "Разрешете използването на неподдържани модификации във всяка версия на приложението",
"enabledExperimentalPatches": "Поддръжката на експериментални модификации е активирана",
"exportSectionTitle": "Импортиране и експортиране",
"aboutLabel": "Относно",
"snackbarMessage": "Копирано",
"sentryLabel": "Sentry логване",
"sentryHint": "Пращайте анонимни логове за да ни помогнете да подобрим ReVanced Manager",
"restartAppForChanges": "Рестартирайте приложението, за да се приложат промените",
"deleteKeystoreLabel": "Изтриване на keystore",
"deleteKeystoreHint": "Изтриване на keystore използван за подписване на приложението",
"deletedKeystore": "Keystore изтрит",
"deleteTempDirLabel": "Изтриване на временни файлове",
"deleteTempDirHint": "Изтриване на неизползвани временни файлове",
"deletedTempDir": "Временните файлове са изтрити",
"exportPatchesLabel": "Експортиране на избраните модификации",
"exportPatchesHint": "Експортиране на избраните модификации като JSON файл",
"exportedPatches": "Избраните модификации са експортирани",
"noExportFileFound": "Няма избрани модификации за експортиране",
"importPatchesLabel": "Импортиране на избраните модификации",
"importPatchesHint": "Импортиране на избраните модификации от JSON файл",
"importedPatches": "Избраните модификации са импортирани",
"resetStoredPatchesLabel": "Нулиране на модификациите",
"resetStoredPatchesHint": "Нулиране на избраните запазени модификации",
"resetStoredPatches": "Избраните модификации са нулирани",
"jsonSelectorErrorMessage": "Избраният JSON файл не може да се изплозва",
"deleteLogsLabel": "Изтриване на логовете",
"deleteLogsHint": "Изтриване на събраните логове на мениджърът",
"deletedLogs": "Логовете са изтрити"
},
"appInfoView": {
"widgetTitle": "Информация за приложението",
"openButton": "Отвори",
"uninstallButton": "Деинсталирай",
"patchButton": "Модифицирайте",
"unpatchButton": "Премахнете модификации",
"unpatchDialogText": "Сигурни ли сте че искате да премахнете модификациите?",
"rootDialogTitle": "Грешка",
"rootDialogText": "Приложението е инсталирано с superuser разрешения, но в момента ReVanced Manager няма разрешения. Моля, първо дайте superuser разрешения.",
"packageNameLabel": "Име на пакета",
"originalPackageNameLabel": "Оригинално име на пакета",
"installTypeLabel": "Тип инсталация",
"rootTypeLabel": "Вариант с root достъп",
"nonRootTypeLabel": "Без root",
"patchedDateLabel": "Дата на модификацията",
"patchedDateHint": "на {date} в {time}",
"appliedPatchesLabel": "Приложени модификации",
"appliedPatchesHint": "{quantity} приложени модификации",
"updateNotImplemented": "Тази функция все още не е внедрена"
},
"contributorsView": {
"widgetTitle": "Хора, които допринесоха",
"patcherContributors": "Допринесли към пачърът",
"patchesContributors": "Допринесли към модификациите",
"integrationsContributors": "Допринесли към интеграциите",
"cliContributors": "Допринесли към CLI",
"managerContributors": "Допринесли към мениджъра"
}
}

196
assets/i18n/bn_BD.json Normal file
View File

@ -0,0 +1,196 @@
{
"okButton": "ঠিক আছে",
"cancelButton": "বাতিল",
"enabledLabel": "সক্রিয়",
"disabledLabel": "নিষ্ক্রিয়",
"yesButton": "হ্যাঁ",
"noButton": "না",
"warning": "সতর্কতা",
"navigationView": {
"dashboardTab": "ড্যাশবোর্ড",
"patcherTab": "প্যাচার",
"settingsTab": "সেটিংস"
},
"homeView": {
"widgetTitle": "ড্যাশবোর্ড",
"updatesSubtitle": "আপডেটসমূহ",
"patchedSubtitle": "প্যাচড অ্যাপ্লিকেশনগুলো",
"updatesAvailable": "আপডেট পাওয়া যাচ্ছে",
"noUpdates": "কোন আপডেট পাওয়া যায়নি",
"WIP": "কাজ চলছে...",
"noInstallations": "কোন প্যাচড অ্যাপ্লিকেশন ইনস্টল করা হয়নি",
"installed": "ইনস্টল করা",
"updateDialogTitle": "Manager আপডেট করুন",
"updateDialogText": "আপনি কি নিশ্চিত আপনি ReVanced Manager ডাউনলোড এবং আপডেট করতে চান?",
"notificationTitle": "আপডেট ডাউনলোড হয়েছে",
"notificationText": "আপডেট ইনস্টল করতে ট্যাপ করুন",
"downloadingMessage": "আপডেট ডাউনলোড হচ্ছে...",
"installingMessage": "আপডেট ইনস্টল করা হচ্ছে...",
"errorDownloadMessage": "আপডেট ডাউনলোড করতে সফল হয় নি",
"errorInstallMessage": "আপডেট ইনস্টল করতে সফল হয় নি",
"noConnection": "কোনো ইন্টারনেট সংযোগ নেই",
"updatesDisabled": "প্যাচ করা অ্যাপকে আপডেট করা বর্তমানে সম্ভব নয়। অ্যাপটি পুনরায় প্যাচ করুন।"
},
"applicationItem": {
"patchButton": "প্যাচ",
"infoButton": "তথ্য",
"changelogLabel": "পরিবর্তনসমূহ"
},
"latestCommitCard": {
"loadingLabel": "লোড হচ্ছে...",
"timeagoLabel": "{time} আগে",
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "Manager আপডেট করুন"
},
"patcherView": {
"widgetTitle": "প্যাচার",
"patchButton": "প্যাচ",
"patchDialogText": "আপনি রিসোর্স প্যাচ নির্বাচন করেছেন এবং একটি split APK সনাক্ত হয়েছে, তাই প্যাচিং ত্রুটিপূর্ণ হতে পারে।\nআপনি কি নিশ্চিতভাবে সামনে এগিয়ে যেতে চান??"
},
"appSelectorCard": {
"widgetTitle": "একটি অ্যাপ্লিকেশন নির্বাচন করুন",
"widgetTitleSelected": "নির্বাচিত অ্যাপ্লিকেশন",
"widgetSubtitle": "কোনো অ্যাপ্লিকেশন নির্বাচন করা হয়নি",
"noAppsLabel": "কোন অ্যাপ্লিকেশন পাওয়া যায়নি",
"currentVersion": "বর্তমান",
"recommendedVersion": "প্রস্তাবিত",
"anyVersion": "যেকোনো সংস্করণ"
},
"patchSelectorCard": {
"widgetTitle": "প্যাচ নির্বাচন করুন",
"widgetTitleSelected": "নির্বাচিত প্যাচসমূহ",
"widgetSubtitle": "প্রথমে একটি অ্যাপ্লিকেশন নির্বাচন করুন",
"widgetEmptySubtitle": "কোন প্যাচ নির্বাচন করা হয়নি"
},
"socialMediaCard": {
"widgetTitle": "সামাজিক যোগাযোগ মাধ্যম",
"widgetSubtitle": "আমরা অনলাইনে!"
},
"appSelectorView": {
"viewTitle": "একটি অ্যাপ্লিকেশন নির্বাচন করুন",
"searchBarHint": "অ্যাপ্লিকেশনগুলি খুঁজুন",
"storageButton": "স্টোরেজ",
"errorMessage": "নির্বাচিত অ্যাপ্লিকেশনটি ব্যবহার করা সম্ভব নয়"
},
"patchesSelectorView": {
"viewTitle": "প্যাচ নির্বাচন করুন",
"searchBarHint": "প্যাচ খুঁজুন",
"doneButton": "সম্পন্ন হয়েছে",
"recommended": "প্রস্তাবিত",
"all": "সবগুলো",
"none": "একটিও না",
"loadPatchesSelection": "নির্বাচিত প্যাচ লোড করুন",
"noSavedPatches": "নির্বাচিত অ্যাপের জন্য কোন সংরক্ষিত প্যাচ নেই\nবর্তমানে নির্বাচিত প্যাচ সংরক্ষণ করতে সম্পন্ন হয়েছে চাপুন",
"noPatchesFound": "নির্বাচিত অ্যাপের জন্য কোনো প্যাচ পাওয়া যায়নি",
"selectAllPatchesWarningContent": "আপনি সকল প্যাচ নির্বাচন করতে যাচ্ছেন, যার মধ্যে কিছু অপ্রস্তাবিত প্যাচও রয়েছে যা অনাকাঙ্ক্ষিত আচরণ করতে পারে।"
},
"patchItem": {
"unsupportedDialogText": "এই প্যাচটি নির্বাচন করলে প্যাচিং ত্রুটিপূর্ণ হতে পারে।\n\nঅ্যাপ সংস্করণ: {packageVersion}\nসমর্থিত সংস্করণ:\n{supportedVersions}",
"unsupportedPatchVersion": "এই অ্যাপ সংস্করণের জন্য প্যাচ সমর্থিত নয়। এগিয়ে যেতে সেটিংসে পরীক্ষামূলক টগল সক্ষম করুন৷"
},
"installerView": {
"widgetTitle": "ইনস্টলার",
"installButton": "ইনস্টল করুন",
"installRootButton": "রুট হিসেবে ইন্সটল করুন",
"openButton": "অ্যাপ খুলুন",
"shareButton": "ফাইল শেয়ার করুন",
"notificationTitle": "ReVanced Manager প্যাচ করছে",
"notificationText": "ইনস্টলারে ফিরে যেতে ট্যাপ করুন",
"shareApkMenuOption": "APK শেয়ার করুন",
"exportApkMenuOption": "APK রপ্তানি করুন",
"shareLogMenuOption": "লগ শেয়ার করুন",
"installErrorDialogTitle": "ত্রুটি দেখা দিয়েছে",
"installErrorDialogText1": "বর্তমানে নির্বাচিত প্যাচগুলো দিয়ে রুট ইনস্টল সম্ভব নয়।\nঅ্যাপটি পুনরায় প্যাচ করুন অথবা নন-রুট ইনস্টল নির্বাচন করুন।",
"installErrorDialogText2": "বর্তমানে নির্বাচিত প্যাচগুলো দিয়ে নন-রুট ইনস্টল সম্ভব নয়।\nঅ্যাপটি পুনরায় প্যাচ করুন অথবা আপনার ডিভাইস রুট করা থাকলে রুট ইনস্টল নির্বাচন করুন।",
"installErrorDialogText3": "রুট ইনস্টল সম্ভব নয় কারণ মূল APK ফোনের স্টোরেজ থেকে নির্বাচন করা হয়েছে।\nএকটি ইনস্টলড অ্যাপ নির্বাচন করুন অথবা নন-রুট ইন্সটল নির্বাচন করুন।",
"noExit": "ইনস্টলার এখনো চলমান, বের হওয়া সম্ভব নয়..."
},
"settingsView": {
"widgetTitle": "সেটিংস",
"appearanceSectionTitle": "রূপ",
"teamSectionTitle": "দল",
"infoSectionTitle": "তথ্য",
"advancedSectionTitle": "উন্নত",
"logsSectionTitle": "লগ",
"darkThemeLabel": "অন্ধকার মোড",
"darkThemeHint": "অন্ধকার রাজ্যে স্বাগতম",
"dynamicThemeLabel": "ম্যাটেরিয়াল ইউ",
"dynamicThemeHint": "আপনার ডিভাইসের লুকের কাছাকাছি অভিজ্ঞতা নিন",
"languageLabel": "ভাষা",
"englishOption": "English",
"sourcesLabel": "উৎস",
"sourcesLabelHint": "আপনার নিজস্ব উৎস সেট করুন",
"orgPatchesLabel": "প্যাচ এর উদ্ভাবক",
"sourcesPatchesLabel": "প্যাচ এর উৎস",
"orgIntegrationsLabel": "ইন্ট্রিগেশনের উদ্ভাবক",
"sourcesIntegrationsLabel": "ইন্ট্রিগেশনের উৎস",
"sourcesResetDialogTitle": "পুনরায় সেট করুন",
"sourcesResetDialogText": "আপনি কি আপনার নিজস্ব উৎসগুলোকে তাদের মূল উৎসে পুনরায় সেট করতে চান?",
"apiURLResetDialogText": "আপনি কি API URL কে তার মূল ভ্যালুতে পুনরায় সেট করতে চান?",
"contributorsLabel": "অবদানকারীগণ",
"contributorsHint": "ReVanced-এ অবদানকারীদের তালিকা",
"logsLabel": "লগ",
"logsHint": "Manager লগ শেয়ার করুন",
"apiURLLabel": "API URL",
"apiURLHint": "আপনার নিজস্ব API URL সেট করুন",
"selectApiURL": "API URL",
"experimentalPatchesLabel": "পরীক্ষামূলক প্যাচ সমর্থন",
"experimentalPatchesHint": "যেকোন অ্যাপ সংস্করণে অসমর্থিত প্যাচ ব্যবহার করতে সক্ষম করুন",
"enabledExperimentalPatches": "পরীক্ষামূলক প্যাচ সমর্থন সক্রিয় হয়েছে",
"exportSectionTitle": "আমদানি ও রপ্তানি",
"aboutLabel": "সম্পর্কিত",
"snackbarMessage": "ক্লিপবোর্ডে কপি করা হয়েছে",
"sentryLabel": "সেন্ট্রি লগিং",
"sentryHint": "ReVanced Manager উন্নত করতে আমাদের সাহায্য করতে বেনামী লগ পাঠান",
"restartAppForChanges": "পরিবর্তনগুলি প্রয়োগ করতে অ্যাপটি পুনরায় চালু করুন",
"deleteKeystoreLabel": "কীস্টোর মুছুন",
"deleteKeystoreHint": "প্যাচড অ্যাপ সাইন করতে ব্যবহৃত কীস্টোরটি মুছুন",
"deletedKeystore": "কীস্টোর মুছে ফেলা হয়েছে",
"deleteTempDirLabel": "অস্থায়ী ফাইল মুছুন",
"deleteTempDirHint": "অব্যবহৃত অস্থায়ী ফাইল মুছুন",
"deletedTempDir": "অস্থায়ী ফাইল মুছে ফেলা হয়েছে",
"exportPatchesLabel": "নির্বাচিত প্যাচ রপ্তানি করুন",
"exportPatchesHint": "নির্বাচিত প্যাচ একটি JSON ফাইলে রপ্তানি করুন",
"exportedPatches": "নির্বাচিত প্যাচ রপ্তানি করা হয়েছে",
"noExportFileFound": "রপ্তানি করার জন্য কোন প্যাচ নির্বাচন করা হয়নি",
"importPatchesLabel": "নির্বাচিত প্যাচ আমদানি করুন",
"importPatchesHint": "একটি JOSN ফাইল থেকে প্যাচ আমদানি করুন",
"importedPatches": "নির্বাচিত প্যাচ আমদানি করা হয়েছে",
"resetStoredPatchesLabel": "প্যাচ পুনরায় সেট করুন",
"resetStoredPatchesHint": "সংরক্ষিত নির্বাচিত প্যাচ পুনঃসেট করুন",
"resetStoredPatches": "নির্বাচিত প্যাচ পুনঃসেট করা হয়েছে",
"jsonSelectorErrorMessage": "নির্বাচিত JSON ফাইল ব্যবহার করা সম্ভব নয়",
"deleteLogsLabel": "লগ মুছুন",
"deleteLogsHint": "Manager এর সংগৃহীত লগ মুছুন",
"deletedLogs": "লগ মুছে ফেলা হয়েছে"
},
"appInfoView": {
"widgetTitle": "অ্যাপের তথ্য",
"openButton": "খুলুন",
"uninstallButton": "আনইন্সটল করুন",
"patchButton": "প্যাচ",
"unpatchButton": "আনপ্যাচ",
"unpatchDialogText": "আপনি কি অ্যাপটি আনপ্যাচ করার ব্যপারে নিশ্চিত?",
"rootDialogTitle": "ত্রুটি দেখা দিয়েছে",
"rootDialogText": "অ্যাপটি Superuser অনুমতি নিয়ে ইনস্টল করা হয়েছে, কিন্তু বর্তমানে ReVanced Manager এর Superuser অনুমতি নেই। অনুগ্রহপূর্বক প্রথমে Superuser অনুমতি দিন।",
"packageNameLabel": "প্যাকেজের নাম",
"originalPackageNameLabel": "প্যাকেজের মূল নাম",
"installTypeLabel": "ইনস্টলের ধরন",
"rootTypeLabel": "রুট",
"nonRootTypeLabel": "নন-রুট",
"patchedDateLabel": "প্যাচ করার তারিখ",
"patchedDateHint": "{date} তারিখে {time} টায়",
"appliedPatchesLabel": "ব্যবহৃত প্যাচ",
"appliedPatchesHint": "{quantity} টি প্যাচ ব্যবহৃত",
"updateNotImplemented": "এই ফিচারটি এখনো কার্যকর করা হয়নি"
},
"contributorsView": {
"widgetTitle": "অবদানকারীগণ",
"patcherContributors": "প্যাচার অবদানকারী",
"patchesContributors": "প্যাচসমূহে অবদানকারী",
"integrationsContributors": "ইন্টিগ্রেশন্স অবদানকারী",
"cliContributors": "CLI অবদানকারী",
"managerContributors": "Manager অবদানকারী"
}
}

196
assets/i18n/cs_CZ.json Normal file
View File

@ -0,0 +1,196 @@
{
"okButton": "OK",
"cancelButton": "Zrušit",
"enabledLabel": "Zapnuto",
"disabledLabel": "Vypnuto",
"yesButton": "Ano",
"noButton": "Ne",
"warning": "Varování",
"navigationView": {
"dashboardTab": "Řídící panel",
"patcherTab": "Záplatovač",
"settingsTab": "Nastavení"
},
"homeView": {
"widgetTitle": "Řídící panel",
"updatesSubtitle": "Aktualizace",
"patchedSubtitle": "Záplatované aplikace",
"updatesAvailable": "Jsou dostupné aktualizace",
"noUpdates": "Nejsou dostupné žádné aktualizace",
"WIP": "Zpracovává se...",
"noInstallations": "Nejsou nainstalovány žádné záplatované aplikace",
"installed": "Nainstalováno",
"updateDialogTitle": "Správce aktualizací",
"updateDialogText": "Opravdu chcete stáhnout a aktualizovat ReVanced Manager?",
"notificationTitle": "Aktualizace byla stažena",
"notificationText": "Klepnutím nainstalujte aktualizaci",
"downloadingMessage": "Stahování aktualizace...",
"installingMessage": "Instalace aktualizace...",
"errorDownloadMessage": "Nelze stáhnout aktualizaci",
"errorInstallMessage": "Aktualizace se nepodařilo nainstalovat",
"noConnection": "Žádné připojení k internetu",
"updatesDisabled": "Aktualizace záplatované aplikace je momentálně zakázána. Znovu záplatujte aplikaci."
},
"applicationItem": {
"patchButton": "Záplata",
"infoButton": "Info",
"changelogLabel": "Seznam změn"
},
"latestCommitCard": {
"loadingLabel": "Načítání...",
"timeagoLabel": "před {time}",
"patcherLabel": "Záplatovač: ",
"managerLabel": "Manager: ",
"updateButton": "Aktualizovat Manager"
},
"patcherView": {
"widgetTitle": "Záplatovač",
"patchButton": "Záplatovat",
"patchDialogText": "Vybrali jste záplatu a byla zjištěna \"split-APK\" instalace, takže se mohou vyskytnout chyby.\nJste si jisti, že chcete pokračovat?"
},
"appSelectorCard": {
"widgetTitle": "Vyberte aplikaci",
"widgetTitleSelected": "Vybraná aplikace",
"widgetSubtitle": "Nebyla vybrána žádná aplikace",
"noAppsLabel": "Nebyly nalezeny žádné aplikace",
"currentVersion": "Aktuální",
"recommendedVersion": "Doporučeno",
"anyVersion": "jakákoliv"
},
"patchSelectorCard": {
"widgetTitle": "Vybrat záplaty",
"widgetTitleSelected": "Vybrané záplaty",
"widgetSubtitle": "Nejprve vyberte aplikaci",
"widgetEmptySubtitle": "Nejsou vybrány žádné záplaty"
},
"socialMediaCard": {
"widgetTitle": "Sociální sítě",
"widgetSubtitle": "Jsme online!"
},
"appSelectorView": {
"viewTitle": "Vyberte aplikaci",
"searchBarHint": "Hledat aplikace",
"storageButton": "Uložiště",
"errorMessage": "Vybranou aplikaci nelze použít"
},
"patchesSelectorView": {
"viewTitle": "Vybrat záplaty",
"searchBarHint": "Vyhledat záplaty",
"doneButton": "Hotovo",
"recommended": "Doporučeno",
"all": "Vše",
"none": "Žádné",
"loadPatchesSelection": "Načíst výběr záplat",
"noSavedPatches": "Žádné uložené záplaty pro vybranou aplikaci\nStiskněte Hotovo pro uložení aktuálního výběru",
"noPatchesFound": "Pro vybranou aplikaci nebyly nalezeny žádné záplaty",
"selectAllPatchesWarningContent": "Chystáte se vybrat všechny záplaty, které obsahují nedoporučené záplaty a mohou způsobit nežádoucí chování."
},
"patchItem": {
"unsupportedDialogText": "Výběrem této záplaty může dojít k chybám.\n\nVerze aplikace: {packageVersion}\nAktuálně podporované verze:\n{supportedVersions}",
"unsupportedPatchVersion": "Pro tuto verzi aplikace není podporována záplata. Chcete-li pokračovat, povolte přepínač experimentálních nastavení."
},
"installerView": {
"widgetTitle": "Instalátor",
"installButton": "Instalovat",
"installRootButton": "Instalovat jako root",
"openButton": "Otevřít",
"shareButton": "Sdílet soubor",
"notificationTitle": "ReVanced Manager záplatuje",
"notificationText": "Klepnutím se vrátíte do instalátoru",
"shareApkMenuOption": "Sdílet APK",
"exportApkMenuOption": "Exportovat APK",
"shareLogMenuOption": "Sdílet záznam",
"installErrorDialogTitle": "Chyba",
"installErrorDialogText1": "Root instalace není možná při výběru aktuálních záplat.\nZnovu záplatujte aplikaci nebo zvolte non-root instalaci.",
"installErrorDialogText2": "Non-root instalace není možná s vybranými záplaty.\nZnova záplatujte vaší aplikaci, nebo zvolte root instalaci, jestli máte zařízení s rootem.",
"installErrorDialogText3": "Root instalace není možná, protože původní APK byla vybrána z uložiště.\nVyberte nainstalovanou aplikaci nebo zvolte non-root instalaci.",
"noExit": "Instalační program je stále spuštěn, nelze ukončit..."
},
"settingsView": {
"widgetTitle": "Nastavení",
"appearanceSectionTitle": "Vzhled",
"teamSectionTitle": "Tým",
"infoSectionTitle": "Info",
"advancedSectionTitle": "Pokročilé",
"logsSectionTitle": "Logy",
"darkThemeLabel": "Tmavý motiv",
"darkThemeHint": "Vítejte na temné straně",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Vychutnejte si zážitek blíže k vašemu zařízení",
"languageLabel": "Jazyk",
"englishOption": "Angličtina",
"sourcesLabel": "Zdroje",
"sourcesLabelHint": "Konfigurace vlastních zdrojů",
"orgPatchesLabel": "Organizace záplat",
"sourcesPatchesLabel": "Zdroj záplat",
"orgIntegrationsLabel": "Autor integrace",
"sourcesIntegrationsLabel": "Zdroj integrace",
"sourcesResetDialogTitle": "Obnovit",
"sourcesResetDialogText": "Jste si jisti, že chcete obnovit vlastní zdroje na jejich výchozí hodnoty?",
"apiURLResetDialogText": "Jste si jisti, že chcete resetovat API URL na výchozí hodnotu?",
"contributorsLabel": "Přispěvatelé",
"contributorsHint": "Seznam přispěvatelů ReVanced",
"logsLabel": "Logy",
"logsHint": "Sdílet logy správce",
"apiURLLabel": "API URL",
"apiURLHint": "Konfigurace vlastního API URL",
"selectApiURL": "API URL",
"experimentalPatchesLabel": "Podpora experimentálních záplat",
"experimentalPatchesHint": "Povolit použití nepodporovaných záplat v jakékoli verzi aplikace",
"enabledExperimentalPatches": "Podpora experimentálních záplat",
"exportSectionTitle": "Import a export",
"aboutLabel": "O aplikaci",
"snackbarMessage": "Zkopírováno do schránky",
"sentryLabel": "Log Sentry",
"sentryHint": "Odeslat anonymní protokoly, které nám pomohou zlepšit ReVanced Manager",
"restartAppForChanges": "Pro aplikování změn restartuj aplikaci",
"deleteKeystoreLabel": "Vymazat úložiště klíčů",
"deleteKeystoreHint": "Smazat úložiště klíčů používané k podpisu aplikace",
"deletedKeystore": "Úložiště klíčů bylo smazáno",
"deleteTempDirLabel": "Odstranit dočasné soubory",
"deleteTempDirHint": "Odstranit nepoužité dočasné soubory",
"deletedTempDir": "Dočasné soubory byly smazány",
"exportPatchesLabel": "Exportovat vybrané záplaty",
"exportPatchesHint": "Exportovat výběr záplat do souboru JSON",
"exportedPatches": "Výběr záplat exportován",
"noExportFileFound": "Žádné záplaty k exportu",
"importPatchesLabel": "Načíst výběr záplat",
"importPatchesHint": "Importovat výběr záplat ze souboru JSON",
"importedPatches": "Výběr záplat importován",
"resetStoredPatchesLabel": "Resetovat záplaty",
"resetStoredPatchesHint": "Resetovat výběr uložených záplat",
"resetStoredPatches": "Výběr záplat byl resetován",
"jsonSelectorErrorMessage": "Vybraný JSON soubor nelze použít",
"deleteLogsLabel": "Smazat logy",
"deleteLogsHint": "Odstranit shromážděné logy správce",
"deletedLogs": "Logy smazány"
},
"appInfoView": {
"widgetTitle": "Informace o aplikaci",
"openButton": "Otevřít",
"uninstallButton": "Odinstalovat",
"patchButton": "Záplatovat",
"unpatchButton": "Odebrat záplaty",
"unpatchDialogText": "Jste si jisti, že chcete odzáplatovat tuto aplikaci?",
"rootDialogTitle": "Chyba",
"rootDialogText": "Aplikace byla nainstalována s oprávněním superuser, ale aktuálně ReVanced Manager nemá žádná oprávnění.\nProsím nejprve udělte oprávnění superuser.",
"packageNameLabel": "Název balíčku",
"originalPackageNameLabel": "Původní název souboru",
"installTypeLabel": "Typ instalace",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Non-root",
"patchedDateLabel": "Datum záplaty",
"patchedDateHint": "{date} v {time}",
"appliedPatchesLabel": "Použité záplaty",
"appliedPatchesHint": "{quantity} použitých záplat",
"updateNotImplemented": "Tato funkce ještě není implementována"
},
"contributorsView": {
"widgetTitle": "Přispěvatelé",
"patcherContributors": "Zobrazit přispěvatele",
"patchesContributors": "Zobrazit přispěvatele",
"integrationsContributors": "Přispěvatelé integrace",
"cliContributors": "Přispěvatelé CLI",
"managerContributors": "Přispěvatelé správce"
}
}

200
assets/i18n/da_DK.json Normal file
View File

@ -0,0 +1,200 @@
{
"okButton": "OK",
"cancelButton": "Afbryd",
"updateButton": "Opdatér",
"enabledLabel": "Aktiveret",
"disabledLabel": "Deaktiveret",
"yesButton": "Ja",
"noButton": "Nej",
"warning": "Advarsel",
"navigationView": {
"dashboardTab": "Oversigt",
"patcherTab": "Patcher",
"settingsTab": "Indstillinger"
},
"homeView": {
"widgetTitle": "Oversigt",
"updatesSubtitle": "Opdateringer",
"patchedSubtitle": "Patchede applikationer",
"updatesAvailable": "Opdateringer tilgængelige",
"noUpdates": "Ingen tilgængelige opdateringer",
"WIP": "Under udvikling...",
"noInstallations": "Ingen patchede apps installeret",
"installed": "Installeret",
"updateDialogTitle": "Opdater Manager",
"updateChangelogTitle": "Ændringslog",
"notificationTitle": "Opdatering downloadet",
"notificationText": "Tryk for at installere opdateringen",
"downloadingMessage": "Downloader opdatering...",
"installingMessage": "Installerer opdatering...",
"errorDownloadMessage": "Kunne ikke downloade opdateringen",
"errorInstallMessage": "Kunne ikke installere opdateringen",
"noConnection": "Ingen Internetforbindelse",
"updatesDisabled": "Opdatering af en patchet app er i øjeblikket deaktiveret. Repatch appen igen."
},
"applicationItem": {
"patchButton": "Patch",
"infoButton": "Info",
"changelogLabel": "Ændringslog"
},
"latestCommitCard": {
"loadingLabel": "Indlæser...",
"timeagoLabel": "{time} siden",
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "Opdater Manager"
},
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Patch",
"patchDialogText": "Du har valgt en ressource-patch, og en split APK-installation er blevet opdaget, så patch-fejl kan forekomme.\nEr du sikker på at du vil fortsætte?"
},
"appSelectorCard": {
"widgetTitle": "Vælg en applikation",
"widgetTitleSelected": "Valgt applikation",
"widgetSubtitle": "Ingen applikation valgt",
"noAppsLabel": "Ingen applikationer fundet",
"currentVersion": "Nuværende",
"recommendedVersion": "Anbefalet",
"anyVersion": "enhver"
},
"patchSelectorCard": {
"widgetTitle": "Vælg patches",
"widgetTitleSelected": "Valgte patches",
"widgetSubtitle": "Vælg først en applikation",
"widgetEmptySubtitle": "Ingen patches valgt"
},
"socialMediaCard": {
"widgetTitle": "Sociale medier",
"widgetSubtitle": "Vi er online!"
},
"appSelectorView": {
"viewTitle": "Vælg en applikation",
"searchBarHint": "Søg efter applikationer",
"storageButton": "Lager",
"errorMessage": "Kunne ikke bruge valgte applikation"
},
"patchesSelectorView": {
"viewTitle": "Vælg patches",
"searchBarHint": "Søg efter patches",
"doneButton": "Udført",
"recommended": "Anbefalet",
"all": "Alle",
"none": "Ingen",
"loadPatchesSelection": "Indlæs patches udvælgelse",
"noSavedPatches": "Ingen gemte patches til den valgte app.\nTryk på Udført for at gemme det aktuelle valg.",
"noPatchesFound": "Ingen patches fundet til den valgte app",
"selectAllPatchesWarningContent": "Du er ved at vælge alle patches, der inkluderer ikke-anbefalede patches, og kan forårsage uønsket adfærd."
},
"patchItem": {
"unsupportedDialogText": "Valg af denne patch kan medføre patching-fejl.\n\nApp version: {packageVersion}\nUnderstøttede versioner:\n{supportedVersions}",
"unsupportedPatchVersion": "Patch er ikke understøttet for denne app-version. Aktivér den eksperimentelle indstilling i indstillinger for at fortsætte."
},
"installerView": {
"widgetTitle": "Installationsprogram",
"installButton": "Installér",
"installRootButton": "Installér som Root",
"openButton": "Åbn",
"shareButton": "Del fil",
"notificationTitle": "ReVanced Manager patcher",
"notificationText": "Tryk for at gå tilbage til installationsprogrammet",
"shareApkMenuOption": "Del APK",
"exportApkMenuOption": "Eksportér APK",
"shareLogMenuOption": "Del log",
"installErrorDialogTitle": "Fejl",
"installErrorDialogText1": "Root-installation er ikke muligt med de nuværende valgte patches.\nRepatch din app eller vælg ikke-root installation.",
"installErrorDialogText2": "Ikke-root installation er ikke muligt med de nuværende valgte patches.\nRepatch din app eller vælg root-installation hvis du har din enhed rooted.",
"installErrorDialogText3": "Root-installation er ikke muligt, da den oprindelige APK blev valgt fra lager.\nVælg en installeret app eller vælg ikke-root installation.",
"noExit": "Installationen kører stadig, kan ikke afslutte..."
},
"settingsView": {
"widgetTitle": "Indstillinger",
"appearanceSectionTitle": "Udseende",
"teamSectionTitle": "Holdet",
"infoSectionTitle": "Info",
"advancedSectionTitle": "Avanceret",
"logsSectionTitle": "Logfiler",
"darkThemeLabel": "Mørk tilstand",
"darkThemeHint": "Velkommen til den mørke side",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Nyd en oplevelse tættere på din enhed",
"languageLabel": "Sprog",
"englishOption": "Engelsk",
"sourcesLabel": "Kilder",
"sourcesLabelHint": "Konfigurér dine brugerdefinerede kilder",
"hostRepositoryLabel": "Repository API",
"orgPatchesLabel": "Organisation for Patches",
"sourcesPatchesLabel": "Kilde til Patches",
"orgIntegrationsLabel": "Organisation for Integrationer",
"sourcesIntegrationsLabel": "Kilde til Integrationer",
"sourcesResetDialogTitle": "Nulstil",
"sourcesResetDialogText": "Er du sikker på, at du vil nulstille brugerdefinerede kilder til deres standardværdier?",
"apiURLResetDialogText": "Er du sikker på, at du vil nulstille API URL til dens standardværdi?",
"contributorsLabel": "Medvirkende",
"contributorsHint": "En liste over medvirkende til ReVanced",
"logsLabel": "Logfiler",
"logsHint": "Del Manager's logfiler",
"apiURLLabel": "API URL",
"apiURLHint": "Konfigurer din brugerdefineret API URL",
"selectApiURL": "API URL",
"experimentalUniversalPatchesLabel": "Understøttelse af eksperimentelle universale patches",
"experimentalUniversalPatchesHint": "Vis alle applikationer der skal bruges med universelle patches, indlæsningslisten over apps kan være langsommere",
"experimentalPatchesLabel": "Understøttelse af eksperimentelle patches",
"experimentalPatchesHint": "Aktiver brugen af ikke-understøttede patches i enhver app version",
"enabledExperimentalPatches": "Understøttelse af eksperimentelle patches aktiveret",
"exportSectionTitle": "Import & eksport",
"aboutLabel": "Om",
"snackbarMessage": "Kopieret til udklipsholder",
"sentryLabel": "Sentry logning",
"sentryHint": "Send anonyme logfiler for at hjælpe os med at forbedre ReVanced Manager",
"restartAppForChanges": "Genstart appen for at anvende ændringer",
"deleteKeystoreLabel": "Slet keystore",
"deleteKeystoreHint": "Slet keystore der bruges til at signere appen",
"deletedKeystore": "Keystore slettet",
"deleteTempDirLabel": "Slet midlertidige filer",
"deleteTempDirHint": "Slet ubrugte midlertidige filer",
"deletedTempDir": "Midlertidige filer slettet",
"exportPatchesLabel": "Eksportér valgte patches",
"exportPatchesHint": "Eksportér valgte patches til en JSON-fil",
"exportedPatches": "Valgte patches eksporteret",
"noExportFileFound": "Ingen patches valgt til eksport",
"importPatchesLabel": "Importér valgte patches",
"importPatchesHint": "Importér valgte patches fra en JSON-fil",
"importedPatches": "Valgte patches importeret",
"resetStoredPatchesLabel": "Nulstil patches",
"resetStoredPatchesHint": "Nulstil den gemte patches udvælgelse",
"resetStoredPatches": "Patches udvægelse er blevet nulstillet",
"jsonSelectorErrorMessage": "Kan ikke bruge den valgte JSON-fil",
"deleteLogsLabel": "Slet logfiler",
"deleteLogsHint": "Slet indsamlede manager-logfiler",
"deletedLogs": "Logfiler slettet"
},
"appInfoView": {
"widgetTitle": "Appinfo",
"openButton": "Åbn",
"uninstallButton": "Afinstallér",
"patchButton": "Patch",
"unpatchButton": "Unpatch",
"unpatchDialogText": "Er du sikker på du vil unpatche denne app?",
"rootDialogTitle": "Fejl",
"rootDialogText": "App blev installeret med superbruger tilladelser, men i øjeblikket har ReVanced Manager ingen tilladelser.\nGiv superbruger tilladelser først.",
"packageNameLabel": "Pakkenavn",
"originalPackageNameLabel": "Oprindeligt pakkenavn",
"installTypeLabel": "Installationstype",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Ikke-root",
"patchedDateLabel": "Dato for patching",
"patchedDateHint": "{date} kl. {time}",
"appliedPatchesLabel": "Anvendte patches",
"appliedPatchesHint": "{quantity} anvendte patches",
"updateNotImplemented": "Denne funktion er ikke implementeret endnu"
},
"contributorsView": {
"widgetTitle": "Medvirkende",
"patcherContributors": "Patcher bidragere",
"patchesContributors": "Patches bidragere",
"integrationsContributors": "Integrationer bidragere",
"cliContributors": "CLI bidragere",
"managerContributors": "Manager bidragere"
}
}

200
assets/i18n/de_DE.json Normal file
View File

@ -0,0 +1,200 @@
{
"okButton": "OK",
"cancelButton": "Abbrechen",
"updateButton": "Aktualisieren",
"enabledLabel": "Aktiviert",
"disabledLabel": "Deaktiviert",
"yesButton": "Ja",
"noButton": "Nein",
"warning": "Warnung",
"navigationView": {
"dashboardTab": "Übersicht",
"patcherTab": "Patcher",
"settingsTab": "Einstellungen"
},
"homeView": {
"widgetTitle": "Übersicht",
"updatesSubtitle": "Aktualisierungen",
"patchedSubtitle": "Gepatchte Apps",
"updatesAvailable": "Aktualisierungen verfügbar",
"noUpdates": "Keine Aktualisierungen verfügbar",
"WIP": "In Bearbeitung...",
"noInstallations": "Keine gepatchten Apps installiert",
"installed": "Installiert",
"updateDialogTitle": "Manager aktualisieren",
"updateChangelogTitle": "Änderungsverlauf",
"notificationTitle": "Update heruntergeladen",
"notificationText": "Tippen um Update zu installieren",
"downloadingMessage": "Aktualisierung wird heruntergeladen...",
"installingMessage": "Update wird installiert...",
"errorDownloadMessage": "Aktualisierung konnte nicht heruntergeladen werden",
"errorInstallMessage": "Aktualisierung konnte nicht installiert werden",
"noConnection": "Keine Internetverbindung",
"updatesDisabled": "Das Aktualisieren einer gepatchten App ist derzeit deaktiviert. Patche die App erneut."
},
"applicationItem": {
"patchButton": "Patchen",
"infoButton": "Info",
"changelogLabel": "Änderungsverlauf"
},
"latestCommitCard": {
"loadingLabel": "Lädt...",
"timeagoLabel": "vor {time}",
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "Manager aktualisieren"
},
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Patchen",
"patchDialogText": "Du hast einen Patch ausgewählt und eine geteilte APK-Installation wurde entdeckt, daher können Fehler beim Patchen auftreten.\nMöchtest du wirklich die geteilte APK patchen?"
},
"appSelectorCard": {
"widgetTitle": "Wähle eine App aus",
"widgetTitleSelected": "Ausgewählte App",
"widgetSubtitle": "Keine App ausgewählt",
"noAppsLabel": "Keine Apps gefunden",
"currentVersion": "Aktuell",
"recommendedVersion": "Empfohlen",
"anyVersion": "beliebig"
},
"patchSelectorCard": {
"widgetTitle": "Patches auswählen",
"widgetTitleSelected": "Ausgewählte Patches",
"widgetSubtitle": "Wähle zuerst eine App",
"widgetEmptySubtitle": "Keine Patches ausgewählt"
},
"socialMediaCard": {
"widgetTitle": "Soziale Netzwerke",
"widgetSubtitle": "Wir sind online!"
},
"appSelectorView": {
"viewTitle": "Wähle eine App aus",
"searchBarHint": "Apps suchen",
"storageButton": "Speicher",
"errorMessage": "Ausgewählte App kann nicht verwendet werden"
},
"patchesSelectorView": {
"viewTitle": "Patches auswählen",
"searchBarHint": "Patches suchen",
"doneButton": "Fertig",
"recommended": "Empfohlen",
"all": "Alle",
"none": "Keine",
"loadPatchesSelection": "Patchauswahl laden",
"noSavedPatches": "Keine gespeicherten Patches für die ausgewählte App. Drücke „Fertig” zum Speichern der aktuellen Auswahl.",
"noPatchesFound": "Keine Patches für die ausgewählte App gefunden",
"selectAllPatchesWarningContent": "Du bist dabei alle Patches auszuwählen, dies beinhaltet nicht empfohlene Patches und kann zu unerwünschtem Verhalten führen."
},
"patchItem": {
"unsupportedDialogText": "Die Auswahl dieses Patches kann zu Fehlern beim Patchen führen.\n\nApp-Version: {packageVersion}\nUnterstützte Versionen:\n{supportedVersions}",
"unsupportedPatchVersion": "Der Patch unterstützt diese Version der App nicht. Aktiviere in den Einstellungen die experimentellen Funktionen, um fortzufahren."
},
"installerView": {
"widgetTitle": "Installer",
"installButton": "Installieren",
"installRootButton": "Als Root installieren",
"openButton": "Öffnen",
"shareButton": "Datei teilen",
"notificationTitle": "ReVanced Manager patcht",
"notificationText": "Tippen, um zum Installer zurückzukehren",
"shareApkMenuOption": "APK teilen",
"exportApkMenuOption": "APK exportieren",
"shareLogMenuOption": "Protokoll teilen",
"installErrorDialogTitle": "Fehler",
"installErrorDialogText1": "Installation per Root ist mit den aktuell ausgewählten Patches nicht möglich.\nPatche die App erneut oder installiere sie ohne Root.",
"installErrorDialogText2": "Installation ohne Root-Rechte ist mit den aktuell ausgewählten Patches nicht möglich.\nPatche die App erneut oder installiere sie mit Root-Rechten, wenn dein Gerät gerooted ist.",
"installErrorDialogText3": "Root-Installation ist nicht möglich, da die ursprüngliche APK aus dem Speicher ausgewählt wurde.\nWähle eine installierte App oder wähle die Installation ohne Root.",
"noExit": "Der Installer wird noch ausgeführt, kann nicht beendet werden..."
},
"settingsView": {
"widgetTitle": "Einstellungen",
"appearanceSectionTitle": "Darstellung",
"teamSectionTitle": "Team",
"infoSectionTitle": "Informationen",
"advancedSectionTitle": "Erweitert",
"logsSectionTitle": "Logs",
"darkThemeLabel": "Dunkler Modus",
"darkThemeHint": "Willkommen auf der dunklen Seite",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Genieße ein Erlebnis näher an deinem Gerät",
"languageLabel": "Sprache",
"englishOption": "Englisch",
"sourcesLabel": "Quellen",
"sourcesLabelHint": "Konfiguriere deine eigenen Quellen",
"hostRepositoryLabel": "Repository-API",
"orgPatchesLabel": "Patches Organisation",
"sourcesPatchesLabel": "Quelle für Patche",
"orgIntegrationsLabel": "Integrationen Organisation",
"sourcesIntegrationsLabel": "Quelle für Integrationen",
"sourcesResetDialogTitle": "Zurücksetzen",
"sourcesResetDialogText": "Bist du dir sicher, dass du die benutzerdefinierten Quellen auf ihre Standardwerte zurücksetzen möchtest?",
"apiURLResetDialogText": "Bist du dir sicher, dass du die API-URL auf ihren Standardwert zurücksetzen möchtest?",
"contributorsLabel": "Mitwirkende",
"contributorsHint": "Eine Liste der Mitwirkenden von ReVanced",
"logsLabel": "Protokolle",
"logsHint": "Manager-Protokolle teilen",
"apiURLLabel": "API-URL",
"apiURLHint": "Konfiguriere deine eigene API-URL",
"selectApiURL": "API URL",
"experimentalUniversalPatchesLabel": "Unterstützung für universelle Patches (experimentell)",
"experimentalUniversalPatchesHint": "Zeigt alle Apps zur Verwendung mit universellen Patches, dadurch lädt die App-Liste evtl. langsamer",
"experimentalPatchesLabel": "Experimentelle Patches aktiviert",
"experimentalPatchesHint": "Erlaubt die Benutzung von nicht unterstützten Patches mit jeder App Version",
"enabledExperimentalPatches": "Experimentelle Patches Unterstützung aktiviert",
"exportSectionTitle": "Import und Export",
"aboutLabel": "Über",
"snackbarMessage": "In die Zwischenablage kopiert",
"sentryLabel": "Sentry-Protokollierung",
"sentryHint": "Sende anonyme Protokolle, um den ReVanced Manager zu verbessern",
"restartAppForChanges": "Starte die App neu um die Änderungen zu übernehmen",
"deleteKeystoreLabel": "Den Schlüsselspeicher löschen",
"deleteKeystoreHint": "Löschen des Schlüsselspeichers, der zum Signieren der Anwendung verwendet wurde",
"deletedKeystore": "Schlüsselspeicher gelöscht",
"deleteTempDirLabel": "Lösche temporäre Dateien",
"deleteTempDirHint": "Unbenutzte temporäre Dateien löschen",
"deletedTempDir": "Temporäre Dateien gelöscht",
"exportPatchesLabel": "Patchauswahl exportieren",
"exportPatchesHint": "Patchauswahl als JSON-Datei exportieren",
"exportedPatches": "Patchauswahl exportiert",
"noExportFileFound": "Keine Patches zum Exportieren ausgewählt",
"importPatchesLabel": "Patchauswahl importieren",
"importPatchesHint": "Patchauswahl aus JSON-Datei importieren",
"importedPatches": "Patchauswahl importiert",
"resetStoredPatchesLabel": "Patches zurücksetzen",
"resetStoredPatchesHint": "Gespeicherte Auswahl der Patches zurücksetzen",
"resetStoredPatches": "Patchauswahl wurde zurückgesetzt",
"jsonSelectorErrorMessage": "Ausgewählte JSON-Datei kann nicht verwendet werden",
"deleteLogsLabel": "Logs löschen",
"deleteLogsHint": "Lösche gesammelte Logs von dem Manager",
"deletedLogs": "Logs gelöscht"
},
"appInfoView": {
"widgetTitle": "App Info",
"openButton": "Öffnen",
"uninstallButton": "Deinstallieren",
"patchButton": "Patchen",
"unpatchButton": "Patches entfernen",
"unpatchDialogText": "Bist du sicher, dass du die Patches dieser App entfernen möchtest?",
"rootDialogTitle": "Fehler",
"rootDialogText": "Die App wurde mit Superuser-Berechtigungen installiert, aber derzeit hat ReVanced Manager keine Berechtigungen.\nBitte erteile zuerst Superuser-Berechtigungen.",
"packageNameLabel": "Paketname",
"originalPackageNameLabel": "Ursprünglicher Paketname",
"installTypeLabel": "Installationsart",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Nicht gerooted",
"patchedDateLabel": "Patch-Datum",
"patchedDateHint": "{date} um {time}",
"appliedPatchesLabel": "Angewandte Patches",
"appliedPatchesHint": "{quantity} angewandte Patches",
"updateNotImplemented": "Diese Funktion ist noch nicht implementiert"
},
"contributorsView": {
"widgetTitle": "Mitwirkende",
"patcherContributors": "Patcher Mitwirkende",
"patchesContributors": "Patches Mitwirkende",
"integrationsContributors": "Integrations Mitwirkende",
"cliContributors": "CLI mitwirkende",
"managerContributors": "Manager mitwirkende"
}
}

200
assets/i18n/el_GR.json Normal file
View File

@ -0,0 +1,200 @@
{
"okButton": "Εντάξει",
"cancelButton": "Ακύρωση",
"updateButton": "Ενημέρωση",
"enabledLabel": "Ενεργό",
"disabledLabel": "Ανενεργό",
"yesButton": "Ναι",
"noButton": "Όχι",
"warning": "Προειδοποίηση",
"navigationView": {
"dashboardTab": "Πίνακας Ελέγχου",
"patcherTab": "Τροποποιητής",
"settingsTab": "Ρυθμίσεις"
},
"homeView": {
"widgetTitle": "Πίνακας Ελέγχου",
"updatesSubtitle": "Ενημερώσεις",
"patchedSubtitle": "Τροποποιημένες Εφαρμογές",
"updatesAvailable": "Διαθέσιμες ενημερώσεις",
"noUpdates": "Δεν υπάρχουν διαθέσιμες ενημερώσεις",
"WIP": "Υπό κατασκευή...",
"noInstallations": "Δεν έχουν εγκατασταθεί τροποποιημένες εφαρμογές",
"installed": "Εγκατεστημένες",
"updateDialogTitle": "Ενημέρωση του Manager",
"updateChangelogTitle": "Τι νέο υπάρχει",
"notificationTitle": "Η λήψη της ενημέρωσης ολοκληρώθηκε",
"notificationText": "Πατήστε για την εγκατάσταση της ενημέρωσης",
"downloadingMessage": "Λήψη ενημέρωσης...",
"installingMessage": "Εγκατάσταση ενημέρωσης...",
"errorDownloadMessage": "Αδυναμία λήψης ενημέρωσης",
"errorInstallMessage": "Αδυναμία εγκατάστασης ενημέρωσης",
"noConnection": "Δεν υπάρχει σύνδεση στο διαδίκτυο",
"updatesDisabled": "Η ενημέρωση τροποποιημένης εφαρμογής είναι ανενεργή προς το παρόν. Τροποποιήστε την εφαρμογή εκ νέου."
},
"applicationItem": {
"patchButton": "Τροποποίηση",
"infoButton": "Πληροφορίες",
"changelogLabel": "Τι νέο υπάρχει"
},
"latestCommitCard": {
"loadingLabel": "Φόρτωση...",
"timeagoLabel": "{time} πριν",
"patcherLabel": "Τροποποιητής: ",
"managerLabel": "Manager: ",
"updateButton": "Ενημέρωση του Manager"
},
"patcherView": {
"widgetTitle": "Τροποποιητής",
"patchButton": "Τροποποίηση",
"patchDialogText": "Έχετε επιλέξει κάποια τροποποίηση ενώ έχει εντοπιστεί εγκατάσταση split APK, μπορεί να εμφανιστούν σφάλματα κατά την τροποποίηση.\nΕίστε βέβαιοι ότι θέλετε να προχωρήσετε με την τροποποίηση ενός split base APK;"
},
"appSelectorCard": {
"widgetTitle": "Επιλέξτε μια εφαρμογή",
"widgetTitleSelected": "Επιλεγμένη εφαρμογή",
"widgetSubtitle": "Δεν έχει επιλεχθεί εφαρμογή",
"noAppsLabel": "Δεν βρέθηκαν εφαρμογές",
"currentVersion": "Τρέχουσα",
"recommendedVersion": "Προτεινόμενη",
"anyVersion": "οποιαδήποτε"
},
"patchSelectorCard": {
"widgetTitle": "Επιλέξτε τροποποιήσεις",
"widgetTitleSelected": "Επιλεγμένες τροποποιήσεις",
"widgetSubtitle": "Επιλέξτε πρώτα μια εφαρμογή",
"widgetEmptySubtitle": "Δεν επιλέχθηκαν τροποποιήσεις"
},
"socialMediaCard": {
"widgetTitle": "Κοινωνικά Δίκτυα",
"widgetSubtitle": "Είμαστε ενεργοί!"
},
"appSelectorView": {
"viewTitle": "Επιλέξτε μια εφαρμογή",
"searchBarHint": "Αναζήτηση εφαρμογών",
"storageButton": "Αποθηκευτικός χώρος",
"errorMessage": "Αδυναμία χρήσης της επιλεγμένης εφαρμογής"
},
"patchesSelectorView": {
"viewTitle": "Επιλέξτε τροποποιήσεις",
"searchBarHint": "Αναζήτηση τροποποιήσεων",
"doneButton": "Τέλος",
"recommended": "Προτεινόμενα",
"all": "Όλα",
"none": "Κανένα",
"loadPatchesSelection": "Φόρτωση επιλεγμένων τροποποιήσεων",
"noSavedPatches": "Δεν υπάρχουν αποθηκευμένες τροποποιήσεις για την εφαρμογή που επιλέξατε.\nΠατήστε «Τέλος» για να αποθηκεύσετε τις τωρινές επιλογές σας.",
"noPatchesFound": "Δε βρέθηκαν τροποποιήσεις για την επιλεγμένη εφαρμογή",
"selectAllPatchesWarningContent": "Πρόκειται να επιλέξτε όλες τις μη συνιστώμενες τροποποιήσεις, μπορεί να προκληθεί ανεπιθύμητη συμπεριφορά."
},
"patchItem": {
"unsupportedDialogText": "Η επιλογή αυτής της τροποποίησης μπορεί να επιφέρει σφάλματα τροποποίησης.\n\nΈκδοση εφαρμογής: {packageVersion}\nΥποστηριζόμενες εκδόσεις: {supportedVersions}",
"unsupportedPatchVersion": "Η τροποποίηση δεν είναι διαθέσιμη για αυτή την έκδοση της εφαρμογής. Ενεργοποιήστε την «Πειραματική Υποστήριξη Τροποποιήσεων» στις ρυθμίσεις για να συνεχίσετε."
},
"installerView": {
"widgetTitle": "Πρόγραμμα Εγκατάστασης",
"installButton": "Εγκατάσταση",
"installRootButton": "Εγκατάσταση με πρόσβαση root",
"openButton": "Άνοιγμα",
"shareButton": "Κοινοποίηση αρχείου",
"notificationTitle": "Το ReVanced Manager πραγματοποιεί τροποποίηση",
"notificationText": "Πατήστε για να επιστρέψετε στο πρόγραμμα εγκατάστασης",
"shareApkMenuOption": "Κοινοποίηση Αρχείου APK",
"exportApkMenuOption": "Εξαγωγή APK",
"shareLogMenuOption": "Κοινοποίηση αρχείου καταγραφής",
"installErrorDialogTitle": "Σφάλμα",
"installErrorDialogText1": "Η εγκατάσταση με χρήση πρόσβασης root δεν είναι δυνατή με την τρέχουσα επιλογή τροποποιήσεων.\nΤροποποιήστε ξανά την εφαρμογή σας ή επιλέξτε εγκατάσταση χωρίς πρόσβαση root.",
"installErrorDialogText2": "Η εγκατάσταση χωρίς πρόσβαση root δεν είναι δυνατή με την τρέχουσα επιλογή τροποποιήσεων.\nΕπιλέξτε άλλες τροποποιήσεις για την εφαρμογή σας ή επιλέξτε εγκατάσταση με πρόσβαση root αν έχετε πρόσβαση root στη συσκευή σας.",
"installErrorDialogText3": "Η εγκατάσταση με πρόσβαση root δεν είναι δυνατή διότι το αρχικό APK επιλέχθηκε από το χώρο αποθήκευσης.\nΕπιλέξτε μια εγκατεστημένη εφαρμογή ή επιλέξτε εγκατάσταση χωρίς πρόσβαση root.",
"noExit": "Το πρόγραμμα εγκατάστασης εκτελείται ακόμη, αδυναμία εξόδου..."
},
"settingsView": {
"widgetTitle": "Ρυθμίσεις",
"appearanceSectionTitle": "Εμφάνιση",
"teamSectionTitle": "Ομάδα",
"infoSectionTitle": "Πληροφορίες",
"advancedSectionTitle": "Για Προχωρημένους",
"logsSectionTitle": "Αρχεία καταγραφής",
"darkThemeLabel": "Σκουρόχρωμη λειτουργία",
"darkThemeHint": "Καλώς ήλθατε στη σκοτεινή πλευρά",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Εμφάνιση που ταιριάζει με τη δική σας συσκευή",
"languageLabel": "Γλώσσα",
"englishOption": "Αγγλικά",
"sourcesLabel": "Πηγές",
"sourcesLabelHint": "Διαμορφώστε τις δικές σας προσαρμοσμένες πηγές",
"hostRepositoryLabel": "Αποθετήριο API",
"orgPatchesLabel": "Οργάνωση τροποποιήσεων",
"sourcesPatchesLabel": "Πηγή τροποποιήσεων",
"orgIntegrationsLabel": "Οργάνωση ενσωματώσεων",
"sourcesIntegrationsLabel": "Πηγή ενσωματώσεων",
"sourcesResetDialogTitle": "Επαναφορά",
"sourcesResetDialogText": "Είστε βέβαιοι ότι θέλετε να επαναφέρετε τις προσαρμοσμένες πηγές στις προεπιλεγμένες τιμές τους;",
"apiURLResetDialogText": "Είστε βέβαιοι ότι θέλετε να επαναφέρετε το API URL στην προεπιλεγμένη τιμή του;",
"contributorsLabel": "Συνεισφέροντες",
"contributorsHint": "Λίστα με όσους έχουν συμβάλει στο ReVanced",
"logsLabel": "Αρχεία καταγραφής",
"logsHint": "Κοινή χρήση αρχείων καταγραφής του ReVanced Manager",
"apiURLLabel": "API URL",
"apiURLHint": "Διαμορφώστε το δικό σας προσαρμοσμένο API URL",
"selectApiURL": "Διεύθυνση URL API",
"experimentalUniversalPatchesLabel": "Υποστήριξη γενικευμένων πειραματικών τροποποιήσεων",
"experimentalUniversalPatchesHint": "Εμφάνιση όλων των εφαρμογών (για χρήση τροποποιήσεων που λειτουργούν σε κάθε εφαρμογή), η φόρτωση της λίστας εφαρμογών μπορεί να καθυστερεί περισσότερο",
"experimentalPatchesLabel": "Πειραματική υποστήριξη τροποποιήσεων",
"experimentalPatchesHint": "Ενεργοποιήστε το για χρήση μη υποστηριζόμενων τροποποιήσεων, ανεξαρτήτως έκδοσης εφαρμογής",
"enabledExperimentalPatches": "Πειραματική υποστήριξη τροποποιήσεων ενεργή",
"exportSectionTitle": "Εισαγωγή & εξαγωγή",
"aboutLabel": "Σχετικά με",
"snackbarMessage": "Αντιγράφηκε στο πρόχειρο",
"sentryLabel": "Αρχεία καταγραφής «Sentry»",
"sentryHint": "Στείλτε ανώνυμα αρχεία καταγραφής για να μας βοηθήσετε να βελτιώσουμε το ReVanced Manager",
"restartAppForChanges": "Επανεκκινήστε την εφαρμογή για να εφαρμόσετε αλλαγές",
"deleteKeystoreLabel": "Διαγραφή κλειδιών",
"deleteKeystoreHint": "Διαγράψτε το κλειδί που χρησιμοποιείται για την υπογραφή της εφαρμογής",
"deletedKeystore": "Το κλειδί διαγράφηκε",
"deleteTempDirLabel": "Διαγραφή προσωρινών αρχείων",
"deleteTempDirHint": "Διαγραφή των αχρησιμοποίητων προσωρινών αρχείων",
"deletedTempDir": "Τα προσωρινά αρχεία διαγράφηκαν",
"exportPatchesLabel": "Εξαγωγή των επιλεγμένων τροποποιήσεων",
"exportPatchesHint": "Εξαγωγή των επιλεγμένων τροποποιήσεων σε ένα αρχείο JSON",
"exportedPatches": "Η εξαγωγή των επιλεγμένων τροποποιήσεων ολοκληρώθηκε",
"noExportFileFound": "Δεν υπάρχει επιλογή τροποποιήσεων για εξαγωγή",
"importPatchesLabel": "Εισαγωγή των επιλεγμένων τροποποιήσεων",
"importPatchesHint": "Εισαγωγή των επιλεγμένων τροποποιήσεων από ένα αρχείο JSON",
"importedPatches": "Η εισαγωγή των επιλεγμένων τροποποιήσεων ολοκληρώθηκε",
"resetStoredPatchesLabel": "Επαναφορά τροποποιήσεων",
"resetStoredPatchesHint": "Επαναφορά των αποθηκευμένων επιλογών τροποποιήσεων",
"resetStoredPatches": "Η επαναφορά των επιλεγμένων τροποποιήσεων ολοκληρώθηκε",
"jsonSelectorErrorMessage": "Αδυναμία χρήσης του συγκεκριμένου αρχείου JSON",
"deleteLogsLabel": "Διαγραφή αρχείων καταγραφής",
"deleteLogsHint": "Διαγραφή των αρχείων καταγραφής που έχει συλλέξει το ReVanced Manager",
"deletedLogs": "Τα αρχεία καταγραφής έχουν διαγραφεί"
},
"appInfoView": {
"widgetTitle": "Πληροφορίες εφαρμογής",
"openButton": "Άνοιγμα",
"uninstallButton": "Απεγκατάσταση",
"patchButton": "Τροποποίηση",
"unpatchButton": "Κατάργηση Τροποποιήσεων",
"unpatchDialogText": "Είστε βέβαιοι ότι θέλετε να καταργήσετε τις τροποποιήσεις για αυτήν την εφαρμογή;",
"rootDialogTitle": "Σφάλμα",
"rootDialogText": "Η εφαρμογή εγκαταστάθηκε με πρόσβαση root, αλλά αυτή τη στιγμή το ReVanced Manager δεν έχει πρόσβαση root.\nΠαρακαλώ παραχωρήστε πρόσβαση root.",
"packageNameLabel": "Όνομα πακέτου",
"originalPackageNameLabel": "Αρχικό όνομα πακέτου",
"installTypeLabel": "Τύπος εγκατάστασης",
"rootTypeLabel": "Μέσω root",
"nonRootTypeLabel": "Χωρίς root",
"patchedDateLabel": "Ημερομηνία τροποποίησης",
"patchedDateHint": "{date} στις {time}",
"appliedPatchesLabel": "Τροποποιήσεις που έχουν εφαρμοστεί",
"appliedPatchesHint": "{quantity} εφαρμοσμένες τροποποιήσεις",
"updateNotImplemented": "Αυτή η δυνατότητα δεν είναι ακόμα διαθέσιμη"
},
"contributorsView": {
"widgetTitle": "Συνεισφέροντες",
"patcherContributors": "Συνεισφέροντες του τροποποιητή",
"patchesContributors": "Συνεισφέροντες των τροποποιήσεων",
"integrationsContributors": "Συνεισφέροντες των ενσωματώσεων",
"cliContributors": "Συνεισφέροντες του CLI",
"managerContributors": "Συνεισφέροντες του Manager"
}
}

200
assets/i18n/en_US.json Normal file
View File

@ -0,0 +1,200 @@
{
"okButton": "OK",
"cancelButton": "Cancel",
"updateButton": "Update",
"enabledLabel": "Enabled",
"disabledLabel": "Disabled",
"yesButton": "Yes",
"noButton": "No",
"warning": "Warning",
"navigationView": {
"dashboardTab": "Dashboard",
"patcherTab": "Patcher",
"settingsTab": "Settings"
},
"homeView": {
"widgetTitle": "Dashboard",
"updatesSubtitle": "Updates",
"patchedSubtitle": "Patched applications",
"updatesAvailable": "Updates available",
"noUpdates": "No updates available",
"WIP": "Work in progress...",
"noInstallations": "No patched applications installed",
"installed": "Installed",
"updateDialogTitle": "Update Manager",
"updateChangelogTitle": "Changelog",
"notificationTitle": "Update downloaded",
"notificationText": "Tap to install the update",
"downloadingMessage": "Downloading update...",
"installingMessage": "Installing update...",
"errorDownloadMessage": "Unable to download update",
"errorInstallMessage": "Unable to install update",
"noConnection": "No internet connection",
"updatesDisabled": "Updating a patched app is currently disabled. Repatch the app again."
},
"applicationItem": {
"patchButton": "Patch",
"infoButton": "Info",
"changelogLabel": "Changelog"
},
"latestCommitCard": {
"loadingLabel": "Loading...",
"timeagoLabel": "{time} ago",
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "Update Manager"
},
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Patch",
"patchDialogText": "You have selected a resource patch and a split APK installation has been detected, so patching errors may occur.\nAre you sure you want to proceed?"
},
"appSelectorCard": {
"widgetTitle": "Select an application",
"widgetTitleSelected": "Selected application",
"widgetSubtitle": "No application selected",
"noAppsLabel": "No applications found",
"currentVersion": "Current",
"recommendedVersion": "Recommended",
"anyVersion": "any"
},
"patchSelectorCard": {
"widgetTitle": "Select patches",
"widgetTitleSelected": "Selected patches",
"widgetSubtitle": "Select an application first",
"widgetEmptySubtitle": "No patches selected"
},
"socialMediaCard": {
"widgetTitle": "Socials",
"widgetSubtitle": "We are online!"
},
"appSelectorView": {
"viewTitle": "Select an application",
"searchBarHint": "Search applications",
"storageButton": "Storage",
"errorMessage": "Unable to use selected application"
},
"patchesSelectorView": {
"viewTitle": "Select patches",
"searchBarHint": "Search patches",
"doneButton": "Done",
"recommended": "Recommended",
"all": "All",
"none": "None",
"loadPatchesSelection": "Load patches selection",
"noSavedPatches": "No saved patches for the selected app.\nPress Done to save current selection.",
"noPatchesFound": "No patches found for the selected app",
"selectAllPatchesWarningContent": "You are about to select all patches, that includes unrecommended patches and can cause unwanted behavior."
},
"patchItem": {
"unsupportedDialogText": "Selecting this patch may result in patching errors.\n\nApp version: {packageVersion}\nSupported versions:\n{supportedVersions}",
"unsupportedPatchVersion": "Patch is not supported for this app version. Enable the experimental toggle in settings to proceed."
},
"installerView": {
"widgetTitle": "Installer",
"installButton": "Install",
"installRootButton": "Install as Root",
"openButton": "Open",
"shareButton": "Share file",
"notificationTitle": "ReVanced Manager is patching",
"notificationText": "Tap to return to the installer",
"shareApkMenuOption": "Share APK",
"exportApkMenuOption": "Export APK",
"shareLogMenuOption": "Share log",
"installErrorDialogTitle": "Error",
"installErrorDialogText1": "Root install is not possible with the current patches selection.\nRepatch your app or choose non-root install.",
"installErrorDialogText2": "Non-root install is not possible with the current patches selection.\nRepatch your app or choose root install if you have your device rooted.",
"installErrorDialogText3": "Root install is not possible as the original APK was selected from storage.\nSelect an installed app or choose non-root install.",
"noExit": "Installer is still running, cannot exit..."
},
"settingsView": {
"widgetTitle": "Settings",
"appearanceSectionTitle": "Appearance",
"teamSectionTitle": "Team",
"infoSectionTitle": "Info",
"advancedSectionTitle": "Advanced",
"logsSectionTitle": "Logs",
"darkThemeLabel": "Dark mode",
"darkThemeHint": "Welcome to the dark side",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Enjoy an experience closer to your device",
"languageLabel": "Language",
"englishOption": "English",
"sourcesLabel": "Sources",
"sourcesLabelHint": "Configure your custom sources",
"hostRepositoryLabel": "Repository API",
"orgPatchesLabel": "Patches organization",
"sourcesPatchesLabel": "Patches source",
"orgIntegrationsLabel": "Integrations organization",
"sourcesIntegrationsLabel": "Integrations source",
"sourcesResetDialogTitle": "Reset",
"sourcesResetDialogText": "Are you sure you want to reset custom sources to their default values?",
"apiURLResetDialogText": "Are you sure you want to reset API URL to its default value?",
"contributorsLabel": "Contributors",
"contributorsHint": "A list of contributors of ReVanced",
"logsLabel": "Logs",
"logsHint": "Share Manager's logs",
"apiURLLabel": "API URL",
"apiURLHint": "Configure your custom API URL",
"selectApiURL": "API URL",
"experimentalUniversalPatchesLabel": "Experimental universal patches support",
"experimentalUniversalPatchesHint": "Display all applications to use with universal patches, loading list of apps may be slower",
"experimentalPatchesLabel": "Experimental patches support",
"experimentalPatchesHint": "Enable usage of unsupported patches in any app version",
"enabledExperimentalPatches": "Experimental patches support enabled",
"exportSectionTitle": "Import & export",
"aboutLabel": "About",
"snackbarMessage": "Copied to clipboard",
"sentryLabel": "Sentry logging",
"sentryHint": "Send anonymous logs to help us improve ReVanced Manager",
"restartAppForChanges": "Restart the app to apply changes",
"deleteKeystoreLabel": "Delete keystore",
"deleteKeystoreHint": "Delete the keystore used to sign the app",
"deletedKeystore": "Keystore deleted",
"deleteTempDirLabel": "Delete temporary files",
"deleteTempDirHint": "Delete unused temporary files",
"deletedTempDir": "Temporary files deleted",
"exportPatchesLabel": "Export patches selection",
"exportPatchesHint": "Export patches selection to a JSON file",
"exportedPatches": "Patches selection exported",
"noExportFileFound": "No patches selection to export",
"importPatchesLabel": "Import patches selection",
"importPatchesHint": "Import patches selection from a JSON file",
"importedPatches": "Patches selection imported",
"resetStoredPatchesLabel": "Reset patches",
"resetStoredPatchesHint": "Reset the stored patches selection",
"resetStoredPatches": "Patches selection has been reset",
"jsonSelectorErrorMessage": "Unable to use selected JSON file",
"deleteLogsLabel": "Delete logs",
"deleteLogsHint": "Delete collected manager logs",
"deletedLogs": "Logs deleted"
},
"appInfoView": {
"widgetTitle": "App info",
"openButton": "Open",
"uninstallButton": "Uninstall",
"patchButton": "Patch",
"unpatchButton": "Unpatch",
"unpatchDialogText": "Are you sure you want to unpatch this app?",
"rootDialogTitle": "Error",
"rootDialogText": "App was installed with superuser permissions, but currently ReVanced Manager has no permissions.\nPlease grant superuser permissions first.",
"packageNameLabel": "Package name",
"originalPackageNameLabel": "Original package name",
"installTypeLabel": "Installation type",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Non-root",
"patchedDateLabel": "Patched date",
"patchedDateHint": "{date} at {time}",
"appliedPatchesLabel": "Applied patches",
"appliedPatchesHint": "{quantity} applied patches",
"updateNotImplemented": "This feature has not been implemented yet"
},
"contributorsView": {
"widgetTitle": "Contributors",
"patcherContributors": "Patcher contributors",
"patchesContributors": "Patches contributors",
"integrationsContributors": "Integrations contributors",
"cliContributors": "CLI contributors",
"managerContributors": "Manager contributors"
}
}

200
assets/i18n/es_ES.json Normal file
View File

@ -0,0 +1,200 @@
{
"okButton": "OK",
"cancelButton": "Cancelar",
"updateButton": "Actualizar",
"enabledLabel": "Activado",
"disabledLabel": "Desactivado",
"yesButton": "Sí",
"noButton": "No",
"warning": "Advertencia",
"navigationView": {
"dashboardTab": "Panel de control",
"patcherTab": "Parcheador",
"settingsTab": "Configuración"
},
"homeView": {
"widgetTitle": "Panel",
"updatesSubtitle": "Actualizaciones",
"patchedSubtitle": "Aplicaciones parcheadas",
"updatesAvailable": "Actualizaciones disponibles",
"noUpdates": "No hay actualizaciones disponibles",
"WIP": "Trabajo en progreso...",
"noInstallations": "No hay aplicaciones parcheadas instaladas",
"installed": "Instalado",
"updateDialogTitle": "Actualizar Manager",
"updateChangelogTitle": "Registro de cambios",
"notificationTitle": "Actualización descargada",
"notificationText": "Toca para instalar la actualización",
"downloadingMessage": "Descargando actualización...",
"installingMessage": "Instalando actualización...",
"errorDownloadMessage": "No se pudo descargar la actualización",
"errorInstallMessage": "No se pudo instalar la actualización",
"noConnection": "No hay conexión a Internet",
"updatesDisabled": "La actualización de una app parcheada está deshabilitada. Re-parchea la app de nuevo."
},
"applicationItem": {
"patchButton": "Parchear",
"infoButton": "Información",
"changelogLabel": "Historial de cambios"
},
"latestCommitCard": {
"loadingLabel": "Cargando...",
"timeagoLabel": "Hace {time}",
"patcherLabel": "Parcheador: ",
"managerLabel": "Manager: ",
"updateButton": "Actualizar Manager"
},
"patcherView": {
"widgetTitle": "Parcheador",
"patchButton": "Parchear",
"patchDialogText": "Acaba de seleccionar un parche de recursos y un \"Split APK\" ha sido detectado, así que pueden ocurrir algunos errores en el proceso de parcheo.\n¿Está seguro de que quiere continuar el parcheo de un \"Split APK\"?"
},
"appSelectorCard": {
"widgetTitle": "Selecciona una aplicación",
"widgetTitleSelected": "Aplicación seleccionada",
"widgetSubtitle": "Ninguna aplicación seleccionada",
"noAppsLabel": "No se encontraron aplicaciones",
"currentVersion": "Versión actual",
"recommendedVersion": "Versión recomendada",
"anyVersion": "cualquiera"
},
"patchSelectorCard": {
"widgetTitle": "Seleccionar parches",
"widgetTitleSelected": "Parches seleccionados",
"widgetSubtitle": "Seleccioné una aplicación antes",
"widgetEmptySubtitle": "Ningún parche seleccionado"
},
"socialMediaCard": {
"widgetTitle": "Redes sociales",
"widgetSubtitle": "¡Estamos en la red!"
},
"appSelectorView": {
"viewTitle": "Selecciona una aplicación",
"searchBarHint": "Buscar aplicaciones",
"storageButton": "Almacenamiento",
"errorMessage": "No se puede usar la aplicación seleccionada"
},
"patchesSelectorView": {
"viewTitle": "Seleccionar parches",
"searchBarHint": "Buscar parches",
"doneButton": "Listo",
"recommended": "Recomendados",
"all": "Todos",
"none": "Ninguno",
"loadPatchesSelection": "Cargar selección de parches",
"noSavedPatches": "No hay parches guardados para la app seleccionada\nPresione Hecho para guardar la selección actual.",
"noPatchesFound": "No se encontraron parches para la aplicación seleccionada",
"selectAllPatchesWarningContent": "Está a punto de seleccionar todos los parches incluyendo parches no recomendados, lo cual puede causar comportamientos inesperados."
},
"patchItem": {
"unsupportedDialogText": "Seleccionar este parche puede causar errores.\n\nVersión de la app: {packageVersion}\nVersiones compatibles:\n{supportedVersions}",
"unsupportedPatchVersion": "El parche no es compatible con esta versión de la app. Habilita la opción experimental en los ajustes para continuar."
},
"installerView": {
"widgetTitle": "Instalador",
"installButton": "Instalar",
"installRootButton": "Instalar como Root",
"openButton": "Abrir",
"shareButton": "Compartir archivo",
"notificationTitle": "ReVanced Manager está parcheando",
"notificationText": "Toque para volver al instalador",
"shareApkMenuOption": "Compartir APK",
"exportApkMenuOption": "Exportar APK",
"shareLogMenuOption": "Compartir registros",
"installErrorDialogTitle": "Error",
"installErrorDialogText1": "La instalación como root no es posible con la selección actual de parches.\nVuelva a parchear la aplicación o elija una instalación no-root.",
"installErrorDialogText2": "La instalación sin root no es posible con la selección actual de parches.\nVuelva a parchear la app o elija una instalación root.",
"installErrorDialogText3": "La instalación como root no es posible porque la APK original fue seleccionada desde el almacenamiento.\nSeleccione una app ya instalada o utilice una instalación sin root.",
"noExit": "El instalador todavía se está ejecutando, no se puede salir..."
},
"settingsView": {
"widgetTitle": "Configuración",
"appearanceSectionTitle": "Apariencia",
"teamSectionTitle": "Equipo",
"infoSectionTitle": "Info",
"advancedSectionTitle": "Avanzado",
"logsSectionTitle": "Registros",
"darkThemeLabel": "Modo oscuro",
"darkThemeHint": "Bienvenido al lado oscuro",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Disfrute de una experiencia más acorde a su dispositivo",
"languageLabel": "Idioma",
"englishOption": "Inglés",
"sourcesLabel": "Fuentes",
"sourcesLabelHint": "Configure sus fuentes personalizadas",
"hostRepositoryLabel": "Repositorio API",
"orgPatchesLabel": "Organización de los parches",
"sourcesPatchesLabel": "Fuente de los parches",
"orgIntegrationsLabel": "Organización de integraciones",
"sourcesIntegrationsLabel": "Fuente de las integraciones",
"sourcesResetDialogTitle": "Restablecer",
"sourcesResetDialogText": "¿Está seguro de que desea restablecer las fuentes personalizadas a sus valores predeterminados?",
"apiURLResetDialogText": "¿Estás seguro de que quieres restablecer la URL de la API a su valor predeterminado?",
"contributorsLabel": "Contribuidores",
"contributorsHint": "Una lista de contribuidores de ReVanced",
"logsLabel": "Registros",
"logsHint": "Compartir registros del Manager",
"apiURLLabel": "URL de la API",
"apiURLHint": "Configure su URL personalizada para la API",
"selectApiURL": "URL de la API",
"experimentalUniversalPatchesLabel": "Soporte experimental para parches universales",
"experimentalUniversalPatchesHint": "Mostrar todas las aplicaciones a usar con parches universales, la carga de la lista de aplicaciones puede ser más lenta",
"experimentalPatchesLabel": "Soporte para parches experimentales",
"experimentalPatchesHint": "Habilite el uso de parches no compatibles en cualquier versión de la app",
"enabledExperimentalPatches": "Soporte para parches experimentales activado",
"exportSectionTitle": "Importar y Exportar",
"aboutLabel": "Acerca de",
"snackbarMessage": "Copiado al portapapeles",
"sentryLabel": "Registro Sentry",
"sentryHint": "Enviar registros anónimos para ayudarnos a mejorar ReVanced Manager",
"restartAppForChanges": "Reinicie la app para aplicar los cambios",
"deleteKeystoreLabel": "Eliminar keystore",
"deleteKeystoreHint": "Eliminar el keystore usado para firmar la app",
"deletedKeystore": "Keystore eliminado",
"deleteTempDirLabel": "Borrar archivos temporales",
"deleteTempDirHint": "Eliminar archivos temporales no utilizados",
"deletedTempDir": "Archivos temporales eliminados",
"exportPatchesLabel": "Exportar la selección de parches",
"exportPatchesHint": "Exportar selección de parches a un archivo JSON",
"exportedPatches": "Selección de parches exportados",
"noExportFileFound": "No hay selección de parches para exportar",
"importPatchesLabel": "Importar la selección de parches",
"importPatchesHint": "Importar selección de parches desde un archivo JSON",
"importedPatches": "Selección de parches importados",
"resetStoredPatchesLabel": "Restablecer parches",
"resetStoredPatchesHint": "Restablece la selección de parches almacenados",
"resetStoredPatches": "La selección de parches ha sido restablecida",
"jsonSelectorErrorMessage": "No se puede utilizar el archivo JSON seleccionado",
"deleteLogsLabel": "Eliminar registros",
"deleteLogsHint": "Borrar los registros del Manager recopilados",
"deletedLogs": "Registros eliminados"
},
"appInfoView": {
"widgetTitle": "Información de la app",
"openButton": "Abrir",
"uninstallButton": "Desinstalar",
"patchButton": "Parchear",
"unpatchButton": "Desparchear",
"unpatchDialogText": "¿Está seguro de que desea desparchear esta aplicación?",
"rootDialogTitle": "Error",
"rootDialogText": "La app se instaló con permisos de superusuario, pero actualmente ReVanced Manager no tiene permisos.\nPor favor, concede permisos de superusuario primero.",
"packageNameLabel": "Nombre del paquete",
"originalPackageNameLabel": "Nombre del paquete original",
"installTypeLabel": "Tipo de instalación",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "No-Root",
"patchedDateLabel": "Fecha del parche",
"patchedDateHint": "{date} a las {time}",
"appliedPatchesLabel": "Parches aplicados",
"appliedPatchesHint": "{quantity} parches aplicados",
"updateNotImplemented": "Esta función no se ha implementado aún"
},
"contributorsView": {
"widgetTitle": "Contribuidores",
"patcherContributors": "Contribuidores de los parches",
"patchesContributors": "Contribuidores de los parches",
"integrationsContributors": "Contribuidores de las integraciones",
"cliContributors": "Contribuidores del CLI",
"managerContributors": "Contribuidores del Manager"
}
}

196
assets/i18n/es_MX.json Normal file
View File

@ -0,0 +1,196 @@
{
"okButton": "Ok",
"cancelButton": "Cancelar",
"enabledLabel": "Activado",
"disabledLabel": "Desactivado",
"yesButton": "Si",
"noButton": "No",
"warning": "Advertencia",
"navigationView": {
"dashboardTab": "Panel de control",
"patcherTab": "Aplicador de parches",
"settingsTab": "Ajustes"
},
"homeView": {
"widgetTitle": "Panel de control",
"updatesSubtitle": "Actualizaciones",
"patchedSubtitle": "Aplicaciones parcheadas",
"updatesAvailable": "Actualizaciones disponibles",
"noUpdates": "No hay actualizaciones disponibles",
"WIP": "Trabajo en curso...",
"noInstallations": "No hay aplicaciones parcheadas instaladas",
"installed": "Instaladas",
"updateDialogTitle": "Actualizar administrador",
"updateDialogText": "¿Estás seguro de que quieres descargar y actualizar ReVanced Manager?",
"notificationTitle": "Actualización descargada",
"notificationText": "Toca para instalar la actualización",
"downloadingMessage": "Descargando actualización...",
"installingMessage": "Instalando actualización...",
"errorDownloadMessage": "No se pudo descargar la actualización",
"errorInstallMessage": "Error al instalar la actualización",
"noConnection": "Sin conexión a internet",
"updatesDisabled": "La actualización de una aplicación parcheada está deshabilitada. Vuelve a parchear la aplicación."
},
"applicationItem": {
"patchButton": "Parchear",
"infoButton": "Información",
"changelogLabel": "Registro de cambios"
},
"latestCommitCard": {
"loadingLabel": "Cargando...",
"timeagoLabel": "hace {time}",
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "Actualizar ReVanced Manager"
},
"patcherView": {
"widgetTitle": "Parcheador",
"patchButton": "Parchear",
"patchDialogText": "Seleccionaste un parche de recursos y se ha detectado una instalación de APK dividida, por lo que pueden ocurrir errores de parcheado.\n¿Estás seguro de que deseas continuar?"
},
"appSelectorCard": {
"widgetTitle": "Selecciona una aplicación",
"widgetTitleSelected": "Aplicación seleccionada",
"widgetSubtitle": "Ninguna aplicación seleccionada",
"noAppsLabel": "No se encontraron aplicaciones",
"currentVersion": "Versión actual",
"recommendedVersion": "Versión recomendada",
"anyVersion": "Cualquier versión"
},
"patchSelectorCard": {
"widgetTitle": "Seleccionar parches",
"widgetTitleSelected": "Parches seleccionados",
"widgetSubtitle": "Seleccione primero una aplicación",
"widgetEmptySubtitle": "Ningún parche seleccionado"
},
"socialMediaCard": {
"widgetTitle": "Redes sociales",
"widgetSubtitle": "¡Estamos en línea!"
},
"appSelectorView": {
"viewTitle": "Selecciona una aplicación",
"searchBarHint": "Buscar aplicaciones",
"storageButton": "Almacenamiento",
"errorMessage": "No se puede usar la aplicación seleccionada"
},
"patchesSelectorView": {
"viewTitle": "Selecciona parches",
"searchBarHint": "Buscar parches",
"doneButton": "Completado",
"recommended": "Recomendados",
"all": "Todos",
"none": "Ninguno",
"loadPatchesSelection": "Cargar parches seleccionados",
"noSavedPatches": "No hay parches guardados para la aplicacion seleccionada\nPresiona Listo para guardar la seleccion actual",
"noPatchesFound": "No se encontraron parches para la aplicación seleccionada",
"selectAllPatchesWarningContent": "Estás seleccionando todos los parches, esto incluye algunos que no están recomendados y podrían causar comportamientos inadecuados."
},
"patchItem": {
"unsupportedDialogText": "Seleccionar este parche puede causar errores.\n\nVersión de la app: {packageVersion}\nVersiones compatibles:\n{supportedVersions}",
"unsupportedPatchVersion": "El parche no es compatible con esta versión de la aplicación. Activa la opción experimental en la configuración para continuar."
},
"installerView": {
"widgetTitle": "Instalador",
"installButton": "Instalar",
"installRootButton": "Instalar como Root",
"openButton": "Abrir",
"shareButton": "Compartir archivo",
"notificationTitle": "ReVanced Manager está parcheando",
"notificationText": "Pulsa para volver al instalador",
"shareApkMenuOption": "Compartir APK",
"exportApkMenuOption": "Exportar APK",
"shareLogMenuOption": "Compartir registro",
"installErrorDialogTitle": "Error",
"installErrorDialogText1": "La instalación de root no es posible con la selección de parches actual.\nVuelva a parchar su aplicación o elija una instalación sin-root.",
"installErrorDialogText2": "La instalación sin-root no es posible con la selección de parches actual.\nVuelva a parchar su aplicación o elija una instalación con root, si tu dispositivo cuenta con ello.",
"installErrorDialogText3": "La instalación con Root no es posible ya que la APK fue seleccionada desde el almacenamiento.\nSelecciona una aplicación instalada o elige la opcion no-root.",
"noExit": "El instalador se está ejecutando, no puedes salir..."
},
"settingsView": {
"widgetTitle": "Ajustes",
"appearanceSectionTitle": "Apariencia",
"teamSectionTitle": "Equipo",
"infoSectionTitle": "Información",
"advancedSectionTitle": "Avanzado",
"logsSectionTitle": "Registros",
"darkThemeLabel": "Modo oscuro",
"darkThemeHint": "Bienvenido al lado oscuro",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Disfruta de una experiencia más cercana a tu dispositivo",
"languageLabel": "Idioma",
"englishOption": "Inglés",
"sourcesLabel": "Fuentes",
"sourcesLabelHint": "Configura tus fuentes personalizadas",
"orgPatchesLabel": "Organización de parches",
"sourcesPatchesLabel": "Fuente de los parches",
"orgIntegrationsLabel": "Organización de integraciones",
"sourcesIntegrationsLabel": "Fuente de integraciones",
"sourcesResetDialogTitle": "Reiniciar",
"sourcesResetDialogText": "¿Esta seguro de reiniciar las fuentes personalizadas a su valor predeterminado?",
"apiURLResetDialogText": "¿Esta seguro de restablecer la URL de la API a su valor predeterminado?",
"contributorsLabel": "Contribuidores",
"contributorsHint": "Lista de contribuidores de ReVanced",
"logsLabel": "Registros",
"logsHint": "Compartir registros de la aplicación",
"apiURLLabel": "URL API",
"apiURLHint": "Configure la URL personalizada de la API",
"selectApiURL": "URL de la API",
"experimentalPatchesLabel": "Soporte a parches experimentales",
"experimentalPatchesHint": "Habilite el uso de parches no compatibles en cualquier versión de la aplicación",
"enabledExperimentalPatches": "Soporte a parches experimentales activado",
"exportSectionTitle": "Importar y Exportar",
"aboutLabel": "Acerca de",
"snackbarMessage": "Copiado al portapapeles",
"sentryLabel": "Registro centinela",
"sentryHint": "Enviar registros anónimos para ayudarnos a mejorar ReVanced Manager",
"restartAppForChanges": "Reinicie la aplicación para aplicar los cambios",
"deleteKeystoreLabel": "Eliminar keystore",
"deleteKeystoreHint": "Eliminar el keystore usado para firmar la app",
"deletedKeystore": "Keystore eliminado",
"deleteTempDirLabel": "Borrar archivos temporales",
"deleteTempDirHint": "Eliminar archivos temporales sin utilizar",
"deletedTempDir": "Archivos temporales eliminados",
"exportPatchesLabel": "Exportar la selección de parches",
"exportPatchesHint": "Exportar selección de parches a un archivo JSON",
"exportedPatches": "Selección de parches exportada",
"noExportFileFound": "No hay selección de parches para exportar",
"importPatchesLabel": "Importar selección de parches",
"importPatchesHint": "Importar selección de parches desde un archivo JSON",
"importedPatches": "Selección de parches importada",
"resetStoredPatchesLabel": "Restablecer parches",
"resetStoredPatchesHint": "Restablecer la selección de parches almacenados",
"resetStoredPatches": "Se ha restablecido la selección de parches",
"jsonSelectorErrorMessage": "No se puede utilizar el archivo JSON seleccionado",
"deleteLogsLabel": "Eliminar registros",
"deleteLogsHint": "Borrar los registros del administrador",
"deletedLogs": "Registros eliminados"
},
"appInfoView": {
"widgetTitle": "Informacion de la applicacion",
"openButton": "Abrir",
"uninstallButton": "Desinstalar",
"patchButton": "Parchar",
"unpatchButton": "Desparchar",
"unpatchDialogText": "¿Estás seguro que quieres remover el parche?",
"rootDialogTitle": "Error",
"rootDialogText": "La aplicación se instaló con permisos de superusuario, pero actualmente ReVanced Manager no tiene permisos.\nPor favor, conceda primero los permisos de superusuario.",
"packageNameLabel": "Nombre del paquete",
"originalPackageNameLabel": "Original package name",
"installTypeLabel": "Installation type",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Sin-Root",
"patchedDateLabel": "Fecha de parcheo",
"patchedDateHint": "{date} a las {time}",
"appliedPatchesLabel": "Parches aplicados",
"appliedPatchesHint": "{quantity} parches aplicados",
"updateNotImplemented": "Esta función aún no se ha implementado"
},
"contributorsView": {
"widgetTitle": "Contribuidores",
"patcherContributors": "Colaboradores del parcheador",
"patchesContributors": "Colaboradores de parches",
"integrationsContributors": "Colaboradores de la integración",
"cliContributors": "Colaboradores de la CLI",
"managerContributors": "Colaboradores del administrador"
}
}

196
assets/i18n/fi_FI.json Normal file
View File

@ -0,0 +1,196 @@
{
"okButton": "OK",
"cancelButton": "Peruuta",
"enabledLabel": "Käytössä",
"disabledLabel": "Poistettu käytöstä",
"yesButton": "Kyllä",
"noButton": "Ei",
"warning": "Varoitus",
"navigationView": {
"dashboardTab": "Hallinta",
"patcherTab": "Patcher",
"settingsTab": "Asetukset"
},
"homeView": {
"widgetTitle": "Hallintapaneeli",
"updatesSubtitle": "Päivitykset",
"patchedSubtitle": "Paikatut sovellukset",
"updatesAvailable": "Päivityksiä on saatavilla",
"noUpdates": "Päivityksiä ei ole saatavilla",
"WIP": "Työn alla...",
"noInstallations": "Paikattuja sovelluksia ei ole asennettu",
"installed": "Asennettu",
"updateDialogTitle": "Päivitä Manager",
"updateDialogText": "Haluatko varmasti ladata ja päivittää ReVanced Managerin?",
"notificationTitle": "Päivitys ladattu",
"notificationText": "Asenna päivitys napauttamalla",
"downloadingMessage": "Ladataan päivitystä...",
"installingMessage": "Asennetaan päivitystä...",
"errorDownloadMessage": "Päivityksen lataus epäonnistui",
"errorInstallMessage": "Päivityksen asennus epäonnistui",
"noConnection": "Ei internetyhteyttä",
"updatesDisabled": "Paikatun sovelluksen päivitys ei tällä hetkellä ole käytössä. Paikkaa sovellus uudelleen."
},
"applicationItem": {
"patchButton": "Paikkaa",
"infoButton": "Info",
"changelogLabel": "Muutosloki"
},
"latestCommitCard": {
"loadingLabel": "Ladataan...",
"timeagoLabel": "{time} sitten",
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "Päivitä Manager"
},
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Paikkaa",
"patchDialogText": "Olet valinnut resurssipaikkauksen ja havaittu asennus on ns. split APK -tyyppinen, joten paikkausvirheet ovat mahdollisia.\nHaluatko varmasti jatkaa ja paikata split APK -asennuksen?"
},
"appSelectorCard": {
"widgetTitle": "Valitse sovellus",
"widgetTitleSelected": "Valittu sovellus",
"widgetSubtitle": "Sovellusta ei ole valittu",
"noAppsLabel": "Sovelluksia ei löytynyt",
"currentVersion": "Nykyinen",
"recommendedVersion": "Suositeltu",
"anyVersion": "mikä tahansa"
},
"patchSelectorCard": {
"widgetTitle": "Valitse paikkaukset",
"widgetTitleSelected": "Valitut paikkaukset",
"widgetSubtitle": "Valitse ensin sovellus",
"widgetEmptySubtitle": "Paikkauksia ei ole valittu"
},
"socialMediaCard": {
"widgetTitle": "Somet",
"widgetSubtitle": "Löydymme täältä!"
},
"appSelectorView": {
"viewTitle": "Valitse sovellus",
"searchBarHint": "Hae sovelluksia",
"storageButton": "Tallennustila",
"errorMessage": "Valittua sovellusta ei voida käyttää"
},
"patchesSelectorView": {
"viewTitle": "Valitse paikkaukset",
"searchBarHint": "Etsi paikkauksia",
"doneButton": "Valmis",
"recommended": "Suositellut",
"all": "Kaikki",
"none": "Ei mitään",
"loadPatchesSelection": "Lataa paikkausvalikoima",
"noSavedPatches": "Paikkauksia ei ole tallennettu valitulle sovellukselle\nTallenna nykyinen valikoima paunamalla Valmis",
"noPatchesFound": "Valitulle sovellukselle ei löytynyt paikkauksia",
"selectAllPatchesWarningContent": "Olet valitsemassa kaikki paikkaukset ja näihin sisältyy myös ei suositeltavia paikkauksia, jotka saattavat aiheuttaa ei toivottua toimintaa."
},
"patchItem": {
"unsupportedDialogText": "Tämän paikkauksen valinta voi aiheuttaa virheitä.\n\nSovelluksen versio: {packageVersion}\nTuetut versiot: \n{supportedVersions}",
"unsupportedPatchVersion": "Tämän sovellusversion paikkausta ei tueta. Jos haluat jatkaa, ota kokeellinen paikkaustuki käyttöön asetuksista."
},
"installerView": {
"widgetTitle": "Asennusohjelma",
"installButton": "Asenna",
"installRootButton": "Asenna root-oikeuksilla",
"openButton": "Avaa",
"shareButton": "Jaa tiedosto",
"notificationTitle": "ReVanced Manager suorittaa paikkauksia",
"notificationText": "Napauta palataksesi hallintasovellukseen",
"shareApkMenuOption": "Jaa APK",
"exportApkMenuOption": "Vie APK",
"shareLogMenuOption": "Jaa loki",
"installErrorDialogTitle": "Virhe",
"installErrorDialogText1": "Root-asennus ei ole mahdollista nykyisillä paikkausvalinnoilla.\nPaikkaa sovellus uudelleen tai valitse normaali asennus.",
"installErrorDialogText2": "Nykyisten paikkausvalintojen normaali asennus ei ole mahdollista.\nPaikkaa sovellus uudelleen tai valitse root-asennus, jos laitteesi on rootattu.",
"installErrorDialogText3": "Root-asennus ei ole mahdollista, koska tallennusmedialta valittiin alkuperäinen APK.\nValitse asennettu sovellus tai valitse normaali asennus.",
"noExit": "Asennus on vielä kesken, eikä poistuminen ole mahdollista..."
},
"settingsView": {
"widgetTitle": "Asetukset",
"appearanceSectionTitle": "Ulkoasu",
"teamSectionTitle": "Tiimi",
"infoSectionTitle": "Tiedot",
"advancedSectionTitle": "Lisäasetukset",
"logsSectionTitle": "Lokitiedot",
"darkThemeLabel": "Tumma tila",
"darkThemeHint": "Tervetuloa pimeälle puolelle",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Nauti kokemuksesta, joka on lähempänä laitettasi",
"languageLabel": "Kieli",
"englishOption": "Englanti",
"sourcesLabel": "Lähteet",
"sourcesLabelHint": "Määritä mukautetut lähteet",
"orgPatchesLabel": "Paikkauksien organisaatio",
"sourcesPatchesLabel": "Paikkauksien lähde",
"orgIntegrationsLabel": "Integraatioiden organisaatio",
"sourcesIntegrationsLabel": "Integraatioiden lähde",
"sourcesResetDialogTitle": "Palauta",
"sourcesResetDialogText": "Haluatko varmasti palauttaa nämä asetukset oletusarvoihin?",
"apiURLResetDialogText": "Haluatko varmasti palauttaa API URL-osoitteen oletusarvoon?",
"contributorsLabel": "Osallistujat",
"contributorsHint": "Listaus ReVancedin kehitykseen osallistuneista",
"logsLabel": "Lokit",
"logsHint": "Jaa Managerin lokitiedot",
"apiURLLabel": "API URL",
"apiURLHint": "Määritä oma API URL-osoite",
"selectApiURL": "API:n URL-osoite",
"experimentalPatchesLabel": "Kokeellinen paikkaustuki",
"experimentalPatchesHint": "Mahdollistaa paikkausten asennuksen myös ei tuettuihin sovellusversiohin",
"enabledExperimentalPatches": "Kokeellinen paikkaustuki on käytössä",
"exportSectionTitle": "Tuonti/vienti",
"aboutLabel": "Tietoja",
"snackbarMessage": "Kopioitu leikepöydälle",
"sentryLabel": "Sentry-lokikirjaus",
"sentryHint": "Lähetä nimettömiä tietoja auttaaksesi ReVanced Managerin kehityksessä",
"restartAppForChanges": "Käynnistä sovellus uudestaan muutosten käyttöönottamiseksi",
"deleteKeystoreLabel": "Poista avainsäilö",
"deleteKeystoreHint": "Poista sovelluksen allekirjoitukseen käytetty avainsäilö",
"deletedKeystore": "Avainsäilö poistettiin",
"deleteTempDirLabel": "Poista väliaikaistiedostot",
"deleteTempDirHint": "Poista käyttämättömät väliaikaistiedostot",
"deletedTempDir": "Väliaikaistiedostot poistettiin",
"exportPatchesLabel": "Vie paikkausvalikoima",
"exportPatchesHint": "Vie paikkausvalikoima JSON-tiedostona",
"exportedPatches": "Paikkausvalikoima vietiin",
"noExportFileFound": "Vietävää paikkausvalikoimaa ei ole",
"importPatchesLabel": "Tuo paikkausvalikoima",
"importPatchesHint": "Tuo paikkausvalikoima JSON-tiedostosta",
"importedPatches": "Paikkausvalikoima tuotiin",
"resetStoredPatchesLabel": "Palauta paikkaukset",
"resetStoredPatchesHint": "Palauta tallennettu paikkausvalikoima",
"resetStoredPatches": "Paikkausvalikoima palautettiin",
"jsonSelectorErrorMessage": "Valittua JSON-tiedostoa ei voida käyttää",
"deleteLogsLabel": "Poista lokitiedot",
"deleteLogsHint": "Poista kerätyt Managerin lokitiedot",
"deletedLogs": "Lokitiedot on poistettu"
},
"appInfoView": {
"widgetTitle": "Sovelluksen tiedot",
"openButton": "Avaa",
"uninstallButton": "Poista asennus",
"patchButton": "Paikkaa",
"unpatchButton": "Poista paikkaus",
"unpatchDialogText": "Haluatko varmasti poistaa sovelluksen paikkauksen?",
"rootDialogTitle": "Virhe",
"rootDialogText": "Sovellus on asennettu superuser-käyttöoikeudella, mutta ReVanced Managerilla ei tällä hetkellä ole käyttöoikeutta.\nMyönnä superuser-käyttöoikeus ensin.",
"packageNameLabel": "Paketin nimi",
"originalPackageNameLabel": "Paketin alkuperäinen nimi",
"installTypeLabel": "Asennustyyppi",
"rootTypeLabel": "Rootattu",
"nonRootTypeLabel": "Normaali",
"patchedDateLabel": "Paikkausaika",
"patchedDateHint": "{date} klo {time}",
"appliedPatchesLabel": "Suoritetut paikkaukset",
"appliedPatchesHint": "{quantity} suoritettua paikkausta",
"updateNotImplemented": "Toimintoa ei ole toteutettu vielä"
},
"contributorsView": {
"widgetTitle": "Osallistujat",
"patcherContributors": "Patcheriin osallistuneet",
"patchesContributors": "Paikkauksiin osallistuneet",
"integrationsContributors": "Integrointeihin osallistuneet",
"cliContributors": "Komentoriviin osallistuneet",
"managerContributors": "Manageriin osallistuneet"
}
}

200
assets/i18n/fr_FR.json Normal file
View File

@ -0,0 +1,200 @@
{
"okButton": "OK",
"cancelButton": "Annuler",
"updateButton": "Mise à jour",
"enabledLabel": "Activé",
"disabledLabel": "Désactivé",
"yesButton": "Oui",
"noButton": "Non",
"warning": "Avertissement",
"navigationView": {
"dashboardTab": "Tableau de bord",
"patcherTab": "Patcheur",
"settingsTab": "Paramètres"
},
"homeView": {
"widgetTitle": "Tableau de bord",
"updatesSubtitle": "Mises à jour",
"patchedSubtitle": "Applications patchées",
"updatesAvailable": "Mises à jour disponibles",
"noUpdates": "Aucune mise à jour disponible",
"WIP": "Bientôt disponible...",
"noInstallations": "Aucune application patchée n'est installée",
"installed": "Installée",
"updateDialogTitle": "Mettre à jour le Manager",
"updateChangelogTitle": "Liste des changements",
"notificationTitle": "Mise à jour téléchargée",
"notificationText": "Appuyez sur pour installer la mise à jour",
"downloadingMessage": "Téléchargement de la mise à jour...",
"installingMessage": "Installation de la mise à jour...",
"errorDownloadMessage": "Impossible de télécharger la mise à jour",
"errorInstallMessage": "Impossible d'installer la mise à jour",
"noConnection": "Aucune connexion Internet",
"updatesDisabled": "Mettre à jour une application patchée est actuellement désactivé. Réappliquez à nouveau le patch."
},
"applicationItem": {
"patchButton": "Patch",
"infoButton": "Info",
"changelogLabel": "Liste des changements"
},
"latestCommitCard": {
"loadingLabel": "Chargement...",
"timeagoLabel": "Il y a {time}",
"patcherLabel": "Patcheur:",
"managerLabel": "Manager: ",
"updateButton": "Mettre à jour le Manager"
},
"patcherView": {
"widgetTitle": "Patcheur",
"patchButton": "Patch",
"patchDialogText": "Vous avez sélectionné un emplacement de ressource et une installation d'un APK divisé a été détecté, donc le patch pourrait entrainer des erreurs.\nÊtes-vous sûr de vouloir continuer?"
},
"appSelectorCard": {
"widgetTitle": "Sélectionner une application",
"widgetTitleSelected": "Application sélectionnée",
"widgetSubtitle": "Aucune application sélectionnée",
"noAppsLabel": "Aucune application trouvée",
"currentVersion": "Version actuelle",
"recommendedVersion": "Version recommandée",
"anyVersion": "n'importe laquelle"
},
"patchSelectorCard": {
"widgetTitle": "Sélectionner les patchs",
"widgetTitleSelected": "Patchs sélectionnés",
"widgetSubtitle": "Choisissez d'abord une application",
"widgetEmptySubtitle": "Aucun patch n'est sélectionné"
},
"socialMediaCard": {
"widgetTitle": "Réseaux sociaux",
"widgetSubtitle": "Nous sommes en ligne !"
},
"appSelectorView": {
"viewTitle": "Sélectionner une application",
"searchBarHint": "Rechercher une application",
"storageButton": "Stockage",
"errorMessage": "Impossible d'utiliser l'application sélectionnée"
},
"patchesSelectorView": {
"viewTitle": "Sélectionner les patchs",
"searchBarHint": "Rechercher des patchs",
"doneButton": "Terminé",
"recommended": "Recommandé",
"all": "Tout",
"none": "Aucun",
"loadPatchesSelection": "Charger les patchs sélectionnés",
"noSavedPatches": "Aucun patch enregistré pour l'application sélectionnée.\nAppuyez sur Terminé pour enregistrer la sélection actuelle.",
"noPatchesFound": "Aucun patch n'a été trouvé pour l'application sélectionnée",
"selectAllPatchesWarningContent": "Vous êtes sur le point de sélectionner tous les patchs, cela inclut des patchs non recommandés et peut causer des comportements indésirables."
},
"patchItem": {
"unsupportedDialogText": "La sélection de ce patch peut entraîner des erreurs.\n\nVersion de l'application : {packageVersion}\nVersions prises en charge :\n{supportedVersions}",
"unsupportedPatchVersion": "Le correctif n'est pas pris en charge pour cette version de l'application. Activez le bouton expérimental dans les paramètres pour continuer."
},
"installerView": {
"widgetTitle": "Installateur",
"installButton": "Installer",
"installRootButton": "Installer en tant que Root",
"openButton": "Ouvrir",
"shareButton": "Partager le fichier",
"notificationTitle": "ReVanced Manager est en train de patcher",
"notificationText": "Appuyer pour revenir à linstallateur",
"shareApkMenuOption": "Partager le fichier APK",
"exportApkMenuOption": "Exporter l'APK",
"shareLogMenuOption": "Partager le journal",
"installErrorDialogTitle": "Erreur",
"installErrorDialogText1": "L'installation Root n'est pas possible avec la sélection actuelle de patchs.\nRe-patchez votre application ou choisissez une installation non root.",
"installErrorDialogText2": "L'installation Non-root n'est pas possible avec la sélection actuelle de patchs.\nRe-patchez votre application ou choisissez une installation en tant que Root.",
"installErrorDialogText3": "L'installation root n'est pas possible car l'APK original a été sélectionné à partir du stockage.\nSélectionnez une application installée ou choisissez une installation non root.",
"noExit": "L'installateur est toujours en fonctionnement, impossible de quitter..."
},
"settingsView": {
"widgetTitle": "Réglages",
"appearanceSectionTitle": "Apparence",
"teamSectionTitle": "Équipe",
"infoSectionTitle": "Info",
"advancedSectionTitle": "Avancé",
"logsSectionTitle": "Journaux",
"darkThemeLabel": "Mode sombre",
"darkThemeHint": "Bienvenue dans le côté obscur",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Profitez d'une expérience plus proche de votre appareil",
"languageLabel": "Langue",
"englishOption": "Anglais",
"sourcesLabel": "Sources",
"sourcesLabelHint": "Configurer vos sources personnalisées",
"hostRepositoryLabel": "Dépôt de l'API",
"orgPatchesLabel": "Organisation des patchs",
"sourcesPatchesLabel": "Source des patches",
"orgIntegrationsLabel": "Organisme d'intégration",
"sourcesIntegrationsLabel": "Source des intégrations",
"sourcesResetDialogTitle": "Réinitialiser",
"sourcesResetDialogText": "Êtes-vous sûr de vouloir réinitialiser les sources personnalisées à leur valeur par défaut ?",
"apiURLResetDialogText": "Êtes-vous sûr de vouloir réinitialiser l'URL d'API à sa valeur par défaut ?",
"contributorsLabel": "Contributeurs",
"contributorsHint": "Liste des contributeurs de ReVanced",
"logsLabel": "Journal",
"logsHint": "Partager les journaux du Manager",
"apiURLLabel": "URL de l'API",
"apiURLHint": "Configurez l'URL de votre API personnalisée",
"selectApiURL": "URL de l'API",
"experimentalUniversalPatchesLabel": "Support expérimental des patchs universels",
"experimentalUniversalPatchesHint": "Afficher toutes les applications à utiliser avec les patchs universels, le chargement de la liste des applications pourrait être lent",
"experimentalPatchesLabel": "Support des patchs expérimentaux",
"experimentalPatchesHint": "Activer l'utilisation des patchs non supportés dans n'importe quelle version de l'application",
"enabledExperimentalPatches": "Support pour les patchs expérimentaux activé",
"exportSectionTitle": "Importer & exporter",
"aboutLabel": "À propos",
"snackbarMessage": "Copié dans le presse-papier",
"sentryLabel": "Journal sentinel",
"sentryHint": "Envoyer des journaux anonymes pour nous aider à améliorer ReVanced Manager",
"restartAppForChanges": "Redémarrez l'application pour appliquer les changements",
"deleteKeystoreLabel": "Supprimer le magasin de clés",
"deleteKeystoreHint": "Supprimer le magasin de clés utilisé pour signer l'application",
"deletedKeystore": "Magasin de clés supprimé",
"deleteTempDirLabel": "Supprimer les fichiers temporaires",
"deleteTempDirHint": "Supprimer les fichiers temporaires inutilisés",
"deletedTempDir": "Fichiers temporaires supprimés",
"exportPatchesLabel": "Exporter la sélection de patchs",
"exportPatchesHint": "Exporter la sélection de patchs vers un fichier JSON",
"exportedPatches": "Sélection de patchs exportée",
"noExportFileFound": "Aucune sélection de patchs à exporter",
"importPatchesLabel": "Importer une sélection de patchs",
"importPatchesHint": "Importer une sélection de patchs depuis un fichier JSON",
"importedPatches": "Sélection de patchs importée",
"resetStoredPatchesLabel": "Réinitialiser les patches",
"resetStoredPatchesHint": "Réinitialiser la sélection des patches sauvegardés",
"resetStoredPatches": "La sélection des patches a été réinitialisée",
"jsonSelectorErrorMessage": "Impossible d'utiliser le fichier JSON sélectionné",
"deleteLogsLabel": "Supprimer les journaux",
"deleteLogsHint": "Supprimer les journaux du gestionnaire collectés",
"deletedLogs": "Journaux supprimés"
},
"appInfoView": {
"widgetTitle": "Infos concernant l'application",
"openButton": "Ouvrir",
"uninstallButton": "Désinstaller",
"patchButton": "Patcher",
"unpatchButton": "Dépatcher",
"unpatchDialogText": "Êtes-vous sûr de vouloir dépatcher cette application?",
"rootDialogTitle": "Erreur",
"rootDialogText": "L'application a été installée avec les permissions d'accès à la racine, mais ReVanced Manager n'a actuellement aucune permissions.\nVeuillez d'abord accorder l'accès à la racine.",
"packageNameLabel": "Nom du paquet",
"originalPackageNameLabel": "Nom originel du paquet",
"installTypeLabel": "Type d'installation",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Non-root",
"patchedDateLabel": "Date du patch",
"patchedDateHint": "le {date} à {time}",
"appliedPatchesLabel": "Patchs appliqués",
"appliedPatchesHint": "{quantity} patchs appliqués",
"updateNotImplemented": "Cette fonction n'a pas encore été implémentée"
},
"contributorsView": {
"widgetTitle": "Contributeurs",
"patcherContributors": "Contributeurs du patcheur",
"patchesContributors": "Contributeurs des patchs",
"integrationsContributors": "Contributeurs des intégrations",
"cliContributors": "Contributeurs de la CLI",
"managerContributors": "Contributeurs du Manager"
}
}

196
assets/i18n/hi_IN.json Normal file
View File

@ -0,0 +1,196 @@
{
"okButton": "ठीक है",
"cancelButton": "रद्द करें",
"enabledLabel": "सक्रिय",
"disabledLabel": "निष्क्रिय",
"yesButton": "हाँ",
"noButton": "नहीं",
"warning": "चेतावनी",
"navigationView": {
"dashboardTab": "नियंत्रण-पट्ट",
"patcherTab": "पैचर",
"settingsTab": "सेटिंग्स"
},
"homeView": {
"widgetTitle": "नियंत्रण पट्ट",
"updatesSubtitle": "अपडेट",
"patchedSubtitle": "पैच किए हुए एप्लीकेशन",
"updatesAvailable": "अपडेट उपलब्ध है",
"noUpdates": "कोई अपडेट उपलब्ध नहीं",
"WIP": "कार्य प्रगति पर है।",
"noInstallations": "कोई पैबंद किये हुआ अनुप्रयोग नहीं है।",
"installed": "इंस्टॉल किया हुआ",
"updateDialogTitle": "अपडेट Manager",
"updateDialogText": "क्या आप ReVanced Manager को डाउनलोड और अपडेट करना चाहते है?",
"notificationTitle": "अपडेट डाउनलोड हो चुका है",
"notificationText": "अपडेट को इंस्टॉल करने हेतु यहाँ टैप करें",
"downloadingMessage": "अपडेट डाउनलोड हो रहा है",
"installingMessage": "अपडेट इंस्टॉल हो रहा है",
"errorDownloadMessage": "अपडेट डाउनलोड करने मे असफल",
"errorInstallMessage": "अपडेट इंस्टॉल करने में असफल",
"noConnection": "कोई इंटरनेट कनेक्शन नहीं",
"updatesDisabled": "पैच किए गए ऐप को अपडेट करना वर्तमान में अक्षम है।\nएप को फिर से पैच करें।"
},
"applicationItem": {
"patchButton": "पैबंद",
"infoButton": "जानकारी",
"changelogLabel": "परिवर्तन पत्र"
},
"latestCommitCard": {
"loadingLabel": "लोड हो रहा है...",
"timeagoLabel": "{time} पहले",
"patcherLabel": "पैबंद: ",
"managerLabel": "Manager: ",
"updateButton": "Manager अपडेट करे"
},
"patcherView": {
"widgetTitle": "पैचर",
"patchButton": "पैबंद",
"patchDialogText": "आपने एक रिसोर्स पैच चुना है और स्प्लिट APK के इंस्टॉल का पता चला है इसलिए पैचिंग त्रुटियां हो सकती हैं।\nक्या आप स्प्लिट APK के साथ आगे बढ़ना चाहते है?"
},
"appSelectorCard": {
"widgetTitle": "एप्लिकेशन का चयन करें",
"widgetTitleSelected": "चुना हुआ ऐप्लकैशन",
"widgetSubtitle": "कोई ऐप्लकैशन चुना हुआ नहीं",
"noAppsLabel": "कोई एप्लिकेशन नहीं मिला।",
"currentVersion": "वर्तमान",
"recommendedVersion": "अनुशंसित",
"anyVersion": "कोई"
},
"patchSelectorCard": {
"widgetTitle": "पैच चुने",
"widgetTitleSelected": "चुने हुए पैच",
"widgetSubtitle": "पहले किसी एप्लिकेशन को चुने",
"widgetEmptySubtitle": "कोई पैच चुना हुआ नहीं"
},
"socialMediaCard": {
"widgetTitle": "सामाजिक",
"widgetSubtitle": "हम ऑनलाइन है"
},
"appSelectorView": {
"viewTitle": "एप्लिकेशन का चयन करें",
"searchBarHint": "ऐप्लकैशन खोजे",
"storageButton": "स्टोरेज",
"errorMessage": "चुने हुए ऐप्लकैशन को उपयोग करने मे असमर्थ"
},
"patchesSelectorView": {
"viewTitle": "पैच चुने",
"searchBarHint": "पैच खोजे",
"doneButton": "पूर्ण",
"recommended": "अनुशंसित",
"all": "सभी",
"none": "कोई भी नहीं",
"loadPatchesSelection": "चयन किए गए पैच लोड करें",
"noSavedPatches": "चयनित ऐप के लिए कोई सहेजा पैच नहीं है\nवर्तमान चयन को सेव करने के लिए \"डन\" दबाएं",
"noPatchesFound": "चुने हुए ऐप्लकैशन के लिए कोई पैच नहीं मिले",
"selectAllPatchesWarningContent": "आप सभी पैच का चयन करने वाले हैं, जिसमें अनुशंसित पैच शामिल हैं और अवांछित व्यवहार का कारण बन सकते हैं।"
},
"patchItem": {
"unsupportedDialogText": "इस पैच को चुनने से पैचिंग मे त्रुटि हो सकती है। \n\nएप वर्ज़न: {packageVersion}\nसमर्थित वर्ज़न:\n{supportedVersions}",
"unsupportedPatchVersion": "इस ऐप संस्करण के लिए पैच समर्थित नहीं है। आगे बढ़ने के लिए सेटिंग में प्रयोगात्मक टॉगल सक्षम करें."
},
"installerView": {
"widgetTitle": "इंस्टॉल कर्ता",
"installButton": "इंस्टॉल करे",
"installRootButton": "रूट के रूप मे इंस्टॉल करे",
"openButton": "खोलें",
"shareButton": "फाइल शेयर करे",
"notificationTitle": "ReVanced Manager पैच कर रहा है",
"notificationText": "इंस्टॉल कर्ता पर जाने के लिए टैप करे",
"shareApkMenuOption": "APK शेयर करे",
"exportApkMenuOption": "निर्यात APK",
"shareLogMenuOption": "लॉग शेयर करें",
"installErrorDialogTitle": "त्रुटि",
"installErrorDialogText1": "वर्तमान पैच चयन के साथ रूट इंस्टॉल संभव नहीं है।\nअपने ऐप को रीपैच करें या नॉन-रूट इंस्टॉल चुनें।",
"installErrorDialogText2": "वर्तमान पैच चयन के साथ नॉन-रूट इंस्टॉल संभव नहीं है।\nयदि आपने अपना डिवाइस रूट किया है तो अपने ऐप को रीपैच करें या रूट इंस्टॉल चुनें।",
"installErrorDialogText3": "रूट इंस्टॉल संभव नहीं है क्योंकि मूल APK को स्टोरेज से चुना गया था।\nएक इंस्टॉल किया गया ऐप चुनें या नॉन-रूट इंस्टॉल चुनें।",
"noExit": "इंस्टॉल कर्ता अब भी चल रहा है, बाहर नहीं निकल सकते"
},
"settingsView": {
"widgetTitle": "सेटिंग्स",
"appearanceSectionTitle": "स्वरूप",
"teamSectionTitle": "टीम",
"infoSectionTitle": "जानकारी",
"advancedSectionTitle": "एडवांसड",
"logsSectionTitle": "लॉग्स",
"darkThemeLabel": "अंधकार करें",
"darkThemeHint": "अंधेर नगरी में स्वागत है।",
"dynamicThemeLabel": "मेटीरियल यू",
"dynamicThemeHint": "अपने डिवाइस के करीब एक अनुभव का आनंद लें",
"languageLabel": "भाषा",
"englishOption": "अंग्रेज़ी",
"sourcesLabel": "स्रोत",
"sourcesLabelHint": "अपने कस्टम साधन कॉन्फ़िगर करे",
"orgPatchesLabel": "पैच संगठन",
"sourcesPatchesLabel": "पैच स्रोत",
"orgIntegrationsLabel": "एकीकरण संगठन",
"sourcesIntegrationsLabel": "एकीकरण स्रोत",
"sourcesResetDialogTitle": "रीसेट करें",
"sourcesResetDialogText": "क्या आप वाकई कस्टम साधन को डिफ़ॉल्ट वैल्यू पर रीसेट करना चाहते हैं?",
"apiURLResetDialogText": "क्या आप वाकई कस्टम API URL को डिफ़ॉल्ट वैल्यू पर रीसेट करना चाहते हैं?",
"contributorsLabel": "योगदानकर्ता",
"contributorsHint": "ReVanced के योगदानकर्ताओ की सूची",
"logsLabel": "लॉग्स",
"logsHint": "मैनेजर के लॉग को शेयर करे",
"apiURLLabel": "API URL",
"apiURLHint": "अपनी कस्टम API URL कॉन्फ़िगर करे",
"selectApiURL": "API URL",
"experimentalPatchesLabel": "प्रायोगिक पैच समर्थन",
"experimentalPatchesHint": "किसी भी ऐप संस्करण में असमर्थित पैच का उपयोग करने में सक्षम करें",
"enabledExperimentalPatches": "प्रायोगिक पैच समर्थन इनेबल्ड",
"exportSectionTitle": "आयात और निर्यात",
"aboutLabel": "विवरण",
"snackbarMessage": "क्लिपबोर्ड में कॉपी हो गया है",
"sentryLabel": "संतरी लॉगिंग",
"sentryHint": "उन्नत प्रबंधक को बेहतर बनाने में हमारी सहायता करने के लिए अनाम लॉग भेजें",
"restartAppForChanges": "Restart the app to apply changes",
"deleteKeystoreLabel": "कीस्टोर मिटाएं",
"deleteKeystoreHint": "ऐप पर हस्ताक्षर करने के लिए उपयोग की जाने वाली कीस्टोर हटाएं",
"deletedKeystore": "कीस्टोर हटा दिया गया",
"deleteTempDirLabel": "अस्थाई फ़ाइलें मिटायें",
"deleteTempDirHint": "अप्रयुक्त अस्थाई फ़ाइलें मिटायें",
"deletedTempDir": "क्षणिक फ़ाईल मिटाए गए।",
"exportPatchesLabel": "चयन किए गए पैच एक्सपोर्ट करें",
"exportPatchesHint": "चयन किए गए पैच को JSON फाइल में एक्सपोर्ट करें",
"exportedPatches": "चयन किए गए पैच एक्सपोर्ट सफल",
"noExportFileFound": "कोई पैच एक्सपोर्ट के लिए चयन नहीं है",
"importPatchesLabel": "चयन किए गए पैच इम्पोर्ट करें",
"importPatchesHint": "चयन किए गए पैच को JSON फाइल से इम्पोर्ट करें",
"importedPatches": "चयन किए गए पैच इम्पोर्ट सफल",
"resetStoredPatchesLabel": "पैच रीसेट करें",
"resetStoredPatchesHint": "संग्रहित चयन किए गए पैच रीसेट करें",
"resetStoredPatches": "चयन किए गए पैच रीसेट सफल",
"jsonSelectorErrorMessage": "चुने हुए JSON फाइल को उपयोग करने मे असमर्थ",
"deleteLogsLabel": "लॉग हटाएं",
"deleteLogsHint": "एकत्रित प्रबंधक लॉग हटाएं",
"deletedLogs": "लॉग हटा दिए गए"
},
"appInfoView": {
"widgetTitle": "ऐप की जानकारी",
"openButton": "खोलें",
"uninstallButton": "अनइंस्टॉल करें",
"patchButton": "पैच",
"unpatchButton": "अनपैच करे",
"unpatchDialogText": "क्या वाकई आप इस एप को अनपैच करना चाहते हैं?",
"rootDialogTitle": "त्रुटि",
"rootDialogText": "एप्प superuser परमिशन के साथ इनस्टॉल हुआ था, परन्तु ReVanced मैनेजर के पास कोई परमिशन नहीं है। पहले superuser परमिशन इनेबल करे।",
"packageNameLabel": "पैकेज का नाम",
"originalPackageNameLabel": "मूल पैकेज का नाम",
"installTypeLabel": "इंस्टॉल का प्रकार",
"rootTypeLabel": "रूट",
"nonRootTypeLabel": "नॉन-रूट",
"patchedDateLabel": "पैच करने की तिथि",
"patchedDateHint": "{date} {time} पर",
"appliedPatchesLabel": "लागू किए हुआ पैच",
"appliedPatchesHint": "{quantity} लागू किए हुआ पैच",
"updateNotImplemented": "यह फीचर फिलहाल इम्प्लीमेंट नहीं हुआ है"
},
"contributorsView": {
"widgetTitle": "योगदानकर्ता",
"patcherContributors": "पैचर योगदानकर्ता",
"patchesContributors": "पैच योगदानकर्ता",
"integrationsContributors": "एकीकरण योगदानकर्ता",
"cliContributors": "CLI योगदानकर्ता",
"managerContributors": "प्रबंधक योगदानकर्ता"
}
}

196
assets/i18n/hu_HU.json Normal file
View File

@ -0,0 +1,196 @@
{
"okButton": "Rendben",
"cancelButton": "Mégse",
"enabledLabel": "Engedélyezve",
"disabledLabel": "Letiltva",
"yesButton": "Igen",
"noButton": "Nem",
"warning": "Figyelmeztetés",
"navigationView": {
"dashboardTab": "Irányítópult",
"patcherTab": "Patchelő",
"settingsTab": "Beállítások"
},
"homeView": {
"widgetTitle": "Irányítópult",
"updatesSubtitle": "Frissítések",
"patchedSubtitle": "Patchelt alkalmazások",
"updatesAvailable": "Frissítések",
"noUpdates": "Nincs elérhető frissítés",
"WIP": "Fejlesztés alatt...",
"noInstallations": "Nincs telepítve patchelt alkalmazás",
"installed": "Telepítve",
"updateDialogTitle": "Frissítéskezelő",
"updateDialogText": "Biztosan le akarod tölteni és frissíteni a ReVanced Manager-t?",
"notificationTitle": "Frissítés letöltve",
"notificationText": "Érintse meg a frissítés telepítéséhez",
"downloadingMessage": "Frissítés letöltése...",
"installingMessage": "Frissítés telepítése...",
"errorDownloadMessage": "Frissítés letöltése sikertelen",
"errorInstallMessage": "Frissítés telepítése sikertelen",
"noConnection": "Nincs internetkapcsolat",
"updatesDisabled": "A patchelt alkalmazások frissítése jelenleg nem lehetséges, ehelyett újra kell patchelni."
},
"applicationItem": {
"patchButton": "Patch",
"infoButton": "Infó",
"changelogLabel": "Újdonságok"
},
"latestCommitCard": {
"loadingLabel": "Betöltés...",
"timeagoLabel": "{time} ideje",
"patcherLabel": "Patchelő: ",
"managerLabel": "Manager: ",
"updateButton": "Manager frissitése"
},
"patcherView": {
"widgetTitle": "Patchelő",
"patchButton": "Patch",
"patchDialogText": "Kiválasztottál egy TODO(resource) patchet, de a kiválasztott alkalmazás több komponensből áll, ez pedig hibákat okozhat patchelés közben.\nBiztos folytatni szeretnéd?"
},
"appSelectorCard": {
"widgetTitle": "Alkalmazás kiválasztása",
"widgetTitleSelected": "Kiválasztott alkalmazás",
"widgetSubtitle": "Nincs kiválasztott alkalmazás",
"noAppsLabel": "Nem találhatóak alkalmazások",
"currentVersion": "Jelenlegi",
"recommendedVersion": "Ajánlott",
"anyVersion": "bármely"
},
"patchSelectorCard": {
"widgetTitle": "Patchek kiválasztása",
"widgetTitleSelected": "Kiválasztott patchek",
"widgetSubtitle": "Először válassz egy alkalmazást",
"widgetEmptySubtitle": "Nem választottál patch-et"
},
"socialMediaCard": {
"widgetTitle": "Közösségi oldalak",
"widgetSubtitle": "Online vagyunk!"
},
"appSelectorView": {
"viewTitle": "Válasszon egy alkalmazást",
"searchBarHint": "Alkalmazások keresése",
"storageButton": "Tárhely",
"errorMessage": "A kiválasztott alkalmazás nem használható"
},
"patchesSelectorView": {
"viewTitle": "Patchek kiválasztása",
"searchBarHint": "Patchek keresése",
"doneButton": "Kész",
"recommended": "Ajánlott",
"all": "Összes",
"none": "Semmi",
"loadPatchesSelection": "Korábbi kiválasztás betöltése",
"noSavedPatches": "Ehhez az alkalmazáshoz nem tartozik egy mentett kiválasztás sem\nNyomd meg a Kész gombot hogy elmentsd a jelenlegi listát",
"noPatchesFound": "A kiválasztott alkalmazáshoz nem találhatóak patchek",
"selectAllPatchesWarningContent": "Az összes patchet készülsz kiválasztani, ami nem ajánlott patcheket is tartalmaz, melyek váratlan hibákhoz vezethetnek."
},
"patchItem": {
"unsupportedDialogText": "Ezt a patchet nem biztos hogy sikerül alkalmazni, mert más verzióhoz készült.\n\nAlkalmazás verzió: {packageVersion}\nJelenleg támogatott verziók:\n{supportedVersions}",
"unsupportedPatchVersion": "Nem támogatott verzió. Engedélyezd a kísérleti jellegű patchelést a beállításokban ha mégis alkalmaznád."
},
"installerView": {
"widgetTitle": "Telepítő",
"installButton": "Telepítés",
"installRootButton": "Telepítés root jogosultsággal",
"openButton": "Megnyitás",
"shareButton": "Fájl megosztása",
"notificationTitle": "A ReVanced Manager jelenleg patchel",
"notificationText": "Koppints a telepítőhöz való visszalépéshez",
"shareApkMenuOption": "APK megosztása",
"exportApkMenuOption": "APK exportálása",
"shareLogMenuOption": "Napló megosztása",
"installErrorDialogTitle": "Hiba",
"installErrorDialogText1": "Root telepítés nem lehetséges a jelenleg kiválasztott patchekkel.\nPatcheld újra az appod vagy válaszd a root nélküli telepítést.",
"installErrorDialogText2": "A non-root telepítés nem lehetséges a jelenleg kiválasztott patchekkel.\nPatcheld újra az appod vagy válaszd a root telepítést, ha az eszközöd rootolt.",
"installErrorDialogText3": "A root telepítés nem lehetséges, mert az eredeti APK a tárhelyről lett kiválasztva. Válassz egy telepített alkalmazást vagy válaszd a root nélküli telepítést.",
"noExit": "A telepítő még fut, most nem lehet visszalépni..."
},
"settingsView": {
"widgetTitle": "Beállítások",
"appearanceSectionTitle": "Megjelenés",
"teamSectionTitle": "Csapat",
"infoSectionTitle": "Infó",
"advancedSectionTitle": "Haladó",
"logsSectionTitle": "Naplók",
"darkThemeLabel": "Sötét mód",
"darkThemeHint": "Üdvözlünk a sötét oldalon",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Élvezd az eszközödhöz közelibb élményt",
"languageLabel": "Nyelv",
"englishOption": "Angol (English)",
"sourcesLabel": "Források",
"sourcesLabelHint": "Állítsd be egyedi forrásaid",
"orgPatchesLabel": "Patchek - szervezet",
"sourcesPatchesLabel": "Patchek - forrás",
"orgIntegrationsLabel": "Integrációk - szervezet",
"sourcesIntegrationsLabel": "Integrációk - forrás",
"sourcesResetDialogTitle": "Visszaállítás",
"sourcesResetDialogText": "Biztos, hogy visszaállítod az egyéni forrásokat az alap értékekre?",
"apiURLResetDialogText": "Biztos, hogy visszaállítod az API URL-t az eredeti értékre?",
"contributorsLabel": "Közreműködők",
"contributorsHint": "A ReVanced közreműködőinek listája",
"logsLabel": "Naplók",
"logsHint": "Manager naplófájlok megosztása",
"apiURLLabel": "API URL",
"apiURLHint": "Itt állíthatod be az API címét",
"selectApiURL": "API címe",
"experimentalPatchesLabel": "Kísérleti patchelés",
"experimentalPatchesHint": "A patcheket nem támogatott verziókra is lehessen alkalmazni",
"enabledExperimentalPatches": "Kísérleti patchelés engedélyezve",
"exportSectionTitle": "Importálás & exportálás",
"aboutLabel": "Rólunk",
"snackbarMessage": "Vágólapra másolva",
"sentryLabel": "Sentry naplózás",
"sentryHint": "Névtelen használati adatok küldésével hozzájárulhatsz, hogy a ReVanced Manager még jobb legyen",
"restartAppForChanges": "Indítsd újra az alkalmazást a változások alkalmazásához",
"deleteKeystoreLabel": "Kulcstartó törlése",
"deleteKeystoreHint": "Törli az alkalmazás aláírásához használt kulcstartót",
"deletedKeystore": "Kulcstartó törölve",
"deleteTempDirLabel": "Ideiglenes fájlok törlése",
"deleteTempDirHint": "Felesleges átmeneti fájlok törlése",
"deletedTempDir": "Ideiglenes fájlok törölve",
"exportPatchesLabel": "Kiválasztások exportálása",
"exportPatchesHint": "Az összes korábbi kiválasztás mentáse JSON fájlba",
"exportedPatches": "Sikeres exportálás",
"noExportFileFound": "Nincs mit exportálni",
"importPatchesLabel": "Kiválasztások importálása",
"importPatchesHint": "Korábban kiválasztott lista betöltése JSON fájlból",
"importedPatches": "Sikeres importálás",
"resetStoredPatchesLabel": "Korábbi kiválasztások törlése",
"resetStoredPatchesHint": "Minden korábban mentett kiválasztást töröl",
"resetStoredPatches": "A kiválasztott patchek listája alaphelyzetbe állítva",
"jsonSelectorErrorMessage": "A kiválasztott JSON nem hasznalható",
"deleteLogsLabel": "Naplók törlése",
"deleteLogsHint": "A managerben összegyűjtott naplófájlok törlése",
"deletedLogs": "Naplók törölve"
},
"appInfoView": {
"widgetTitle": "Alkalmazás információ",
"openButton": "Megnyitás",
"uninstallButton": "Eltávolítás",
"patchButton": "Patch",
"unpatchButton": "Patch törlése",
"unpatchDialogText": "Biztos, hogy törölni akarod a patcheket?",
"rootDialogTitle": "Hiba",
"rootDialogText": "A patchelt alkalmazás root jogosultsággal lett telepítve, de a Managernek már nincs ilyen jogosultsága.\nKérlek, engedélyezd a root hozzáférést a Managernek.",
"packageNameLabel": "Csomagnév",
"originalPackageNameLabel": "Eredeti csomagnév",
"installTypeLabel": "Telepítés módja",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Non-root",
"patchedDateLabel": "Patchelve",
"patchedDateHint": "{date} {time}-kor",
"appliedPatchesLabel": "Alkalmazott patchek",
"appliedPatchesHint": "{quantity} alkalmazott patch",
"updateNotImplemented": "Ez a funkció még nem készült el"
},
"contributorsView": {
"widgetTitle": "Közreműködők",
"patcherContributors": "Patcher közreműködők",
"patchesContributors": "Patchek közreműködői",
"integrationsContributors": "Integrációk közreműködői",
"cliContributors": "CLI közreműködők",
"managerContributors": "Manager közreműködők"
}
}

200
assets/i18n/id_ID.json Normal file
View File

@ -0,0 +1,200 @@
{
"okButton": "Oke",
"cancelButton": "Batal",
"updateButton": "Perbarui",
"enabledLabel": "Aktif",
"disabledLabel": "Nonaktif",
"yesButton": "Ya",
"noButton": "Tidak",
"warning": "Peringatan",
"navigationView": {
"dashboardTab": "Dasbor",
"patcherTab": "Pemodifikasi",
"settingsTab": "Pengaturan"
},
"homeView": {
"widgetTitle": "Dasbor",
"updatesSubtitle": "Pembaruan",
"patchedSubtitle": "Aplikasi yang dimodifikasi",
"updatesAvailable": "Pembaruan tersedia",
"noUpdates": "Pembaruan tidak tersedia",
"WIP": "Sedang dalam pengerjaan...",
"noInstallations": "Tidak ada aplikasi termodifikasi yang terpasang",
"installed": "Terpasang",
"updateDialogTitle": "Perbarui Manager",
"updateChangelogTitle": "Catatan perubahan",
"notificationTitle": "Pembaruan sudah diunduh",
"notificationText": "Ketuk untuk memasang pembaharuan",
"downloadingMessage": "Mengunduh pembaruan...",
"installingMessage": "Memasang pembaruan...",
"errorDownloadMessage": "Tidak dapat mengunduh pembaruan",
"errorInstallMessage": "Tidak dapat memasang pembaruan",
"noConnection": "Tidak ada koneksi internet",
"updatesDisabled": "Memperbarui aplikasi yang dimodifikasi saat ini dinonaktifkan. Pasang ulang aplikasi lagi."
},
"applicationItem": {
"patchButton": "Modifikasi",
"infoButton": "Info",
"changelogLabel": "Catatan perubahan"
},
"latestCommitCard": {
"loadingLabel": "Memuat...",
"timeagoLabel": "{time} yang lalu",
"patcherLabel": "Pemodifikasi: ",
"managerLabel": "Manager: ",
"updateButton": "Perbarui Manager"
},
"patcherView": {
"widgetTitle": "Pemodifikasi",
"patchButton": "Modifikasi",
"patchDialogText": "Anda telah memilih sumber modifikasi dan pemasangan split APK terdeteksi sehingga kesalahan pemodifikasi dapat terjadi.\nApakah Anda yakin ingin melanjutkan pemasangan split base APK?"
},
"appSelectorCard": {
"widgetTitle": "Pilih aplikasi",
"widgetTitleSelected": "Aplikasi terpilih",
"widgetSubtitle": "Tidak ada aplikasi yang dipilih",
"noAppsLabel": "Aplikasi tidak ditemukan",
"currentVersion": "Saat ini",
"recommendedVersion": "Rekomendasi",
"anyVersion": "semua"
},
"patchSelectorCard": {
"widgetTitle": "Pilih Modifikasi",
"widgetTitleSelected": "Modifikasi terpilih",
"widgetSubtitle": "Pilih aplikasi terlebih dahulu",
"widgetEmptySubtitle": "Tidak ada modifikasi yang terpilih"
},
"socialMediaCard": {
"widgetTitle": "Media Sosial",
"widgetSubtitle": "Ikuti kami!"
},
"appSelectorView": {
"viewTitle": "Pilih aplikasi",
"searchBarHint": "Cari aplikasi",
"storageButton": "Penyimpanan",
"errorMessage": "Tidak dapat menggunakan aplikasi yang dipilih"
},
"patchesSelectorView": {
"viewTitle": "Pilih modifikasi",
"searchBarHint": "Cari modifikasi",
"doneButton": "Selesai",
"recommended": "Direkomendasikan",
"all": "Semua",
"none": "Tidak ada",
"loadPatchesSelection": "Tidak ada modifikasi yang terpilih",
"noSavedPatches": "Tidak ada tambalan tersimpan untuk aplikasi terpilih.\nTekan \"Sudah\" untuk menyimpan seleksi saat ini.",
"noPatchesFound": "Modifikasi tidak ditemukan untuk aplikasi terpilih",
"selectAllPatchesWarningContent": "Anda akan memilih semua modifikasi, termasuk modifikasi yang tidak direkomendasikan dan dapat mengakibatkan hal yang tidak diinginkan."
},
"patchItem": {
"unsupportedDialogText": "Menggunakan modifikasi ini dapat menyebabkan error pada saat memodifikasi aplikasi\n\nVersi aplikasi: {packageVersion}\nVersi yang mendukung:\n{supportedVersions}",
"unsupportedPatchVersion": "Patch tidak didukung untuk versi aplikasi ini. Aktifkan tombol eksperimental di pengaturan untuk melanjutkan."
},
"installerView": {
"widgetTitle": "Pemasang",
"installButton": "Pasang",
"installRootButton": "Pasang sebagai Root",
"openButton": "Buka",
"shareButton": "Bagikan file",
"notificationTitle": "ReVanced Manager sedang memodifikasi",
"notificationText": "Ketuk untuk kembali ke pemasang",
"shareApkMenuOption": "Bagikan APK",
"exportApkMenuOption": "Ekspor APK",
"shareLogMenuOption": "Bagikan log",
"installErrorDialogTitle": "Kesalahan",
"installErrorDialogText1": "Pemasangan root tidak mungkin dengan pilihan modifikasi sekarang.\nModifikasi ulang aplikasi Anda atau pilih pemasangan non-root.",
"installErrorDialogText2": "Pemasangan non-root tidak mungkin dengan pilihan modifikasi sekarang.\nModifikasi ulang aplikasi Anda atau pilih pemasangan root jika perangkat Anda memiliki root.",
"installErrorDialogText3": "Pemasangan root tidak memungkinkan karena APK dipilih dari penyimpanan.\nPilih aplikasi terpasang atau pilih pemasangan non-root.",
"noExit": "Pemasangan masih berjalan, tidak bisa keluar..."
},
"settingsView": {
"widgetTitle": "Pengaturan",
"appearanceSectionTitle": "Tampilan",
"teamSectionTitle": "Tim",
"infoSectionTitle": "Info",
"advancedSectionTitle": "Lanjutan",
"logsSectionTitle": "Log",
"darkThemeLabel": "Mode gelap",
"darkThemeHint": "Selamat datang di sisi gelap",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Nikmati pengalaman lebih dekat ke perangkat Anda",
"languageLabel": "Bahasa",
"englishOption": "Inggris",
"sourcesLabel": "Sumber",
"sourcesLabelHint": "Konfigurasi sumber kustom Anda",
"hostRepositoryLabel": "API Repositori",
"orgPatchesLabel": "Organisasi Modifikasi",
"sourcesPatchesLabel": "Sumber Modifikasi",
"orgIntegrationsLabel": "Organisasi Intergrasi",
"sourcesIntegrationsLabel": "Sumber Integrasi",
"sourcesResetDialogTitle": "Atur ulang",
"sourcesResetDialogText": "Apakah Anda yakin ingin mengatur ulang sumber kustom ke bawaannya?",
"apiURLResetDialogText": "Apakah Anda yakin ingin mengatur ulang URL API ke bawaan?",
"contributorsLabel": "Kontributor",
"contributorsHint": "Daftar kontributor ReVanced",
"logsLabel": "Log",
"logsHint": "Bagikan log manager",
"apiURLLabel": "URL API",
"apiURLHint": "Konfigurasi URL API kustom Anda",
"selectApiURL": "URL API",
"experimentalUniversalPatchesLabel": "Dukungan tambalan universal eksperimental",
"experimentalUniversalPatchesHint": "Menampilkan semua aplikasi yang digunakan tambalan universal, pemuatan daftar aplikasi akan membuat lambat",
"experimentalPatchesLabel": "Dukungan Modifikasi Eksperimental",
"experimentalPatchesHint": "Aktifkan untuk menggunakan modifikasi yang tidak didukung di versi aplikasi apa pun",
"enabledExperimentalPatches": "Modifikasi eksperimental diaktifkan",
"exportSectionTitle": "Impor & Ekspor",
"aboutLabel": "Tentang",
"snackbarMessage": "Disalin ke papan klip",
"sentryLabel": "Log sentry",
"sentryHint": "Kirim log anonim untuk membantu kami meningkatkan ReVanced Manager",
"restartAppForChanges": "Mulai ulang aplikasi untuk menerapkan perubahan",
"deleteKeystoreLabel": "Hapus penyimpanan kunci",
"deleteKeystoreHint": "Hapus penyimpanan kunci yang digunakan untuk menandatangani aplikasi",
"deletedKeystore": "Penyimpanan kunci dihapus",
"deleteTempDirLabel": "Hapus berkas sementara",
"deleteTempDirHint": "Hapus berkas sementara yang tidak dipakai",
"deletedTempDir": "Berkas sementara dihapus",
"exportPatchesLabel": "Ekspor modifikasi terpilih",
"exportPatchesHint": "Ekspor modifikasi terpilih ke file JSON",
"exportedPatches": "Modifikasi terpilih telah diekspor",
"noExportFileFound": "Tidak ada modifikasi terpilih untuk diekspor",
"importPatchesLabel": "Impor modifikasi terpilih",
"importPatchesHint": "Impor modifikasi terpilih dari file JSON",
"importedPatches": "Modifikasi terpilih telah diimpor",
"resetStoredPatchesLabel": "Kembalikan modifikasi",
"resetStoredPatchesHint": "Kembalikan modifikasi terpilih yang telah disimpan",
"resetStoredPatches": "Modifikasi terpilih telah dikembalikan",
"jsonSelectorErrorMessage": "Tidak bisa menggunakan berkas JSON tersebut",
"deleteLogsLabel": "Hapus log",
"deleteLogsHint": "Hapus log pengelola yang terkumpul",
"deletedLogs": "Log dihapus"
},
"appInfoView": {
"widgetTitle": "Info aplikasi",
"openButton": "Buka",
"uninstallButton": "Copot",
"patchButton": "Modifikasi",
"unpatchButton": "Memulihkan",
"unpatchDialogText": "Apakah Anda yakin ingin memulihkan aplikasi ini?",
"rootDialogTitle": "Kesalahan",
"rootDialogText": "App telah diinstal dengan izin superuser, tapi saat ini ReVanced Manager tidak memiliki izin. Mohon izinkan superuser.",
"packageNameLabel": "Nama paket",
"originalPackageNameLabel": "Nama Paket Asli",
"installTypeLabel": "Tipe pemasangan",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Non-root",
"patchedDateLabel": "Tanggal Termodifikasi",
"patchedDateHint": "{date} pukul {time}",
"appliedPatchesLabel": "Modifikasi Terpasang",
"appliedPatchesHint": "{quantity} modifikasi terpasang",
"updateNotImplemented": "Fitur ini belum diimplementasikan"
},
"contributorsView": {
"widgetTitle": "Kontributor",
"patcherContributors": "Kontributor Pemodifikasi",
"patchesContributors": "Kontributor Pemodifikasi",
"integrationsContributors": "Kontributor Integrasi",
"cliContributors": "Kontributor CLI",
"managerContributors": "Kontributor Manager"
}
}

200
assets/i18n/it_IT.json Normal file
View File

@ -0,0 +1,200 @@
{
"okButton": "OK",
"cancelButton": "Annulla",
"updateButton": "Aggiorna",
"enabledLabel": "Attivo",
"disabledLabel": "Disattivato",
"yesButton": "Sì",
"noButton": "No",
"warning": "Attenzione",
"navigationView": {
"dashboardTab": "Gestione",
"patcherTab": "Patcher",
"settingsTab": "Impostazioni"
},
"homeView": {
"widgetTitle": "Gestione",
"updatesSubtitle": "Aggiornamenti",
"patchedSubtitle": "Applicazioni Patchate",
"updatesAvailable": "Aggiornamenti disponibili",
"noUpdates": "Nessun aggiornamento disponibile",
"WIP": "Lavori in corso...",
"noInstallations": "Non è stata installata nessuna applicazione modificata",
"installed": "Installate",
"updateDialogTitle": "Aggiorna Manager",
"updateChangelogTitle": "Changelog",
"notificationTitle": "Aggiornamento scaricato",
"notificationText": "Tocca per installare l'aggiornamento",
"downloadingMessage": "Sto scaricando l'aggiornamento...",
"installingMessage": "Sto installando l'aggiornamento...",
"errorDownloadMessage": "Impossibile scaricare l'aggiornamento",
"errorInstallMessage": "Impossibile installare l'aggiornamento",
"noConnection": "Nessuna connessione internet",
"updatesDisabled": "L'aggiornamento di un'app patchata è attualmente disabilitato. Applica nuovamente la patch."
},
"applicationItem": {
"patchButton": "Patch",
"infoButton": "Info",
"changelogLabel": "Novità"
},
"latestCommitCard": {
"loadingLabel": "Caricamento...",
"timeagoLabel": "{time} fa",
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "Aggiorna Manager"
},
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Applica",
"patchDialogText": "Hai selezionato una patch di risorse ed è stato rilevato un file di installazione diviso (Split APK), quindi potrebbero verificarsi errori di patching.\nSei sicuro di voler procedere?"
},
"appSelectorCard": {
"widgetTitle": "Seleziona un'applicazione",
"widgetTitleSelected": "Applicazione selezionata",
"widgetSubtitle": "Nessuna applicazione selezionata",
"noAppsLabel": "Nessuna applicazione trovata",
"currentVersion": "Attuale",
"recommendedVersion": "Consigliata",
"anyVersion": "qualsiasi"
},
"patchSelectorCard": {
"widgetTitle": "Seleziona patch",
"widgetTitleSelected": "Patch selezionate",
"widgetSubtitle": "Seleziona prima un'applicazione",
"widgetEmptySubtitle": "Nessuna patch selezionata"
},
"socialMediaCard": {
"widgetTitle": "Social",
"widgetSubtitle": "Seguici sui nostri canali!"
},
"appSelectorView": {
"viewTitle": "Seleziona un'applicazione",
"searchBarHint": "Cerca applicazioni",
"storageButton": "Archiviazione",
"errorMessage": "Impossibile utilizzare l'applicazione selezionata"
},
"patchesSelectorView": {
"viewTitle": "Seleziona patch",
"searchBarHint": "Cerca patch",
"doneButton": "Fatto",
"recommended": "Raccomandati",
"all": "Tutte",
"none": "Nessuna",
"loadPatchesSelection": "Carica selezione patch",
"noSavedPatches": "Nessuna patch salvata per l'app selezionata.\nPremi Fatto per salvare la selezione corrente.",
"noPatchesFound": "Nessuna patch trovata per l'applicazione selezionata",
"selectAllPatchesWarningContent": "Stai per selezionare tutte le patch, incluse patch non consigliate che potrebbero causare comportamenti indesiderati."
},
"patchItem": {
"unsupportedDialogText": "La selezione di questa patch potrebbe causare degli errori.\n\nVersione dell'app: {packageVersion}\nVersioni supportate:\n{supportedVersions}",
"unsupportedPatchVersion": "La patch non è supportata per questa versione dell'app. Abilitare l'impostazione sperimentale per procedere."
},
"installerView": {
"widgetTitle": "Installer",
"installButton": "Installa",
"installRootButton": "Installa come Root",
"openButton": "Apri",
"shareButton": "Condividi file",
"notificationTitle": "ReVanced Manager è in fase di patch",
"notificationText": "Tocca per tornare all'installer",
"shareApkMenuOption": "Condividi APK",
"exportApkMenuOption": "Esporta APK",
"shareLogMenuOption": "Condividi log",
"installErrorDialogTitle": "Errore",
"installErrorDialogText1": "Impossibile installare come root con le patch selezionate. Modifica le patch della tua app o scegli la modalità di installazione non-root.",
"installErrorDialogText2": "Impossibile installare come non-root con le patch selezionate. Modifica le patch della tua app o scegli la modalità di installazione root.",
"installErrorDialogText3": "Impossibile eseguire l'installazione come root perché l'APK originale è stato selezionato dall'archiviazione.\nSeleziona un'app già installata o scegli l'installazione non-root.",
"noExit": "Installer ancora in esecuzione, impossibile uscire..."
},
"settingsView": {
"widgetTitle": "Impostazioni",
"appearanceSectionTitle": "Aspetto",
"teamSectionTitle": "Team",
"infoSectionTitle": "Info",
"advancedSectionTitle": "Avanzate",
"logsSectionTitle": "Log",
"darkThemeLabel": "Modalità scura",
"darkThemeHint": "Benvenuto nel lato oscuro",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Goditi un'esperienza più in armonia con il tuo dispositivo",
"languageLabel": "Lingua",
"englishOption": "English",
"sourcesLabel": "Sorgenti",
"sourcesLabelHint": "Configura le tue sorgenti personalizzate",
"hostRepositoryLabel": "Repository API",
"orgPatchesLabel": "Organizzazione Patch",
"sourcesPatchesLabel": "Sorgente Patch",
"orgIntegrationsLabel": "Organizzazione Integrazioni",
"sourcesIntegrationsLabel": "Sorgente Integrazioni",
"sourcesResetDialogTitle": "Reimposta",
"sourcesResetDialogText": "Sei sicuro di voler reimpostare le sorgenti personalizzate ai valori predefiniti?",
"apiURLResetDialogText": "Sei sicuro di voler ripristinare l'URL delle API al suo valore predefinito?",
"contributorsLabel": "Contributori",
"contributorsHint": "Lista dei contributori di ReVanced",
"logsLabel": "Log",
"logsHint": "Condividi i log del manager",
"apiURLLabel": "URL API",
"apiURLHint": "Configura il tuo URL delle API personalizzato",
"selectApiURL": "URL API",
"experimentalUniversalPatchesLabel": "Supporto per patch universali sperimentali",
"experimentalUniversalPatchesHint": "Visualizza tutte le applicazioni da utilizzare con le patch universali, il caricamento dell'elenco delle app potrebbe essere più lento",
"experimentalPatchesLabel": "Supporto per patch sperimentali",
"experimentalPatchesHint": "Abilita l'utilizzo di patch non supportate in qualsiasi versione dell'app",
"enabledExperimentalPatches": "Supporto patch sperimentali abilitato",
"exportSectionTitle": "Importa / Esporta",
"aboutLabel": "Informazioni",
"snackbarMessage": "Copiato negli appunti",
"sentryLabel": "Log di Sentry",
"sentryHint": "Invia log anonimi per aiutarci a migliorare ReVanced Manager",
"restartAppForChanges": "Riavvia l'app per applicare le modifiche",
"deleteKeystoreLabel": "Elimina keystore",
"deleteKeystoreHint": "Elimina il keystore usato per firmare l'applicazione",
"deletedKeystore": "Keystore eliminato",
"deleteTempDirLabel": "Elimina file temporanei",
"deleteTempDirHint": "Elimina i file temporanei non utilizzati",
"deletedTempDir": "File temporanei eliminati",
"exportPatchesLabel": "Esporta patch selezionate",
"exportPatchesHint": "Esporta le patch selezionate in un file JSON",
"exportedPatches": "Patch selezionate esportate",
"noExportFileFound": "Nessuna patch selezionata da esportare",
"importPatchesLabel": "Importa patch selezionate",
"importPatchesHint": "Importa le patch selezionate da un file JSON",
"importedPatches": "Patch selezionate importate",
"resetStoredPatchesLabel": "Ripristina le patch",
"resetStoredPatchesHint": "Resetta la selezione delle patch memorizzate",
"resetStoredPatches": "La selezione delle patch è stata resettata",
"jsonSelectorErrorMessage": "Impossibile utilizzare il file json selezionato",
"deleteLogsLabel": "Cancella log",
"deleteLogsHint": "Elimina i log del manager raccolti",
"deletedLogs": "Log cancellati"
},
"appInfoView": {
"widgetTitle": "Info app",
"openButton": "Apri",
"uninstallButton": "Disinstalla",
"patchButton": "Patch",
"unpatchButton": "Ripristina",
"unpatchDialogText": "Sei sicuro di voler ripristinare questa applicazione?",
"rootDialogTitle": "Errore",
"rootDialogText": "L'app è stata installata con i permessi di root, ma attualmente ReVanced Manager non ha nessun permesso.\nSi prega di concedere prima i permessi di root.",
"packageNameLabel": "Nome pacchetto",
"originalPackageNameLabel": "Nome originale del pacchetto",
"installTypeLabel": "Tipo di installazione",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Non-root",
"patchedDateLabel": "Data di patch",
"patchedDateHint": "{date} alle {time}",
"appliedPatchesLabel": "Patch applicate",
"appliedPatchesHint": "{quantity} patch applicate",
"updateNotImplemented": "Questa funzionalità non è stata ancora implementata"
},
"contributorsView": {
"widgetTitle": "Contributori",
"patcherContributors": "Collaboratori patcher",
"patchesContributors": "Collaboratori patch",
"integrationsContributors": "Collaboratori integrazioni",
"cliContributors": "Collaboratori CLI",
"managerContributors": "Contributori Manager"
}
}

196
assets/i18n/ko_KR.json Normal file
View File

@ -0,0 +1,196 @@
{
"okButton": "확인",
"cancelButton": "취소",
"enabledLabel": "활성화됨",
"disabledLabel": "비활성화됨",
"yesButton": "네",
"noButton": "아니요",
"warning": "경고",
"navigationView": {
"dashboardTab": "대시보드",
"patcherTab": "패처",
"settingsTab": "설정"
},
"homeView": {
"widgetTitle": "대시보드",
"updatesSubtitle": "업데이트",
"patchedSubtitle": "패치된 앱",
"updatesAvailable": "새 업데이트가 있습니다",
"noUpdates": "새 업데이트가 없습니다",
"WIP": "개발 중 입니다...",
"noInstallations": "패치된 앱이 설치되지 않았습니다.",
"installed": "설치됨",
"updateDialogTitle": "매니저 업데이트",
"updateDialogText": "ReVanced Manager를 다운로드하고 업데이트 하시겠습니까?",
"notificationTitle": "업데이트 다운로드됨",
"notificationText": "탭하여 업데이트 설치",
"downloadingMessage": "업데이트 다운로드 중...",
"installingMessage": "업데이트 설치 중...",
"errorDownloadMessage": "업데이트 다운로드 실패",
"errorInstallMessage": "업데이트 설치 실패",
"noConnection": "인터넷이 연결되지 않음",
"updatesDisabled": "패치된 앱 업데이트는 현재 비활성화 되어 있습니다. 앱을 다시 패치하세요."
},
"applicationItem": {
"patchButton": "패치",
"infoButton": "정보",
"changelogLabel": "변경사항"
},
"latestCommitCard": {
"loadingLabel": "로딩 중...",
"timeagoLabel": "{time} 전",
"patcherLabel": "패처: ",
"managerLabel": "매니저: ",
"updateButton": "매니저 업데이트"
},
"patcherView": {
"widgetTitle": "패처",
"patchButton": "패치",
"patchDialogText": "리소스 패치가 선택되어 있으며 분할 APK 설치가 감지되었습니다. 패치 도중 에러가 발생할 수 있습니다.\n계속 진행하시겠습니까?"
},
"appSelectorCard": {
"widgetTitle": "앱을 선택하세요",
"widgetTitleSelected": "선택된 앱",
"widgetSubtitle": "선택된 앱 없음",
"noAppsLabel": "앱이 발견되지 않음",
"currentVersion": "현재 버전",
"recommendedVersion": "권장 버전",
"anyVersion": "모든 버전"
},
"patchSelectorCard": {
"widgetTitle": "패치를 선택하세요",
"widgetTitleSelected": "선택된 패치",
"widgetSubtitle": "앱을 먼저 선택하세요.",
"widgetEmptySubtitle": "선택된 패치가 없습니다."
},
"socialMediaCard": {
"widgetTitle": "소셜",
"widgetSubtitle": "SNS에서 저희를 만나보세요!"
},
"appSelectorView": {
"viewTitle": "앱을 선택하세요",
"searchBarHint": "앱 찾기",
"storageButton": "저장소",
"errorMessage": "선택한 앱을 사용할 수 없음"
},
"patchesSelectorView": {
"viewTitle": "패치 선택",
"searchBarHint": "패치 찾기",
"doneButton": "완료",
"recommended": "권장",
"all": "모두",
"none": "없음",
"loadPatchesSelection": "패치 선택사항 불러오기",
"noSavedPatches": "선택된 앱에 적용할 패치가 저장되지 않았습니다\n완료를 눌어 현재 선택사항을 저장하세요",
"noPatchesFound": "선택된 앱에 대한 패치를 찾을 수 없습니다.",
"selectAllPatchesWarningContent": "권장하지 않는 패치를 포함한 모든 패치를 선택하려 하고 있습니다. 이 패치는 원치 않는 문제를 유발할 수 있습니다."
},
"patchItem": {
"unsupportedDialogText": "이 패치는 오류를 발생시킬 수 있습니다.\n\n앱 버전: {packageVersion}\n지원되는 버전:\n{supportedVersions}",
"unsupportedPatchVersion": "이 버전의 앱은 현재 패치가 지원되지 않습니다. 설정에서 실험적 기능을 켜고 진행하세요."
},
"installerView": {
"widgetTitle": "인스톨러",
"installButton": "설치",
"installRootButton": "루트 권한으로 설치",
"openButton": "열기",
"shareButton": "공유하기",
"notificationTitle": "ReVanced Manager가 패치 중입니다.",
"notificationText": "탭하여 인스톨러로 돌아가기",
"shareApkMenuOption": "APK 공유",
"exportApkMenuOption": "APK 내보내기",
"shareLogMenuOption": "로그 공유",
"installErrorDialogTitle": "오류",
"installErrorDialogText1": "현재 선택된 패치로는 루트 설치가 불가능합니다.\n앱을 다시 패치하거나 논루트 설치를 선택하세요.",
"installErrorDialogText2": "현재 선택된 패치로는 논루트 설치가 불가능합니다.\n앱을 다시 패치하거나 폰이 루팅되어 있다면 루트 설치를 선택하세요.",
"installErrorDialogText3": "오리지널 APK가 저장 공간에서 선택되었기 때문에 루트 설치가 불가능합니다.\n설치된 앱을 선택하거나 논루트 설치를 선택하세요.",
"noExit": "인스톨러가 실행 중이므로 중단할 수 없습니다..."
},
"settingsView": {
"widgetTitle": "설정",
"appearanceSectionTitle": "모양",
"teamSectionTitle": "팀",
"infoSectionTitle": "정보",
"advancedSectionTitle": "고급 설정",
"logsSectionTitle": "로그",
"darkThemeLabel": "다크 모드",
"darkThemeHint": "다크 사이드로 오신 것을 환영합니다",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "당신의 디바이스에 더 맞는 경험을 즐겨보세요",
"languageLabel": "언어",
"englishOption": "영어",
"sourcesLabel": "소스",
"sourcesLabelHint": "커스텀 소스 설정",
"orgPatchesLabel": "패치 구성",
"sourcesPatchesLabel": "패치 소스",
"orgIntegrationsLabel": "통합 기능 구성",
"sourcesIntegrationsLabel": "통합 기능 소스",
"sourcesResetDialogTitle": "초기화",
"sourcesResetDialogText": "정말 모든 커스텀 소스를 기본값으로 복구하시겠습니까?",
"apiURLResetDialogText": "정말 API URL을 기본값으로 되돌릴까요?",
"contributorsLabel": "기여자",
"contributorsHint": "ReVanced 기여자들",
"logsLabel": "로그",
"logsHint": "매니저의 로그 공유하기",
"apiURLLabel": "API URL",
"apiURLHint": "커스텀 API URL 설정",
"selectApiURL": "API URL",
"experimentalPatchesLabel": "실험적 패치 활성화",
"experimentalPatchesHint": "지원되지 않는 패치를 앱의 모든 버전에 적용할 수 있도록 활성화",
"enabledExperimentalPatches": "실험적 패치 활성화됨",
"exportSectionTitle": "가져오기 & 내보내기",
"aboutLabel": "정보",
"snackbarMessage": "클립보드에 복사됨",
"sentryLabel": "Sentry 로깅",
"sentryHint": "익명의 로그를 보내 ReVanced Manager를 개선할 수 있도록 도와주세요",
"restartAppForChanges": "변경 사항을 적용하려면 앱을 다시 시작하세요",
"deleteKeystoreLabel": "키스토어 제거",
"deleteKeystoreHint": "앱을 서명하기 위해 사용되는 키스토어를 제거합니다.",
"deletedKeystore": "키스토어 제거됨",
"deleteTempDirLabel": "임시 파일 삭제",
"deleteTempDirHint": "사용되지 않은 임시 파일 삭제",
"deletedTempDir": "임시 파일 삭제됨",
"exportPatchesLabel": "패치 선택목록 내보내기",
"exportPatchesHint": "패치 선택목록을 JSON 파일로 내보내기",
"exportedPatches": "패치 선택목록을 내보냈음",
"noExportFileFound": "내보낼 패치 선택목록이 없습니다",
"importPatchesLabel": "패치 선택목록 불러오기",
"importPatchesHint": "패치 선택목록을 JSON 파일에서 불러오기",
"importedPatches": "패치 선택목록을 불러옴",
"resetStoredPatchesLabel": "패치 초기화",
"resetStoredPatchesHint": "저장된 패치 선택사항 초기화",
"resetStoredPatches": "패치 선택사항이 초기화 되었습니다",
"jsonSelectorErrorMessage": "선택한 JSON 파일을 사용할 수 없음",
"deleteLogsLabel": "로그 삭제",
"deleteLogsHint": "수집된 매니저 로그 삭제",
"deletedLogs": "제거된 로그"
},
"appInfoView": {
"widgetTitle": "앱 정보",
"openButton": "열기",
"uninstallButton": "삭제",
"patchButton": "패치",
"unpatchButton": "패치 제거",
"unpatchDialogText": "정말 이 앱의 패치를 제거할까요?",
"rootDialogTitle": "오류",
"rootDialogText": "앱이 슈퍼유저 권한으로 설치되었으나 현재 ReVanced Manager에게 권한이 없습니다. 슈퍼유저 권한을 부여해주세요.",
"packageNameLabel": "패키지 이름",
"originalPackageNameLabel": "원본 패키지 이름",
"installTypeLabel": "설치 타입",
"rootTypeLabel": "루트",
"nonRootTypeLabel": "루트 아님",
"patchedDateLabel": "패치된 날짜",
"patchedDateHint": "{date} {time}",
"appliedPatchesLabel": "적용된 패치",
"appliedPatchesHint": "{quantity}개의 패치 적용됨",
"updateNotImplemented": "이 기능은 아직 구현되지 않았습니다"
},
"contributorsView": {
"widgetTitle": "기여자",
"patcherContributors": "패쳐 기여자",
"patchesContributors": "패치 기여자",
"integrationsContributors": "통합 기능 기여자",
"cliContributors": "CLI 기여자",
"managerContributors": "Manager 기여자"
}
}

200
assets/i18n/lt_LT.json Normal file
View File

@ -0,0 +1,200 @@
{
"okButton": "Gerai",
"cancelButton": "Atšaukti",
"updateButton": "Atnaujinti",
"enabledLabel": "Įjungta",
"disabledLabel": "Išjungta",
"yesButton": "Taip",
"noButton": "Ne",
"warning": "Įspėjimas",
"navigationView": {
"dashboardTab": "Valdymo skydas",
"patcherTab": "Patcher",
"settingsTab": "Nustatymai"
},
"homeView": {
"widgetTitle": "Valdymo skydas",
"updatesSubtitle": "Atnaujinimai",
"patchedSubtitle": "Modifikuotos programos",
"updatesAvailable": "Galimi atnaujinimai",
"noUpdates": "Atnaujinimų nėra",
"WIP": "Vykdomi darbai...",
"noInstallations": "Nėra įdiegtų modifikuotų programų",
"installed": "Įdiegta",
"updateDialogTitle": "Atnaujinti Manager",
"updateChangelogTitle": "Pakeitimų sąrašas",
"notificationTitle": "Atnaujinimas atsiųstas",
"notificationText": "Paspauskite, kad įdiegtumėte naujinimą",
"downloadingMessage": "Atsiunčiamas atnaujinimas...",
"installingMessage": "Įdiegiamas atnaujinimas...",
"errorDownloadMessage": "Nepavyksta atsisiųsti atnaujinimo",
"errorInstallMessage": "Nepavyksta įdiegti atnaujinimo",
"noConnection": "Nėra interneto ryšio",
"updatesDisabled": "Modifikuotų programų atnaujinimas šiuo metu išjungtas. Vėl modifikuokite programą."
},
"applicationItem": {
"patchButton": "Modifikuoti",
"infoButton": "Info",
"changelogLabel": "Pakeitimai"
},
"latestCommitCard": {
"loadingLabel": "Kraunama...",
"timeagoLabel": "Prieš {time}",
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "Atnaujinti Manager"
},
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Modifikuoti",
"patchDialogText": "Jūs pasirinkote resource modifikaciją ir padalinta APK instaliacija buvo aptikta, tai modifikavimo klaidos gali atsitikti.\nAr esate tikri kad norite tęsti modifikuoti padalytą APK?"
},
"appSelectorCard": {
"widgetTitle": "Pasirinkite programą",
"widgetTitleSelected": "Pasirinkta programa",
"widgetSubtitle": "Nepasirinkta programa",
"noAppsLabel": "Nerastos jokios programos",
"currentVersion": "Dabartinė",
"recommendedVersion": "Rekomenduojama",
"anyVersion": "bet kokia"
},
"patchSelectorCard": {
"widgetTitle": "Pasirinkite modifikacijas",
"widgetTitleSelected": "Pasirinktos modifikacijos",
"widgetSubtitle": "Pirmiausia pasirinkite programą",
"widgetEmptySubtitle": "Nepasirinkta jokių modifikacijų"
},
"socialMediaCard": {
"widgetTitle": "Socialiniai tinklai",
"widgetSubtitle": "Mes esame internete!"
},
"appSelectorView": {
"viewTitle": "Pasirinkite programą",
"searchBarHint": "Ieškoti programų",
"storageButton": "Saugykla",
"errorMessage": "Neina naudoti parinktos programos"
},
"patchesSelectorView": {
"viewTitle": "Pasirinkti modifikacijas",
"searchBarHint": "Ieškoti modifikacijų",
"doneButton": "Atlikta",
"recommended": "Rekomenduojama",
"all": "Visi",
"none": "Nėra",
"loadPatchesSelection": "Įkelti modifikacijų pasirinkimą",
"noSavedPatches": "Nėra išsaugotų pasirinktos programos modifikacijų.\nPaspauskite Atlikta, kad išsaugotumėte dabartinį pasirinkimą.",
"noPatchesFound": "Nerasta modifikacijų pasirinktai programai",
"selectAllPatchesWarningContent": "Jūs pasirinksite visas modifikacijas, tai įskaito ir nerekomenduojamas modifikacijas ir tai gali sukelti nepageidaujama elgesį."
},
"patchItem": {
"unsupportedDialogText": "Šios modifikacijos pasirinkimas gali sukelti modifikavimo klaidų.\n\nProgramos versija: {packageVersion}\npalaikomos versijos:\n{supportedVersions}",
"unsupportedPatchVersion": "Modifikacija nepalaikoma šios programos versijai. Norėdami tęsti, nustatymuose įjunkite eksperimentinį jungiklį."
},
"installerView": {
"widgetTitle": "Įdiegėjas",
"installButton": "Įdiegti",
"installRootButton": "Įdiegti kaip Root",
"openButton": "Atidaryti",
"shareButton": "Bendrinti failą",
"notificationTitle": "ReVanced Manager modifikuoja programą",
"notificationText": "Paspauskite sugrįžti į įdiegėją",
"shareApkMenuOption": "Bendrinti APK",
"exportApkMenuOption": "Eksportuoti APK",
"shareLogMenuOption": "Bendrinti įrašus",
"installErrorDialogTitle": "Klaida",
"installErrorDialogText1": "Root instaliacija negalima su dabartinėm pasirinktom modifikacijom.\nPer modifikuok programą arba pasirink ne root instaliaciją.",
"installErrorDialogText2": "Ne root instaliacija negalima su dabartinėm pasirinktom modifikacijom.\nPer modifikuok programą arba pasirink root instaliaciją jei tavo įrenginys turi root.",
"installErrorDialogText3": "Root instaliacija negalima nes originalus APK buvo pasirinktas iš saugyklos.\nPasirink jau instaliuotą programą arba pasirink ne root instaliaciją.",
"noExit": "Diegimo programa vis dar veikia, negalima išeiti..."
},
"settingsView": {
"widgetTitle": "Nustatymai",
"appearanceSectionTitle": "Išvaizda",
"teamSectionTitle": "Komanda",
"infoSectionTitle": "Info",
"advancedSectionTitle": "Išplėstiniai nustatymai",
"logsSectionTitle": "Įrašai",
"darkThemeLabel": "Tamsus rėžimas",
"darkThemeHint": "Sveikas atvykęs į tamsiąją pusę",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Mėgaukis patirtimi artimiau tavo įrenginiui",
"languageLabel": "Kalba",
"englishOption": "Anglų",
"sourcesLabel": "Šaltiniai",
"sourcesLabelHint": "Sukonfigūruoti tavo nurodytus šaltinius",
"hostRepositoryLabel": "API saugykla",
"orgPatchesLabel": "Modifikacijų organizacija",
"sourcesPatchesLabel": "Modifikacijų šaltinis",
"orgIntegrationsLabel": "Integracijų organizacija",
"sourcesIntegrationsLabel": "Integracijų šaltinis",
"sourcesResetDialogTitle": "Nustatyti iš naujo",
"sourcesResetDialogText": "Ar esi tikras kad nori iš naujo nustatyti šaltinius į jų numatytas reikšmes?",
"apiURLResetDialogText": "Ar esi tikras kad nori iš naujo nustatyti API URL adresą į numatytą reikšmę?",
"contributorsLabel": "Prisidėjusieji žmonės",
"contributorsHint": "Žmonės prisidėję prie ReVanced",
"logsLabel": "Įrašai",
"logsHint": "Bendrinti Manager įrašus",
"apiURLLabel": "API URL",
"apiURLHint": "Sukonfigūruoti tavo nurodytus API URL",
"selectApiURL": "API URL",
"experimentalUniversalPatchesLabel": "Eksperimentinių universalių modifikacijų palaikymas",
"experimentalUniversalPatchesHint": "Rodyti visas programas, skirtas naudoti su universaliom modifikacijom, krovimas programų sąrašo gali būti lėtesnis",
"experimentalPatchesLabel": "Eksperimentinių modifikacijų palaikymas",
"experimentalPatchesHint": "Įgalinti naudoti nepalaikomas modifikacijas bet kurioje programos versijoje",
"enabledExperimentalPatches": "Eksperimentinių modifikacijų palaikymas įjungtas",
"exportSectionTitle": "Importuoti ir eksportuoti",
"aboutLabel": "Apie",
"snackbarMessage": "Nukopijuota į iškarpinę",
"sentryLabel": "Klaidų rinkimo įrankio įrašai",
"sentryHint": "Siųsti anoniminius įrašus, kad padėtumėte mums tobulinti ReVanced Manager",
"restartAppForChanges": "Iš naujo paleiskite programą, kad modifikacijos įsigaliotų",
"deleteKeystoreLabel": "Ištrinti keystore",
"deleteKeystoreHint": "Ištrinti keystore kuris naudojamas pasirašyti programą",
"deletedKeystore": "Keystore ištrintas",
"deleteTempDirLabel": "Ištrinti laikinus failus",
"deleteTempDirHint": "Ištrinti nenaudojamus laikinus failus",
"deletedTempDir": "Laikini failai ištrinti",
"exportPatchesLabel": "Eksportuoti modifikacijų pasirinkimą",
"exportPatchesHint": "Eksportuoti modifikacijų pasirinkimą į JSON failą",
"exportedPatches": "Modifikacijų pasirinkimai eksportuoti",
"noExportFileFound": "Nėra pasirinktų modifikacijų eksportuoti",
"importPatchesLabel": "Įkelti modifikacijų pasirinkimą",
"importPatchesHint": "Įkelti modifikacijų pasirinkimą iš JSON failo",
"importedPatches": "Modifikacijų pasirinkimai įkelti",
"resetStoredPatchesLabel": "Atstatyti modifikacijas",
"resetStoredPatchesHint": "Atstatyti išsaugotą modifikacijų pasirinkimą",
"resetStoredPatches": "Modifikacijų pasirinkimas buvo atstatytas",
"jsonSelectorErrorMessage": "Neina naudoti pasirinkto JSON failo",
"deleteLogsLabel": "Ištrinti įrašus",
"deleteLogsHint": "Ištrinti surinktus Manager įrašus",
"deletedLogs": "Įrašai ištrinti"
},
"appInfoView": {
"widgetTitle": "Programos informacija",
"openButton": "Atidaryti",
"uninstallButton": "Išdiegti",
"patchButton": "Modifikuoti",
"unpatchButton": "Išimti modifikacijas",
"unpatchDialogText": "Ar esi tikras kad nori išimti modifikacijas iš šios programos?",
"rootDialogTitle": "Klaida",
"rootDialogText": "Programa buvo įdiegta su supervartotojo leidimais, bet ReVanced Manager neturi leidimų.\nPirmiausia suteikite supervartotojo leidimus.",
"packageNameLabel": "Paketo pavadinimas",
"originalPackageNameLabel": "Originalus paketo pavadinimas",
"installTypeLabel": "Įdiegimo tipas",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Ne root",
"patchedDateLabel": "Modifikavimo data",
"patchedDateHint": "{date} {time}",
"appliedPatchesLabel": "Uždėtos modifikacijos",
"appliedPatchesHint": "{quantity} uždėtos modifikacijos",
"updateNotImplemented": "Ši funkcija dar neįgyvendinta"
},
"contributorsView": {
"widgetTitle": "Prisidėjusieji žmonės",
"patcherContributors": "Prisidėjusieji prie Patcher",
"patchesContributors": "Prisidėjusieji prie Patcher",
"integrationsContributors": "Prisidėjusieji prie integracijų",
"cliContributors": "Prisidėjusieji prie CLI",
"managerContributors": "Prisidėjusieji prie Manager"
}
}

196
assets/i18n/ms_MY.json Normal file
View File

@ -0,0 +1,196 @@
{
"okButton": "OK",
"cancelButton": "Batal",
"enabledLabel": "Diaktifkan",
"disabledLabel": "Dimatikan",
"yesButton": "Ya",
"noButton": "Tidak",
"warning": "Amaran",
"navigationView": {
"dashboardTab": "Papan Pemuka",
"patcherTab": "Pemodifikasi",
"settingsTab": "Tetapan"
},
"homeView": {
"widgetTitle": "Papan Pemuka",
"updatesSubtitle": "Kemas Kini",
"patchedSubtitle": "Aplikasi Yang Telah Dimodifikasi",
"updatesAvailable": "Kemas kini tersedia",
"noUpdates": "Tiada kemas kini tersedia",
"WIP": "Kerja Masih Berjalan...",
"noInstallations": "Tiada aplikasi dimodifikasi yang telah dipasang",
"installed": "Dipasang",
"updateDialogTitle": "Kemas Kini Manager",
"updateDialogText": "Adakah anda ingin memuat turun dan mengemas kini ReVanced Manager?",
"notificationTitle": "Kemaskini dimuat turun",
"notificationText": "Tap untuk memuat masuk kemas kini",
"downloadingMessage": "Memuat turun pengemaskinian...",
"installingMessage": "Memasang pengemaskinian...",
"errorDownloadMessage": "Tidak dapat memuat turun pengemaskinian",
"errorInstallMessage": "Tidak dapat memasang pengemaskinian",
"noConnection": "Tiada sambungan internet",
"updatesDisabled": "Kemas kini aplikasi yang telah dimodifikasi kini sedang dinyah aktif. Modifikasi semula aplikasi."
},
"applicationItem": {
"patchButton": "Modifikasi",
"infoButton": "Maklumat",
"changelogLabel": "Log perubahan"
},
"latestCommitCard": {
"loadingLabel": "Memuatkan...",
"timeagoLabel": "{time} lepas",
"patcherLabel": "Pemodifikasi: ",
"managerLabel": "Manager: ",
"updateButton": "Kemas Kini Manager"
},
"patcherView": {
"widgetTitle": "Pemodifikasi",
"patchButton": "Modifikasi",
"patchDialogText": "Anda telah memilih modifikasi dan APK dipasang secara split telah dikesan jadi ralat mungkin terjadi ketika memodifikasi.\nAdakah anda pasti untuk teruskan modifikasi secara split base APK?"
},
"appSelectorCard": {
"widgetTitle": "Pilih aplikasi",
"widgetTitleSelected": "Aplikasi dipilih",
"widgetSubtitle": "Tiada aplikasi dipilih",
"noAppsLabel": "Tiada aplikasi ditemui",
"currentVersion": "Semasa",
"recommendedVersion": "Disyorkan",
"anyVersion": "mana-mana"
},
"patchSelectorCard": {
"widgetTitle": "Pilih modifikasi",
"widgetTitleSelected": "Modifikasi pilihan",
"widgetSubtitle": "Pilih aplikasi dahulu",
"widgetEmptySubtitle": "Tiada modifikasi terpilih"
},
"socialMediaCard": {
"widgetTitle": "Sosial",
"widgetSubtitle": "Ikuti kami!"
},
"appSelectorView": {
"viewTitle": "Pilih aplikasi",
"searchBarHint": "Cari aplikasi",
"storageButton": "Storan",
"errorMessage": "Tidak dapat menggunakan aplikasi yang dipilih"
},
"patchesSelectorView": {
"viewTitle": "Pilih modifikasi",
"searchBarHint": "Cari modifikasi",
"doneButton": "Selesai",
"recommended": "Disyorkan",
"all": "Semua",
"none": "Tiada",
"loadPatchesSelection": "Memuat pilihan modifikasi",
"noSavedPatches": "Tiada modifkasi disimpan untuk aplikasi dipilih\nTekan Selesai untuk menyimpan pilihan semasa",
"noPatchesFound": "Tiada modifikasi dijumpai untuk apl pilihan",
"selectAllPatchesWarningContent": "Anda telah memilih untuk menggunakan kesemua modifikasi, termasuk modifikasi yang tidak disyorkan dan boleh mengakibatkan kesan yang tidak dijangka."
},
"patchItem": {
"unsupportedDialogText": "Memilih modifikasi mungkin menyebabkan ralat ketika modifikasi.\n\nVersi aplikasi: {packageVersion}\nVersi disokong:\n{supportedVersions}",
"unsupportedPatchVersion": "Patch tidak disokong untuk versi apl ini. Benarkan punat percubaan di ruang tetapan untuk teruskan."
},
"installerView": {
"widgetTitle": "Pemasang",
"installButton": "Pasang",
"installRootButton": "Pasang sebagai Root",
"openButton": "Buka",
"shareButton": "Kongsi fail",
"notificationTitle": "Revanced Manager sedang memodifikasi",
"notificationText": "Tap untuk kembali ke pemasang",
"shareApkMenuOption": "Kongsi APK",
"exportApkMenuOption": "Eksport APK",
"shareLogMenuOption": "Kongsi Log",
"installErrorDialogTitle": "Ralat",
"installErrorDialogText1": "Pemasangan root adalah mustahil menggunakan modifikasi terpilih.\nModifikasi semula apl anda atau pilih pemasangan tanpa root.",
"installErrorDialogText2": "Pemasangan tanpa root adalah mustahil menggunakan modifikasi tepilih.\nModifikasi semula apl anda atau pilih pemasangan root jika peranti anda telah root.",
"installErrorDialogText3": "Pemasangan sebagai root adalah mustahil kerana APK asal dipilih dari storan.\nSila pilih aplikasi yang telah dipasang atau pilih pemasangan tanpa root.",
"noExit": "Pemasang masih dijalankan, jangan keluar..."
},
"settingsView": {
"widgetTitle": "Tetapan",
"appearanceSectionTitle": "Penampilan",
"teamSectionTitle": "Pasukan",
"infoSectionTitle": "Maklumat",
"advancedSectionTitle": "Lanjutan",
"logsSectionTitle": "Log",
"darkThemeLabel": "Mod Gelap",
"darkThemeHint": "Selamat datang ke Kegelapan",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Nikmati tema yang lebih serasi dengan anda",
"languageLabel": "Bahasa",
"englishOption": "Inggeris",
"sourcesLabel": "Sumber",
"sourcesLabelHint": "Tetapkan sumber khas",
"orgPatchesLabel": "Pengarang Modifikasi",
"sourcesPatchesLabel": "Sumber Modifikasi",
"orgIntegrationsLabel": "Pengarang Integrasi",
"sourcesIntegrationsLabel": "Sumber Integrasi",
"sourcesResetDialogTitle": "Set semula",
"sourcesResetDialogText": "Adakah anda pasti untuk tetapkan semula sumber khas kepada tetapan asal?",
"apiURLResetDialogText": "Adakah anda pasti untuk tetapkan semula URL API kepada tetapan asal?",
"contributorsLabel": "Penyumbang",
"contributorsHint": "Senarai penyokong ReVanced",
"logsLabel": "Log",
"logsHint": "Kongsi log Manager",
"apiURLLabel": "URL API",
"apiURLHint": "Tetapkan URL API khas",
"selectApiURL": "URL API",
"experimentalPatchesLabel": "Sokongan modifikasi percubaan",
"experimentalPatchesHint": "Benarkan untuk menggunakan patch yang tidak disokong untuk mana-mana versi apl",
"enabledExperimentalPatches": "Sokongan modifikasi percubaan dibenarkan",
"exportSectionTitle": "Import & Eksport",
"aboutLabel": "Tentang",
"snackbarMessage": "Disalin ke papan klip",
"sentryLabel": "Rekod Sentry",
"sentryHint": "Hantarkan log anonymous untuk bantu kami menambah baik Revanced Manager",
"restartAppForChanges": "Mulakan semula apl untuk menggunakan tetapan",
"deleteKeystoreLabel": "Buang keystore",
"deleteKeystoreHint": "Buang keystore yang digunakan untuk mengesahkan apl",
"deletedKeystore": "Keystore dibuang",
"deleteTempDirLabel": "Buang fail sementara",
"deleteTempDirHint": "Buang fail sementara yang tidak digunakan",
"deletedTempDir": "Fail sementara dibuang",
"exportPatchesLabel": "Eksport pilihan modifikasi",
"exportPatchesHint": "Eksport pilihan modifikasi ke fail JSON",
"exportedPatches": "Pilihan modifikasi telah dieksport",
"noExportFileFound": "Tiada pilihan modifikasi untuk dieksport",
"importPatchesLabel": "Import pilihan modifikasi",
"importPatchesHint": "Import pilihan modifikasi dari fail JSON",
"importedPatches": "Pilihan modifikasi telah diimport",
"resetStoredPatchesLabel": "Set semula modifikasi",
"resetStoredPatchesHint": "Set semula pilihan modifikasi tersimpan",
"resetStoredPatches": "Pilihan modifikasi telah diset semula",
"jsonSelectorErrorMessage": "Tidak dapat menggunakan fail JSON yang dipilih",
"deleteLogsLabel": "Padam log",
"deleteLogsHint": "Padam log manager terkumpul",
"deletedLogs": "Log telah dipadam"
},
"appInfoView": {
"widgetTitle": "Maklumat apl",
"openButton": "Buka",
"uninstallButton": "Nyah pasang",
"patchButton": "Modifikasi",
"unpatchButton": "Nyah modifikasi",
"unpatchDialogText": "Adakah anda pasti untuk nyah modifikasi aplikasi ini?",
"rootDialogTitle": "Ralat",
"rootDialogText": "Aplikasi telah dipasang dengan kebenaran superuser, tetapi ReVanced Manager sekarang tidak ada kebeneran.\nMinta membenarkan kebenaran superuser dahulu.",
"packageNameLabel": "Nama pakej",
"originalPackageNameLabel": "Nama asal pakej",
"installTypeLabel": "Jenis Pemasangan",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Tanpa root",
"patchedDateLabel": "Tarikh Modifikasi",
"patchedDateHint": "{date} pada {time}",
"appliedPatchesLabel": "Modifikasi Digunakan",
"appliedPatchesHint": "{quantity} modifikasi digunakan",
"updateNotImplemented": "Ciri ini masih belum dilaksanakan"
},
"contributorsView": {
"widgetTitle": "Penyumbang",
"patcherContributors": "Penyumpang pemodifikasi",
"patchesContributors": "Penyumbang Modifikasi",
"integrationsContributors": "Penyumbang Integrasi",
"cliContributors": "Penyumbang CLI",
"managerContributors": "Penyumbang Manager"
}
}

View File

@ -1,79 +0,0 @@
// ignore_for_file: avoid_print
import 'dart:convert';
import 'dart:io';
T? removeBlankEntries<T>(T? json) {
// This function is protected by BSD 3-Clause License
// Changes made to this section are allow removing of '' values from JSON
/*
https://pub.dev/documentation/swiss_knife/latest/swiss_knife/removeEmptyEntries.html
Copyright 2014, the Dart project authors. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of Google Inc. nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
if (json == null) {
return null;
}
if (json is List) {
json.removeWhere((e) => e == null);
json.forEach(removeBlankEntries);
} else if (json is Map) {
json.removeWhere(
(key, value) => key == null || value == null || value == '',
);
json.values.forEach(removeBlankEntries);
}
return json;
}
Future<void> processJsonFiles() async {
final Directory directory = Directory.current;
final List<FileSystemEntity> files = directory.listSync();
for (final file in files) {
try {
if (file is File && file.path.endsWith('.json')) {
final String contents = await file.readAsString();
final dynamic json = jsonDecode(contents);
final dynamic processedJson = removeBlankEntries(json);
file.writeAsString(
const JsonEncoder.withIndent(' ').convert(processedJson),
);
print('🥞 Task successful on: ${file.path}');
}
} catch (e) {
print('💥 Task failed on: ${file.path}: $e');
}
}
}
void main() async {
processJsonFiles();
}

200
assets/i18n/pl_PL.json Normal file
View File

@ -0,0 +1,200 @@
{
"okButton": "OK",
"cancelButton": "Anuluj",
"updateButton": "Aktualizuj",
"enabledLabel": "Włączone",
"disabledLabel": "Wyłączone",
"yesButton": "Tak",
"noButton": "Nie",
"warning": "Ostrzeżenie",
"navigationView": {
"dashboardTab": "Panel główny",
"patcherTab": "Patcher",
"settingsTab": "Ustawienia"
},
"homeView": {
"widgetTitle": "Panel główny",
"updatesSubtitle": "Aktualizacje",
"patchedSubtitle": "Zaktualizowane aplikacje",
"updatesAvailable": "Dostępne aktualizacje",
"noUpdates": "Brak dostępnych aktualizacji",
"WIP": "Prace w toku...",
"noInstallations": "Nie zainstalowano żadnych zmodyfikowanych aplikacji",
"installed": "Zainstalowane",
"updateDialogTitle": "Zaktualizuj Managera",
"updateChangelogTitle": "Lista zmian",
"notificationTitle": "Pobrano aktualizacje",
"notificationText": "Kliknij, aby zainstalować aktualizację",
"downloadingMessage": "Pobieranie aktualizacji...",
"installingMessage": "Instalowanie aktualizacji...",
"errorDownloadMessage": "Nie udało się pobrać aktualizacji",
"errorInstallMessage": "Nie udało się zainstalować aktualizacji",
"noConnection": "Brak połączenia z internetem",
"updatesDisabled": "Aktualizowanie załatanej aplikacji jest obecnie niemożliwe. Spróbuj załatać aplikację jeszcze raz."
},
"applicationItem": {
"patchButton": "Łataj",
"infoButton": "Info",
"changelogLabel": "Lista zmian"
},
"latestCommitCard": {
"loadingLabel": "Ładowanie...",
"timeagoLabel": "{time} temu",
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "Zaktualizuj Menedżera"
},
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Łataj",
"patchDialogText": "Wykryto instalację split APK, więc mogą wystąpić błędy podczas aktualizacji.\nCzy na pewno chcesz kontynuować?"
},
"appSelectorCard": {
"widgetTitle": "Wybierz aplikację",
"widgetTitleSelected": "Wybrana aplikacja",
"widgetSubtitle": "Nie wybrano aplikacji",
"noAppsLabel": "Nie znaleziono aplikacji",
"currentVersion": "Aktualna",
"recommendedVersion": "Zalecana",
"anyVersion": "dowolna"
},
"patchSelectorCard": {
"widgetTitle": "Wybierz łatki",
"widgetTitleSelected": "Wybrane łatki",
"widgetSubtitle": "Najpierw wybierz aplikację",
"widgetEmptySubtitle": "Nie wybrano żadnych łatek"
},
"socialMediaCard": {
"widgetTitle": "Media społecznościowe",
"widgetSubtitle": "Jesteśmy online!"
},
"appSelectorView": {
"viewTitle": "Wybierz aplikację",
"searchBarHint": "Wyszukaj aplikacje",
"storageButton": "Pamięć",
"errorMessage": "Nie można użyć wybranej aplikacji"
},
"patchesSelectorView": {
"viewTitle": "Wybierz łatki",
"searchBarHint": "Wyszukaj łatki",
"doneButton": "Gotowe",
"recommended": "Zalecane",
"all": "Wszystkie",
"none": "Żadne",
"loadPatchesSelection": "Załaduj wybrane łatki",
"noSavedPatches": "Brak zapisanych łatek dla wybranej aplikacji.\nNaciśnij Gotowe, aby zapisać bieżący wybór.",
"noPatchesFound": "Nie znaleziono żadnych łatek dla wybranej aplikacji",
"selectAllPatchesWarningContent": "Zamierzasz wybrać wszystkie łatki, włącznie z tymi niezalecanymi, które mogą powodować niepożądane zachowania."
},
"patchItem": {
"unsupportedDialogText": "Wybranie tej łatki może spowodować błędy podczas modyfikowania.\n\nWersja aplikacji: {packageVersion}\nAktualnie wspierana wersja:\n{supportedVersions}",
"unsupportedPatchVersion": "Łatka nie jest obsługiwana dla tej wersji aplikacji. Włącz opcje eksperymentalne w ustawieniach, aby kontynuować."
},
"installerView": {
"widgetTitle": "Instalator",
"installButton": "Zainstaluj",
"installRootButton": "Zainstaluj jako Root",
"openButton": "Otwórz",
"shareButton": "Udostępnij plik",
"notificationTitle": "ReVanced Manager patchuje",
"notificationText": "Dotknij, aby powrócić do instalatora",
"shareApkMenuOption": "Udostępnij plik APK",
"exportApkMenuOption": "Eksportuj APK",
"shareLogMenuOption": "Udostępnij logi",
"installErrorDialogTitle": "Błąd",
"installErrorDialogText1": "Instalacja za pomocą roota nie jest możliwa przy obecnym wyborze łatek.\nZałataj aplikacje ponownie lub wybierz instalacje bez roota.",
"installErrorDialogText2": "Instalacja bez roota nie jest możliwa przy obecnym wyborze łatek.\nZałataj aplikacje ponownie lub wybierz instalacje za pomocą roota, jeśli masz zrootowane urządzenie.",
"installErrorDialogText3": "Instalacja jako root nie jest możliwa, ponieważ oryginalny plik APK został wybrany z pamięci.\nWybierz zainstalowaną aplikację lub wybierz instalację bez używania roota.",
"noExit": "Instalator jest nadal uruchomiony, nie można zakończyć jego działania..."
},
"settingsView": {
"widgetTitle": "Ustawienia",
"appearanceSectionTitle": "Wygląd",
"teamSectionTitle": "Zespół",
"infoSectionTitle": "Informacje",
"advancedSectionTitle": "Zaawansowane",
"logsSectionTitle": "Logi",
"darkThemeLabel": "Tryb ciemny",
"darkThemeHint": "Witamy na ciemnej stronie mocy",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Ciesz się wrażeniami bliższymi twojemu urządzeniu",
"languageLabel": "Język",
"englishOption": "Angielski",
"sourcesLabel": "Źródła",
"sourcesLabelHint": "Skonfiguruj własne źródła",
"hostRepositoryLabel": "Repozytorium API",
"orgPatchesLabel": "Organizacja łatek",
"sourcesPatchesLabel": "Źródło łatek",
"orgIntegrationsLabel": "Organizacja integracji",
"sourcesIntegrationsLabel": "Źródło integracji",
"sourcesResetDialogTitle": "Zresetuj",
"sourcesResetDialogText": "Czy na pewno chcesz przywrócić niestandardowe źródła do wartości domyślnych?",
"apiURLResetDialogText": "Czy jesteś pewien, że chcesz przywrócić wszystkie adresy API do domyślnych wartości?",
"contributorsLabel": "Współtwórcy",
"contributorsHint": "Lista współtwórców ReVanced",
"logsLabel": "Logi",
"logsHint": "Udostępnij logi menedżera",
"apiURLLabel": "Adres API",
"apiURLHint": "Ustaw własny adres API",
"selectApiURL": "Adres API",
"experimentalUniversalPatchesLabel": "Wsparcie dla uniwersalnych eksperymentalnych łatek",
"experimentalUniversalPatchesHint": "Wyświetl wszystkie aplikacje do użycia z uniwersalnymi łatkami, ładowanie listy aplikacji może być wolniejsze",
"experimentalPatchesLabel": "Wsparcie dla eksperymentalnych łatek",
"experimentalPatchesHint": "Włącz użycie nieobsługiwanych łatek w dowolnej wersji aplikacji",
"enabledExperimentalPatches": "Włączone wsparcie dla eksperymentalnych łatek",
"exportSectionTitle": "Import i eksport",
"aboutLabel": "O Aplikacji",
"snackbarMessage": "Skopiowano do schowka",
"sentryLabel": "Zapisywanie logów",
"sentryHint": "Wysyłaj anonimowe logi, aby pomóc nam ulepszyć ReVanced Manager",
"restartAppForChanges": "Zrestartuj aplikację, aby zastosować zmiany",
"deleteKeystoreLabel": "Usuń klucz",
"deleteKeystoreHint": "Usuń klucz używany do podpisywania aplikacji",
"deletedKeystore": "Klucz usunięty",
"deleteTempDirLabel": "Usuń pliki tymczasowe",
"deleteTempDirHint": "Usuń nieużywane pliki tymczasowe",
"deletedTempDir": "Pliki tymczasowe zostały usunięte",
"exportPatchesLabel": "Eksportuj wybrane łatki",
"exportPatchesHint": "Eksportuj wybrane łatki do pliku JSON",
"exportedPatches": "Wyeksportowano wybór łatek",
"noExportFileFound": "Brak wybranych łatek do wyeksportowania",
"importPatchesLabel": "Importuj wybrane łatki",
"importPatchesHint": "Importuj wybrane łatki z pliku JSON",
"importedPatches": "Zaimportowano wybrane łatki",
"resetStoredPatchesLabel": "Resetuj łatki",
"resetStoredPatchesHint": "Zresetuj wybrane przechowywane łatki",
"resetStoredPatches": "Wybrane łatki zostały zresetowane",
"jsonSelectorErrorMessage": "Nie można użyć wybranego pliku JSON",
"deleteLogsLabel": "Usuń logi",
"deleteLogsHint": "Usuń logi zebrane przez menadżera",
"deletedLogs": "Logi usunięte"
},
"appInfoView": {
"widgetTitle": "Informacje o aplikacji",
"openButton": "Otwórz",
"uninstallButton": "Odinstaluj",
"patchButton": "Aktualizuj",
"unpatchButton": "Usuń aktualizację",
"unpatchDialogText": "Czy na pewno chcesz usunąć łatki z tej aplikacji?",
"rootDialogTitle": "Błąd",
"rootDialogText": "Aplikacja została zainstalowana z uprawnieniami superużytkownika, ale obecnie ReVanced Manager nie ma uprawnień.\nProszę najpierw przyznać uprawnienia superużytkownika.",
"packageNameLabel": "Nazwa pakietu",
"originalPackageNameLabel": "Oryginalna nazwa pakietu",
"installTypeLabel": "Typ instalacji",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Bez roota",
"patchedDateLabel": "Data modyfikacji",
"patchedDateHint": "{date} o godzinie {time}",
"appliedPatchesLabel": "Zastosowane łatki",
"appliedPatchesHint": "Zastosowano {quantity} łatek",
"updateNotImplemented": "Ta funkcja nie została jeszcze zaimplementowana"
},
"contributorsView": {
"widgetTitle": "Współtwórcy",
"patcherContributors": "Współtwórcy patcher'a",
"patchesContributors": "Współtwórcy łatek",
"integrationsContributors": "Współtwórcy integracji",
"cliContributors": "Współtwórcy CLI",
"managerContributors": "Współtwórcy menedżera"
}
}

196
assets/i18n/pt_BR.json Normal file
View File

@ -0,0 +1,196 @@
{
"okButton": "Aceitar",
"cancelButton": "Cancelar",
"enabledLabel": "Ativado",
"disabledLabel": "Desativado",
"yesButton": "Sim",
"noButton": "Não",
"warning": "Atenção",
"navigationView": {
"dashboardTab": "Painel",
"patcherTab": "Patcher",
"settingsTab": "Configurações"
},
"homeView": {
"widgetTitle": "Painel",
"updatesSubtitle": "Atualizações",
"patchedSubtitle": "Aplicativos modificados",
"updatesAvailable": "Atualizações disponíveis",
"noUpdates": "Nenhuma atualização disponível",
"WIP": "Em desenvolvimento...",
"noInstallations": "Nenhum aplicativo modificado instalado",
"installed": "Instalado",
"updateDialogTitle": "Atualizar o Manager",
"updateDialogText": "Tem certeza que deseja baixar e atualizar o ReVanced Manager?",
"notificationTitle": "Atualização baixada",
"notificationText": "Toque para instalar a atualização",
"downloadingMessage": "Baixando atualização...",
"installingMessage": "Instalando atualização...",
"errorDownloadMessage": "Não foi possível baixar a atualização",
"errorInstallMessage": "Não foi possível instalar a atualização",
"noConnection": "Sem conexão com a internet",
"updatesDisabled": "A opção de atualização de um aplicativo modificado está temporariamente desabilitada. Refaça o \"patch\" do aplicativo e tente novamente."
},
"applicationItem": {
"patchButton": "Patch",
"infoButton": "Info",
"changelogLabel": "Registro de alterações"
},
"latestCommitCard": {
"loadingLabel": "Carregando...",
"timeagoLabel": "há {time}",
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "Atualizar Manager"
},
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Patch",
"patchDialogText": "Você selecionou um recurso de patch e uma instalação dividida de APK foi detectada, então erros no patch podem ocorrer.\nVocê tem certeza que quer continuar?"
},
"appSelectorCard": {
"widgetTitle": "Selecione um app",
"widgetTitleSelected": "Aplicativo selecionado",
"widgetSubtitle": "Nenhum aplicativo selecionado",
"noAppsLabel": "Nenhum app foi encontrado",
"currentVersion": "Atual",
"recommendedVersion": "Recomendado",
"anyVersion": "todos"
},
"patchSelectorCard": {
"widgetTitle": "Selecionar patches",
"widgetTitleSelected": "Patches selecionados",
"widgetSubtitle": "Escolha um aplicativo primeiro",
"widgetEmptySubtitle": "Nenhum patch selecionado"
},
"socialMediaCard": {
"widgetTitle": "Mídias sociais",
"widgetSubtitle": "Nós estamos online!"
},
"appSelectorView": {
"viewTitle": "Selecione um app",
"searchBarHint": "Procurar aplicativos",
"storageButton": "Armazenamento",
"errorMessage": "Não foi possível usar o app selecionado"
},
"patchesSelectorView": {
"viewTitle": "Selecionar patches",
"searchBarHint": "Buscar patches",
"doneButton": "Concluído",
"recommended": "Recomendado",
"all": "Todos",
"none": "Nenhum",
"loadPatchesSelection": "Carregar seleção de patches",
"noSavedPatches": "Sem patches salvados para o app selecionado\nAperte Feito para salvar a seleção atual",
"noPatchesFound": "Nenhum patch encontrado para o aplicativo selecionado",
"selectAllPatchesWarningContent": "Você está prestes a selecionar todos os 'patchs', isso inclui 'patchs' não-recomendados e isso pode causar comportamentos inesperados."
},
"patchItem": {
"unsupportedDialogText": "Selecionar esse patch pode resultar em erros de patcheamento.\n\nVersão do app: {packageVersion}\nVersões suportadas:\n{supportedVersions}",
"unsupportedPatchVersion": "O patch não é suportado para essa versão do app. Habilite a opção experimental nas configurações para continuar."
},
"installerView": {
"widgetTitle": "Instalador",
"installButton": "Instalar",
"installRootButton": "Instalar como root",
"openButton": "Abrir",
"shareButton": "Compartilhar arquivo",
"notificationTitle": "ReVanced manager está aplicando os patches",
"notificationText": "Toque para voltar ao instalador",
"shareApkMenuOption": "Compartilhar APK",
"exportApkMenuOption": "Exportar APK",
"shareLogMenuOption": "Compartilhar registros",
"installErrorDialogTitle": "Erro",
"installErrorDialogText1": "A instalação como superusuário não é possível com a seleção de patches atual.\nRefaça o patch do aplicativo ou escolha a instalação não-superusuário.",
"installErrorDialogText2": "A instalação sem root não é possível com a seleção de patches atual.\nRefaça os patches do aplicativo ou escolha a instalação com root se seu dispositivo for rooteado.",
"installErrorDialogText3": "A instalação com root não é possível porque o APK original foi selecionado do armazenamento.\nSelecione um aplicativo instalado ou escolha a instalação sem root.",
"noExit": "O instalador ainda está trabalhando, não é possível sair..."
},
"settingsView": {
"widgetTitle": "Configurações",
"appearanceSectionTitle": "Aparência",
"teamSectionTitle": "Time",
"infoSectionTitle": "Info",
"advancedSectionTitle": "Avançado",
"logsSectionTitle": "Registros",
"darkThemeLabel": "Modo escuro",
"darkThemeHint": "Bem-vindo ao lado negro",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Aproveite uma experiência mais próxima do tema de seu dispositivo",
"languageLabel": "Idioma",
"englishOption": "Inglês",
"sourcesLabel": "Fontes",
"sourcesLabelHint": "Configure sua URL de API customizada",
"orgPatchesLabel": "Organização de Patches",
"sourcesPatchesLabel": "Fonte dos Patches",
"orgIntegrationsLabel": "Organização das Integrações",
"sourcesIntegrationsLabel": "Fonte das Integrações",
"sourcesResetDialogTitle": "Redefinir",
"sourcesResetDialogText": "Você tem certeza que quer resetar as fontes personalizadas para o padrão?",
"apiURLResetDialogText": "Tem certeza de que deseja redefinir a URL da API para seu valor padrão?",
"contributorsLabel": "Contribuidores",
"contributorsHint": "Uma lista de contribuidores do ReVanced",
"logsLabel": "Registros",
"logsHint": "Compartilhar logs do Manager",
"apiURLLabel": "URL da API",
"apiURLHint": "Configure sua URL de API customizada",
"selectApiURL": "URL da API",
"experimentalPatchesLabel": "Suporte de Patches Experimentais",
"experimentalPatchesHint": "Habilitar o uso de patches não suportados em qualquer versão do app",
"enabledExperimentalPatches": "Suporte a patches experimentais ativado",
"exportSectionTitle": "Importar & Exportar",
"aboutLabel": "Sobre",
"snackbarMessage": "Copiado para a área de transferência",
"sentryLabel": "Registro do sentinela de erros",
"sentryHint": "Envie registros anônimos para nos ajudar a melhorar o ReVanced Manager",
"restartAppForChanges": "Reinicie o app para aplicar as mudanças",
"deleteKeystoreLabel": "Apagar registro de chaves",
"deleteKeystoreHint": "Apagar o registro de chaves usado para assinar o app",
"deletedKeystore": "Registro de chaves apagado",
"deleteTempDirLabel": "Apagar arquivos temporários",
"deleteTempDirHint": "Apagar os arquivos temporários inutilizados",
"deletedTempDir": "Arquivos temporários apagados",
"exportPatchesLabel": "Exportar seleção de patches",
"exportPatchesHint": "Exportar a seleção de patches para um arquivo JSON",
"exportedPatches": "Seleção de patches exportadas",
"noExportFileFound": "Nenhuma seleção de patches para exportar",
"importPatchesLabel": "Importar seleção de patches",
"importPatchesHint": "Importar a seleção de patches de um arquivo JSON",
"importedPatches": "Seleção de patches importadas",
"resetStoredPatchesLabel": "Redefinir patches",
"resetStoredPatchesHint": "Redefinir a seleção de patches armazenados",
"resetStoredPatches": "A seleção de patches foi redefinida",
"jsonSelectorErrorMessage": "Não é possível usar o arquivo JSON selecionado",
"deleteLogsLabel": "Apagar registros",
"deleteLogsHint": "Apagar registros coletados pelo administrador",
"deletedLogs": "Registros apagados"
},
"appInfoView": {
"widgetTitle": "Inform. do app",
"openButton": "Abrir",
"uninstallButton": "Desisntalar",
"patchButton": "Patch",
"unpatchButton": "Remover patches",
"unpatchDialogText": "Você tem certeza que deseja remover os patches deste aplicativo?",
"rootDialogTitle": "Erro",
"rootDialogText": "O aplicativo foi instalado com permissões de superusuário, mas atualmente o ReVanced Manager não tem permissões.\nPor favor, conceda permissões de superusuário primeiro.",
"packageNameLabel": "Nome do pacote",
"originalPackageNameLabel": "Nome original do pacote",
"installTypeLabel": "Tipo de instalação",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Não-root",
"patchedDateLabel": "Data de patcheamento",
"patchedDateHint": "{date} às {time}",
"appliedPatchesLabel": "Patches aplicados",
"appliedPatchesHint": "{quantity} patches aplicados",
"updateNotImplemented": "Esta função ainda não foi implementada"
},
"contributorsView": {
"widgetTitle": "Contribuidores",
"patcherContributors": "Contribuidores do Patcher",
"patchesContributors": "Contribuidores de patches",
"integrationsContributors": "Contribuidores de integrações",
"cliContributors": "Contribuidores CLI",
"managerContributors": "Contribuidores do Manager"
}
}

200
assets/i18n/pt_PT.json Normal file
View File

@ -0,0 +1,200 @@
{
"okButton": "OK",
"cancelButton": "Cancelar",
"updateButton": "Atualizar",
"enabledLabel": "Ativado",
"disabledLabel": "Desativado",
"yesButton": "Sim",
"noButton": "Não",
"warning": "Aviso",
"navigationView": {
"dashboardTab": "Painel de controlo",
"patcherTab": "Patcher",
"settingsTab": "Definições"
},
"homeView": {
"widgetTitle": "Painel de controlo",
"updatesSubtitle": "Atualizações",
"patchedSubtitle": "Aplicações Modificadas",
"updatesAvailable": "Atualizações disponíveis",
"noUpdates": "Nenhuma atualização disponível",
"WIP": "Em desenvolvimento...",
"noInstallations": "Nenhuma aplicação modificada instalada",
"installed": "Instalado",
"updateDialogTitle": "Atualizar Manager",
"updateChangelogTitle": "Alterações",
"notificationTitle": "Atualização transferida",
"notificationText": "Toque para instalar a atualização",
"downloadingMessage": "A transferir a atualização...",
"installingMessage": "A instalar atualização...",
"errorDownloadMessage": "Não é possível transferir a atualização",
"errorInstallMessage": "Não foi possível instalar a atualização",
"noConnection": "Sem ligação à Internet",
"updatesDisabled": "Atualizar uma aplicação modificada está atualmente desabilitado. Volta a modificar a aplicação."
},
"applicationItem": {
"patchButton": "Modificar",
"infoButton": "Informação",
"changelogLabel": "Alterações"
},
"latestCommitCard": {
"loadingLabel": "A carregar...",
"timeagoLabel": "há {time}",
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "Atualizar Manager"
},
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Modificar",
"patchDialogText": "Selecionou uma modificação de recurso e uma instalação dividida de APK foi detetada, logo podem ocorrer erros de modificação.\nTem a certeza que deseja prosseguir?"
},
"appSelectorCard": {
"widgetTitle": "Selecione uma aplicação",
"widgetTitleSelected": "Aplicação selecionada",
"widgetSubtitle": "Nenhuma aplicação selecionada",
"noAppsLabel": "Não foram encontradas aplicações",
"currentVersion": "Atual",
"recommendedVersion": "Recomendada",
"anyVersion": "qualquer"
},
"patchSelectorCard": {
"widgetTitle": "Selecionar modificações",
"widgetTitleSelected": "Modificações selecionadas",
"widgetSubtitle": "Selecione uma aplicação primeiro",
"widgetEmptySubtitle": "Nenhuma modificação selecionada"
},
"socialMediaCard": {
"widgetTitle": "Redes sociais",
"widgetSubtitle": "Estamos online!"
},
"appSelectorView": {
"viewTitle": "Selecione uma aplicação",
"searchBarHint": "Procurar aplicações",
"storageButton": "Armazenamento",
"errorMessage": "Não é possível usar a aplicação selecionada"
},
"patchesSelectorView": {
"viewTitle": "Selecionar modificações",
"searchBarHint": "Procurar modificações",
"doneButton": "Concluído",
"recommended": "Recomendadas",
"all": "Todas",
"none": "Nenhuma",
"loadPatchesSelection": "Carregar seleção de modificações",
"noSavedPatches": "Nenhuma correção salva para o aplicativo selecionado.\nPressione \"Concluir\" para salvar a seleção atual.",
"noPatchesFound": "Nenhuma modificação encontrada para a aplicação selecionada",
"selectAllPatchesWarningContent": "Está prestes a selecionar todos os patches que incluem correções não recomendadas e podem causar comportamentos indesejados."
},
"patchItem": {
"unsupportedDialogText": "Selecionar esta modificação pode resultar em erros.\n\nVersão da aplicação: {packageVersion}\nVersões suportadas:\n{supportedVersions}",
"unsupportedPatchVersion": "Modificar não é suportado para esta versão da aplicação. Ativa a opção experimental nas definições para proceder."
},
"installerView": {
"widgetTitle": "Instalador",
"installButton": "Instalar",
"installRootButton": "Instalar como Root",
"openButton": "Abrir",
"shareButton": "Partilhar ficheiro",
"notificationTitle": "O ReVanced Manager está a fazer as modificações",
"notificationText": "Toca para voltar ao instalador",
"shareApkMenuOption": "Partilhar APK",
"exportApkMenuOption": "Exportar APK",
"shareLogMenuOption": "Partilhar registo",
"installErrorDialogTitle": "Erro",
"installErrorDialogText1": "A instalação com root não é possível com a seleção de modificações atuais.\nVolta a fazer a modificação da tua aplicação ou escolhe uma instalação sem root.",
"installErrorDialogText2": "A instalação sem root não é possível com a seleção de modificações atuais.\nVolta a fazer a modificação da tua aplicação ou escolhe uma instalação com root se o teu dispositivo estiver rooted.",
"installErrorDialogText3": "Não é possível instalar com root, pois o APK original foi selecionado do armazenamento.\nSelecione uma aplicação instalada ou escolha uma instalação sem root.",
"noExit": "O instalador ainda está em execução, não é possível sair..."
},
"settingsView": {
"widgetTitle": "Definições",
"appearanceSectionTitle": "Aparência",
"teamSectionTitle": "Equipa",
"infoSectionTitle": "Informação",
"advancedSectionTitle": "Opções avançadas",
"logsSectionTitle": "Registos",
"darkThemeLabel": "Modo escuro",
"darkThemeHint": "Bem-vindo ao lado negro",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Aproveite uma experiência mais próxima do tema do seu dispositivo",
"languageLabel": "Idioma",
"englishOption": "Inglês",
"sourcesLabel": "Fontes",
"sourcesLabelHint": "Configure as suas fontes personalizadas",
"hostRepositoryLabel": "API do Repositório",
"orgPatchesLabel": "Organização de Modificações",
"sourcesPatchesLabel": "Fonte das Modificações",
"orgIntegrationsLabel": "Organização de Integrações",
"sourcesIntegrationsLabel": "Fonte das Integrações",
"sourcesResetDialogTitle": "Repor",
"sourcesResetDialogText": "Tem certeza que deseja redefinir as fontes personalizadas para os seus valores padrão?",
"apiURLResetDialogText": "Tem certeza de que deseja repor o URL da API para o seu valor padrão?",
"contributorsLabel": "Contribuidores",
"contributorsHint": "Uma lista de contribuidores do ReVanced",
"logsLabel": "Registos",
"logsHint": "Compartilhar registos do Manager",
"apiURLLabel": "URL da API",
"apiURLHint": "Configura a tua URL de API personalizada",
"selectApiURL": "URL da API",
"experimentalUniversalPatchesLabel": "Suporte experimental para modificações universais",
"experimentalUniversalPatchesHint": "Mostrar todas as aplicações a usar com as modificações universais, a lista de carregamento de apps pode ser mais lenta",
"experimentalPatchesLabel": "Suporte para modificações experimentais",
"experimentalPatchesHint": "Ativa o uso de modificações não suportadas em qualquer versão das aplicações",
"enabledExperimentalPatches": "Suporte para modificações experimentais ativo",
"exportSectionTitle": "Importar e exportar",
"aboutLabel": "Sobre",
"snackbarMessage": "Copiado para a área de transferência",
"sentryLabel": "Registo do coletor de erros",
"sentryHint": "Enviar registos anónimos para nos ajudar a melhorar o ReVanced Manager",
"restartAppForChanges": "Reinicia a aplicação para aplicar as alterações",
"deleteKeystoreLabel": "Excluir keystore",
"deleteKeystoreHint": "Excluir a keystore usada para assinar a aplicação",
"deletedKeystore": "Keystore excluída",
"deleteTempDirLabel": "Apagar arquivos temporários",
"deleteTempDirHint": "Apagar arquivos temporários não utilizados",
"deletedTempDir": "Arquivos temporários apagados",
"exportPatchesLabel": "Exportar seleção de modificações",
"exportPatchesHint": "Exporta a seleção de modificações para um arquivo JSON",
"exportedPatches": "Seleção de modificações exportada",
"noExportFileFound": "Nenhuma seleção de modificações para exportar",
"importPatchesLabel": "Importar seleção de modificações",
"importPatchesHint": "Importa a seleção de modificações de um arquivo JSON",
"importedPatches": "Seleção de modificações importada",
"resetStoredPatchesLabel": "Redefinir modificações",
"resetStoredPatchesHint": "Redefinir a seleção de modificações armazenada",
"resetStoredPatches": "A seleção de modificações foi redefinida",
"jsonSelectorErrorMessage": "Não é possível usar o arquivo JSON selecionado",
"deleteLogsLabel": "Eliminar registos",
"deleteLogsHint": "Exclui registos do manager coletados",
"deletedLogs": "Registos excluídos"
},
"appInfoView": {
"widgetTitle": "Informações da aplicação",
"openButton": "Abrir",
"uninstallButton": "Desinstalar",
"patchButton": "Modificar",
"unpatchButton": "Desalterar",
"unpatchDialogText": "Tens a certeza que queres desalterar esta app?",
"rootDialogTitle": "Erro",
"rootDialogText": "A aplicação foi instalada com permissões de superutilizador, mas atualmente o ReVanced Manager não tem permissões.\nPor favor, conceda permissões de superutilizador primeiro.",
"packageNameLabel": "Nome do pacote",
"originalPackageNameLabel": "Nome original do pacote",
"installTypeLabel": "Tipo de instalação",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Sem root",
"patchedDateLabel": "Data da Modificação",
"patchedDateHint": "{date} às {time}",
"appliedPatchesLabel": "Modificações aplicadas",
"appliedPatchesHint": "{quantity} modificação/ões aplicada/s",
"updateNotImplemented": "Este recurso ainda não foi implementado"
},
"contributorsView": {
"widgetTitle": "Contribuidores",
"patcherContributors": "Contribuidores do Modificador",
"patchesContributors": "Contribuidores das Modificações",
"integrationsContributors": "Contribuidores das Integrações",
"cliContributors": "Contribuidores do CLI",
"managerContributors": "Contribuidores do Manager"
}
}

200
assets/i18n/ro_RO.json Normal file
View File

@ -0,0 +1,200 @@
{
"okButton": "OK",
"cancelButton": "Anulează",
"updateButton": "Actualizare",
"enabledLabel": "Activat",
"disabledLabel": "Dezactivat",
"yesButton": "Da",
"noButton": "Nu",
"warning": "Avertizare",
"navigationView": {
"dashboardTab": "Panou de administrare",
"patcherTab": "Patcher",
"settingsTab": "Setări"
},
"homeView": {
"widgetTitle": "Panou de administrare",
"updatesSubtitle": "Actualizări",
"patchedSubtitle": "Aplicații Patch-uite",
"updatesAvailable": "Actualizări disponibile",
"noUpdates": "Nu există actualizări disponibile",
"WIP": "Lucru în curs...",
"noInstallations": "Nu sunt instalate aplicații patch-uite",
"installed": "Instalat",
"updateDialogTitle": "Manager Actualizări",
"updateChangelogTitle": "Istoric schimbări",
"notificationTitle": "Actualizare descărcată",
"notificationText": "Apăsați pentru a instala actualizarea",
"downloadingMessage": "Se descarcă actualizarea...",
"installingMessage": "Se instalează actualizarea...",
"errorDownloadMessage": "Nu s-a putut descărca actualizarea",
"errorInstallMessage": "Nu s-a putut instala actualizarea",
"noConnection": "Nu există conexiune la internet",
"updatesDisabled": "Actualizarea aplicației patch-uite este dezactivată la moment.\nRepatch-uiți aplicația din nou."
},
"applicationItem": {
"patchButton": "Patch",
"infoButton": "Informații",
"changelogLabel": "Istoric schimbări"
},
"latestCommitCard": {
"loadingLabel": "Se încarcă...",
"timeagoLabel": "În urmă cu {time}",
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "Manager Actualizări"
},
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Patch",
"patchDialogText": "Ați selectat un patch de resurse și a fost detectată o instalare a unui split APK, astfel că anumite erori ar putea apărea în momentul efectuării patch-ului.\nSunteți sigur că doriți să continuați?"
},
"appSelectorCard": {
"widgetTitle": "Selectați o aplicație",
"widgetTitleSelected": "Aplicația selectată",
"widgetSubtitle": "Nicio aplicație selectată",
"noAppsLabel": "Nu s-au găsit aplicații",
"currentVersion": "Actual",
"recommendedVersion": "Recomandat",
"anyVersion": "oricare"
},
"patchSelectorCard": {
"widgetTitle": "Selectați patch-urile",
"widgetTitleSelected": "Patch-uri selectate",
"widgetSubtitle": "Selectați mai întâi o aplicație",
"widgetEmptySubtitle": "Nici un patch selectat"
},
"socialMediaCard": {
"widgetTitle": "Rețele de socializare",
"widgetSubtitle": "Suntem online!"
},
"appSelectorView": {
"viewTitle": "Selectați o aplicație",
"searchBarHint": "Căutați aplicații",
"storageButton": "Stocare",
"errorMessage": "Aplicația selectată nu poate fi utilizată"
},
"patchesSelectorView": {
"viewTitle": "Selectați patch-urile",
"searchBarHint": "Căutați patch-uri",
"doneButton": "Finalizat",
"recommended": "Recomandat",
"all": "Toate",
"none": "Niciunul",
"loadPatchesSelection": "Încărcați selecția de patch-uri",
"noSavedPatches": "Nu există patch-uri salvate pentru aplicația selectată.\nApăsați Terminat pentru a salva selecția curentă.",
"noPatchesFound": "Nu s-au găsit patch-uri pentru aplicația selectată",
"selectAllPatchesWarningContent": "Urmează să selectați toate patch-urile, acestea incluzând patch-uri nerecomandate care pot cauza funcționarea necorespunzătoare a aplicației."
},
"patchItem": {
"unsupportedDialogText": "Selectarea acestui patch poate rezulta în erori de patch-uire.\n\nVersiunea aplicației: {packageVersion}\nVersiuni compatibile:\n{supportedVersions}",
"unsupportedPatchVersion": "Patch-ul nu este compatibil cu această versiune a aplicației. Activați comutatorul experimental din setări pentru a continua."
},
"installerView": {
"widgetTitle": "Instalator",
"installButton": "Instalează",
"installRootButton": "Instalează ca Root",
"openButton": "Deschide",
"shareButton": "Distribuie fișierul",
"notificationTitle": "ReVanced Manager efectuează patch-uirea",
"notificationText": "Apăsați pentru a reveni la instalator",
"shareApkMenuOption": "Distribuie APK-ul",
"exportApkMenuOption": "Exportă APK-ul",
"shareLogMenuOption": "Distribuie log-ul",
"installErrorDialogTitle": "Eroare",
"installErrorDialogText1": "Instalarea root nu este posibilă cu selecția curentă de patch-uri.\nReluați procesul de aplicare a patch-urilor sau selectați instalarea non-root.",
"installErrorDialogText2": "Instalarea non-root nu este posibilă cu selecția curentă de patch-uri.\nReluați procesul de aplicare a patch-urilor sau selectați instalarea root, dacă aveți dispozitivul rootat.",
"installErrorDialogText3": "Instalarea root nu este posibilă, deoarece fișierul APK original a fost selectat din stocarea internă.\nSelectați o aplicație deja instalată pe dispozitiv sau alegeți instalarea non-root.",
"noExit": "Instalarea este încă în funcțiune, nu se poate ieși..."
},
"settingsView": {
"widgetTitle": "Setări",
"appearanceSectionTitle": "Aspect",
"teamSectionTitle": "Echipă",
"infoSectionTitle": "Informații",
"advancedSectionTitle": "Setări avansate",
"logsSectionTitle": "Log-uri",
"darkThemeLabel": "Mod întunecat",
"darkThemeHint": "Bun venit în partea întunecată",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Bucură-te de o experiență mai apropiată de dispozitivul tău",
"languageLabel": "Limbă",
"englishOption": "Engleză",
"sourcesLabel": "Surse",
"sourcesLabelHint": "Configurați-vă sursele personalizate",
"hostRepositoryLabel": "Repository API",
"orgPatchesLabel": "Organizarea patch-urilor",
"sourcesPatchesLabel": "Sursă patch-uri",
"orgIntegrationsLabel": "Organizare integrări",
"sourcesIntegrationsLabel": "Sursă integrări",
"sourcesResetDialogTitle": "Resetează",
"sourcesResetDialogText": "Ești sigur că dorești să resetezi sursele personalizate la valorile lor implicite?",
"apiURLResetDialogText": "Ești sigur că dorești să resetezi API URL la valorile sale inițiale?",
"contributorsLabel": "Contribuitori",
"contributorsHint": "O listă cu contribuitorii ReVanced",
"logsLabel": "Log-uri",
"logsHint": "Partajează jurnalele managerului",
"apiURLLabel": "API URL",
"apiURLHint": "Configurați-vă API URL-ul personalizat",
"selectApiURL": "API URL",
"experimentalUniversalPatchesLabel": "Suport pentru patch-uri experimentale universale",
"experimentalUniversalPatchesHint": "Afișează toate aplicațiile de utilizat cu patch-uri universale, lista de aplicații poate fi mai lentă",
"experimentalPatchesLabel": "Suport pentru patch-uri experimentale",
"experimentalPatchesHint": "Activați utilizarea de patch-uri nesuportate în orice versiune a aplicației",
"enabledExperimentalPatches": "Suport pentru patch-uri experimentale",
"exportSectionTitle": "Importă & exportă",
"aboutLabel": "Despre",
"snackbarMessage": "Copiat în clipboard",
"sentryLabel": "Logging de Santinelă",
"sentryHint": "Trimite log-uri anonime pentru a ne ajuta să îmbunătățim ReVanced Manager",
"restartAppForChanges": "Reporniți aplicația pentru a aplica modificările",
"deleteKeystoreLabel": "Ștergeți keystore-ul",
"deleteKeystoreHint": "Ștergeți keystore-ul utilizat pentru a însemna aplicația",
"deletedKeystore": "Keystore șters",
"deleteTempDirLabel": "Ștergeți fișierele temporare",
"deleteTempDirHint": "Șterge fișierele temporare neutilizate",
"deletedTempDir": "Fișierele temporare au fost șterse",
"exportPatchesLabel": "Exportă selecția patch-urilor",
"exportPatchesHint": "Exportă selecția patch-urilor într-un fișier JSON",
"exportedPatches": "Selecția patch-urilor a fost exportată",
"noExportFileFound": "Nicio selecție a patch-urilor de exportat",
"importPatchesLabel": "Importă selecția patch-urilor",
"importPatchesHint": "Importă selecția patch-urilor dintr-un fișier JSON",
"importedPatches": "Selecția patch-urilor a fost importată",
"resetStoredPatchesLabel": "Resetați patch-uri",
"resetStoredPatchesHint": "Resetează selecția de patch-uri salvată",
"resetStoredPatches": "Selecția de patch-uri a fost resetată",
"jsonSelectorErrorMessage": "Imposibil de folosit fișierul JSON selectat",
"deleteLogsLabel": "Ștergeți log-urile",
"deleteLogsHint": "Ștergeți log-urile de manager colectate",
"deletedLogs": "Log-urile au fost șterse"
},
"appInfoView": {
"widgetTitle": "Informații despre aplicație",
"openButton": "Deschide",
"uninstallButton": "Dezinstalează",
"patchButton": "Patch",
"unpatchButton": "Unpatch",
"unpatchDialogText": "Sunteți sigur că vreți să unpatch-uiți această aplicație?",
"rootDialogTitle": "Eroare",
"rootDialogText": "Aplicația a fost instalată cu permisiuni de superuser, dar momentan ReVanced Manager nu are permisiuni.\nVă rugăm să acordați mai întâi permisiuni superuser.",
"packageNameLabel": "Numele pachetului",
"originalPackageNameLabel": "Numele original al pachetului",
"installTypeLabel": "Tipul instalării",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Non-root",
"patchedDateLabel": "Data patch-uirii",
"patchedDateHint": "{date} la {time}",
"appliedPatchesLabel": "Patch-uri aplicate",
"appliedPatchesHint": "{quantity} patch-uri aplicate",
"updateNotImplemented": "Această funcție nu a fost încă implementată"
},
"contributorsView": {
"widgetTitle": "Contribuitori",
"patcherContributors": "Contribuitori ai patcher-ului",
"patchesContributors": "Contribuitori ai patch-urilor",
"integrationsContributors": "Contribuitori ai integrărilor",
"cliContributors": "Contribuitori ai CLI",
"managerContributors": "Contribuitori ai manager-ului"
}
}

200
assets/i18n/ru_RU.json Normal file
View File

@ -0,0 +1,200 @@
{
"okButton": "ОК",
"cancelButton": "Отмена",
"updateButton": "Обновить",
"enabledLabel": "Включено",
"disabledLabel": "Выключено",
"yesButton": "Да",
"noButton": "Нет",
"warning": "Внимание",
"navigationView": {
"dashboardTab": "Главная",
"patcherTab": "Патчер",
"settingsTab": "Настройки"
},
"homeView": {
"widgetTitle": "Главная",
"updatesSubtitle": "Обновления",
"patchedSubtitle": "Пропатченные приложения",
"updatesAvailable": "Доступны обновления",
"noUpdates": "Нет доступных обновлений",
"WIP": "В разработке...",
"noInstallations": "Не установлено пропатченных приложений",
"installed": "Установлено",
"updateDialogTitle": "Обновить Manager",
"updateChangelogTitle": "Список изменений",
"notificationTitle": "Обновление загружено",
"notificationText": "Нажмите, чтобы установить обновление",
"downloadingMessage": "Скачивается обновление...",
"installingMessage": "Устанавливается обновление...",
"errorDownloadMessage": "Не удалось загрузить обновление",
"errorInstallMessage": "Не удалось установить обновление",
"noConnection": "Нет подключения к интернету",
"updatesDisabled": "Обновление пропатченных приложений в настоящее время отключено. Пожалуйста, пропатчьте приложение заново."
},
"applicationItem": {
"patchButton": "Пропатчить",
"infoButton": "Инфо",
"changelogLabel": "Список изменений"
},
"latestCommitCard": {
"loadingLabel": "Загрузка...",
"timeagoLabel": "{time} назад",
"patcherLabel": "Патчер: ",
"managerLabel": "Manager: ",
"updateButton": "Обновить Manager"
},
"patcherView": {
"widgetTitle": "Патчер",
"patchButton": "Пропатчить",
"patchDialogText": "Вы выбрали патч ресурсов, и была обнаружена установка разделённого APK, поэтому могут возникнуть ошибки.\nВы уверены, что хотите продолжить?"
},
"appSelectorCard": {
"widgetTitle": "Выберите приложение",
"widgetTitleSelected": "Выбранное приложение",
"widgetSubtitle": "Не выбрано приложение",
"noAppsLabel": "Приложения не найдены",
"currentVersion": "Текущая",
"recommendedVersion": "Рекомендуемая",
"anyVersion": "любая"
},
"patchSelectorCard": {
"widgetTitle": "Выберите патчи",
"widgetTitleSelected": "Выбранные патчи",
"widgetSubtitle": "Сначала выберите приложение",
"widgetEmptySubtitle": "Не выбраны патчи"
},
"socialMediaCard": {
"widgetTitle": "Соцсети",
"widgetSubtitle": "Мы онлайн!"
},
"appSelectorView": {
"viewTitle": "Выберите приложение",
"searchBarHint": "Искать приложения",
"storageButton": "Хранилище",
"errorMessage": "Невозможно использовать выбранное приложение"
},
"patchesSelectorView": {
"viewTitle": "Выберите патчи",
"searchBarHint": "Искать патчи",
"doneButton": "Готово",
"recommended": "Рекомендуется",
"all": "Все",
"none": "Никакие",
"loadPatchesSelection": "Загрузить выбор патчей",
"noSavedPatches": "Нет сохранённых патчей для выбранного приложения.\nНажмите «Готово» для сохранения текущего выбора.",
"noPatchesFound": "Для выбранного приложения не найдены патчи",
"selectAllPatchesWarningContent": "Вы собираетесь выбрать все патчи, в том числе и нерекомендуемые патчи, которые могут вызвать нежелательное поведение."
},
"patchItem": {
"unsupportedDialogText": "Выбор этого патча может привести к ошибкам во время патча.\n\nВерсия приложения: {packageVersion}\nПоддерживаемые версии:\n{supportedVersions}",
"unsupportedPatchVersion": "Патч не поддерживается для этой версии приложения. Чтобы продолжить, включите опцию экспериментальной поддержки в настройках."
},
"installerView": {
"widgetTitle": "Установщик",
"installButton": "Установить",
"installRootButton": "Установить как Root",
"openButton": "Открыть",
"shareButton": "Поделиться файлом",
"notificationTitle": "ReVanced Manager патчит",
"notificationText": "Нажмите, чтобы вернуться к установщику",
"shareApkMenuOption": "Поделиться APK",
"exportApkMenuOption": "Экспорт APK",
"shareLogMenuOption": "Отправить лог",
"installErrorDialogTitle": "Ошибка",
"installErrorDialogText1": "Root-установка невозможна с выбранными патчами.\nПерепатчите приложение или выберите non-root установку.",
"installErrorDialogText2": "Non-root установка невозможна с выбранными патчами.\nПерепатчите приложение, или выберите root-установку, если на вашем устройстве есть root.",
"installErrorDialogText3": "Root-установка невозможна, так как оригинальный APK был выбран из хранилища.\nВыберите установленное приложение, или выберите non-root установку.",
"noExit": "Установщик все еще запущен, выход невозможен..."
},
"settingsView": {
"widgetTitle": "Настройки",
"appearanceSectionTitle": "Оформление",
"teamSectionTitle": "Команда",
"infoSectionTitle": "Инфо",
"advancedSectionTitle": "Дополнительные",
"logsSectionTitle": "Логи",
"darkThemeLabel": "Тёмный режим",
"darkThemeHint": "Добро пожаловать на тёмную сторону",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Наслаждайтесь темой вашего устройства",
"languageLabel": "Язык",
"englishOption": "Английский",
"sourcesLabel": "Источники",
"sourcesLabelHint": "Настройте свои источники",
"hostRepositoryLabel": "API репозитория",
"orgPatchesLabel": "Организация патчей",
"sourcesPatchesLabel": "Репозиторий патчей",
"orgIntegrationsLabel": "Организация интеграций",
"sourcesIntegrationsLabel": "Репозиторий интеграций",
"sourcesResetDialogTitle": "Сброс",
"sourcesResetDialogText": "Вы уверены, что хотите сбросить пользовательские источники к значениям по умолчанию?",
"apiURLResetDialogText": "Вы уверены, что хотите сбросить API-ссылку к значению по умолчанию?",
"contributorsLabel": "Участники проекта",
"contributorsHint": "Список соучастников ReVanced",
"logsLabel": "Логи",
"logsHint": "Поделиться логами Manager-а",
"apiURLLabel": "API-ссылка",
"apiURLHint": "Настройте свою API-ссылку",
"selectApiURL": "API-ссылка",
"experimentalUniversalPatchesLabel": "Экспериментальная поддержка универсальных патчей",
"experimentalUniversalPatchesHint": "Отображать все приложения, поддерживающие универсальные патчи; загрузка списка приложений может быть медленнее",
"experimentalPatchesLabel": "Экспериментальная поддержка патчей",
"experimentalPatchesHint": "Разрешить использование несовместимых патчей в любой версии приложения",
"enabledExperimentalPatches": "Экспериментальная поддержка патчей включена",
"exportSectionTitle": "Импорт и экспорт",
"aboutLabel": "Информация",
"snackbarMessage": "Скопировано в буфер обмена",
"sentryLabel": "Логирование Sentry",
"sentryHint": "Отправлять анонимные логи для улучшения ReVanced Manager-а",
"restartAppForChanges": "Перезапустите приложение для применения изменений",
"deleteKeystoreLabel": "Удалить хранилище ключей",
"deleteKeystoreHint": "Удалить хранилище ключей, использованных для подписи приложения",
"deletedKeystore": "Хранилище ключей удалено",
"deleteTempDirLabel": "Удалить временные файлы",
"deleteTempDirHint": "Удалить неиспользуемые временные файлы",
"deletedTempDir": "Временные файлы удалены",
"exportPatchesLabel": "Экспорт выбора патчей",
"exportPatchesHint": "Экспорт выбора патчей в JSON-файл",
"exportedPatches": "Выбор патчей экспортирован",
"noExportFileFound": "Нет выбора патчей для экспорта",
"importPatchesLabel": "Импорт выбора патчей",
"importPatchesHint": "Импорт выбора патчей из JSON-файла",
"importedPatches": "Выбор патчей импортирован",
"resetStoredPatchesLabel": "Сбросить патчи",
"resetStoredPatchesHint": "Сбросить выбор сохраненных патчей",
"resetStoredPatches": "Выбор патчей был сброшен",
"jsonSelectorErrorMessage": "Невозможно использовать выбранный JSON-файл",
"deleteLogsLabel": "Удалить логи",
"deleteLogsHint": "Удалить собранные Manager-ом логи",
"deletedLogs": "Логи удалены"
},
"appInfoView": {
"widgetTitle": "О приложении",
"openButton": "Открыть",
"uninstallButton": "Удалить",
"patchButton": "Пропатчить",
"unpatchButton": "Удалить патчи",
"unpatchDialogText": "Вы уверены, что хотите удалить патчи у этого приложения?",
"rootDialogTitle": "Ошибка",
"rootDialogText": "Приложение было установлено с правами суперпользователя, но сейчас ReVanced Manager не имеет прав.\nПожалуйста, сначала предоставьте права суперпользователя.",
"packageNameLabel": "Название пакета",
"originalPackageNameLabel": "Исходное название пакета",
"installTypeLabel": "Тип установки",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Non-root",
"patchedDateLabel": "Дата применения патчей",
"patchedDateHint": "{date} в {time}",
"appliedPatchesLabel": "Применённые патчи",
"appliedPatchesHint": "{quantity} применённых патчей",
"updateNotImplemented": "Эта возможность ещё не реализована"
},
"contributorsView": {
"widgetTitle": "Участники проекта",
"patcherContributors": "Соучастники патчера",
"patchesContributors": "Соучастники патчей",
"integrationsContributors": "Соучастники интеграций",
"cliContributors": "Соучастники CLI",
"managerContributors": "Соучастники Manager-а"
}
}

200
assets/i18n/sk_SK.json Normal file
View File

@ -0,0 +1,200 @@
{
"okButton": "OK",
"cancelButton": "Zrušiť",
"updateButton": "Aktualizovať",
"enabledLabel": "Zapnuté",
"disabledLabel": "Vypnuté",
"yesButton": "Áno",
"noButton": "Nie",
"warning": "Upozornenie",
"navigationView": {
"dashboardTab": "Hlavný panel",
"patcherTab": "Zaplátač",
"settingsTab": "Nastavenia"
},
"homeView": {
"widgetTitle": "Hlavný panel",
"updatesSubtitle": "Aktualizácie",
"patchedSubtitle": "Zaplátané aplikácie",
"updatesAvailable": "Dostupné aktualizácie",
"noUpdates": "Žiadne dostupné aktualizácie",
"WIP": "Rozpracované...",
"noInstallations": "Žiadne zaplátané aplikácie nie sú nainštalované",
"installed": "Nainštalované",
"updateDialogTitle": "Aktualizovať Manažéra",
"updateChangelogTitle": "Zoznam zmien",
"notificationTitle": "Aktualizácia bola stiahnutá",
"notificationText": "Klepnutím nainštalujete aktualizáciu",
"downloadingMessage": "Sťahovanie aktualizácie...",
"installingMessage": "Inštalujú sa aktualizácie...",
"errorDownloadMessage": "Nepodarilo sa stiahnuť aktualizáciu",
"errorInstallMessage": "Nepodarilo sa nainštalovať aktualizáciu",
"noConnection": "Žiadne pripojenie na internet",
"updatesDisabled": "Aktualizácia zaplátanej aplikácie je v súčasnosti zakázaná. Znovu zaplátajte aplikáciu."
},
"applicationItem": {
"patchButton": "Zaplátať",
"infoButton": "Informácie",
"changelogLabel": "Zoznam zmien"
},
"latestCommitCard": {
"loadingLabel": "Načítava sa...",
"timeagoLabel": "Pred {time}",
"patcherLabel": "Zaplátač: ",
"managerLabel": "Manažér: ",
"updateButton": "Aktualizovať Manažéra"
},
"patcherView": {
"widgetTitle": "Zaplátač",
"patchButton": "Záplata",
"patchDialogText": "Vybrali ste záplatu zdroja a bol detegovaný inštalátor rozdelený na viac súborov, takže môže dôjsť k chybám pri záplatovaní.\nNaozaj chcete pokračovať?"
},
"appSelectorCard": {
"widgetTitle": "Vyberte aplikáciu",
"widgetTitleSelected": "Vybraná aplikácia",
"widgetSubtitle": "Nie je vybraná žiadna aplikácia",
"noAppsLabel": "Nebola nájdená žiadna aplikácia",
"currentVersion": "Aktuálne",
"recommendedVersion": "Odporúčané",
"anyVersion": "akákoľvek"
},
"patchSelectorCard": {
"widgetTitle": "Vyberte záplaty",
"widgetTitleSelected": "Zvolené záplaty",
"widgetSubtitle": "Najskôr vyberte aplikáciu",
"widgetEmptySubtitle": "Nie sú vybrané žiadne záplaty"
},
"socialMediaCard": {
"widgetTitle": "Sociálne siete",
"widgetSubtitle": "Sme opäť online!"
},
"appSelectorView": {
"viewTitle": "Vyberte aplikáciu",
"searchBarHint": "Vyhľadať aplikáciu",
"storageButton": "Úložisko",
"errorMessage": "Nie je možné použiť vybranú aplikáciu"
},
"patchesSelectorView": {
"viewTitle": "Vyberte záplaty",
"searchBarHint": "Vyhľadajte záplaty",
"doneButton": "Hotovo",
"recommended": "Odporúčané",
"all": "Všetky",
"none": "Žiadne",
"loadPatchesSelection": "Načítať výber záplat",
"noSavedPatches": "Žiadne uložené záplaty pre vybranú aplikáciu\nStlačením tlačidla Hotovo uložíte aktuálny výber.",
"noPatchesFound": "Neboli nájdené žiadne záplaty pre zvolenú aplikáciu",
"selectAllPatchesWarningContent": "Týmto vyberiete všetky záplaty, aj tie ktoré nie sú odporúčané. Toto môže viesť k nežiadúcim účinkom."
},
"patchItem": {
"unsupportedDialogText": "Výber tejto záplaty môže spôsobiť chyby.\n\nVerzia aplikácie: {packageVersion}\nPodporované verzie:\n{supportedVersions}",
"unsupportedPatchVersion": "Záplata nie je pre túto verziu aplikácie podporovaná. Ak chcete pokračovať, povoľte v nastaveniach experimentálny prepínač."
},
"installerView": {
"widgetTitle": "Inštalátor",
"installButton": "Inštalovať",
"installRootButton": "Nainštalovať ako root",
"openButton": "Otvoriť",
"shareButton": "Zdieľať súbor",
"notificationTitle": "ReVanced manažér zapláta",
"notificationText": "Stlačte pre vrátenie na inštalátor",
"shareApkMenuOption": "Zdielať APK",
"exportApkMenuOption": "Exportovať APK",
"shareLogMenuOption": "Zdieľať záznamy",
"installErrorDialogTitle": "Chyba",
"installErrorDialogText1": "Root inštalácia nie je možná so súčasne vybranými záplatami. Prosím znovu zaplátajte aplikáciu, alebo skúste inštaláciu bez rootu.",
"installErrorDialogText2": "Inštalácia bez rootu nie je možná vzhľadom na vybrané záplaty. Prosím znovu zaplátajte aplikáciu, alebo vyberte root inštaláciu, ak máte túto možnosť.",
"installErrorDialogText3": "Root inštalácia nie je možná, pretože zaplátaná aplikácia bola vybraná z úložiska. Vyberte prosím inštalovanú aplikáciu, alebo použite inštaláciu bez rootu.",
"noExit": "Inštalátor je stále spustený, nedá sa ukončiť..."
},
"settingsView": {
"widgetTitle": "Nastavenia",
"appearanceSectionTitle": "Vzhľad",
"teamSectionTitle": "Tím",
"infoSectionTitle": "Informácie",
"advancedSectionTitle": "Pokročilé",
"logsSectionTitle": "Záznamy",
"darkThemeLabel": "Tmavý režim",
"darkThemeHint": "Vitaj na temnej strane",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Užite si tému bližíe prispôsobenú vášmu zariadeniu",
"languageLabel": "Jazyk",
"englishOption": "Anglicky",
"sourcesLabel": "Zdroje",
"sourcesLabelHint": "Nastavte vlastné zdroje",
"hostRepositoryLabel": "API repozitára",
"orgPatchesLabel": "Autor záplaty",
"sourcesPatchesLabel": "Zdroj záplaty",
"orgIntegrationsLabel": "Autor integrácie",
"sourcesIntegrationsLabel": "Zdroj integrácie",
"sourcesResetDialogTitle": "Resetovať",
"sourcesResetDialogText": "Ste si istý, že chcete obnoviť základné nastavenie vlastných zdrojov?",
"apiURLResetDialogText": "Ste si istý, že chcete obnoviť základné nastavenie API URL?",
"contributorsLabel": "Prispievatelia",
"contributorsHint": "Zoznam prispievateľov projektu ReVanced",
"logsLabel": "Záznamy",
"logsHint": "Zdieľať záznamy manažéra",
"apiURLLabel": "API URL",
"apiURLHint": "Nastaviť vlastnú API URL",
"selectApiURL": "API URL",
"experimentalUniversalPatchesLabel": "Experimentálna podpora univerzálnych záplat",
"experimentalUniversalPatchesHint": "Zobrazenie všetkých aplikácií na použitie s univerzálnymi záplatami, načítanie zoznamu aplikácií môže byť pomalšie",
"experimentalPatchesLabel": "Podpora experimentálnych záplat",
"experimentalPatchesHint": "Povoliť používanie nepodporovaných záplat v akejkoľvek verzii aplikácie",
"enabledExperimentalPatches": "Podpora experimentálnych záplat povolená",
"exportSectionTitle": "Import a export",
"aboutLabel": "Informácie",
"snackbarMessage": "Skopírované do schránky",
"sentryLabel": "Log Sentry",
"sentryHint": "Odoslať anonymné protokoly, ktoré nám pomôžu zlepšiť ReVanced Manager",
"restartAppForChanges": "Ak chcete použiť zmeny, reštartujte aplikáciu",
"deleteKeystoreLabel": "Odstrániť úložisko kľúčov",
"deleteKeystoreHint": "Odstrániť úložisko kľúčov použité na podpísanie aplikácie",
"deletedKeystore": "Úložisko kľúčov odstránené",
"deleteTempDirLabel": "Odstrániť dočasné súbory",
"deleteTempDirHint": "Odstrániť nepoužívané dočasné súbory",
"deletedTempDir": "Dočasné súbory odstránené",
"exportPatchesLabel": "Exportovať vybrané záplaty",
"exportPatchesHint": "Exportovať výber záplat do súboru JSON",
"exportedPatches": "Výber záplat exportovaný",
"noExportFileFound": "Žiadne záplaty na export",
"importPatchesLabel": "Načítať výber záplat",
"importPatchesHint": "Importovať výber záplat zo súboru JSON",
"importedPatches": "Výber záplat importovaný",
"resetStoredPatchesLabel": "Resetovať záplaty",
"resetStoredPatchesHint": "Resetovať výber uložených záplat",
"resetStoredPatches": "Výber záplat bol zresetovaný",
"jsonSelectorErrorMessage": "Nie je možné použiť vybraný JSON súbor",
"deleteLogsLabel": "Odstrániť záznamy",
"deleteLogsHint": "Odstrániť zozbieranané záznamy manažéra",
"deletedLogs": "Záznamy odstránené"
},
"appInfoView": {
"widgetTitle": "Informácie o aplikácii",
"openButton": "Otvoriť",
"uninstallButton": "Odinštalovať",
"patchButton": "Zaplátať",
"unpatchButton": "Odstrániť záplaty",
"unpatchDialogText": "Určite chcete odstrániť záplaty z tejto aplikácie?",
"rootDialogTitle": "Chyba",
"rootDialogText": "Aplikácia bola nainštalovaná s oprávneniami superpoužívateľa, ale v súčasnosti ReVanced Manažér nemá žiadne oprávnenia. Najskôr mu udeľte oprávnenia superužívateľa.",
"packageNameLabel": "Názov balíka",
"originalPackageNameLabel": "Pôvodný názov balíka",
"installTypeLabel": "Spôsob inštalácie",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Bez rootu",
"patchedDateLabel": "Dátum záplaty",
"patchedDateHint": "{date} o {time}",
"appliedPatchesLabel": "Použité záplaty",
"appliedPatchesHint": "{quantity} použitých záplat",
"updateNotImplemented": "Táto funkcia ešte nebola implementovaná"
},
"contributorsView": {
"widgetTitle": "Prispievatelia",
"patcherContributors": "Prispievatelia Zaplátača",
"patchesContributors": "Prispievatelia Záplat",
"integrationsContributors": "Prispievatelia integrácií",
"cliContributors": "Prispievatelia CLI",
"managerContributors": "Prispievatelia Manažéra"
}
}

196
assets/i18n/sr_CS.json Normal file
View File

@ -0,0 +1,196 @@
{
"okButton": "U redu",
"cancelButton": "Otkaži",
"enabledLabel": "Omogućeno",
"disabledLabel": "Onemogućeno",
"yesButton": "Da",
"noButton": "Ne",
"warning": "Upozorenje",
"navigationView": {
"dashboardTab": "Komandna tabla",
"patcherTab": "Patcher",
"settingsTab": "Podešavanja"
},
"homeView": {
"widgetTitle": "Komandna tabla",
"updatesSubtitle": "Ažuriranja",
"patchedSubtitle": "Pečovane aplikacije",
"updatesAvailable": "Dostupna ažuriranja",
"noUpdates": "Nema dostupnih ažuriranja",
"WIP": "Rad u toku...",
"noInstallations": "Nema instaliranih pečovanih aplikacija",
"installed": "Instalirano",
"updateDialogTitle": "Ažuriraj Manager",
"updateDialogText": "Da li ste sigurni da želite da preuzmete i ažurirate ReVanced Manager?",
"notificationTitle": "Ažuriranje je preuzeto",
"notificationText": "Dodirnite da biste instalirali ažuriranje",
"downloadingMessage": "Preuzimanje ažuriranja...",
"installingMessage": "Instaliranje ažuriranja...",
"errorDownloadMessage": "Nije moguće preuzeti ažuriranje",
"errorInstallMessage": "Nije moguće instalirati ažuriranje",
"noConnection": "Nema internet veze",
"updatesDisabled": "Ažuriranje pečovane aplikacije je trenutno onemogućeno.\nPonovo pečujte aplikaciju."
},
"applicationItem": {
"patchButton": "Pečuj",
"infoButton": "Informacije",
"changelogLabel": "Evidencija promena"
},
"latestCommitCard": {
"loadingLabel": "Učitavanje...",
"timeagoLabel": "pre {time}",
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "Ažuriraj Manager"
},
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Pečuj",
"patchDialogText": "Izabrali ste resursni peč i otkrivena je podeljena APK instalacija, tako da može doći do grešaka prilikom pečovanja.\nDa li ste sigurni da želite da nastavite?"
},
"appSelectorCard": {
"widgetTitle": "Izaberite aplikaciju",
"widgetTitleSelected": "Izabrana aplikacija",
"widgetSubtitle": "Nijedna aplikacija nije izabrana",
"noAppsLabel": "Nijedna aplikacija nije pronađena",
"currentVersion": "Trenutna",
"recommendedVersion": "Preporučena",
"anyVersion": "bilo koja"
},
"patchSelectorCard": {
"widgetTitle": "Izaberite pečeve",
"widgetTitleSelected": "Izabrani pečevi",
"widgetSubtitle": "Prvo izaberite aplikaciju",
"widgetEmptySubtitle": "Nema izabranih pečeva"
},
"socialMediaCard": {
"widgetTitle": "Društvene mreže",
"widgetSubtitle": "Na mreži smo!"
},
"appSelectorView": {
"viewTitle": "Izaberite aplikaciju",
"searchBarHint": "Pretražite aplikacije",
"storageButton": "Skladište",
"errorMessage": "Nije moguće koristiti izabranu aplikaciju"
},
"patchesSelectorView": {
"viewTitle": "Izaberite pečeve",
"searchBarHint": "Pretražite pečeve",
"doneButton": "Gotovo",
"recommended": "Preporučeno",
"all": "Sve",
"none": "Nijedan",
"loadPatchesSelection": "Učitajte izbor pečeva",
"noSavedPatches": "Nema sačuvanih pečeva za izabranu aplikaciju\nPritisnite „Gotovo” da sačuvate trenutni izbor",
"noPatchesFound": "Nisu pronađeni pečevi za izabranu aplikaciju",
"selectAllPatchesWarningContent": "Upravo ćete izabrati sve pečeve, koji uključuju nepreporučene pečeve i oni mogu izazvati neželjeno ponašanje."
},
"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}",
"unsupportedPatchVersion": "Peč nije podržan za ovu verziju aplikacije. Omogućite podršku za eksperimentalne pečeve u podešavanjima da biste nastavili."
},
"installerView": {
"widgetTitle": "Program za instalaciju",
"installButton": "Instaliraj",
"installRootButton": "Instaliraj kao Root",
"openButton": "Otvori",
"shareButton": "Deli datoteku",
"notificationTitle": "ReVanced Manager pečuje",
"notificationText": "Dodirnite da biste se vratili na program za instalaciju",
"shareApkMenuOption": "Deli APK",
"exportApkMenuOption": "Izvezi APK",
"shareLogMenuOption": "Deli evidenciju",
"installErrorDialogTitle": "Greška",
"installErrorDialogText1": "Root instalacija nije moguća sa trenutnim izborom pečeva.\nPonovo pečujte aplikaciju ili izaberite non-root instalaciju.",
"installErrorDialogText2": "Non-root instalacija nije moguća sa trenutnim izborom pečeva.\nPonovo pečujte aplikaciju ili izaberite root instalaciju ukoliko je vaš uređaj rootovan.",
"installErrorDialogText3": "Root instalacija nije moguća jer je originalna APK datoteka izabrana iz skladišta.\nIzaberite instaliranu aplikaciju ili izaberite non-root instalaciju.",
"noExit": "Program za instalaciju je još uvek otvoren, nije moguće izaći..."
},
"settingsView": {
"widgetTitle": "Podešavanja",
"appearanceSectionTitle": "Izgled",
"teamSectionTitle": "Tim",
"infoSectionTitle": "Informacije",
"advancedSectionTitle": "Napredno",
"logsSectionTitle": "Evidencije",
"darkThemeLabel": "Tamni režim",
"darkThemeHint": "Dobro došli na tamnu stranu",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Uživajte u iskustvu prilagođenom vašem uređaju",
"languageLabel": "Jezik",
"englishOption": "English",
"sourcesLabel": "Izvori",
"sourcesLabelHint": "Podesite svoje prilagođene izvore",
"orgPatchesLabel": "Organizacija za pečeve",
"sourcesPatchesLabel": "Izvor pečeva",
"orgIntegrationsLabel": "Organizacija za integracije",
"sourcesIntegrationsLabel": "Izvor integracija",
"sourcesResetDialogTitle": "Resetuj",
"sourcesResetDialogText": "Da li ste sigurni da želite da resetujete prilagođene izvore na njihove podrazumevane vrednosti?",
"apiURLResetDialogText": "Da li ste sigurni da želite da resetujete API URL na njegovu podrazumevanu vrednost?",
"contributorsLabel": "Saradnici",
"contributorsHint": "Lista saradnika ReVanced",
"logsLabel": "Evidencije",
"logsHint": "Deli Manager evidencije",
"apiURLLabel": "API URL",
"apiURLHint": "Podesite svoj prilagođeni API URL",
"selectApiURL": "API URL",
"experimentalPatchesLabel": "Podrška za eksperimentalne pečeve",
"experimentalPatchesHint": "Omogućite korišćenje nepodržanih pečeva u bilo kojoj verziji aplikacije",
"enabledExperimentalPatches": "Podrška za eksperimentalne pečeve je omogućena",
"exportSectionTitle": "Uvoz i izvoz",
"aboutLabel": "O aplikaciji",
"snackbarMessage": "Kopirano u privremenu memoriju",
"sentryLabel": "Sentry prikupljanje grešaka",
"sentryHint": "Pošaljite anonimnu evidenciju da biste nam pomogli da poboljšamo ReVanced Manager",
"restartAppForChanges": "Ponovo pokrenite aplikaciju da biste primenili promene",
"deleteKeystoreLabel": "Izbrišite skladište ključeva",
"deleteKeystoreHint": "Izbrišite skladište ključeva korišćeno za potpisivanje aplikacije",
"deletedKeystore": "Skladište ključeva je izbrisano",
"deleteTempDirLabel": "Izbrišite privremene datoteke",
"deleteTempDirHint": "Izbrišite nekorišćene privremene datoteke",
"deletedTempDir": "Privremene datoteke su izbrisane",
"exportPatchesLabel": "Izvezite izbor pečeva",
"exportPatchesHint": "Izvezite izbor pečeva u JSON datoteku",
"exportedPatches": "Izbor pečeva je izvezen",
"noExportFileFound": "Nema izbora pečeva za izvoz",
"importPatchesLabel": "Uvezite izbor pečeva",
"importPatchesHint": "Uvezite izbor pečeva iz JSON datoteke",
"importedPatches": "Izbor pečeva je uvezen",
"resetStoredPatchesLabel": "Resetujte pečeve",
"resetStoredPatchesHint": "Resetujte izbor sačuvanih pečeva",
"resetStoredPatches": "Izbor pečeva je resetovan",
"jsonSelectorErrorMessage": "Nije moguće koristiti izabranu JSON datoteku",
"deleteLogsLabel": "Izbrišite evidencije",
"deleteLogsHint": "Izbrišite prikupljene Manager evidencije",
"deletedLogs": "Evidencije su izbrisane"
},
"appInfoView": {
"widgetTitle": "Informacije o aplikaciji",
"openButton": "Otvori",
"uninstallButton": "Deinstaliraj",
"patchButton": "Pečuj",
"unpatchButton": "Ukloni peč",
"unpatchDialogText": "Da li ste sigurni da želite da uklonite peč za ovu aplikaciju?",
"rootDialogTitle": "Greška",
"rootDialogText": "Aplikacija je instalirana sa dozvolama superkorisnika, ali trenutno ReVanced Manager nema dozvole.\nPrvo dodelite dozvole superkorisnika.",
"packageNameLabel": "Naziv paketa",
"originalPackageNameLabel": "Originalni naziv paketa",
"installTypeLabel": "Tip instalacije",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Non-root",
"patchedDateLabel": "Datum pečovanja",
"patchedDateHint": "{date} u {time}",
"appliedPatchesLabel": "Primenjeni pečevi",
"appliedPatchesHint": "{quantity} primenjenih pečeva",
"updateNotImplemented": "Ova funkcija još uvek nije implementirana"
},
"contributorsView": {
"widgetTitle": "Saradnici",
"patcherContributors": "Saradnici za Patcher",
"patchesContributors": "Saradnici za pečeve",
"integrationsContributors": "Saradnici za integracije",
"cliContributors": "Saradnici za CLI",
"managerContributors": "Saradnici za Manager"
}
}

196
assets/i18n/sr_SP.json Normal file
View File

@ -0,0 +1,196 @@
{
"okButton": "У реду",
"cancelButton": "Откажи",
"enabledLabel": "Омогућено",
"disabledLabel": "Онемогућено",
"yesButton": "Да",
"noButton": "Не",
"warning": "Упозорење",
"navigationView": {
"dashboardTab": "Командна табла",
"patcherTab": "Patcher",
"settingsTab": "Подешавања"
},
"homeView": {
"widgetTitle": "Командна табла",
"updatesSubtitle": "Ажурирања",
"patchedSubtitle": "Печоване апликације",
"updatesAvailable": "Доступна ажурирања",
"noUpdates": "Нема доступних ажурирања",
"WIP": "Рад у току...",
"noInstallations": "Нема инсталираних печованих апликација",
"installed": "Инсталирано",
"updateDialogTitle": "Ажурирај Manager",
"updateDialogText": "Да ли сте сигурни да желите да преузмете и ажурирате ReVanced Manager?",
"notificationTitle": "Ажурирање је преузето",
"notificationText": "Додирните да бисте инсталирали ажурирање",
"downloadingMessage": "Преузимање ажурирања...",
"installingMessage": "Инсталирање ажурирања...",
"errorDownloadMessage": "Није могуће преузети ажурирање",
"errorInstallMessage": "Није могуће инсталирати ажурирање",
"noConnection": "Нема интернет везе",
"updatesDisabled": "Ажурирање печоване апликације је тренутно онемогућено.\nПоново печујте апликацију."
},
"applicationItem": {
"patchButton": "Печуј",
"infoButton": "Информације",
"changelogLabel": "Евиденција промена"
},
"latestCommitCard": {
"loadingLabel": "Учитавање...",
"timeagoLabel": "пре {time}",
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "Ажурирај Manager"
},
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Печуј",
"patchDialogText": "Изабрали сте ресурсни печ и откривена је подељена APK инсталација, тако да може доћи до грешака приликом печовања.\nДа ли сте сигурни да желите да наставите?"
},
"appSelectorCard": {
"widgetTitle": "Изаберите апликацију",
"widgetTitleSelected": "Изабрана апликација",
"widgetSubtitle": "Ниједна апликација није изабрана",
"noAppsLabel": "Ниједна апликација није пронађена",
"currentVersion": "Тренутна",
"recommendedVersion": "Препоручена",
"anyVersion": "било која"
},
"patchSelectorCard": {
"widgetTitle": "Изаберите печеве",
"widgetTitleSelected": "Изабрани печеви",
"widgetSubtitle": "Прво изаберите апликацију",
"widgetEmptySubtitle": "Нема изабраних печева"
},
"socialMediaCard": {
"widgetTitle": "Друштвене мреже",
"widgetSubtitle": "На мрежи смо!"
},
"appSelectorView": {
"viewTitle": "Изаберите апликацију",
"searchBarHint": "Претражите апликације",
"storageButton": "Складиште",
"errorMessage": "Није могуће користити изабрану апликацију"
},
"patchesSelectorView": {
"viewTitle": "Изаберите печеве",
"searchBarHint": "Претражите печеве",
"doneButton": "Готово",
"recommended": "Препоручено",
"all": "Све",
"none": "Ниједан",
"loadPatchesSelection": "Учитајте избор печева",
"noSavedPatches": "Нема сачуваних печева за изабрану апликацију\nПритисните „Готово” да сачувате тренутни избор",
"noPatchesFound": "Нису пронађени печеви за изабрану апликацију",
"selectAllPatchesWarningContent": "Управо ћете изабрати све печеве, који укључују непрепоручене печеве и они могу изазвати нежељено понашање."
},
"patchItem": {
"unsupportedDialogText": "Избором овог печа може доћи до грешака приликом печовања.\n\nВерзија апликације: {packageVersion}\nПодржане верзије:\n{supportedVersions}",
"unsupportedPatchVersion": "Печ није подржан за ову верзију апликације. Омогућите подршку за експерименталне печеве у подешавањима да бисте наставили."
},
"installerView": {
"widgetTitle": "Програм за инсталацију",
"installButton": "Инсталирај",
"installRootButton": "Инсталирај као Root",
"openButton": "Отвори",
"shareButton": "Дели датотеку",
"notificationTitle": "ReVanced Manager печује",
"notificationText": "Додирните да бисте се вратили на програм за инсталацију",
"shareApkMenuOption": "Дели APK",
"exportApkMenuOption": "Извези APK",
"shareLogMenuOption": "Дели евиденцију",
"installErrorDialogTitle": "Грешка",
"installErrorDialogText1": "Root инсталација није могућа са тренутним избором печева.\nПоново печујте апликацију или изаберите non-root инсталацију.",
"installErrorDialogText2": "Non-root инсталација није могућа са тренутним избором печева.\nПоново печујте апликацију или изаберите root инсталацију уколико је ваш уређај рутован.",
"installErrorDialogText3": "Root инсталација није могућа јер је оригинална АРК датотека изабрана из складишта.\nИзаберите инсталирану апликацију или изаберите non-root инсталацију.",
"noExit": "Програм за инсталацију је још увек отворен, није могуће изаћи..."
},
"settingsView": {
"widgetTitle": "Подешавања",
"appearanceSectionTitle": "Изглед",
"teamSectionTitle": "Тим",
"infoSectionTitle": "Информације",
"advancedSectionTitle": "Напредно",
"logsSectionTitle": "Евиденције",
"darkThemeLabel": "Тамни режим",
"darkThemeHint": "Добро дошли на тамну страну",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Уживајте у искуству прилагођеном вашем уређају",
"languageLabel": "Језик",
"englishOption": "English",
"sourcesLabel": "Извори",
"sourcesLabelHint": "Подесите своје прилагођене изворе",
"orgPatchesLabel": "Организација за печеве",
"sourcesPatchesLabel": "Извор печева",
"orgIntegrationsLabel": "Организација за интеграције",
"sourcesIntegrationsLabel": "Извор интеграција",
"sourcesResetDialogTitle": "Ресетуј",
"sourcesResetDialogText": "Да ли сте сигурни да желите да ресетујете прилагођене изворе на њихове подразумеване вредности?",
"apiURLResetDialogText": "Да ли сте сигурни да желите да ресетујете АPI URL на његову подразумевану вредност?",
"contributorsLabel": "Сарадници",
"contributorsHint": "Листа сарадника ReVanced",
"logsLabel": "Евиденције",
"logsHint": "Дели Manager евиденције",
"apiURLLabel": "API URL",
"apiURLHint": "Подесите свој прилагођени API URL",
"selectApiURL": "API URL",
"experimentalPatchesLabel": "Подршка за експерименталне печеве",
"experimentalPatchesHint": "Омогућите коришћење неподржаних печева у било којој верзији апликације",
"enabledExperimentalPatches": "Подршка за експерименталне печеве је омогућена",
"exportSectionTitle": "Увоз и извоз",
"aboutLabel": "О апликацији",
"snackbarMessage": "Копирано у привремену меморију",
"sentryLabel": "Sentry прикупљање грешака",
"sentryHint": "Пошаљите анонимну евиденцију да бисте нам помогли да побољшамо ReVanced Manager",
"restartAppForChanges": "Поново покрените апликацију да бисте применили промене",
"deleteKeystoreLabel": "Избришите складиште кључева",
"deleteKeystoreHint": "Избришите складиште кључева коришћено за потписивање апликације",
"deletedKeystore": "Складиште кључева је избрисано",
"deleteTempDirLabel": "Избришите привремене датотеке",
"deleteTempDirHint": "Избришите некоришћене привремене датотеке",
"deletedTempDir": "Привремене датотеке су избрисане",
"exportPatchesLabel": "Извезите избор печева",
"exportPatchesHint": "Извезите избор печева у JSON датотеку",
"exportedPatches": "Избор печева је извезен",
"noExportFileFound": "Нема избора печева за извоз",
"importPatchesLabel": "Увезите избор печева",
"importPatchesHint": "Увезите избор печева из JSON датотеке",
"importedPatches": "Избор печева је увезен",
"resetStoredPatchesLabel": "Ресетујте печеве",
"resetStoredPatchesHint": "Ресетујте избор сачуваних печева",
"resetStoredPatches": "Избор печева је ресетован",
"jsonSelectorErrorMessage": "Није могуће користити изабрану JSON датотеку",
"deleteLogsLabel": "Избришите евиденције",
"deleteLogsHint": "Избришите прикупљене Manager евиденције",
"deletedLogs": "Евиденције су избрисане"
},
"appInfoView": {
"widgetTitle": "Информације о апликацији",
"openButton": "Отвори",
"uninstallButton": "Деинсталирај",
"patchButton": "Печуј",
"unpatchButton": "Уклони печ",
"unpatchDialogText": "Да ли сте сигурни да желите да уклоните печ за ову апликацију?",
"rootDialogTitle": "Грешка",
"rootDialogText": "Апликација је инсталирана са дозволама суперкорисника, али тренутно ReVanced Manager нема дозволе.\nПрво доделите дозволе суперкорисника.",
"packageNameLabel": "Назив пакета",
"originalPackageNameLabel": "Оригинални назив пакета",
"installTypeLabel": "Тип инсталације",
"rootTypeLabel": "Root",
"nonRootTypeLabel": "Non-root",
"patchedDateLabel": "Датум печовања",
"patchedDateHint": "{date} у {time}",
"appliedPatchesLabel": "Примењени печеви",
"appliedPatchesHint": "{quantity} примењених печева",
"updateNotImplemented": "Ова функција још увек није имплементирана"
},
"contributorsView": {
"widgetTitle": "Сарадници",
"patcherContributors": "Сарадници за Patcher",
"patchesContributors": "Сарадници за печеве",
"integrationsContributors": "Сарадници за интеграције",
"cliContributors": "Сарадници за CLI",
"managerContributors": "Сарадници за Manager"
}
}

View File

@ -1,307 +0,0 @@
{
"okButton": "OK",
"cancelButton": "Cancel",
"dismissButton": "Dismiss",
"quitButton": "Quit",
"updateButton": "Update",
"enabledLabel": "Enabled",
"disabledLabel": "Disabled",
"installed": "Installed: ${version}",
"suggested": "Suggested: ${version}",
"yesButton": "Yes",
"noButton": "No",
"warning": "Warning",
"options": "Options",
"notice": "Notice",
"noShowAgain": "Don't show this again",
"add": "Add",
"remove": "Remove",
"showChangelogButton": "Show changelog",
"showUpdateButton": "Show update",
"navigationView": {
"dashboardTab": "Dashboard",
"patcherTab": "Patcher",
"settingsTab": "Settings"
},
"homeView": {
"refreshSuccess": "Refreshed successfully",
"widgetTitle": "Dashboard",
"updatesSubtitle": "Updates",
"patchedSubtitle": "Patched apps",
"changeLaterSubtitle": "You can change this in the settings at a later time.",
"noUpdates": "No updates available",
"WIP": "Work in progress...",
"noInstallations": "No patched apps installed",
"installUpdate": "Continue to install the update?",
"updateSheetTitle": "Update ReVanced Manager",
"updateDialogTitle": "New update available",
"updatePatchesSheetTitle": "Update ReVanced Patches",
"updateChangelogTitle": "Changelog",
"updateDialogText": "A new update is available for ${file}.\n\nThe currently installed version is ${version}.",
"downloadConsentDialogTitle": "Download necessary files?",
"downloadConsentDialogText": "ReVanced Manager needs to download necessary files to work properly.",
"downloadConsentDialogText2": "This will connect you to ${url}.",
"checkUpdateDialogTitle": "Check for updates?",
"checkUpdateDialogText": "Do you want ReVanced Manager to check for updates automatically?",
"notificationTitle": "Update downloaded",
"notificationText": "Tap to install the update",
"downloadingMessage": "Downloading update...",
"downloadedMessage": "Update downloaded",
"installingMessage": "Installing update...",
"errorDownloadMessage": "Unable to download update",
"errorInstallMessage": "Unable to install update",
"noConnection": "No internet connection",
"updatesDisabled": "Updating a patched app is currently disabled. Repatch the app again."
},
"applicationItem": {
"infoButton": "Info"
},
"latestCommitCard": {
"loadingLabel": "Loading...",
"timeagoLabel": "${time} ago",
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "Update Manager"
},
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Patch",
"armv7WarningDialogText": "Patching on ARMv7 devices 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?",
"requiredOptionDialogText": "Some patch options have to be set."
},
"appSelectorCard": {
"widgetTitle": "Select an app",
"widgetTitleSelected": "Selected app",
"widgetSubtitle": "No app selected",
"noAppsLabel": "No applications found",
"currentVersion": "Current",
"suggestedVersion": "Suggested",
"anyVersion": "Any version"
},
"patchSelectorCard": {
"widgetTitle": "Select patches",
"widgetTitleSelected": "Selected patches",
"widgetSubtitle": "Select an application first",
"widgetEmptySubtitle": "No patches selected"
},
"socialMediaCard": {
"widgetTitle": "Socials",
"widgetSubtitle": "We are online!"
},
"appSelectorView": {
"viewTitle": "Select an app",
"searchBarHint": "Search app",
"storageButton": "Storage",
"selectFromStorageButton": "Select from storage",
"errorMessage": "Unable to use selected application",
"downloadToast": "Download function is not available yet",
"requireSuggestedAppVersionDialogText": "The version of the app you have selected does not match the suggested version which can lead to unexpected issues. Please use the suggested version.\n\nSelected version: ${selected}\nSuggested version: ${suggested}\n\nTo continue anyway, disable \"Require suggested app version\" in the settings.",
"featureNotAvailable": "Feature not implemented",
"featureNotAvailableText": "This app is a split APK and can only be patched and installed reliably by mounting with root permissions. However, you can patch and install a full APK by selecting it from storage."
},
"patchesSelectorView": {
"viewTitle": "Select patches",
"searchBarHint": "Search patches",
"universalPatches": "Universal patches",
"newPatches": "New patches",
"patches": "Patches",
"doneButton": "Done",
"defaultChip": "Default",
"defaultTooltip": "Select all default patches",
"noneChip": "None",
"noneTooltip": "Deselect all patches",
"loadPatchesSelection": "Load patch selection",
"noSavedPatches": "No saved patch selection for the selected app.\nPress Done to save the current selection.",
"noPatchesFound": "No patches found for the selected app",
"setRequiredOption": "Some patches require options to be set:\n\n${patches}\n\nPlease set them before continuing."
},
"patchOptionsView": {
"customValue": "Custom value",
"resetOptionsTooltip": "Reset patch options",
"viewTitle": "Patch options",
"saveOptions": "Save",
"addOptions": "Add options",
"deselectPatch": "Deselect patch",
"tooltip": "More input options",
"selectFilePath": "Select file path",
"selectFolder": "Select folder",
"selectOption": "Select option",
"requiredOption": "This option is required",
"unsupportedOption": "This option is not supported",
"requiredOptionNull": "The following options have to be set:\n\n${options}"
},
"patchItem": {
"unsupportedDialogText": "Selecting this patch may result in patching errors.\n\nApp version: ${packageVersion}\nSupported versions:\n${supportedVersions}",
"unsupportedPatchVersion": "Patch is not supported for this app version.",
"unsupportedRequiredOption": "This patch contains a required option that is not supported by this app",
"patchesChangeWarningDialogText": "It is recommended to use the default patch selection and options. Changing them may result in unexpected issues.\n\nYou'll need to turn on \"Allow changing patch selection\" in the settings before changing any patch selection.",
"patchesChangeWarningDialogButton": "Use default selection"
},
"installerView": {
"widgetTitle": "Installer",
"installType": "Select install type",
"installTypeDescription": "Select the installation type to continue with.",
"installButton": "Install",
"installRootType": "Mount",
"installNonRootType": "Regular",
"warning": "Disable auto updates for the patched app to avoid unexpected issues.",
"pressBackAgain": "Press back again to cancel",
"openButton": "Open",
"shareButton": "Share file",
"notificationTitle": "ReVanced Manager is patching",
"notificationText": "Tap to return to the installer",
"exportApkButtonTooltip": "Export patched APK",
"exportLogButtonTooltip": "Export log",
"screenshotDetected": "A screenshot has been detected. If you are trying to share the log, please share a text copy instead.\n\nCopy log to clipboard?",
"copiedToClipboard": "Copied log to clipboard",
"noExit": "Installer is still running, cannot exit..."
},
"settingsView": {
"widgetTitle": "Settings",
"appearanceSectionTitle": "Appearance",
"teamSectionTitle": "Team",
"debugSectionTitle": "Debugging",
"advancedSectionTitle": "Advanced",
"exportSectionTitle": "Import & export",
"dataSectionTitle": "Data sources",
"themeModeLabel": "App theme",
"systemThemeLabel": "System",
"lightThemeLabel": "Light",
"darkThemeLabel": "Dark",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Enjoy an experience closer to your device",
"languageLabel": "Language",
"languageUpdated": "Language updated",
"englishOption": "English",
"sourcesLabel": "Alternative sources",
"sourcesLabelHint": "Configure the alternative sources for ReVanced Patches and ReVanced Integrations",
"sourcesIntegrationsLabel": "Integrations source",
"useAlternativeSources": "Use alternative sources",
"useAlternativeSourcesHint": "Use alternative sources for ReVanced Patches and ReVanced Integrations instead of the API",
"sourcesResetDialogTitle": "Reset",
"sourcesResetDialogText": "Are you sure you want to reset your sources to their default values?",
"apiURLResetDialogText": "Are you sure you want to reset your API URL to its default value?",
"sourcesUpdateNote": "Note: This will automatically download ReVanced Patches and ReVanced Integrations from the alternative sources.\n\nThis will connect you to the alternative source.",
"apiURLLabel": "API URL",
"apiURLHint": "Configure the API URL of ReVanced Manager",
"selectApiURL": "API URL",
"orgPatchesLabel": "Patches organization",
"sourcesPatchesLabel": "Patches source",
"orgIntegrationsLabel": "Integrations organization",
"contributorsLabel": "Contributors",
"contributorsHint": "A list of contributors of ReVanced",
"logsLabel": "Share logs",
"logsHint": "Share ReVanced Manager logs",
"enablePatchesSelectionLabel": "Allow changing patch selection",
"enablePatchesSelectionHint": "Do not prevent selecting or deselecting patches",
"enablePatchesSelectionWarningText": "Changing the selection of patches may cause unexpected issues.\n\nEnable anyways?",
"disablePatchesSelectionWarningText": "You are about to disable changing the selection of patches.\nThe default selection of patches will be restored.\n\nDisable anyways?",
"autoUpdatePatchesLabel": "Auto update patches",
"autoUpdatePatchesHint": "Automatically update patches to the latest version",
"showUpdateDialogLabel": "Show update dialog",
"showUpdateDialogHint": "Show a dialog when a new update is available",
"universalPatchesLabel": "Show universal patches",
"universalPatchesHint": "Display all apps and universal patches (may slow down the app list)",
"versionCompatibilityCheckLabel": "Version compatibility check",
"versionCompatibilityCheckHint": "Prevent selecting patches that are not compatible with the selected app version",
"requireSuggestedAppVersionLabel": "Require suggested app version",
"requireSuggestedAppVersionHint": "Prevent selecting an app with a version that is not the suggested",
"requireSuggestedAppVersionDialogText": "Selecting an app that is not the suggested version may cause unexpected issues.\n\nDo you want to proceed anyways?",
"aboutLabel": "About",
"snackbarMessage": "Copied to clipboard",
"restartAppForChanges": "Restart the app to apply changes",
"deleteTempDirLabel": "Delete temporary files",
"deleteTempDirHint": "Delete unused temporary files",
"deletedTempDir": "Temporary files deleted",
"exportPatchesLabel": "Export patch selection",
"exportPatchesHint": "Export patch selection to a JSON file",
"exportedPatches": "Patch selection exported",
"noExportFileFound": "No patch selection to export",
"importPatchesLabel": "Import patch selection",
"importPatchesHint": "Import patch selection from a JSON file",
"importedPatches": "Patch selection imported",
"resetStoredPatchesLabel": "Reset patch selection",
"resetStoredPatchesHint": "Reset the stored patch selection",
"resetStoredPatchesDialogTitle": "Reset patch selection?",
"resetStoredPatchesDialogText": "The default selection of patches will be restored.",
"resetStoredPatches": "Patch selection has been reset",
"resetStoredOptionsLabel": "Reset patch options",
"resetStoredOptionsHint": "Reset all patch options",
"resetStoredOptionsDialogTitle": "Reset patch options?",
"resetStoredOptionsDialogText": "Resetting patch options will remove all saved options.",
"resetStoredOptions": "Options have been reset",
"deleteLogsLabel": "Clear logs",
"deleteLogsHint": "Delete collected ReVanced Manager logs",
"deletedLogs": "Logs deleted",
"regenerateKeystoreLabel": "Regenerate keystore",
"regenerateKeystoreHint": "Regenerate the keystore used to sign apps",
"regenerateKeystoreDialogTitle": "Regenerate keystore?",
"regenerateKeystoreDialogText": "Patched apps signed with the old keystore will no longer be able to be updated.",
"regeneratedKeystore": "Keystore regenerated",
"exportKeystoreLabel": "Export keystore",
"exportKeystoreHint": "Export the keystore used to sign apps",
"exportedKeystore": "Keystore exported",
"noKeystoreExportFileFound": "No keystore to export",
"importKeystoreLabel": "Import keystore",
"importKeystoreHint": "Import a keystore used to sign apps",
"importedKeystore": "Keystore imported",
"selectKeystorePassword": "Keystore password",
"selectKeystorePasswordHint": "Select keystore password used to sign apps",
"jsonSelectorErrorMessage": "Unable to use selected JSON file",
"keystoreSelectorErrorMessage": "Unable to use selected keystore file"
},
"appInfoView": {
"widgetTitle": "App info",
"openButton": "Open",
"uninstallButton": "Uninstall",
"unmountButton": "Unmount",
"rootDialogTitle": "Error",
"unmountDialogText": "Are you sure you want to unmount this app?",
"uninstallDialogText": "Are you sure you want to uninstall this app?",
"rootDialogText": "App was installed with superuser permissions, but currently ReVanced Manager has no permissions.\nPlease grant superuser permissions first.",
"packageNameLabel": "Package name",
"installTypeLabel": "Installation type",
"mountTypeLabel": "Mount",
"regularTypeLabel": "Regular",
"patchedDateLabel": "Patched date",
"appliedPatchesLabel": "Applied patches",
"patchedDateHint": "${date} at ${time}",
"appliedPatchesHint": "${quantity} applied patches",
"updateNotImplemented": "This feature has not been implemented yet"
},
"contributorsView": {
"widgetTitle": "Contributors",
"patcherContributors": "ReVanced Patcher",
"patchesContributors": "ReVanced Patches",
"integrationsContributors": "ReVanced Integrations",
"cliContributors": "ReVanced CLI",
"managerContributors": "ReVanced Manager"
},
"installErrorDialog": {
"mount_version_mismatch": "Version mismatch",
"mount_no_root": "No root access",
"mount_missing_installation": "Installation not found",
"status_failure_blocked": "Installation blocked",
"install_failed_verification_failure": "Verification failed",
"status_failure_invalid": "Installation invalid",
"install_failed_version_downgrade": "Can't downgrade",
"status_failure_conflict": "Installation conflict",
"status_failure_storage": "Installation storage issue",
"status_failure_incompatible": "Installation incompatible",
"status_failure_timeout": "Installation timeout",
"status_unknown": "Installation failed",
"mount_version_mismatch_description": "The installation failed due to the installed app being a different version than the patched app.\n\nInstall the version of the app you are mounting and try again.",
"mount_no_root_description": "The installation failed due to root access not being granted.\n\nGrant root access to ReVanced Manager and try again.",
"mount_missing_installation_description": "The installation failed due to the unpatched app not being installed on this device in order to mount over it.\n\nInstall the unpatched app before mounting and try again.",
"status_failure_timeout_description": "The installation took too long to finish.\n\nWould you like to try again?",
"status_failure_storage_description": "The installation failed due to insufficient storage.\n\nFree up some space and try again.",
"status_failure_invalid_description": "The installation failed due to the patched app being invalid.\n\nUninstall the app and try again?",
"status_failure_incompatible_description": "The app is incompatible with this device.\n\nContact the developer of the app and ask for support.",
"status_failure_conflict_description": "The installation was prevented by an existing installation of the app.\n\nUninstall the installed app and try again?",
"status_failure_blocked_description": "The installation was blocked by ${packageName}.\n\nAdjust your security settings and try again.",
"install_failed_verification_failure_description": "The installation failed due to a verification issue.\n\nAdjust your security settings 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."
}
}

View File

@ -1,271 +0,0 @@
{
"okButton": "موافق",
"cancelButton": "إلغاء",
"dismissButton": "تجاهل",
"quitButton": "إنهاء",
"updateButton": "تحديث",
"enabledLabel": "مفعّل",
"disabledLabel": "معطّل",
"installed": "المثبّت: ${version}",
"suggested": "المقترح: ${version}",
"yesButton": "نعم",
"noButton": "لا",
"warning": "تحذير",
"options": "الخيارات",
"notice": "تنويه",
"noShowAgain": "لا تعرض هذا مرة أخرى",
"add": "إضافة",
"remove": "إزالة",
"showChangelogButton": "إظهار سجل التغييرات",
"showUpdateButton": "عرض التحديث",
"navigationView": {
"dashboardTab": "لوحة التحكم",
"patcherTab": "المعدّل",
"settingsTab": "الإعدادات"
},
"homeView": {
"refreshSuccess": "تم التحديث بنجاح",
"widgetTitle": "لوحة التحكم",
"updatesSubtitle": "تحديثات",
"patchedSubtitle": "التطبيقات المعدلة",
"changeLaterSubtitle": "يمكنك تغيير هذا في الإعدادات في وقت لاحق.",
"noUpdates": "لا توجد تحديثات متاحة",
"WIP": "العمل قيد التقدم...",
"noInstallations": "لا توجد تطبيقات معدلة مثبتة",
"installUpdate": "هل تريد الاستمرار في تثبيت التحديث؟",
"updateSheetTitle": "تحديث ReVanced Manager",
"updateDialogTitle": "تحديث جديد متوفر",
"updatePatchesSheetTitle": "تحديث تعديلات ReVanced",
"updateChangelogTitle": "سجل التغييرات",
"updateDialogText": "يتوفر تحديث جديد لـ ${file}.\n\nالإصدار المثبت حاليًا هو ${version}.",
"downloadConsentDialogTitle": "تحميل الملفات المطلوبة؟",
"downloadConsentDialogText": "يحتاج مدير ReVanced إلى تنزيل الملفات الضرورية ليعمل بشكل صحيح.",
"downloadConsentDialogText2": "سيؤدي هذا إلى توصيلك بـ ${url}.",
"checkUpdateDialogTitle": "التحقق من وجود تحديثات؟",
"checkUpdateDialogText": "هل تريد أن يقوم مدير ReVanced بالتحقق من وجود تحديثات تلقائياً؟",
"notificationTitle": "تم تنزيل التحديث",
"notificationText": "انقر لتثبيت التحديث",
"downloadingMessage": "جارٍ تحميل التحديث...",
"downloadedMessage": "تم تنزيل التحديث",
"installingMessage": "جارٍ تثبيت التحديث...",
"errorDownloadMessage": "تعذر تحميل التحديث",
"errorInstallMessage": "تعذّر تثبيت التحديث",
"noConnection": "لا يوجد اتصال بالإنترنت",
"updatesDisabled": "تحديث تطبيق تم تعديله معطل حاليًا. أعد تعديل التطبيق مرة أخرى."
},
"applicationItem": {
"infoButton": "معلومات"
},
"latestCommitCard": {
"loadingLabel": "جارٍ التحميل...",
"timeagoLabel": "منذ ${time}",
"patcherLabel": "المعدل: ",
"managerLabel": "المدير: ",
"updateButton": "تحديث المدير"
},
"patcherView": {
"widgetTitle": "المُعَّدِّل",
"patchButton": "تعديل",
"armv7WarningDialogText": "التعديل على أجهزة ARMv7 غير مدعوم حتى الآن وقد يفشل. هل تريد المتابعة على أي حال؟",
"removedPatchesWarningDialogText": "تم إزالة التعديلات التالية منذ آخر مرة استخدمتها فيها.\n\n${patches}\n\nتابع على أي حال؟",
"requiredOptionDialogText": "يجب ضبط بعض خيارات التعديل."
},
"appSelectorCard": {
"widgetTitle": "اختر تطبيق",
"widgetTitleSelected": "التطبيق المحدد",
"widgetSubtitle": "لم يتم تحديد أي تطبيق",
"noAppsLabel": "لم يتم العثور على تطبيقات",
"currentVersion": "الحالي",
"suggestedVersion": "المقترحة",
"anyVersion": "أي إصدار"
},
"patchSelectorCard": {
"widgetTitle": "حدد التعديلات",
"widgetTitleSelected": "التعديلات التي تم اختيارها",
"widgetSubtitle": "حدد تطبيق أولاً",
"widgetEmptySubtitle": "لم يتم تحديد أي تعديلات"
},
"socialMediaCard": {
"widgetTitle": "وسائل التواصل",
"widgetSubtitle": "تابعونا!"
},
"appSelectorView": {
"viewTitle": "اختر تطبيق",
"searchBarHint": "البحث عن تطبيق",
"storageButton": "التخزين",
"selectFromStorageButton": "اختيار من التخزين",
"errorMessage": "لا يمكن استخدام التطبيق المحدد",
"downloadToast": "خاصية التحميل غير متوفرة بعد",
"featureNotAvailable": "الميزة غير مُدمَجة بعد"
},
"patchesSelectorView": {
"viewTitle": "حدد التعديلات",
"searchBarHint": "البحث عن التعديلات",
"universalPatches": "التعديلات العامة",
"newPatches": "تعديلات جديدة",
"patches": "تعديلات",
"doneButton": "تم",
"defaultChip": "إفتراضي",
"defaultTooltip": "تحديد كل التعديلات الافتراضية",
"noneChip": "لا شيء",
"noneTooltip": "إلغاء تحديد كل التعديلات",
"loadPatchesSelection": "تحميل التعديل المحدد",
"noSavedPatches": "لا يوجد تحديد تعديل محفوظ للتطبيق المحدد.\nاضغط على تم لحفظ التحديد الحالي.",
"noPatchesFound": "لم يتم العثور على تعديلات للتطبيق المحدد",
"setRequiredOption": "تتطلب بعض التعديلات تعيين خيارات:\n\n${patches}\n\nالرجاء تعيينها قبل المتابعة."
},
"patchOptionsView": {
"customValue": "تخصيص القيمة",
"resetOptionsTooltip": "إعادة تعيين خيارات التعديل",
"viewTitle": "خيارات التعديل",
"saveOptions": "حفظ",
"addOptions": "إضافة خيارات",
"deselectPatch": "إلغاء تحديد التعديل",
"tooltip": "المزيد من خيارات الإدخال",
"selectFilePath": "تحديد مسار الملف",
"selectFolder": "تحديد مجلد",
"selectOption": "تحديد خيار",
"requiredOption": "هذا الخيار مطلوب",
"unsupportedOption": "هذا الخيار غير مدعوم",
"requiredOptionNull": "يجب تعيين الخيارات التالية:\n\n${options}"
},
"patchItem": {
"unsupportedDialogText": "قد يؤدي تحديد هذا التعديل إلى حدوث أخطاء في عملية التعديل.\n\nإصدار التطبيق: ${packageVersion}\nالإصدارات المدعومة حالياً:\n${supportedVersions}",
"unsupportedPatchVersion": "التعديل غير مدعوم لإصدار التطبيق هذا.",
"unsupportedRequiredOption": "يحتوي هذا التعديل على خيار مطلوب لا يدعمه هذا التطبيق",
"patchesChangeWarningDialogButton": "استخدام التحديد الافتراضي"
},
"installerView": {
"widgetTitle": "المثبت",
"installType": "تحديد نوع التثبيت",
"installTypeDescription": "حدد نوع التثبيت للمتابعة.",
"installButton": "تثبيت",
"installRootType": "تحميل",
"installNonRootType": "عادي",
"pressBackAgain": "اضغط رجوع مرة اخرى للإلغاء",
"openButton": "فتح",
"shareButton": "شارك ملف",
"notificationTitle": "ReVanced Manager يقوم بعملية التعديل",
"notificationText": "انقر للعودة إلى المثبت",
"exportApkButtonTooltip": "تصدير APK المعدل",
"exportLogButtonTooltip": "تصدير السجل",
"screenshotDetected": "تم اكتشاف لقطة شاشة. إذا كنت تحاول مشاركة السجل، فيرجى مشاركة نسخة نصية بدلاً من ذلك.\n\nهل تريد نسخ السجل إلى الحافظة؟",
"copiedToClipboard": "تم نسخ السجل إلى الحافظة",
"noExit": "المثبت لا يزال قيد التشغيل، لا يمكن الخروج..."
},
"settingsView": {
"widgetTitle": "الإعدادات",
"appearanceSectionTitle": "المظهر",
"teamSectionTitle": "الفريق",
"debugSectionTitle": "تصحيح الأخطاء",
"advancedSectionTitle": "إعدادات متقدمة",
"exportSectionTitle": "استيراد و تصدير",
"dataSectionTitle": "مصادر البيانات",
"themeModeLabel": "مظهر التطبيق",
"systemThemeLabel": "النظام",
"lightThemeLabel": "فاتح (ابيض)",
"darkThemeLabel": "الوضع الداكن",
"dynamicThemeLabel": "تصميم Material You",
"dynamicThemeHint": "استمتع بتجربة أقرب إلى جهازك",
"languageLabel": "اللغة",
"languageUpdated": "تم تحديث اللغة",
"englishOption": "الإنجليزية",
"sourcesLabel": "مصادر بديلة",
"sourcesIntegrationsLabel": "مصدر الـدمج",
"useAlternativeSources": "استخدام مصادر بديلة",
"sourcesResetDialogTitle": "إعادة التعيين",
"sourcesResetDialogText": "هل أنت متأكد من أنك تريد إعادة تعيين المصادر الخاصة بك إلى قيمها الافتراضية؟",
"apiURLResetDialogText": "هل أنت متأكد من أنك تريد إعادة تعيين رابط API الخاص بك إلى قيمته الافتراضية؟",
"apiURLLabel": "رابط API",
"selectApiURL": "رابط API",
"orgPatchesLabel": "تنظيم التعديلات",
"sourcesPatchesLabel": "مصدر التعديلات",
"orgIntegrationsLabel": "تنظيم الدمج",
"contributorsLabel": "المساهمون",
"contributorsHint": "قائمة المساهمين في ReVanced",
"logsLabel": "مشاركة السجلات",
"logsHint": "مشاركة سجلات ReVanced Manager",
"enablePatchesSelectionLabel": "السماح بتغيير تحديد التعديل",
"enablePatchesSelectionWarningText": "قد يؤدي تغيير تحديد التعديلات إلى حدوث مشكلات غير متوقعة.\n\nهل تريد التمكين على أي حال؟",
"disablePatchesSelectionWarningText": "أنت على وشك تعطيل تغيير تحديد التعديلات.\nستتم استعادة التحديد الافتراضي للتعديلات.\n\nهل تريد التعطيل على أي حال؟",
"autoUpdatePatchesLabel": "تحديث التعديلات تلقائيًا",
"autoUpdatePatchesHint": "تحديث التعديلات تلقائيًا إلى الإصدار الأحدث",
"showUpdateDialogLabel": "عرض مربع حوار التحديث",
"showUpdateDialogHint": "إظهار مربع حوار عندما يتوفر تحديث جديد",
"universalPatchesLabel": "عرض التعديلات العامة",
"universalPatchesHint": "عرض جميع التطبيقات والتعديلات العامة (قد تؤدي إلى إبطاء قائمة التطبيقات)",
"versionCompatibilityCheckLabel": "التحقق من توافق الإصدار",
"requireSuggestedAppVersionLabel": "يتطلب إصدار التطبيق المقترح",
"requireSuggestedAppVersionDialogText": "قد يؤدي تحديد تطبيق ليس هو الإصدار المقترح إلى حدوث مشكلات غير متوقعة.\n\nهل تريد المتابعة على أية حال؟",
"aboutLabel": "لمحة",
"snackbarMessage": "نُسِخ إلى الحافظة",
"restartAppForChanges": "أعد تشغيل التطبيق لتطبيق التغييرات",
"deleteTempDirLabel": "حذف الملفات المؤقتة",
"deleteTempDirHint": "حذف الملفات المؤقتة غير المستخدمة",
"deletedTempDir": "تم حذف الملفات المؤقتة",
"exportPatchesLabel": "تصدير التعديل المحدد",
"exportPatchesHint": "تصدير التعديل المحدد إلى مِلَفّ JSON",
"exportedPatches": "تم تصدير التعديل المحدد",
"noExportFileFound": "لا يوجد تعديل محدد للتصدير",
"importPatchesLabel": "استيراد التعديل المحدد",
"importPatchesHint": "استيراد التعديل المحدد من مِلَفّ JSON",
"importedPatches": "تم استيراد التعديل المحدد",
"resetStoredPatchesLabel": "إعادة تعيين التعديل المحدد",
"resetStoredPatchesHint": "إعادة تعيين التعديل المحدد المخزن",
"resetStoredPatchesDialogTitle": "إعادة تعيين التعديل المحدد؟",
"resetStoredPatchesDialogText": "ستتم استعادة التحديد الافتراضي للتعديلات.",
"resetStoredPatches": "تم إعادة تعيين التعديل المحدد",
"resetStoredOptionsLabel": "إعادة تعيين خيارات التعديل",
"resetStoredOptionsHint": "إعادة تعيين جميع خيارات التعديل",
"resetStoredOptionsDialogTitle": "إعادة تعيين خيارات التعديل؟",
"resetStoredOptionsDialogText": "سيؤدي إعادة تعيين خيارات التعديل إلى إزالة جميع الخيارات المحفوظة.",
"resetStoredOptions": "تم إعادة تعيين الخيارات",
"deleteLogsLabel": "مسح السجلات",
"deleteLogsHint": "حذف سجلات ReVanced Manager التي تم جمعها",
"deletedLogs": "تم حذف السجلات",
"regenerateKeystoreLabel": "إعادة إنشاء مخزن المفاتيح",
"regenerateKeystoreHint": "إعادة إنشاء مخزن المفاتيح المستخدم لتوقيع التطبيقات",
"regenerateKeystoreDialogTitle": "إعادة إنشاء مخزن المفاتيح؟",
"regenerateKeystoreDialogText": "لن تتمكن التطبيقات المعدلة الموقعة باستخدام مخزن المفاتيح القديم من التحديث بعد الآن.",
"regeneratedKeystore": "تم تجديد مخزن المفاتيح",
"exportKeystoreLabel": "تصدير مخزن المفاتيح",
"exportKeystoreHint": "تصدير مخزن المفاتيح المستخدم لتوقيع التطبيقات",
"exportedKeystore": "تم تصدير مخزن المفاتيح",
"noKeystoreExportFileFound": "لا يوجد مخزن مفاتيح للتصدير",
"importKeystoreLabel": "استيراد مخزن المفاتيح",
"importKeystoreHint": "استيراد مخزن المفاتيح المستخدم لتوقيع التطبيقات",
"importedKeystore": "تم استيراد مخزن المفاتيح",
"selectKeystorePassword": "كلمة مرور مخزن المفاتيح",
"selectKeystorePasswordHint": "حدد كلمة مرور تخزين المفاتيح المستخدمة للتوقيع على التطبيقات",
"jsonSelectorErrorMessage": "تعذر استخدام مِلَفّ JSON المحدد",
"keystoreSelectorErrorMessage": "غير قادر على استخدام ملف تخزين المفاتيح المحدد"
},
"appInfoView": {
"widgetTitle": "معلومات التطبيق",
"openButton": "فتح",
"uninstallButton": "إلغاء التثبيت",
"rootDialogTitle": "خطأ",
"uninstallDialogText": "هل أنت متأكد من أنك تريد إلغاء تثبيت هذا التطبيق؟",
"rootDialogText": "تم تثبيت التطبيق بأذونات المستخدم المتميز، لكن ReVanced Manager ليس لديه أذونات حاليًا.\nالرجاء منح أذونات المستخدم المتميز أولاً.",
"packageNameLabel": "اسم الحُزْمَة",
"installTypeLabel": "نوع التثبيت",
"regularTypeLabel": "عادي",
"patchedDateLabel": "تاريخ التعديل",
"appliedPatchesLabel": "التعديلات المطبقة",
"patchedDateHint": "${date} في ${time}",
"appliedPatchesHint": "${quantity} تعديلات مطبقة",
"updateNotImplemented": "لم يتم تنفيذ هذه الميزة بعد"
},
"contributorsView": {
"widgetTitle": "المساهمون"
},
"installErrorDialog": {
"mount_version_mismatch": "نسخة غير متطابقة",
"mount_no_root": "لا توجد صلاحيات روت",
"install_failed_verification_failure": "فشل التحقق",
"status_failure_invalid": "التثبيت غير صالح",
"status_failure_incompatible": "التثبيت غير متوافق",
"status_unknown": "فشل التثبيت",
"status_unknown_description": "فشل التثبيت لسبب غير معروف. الرجاء المحاولة مرة أخرى."
}
}

View File

@ -1,307 +0,0 @@
{
"okButton": "Oldu",
"cancelButton": "Ləğv et",
"dismissButton": "Rədd et",
"quitButton": ıxış",
"updateButton": "Yenilə",
"enabledLabel": "Fəaldır",
"disabledLabel": "Sıradan çıxarıldı",
"installed": "Quraşdırılan: ${version}",
"suggested": "Təklif edilən: ${version}",
"yesButton": "Bəli",
"noButton": "Xeyr",
"warning": "Xәbәrdarlıq",
"options": "Seçimlər",
"notice": "Bildiriş",
"noShowAgain": "Bunu təkrar göstərmə",
"add": "Əlavə et",
"remove": "Sil",
"showChangelogButton": "Dəyişiklik jurnalını göstər",
"showUpdateButton": "Güncəlləməni göstər",
"navigationView": {
"dashboardTab": "İdarəetmə lövhəsi",
"patcherTab": "Yamaqlayıcı",
"settingsTab": "Ayarlar"
},
"homeView": {
"refreshSuccess": "Uğurla yeniləndi",
"widgetTitle": "İdarəetmə lövhəsi",
"updatesSubtitle": "Yeniləmələr",
"patchedSubtitle": "Yamaqlanmış tətbiqlər",
"changeLaterSubtitle": "Bunu daha sonra ayarlarda dəyişdirə bilərsiniz.",
"noUpdates": "Güncəlləmə mövcud deyil",
"WIP": "Proses davam edir...",
"noInstallations": "Yamaqlanmış tətbiq quraşdırılmayıb",
"installUpdate": "Yeniləməni quraşdırmağa davam edilsin?",
"updateSheetTitle": "ReVanced Menecerini Güncəllə",
"updateDialogTitle": "Güncəlləmə mövcuddur",
"updatePatchesSheetTitle": "ReVanced yamaqlarını güncəllə",
"updateChangelogTitle": "Dəyişiklik jurnalı",
"updateDialogText": "${file} üçün yeni bir güncəlləmə var.\n\nHazırkı quraşdırılmış versiya: ${version}.",
"downloadConsentDialogTitle": "Lazımi fayllar endirilsin?",
"downloadConsentDialogText": "\"ReVanced Meneceri\"nin düzgün işləməsi üçün lazımi faylları endirməsi lazımdır.",
"downloadConsentDialogText2": "Bu, sizi ${url} ünvanına bağlayacaq.",
"checkUpdateDialogTitle": "Güncəlləmələr yoxlanılsın?",
"checkUpdateDialogText": "\"ReVanced Meneceri\"nin güncəlləmələri avto-yoxlamasını istəyirsiniz?",
"notificationTitle": "Güncəlləmə endirildi",
"notificationText": "Güncəlləməni quraşdırmaq üçün toxunun",
"downloadingMessage": "Yeniləmə yüklənilir...",
"downloadedMessage": "Güncəlləmə endirildi",
"installingMessage": "Yeniləmə quraşdırılır...",
"errorDownloadMessage": "Güncəlləmə endirilə bilmir",
"errorInstallMessage": "Güncəlləmə quraşdırıla bilmir",
"noConnection": "İnternet bağlantısı yoxdur",
"updatesDisabled": "Yamaqlanmış bir tətbiqin güncəllənməsi hazırda sıradan çıxarılıb. Tətbiqi yenidən yamaqlayın."
},
"applicationItem": {
"infoButton": "Məlumat"
},
"latestCommitCard": {
"loadingLabel": "Yüklənir...",
"timeagoLabel": "${time} əvvəl",
"patcherLabel": "Yamaqlayıcı: ",
"managerLabel": "Menecer: ",
"updateButton": "Güncəlləmə meneceri"
},
"patcherView": {
"widgetTitle": "Yamaqlayıcı",
"patchButton": "Yamaqla",
"armv7WarningDialogText": "ARMv7 cihazlarında yamaqlama hələ dəstəklənmir və xəta verə bilər. Yenə də davam edilsin?",
"removedPatchesWarningDialogText": "Aşağıdakı yamaqlar son istifadədən bu yana silindi.\n\n${patches}\n\nYenə də davam edilsin?",
"requiredOptionDialogText": "Bəzi yamaq seçimləri ayarlanmalıdır."
},
"appSelectorCard": {
"widgetTitle": "Bir tətbiq seçin",
"widgetTitleSelected": "Seçilmiş tətbiq",
"widgetSubtitle": "Heç bir tətbiq seçilmədi",
"noAppsLabel": "Heç bir tətbiq tapılmadı",
"currentVersion": "Hazırkı",
"suggestedVersion": "Təklif edilən",
"anyVersion": "Bütün versiyalar"
},
"patchSelectorCard": {
"widgetTitle": "Yamaqları seçin",
"widgetTitleSelected": "Seçilmiş yamaqlar",
"widgetSubtitle": "Əvvəlcə bir tətbiq seçin",
"widgetEmptySubtitle": "Heç bir yamaq seçilməyib"
},
"socialMediaCard": {
"widgetTitle": "Sosial",
"widgetSubtitle": "Xətdəyik!"
},
"appSelectorView": {
"viewTitle": "Bir tətbiq seçin",
"searchBarHint": "Tətbiq axtar",
"storageButton": "Anbar",
"selectFromStorageButton": "Anbardan seç",
"errorMessage": "Seçilmiş tətbiq istifadə edilə bilmir",
"downloadToast": "Endirmə hələ əlçatmazdır",
"requireSuggestedAppVersionDialogText": "Seçdiyiniz tətbiqin versiyası təklif edilən versiya ilə uyuşmur və bu, gözlənilməz problemlərə səbəb ola bilər. Lütfən təklif edilən versiyanı istifadə edin.\n\nSeçilmiş versiya: v${selected}\nTəklif edilən versiya: v${suggested}\n\nYenə də davam etmək üçün, ayarlarda \"Təklif edilən versiyanı tələb et\"i sıradan çıxarda bilərsiniz.",
"featureNotAvailable": "Özəllik tətbiq edilmədi",
"featureNotAvailableText": "Bu tətbiq bölünmüş bir APK-dir və yalnız root icazələri ilə qoşularaq yamaqlana və quraşdırıla bilər. Ancaq, anbar sahəsindən tam APK-ni seçərək yamaqlaya və quraşdıra bilərsiniz."
},
"patchesSelectorView": {
"viewTitle": "Yamaqları seçin",
"searchBarHint": "Yamaqları axtarın",
"universalPatches": "Universal yamaqlar",
"newPatches": "Yeni yamaqlar",
"patches": "Yamaqlar",
"doneButton": "Hazırdır",
"defaultChip": "İlkin",
"defaultTooltip": "Bütün ilkin yamaqları seç",
"noneChip": "Yoxdur",
"noneTooltip": "Yamaqların heç birini seçmə",
"loadPatchesSelection": "Yamaq seçimini yüklə",
"noSavedPatches": "Seçilmiş tətbiq üçün saxlanılmış yamaq yoxdur.\nHazırkı seçimi saxlamaq üçün \"Hazırdır\"a toxunun.",
"noPatchesFound": "Seçilmiş tətbiq üçün yamaq tapılmadı",
"setRequiredOption": "Bəzi yamaqlar seçimlərin ayarlanmasını tələb edir:\n\n${patches}\n\nLütfən davam etməzdən əvvəl onları ayarlayın."
},
"patchOptionsView": {
"customValue": "Özəl dəyər",
"resetOptionsTooltip": "Yamaq seçimlərini sıfırla",
"viewTitle": "Yamaq seçimləri",
"saveOptions": "Saxla",
"addOptions": "Seçim əlavə et",
"deselectPatch": "Yamağı seçmə",
"tooltip": "Daha çox giriş seçimləri",
"selectFilePath": "Fayl yolunu seç",
"selectFolder": "Qovluq seç",
"selectOption": "Seçim et",
"requiredOption": "Bu seçim tələb olunur",
"unsupportedOption": "Bu seçim dəstəklənmir",
"requiredOptionNull": "Aşağıdakı seçimlər ayarlanmalıdır:\n\n${options}"
},
"patchItem": {
"unsupportedDialogText": "Bu yamağı seçmək, yamaqlama xətalarına səbəb ola bilər.\n\nTətbiq versiyası: ${packageVersion} \nDəstəklənən versiyalar:\n${supportedVersions}",
"unsupportedPatchVersion": "Yamaq, tətbiqin bu versiyası üçün dəstəklənmir.",
"unsupportedRequiredOption": "Bu yamaqda, bu tətbiq tərəfindən dəstəklənməyən və tələb edilən bir seçim var",
"patchesChangeWarningDialogText": "İlkin yamaq seçimi və seçimlərin istifadəsi tövsiyə olunur. Onların dəyişdirilməsi gözlənilməz problemlərlə nəticələnə bilər.\n\nHər hansısa bir yamaq seçimini dəyişdirməzdən əvvəl ayarlarda \"Yamaq seçimini dəyişdirməyə icazə ver\"i işə salmalısınız.",
"patchesChangeWarningDialogButton": "İlkin seçimi istifadə et"
},
"installerView": {
"widgetTitle": "Quraşdırıcı",
"installType": "Quraşdırma növünü seçin",
"installTypeDescription": "Davam etmək üçün quraşdırma növünü seçin.",
"installButton": "Quraşdır",
"installRootType": "Qoş",
"installNonRootType": "Normal",
"warning": "Gözlənilməz problemlərin qarşısını almaq məqsədilə yamaqlanmış tətbiq üçün avto-güncəlləmələri sıradan çıxardın.",
"pressBackAgain": "Ləğv etmək üçün yenidən geri düyməsinə bas",
"openButton": "Aç",
"shareButton": "Faylı paylaş",
"notificationTitle": "ReVanced Menecer yamaqlayır",
"notificationText": "Quraşdırıcıya geri qayıtmaq üçün toxunun",
"exportApkButtonTooltip": "Yamaqlı APK-ni xaricə köçür",
"exportLogButtonTooltip": "Jurnalı xaricə köçür",
"screenshotDetected": "Ekran şəkli silindi. Jurnalı paylaşmağa çalışırsınızsa, lütfən bunun əvəzinə mətnin kopyasını paylaşın.\n\nJurnal lövhəyə kopyalansın?",
"copiedToClipboard": "Jurnal lövhəyə kopyalandı",
"noExit": "Quraşdırıcı hələ də işləyir, çıxış edilə bilməz..."
},
"settingsView": {
"widgetTitle": "Ayarlar",
"appearanceSectionTitle": "Görünüş",
"teamSectionTitle": "Komanda",
"debugSectionTitle": "Sazlama",
"advancedSectionTitle": "Qabaqcıl",
"exportSectionTitle": "Daxilə və xaricə köçür",
"dataSectionTitle": "Data mənbələri",
"themeModeLabel": "Tətbiq teması",
"systemThemeLabel": "Sistem",
"lightThemeLabel": "İşıqlı",
"darkThemeLabel": "Qaranlıq rejim",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Cihazınıza yaxın bir təcrübədən həzz alın",
"languageLabel": "Dil",
"languageUpdated": "Dil güncəlləndi",
"englishOption": "İngiliscə",
"sourcesLabel": "Alternativ mənbələr",
"sourcesLabelHint": "ReVanced Yamaqları və ReVanced İnteqrasiyaları üçün alternativ mənbələri konfiqurasiya edin",
"sourcesIntegrationsLabel": "İnteqrasiya mənbəyi",
"useAlternativeSources": "Alternativ mənbələri istifadə et",
"useAlternativeSourcesHint": "ReVanced Yamaqları və ReVanced İnteqrasiyaları üçün API əvəzinə alternativ mənbələri istifadə et",
"sourcesResetDialogTitle": "Sıfırla",
"sourcesResetDialogText": "Mənbələrinizi ilkin dəyərlərinə sıfırlamaq istədiyinizə əminsiniz?",
"apiURLResetDialogText": "API URL-nizi ilkin dəyərinə sıfırlamaq istədiyinizə əminsiz?",
"sourcesUpdateNote": "Qeyd: Bu, ReVanced Yamaqları və ReVanced İnteqrasiyalarını alternativ mənbələrdən avtomatik olaraq endirəcək.\n\nBu, sizi alternativ mənbəyə bağlayacaq.",
"apiURLLabel": "API URL",
"apiURLHint": "\"ReVacned Manager\"in API URL-sini konfiqurasiya et",
"selectApiURL": "API URL",
"orgPatchesLabel": "Yamaq təşkilatı",
"sourcesPatchesLabel": "Yamaq mənbəyi",
"orgIntegrationsLabel": "İnteqrasiya təşkilatı",
"contributorsLabel": "Töhfə verənlər",
"contributorsHint": "ReVanced-ə töhfə verənlərin siyahısı",
"logsLabel": "Jurnalları paylaş",
"logsHint": "ReVanced Manager jurnallarını paylaş",
"enablePatchesSelectionLabel": "Yamaq seçimini dəyişdirməyə icazə ver",
"enablePatchesSelectionHint": "Yamaqların seçilməsi və ya seçimin götürülməsi əngəllənməsin",
"enablePatchesSelectionWarningText": "Yamaq seçimini dəyişdirmək gözlənilməz problemlərə səbəb ola bilər.\n\nYenə də fəallaşdırılsın?",
"disablePatchesSelectionWarningText": "Yamaq seçiminin dəyişdirilməsini sıradan çıxartmaq üzrəsiniz.\nİlkin yamaq seçimi bərpa ediləcək.\n\nYenə də sıradan çıxarılsın?",
"autoUpdatePatchesLabel": "Yamaqları avto-güncəllə",
"autoUpdatePatchesHint": "Yamaqları son versiyaya avtomatik güncəllə",
"showUpdateDialogLabel": "Güncəlləmə dialoqunu göstər",
"showUpdateDialogHint": "Yeni güncəlləmə mövcud olduqda bir dialoq pəncərəsi göstər",
"universalPatchesLabel": "Universal yamaqları göstər",
"universalPatchesHint": "Bütün tətbiqləri və universal yamaqları göstər (tətbiqlərin sadalanmasını yavaşlandıra bilər)",
"versionCompatibilityCheckLabel": "Versiya uyumluluq yoxlanışı",
"versionCompatibilityCheckHint": "Seçilmiş tətbiq versiyası ilə uyumlu olmayan yamaqların seçilməsini əngəllə",
"requireSuggestedAppVersionLabel": "Təklif edilən versiyanı tələb et",
"requireSuggestedAppVersionHint": "Təklif edilməyən bir versiyaya sahib olan tətbiqin seçilməsini əngəllə",
"requireSuggestedAppVersionDialogText": "Təklif edilən versiya olmayan bir tətbiqin seçilməsi gözlənilməz problemlər yarada bilər.\n\nYenə də davam etmək istəyirsiniz?",
"aboutLabel": "Haqqında",
"snackbarMessage": "Lövhəyə kopyalandı",
"restartAppForChanges": "Dəyişiklikləri tətbiq etmək üçün tətbiqi yenidən başlat",
"deleteTempDirLabel": "Müvəqqəti faylları sil",
"deleteTempDirHint": "Müvəqqəti faylları sil",
"deletedTempDir": "Müvəqqəti fayllar silindi",
"exportPatchesLabel": "Yamaq seçimini xaricə köçür",
"exportPatchesHint": "Yamaq seçimini JSON faylına köçür",
"exportedPatches": "Yamaq seçimi xaricə köçürüldü",
"noExportFileFound": "Xaricə köçürüləcək yamaq seçimi yoxdur",
"importPatchesLabel": "Yamaq seçimini daxilə köçür",
"importPatchesHint": "Yamaq seçimini JSON faylından köçür",
"importedPatches": "Yamaq seçimi daxilə köçürüldü",
"resetStoredPatchesLabel": "Yamaq seçimini sıfırla",
"resetStoredPatchesHint": "Saxlanılmış yamaq seçimini sıfırla",
"resetStoredPatchesDialogTitle": "Yamaq seçimi sıfırlansın?",
"resetStoredPatchesDialogText": "İlkin yamaq seçimi bərpa olunacaq.",
"resetStoredPatches": "Yamaq seçimi sıfırlandı",
"resetStoredOptionsLabel": "Yamaq seçimlərini sıfırla",
"resetStoredOptionsHint": "Bütün yamaq seçimlərini sıfırla",
"resetStoredOptionsDialogTitle": "Yamaq seçimləri sıfırlansın?",
"resetStoredOptionsDialogText": "Yamaq seçimlərinin sıfırlanması, bütün saxlanılmış seçimləri silir.",
"resetStoredOptions": "Seçimlər sıfırlandı",
"deleteLogsLabel": "Jurnalları təmizlə",
"deleteLogsHint": "Yığılmış ReVanced Manager jurnallarını sil",
"deletedLogs": "Jurnallar silindi",
"regenerateKeystoreLabel": "Keystore-u yenidən yarat",
"regenerateKeystoreHint": "Tətbiqləri imzalamaq üçün istifadə edilən keystoru-u yenidən yarat",
"regenerateKeystoreDialogTitle": "Keystore yenidən yaradılsın?",
"regenerateKeystoreDialogText": "Köhnə keystore ilə imzalanmış yamaqlanmış tətbiqlər artıq güncəllənə bilməyəcək.",
"regeneratedKeystore": "Keystore yenidən yaradıldı",
"exportKeystoreLabel": "Açar mağazasını xaricə köçür",
"exportKeystoreHint": "Tətbiqləri imzalamaq üçün istifadə olunan keystoru-u xaricə köçür",
"exportedKeystore": "Açar mağazası xaricə köçürüldü",
"noKeystoreExportFileFound": "Xaricə köçürüləcək açar mağazası yoxdur",
"importKeystoreLabel": "Açar mağazasını daxilə köçür",
"importKeystoreHint": "Tətbiqləri imzalamaq üçün istifadə olunan keystoru-u daxilə köçür",
"importedKeystore": "Açar mağazası daxilə köçürüldü",
"selectKeystorePassword": "Keystore parolu",
"selectKeystorePasswordHint": "Tətbiqləri imzalamaq üçün istifadə olunan keystore-u seçin",
"jsonSelectorErrorMessage": "Seçilmiş JSON faylı istifadə edilə bilmir",
"keystoreSelectorErrorMessage": "Seçilmiş keystore faylı istifadə edilə bilmir"
},
"appInfoView": {
"widgetTitle": "Tətbiq məlumatı",
"openButton": "Aç",
"uninstallButton": "Sil",
"unmountButton": "Ayır",
"rootDialogTitle": "Xəta",
"unmountDialogText": "Bu tətbiqi ayırmaq istədiyinizə əminsiniz?",
"uninstallDialogText": "Bu tətbiqi silmək istədiyinizə əminsiniz?",
"rootDialogText": "Tətbiq, superuser icazələri ilə quraşdırıldı, ancaq hazırda ReVanced Manager-in heç bir icazəsi yoxdur.\nLütfən əvvəlcə superuser icazələrini verin.",
"packageNameLabel": "Paket adı",
"installTypeLabel": "Quraşdırma növü",
"mountTypeLabel": "Qoş",
"regularTypeLabel": "Normal",
"patchedDateLabel": "Yamaqlama tarixi",
"appliedPatchesLabel": "Tətbiq edilmiş yamaqlar",
"patchedDateHint": "${time} ${date}",
"appliedPatchesHint": "${quantity} tətbiq edilmiş yamaq",
"updateNotImplemented": "Bu özəllik hələ tətbiq olunmayıb"
},
"contributorsView": {
"widgetTitle": "Töhfə verənlər",
"patcherContributors": "ReVanced Patcher",
"patchesContributors": "ReVanced Yamaqları",
"integrationsContributors": "ReVanced İnteqrasiyaları",
"cliContributors": "ReVanced CLI",
"managerContributors": "ReVanced Manager"
},
"installErrorDialog": {
"mount_version_mismatch": "Versiya uyuşmur",
"mount_no_root": "Root müraciəti yoxdur",
"mount_missing_installation": "Quraşdırma tapılmadı",
"status_failure_blocked": "Quraşdırma əngəlləndi",
"install_failed_verification_failure": "Doğrulama uğursuz oldu",
"status_failure_invalid": "Quraşdırma yararsızdır",
"install_failed_version_downgrade": "Köhnə versiyaya keçilə bilmir",
"status_failure_conflict": "Quraşdırma ziddiyəti",
"status_failure_storage": "Quraşdırma anbar sahəsi problemi",
"status_failure_incompatible": "Quraşdırma uyumsuzdur",
"status_failure_timeout": "Quraşdırma vaxtı bitdi",
"status_unknown": "Quraşdırma uğursuz oldu",
"mount_version_mismatch_description": "Quraşdırılmış tətbiq, yamaqlanmış tətbiqdən fərqli bir versiyaya sahib olduğu üçün quraşdırma uğursuz oldu.\n\nQoşduğunuz tətbiqin versiyasını quraşdırıb yenidən sınayın.",
"mount_no_root_description": "Root müraciətinə icazə verilmədiyi üçün quraşdırma uğursuz oldu.\n\n\"ReVanced Manager\"ə root müraciət icazəsini verib yenidən sınayın.",
"mount_missing_installation_description": "Üzərinə qoşulacaq yamaqlanmamış tətbiq bu cihazda quraşdırılmadığı üçün quraşdırma uğursuz oldu.\n\nQoşmazdan əvvəl yamaqlanmamış tətbiqi quraşdırıb yenidən sınayın.",
"status_failure_timeout_description": "Quraşdırmanın bitməsi çox uzun çəkdi.\n\nYenidən sınamaq istəyirsiniz?",
"status_failure_storage_description": "Yetərsiz anbar 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 yararsı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 uyumlu deyil.\n\nTətbiqin tərtibatçısı ilə əlaqə saxlayın və dəstək istəyin.",
"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\nGüvənlik ayarlarınızı nizamlayıb yenidən sınayın.",
"install_failed_verification_failure_description": "Doğrulama probleminə görə quraşdırma uğursuz oldu.\n\nGüvənlik ayarlarınızı nizamlayıb yenidən sınayın.",
"install_failed_version_downgrade_description": "Yamaqlanmış tətbiq, quraşdırılmış tətbiqdən daha aşağı versiyaya sahib olduğu üçün quraşdırma uğursuz oldu.\n\nTətbiqi silib yenidən sınayırsınız?",
"status_unknown_description": "Bilinməyən bir səbəbə görə quraşdırma uğursuz oldu. Lütfən yenidən sınayın."
}
}

View File

@ -1,307 +0,0 @@
{
"okButton": "ОК",
"cancelButton": "Скасаваць",
"dismissButton": "Адхіліць",
"quitButton": "Выйсці",
"updateButton": "Абнавіць",
"enabledLabel": "Уключана",
"disabledLabel": "Адключана",
"installed": "Усталявана: ${version}",
"suggested": "Прапанавана: ${version}",
"yesButton": "Так",
"noButton": "Не",
"warning": "Увага",
"options": "Параметры",
"notice": "Заўвага",
"noShowAgain": "Больш не паказваць",
"add": "Дадаць",
"remove": "Выдаліць",
"showChangelogButton": "Паказаць журнал змяненняў",
"showUpdateButton": "Паказаць абнаўленне",
"navigationView": {
"dashboardTab": "Галоўная",
"patcherTab": "Праграма выпраўлення",
"settingsTab": "Налады"
},
"homeView": {
"refreshSuccess": "Паспяхова абноўлена",
"widgetTitle": "Галоўная",
"updatesSubtitle": "Абнаўленні",
"patchedSubtitle": "Выпраўленыя праграмы",
"changeLaterSubtitle": "Вы можаце змяніць гэта ў наладах пазней.",
"noUpdates": "Няма даступных абнаўленняў",
"WIP": "У працэсе...",
"noInstallations": "Няма ўсталяваных праграм з выпраўленнямі",
"installUpdate": "Працягнуць усталяванне абнаўлення?",
"updateSheetTitle": "Абнавіць ReVanced Manager",
"updateDialogTitle": "Даступна новае абнаўленне",
"updatePatchesSheetTitle": "Абнавіць выпраўленні ReVanced",
"updateChangelogTitle": "Спіс змяненняў",
"updateDialogText": "Даступна новае абнаўленне для ${file}\n\nЦяпер усталявана версія ${version}.",
"downloadConsentDialogTitle": "Спампаваць неабходныя файлы?",
"downloadConsentDialogText": "ReVanced Manager неабходна спампаваць неабходныя файлы для правільнай працы.",
"downloadConsentDialogText2": "Гэта падключыць вас да ${url}.",
"checkUpdateDialogTitle": "Праверыць наяўнасць абнаўленняў?",
"checkUpdateDialogText": "Вы сапраўды хочаце правяраць абнаўленні ReVanced Manager аўтаматычна?",
"notificationTitle": "Абнаўленне спампавана",
"notificationText": "Націсніце, каб усталяваць абнаўленне",
"downloadingMessage": "Спампоўваецца абнаўленне...",
"downloadedMessage": "Абнаўленне спампавана",
"installingMessage": "Усталяванне абнаўлення...",
"errorDownloadMessage": "Немагчыма спампаваць абнаўленне",
"errorInstallMessage": "Немагчыма ўсталяваць абнаўленне",
"noConnection": "Няма злучэння з інтэрнэтам",
"updatesDisabled": "Абнаўленне выпраўленай праграмы ў цяперашні час адключана. Неабходна паўторна ўжыць выпраўленне для праграмы."
},
"applicationItem": {
"infoButton": "Звесткі"
},
"latestCommitCard": {
"loadingLabel": "Загрузка...",
"timeagoLabel": "${time} таму",
"patcherLabel": "Праграма выпраўлення: ",
"managerLabel": "Менеджар: ",
"updateButton": "Абнавіць ReVanced Manager"
},
"patcherView": {
"widgetTitle": "Праграма выпраўлення",
"patchButton": "Выправіць",
"armv7WarningDialogText": "Выпраўленне для прылад на ARMv7 пакуль не падтрымліваецца і можа прывесці да збою. Працягнуць?",
"removedPatchesWarningDialogText": "Наступныя выпраўленні былі выдалены з моманту іх апошняга выкарыстання.\n\n${patches}\n\nУсё роўна працягнуць?",
"requiredOptionDialogText": "Неабходна задаць некаторыя параметры выпраўленняў."
},
"appSelectorCard": {
"widgetTitle": "Выбраць праграму",
"widgetTitleSelected": "Выбраная праграма",
"widgetSubtitle": "Праграма не выбрана",
"noAppsLabel": "Праграмы не знойдзены",
"currentVersion": "Бягучая версія",
"suggestedVersion": "Прапанаваная",
"anyVersion": "Любая версія"
},
"patchSelectorCard": {
"widgetTitle": "Выберыце выпраўленні",
"widgetTitleSelected": "Выбраныя выпраўленні",
"widgetSubtitle": "Спачатку выберыце праграму",
"widgetEmptySubtitle": "Выпраўленні не выбраны"
},
"socialMediaCard": {
"widgetTitle": "Сацсеткі",
"widgetSubtitle": "Мы ў інтэрнэце!"
},
"appSelectorView": {
"viewTitle": "Выбраць праграму",
"searchBarHint": "Пошук праграмы",
"storageButton": "Сховішча",
"selectFromStorageButton": "Выбраць са сховішча",
"errorMessage": "Немагчыма выкарыстоўваць выбраную праграму",
"downloadToast": "Функцыя спампоўвання пакуль недаступна",
"requireSuggestedAppVersionDialogText": "Версія праграмы, якую вы выбралі не супадае з прапанаванай версіяй і гэта можа прывесці да нечаканых праблем. Скарыстайцеся прапанаванай версіяй.\n\nВыбраная версія: ${selected}\nПрапанаваная версія: ${suggested}\n\nАдключыце \"Патрабаваць прапанаваную версію праграмы\" ў наладах, каб праігнараваць гэта паведамленне.",
"featureNotAvailable": "Функцыя не рэалізавана",
"featureNotAvailableText": "Гэта праграма з'яўляецца раздзеленым файлам APK і яе можна надзейна выправіць і ўсталяваць толькі падключэннем з правамі суперкарыстальніка. Аднак вы можаце выправіць і ўсталяваць поўны файл APK выбраўшы яго са сховішча."
},
"patchesSelectorView": {
"viewTitle": "Выберыце выпраўленні",
"searchBarHint": "Пошук выпраўленняў",
"universalPatches": "Універсальныя выпраўленні",
"newPatches": "Новыя выпраўленні",
"patches": "Выпраўленні",
"doneButton": "Гатова",
"defaultChip": "Прадвызначана",
"defaultTooltip": "Выбраць усе прадвызначаныя выпраўленні",
"noneChip": "Няма",
"noneTooltip": "Зняць выбар з усіх выпраўленняў",
"loadPatchesSelection": "Загрузіць выбраныя выпраўленні",
"noSavedPatches": "Адсутнічае захаваны выбар выпраўленняў для выбранай праграмы.\nНацісніце \"Гатова\", каб захаваць бягучы выбар.",
"noPatchesFound": "Для выбранай праграмы выпраўленні не знойдзены",
"setRequiredOption": "Некаторыя выпраўленні патрабуюць зададзеных параметраў:\n\n${patches}\n\nЗадайце іх перад працягам."
},
"patchOptionsView": {
"customValue": "Уласнае значэнне",
"resetOptionsTooltip": "Скінуць параметры выпраўлення",
"viewTitle": "Параметры выпраўлення",
"saveOptions": "Захаваць",
"addOptions": "Дадаць параметры",
"deselectPatch": "Зняць выбар з выпраўлення",
"tooltip": "Больш уваходных параметраў",
"selectFilePath": "Выбраць шлях да файла",
"selectFolder": "Выбраць папку",
"selectOption": "Выберыце параметр",
"requiredOption": "Абавязковы параметр",
"unsupportedOption": "Гэты параметр не падтрымліваецца",
"requiredOptionNull": "Наступныя параметры павінны быць зададзены:\n\n${options}"
},
"patchItem": {
"unsupportedDialogText": "Выбар гэтага выпраўлення можа прывесці да памылак падчас яго ўжывання.\n\nВерсія праграмы: ${packageVersion}\nВерсіі, якія падтрымліваюцца:\n${supportedVersions}",
"unsupportedPatchVersion": "Выпраўленне не падтрымліваецца гэтай версіяй праграмы.",
"unsupportedRequiredOption": "Гэта выпраўленне змяшчае неабходныя параметры, якія не падтрымліваюцца гэтай праграмай",
"patchesChangeWarningDialogText": "Рэкамендуецца выкарыстоўваць прадвызначаны выбар выпраўлення і параметры. Іх змяненне можа прывесці да нечаканых праблем.\n\nПерад змяненнем выбару выпраўлення, вам неабходна ўключыць параметр \"Дазволіць змяненне выбару выпраўлення\" ў наладах.",
"patchesChangeWarningDialogButton": "Выкарыстоўваць прадвызначаны выбар"
},
"installerView": {
"widgetTitle": "Устаноўшчык праграм",
"installType": "Выберыце тып устаноўкі",
"installTypeDescription": "Выберыце тып устаноўкі для працягу.",
"installButton": "Усталяваць",
"installRootType": "Падключыць",
"installNonRootType": "Звычайны",
"warning": "Адключыць аўтаматычныя абнаўленні для выпраўленых праграм, каб пазбегнуць нечаканых праблем.",
"pressBackAgain": "Націсніце назад яшчэ раз, каб скасаваць",
"openButton": "Адкрыць",
"shareButton": "Абагуліць файл",
"notificationTitle": "ReVanced Manager працуе над выпраўленнем",
"notificationText": "Націсніце для вяртання ва ўсталёўшчык праграм",
"exportApkButtonTooltip": "Экспартаваць выпраўленыя APK",
"exportLogButtonTooltip": "Экспартаваць журнал",
"screenshotDetected": "Выяўлены здымак экрана. Калі вы хочаце абагуліць журнал, то замест гэтага адпраўце тэкставую копію\n\nСкапіраваць журнал у буфер абмену?",
"copiedToClipboard": "Журнал скапіяваны ў буфер абмену",
"noExit": "Усталёўшчык усё яшчэ працуе, нельга выйсці..."
},
"settingsView": {
"widgetTitle": "Налады",
"appearanceSectionTitle": "Знешні выгляд",
"teamSectionTitle": "Каманда",
"debugSectionTitle": "Адладка",
"advancedSectionTitle": "Дадаткова",
"exportSectionTitle": "Імпарт і экспарт",
"dataSectionTitle": "Крыніцы даных",
"themeModeLabel": "Тэма праграмы",
"systemThemeLabel": "Сістэма",
"lightThemeLabel": "Светлая",
"darkThemeLabel": "Цёмная",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Атрымлівайце асалоду ад тэмы сваёй прылады",
"languageLabel": "Мова",
"languageUpdated": "Мова абноўлена",
"englishOption": "Англійская",
"sourcesLabel": "Альтэрнатыўныя крыніцы",
"sourcesLabelHint": "Сканфігурыраваць альтэрнатыўныя крыніцы для ReVanced Patches і ReVanced Integrations",
"sourcesIntegrationsLabel": "Крыніца інтэграцый",
"useAlternativeSources": "Выкарыстоўваць альтэрнатыўныя крыніцы",
"useAlternativeSourcesHint": "Выкарыстоўваць альтэрнатыўныя крыніцы для ReVanced Patches і ReVanced Integrations замест API",
"sourcesResetDialogTitle": "Скінуць",
"sourcesResetDialogText": "Вы сапраўды хочаце скінуць свае крыніцы да іх прадвызначаных значэнняў?",
"apiURLResetDialogText": "Вы сапраўды хочаце скінуць свае API URL да іх прадвызначаных значэнняў?",
"sourcesUpdateNote": "Нататка: Гэта аўтаматычна спампуе ReVanced Patches і ReVanced Integrations з альтэрнатыўных крыніц.\n\nГэта падключыць вас да альтэрнатыўнай крыніцы.",
"apiURLLabel": "API URL",
"apiURLHint": "Сканфігурыруйце URL API для ReVanced Manager",
"selectApiURL": "API URL",
"orgPatchesLabel": "Арганізацыя выпраўленняў",
"sourcesPatchesLabel": "Крыніца выпраўленняў",
"orgIntegrationsLabel": "Арганізацыя інтэграцый",
"contributorsLabel": "Удзельнікі",
"contributorsHint": "Спіс усіх удзельнікаў праекта ReVanced",
"logsLabel": "Абагуліць журнал",
"logsHint": "Абагуліць журнал ReVanced Manager",
"enablePatchesSelectionLabel": "Дазволіць змяненне выбару выпраўлення",
"enablePatchesSelectionHint": "Не прадухіляць выбар або скасаванне выбару выпраўленняў",
"enablePatchesSelectionWarningText": "Змяненне выбару выпраўленняў можа стаць прычынай нечаканых праблем.\n\nУключыць усё роўна?",
"disablePatchesSelectionWarningText": "Вы збіраецеся адключыць змяненне выбару выпраўленняў.\nБудзе адноўлены прадвызначаны выбар выпраўленняў.\n\nАдключыць усё роўна?",
"autoUpdatePatchesLabel": "Аўтаматычнае абнаўленне выпраўленняў",
"autoUpdatePatchesHint": "Аўтаматычна абнаўляць выпраўленні да апошняй версіі",
"showUpdateDialogLabel": "Паказваць акно абнаўлення",
"showUpdateDialogHint": "Паказваць акно, калі даступна новае абнаўленне",
"universalPatchesLabel": "Паказваць універсальныя выпраўленні",
"universalPatchesHint": "Адлюстраваць усе праграмы і ўніверсальныя выпраўленні (можа запаволіць спіс праграм)",
"versionCompatibilityCheckLabel": "Праверка сумяшчальнасці версіі",
"versionCompatibilityCheckHint": "Прадухіляць выбар выпраўленняў, якія несумяшчальныя з выбранай версіяй праграмы",
"requireSuggestedAppVersionLabel": "Запыт прапанаванай версіі праграмы",
"requireSuggestedAppVersionHint": "Прадухіляць выбар праграмы з не прапанаванай версіяй",
"requireSuggestedAppVersionDialogText": "Выбар праграмы не прапанаванай версіі можа стаць прычынай нечаканых праблем.\n\nВы ўсё роўна хочаце працягнуць?",
"aboutLabel": "Пра праграму",
"snackbarMessage": "Скапіявана ў буфер абмену",
"restartAppForChanges": "Перазапусціце праграму, каб ужыць змены",
"deleteTempDirLabel": "Выдаліць часовыя файлы",
"deleteTempDirHint": "Выдаліць нявыкарыстаныя часовыя файлы",
"deletedTempDir": "Часовыя файлы выдалены",
"exportPatchesLabel": "Экспартаваць выбар выпраўленняў",
"exportPatchesHint": "Экспартаваць выбар выпраўленняў у файл JSON",
"exportedPatches": "Выбар выпраўленняў экспартаваны",
"noExportFileFound": "Адсутнічае выбар выпраўленняў для экспартавання",
"importPatchesLabel": "Імпартаваць выбар выпраўленняў",
"importPatchesHint": "Імпартаваць выбар выпраўленняў у файл JSON",
"importedPatches": "Выбар выпраўленняў імпартаваны",
"resetStoredPatchesLabel": "Скінуць выбар выпраўлення",
"resetStoredPatchesHint": "Скінуць захаванне выбару выпраўлення",
"resetStoredPatchesDialogTitle": "Скінуць выбар выпраўленняў?",
"resetStoredPatchesDialogText": "Прадвызначаны выбар выпраўленняў будзе адноўлены.",
"resetStoredPatches": "Выбар выпраўленняў будзе скінуты",
"resetStoredOptionsLabel": "Скінуць параметры выпраўлення",
"resetStoredOptionsHint": "Скінуць усе параметры выпраўлення",
"resetStoredOptionsDialogTitle": "Скінуць параметры выпраўлення?",
"resetStoredOptionsDialogText": "Скіданне параметраў выпраўлення выдаліць усе захаваныя параметры.",
"resetStoredOptions": "Параметры былі скінуты",
"deleteLogsLabel": "Ачысціць журнал",
"deleteLogsHint": "Выдаліць сабраны журнал ReVanced Manager",
"deletedLogs": "Журнал выдалены",
"regenerateKeystoreLabel": "Перагенерыраваць сховішча ключоў",
"regenerateKeystoreHint": "Паўторна генерыраваць сховішча ключоў, якое выкарыстоўваецца для падпісання праграм",
"regenerateKeystoreDialogTitle": "Паўторна генерыраваць сховішча ключоў?",
"regenerateKeystoreDialogText": "Выпраўленыя праграмы, якія падпісаны старым сховішчам ключоў, больш немагчыма будзе абнавіць.",
"regeneratedKeystore": "Сховішча ключоў генерыравана паўторна",
"exportKeystoreLabel": "Экспартаваць сховішча ключоў",
"exportKeystoreHint": "Экспартаваць сховішча ключоў, якое выкарыстоўваецца для падпісання праграм",
"exportedKeystore": "Сховішча ключоў экспартавана",
"noKeystoreExportFileFound": "Адсутнічае сховішча ключоў для экспартавання",
"importKeystoreLabel": "Імпартаваць сховішча ключоў",
"importKeystoreHint": "Імпартаваць сховішча ключоў, якое выкарыстоўваецца для падпісання праграм",
"importedKeystore": "Сховішча ключоў імпартавана",
"selectKeystorePassword": "Пароль сховішча ключоў",
"selectKeystorePasswordHint": "Выбраць пароль сховішча ключоў, які выкарыстоўваецца для падпісання праграм",
"jsonSelectorErrorMessage": "Немагчыма выкарыстоўваць выбраны файл JSON",
"keystoreSelectorErrorMessage": "Немагчыма выкарыстоўваць выбраны файл сховішча ключоў"
},
"appInfoView": {
"widgetTitle": "Пра праграму",
"openButton": "Адкрыць",
"uninstallButton": "Выдаліць",
"unmountButton": "Адключыць",
"rootDialogTitle": "Памылка",
"unmountDialogText": "Вы сапраўды хочаце адключыць гэту праграму?",
"uninstallDialogText": "Вы сапраўды хочаце выдаліць гэту праграму?",
"rootDialogText": "Праграма ўсталявана з правамі суперкарыстальніка, але ў цяперашні час у ReVanced Manager адсутнічаюць такія правы.\nСпачатку дайце праграме правы суперкарыстальніка.",
"packageNameLabel": "Назва пакета",
"installTypeLabel": "Тып усталявання",
"mountTypeLabel": "Падключыць",
"regularTypeLabel": "Звычайны",
"patchedDateLabel": "Дата выпраўлення",
"appliedPatchesLabel": "Ужытыя выпраўленні",
"patchedDateHint": "${date} у ${time}",
"appliedPatchesHint": "Ужыта выпраўленняў: ${quantity}",
"updateNotImplemented": "Пакуль яшчэ гэта функцыя не рэалізавана"
},
"contributorsView": {
"widgetTitle": "Удзельнікі",
"patcherContributors": "ReVanced Patcher",
"patchesContributors": "Выпраўленні ReVanced",
"integrationsContributors": "Інтэграцыі ReVanced",
"cliContributors": "ReVanced CLI",
"managerContributors": "ReVanced Manager"
},
"installErrorDialog": {
"mount_version_mismatch": "Неадпаведнасць версій",
"mount_no_root": "Няма праў суперкарыстальніка",
"mount_missing_installation": "Усталяванне не знойдзена",
"status_failure_blocked": "Усталяванне заблакіравана",
"install_failed_verification_failure": "Збой праверкі",
"status_failure_invalid": "Памылковае ўсталяванне",
"install_failed_version_downgrade": "Немагчыма панізіць",
"status_failure_conflict": "Канфлікт усталявання",
"status_failure_storage": "Праблема са сховішчам усталявання",
"status_failure_incompatible": "Несумяшчальнае ўсталяванне",
"status_failure_timeout": "Час чакання ўсталявання",
"status_unknown": "Збой усталявання",
"mount_version_mismatch_description": "Збой усталявання, бо версія ўсталяванай праграмы адрозніваецца ад версіі выпраўленай праграмы.",
"mount_no_root_description": "Збой усталявання, бо не атрыманы правы суперкарыстальніка.\n\nДайце правы суперкарыстальніка ReVanced Manager і паспрабуйце яшчэ раз.",
"mount_missing_installation_description": "Збой усталявання, бо спачатку неабходна ўсталяваць не выпраўленую праграму на гэту прыладу для падключэння паверх яе.\n\nУсталюйце не выпраўленую праграму перад падключэннем і паспрабуйце яшчэ раз.",
"status_failure_timeout_description": "Працэс усталявання адбываўся занадта доўга.\n\nВы сапраўды хочаце паспрабаваць яшчэ раз?",
"status_failure_storage_description": "Збой усталявання, бо на прыладзе недастаткова памяці.\n\nВызваліце крыху месца і паўтарыце спробу яшчэ раз.",
"status_failure_invalid_description": "Збой усталявання, бо выпраўленая праграма пашкоджана.\n\nВыдаліць праграму і паспрабаваць яшчэ раз?",
"status_failure_incompatible_description": "Праграма з'яўляцца несумяшчальнай з гэтай прыладай.\n\nЗвяжыцеся з пастаўшчыком праграмы, каб атрымаць дадатковыя звесткі.",
"status_failure_conflict_description": "Усталяванне прадухілена іншай праграмай, якая цяпер усталёўваецца.\n\nВыдаліць усталяваную праграму і паспрабаваць яшчэ раз?",
"status_failure_blocked_description": "Усталяванне было заблакіравана ${packageName}.\n\nНаладзьце свае параметры бяспекі і паспрабуйце яшчэ раз.",
"install_failed_verification_failure_description": "Збой усталявання, бо адбылася праблема праверкі.\n\nНаладзьце свае параметры бяспекі і паспрабуйце яшчэ раз.",
"install_failed_version_downgrade_description": "Збой усталявання, бо выпраўленая праграма мае больш новую версію, чым усталяваная праграма.\n\nВыдаліць праграму і паспрабаваць яшчэ раз?",
"status_unknown_description": "Збой усталявання, бо адбылася невядомая памылка. Паўтарыце спробу яшчэ раз."
}
}

View File

@ -1,177 +0,0 @@
{
"okButton": "Ок",
"cancelButton": "Отказ",
"dismissButton": "Отхвърли",
"quitButton": "Изход",
"updateButton": "Актуализация",
"enabledLabel": "Активирано",
"disabledLabel": "Изключено",
"installed": "Инсталирана версия: ${version}",
"suggested": "Предложена версия: ${version}",
"yesButton": "Да",
"noButton": "Не",
"warning": "Внимание",
"options": "Настроики",
"notice": "Известие",
"noShowAgain": "Не показвай повече",
"add": "Добави",
"remove": "Премахни",
"showChangelogButton": "Покажи промените",
"showUpdateButton": "Покажи обновяванията",
"navigationView": {
"dashboardTab": "Табло за управление",
"patcherTab": "Пачър",
"settingsTab": "Настройки"
},
"homeView": {
"refreshSuccess": "Успешно обновяване",
"widgetTitle": "Табло за управление",
"updatesSubtitle": "Актуализации",
"patchedSubtitle": "Модифицирани приложения",
"changeLaterSubtitle": "Можете да промените това в настройките на по-късен етап.",
"noInstallations": "Няма инсталирани модифицирани приложения",
"installUpdate": "Продължете към инсталирането на актуализациите?",
"updateChangelogTitle": "Списък с промени",
"downloadingMessage": "Изтегляне на актуализация...",
"downloadedMessage": "Актуализацията е изтеглена",
"installingMessage": "Инсталиране на актуализация...",
"errorDownloadMessage": "Свалянето на актуализацията не беше успешно",
"errorInstallMessage": "Инсталирането на актуализацията не беше успешно",
"noConnection": "Няма връзка с интернет",
"updatesDisabled": "Актуализацията на модифицирани приложения в момента не работи. Модифицирайте приложението наново."
},
"applicationItem": {
"infoButton": "Информация"
},
"latestCommitCard": {
"loadingLabel": "Зареждане...",
"timeagoLabel": "Преди ${time}",
"patcherLabel": "Модификатор: ",
"managerLabel": "Мениджър: ",
"updateButton": "Обнови ReVanced Manager"
},
"patcherView": {
"widgetTitle": "Модификатор",
"patchButton": "Модифицирайте"
},
"appSelectorCard": {
"widgetTitle": "Изберете приложение",
"widgetTitleSelected": "Избрани приложения",
"noAppsLabel": "Няма намерени приложения",
"currentVersion": "Текуща",
"suggestedVersion": "Препоръчана"
},
"patchSelectorCard": {
"widgetTitle": "Изберете модификации",
"widgetTitleSelected": "Избрани модификации",
"widgetSubtitle": "Първо изберете приложение",
"widgetEmptySubtitle": "Няма избрани модификации"
},
"socialMediaCard": {
"widgetTitle": "Социални мрежи",
"widgetSubtitle": "Открийте ни онлайн!"
},
"appSelectorView": {
"storageButton": "Хранилище",
"selectFromStorageButton": "Избери от хранилище",
"errorMessage": "Избраното приложение не може да се използва",
"downloadToast": "Функцията за изтегляне все още не е налична",
"featureNotAvailable": "Функцията не е внедрена"
},
"patchesSelectorView": {
"viewTitle": "Изберете модификации",
"searchBarHint": "Търсене на модификации",
"universalPatches": "Универсални модификации",
"newPatches": "Нови модификации",
"patches": "Модификации",
"doneButton": "Готово",
"defaultTooltip": "Изберете всички модификации по подразбиране",
"noneTooltip": "Отмяна на всички модификации",
"noPatchesFound": "Няма налични модификации за избраното приложение"
},
"patchOptionsView": {
"customValue": "Стойност по избор",
"saveOptions": "Запази",
"addOptions": "Добави опции",
"deselectPatch": "Отмяна на всички модификации",
"selectFolder": "Изберете папка"
},
"patchItem": {
"unsupportedDialogText": "Изборът на тази модификация може да доведе до грешки.\n\nВерсия: ${packageVersion}\nПоддържани версии: ${supportedVersions}"
},
"installerView": {
"widgetTitle": "Инсталатор",
"installButton": "Инсталиране",
"installRootType": "Монтирай",
"installNonRootType": "Нормален",
"openButton": "Отвори",
"shareButton": "Сподели файла",
"notificationTitle": "ReVanced Мениджър модифицира",
"notificationText": "Натиснете за да се върнете при инсталатора",
"noExit": "Инсталаторът все още работи, не може да излезе..."
},
"settingsView": {
"widgetTitle": "Настройки",
"appearanceSectionTitle": "Облик",
"teamSectionTitle": "Екип",
"debugSectionTitle": "Отстраняване на грешки",
"advancedSectionTitle": "Разширени",
"exportSectionTitle": "Импортиране и експортиране",
"themeModeLabel": "Тема на приложението",
"systemThemeLabel": "Система",
"lightThemeLabel": "Светъл",
"darkThemeLabel": "Тъмен режим",
"dynamicThemeLabel": "Материална Тема",
"dynamicThemeHint": "Насладете се на преживяване по-близо до устройството си",
"languageLabel": "Език",
"englishOption": "Английски",
"sourcesIntegrationsLabel": "Източник на интеграциите",
"sourcesResetDialogTitle": "Нулиране",
"sourcesResetDialogText": "Искате ли да възстановите източниците до стойностите им по подразбиране?",
"apiURLLabel": "API линк",
"selectApiURL": "API линк",
"orgPatchesLabel": "Организация на модификациите",
"sourcesPatchesLabel": "Източник на модификациите",
"orgIntegrationsLabel": "Организация на интеграциите",
"contributorsLabel": "Хора, които допринесоха",
"contributorsHint": "Списък с хората, допринесли за ReVanced",
"logsLabel": "Сподели логовете",
"universalPatchesLabel": "Покажи универсални модификации",
"aboutLabel": "Относно",
"snackbarMessage": "Копирано",
"restartAppForChanges": "Рестартирайте приложението, за да се приложат промените",
"deleteTempDirLabel": "Изтриване на временни файлове",
"deleteTempDirHint": "Изтриване на неизползвани временни файлове",
"deletedTempDir": "Временните файлове са изтрити",
"exportedPatches": "Избраните модификации са експортирани",
"noExportFileFound": "Няма избрани модификации за експортиране",
"importPatchesLabel": "Импортиране на избраните модификации",
"importPatchesHint": "Импортиране на избраните модификации от JSON файл",
"importedPatches": "Избраните модификации са импортирани",
"deletedLogs": "Логовете са изтрити",
"exportKeystoreLabel": "Експортирай Keystore-а",
"exportedKeystore": "Keystore беше експортиран",
"noKeystoreExportFileFound": "Няма Keystore за експортиране",
"importKeystoreLabel": "Импортирай Keystore",
"importedKeystore": "Keystorе е импортиран",
"jsonSelectorErrorMessage": "Избраният JSON файл не може да се изплозва"
},
"appInfoView": {
"widgetTitle": "Информация за приложението",
"openButton": "Отвори",
"uninstallButton": "Деинсталирай",
"rootDialogTitle": "Грешка",
"rootDialogText": "Приложението е инсталирано с superuser разрешения, но в момента ReVanced Manager няма разрешения. Моля, първо дайте superuser разрешения.",
"packageNameLabel": "Име на пакета",
"installTypeLabel": "Тип инсталация",
"patchedDateLabel": "Дата на модификацията",
"appliedPatchesLabel": "Приложени модификации",
"patchedDateHint": "на ${date} в ${time}",
"appliedPatchesHint": "${quantity} приложени модификации",
"updateNotImplemented": "Тази функция все още не е внедрена"
},
"contributorsView": {
"widgetTitle": "Хора, които допринесоха"
},
"installErrorDialog": {}
}

View File

@ -1,297 +0,0 @@
{
"okButton": "ঠিক আছে",
"cancelButton": "বাতিল",
"dismissButton": "বাতিল করুন",
"quitButton": "কাটুন",
"updateButton": "আপডেট",
"enabledLabel": "সক্রিয় রয়েছে",
"disabledLabel": "নিষ্ক্রিয় হয়েছে",
"installed": "ইনস্টলকৃত: ${version}",
"suggested": "প্রস্তাবিত: ${version}",
"yesButton": "হ্যাঁ",
"noButton": "না",
"warning": "সতর্কতা",
"options": "বিকল্পসমূহ",
"notice": "বিজ্ঞপ্তি",
"noShowAgain": "পুনরায় দেখাবেন না",
"add": "যুক্ত করুন",
"remove": "অপসারণ করুন",
"showChangelogButton": "চেঞ্জলগ দেখান",
"showUpdateButton": "আপডেট দেখান",
"navigationView": {
"dashboardTab": "ড্যাশবোর্ড",
"patcherTab": "প্যাচার",
"settingsTab": "সেটিংস"
},
"homeView": {
"refreshSuccess": "সফলভাবে রিফ্রেশ করা হয়েছে",
"widgetTitle": "ড্যাশবোর্ড",
"updatesSubtitle": "আপডেটসমূহ",
"patchedSubtitle": "প্যাচড অ্যাপ্লিকেশনগুলো",
"changeLaterSubtitle": "পরবর্তীতে আপনি এটি সেটিং থেকে পরিবর্তন করতে পারবেন।",
"noUpdates": "কোন আপডেট নেই",
"WIP": "কাজ হচ্ছে...",
"noInstallations": "কোন প্যাচড অ্যাপ্লিকেশন ইনস্টল করা হয়নি",
"installUpdate": "আপডেট ইনস্টল করতে এগিয়ে যেতে চান?",
"updateSheetTitle": "ReVanced Manager আপডেট করুন",
"updateDialogTitle": "নতুন আপডেট পাওয়া যাচ্ছে",
"updatePatchesSheetTitle": "ReVanced প্যাচসমূহ আপডেট করুন",
"updateChangelogTitle": "পরিবর্তনসমূহ",
"updateDialogText": "${file} এর জন্য নতুন আপডেট পাওয়া যাচ্ছে।\n\nবর্তমানে ইনস্টল করা সংস্করণ ${version}।",
"downloadConsentDialogTitle": "প্রয়োজনীয় ফাইল ডাউনলোড করবেন?",
"downloadConsentDialogText": "ReVanced Manager সঠিকভাবে কাজ করার জন্য কিছু প্রয়োজনীয় ফাইল ডাউনলোড করতে হবে।",
"downloadConsentDialogText2": "এটি আপনাকে যুক্ত করবে ${url}.",
"checkUpdateDialogTitle": "আপডেটএর জন্য পরীক্ষা করবেন?",
"checkUpdateDialogText": "আপনি কি চান ReVanced Manager আপডেটের জন্য স্বয়ংক্রিয়ভাবে যাচাই করুক?",
"notificationTitle": "আপডেট ডাউনলোড হয়েছে",
"notificationText": "আপডেট ইনস্টল করতে চাপ দিন",
"downloadingMessage": "আপডেট ডাউনলোড হচ্ছে...",
"downloadedMessage": "আপডেট ডাউনলোড করা হয়েছে",
"installingMessage": "আপডেট ইনস্টল করা হচ্ছে...",
"errorDownloadMessage": "আপডেট ডাউনলোড করতে সফল হয় নি",
"errorInstallMessage": "আপডেট ইনস্টল করতে সফল হয় নি",
"noConnection": "কোনো ইন্টারনেট সংযোগ নেই",
"updatesDisabled": "প্যাচ করা অ্যাপকে আপডেট করা বর্তমানে সম্ভব নয়। অ্যাপটি পুনরায় প্যাচ করুন।"
},
"applicationItem": {
"infoButton": "তথ্য"
},
"latestCommitCard": {
"loadingLabel": "লোড হচ্ছে...",
"timeagoLabel": "${time} আগে",
"patcherLabel": "প্যাচার: ",
"managerLabel": "Manager: ",
"updateButton": "Manager আপডেট করুন"
},
"patcherView": {
"widgetTitle": "প্যাচার",
"patchButton": "প্যাচ",
"armv7WarningDialogText": "ARMv7 ডিভাইসগুলোতে প্যাচিং এখনো সমর্থিত নয় এবং সফল নাও হতে পারে। যেকোন ভাবে এগিয়ে যেতে চান?",
"removedPatchesWarningDialogText": "আপনি এর আগে যখন ব্যবহার করেছিলেন তারপর এই প্যাচগুলো অপসারণ করা হয়।\n\n${patches}\n\nযেকোন ভাবে এগিয়ে যেতে চান?",
"requiredOptionDialogText": "কিছু প্যাচ অপশন সেট করতে হবে।"
},
"appSelectorCard": {
"widgetTitle": "একটি অ্যাপ নির্বাচন করুন",
"widgetTitleSelected": "নির্বাচিত অ্যাপ",
"widgetSubtitle": "কোন অ্যাপ নির্বাচন করা হয়নি",
"noAppsLabel": "কোন অ্যাপ্লিকেশন পাওয়া যায়নি",
"currentVersion": "বর্তমান",
"suggestedVersion": "প্রস্তাবিত",
"anyVersion": "যেকোন সংস্করণ"
},
"patchSelectorCard": {
"widgetTitle": "প্যাচসমূহ নির্বাচন করুন",
"widgetTitleSelected": "নির্বাচিত প্যাচসমূহ",
"widgetSubtitle": "প্রথমে একটি অ্যাপ্লিকেশন নির্বাচন করুন",
"widgetEmptySubtitle": "কোন প্যাচ নির্বাচন করা হয়নি"
},
"socialMediaCard": {
"widgetTitle": "সামাজিক যোগাযোগ মাধ্যম",
"widgetSubtitle": "আমরা অনলাইনে!"
},
"appSelectorView": {
"viewTitle": "একটি অ্যাপ নির্বাচন করুন",
"searchBarHint": "অ্যাপ খুঁজুন",
"storageButton": "স্টোরেজ",
"selectFromStorageButton": "স্টোরেজ থেকে নির্বাচন করুন",
"errorMessage": "নির্বাচিত অ্যাপ্লিকেশনটি ব্যবহার করা সম্ভব নয়",
"downloadToast": "ডাউনলোড ফাংশন এখনো উপলব্ধ হয়নি",
"requireSuggestedAppVersionDialogText": "আপনার নির্বাচিত অ্যাপ সংস্করণটি প্রস্তাবিত অ্যাপ সংস্করণের সাথে মিলছে না এতে অনাকাঙ্খিত ত্রুটি ঘটতে পারে। অনুগ্রহপূর্বক প্রস্তাবিত অ্যাপ সংস্করণ ব্যবহার করুন।\n\nনির্বাচিত সংস্করণ: ${selected}\nপ্রস্তাবিত সংসকরণ: ${suggested}\n\nযেকোন ভাবে এগিয়ে যেতে চাইলে, সেটিং থেকে \"প্রস্তাবিত অ্যঅপ সংস্করণ প্রয়োজন\" সেটিংটি নিষ্ক্রিয় করুন।",
"featureNotAvailable": "ফিচার সম্পাদন করা হয়নি",
"featureNotAvailableText": "এই অ্যাপটি একটি খন্ডিত APK এবং শুধুমাত্র রুট পারমিশন এর উপর ভিত্তি করে এটি প্যাচ ও ইনস্টল করা যেতে পারে। যাইহোক, আপনি স্টোরেজ থেকে সম্পূর্ণ APK নির্বাচন করে অ্যাপ প্যাচ ও ইনস্টল করতে পারেন।"
},
"patchesSelectorView": {
"viewTitle": "প্যাচ নির্বাচন করুন",
"searchBarHint": "প্যাচ খুঁজুন",
"universalPatches": "বৈশ্বিক প্যাচসমূহ",
"newPatches": "নতুন প্যাচসমূহ",
"patches": "প্যাচসমূহ",
"doneButton": "সম্পন্ন হয়েছে",
"defaultChip": "পূর্ব-নির্ধারিত",
"defaultTooltip": "সকল পূর্ব-নির্ধারিত প্যাচ নির্বাচন করুন",
"noneChip": "কোনটি নয়",
"noneTooltip": "সকল প্যাচ অনির্বাচন করুন",
"loadPatchesSelection": "নির্বাচিত প্যাচ লোড করুন",
"noSavedPatches": "নির্বাচিত অ্যাপের জন্য কোন সংরক্ষিত প্যাচ নেই।\nবর্তমানে নির্বাচিত প্যাচ সংরক্ষণ করতে সম্পন্ন হয়েছে চাপুন।",
"noPatchesFound": "নির্বাচিত অ্যাপের জন্য কোনো প্যাচ পাওয়া যায়নি",
"setRequiredOption": "কিচু প্যাচের জন্য অপশন সেট করতে হবে:\n\n${patches}\n\nএগিয়ে যাওয়ার পূর্বে অনুগ্রহপূর্বক সেগুলো সেট করুন।"
},
"patchOptionsView": {
"customValue": "কাস্টম ভ্যালু",
"resetOptionsTooltip": "প্যাচ অপশন আবার সেট করুন",
"viewTitle": "প্যাচ অপশন",
"saveOptions": "সংরক্ষণ করুন",
"addOptions": "অপশন যুক্ত করুন",
"deselectPatch": "প্যাচ অনির্বাচন করুন",
"tooltip": "আরও ইনপুট অপশন",
"selectFilePath": "ফাইলের স্থান নির্বাচন করুন",
"selectFolder": "ফোল্ডার নির্বাচন করুন",
"selectOption": "অপশন নির্বাচন করুন",
"requiredOption": "এই অপশনটি আবশ্যক",
"unsupportedOption": "এই অপশনসটি অসমর্থিত",
"requiredOptionNull": "এই অপশনগুলো সেট করতে হবে:\n\n${options}"
},
"patchItem": {
"unsupportedDialogText": "এই প্যাচটি নির্বাচন করলে প্যাচিং ত্রুটিপূর্ণ হতে পারে।\n\nঅ্যাপ সংস্করণ: ${packageVersion}\nসমর্থিত সংস্করণ:\n${supportedVersions}",
"unsupportedPatchVersion": "এই অ্যাপ সংস্করণের জন্য প্যাচ সমর্থিত নয়।",
"unsupportedRequiredOption": "এই প্যাচটিতে একটি প্রয়োজনীয় অপশন রয়েছে যা এই অ্যাপটি সমর্থন করে না",
"patchesChangeWarningDialogText": "পূর্ব নির্ধারিত নির্বাচিত প্যাচ এবং অপশন ব্যবহার করার প্রস্তাব রাখে। এগুলো পরিবর্তন করার মাধ্যমে অনাকাঙ্খিত ইস্যু হতে পারে।\n\nপ্যাচ নির্বাচন পরিবর্তন করার পূর্বে আপনাকে অবশ্যই সেটিং থেকে \"প্যাচ নির্বাচন পরিবর্তন করার অনুমতি\" সচল করতে হবে।",
"patchesChangeWarningDialogButton": "পূর্বনির্ধারিত নির্বাচন ব্যবহার করুন"
},
"installerView": {
"widgetTitle": "ইনস্টলার",
"installType": "ইনস্টল করার ধরণ নির্বাচন করুন",
"installTypeDescription": "যে প্রক্রিয়ায় ইনস্টল করা এগিয়ে নিতে চান তা নির্বাচন করুন।",
"installButton": "ইনস্টল করুন",
"installRootType": "মাউন্ট",
"installNonRootType": "সাধারণ",
"warning": "অনাকাঙ্ক্ষিত ইস্যু এড়াতে প্যাচকৃত অ্যাপের স্বয়ংক্রিয় আপডেট নিষ্ক্রিয় করুন।",
"pressBackAgain": "বাতিল করতে ব্যাক প্রেস করুন",
"openButton": "অ্যাপ খুলুন",
"shareButton": "ফাইল শেয়ার করুন",
"notificationTitle": "ReVanced Manager প্যাচ করছে",
"notificationText": "ইনস্টলারে ফিরে যেতে আলতো চাপুন",
"exportApkButtonTooltip": "প্যাচ হওয়া APK রপ্তানি করুন",
"exportLogButtonTooltip": "লগ রপ্তানি করুন",
"screenshotDetected": "একটি স্ক্রিনশট শনাক্ত করা হয়েছে। আপনি যদি লগ শেয়ার করার চেষ্টা করে থাকেন, অনুগ্রপূর্বক এর পরিবর্তে টেক্সট শেয়ার করুন।\n\nক্লিপবোর্ডে লগ কপি করতে চান?",
"copiedToClipboard": "ক্লিপবোর্ডে লগ কপি করা হয়েছে",
"noExit": "ইনস্টলার এখনো চলমান, বের হওয়া সম্ভব নয়..."
},
"settingsView": {
"widgetTitle": "সেটিংস",
"appearanceSectionTitle": "রূপ",
"teamSectionTitle": "দল",
"debugSectionTitle": "ডিবাগিং",
"advancedSectionTitle": "উন্নত",
"exportSectionTitle": "আমদানি ও রপ্তানি",
"dataSectionTitle": "তথ্যের উৎস",
"themeModeLabel": "অ্যাপের থীম",
"systemThemeLabel": "সিস্টেম",
"lightThemeLabel": "উজ্জ্বল",
"darkThemeLabel": "অন্ধকার মোড",
"dynamicThemeLabel": "ম্যাটেরিয়াল ইউ",
"dynamicThemeHint": "আপনার ডিভাইসের লুকের কাছাকাছি অভিজ্ঞতা নিন",
"languageLabel": "ভাষা",
"languageUpdated": "ভাষা হালনাগাদ করা হয়েছে",
"englishOption": "ইংরেজি",
"sourcesLabel": "বিকল্প উৎস",
"sourcesLabelHint": "ReVanced প্যাচ ও ReVanced ইন্ট্রিগ্রেশনের জন্য বিকল্প উৎস কনফিগার করুন",
"sourcesIntegrationsLabel": "ইন্ট্রিগেশনের উৎস",
"useAlternativeSources": "বিকল্প উৎস ব্যবহার করুন",
"useAlternativeSourcesHint": "ReVanced প্যাচ ও ReVanced ইন্ট্রিগ্রেশনের জন্য API এর পরিবর্তে বিকল্প উৎস ব্যবহার করুন",
"sourcesResetDialogTitle": "পুনরায় সেট করুন",
"sourcesResetDialogText": "আপনি কি নিশ্চিতভাবে আপনার উৎসগুলোকে পূর্বনির্ধারিত উৎসে ফিরিয়ে নিতে চান?",
"apiURLResetDialogText": "আপনি কি নিশ্চিতভাবে আপনার API URL কে তার মূল ভ্যালুতে পুনরায় সেট করতে চান?",
"sourcesUpdateNote": "বি:দ্র: এটি স্বয়ংক্রিয়ভাবে বিকল্প উৎস থেকে ReVanced প্যাচ ও ReVanced ইন্ট্রিগ্রেশন ডাউনলোড করবে।\n\nএটি আপনাকে বিকল্প উৎসের সাথে সংযুক্ত করবে।",
"apiURLLabel": "API URL",
"apiURLHint": "ReVanced Manager এর API URL কনফিগার করুন",
"selectApiURL": "API URL",
"orgPatchesLabel": "প্যাচ এর উদ্ভাবক",
"sourcesPatchesLabel": "প্যাচ এর উৎস",
"orgIntegrationsLabel": "ইন্ট্রিগেশনের উদ্ভাবক",
"contributorsLabel": "অবদানকারীগণ",
"contributorsHint": "ReVanced-এ অবদানকারীদের তালিকা",
"logsLabel": "লগ শেয়ার করুন",
"logsHint": "ReVanced Manager লগ শেয়ার করুন",
"enablePatchesSelectionLabel": "প্যাচ নির্বাচন পরিবর্তন করার অনুমতি",
"enablePatchesSelectionHint": "প্যাচ নির্বাচন করা বা নির্বাচন বাতিল করা আটকাবে না",
"enablePatchesSelectionWarningText": "নির্বাচিত প্যাচগুলো পরিবর্তন করলে অনাকাঙ্খিত ত্রুটি ঘটতে পারে।\n\nযেকোন ভাবে এগিয়ে যেতে চান?",
"disablePatchesSelectionWarningText": "আপনি নির্বাচিত প্যাচ পরিবর্তনকে নিষ্ক্রিয় করতে যাচ্ছেন।\nপূর্বনির্ধারিত নির্বাচিত প্যাচসমূহ ফিরিয়ে আনা হবে।\n\nযেকোন ভাবে নিষ্ক্রিয় করতে চান?",
"autoUpdatePatchesLabel": "প্যাচসমূহ স্বয়ংক্রিয়ভাবে আপডেট করুন",
"autoUpdatePatchesHint": "প্যাচসমূহ স্বয়ংক্রিয়ভাবে সর্বশেষ সংস্করণে আপডেট হবে",
"showUpdateDialogLabel": "হালনাগাদ ডায়ালগ দেখান",
"showUpdateDialogHint": "যখন হালনাগাদ উপলব্ধ থাকবে তখন একটি ডায়ালগ দেখান",
"universalPatchesLabel": "বৈশ্বিক প্যাচসমূহ দেখান",
"universalPatchesHint": "সকল অ্যাপ এবং বৈশ্বিক প্যাচসমূহ দেখায় (অ্যাপ লিস্ট দেখানো একটু ধীর হতে পারে)",
"versionCompatibilityCheckLabel": "সংস্করণ সামঞ্জস্যতা পরীক্ষা করা",
"versionCompatibilityCheckHint": "নির্বাচিত অ্যাপ সংস্করণের সাথে সামঞ্জস্যপূর্ণ নয় এমন প্যাচ নির্বাচন করা আটকায়",
"requireSuggestedAppVersionLabel": "প্রস্তাবিত অ্যাপ সংস্করণ প্রয়োজন",
"requireSuggestedAppVersionHint": "প্রস্তাবিত নয় এমন অ্যাপ সংস্করণ নির্বাচন করা আটকায়",
"requireSuggestedAppVersionDialogText": "অপ্রস্তাবিত সংস্করণের অ্যাপ নির্বাচন করার ফলে অজানা ইস্যু হতে পারে।\n\nআপনি কি যেকোন ভাবে এগিয়ে যেতে চান?",
"aboutLabel": "সম্পর্কিত",
"snackbarMessage": "ক্লিপবোর্ডে কপি করা হয়েছে",
"restartAppForChanges": "পরিবর্তনগুলি প্রয়োগ করতে অ্যাপটি পুনরায় চালু করুন",
"deleteTempDirLabel": "অস্থায়ী ফাইল মুছুন",
"deleteTempDirHint": "অব্যবহৃত অস্থায়ী ফাইল মুছুন",
"deletedTempDir": "অস্থায়ী ফাইল মুছে ফেলা হয়েছে",
"exportPatchesLabel": "নির্বাচিত প্যাচ রপ্তানি করুন",
"exportPatchesHint": "নির্বাচিত প্যাচ একটি JSON ফাইলে রপ্তানি করুন",
"exportedPatches": "নির্বাচিত প্যাচ রপ্তানি করা হয়েছে",
"noExportFileFound": "রপ্তানি করার জন্য কোন প্যাচ নির্বাচন করা হয়নি",
"importPatchesLabel": "নির্বাচিত প্যাচ আমদানি করুন",
"importPatchesHint": "একটি JOSN ফাইল থেকে প্যাচ আমদানি করুন",
"importedPatches": "নির্বাচিত প্যাচ আমদানি করা হয়েছে",
"resetStoredPatchesLabel": "নির্বাচিত প্যাচ আবার সেট করুন",
"resetStoredPatchesHint": "সংরক্ষিত নির্বাচিত প্যাচ আবার সেট করুন",
"resetStoredPatchesDialogTitle": "নির্বাচিত প্যাচ আবার সেট করবেন?",
"resetStoredPatchesDialogText": "পূর্বনির্ধারিত নির্বাচিত প্যাচ ফিরিয়ে আনা হবে।",
"resetStoredPatches": "নির্বাচিত প্যাচ আবার সেট করা হয়েছে",
"resetStoredOptionsLabel": "প্যাচ অপশন আবার সেট করুন",
"resetStoredOptionsHint": "সকল প্যাচ অপশন আবার সেট করুন",
"resetStoredOptionsDialogTitle": "প্যাচ অপশন আবার সেট করবেন?",
"resetStoredOptionsDialogText": "প্যাচ অপশন আবার সেট করলে সকল সংরক্ষিত প্যাচ অপশন অপসারণ করা হবে।",
"resetStoredOptions": "অপশন আবার সেট করা হয়েছে",
"deleteLogsLabel": "লগ পরিস্কার করুন",
"deleteLogsHint": "ReVanced Manager এর সংগৃহীত লগ মুছুন",
"deletedLogs": "লগ মুছে ফেলা হয়েছে",
"regenerateKeystoreLabel": "কীস্টোর পুনরায় তৈরি করুন",
"regenerateKeystoreHint": "অ্যাপ সাইন করতে ব্যবহৃত কীস্টোর পুনরায় তৈরি করুন",
"regenerateKeystoreDialogTitle": "কীস্টোর পুনরায় তৈরি করবেন?",
"regenerateKeystoreDialogText": "পুরোনো কীস্টোর দিয়ে সাইন করা প্যাচড অ্যাপগুলো আপডেট করতে পারবেন না।",
"regeneratedKeystore": "কীস্টোর আবার তৈরি করা হয়েছে",
"exportKeystoreLabel": "কীস্টোর রপ্তানি করুন",
"exportKeystoreHint": "অ্যাপ সাইন করতে ব্যবহৃত কীস্টোর রপ্তানি করুন",
"exportedKeystore": "কীস্টোর এক্সপোর্ট করা হয়েছে",
"noKeystoreExportFileFound": "এক্সপোর্ট করার জন্য কোন কীস্টোর নেই",
"importKeystoreLabel": "কীস্টোর ইমপোর্ট করুন",
"importKeystoreHint": "অ্যাপ সাইন করতে ব্যবহৃত কীস্টোর আমদানি করুন",
"importedKeystore": "কীস্টোর আমদানি করা হয়েছে",
"selectKeystorePassword": "কীস্টোরটির পাসওয়ার্ড",
"selectKeystorePasswordHint": "অ্যাপ সাইন করতে ব্যবহৃত কীস্টোরের পাসওয়ার্ড নির্বাচন করুন",
"jsonSelectorErrorMessage": "নির্বাচিত JSON ফাইল ব্যবহার করা সম্ভব নয়",
"keystoreSelectorErrorMessage": "নির্বাচিত কীস্টোর ফাইল ব্যবহার করা সম্ভব নয়"
},
"appInfoView": {
"widgetTitle": "অ্যাপের তথ্য",
"openButton": "খুলুন",
"uninstallButton": "আনইন্সটল করুন",
"unmountButton": "আনমাউন্ট",
"rootDialogTitle": "ত্রুটি দেখা দিয়েছে",
"unmountDialogText": "আপনি কি অ্যাপটি আনমাউন্ট করার ব্যপারে নিশ্চিত?",
"uninstallDialogText": "আপনি কি অ্যাপটি আনইনস্টল করার ব্যপারে নিশ্চিত?",
"rootDialogText": "অ্যাপটি Superuser অনুমতি নিয়ে ইনস্টল করা হয়েছে, কিন্তু বর্তমানে ReVanced Manager এর Superuser অনুমতি নেই। অনুগ্রহপূর্বক প্রথমে Superuser অনুমতি দিন।",
"packageNameLabel": "প্যাকেজের নাম",
"installTypeLabel": "ইনস্টলের ধরন",
"mountTypeLabel": "মাউন্ট",
"regularTypeLabel": "সাধারণ",
"patchedDateLabel": "প্যাচ করার তারিখ",
"appliedPatchesLabel": "ব্যবহৃত প্যাচ",
"patchedDateHint": "${date} তারিখে ${time} টায়",
"appliedPatchesHint": "${quantity} টি প্যাচ ব্যবহৃত",
"updateNotImplemented": "এই ফিচারটি এখনো কার্যকর করা হয়নি"
},
"contributorsView": {
"widgetTitle": "অবদানকারীগণ",
"patcherContributors": "ReVanced প্যাচার",
"patchesContributors": "ReVanced প্যাচসমূহ",
"integrationsContributors": "ReVanced ইন্ট্রিগ্রেশন",
"cliContributors": "ReVanced CLI",
"managerContributors": "ReVanced Manager"
},
"installErrorDialog": {
"mount_version_mismatch": "সংস্করণ মেলেনি",
"mount_no_root": "রুট অ্যাক্সেস নেই",
"mount_missing_installation": "ইনস্টল পাওয়া যায়নি",
"status_failure_blocked": "ইনস্টল আটকানো হয়েছে",
"install_failed_verification_failure": "যাচাইকরণ ব্যর্থ হয়েছে",
"status_failure_invalid": "ইনস্টল সঠিক নয়",
"install_failed_version_downgrade": "ডাউনগ্রেড সম্ভব নয়",
"status_failure_conflict": "ইনস্টল কনফ্লিক্ট হচ্ছে",
"status_failure_storage": "ইনস্টলেশন স্টোরেজ সমস্যা",
"status_failure_incompatible": "ইনস্টলেশন অনুপযুক্ত",
"status_failure_timeout": "ইনস্টলেশন সময় পার হয়েছে",
"status_unknown": "ইনস্টলেশন ব্যর্থ হয়েছে",
"mount_version_mismatch_description": "প্যাচ অ্যাপ ও ইনস্টলকৃত অ্যাপের সংস্করণ ভিন্ন হওয়ার কারণে ইনস্টলেশন ব্যর্থ হয়েছে।\n\nআপনি যে সংস্করণটি মাউন্ট করতে চাচ্ছেন তা আগে ইনস্টল করুন অতঃপর আবার চেষ্টা করুন।",
"mount_no_root_description": "রুট প্রবেশাধিকারের অনুমতি না দেয়ার কারণে ইনস্টলেশন ব্যর্থ হয়েছে।\n\nReVanced Manager এর রুট প্রবেশাধিকার অনুমতি দিন এবং আবার চেষ্টা করুন।"
}
}

View File

@ -1,19 +0,0 @@
{
"navigationView": {},
"homeView": {},
"applicationItem": {},
"latestCommitCard": {},
"patcherView": {},
"appSelectorCard": {},
"patchSelectorCard": {},
"socialMediaCard": {},
"appSelectorView": {},
"patchesSelectorView": {},
"patchOptionsView": {},
"patchItem": {},
"installerView": {},
"settingsView": {},
"appInfoView": {},
"contributorsView": {},
"installErrorDialog": {}
}

View File

@ -1,227 +0,0 @@
{
"okButton": "OK",
"cancelButton": "Zrušit",
"dismissButton": "Zrušit",
"quitButton": "Odejít",
"updateButton": "Aktualizovat",
"enabledLabel": "Zapnuto",
"disabledLabel": "Vypnuto",
"installed": "Nainstalováno: ${version}",
"suggested": "Doporučeno: ${version}",
"yesButton": "Ano",
"noButton": "Ne",
"warning": "Varování",
"options": "Možnosti",
"notice": "Upozornění",
"noShowAgain": "Již nezobrazovat",
"add": "Přidat",
"remove": "Odebrat",
"showChangelogButton": "Zobrazit seznam změn",
"showUpdateButton": "Zobrazit aktualizaci",
"navigationView": {
"dashboardTab": "Řídící panel",
"patcherTab": "Záplatovač",
"settingsTab": "Nastavení"
},
"homeView": {
"refreshSuccess": "Úspěšně obnoveno",
"widgetTitle": "Řídící panel",
"updatesSubtitle": "Aktualizace",
"patchedSubtitle": "Záplatované aplikace",
"changeLaterSubtitle": "Tuto možnost můžete změnit později v nastavení.",
"noUpdates": "Nejsou dostupné žádné aktualizace",
"WIP": "Probíhající přípravy...",
"noInstallations": "Nejsou nainstalovány žádné záplatované aplikace",
"installUpdate": "Pokračovat v instalaci aktualizace?",
"updateSheetTitle": "Aktualizovat ReVanced Manager",
"updateDialogTitle": "Nová aktualizace k dispozici",
"updatePatchesSheetTitle": "Aktualizovat záplaty ReVanced",
"updateChangelogTitle": "Seznam změn",
"updateDialogText": "Nová aktualizace je k dispozici pro ${file}.\n\nAktuálně nainstalovaná verze je ${version}.",
"downloadConsentDialogTitle": "Stáhnout potřebné soubory?",
"downloadConsentDialogText": "ReVanced Manager potřebuje stáhnout potřebné soubory, aby fungoval správně.",
"downloadConsentDialogText2": "Tímto se připojíte k ${url}.",
"checkUpdateDialogTitle": "Zkontrolovat aktualizace?",
"checkUpdateDialogText": "Přejete si, aby ReVanced Manager automaticky kontroloval aktualizace?",
"notificationTitle": "Aktualizace byla stažena",
"notificationText": "Klepnutím nainstalujte aktualizaci",
"downloadingMessage": "Stahování aktualizace...",
"downloadedMessage": "Aktualizace byla stažena",
"installingMessage": "Instalace aktualizace...",
"errorDownloadMessage": "Nelze stáhnout aktualizaci",
"errorInstallMessage": "Aktualizace se nepodařilo nainstalovat",
"noConnection": "Žádné připojení k internetu",
"updatesDisabled": "Aktualizace záplatované aplikace je momentálně zakázána. Znovu záplatujte aplikaci."
},
"applicationItem": {
"infoButton": "Info"
},
"latestCommitCard": {
"loadingLabel": "Načítání...",
"timeagoLabel": "před ${time}",
"patcherLabel": "Záplatovač: ",
"managerLabel": "Správce: ",
"updateButton": "Správce aktualizací"
},
"patcherView": {
"widgetTitle": "Záplatovač",
"patchButton": "Záplatovat",
"armv7WarningDialogText": "Záplatování na zařízení ARMv7 ještě není podporováno a může neuspět. Přejete si 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?",
"requiredOptionDialogText": "Je třeba nastavit některé možnosti záplat."
},
"appSelectorCard": {
"widgetTitle": "Vybrat aplikaci",
"widgetTitleSelected": "Vybraná aplikace",
"widgetSubtitle": "Není vybrána žádná aplikace",
"noAppsLabel": "Nebyly nalezeny žádné aplikace",
"currentVersion": "Aktuální",
"suggestedVersion": "Navrženo",
"anyVersion": "Jakákoli verze"
},
"patchSelectorCard": {
"widgetTitle": "Vybrat patche",
"widgetTitleSelected": "Vybrané patche",
"widgetSubtitle": "Nejprve vyberte aplikaci",
"widgetEmptySubtitle": "Nejsou vybrány žádné patche"
},
"socialMediaCard": {
"widgetTitle": "Sociální sítě",
"widgetSubtitle": "Jsme online!"
},
"appSelectorView": {
"viewTitle": "Vyberte aplikaci",
"searchBarHint": "Vyhledat aplikaci",
"storageButton": "Uložiště",
"selectFromStorageButton": "Vybrat z úložiště",
"errorMessage": "Vybranou aplikaci nelze použít",
"downloadToast": "Funkce stahování zatím není dostupná",
"requireSuggestedAppVersionDialogText": "Vybraná verze aplikace se neshoduje s navrhovanou verzí, což může vést k neočekávaným problémům. Prosím použijte navrhovanou verzi.\n\nVybraná verze: ${selected}\nNavrhovaná verze: ${suggested}\n\nChcete-li přesto pokračovat, zakažte v nastavení \"Vyžadovat navrhovanou verzi aplikace\".",
"featureNotAvailable": "Funkce není implementována"
},
"patchesSelectorView": {
"viewTitle": "Vybrat patche",
"searchBarHint": "Vyhledat patche",
"universalPatches": "Univerzální záplaty",
"newPatches": "Nové záplaty",
"patches": "Záplaty",
"doneButton": "Hotovo",
"defaultChip": "Výchozí",
"defaultTooltip": "Vybrat všechny výchozí patche",
"noneChip": "Žádné",
"noneTooltip": "Zrušit výběr všech patchů",
"loadPatchesSelection": "Načíst výběr záplat",
"noPatchesFound": "Pro vybranou aplikaci nebyly nalezeny žádné záplaty"
},
"patchOptionsView": {
"customValue": "Vlastní hodnota",
"resetOptionsTooltip": "Obnovit nastavení záplat",
"viewTitle": "Nastavení záplat",
"saveOptions": "Uložit",
"addOptions": "Přidat možnosti",
"deselectPatch": "Odznačit záplatu",
"tooltip": "Další možnosti vstupu",
"selectFilePath": "Zvolte cestu k souboru",
"selectFolder": "Vybrat složku",
"selectOption": "Vybrat možnost",
"requiredOption": "Tato možnost je vyžadována",
"unsupportedOption": "Tato možnost není podporována",
"requiredOptionNull": "Tyto možnosti musí být nastaveny:\n\n${options}"
},
"patchItem": {
"unsupportedDialogText": "Výběrem této záplaty může dojít k chybám.\n\nVerze aplikace: ${packageVersion}\nAktuálně podporované verze:\n${supportedVersions}",
"unsupportedPatchVersion": "Záplata není podporována touto verzí aplikace."
},
"installerView": {
"widgetTitle": "Instalátor",
"installType": "Zvolte instalační typ",
"installButton": "Instalovat",
"installNonRootType": "Běžný",
"openButton": "Otevřít",
"shareButton": "Sdílet soubor",
"notificationTitle": "ReVanced Manager patchuje",
"notificationText": "Klepnutím se vrátíte do instalátoru",
"screenshotDetected": "Byl zjištěn snímek obrazovky. Pokud se pokoušíte sdílet záznam, sdílejte prosím textovou kopii.\n\nKopírovat záznam do schránky?",
"copiedToClipboard": "Záznamy byly zkopírovány do schránky",
"noExit": "Instalační program je stále spuštěn, nelze ukončit..."
},
"settingsView": {
"widgetTitle": "Nastavení",
"appearanceSectionTitle": "Vzhled",
"teamSectionTitle": "Tým",
"advancedSectionTitle": "Pokročilé",
"exportSectionTitle": "Import a export",
"themeModeLabel": "Vzhled aplikace",
"systemThemeLabel": "Systém",
"lightThemeLabel": "Světlý",
"darkThemeLabel": "Tmavý motiv",
"dynamicThemeHint": "Vychutnejte si zážitek blíže k vašemu zařízení",
"languageLabel": "Jazyk",
"languageUpdated": "Jazyk aktualizován",
"englishOption": "Angličtina",
"sourcesIntegrationsLabel": "Zdroj integrace",
"sourcesResetDialogTitle": "Obnovit",
"orgPatchesLabel": "Organizace patchů",
"sourcesPatchesLabel": "Zdroj patchů",
"orgIntegrationsLabel": "Autor integrace",
"contributorsLabel": "Přispěvatelé",
"contributorsHint": "Seznam přispěvatelů ReVanced",
"logsLabel": "Sdílet záznamy",
"logsHint": "Sdílet záznamy Revanced Manageru",
"versionCompatibilityCheckLabel": "Kontrola kompatibility verzí",
"requireSuggestedAppVersionDialogText": "Vybrání aplikace s verzí, která není doporčena může způsobit nečekané problémy.\n\nChcete přesto pokračovat?",
"aboutLabel": "O aplikaci",
"snackbarMessage": "Zkopírováno do schránky",
"restartAppForChanges": "Pro aplikování změn restartuj aplikaci",
"deleteTempDirLabel": "Odstranit dočasné soubory",
"deleteTempDirHint": "Odstranit nepoužívané dočasné soubory",
"deletedTempDir": "Dočasné soubory byly smazány",
"resetStoredOptions": "Možnosti byly resetovány",
"deleteLogsLabel": "Vymazat záznamy",
"deleteLogsHint": "Odstranit shromážděné záznamy ReVanced Manageru",
"deletedLogs": "Záznamy byly smazány",
"exportKeystoreLabel": "Exportovat úložiště klíčů",
"exportedKeystore": "Úložiště klíčů exportováno",
"noKeystoreExportFileFound": "Žádný úložiště klíčů k exportu",
"importKeystoreLabel": "Importovat úložiště klíčů",
"importedKeystore": "Úložiště klíčů importováno",
"jsonSelectorErrorMessage": "Vybraný JSON soubor nelze použít"
},
"appInfoView": {
"widgetTitle": "Informace o aplikaci",
"openButton": "Otevřít",
"uninstallButton": "Odinstalovat",
"rootDialogTitle": "Chyba",
"rootDialogText": "Aplikace byla nainstalována s oprávněním superuser, ale aktuálně ReVanced Manager nemá žádná oprávnění.\nProsím nejprve udělte oprávnění superuser.",
"packageNameLabel": "Název balíčku",
"installTypeLabel": "Typ instalace",
"regularTypeLabel": "Běžný",
"patchedDateLabel": "Datum patchování",
"appliedPatchesLabel": "Použité patche",
"patchedDateHint": "${date} v ${time}",
"appliedPatchesHint": "${quantity} použité patche",
"updateNotImplemented": "Tato funkce ještě není implementována"
},
"contributorsView": {
"widgetTitle": "Přispěvatelé",
"integrationsContributors": "ReVanced Integrace",
"managerContributors": "ReVanced Manager"
},
"installErrorDialog": {
"mount_version_mismatch": "Verse neshodná",
"mount_missing_installation": "Instalace nebyla nalezena",
"status_failure_blocked": "Instalace blokovaná",
"install_failed_verification_failure": "Ověření selhalo",
"status_failure_invalid": "Instalace neplatná",
"status_failure_storage": "Instalace má problém s uložistěm",
"status_failure_timeout": "Instalaci vypršel čas",
"status_unknown": "Instalace selhala",
"mount_no_root_description": "Instalace selhala, protože oprávněni root nebyly udělené.\n\nDejte Revanced Manageru oprávnění root a zkuste znovu.",
"status_failure_storage_description": "Instalace selhala kvůli nedostatku místa v uložisti.\n\nUvolňete místo a zkuste znovu.",
"status_failure_incompatible_description": "Aplikace není kompatibilní s tímto zařízením.\n\nKontaktujte vývojáře aplikace a požádejte o podporu.",
"status_failure_blocked_description": "Instalace byla zablokována ${packageName}.\n\nUpravte nastavení zabezpečení a zkute to znovu.",
"install_failed_verification_failure_description": "Instalace se nezdařila kvůli problému s ověřováním.\n\nUpravte nastavení zabezpečení a zkuste to znovu.",
"install_failed_version_downgrade_description": "Instalace se nezdařila kvůli tomu, že již nainstalovaná verze je novější.\n\nOdinstalovat tuto aplikaci a zkusit znovu?",
"status_unknown_description": "Instalace se nezdařila z neznámých důvodů. Prosím zkuste to znovu."
}
}

View File

@ -1,205 +0,0 @@
{
"cancelButton": "Afbryd",
"quitButton": "Luk",
"updateButton": "Opdatér",
"installed": "Installeret: ${version}",
"suggested": "Foreslået: ${version}",
"yesButton": "Ja",
"noButton": "Nej",
"warning": "Advarsel",
"options": "Indstillinger",
"notice": "Bemærkning",
"noShowAgain": "Vis ikke igen",
"add": "Tilføj",
"remove": "Fjern",
"navigationView": {
"dashboardTab": "Oversigt",
"settingsTab": "Indstillinger"
},
"homeView": {
"refreshSuccess": "Opdatering succesfuldt",
"widgetTitle": "Oversigt",
"updatesSubtitle": "Opdateringer",
"patchedSubtitle": "Patchede applikationer",
"noInstallations": "Ingen patchede apps installeret",
"installUpdate": "Fortsæt med at installere opdateringen?",
"updateChangelogTitle": "Ændringslog",
"downloadingMessage": "Henter opdatering...",
"installingMessage": "Installerer opdatering...",
"errorDownloadMessage": "Opdatering kan ikke hentes",
"errorInstallMessage": "Opdatering kunne ikke installeres",
"noConnection": "Ingen internetforbindelse",
"updatesDisabled": "Opdatering af en patchet app er i øjeblikket deaktiveret. Repatch appen igen."
},
"applicationItem": {
"infoButton": "Information"
},
"latestCommitCard": {
"loadingLabel": "Indlæser...",
"timeagoLabel": "${time} siden"
},
"patcherView": {
"requiredOptionDialogText": "Nogle patch muligheder skal indstilles."
},
"appSelectorCard": {
"noAppsLabel": "Ingen applikationer fundet",
"currentVersion": "Nuværende",
"suggestedVersion": "Anbefalet"
},
"patchSelectorCard": {
"widgetTitle": "Vælg patches",
"widgetTitleSelected": "Valgte patches",
"widgetSubtitle": "Vælg først en applikation",
"widgetEmptySubtitle": "Ingen patches valgt"
},
"socialMediaCard": {
"widgetTitle": "Sociale medier",
"widgetSubtitle": "Vi er online!"
},
"appSelectorView": {
"storageButton": "Lager",
"selectFromStorageButton": "Vælg fra lager",
"errorMessage": "Kunne ikke bruge valgte applikation",
"downloadToast": "Download-funktionen er ikke tilgængelig endnu",
"featureNotAvailable": "Funktion ikke implementeret"
},
"patchesSelectorView": {
"viewTitle": "Vælg patches",
"searchBarHint": "Søg efter patches",
"universalPatches": "Universelle patches",
"newPatches": "Nye patches",
"doneButton": "Udført",
"defaultTooltip": "Vælg alle standard patches",
"noneTooltip": "Fravælg alle patches",
"loadPatchesSelection": "Indlæs patch valg",
"noSavedPatches": "Ingen gemte patches til den valgte app.\nTryk på Udført for at gemme det aktuelle valg.",
"noPatchesFound": "Ingen patches fundet til den valgte app",
"setRequiredOption": "Nogle patches kræver at indstillingerne er indstillet:\n\n${patches}\n\nAngiv dem før du fortsætter."
},
"patchOptionsView": {
"customValue": "Tilpasset værdi",
"resetOptionsTooltip": "Nulstil patch indstillinger",
"viewTitle": "Patch indstillinger",
"saveOptions": "Gem",
"addOptions": "Tilføj indstillinger",
"deselectPatch": "Fravælg patch",
"tooltip": "Flere input-indstillinger",
"selectFilePath": "Vælg fil sti",
"selectFolder": "Vælg mappe",
"requiredOption": "Denne indstilling er påkrævet",
"unsupportedOption": "Denne indstilling understøttes ikke",
"requiredOptionNull": "Følgende indstillinger skal indstilles:\n\n${options}"
},
"patchItem": {
"unsupportedDialogText": "Valg af denne patch kan medføre patching-fejl.\n\nApp version: ${packageVersion}\nUnderstøttede versioner:\n${supportedVersions}",
"unsupportedRequiredOption": "Denne patch indeholder en nødvendig mulighed, der ikke understøttes af denne app",
"patchesChangeWarningDialogButton": "Brug standardvalg"
},
"installerView": {
"installType": "Vælg installationstype",
"installButton": "Installér",
"installRootType": "Montér",
"pressBackAgain": "Tryk tilbage igen for at annullere",
"openButton": "Åbn",
"notificationTitle": "ReVanced Manager patcher",
"notificationText": "Tryk for at gå tilbage til installationsprogrammet",
"exportApkButtonTooltip": "Eksporter patched APK",
"exportLogButtonTooltip": "Eksportér log",
"screenshotDetected": "Et skærmbillede er blevet opdaget. Hvis du forsøger at dele loggen, så del venligst en tekstkopi i stedet.\n\nKopier log til udklipsholderen?",
"copiedToClipboard": "Kopierede log til udklipsholder",
"noExit": "Installationen kører stadig, kan ikke afslutte..."
},
"settingsView": {
"widgetTitle": "Indstillinger",
"appearanceSectionTitle": "Udseende",
"teamSectionTitle": "Holdet",
"debugSectionTitle": "Fejlfinding",
"advancedSectionTitle": "Avanceret",
"exportSectionTitle": "Import & eksport",
"themeModeLabel": "App tema",
"lightThemeLabel": "Lyst",
"darkThemeLabel": "Mørk tilstand",
"dynamicThemeLabel": "Materiale Dig",
"dynamicThemeHint": "Nyd en oplevelse tættere på din enhed",
"languageLabel": "Sprog",
"sourcesIntegrationsLabel": "Kilde til Integrationer",
"sourcesResetDialogTitle": "Nulstil",
"sourcesResetDialogText": "Er du sikker på, at du vil nulstille dine kilder til deres standardværdier?",
"apiURLResetDialogText": "Er du sikker på, at du vil nulstille API URL til dens standardværdi?",
"orgPatchesLabel": "Organisation for Patches",
"sourcesPatchesLabel": "Kilde til Patches",
"orgIntegrationsLabel": "Organisation for Integrationer",
"contributorsLabel": "Medvirkende",
"contributorsHint": "En liste over medvirkende til ReVanced",
"logsLabel": "Del logs",
"logsHint": "Del ReVanced Manager logs",
"enablePatchesSelectionLabel": "Tillad skift af patch valg",
"enablePatchesSelectionWarningText": "Ændring af valg af patches kan forårsage uventede problemer.\n\nAktiver alligevel?",
"disablePatchesSelectionWarningText": "Du er ved at deaktivere ændring af valg af patches.\nStandard valg af patches vil blive gendannet.\n\nDeaktiver alligevel?",
"autoUpdatePatchesLabel": "Opdatér patches automatisk",
"autoUpdatePatchesHint": "Opdater automatisk patches til den seneste version",
"universalPatchesLabel": "Vis universelle patches",
"universalPatchesHint": "Vis alle apps og universelle patches (kan forsinke listen over apps)",
"versionCompatibilityCheckLabel": "Versions kompatibilitetskontrol",
"aboutLabel": "Om",
"snackbarMessage": "Kopieret til udklipsholder",
"restartAppForChanges": "Genstart appen for at anvende ændringer",
"deleteTempDirLabel": "Slet midlertidige filer",
"deleteTempDirHint": "Slet ubrugte midlertidige filer",
"deletedTempDir": "Midlertidige filer slettet",
"exportPatchesLabel": "Eksportér patch valg",
"exportPatchesHint": "Eksportér patch valg til en JSON- fil",
"exportedPatches": "Patch valg eksporteret",
"noExportFileFound": "Ingen patch valg at eksportere",
"importPatchesLabel": "Importér patch valg",
"importPatchesHint": "Importer patch valg fra en JSON fil",
"importedPatches": "Patch valg importeret",
"resetStoredPatchesLabel": "Nulstil patch valg",
"resetStoredPatchesHint": "Nulstil det gemte patch valg",
"resetStoredPatchesDialogTitle": "Nulstil patch valg?",
"resetStoredPatchesDialogText": "Standard valg af patches vil blive gendannet.",
"resetStoredPatches": "Patch valg er blevet nulstillet",
"resetStoredOptionsLabel": "Nulstil patch indstillinger",
"resetStoredOptionsHint": "Nulstil alle patch indstillinger",
"resetStoredOptionsDialogTitle": "Nulstil patch indstillinger?",
"resetStoredOptionsDialogText": "Nulstilling af patch indstillinger vil fjerne alle gemte indstillinger.",
"resetStoredOptions": "Indstillinger er blevet nulstillet",
"deleteLogsLabel": "Ryd loggen",
"deleteLogsHint": "Slet indsamlede logs for ReVanced Manager",
"deletedLogs": "Logfiler slettet",
"regenerateKeystoreLabel": "Regenerér keystore",
"regenerateKeystoreHint": "Regenerér keystore der bruges til at signere apps",
"regenerateKeystoreDialogTitle": "Regenerér keystore?",
"regenerateKeystoreDialogText": "Patchede apps signeret med den gamle keystore vil ikke længere kunne opdateres.",
"regeneratedKeystore": "Keystore regenereret",
"exportKeystoreLabel": "Eksportér keystore",
"exportKeystoreHint": "Eksportér keystore som bruges til at signere apps",
"exportedKeystore": "Keystore eksporteret",
"noKeystoreExportFileFound": "Ingen keystore at eksportere",
"importKeystoreLabel": "Importér keystore",
"importKeystoreHint": "Importér keystore der bruges til at signere apps",
"importedKeystore": "Keystore importeret",
"selectKeystorePassword": "Keystore Adgangskode",
"selectKeystorePasswordHint": "Vælg adgangskode til keystore som bruges til at signere apps",
"jsonSelectorErrorMessage": "Kan ikke bruge den valgte JSON-fil",
"keystoreSelectorErrorMessage": "Kan ikke bruge den valgte keystore fil"
},
"appInfoView": {
"widgetTitle": "Appinfo",
"openButton": "Åbn",
"uninstallButton": "Afinstallér",
"rootDialogTitle": "Fejl",
"rootDialogText": "App blev installeret med superbruger tilladelser, men i øjeblikket har ReVanced Manager ingen tilladelser.\nGiv superbruger tilladelser først.",
"packageNameLabel": "Pakkenavn",
"installTypeLabel": "Installationstype",
"patchedDateLabel": "Dato for patching",
"appliedPatchesLabel": "Anvendte patches",
"patchedDateHint": "${date} kl. ${time}",
"appliedPatchesHint": "${quantity} anvendte patches",
"updateNotImplemented": "Denne funktion er ikke implementeret endnu"
},
"contributorsView": {
"widgetTitle": "Medvirkende"
},
"installErrorDialog": {}
}

View File

@ -1,307 +0,0 @@
{
"okButton": "OK",
"cancelButton": "Abbrechen",
"dismissButton": "Verwerfen",
"quitButton": "Verlassen",
"updateButton": "Aktualisieren",
"enabledLabel": "Aktiviert",
"disabledLabel": "Deaktiviert",
"installed": "Installiert: ${version}",
"suggested": "Empfohlen: ${version}",
"yesButton": "Ja",
"noButton": "Nein",
"warning": "Warnung",
"options": "Optionen",
"notice": "Hinweis",
"noShowAgain": "Nicht erneut anzeigen",
"add": "Hinzufügen",
"remove": "Entfernen",
"showChangelogButton": "Änderungsprotokoll anzeigen",
"showUpdateButton": "Update anzeigen",
"navigationView": {
"dashboardTab": "Übersicht",
"patcherTab": "Patcher",
"settingsTab": "Einstellungen"
},
"homeView": {
"refreshSuccess": "Erfolgreich aktualisiert",
"widgetTitle": "Übersicht",
"updatesSubtitle": "Aktualisierungen",
"patchedSubtitle": "Gepatchte Apps",
"changeLaterSubtitle": "In den Einstellungen kannst du das später noch ändern.",
"noUpdates": "Keine Updates verfügbar",
"WIP": "In Arbeit...",
"noInstallations": "Keine gepatchten Apps installiert",
"installUpdate": "Mit der Installation des Updates fortfahren?",
"updateSheetTitle": "ReVanced-Manager aktualisieren",
"updateDialogTitle": "Neues Update verfügbar",
"updatePatchesSheetTitle": "ReVanced-Patches aktualisieren",
"updateChangelogTitle": "Änderungsverlauf",
"updateDialogText": "Es ist ein neues Update für ${file} verfügbar.\n\nDie derzeit installierte Version ist ${version}.",
"downloadConsentDialogTitle": "Benötigte Dateien herunterladen?",
"downloadConsentDialogText": "Damit ReVanced-Manager ordnungsgemäß funktioniert, müssen notwendige Dateien heruntergeladen werden.",
"downloadConsentDialogText2": "Dadurch wirst du mit ${url} verbunden.",
"checkUpdateDialogTitle": "Nach Aktualisierungen suchen?",
"checkUpdateDialogText": "Soll ReVanced Manager automatisch nach Updates suchen?",
"notificationTitle": "Update heruntergeladen",
"notificationText": "Tippen um Update zu installieren",
"downloadingMessage": "Aktualisierung wird heruntergeladen...",
"downloadedMessage": "Update heruntergeladen",
"installingMessage": "Update wird installiert...",
"errorDownloadMessage": "Aktualisierung konnte nicht heruntergeladen werden",
"errorInstallMessage": "Aktualisierung konnte nicht installiert werden",
"noConnection": "Keine Internetverbindung",
"updatesDisabled": "Aktualisieren einer gepatchten App ist zurzeit deaktiviert. Patche die App erneut."
},
"applicationItem": {
"infoButton": "Informationen"
},
"latestCommitCard": {
"loadingLabel": "Lädt...",
"timeagoLabel": "vor ${time}",
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "Manager aktualisieren"
},
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Patchen",
"armv7WarningDialogText": "Das Patchen auf ARMv7-Geräten wird noch nicht unterstützt, es könnten Fehler auftreten. Trotzdem fortfahren?",
"removedPatchesWarningDialogText": "Die folgenden Patches wurden seit der letzten Verwendung entfernt.\n\n${patches}\n\nTrotzdem fortfahren?",
"requiredOptionDialogText": "Einige Patch-Optionen müssen gesetzt werden."
},
"appSelectorCard": {
"widgetTitle": "App auswählen",
"widgetTitleSelected": "Ausgewählte App",
"widgetSubtitle": "Keine App ausgewählt",
"noAppsLabel": "Keine Apps gefunden",
"currentVersion": "Aktuell",
"suggestedVersion": "Empfohlen",
"anyVersion": "Beliebige Version"
},
"patchSelectorCard": {
"widgetTitle": "Patches auswählen",
"widgetTitleSelected": "Ausgewählte Patches",
"widgetSubtitle": "Wähle zuerst eine App",
"widgetEmptySubtitle": "Keine Patches ausgewählt"
},
"socialMediaCard": {
"widgetTitle": "Soziale Netzwerke",
"widgetSubtitle": "Wir sind online!"
},
"appSelectorView": {
"viewTitle": "App auswählen",
"searchBarHint": "App suchen",
"storageButton": "Speicher",
"selectFromStorageButton": "Aus Speicher auswählen",
"errorMessage": "Ausgewählte App kann nicht verwendet werden",
"downloadToast": "Die Download-Funktion ist noch nicht verfügbar",
"requireSuggestedAppVersionDialogText": "Die gewählte Version der App stimmt nicht mit der empfohlenen Version überein. Bitte wähle die App aus, die der empfohlenen Version entspricht.\n\nAusgewählte Version: v${selected}\nEmpfohlene Version: v${suggested}\n\nUm trotzdem fortzufahren, deaktiviere „Empfohlene App-Version erforderlich“ in den Einstellungen.",
"featureNotAvailable": "Funktion ist nicht implementiert",
"featureNotAvailableText": "Diese App ist eine Split-APK und kann nur mittels Root-Berechtigungen verlässlich gepatcht und installiert werden. Du kannst jedoch eine Komplett-APK patchen und installieren, indem du sie aus dem Speicher auswählst."
},
"patchesSelectorView": {
"viewTitle": "Patches auswählen",
"searchBarHint": "Patches suchen",
"universalPatches": "Universelle Patches",
"newPatches": "Neue Patches",
"patches": "Patches",
"doneButton": "Fertig",
"defaultChip": "Standard",
"defaultTooltip": "Alle Standard Patches auswählen",
"noneChip": "Keine",
"noneTooltip": "Alle Patches abwählen",
"loadPatchesSelection": "Patchauswahl laden",
"noSavedPatches": "Keine gespeicherten Patches für die ausgewählte App. Drücke „Fertig” zum Speichern der aktuellen Auswahl.",
"noPatchesFound": "Keine Patches für die ausgewählte App gefunden",
"setRequiredOption": "Einige Patches benötigen Optionen um gesetzt zu werden:\n\n${patches}\n\nBitte setzen Sie diese bevor Sie fortfahren."
},
"patchOptionsView": {
"customValue": "Benutzerdefinierter Wert",
"resetOptionsTooltip": "Patch-Optionen zurücksetzen",
"viewTitle": "Patch-Optionen",
"saveOptions": "Speichern",
"addOptions": "Option hinzufügen",
"deselectPatch": "Patch abwählen",
"tooltip": "Weitere Eingabeoptionen",
"selectFilePath": "Dateipfad auswählen",
"selectFolder": "Ordner auswählen",
"selectOption": "Option auswählen",
"requiredOption": "Diese Option ist erforderlich.",
"unsupportedOption": "Dieser Vorgang ist nicht unterstützt.",
"requiredOptionNull": "Die folgenden Optionen müssen gesetzt sein:\n\n${options}"
},
"patchItem": {
"unsupportedDialogText": "Die Auswahl dieses Patches kann zu Fehlern beim Patchen führen.\n\nApp-Version: ${packageVersion}\nUnterstützte Versionen:\n${supportedVersions}",
"unsupportedPatchVersion": "Patch wird für diese App Version nicht unterstützt.",
"unsupportedRequiredOption": "Dieser Patch enthält eine erforderliche Option, die von dieser App nicht unterstützt wird",
"patchesChangeWarningDialogText": "Es wird empfohlen, die Standard-Patch-Auswahl und -Optionen zu verwenden. Änderungen können zu unerwarteten Problemen führen.\n\nDu musst „Ändern der Patch-Auswahl erlauben“ in den Einstellungen aktivieren, bevor du Patches auswählen kannst.",
"patchesChangeWarningDialogButton": "Als Standard-Auswahl nutzen"
},
"installerView": {
"widgetTitle": "Installer",
"installType": "Installationstyp wählen",
"installTypeDescription": "Wähle zum Fortfahren die gewünschte Installationsart aus.",
"installButton": "Installieren",
"installRootType": "Einhängen",
"installNonRootType": "Normal",
"warning": "Deaktiviere automatische Updates für die gepatchte App, um unerwartete Probleme zu vermeiden.",
"pressBackAgain": "Drücken Sie \"Zurück\" noch einmal, um die App zu verlassen",
"openButton": "Öffnen",
"shareButton": "Datei teilen",
"notificationTitle": "ReVanced Manager patcht",
"notificationText": "Tippen, um zum Installer zurückzukehren",
"exportApkButtonTooltip": "Gepatchte APK exportieren",
"exportLogButtonTooltip": "Protokoll exportieren",
"screenshotDetected": "Es wurde ein Screenshot erkannt. Wenn Sie versuchen, das Log zu teilen, teilen Sie stattdessen eine Textkopie.\n\nLog in die Zwischenablage kopieren?",
"copiedToClipboard": "Das Protokoll wurde in die Zwischenablage kopiert",
"noExit": "Der Installer wird noch ausgeführt, kann nicht beendet werden..."
},
"settingsView": {
"widgetTitle": "Einstellungen",
"appearanceSectionTitle": "Darstellung",
"teamSectionTitle": "Team",
"debugSectionTitle": "Debuggen",
"advancedSectionTitle": "Erweitert",
"exportSectionTitle": "Import & Export",
"dataSectionTitle": "Datenquellen",
"themeModeLabel": "Erscheinungsbild",
"systemThemeLabel": "System",
"lightThemeLabel": "Hell",
"darkThemeLabel": "Dunkel",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Genieße ein Erlebnis näher an deinem Gerät",
"languageLabel": "Sprache",
"languageUpdated": "Sprache aktualisiert",
"englishOption": "Englisch",
"sourcesLabel": "Alternative Quellen",
"sourcesLabelHint": "Konfiguriere die alternativen Quellen für ReVanced Patches und ReVanced Integrations",
"sourcesIntegrationsLabel": "Quelle für Integrationen",
"useAlternativeSources": "Benutze alternative Quellen",
"useAlternativeSourcesHint": "Verwenden alternative Quellen für ReVanced Patches und ReVanced Integrationen anstelle der API",
"sourcesResetDialogTitle": "Zurücksetzen",
"sourcesResetDialogText": "Bist du dir sicher, dass du die benutzerdefinierten Quellen auf ihre Standardwerte zurücksetzen möchtest?",
"apiURLResetDialogText": "Bist du dir sicher, dass du die API-URL auf ihren Standardwert zurücksetzen möchtest?",
"sourcesUpdateNote": "Hinweis: Dadurch werden ReVanced Patches und ReVanced Integrationen automatisch von der alternativen Quelle heruntergeladen.\n\nDies wird dich mit der alternativen Quelle verbinden.",
"apiURLLabel": "API-URL",
"apiURLHint": "Konfigurieren die API URL von ReVanced Manager",
"selectApiURL": "API-URL",
"orgPatchesLabel": "Patches Organisation",
"sourcesPatchesLabel": "Patches Quelle",
"orgIntegrationsLabel": "Integrationen Organisation",
"contributorsLabel": "Mitwirkende",
"contributorsHint": "Eine Liste der Mitwirkenden von ReVanced",
"logsLabel": "Logs teilen",
"logsHint": "ReVanced Manager Logs teilen",
"enablePatchesSelectionLabel": "Ändern der Patch-Auswahl erlauben",
"enablePatchesSelectionHint": "Patches aktivieren oder deaktivieren nicht verhindern",
"enablePatchesSelectionWarningText": "Ändern der Auswahl der Patches kann zu unerwarteten Problemen führen.\n\nTrotzdem aktivieren?",
"disablePatchesSelectionWarningText": "Sie sind im Begriff, die Auswahl der Patches zu deaktivieren.\nDie Standardauswahl der Patches wird wiederhergestellt.\n\nTrotzdem deaktivieren?",
"autoUpdatePatchesLabel": "Patches automatisch aktualisieren",
"autoUpdatePatchesHint": "Patches automatisch auf die neueste Version aktualisieren",
"showUpdateDialogLabel": "Update-Dialog anzeigen",
"showUpdateDialogHint": "Dialog anzeigen, wenn ein neues Update verfügbar ist",
"universalPatchesLabel": "Universelle Patches zeigen",
"universalPatchesHint": "Alle Apps und Universal Patches anzeigen (kann die App Liste verlangsamen)",
"versionCompatibilityCheckLabel": "Versionskompatibilitätskontrolle",
"versionCompatibilityCheckHint": "Verhindert die Auswahl von Patches, die nicht mit der gewählten App-Version kompatibel sind",
"requireSuggestedAppVersionLabel": "Empfohlene App-Version erforderlich",
"requireSuggestedAppVersionHint": "Verhindere die Auswahl einer App mit einer nicht empfohlenen Version",
"requireSuggestedAppVersionDialogText": "Das Auswählen einer App, die nicht der empfohlenen Version entspricht, kann zu unerwarteten Problemen führen.\n\nMöchten Sie trotzdem fortfahren?",
"aboutLabel": "Über",
"snackbarMessage": "In die Zwischenablage kopiert",
"restartAppForChanges": "Starte die App neu, um die Änderungen zu übernehmen",
"deleteTempDirLabel": "Lösche temporäre Dateien",
"deleteTempDirHint": "Unbenutzte temporäre Dateien löschen",
"deletedTempDir": "Temporäre Dateien wurden gelöscht",
"exportPatchesLabel": "Patchauswahl exportieren",
"exportPatchesHint": "Patch-Auswahl in eine JSON-Datei exportieren",
"exportedPatches": "Patch-Auswahl exportiert",
"noExportFileFound": "Keine Patch-Auswahl zum Exportieren",
"importPatchesLabel": "Patch-Auswahl importieren",
"importPatchesHint": "Patch-Auswahl aus einer JSON-Datei importieren",
"importedPatches": "Patch Auswahl importiert",
"resetStoredPatchesLabel": "Patch-Auswahl zurücksetzen",
"resetStoredPatchesHint": "Gespeicherte Patch-Auswahl zurücksetzen",
"resetStoredPatchesDialogTitle": "Patch-Auswahl zurücksetzen?",
"resetStoredPatchesDialogText": "Die Standardauswahl der Patches wird wiederhergestellt.",
"resetStoredPatches": "Patch-Auswahl wurde zurückgesetzt",
"resetStoredOptionsLabel": "Patch-Optionen zurücksetzen",
"resetStoredOptionsHint": "Alle Patch-Optionen zurücksetzen",
"resetStoredOptionsDialogTitle": "Patch-Optionen zurücksetzen?",
"resetStoredOptionsDialogText": "Beim Zurücksetzen der Patch-Optionen werden alle gespeicherten Optionen entfernt.",
"resetStoredOptions": "Einstellungen wurden zurückgesetzt",
"deleteLogsLabel": "Protokolle löschen",
"deleteLogsHint": "Gesammelte ReVanced Manager Logs löschen",
"deletedLogs": "Protokolle gelöscht",
"regenerateKeystoreLabel": "Keystore neu generieren",
"regenerateKeystoreHint": "Den zur Signierung von Apps verwendeten Keystore neu generieren",
"regenerateKeystoreDialogTitle": "Keystore neu generieren?",
"regenerateKeystoreDialogText": "Gepatchte Apps, die mit dem alten Keystore signiert sind, können nicht mehr aktualisiert werden.",
"regeneratedKeystore": "Keystore regeneriert",
"exportKeystoreLabel": "Keystore exportieren",
"exportKeystoreHint": "Den Keystore exportieren, mit dem Apps signiert werden",
"exportedKeystore": "Keystore exportiert",
"noKeystoreExportFileFound": "Kein Keystore zum Exportieren",
"importKeystoreLabel": "Keystore importieren",
"importKeystoreHint": "Importiere einen Keystore zur Signierung von Apps",
"importedKeystore": "Keystore importiert",
"selectKeystorePassword": "Keystore-Passwort",
"selectKeystorePasswordHint": "Keystore-Passwort zur Signierung von Apps auswählen",
"jsonSelectorErrorMessage": "Ausgewählte JSON-Datei kann nicht verwendet werden",
"keystoreSelectorErrorMessage": "Ausgewählte Keystore-Datei kann nicht verwendet werden"
},
"appInfoView": {
"widgetTitle": "App Info",
"openButton": "Öffnen",
"uninstallButton": "Deinstallieren",
"unmountButton": "Unmounten",
"rootDialogTitle": "Fehler",
"unmountDialogText": "Bist du sicher, dass du die Patches dieser App entfernen möchtest?",
"uninstallDialogText": "Bist du sicher, dass du diese App deinstallieren möchtest?",
"rootDialogText": "Die App wurde mit Superuser-Berechtigungen installiert, aber derzeit hat ReVanced Manager keine Berechtigungen.\nBitte erteile zuerst Superuser-Berechtigungen.",
"packageNameLabel": "Paketname",
"installTypeLabel": "Installationsart",
"mountTypeLabel": "Einhängen",
"regularTypeLabel": "Normal",
"patchedDateLabel": "Patch-Datum",
"appliedPatchesLabel": "Angewandte Patches",
"patchedDateHint": "${date} um ${time}",
"appliedPatchesHint": "${quantity} angewandte Patches",
"updateNotImplemented": "Diese Funktion ist noch nicht implementiert"
},
"contributorsView": {
"widgetTitle": "Mitwirkende",
"patcherContributors": "ReVanced Patcher",
"patchesContributors": "ReVanced Patches",
"integrationsContributors": "ReVanced Integrations",
"cliContributors": "ReVanced CLI",
"managerContributors": "ReVanced Manager"
},
"installErrorDialog": {
"mount_version_mismatch": "Versionskonflikt",
"mount_no_root": "Kein Root-Zugriff",
"mount_missing_installation": "Installation nicht gefunden",
"status_failure_blocked": "Installation blockiert",
"install_failed_verification_failure": "Überprüfung fehlgeschlagen",
"status_failure_invalid": "Installation fehlgeschlagen",
"install_failed_version_downgrade": "Downgrade nicht möglich",
"status_failure_conflict": "Installationskonflikt",
"status_failure_storage": "Installations-Speicher Problem",
"status_failure_incompatible": "Installation ist nicht kompatibel",
"status_failure_timeout": "Installations-Timeout",
"status_unknown": "Installation fehlgeschlagen",
"mount_version_mismatch_description": "Die Installation ist fehlgeschlagen, da die installierte App eine andere Version hat als die gepatchte App.\n\nInstallieren Sie die Version der App, die Sie mounten, und versuchen Sie es erneut.",
"mount_no_root_description": "Die Installation ist fehlgeschlagen, da der Root-Zugriff nicht gewährt wurde.\n\nGewähre Root-Zugriff für ReVanced Manager und versuche es erneut.",
"mount_missing_installation_description": "Die Installation ist fehlgeschlagen, da die nicht gepatchte App auf diesem Gerät fehlt, um sie zu mounten.\n\nInstallieren Sie die nicht gepatchte App bevor Sie mounten und versuchen Sie es erneut.",
"status_failure_timeout_description": "Die Installation hat zu lange gedauert.\n\nMöchten Sie es erneut versuchen?",
"status_failure_storage_description": "Die Installation ist aufgrund unzureichenden Speichers fehlgeschlagen.\n\nSchaffe etwas Platz und versuche es erneut.",
"status_failure_invalid_description": "Die Installation ist fehlgeschlagen, da die gepatchte App ungültig ist.\n\nDie App deinstallieren und erneut versuchen?",
"status_failure_incompatible_description": "Die App ist nicht mit diesem Gerät kompatibel.\n\nKontaktieren Sie den Entwickler der App und bitten Sie um seine Unterstützung.",
"status_failure_conflict_description": "Die Installation wurde durch eine bestehende Installation der App verhindert.\n\nDie installierte App deinstallieren und erneut versuchen?",
"status_failure_blocked_description": "Die Installation wurde von ${packageName} blockiert.\n\nPassen Sie Ihre Sicherheitseinstellungen an und versuchen Sie es erneut.",
"install_failed_verification_failure_description": "Die Installation ist aufgrund eines Verifizierungsproblems fehlgeschlagen.\n\nPassen Sie Ihre Sicherheitseinstellungen an und versuchen Sie es erneut.",
"install_failed_version_downgrade_description": "Die Installation ist fehlgeschlagen, da die gepatchte App eine niedrigere Version als die installierte App ist.\n\nDie App deinstallieren und erneut versuchen?",
"status_unknown_description": "Die Installation ist aus einem unbekannten Grund fehlgeschlagen. Bitte versuchen Sie es erneut."
}
}

View File

@ -1,307 +0,0 @@
{
"okButton": "Εντάξει",
"cancelButton": "Ακύρωση",
"dismissButton": "Απόρριψη",
"quitButton": "Έξοδος",
"updateButton": "Ενημέρωση",
"enabledLabel": "Ενεργό",
"disabledLabel": "Ανενεργό",
"installed": "Εγκατεστημένη έκδοση: ${version}",
"suggested": "Προτεινόμενη έκδοση: ${version}",
"yesButton": "Ναι",
"noButton": "Όχι",
"warning": "Προειδοποίηση",
"options": "Ρυθμίσεις",
"notice": "Σημείωση",
"noShowAgain": "Να μην ξαναεμφανιστεί",
"add": "Προσθήκη",
"remove": "Αφαίρεση",
"showChangelogButton": "Εμφάνιση αλλαγών",
"showUpdateButton": "Εμφάνιση ενημέρωσης",
"navigationView": {
"dashboardTab": "Πίνακας Ελέγχου",
"patcherTab": "Τροποποιητής",
"settingsTab": "Ρυθμίσεις"
},
"homeView": {
"refreshSuccess": "Ανανεώθηκε επιτυχώς",
"widgetTitle": "Πίνακας Ελέγχου",
"updatesSubtitle": "Ενημερώσεις",
"patchedSubtitle": "Τροποποιημένες Εφαρμογές",
"changeLaterSubtitle": "Μπορείτε να το αλλάξετε αργότερα στις ρυθμίσεις.",
"noUpdates": "Δεν υπάρχουν διαθέσιμες ενημερώσεις",
"WIP": "Υπό κατασκευή...",
"noInstallations": "Δεν έχουν εγκατασταθεί τροποποιημένες εφαρμογές",
"installUpdate": "Συνέχεια για εγκατάσταση της ενημέρωσης;",
"updateSheetTitle": "Ενημέρωση του ReVanced Manager",
"updateDialogTitle": "Υπάρχει διαθέσιμη ενημέρωση",
"updatePatchesSheetTitle": "Ενημέρωση τροποποιήσεων ReVanced",
"updateChangelogTitle": "Τι νέο υπάρχει",
"updateDialogText": "Υπάρχει διαθέσιμη μια νέα ενημέρωση για το ${file}.\n\nΗ τρέχουσα εγκατεστημένη έκδοση είναι η ${version}.",
"downloadConsentDialogTitle": "Λήψη των απαραίτητων αρχείων;",
"downloadConsentDialogText": "Το ReVanced Manager πρέπει να κατεβάσει τα απαραίτητα αρχεία για να λειτουργήσει σωστά.",
"downloadConsentDialogText2": "Αυτό θα σας συνδέσει με το ${url}.",
"checkUpdateDialogTitle": "Έλεγχος για ενημερώσεις;",
"checkUpdateDialogText": "Θέλετε το ReVanced Manager να ελέγχει για ενημερώσεις αυτόματα;",
"notificationTitle": "Η λήψη της ενημέρωσης ολοκληρώθηκε",
"notificationText": "Πατήστε για εγκατάσταση της ενημέρωσης",
"downloadingMessage": "Λήψη ενημέρωσης...",
"downloadedMessage": "Η λήψη της ενημέρωσης ολοκληρώθηκε",
"installingMessage": "Εγκατάσταση ενημέρωσης...",
"errorDownloadMessage": "Αδυναμία λήψης ενημέρωσης",
"errorInstallMessage": "Αδυναμία εγκατάστασης ενημέρωσης",
"noConnection": "Δεν υπάρχει σύνδεση στο διαδίκτυο",
"updatesDisabled": "Η ενημέρωση τροποποιημένων εφαρμογών είναι ανενεργή προς το παρόν. Τροποποιήστε τις εφαρμογές εκ νέου."
},
"applicationItem": {
"infoButton": "Πληροφορίες"
},
"latestCommitCard": {
"loadingLabel": "Φόρτωση...",
"timeagoLabel": "${time} πριν",
"patcherLabel": "Τροποποιητής: ",
"managerLabel": "Manager: ",
"updateButton": "Ενημέρωση του Manager"
},
"patcherView": {
"widgetTitle": "Τροποποιητής",
"patchButton": "Τροποποίηση",
"armv7WarningDialogText": "Η διαδικασία της τροποποίησης δεν υποστηρίζεται προς το παρόν σε ARMv7 συσκευές και μπορεί να αποτύχει. Συνέχεια παρόλα αυτά;",
"removedPatchesWarningDialogText": "Οι παρακάτω τροποποιήσεις αφαιρέθηκαν από την τελευταία φορά που τις χρησιμοποιήσατε.\n\n${patches}\n\nΣυνέχεια παρόλα αυτά;",
"requiredOptionDialogText": "Κάποιες επιλογές τροποποιήσεων πρέπει να οριστούν."
},
"appSelectorCard": {
"widgetTitle": "Επιλέξτε μία εφαρμογή",
"widgetTitleSelected": "Επιλεγμένες εφαρμογές",
"widgetSubtitle": "Δεν έχει επιλεγεί κάποια εφαρμογή",
"noAppsLabel": "Δε βρέθηκαν εφαρμογές",
"currentVersion": "Τρέχουσα έκδοση",
"suggestedVersion": "Προτεινόμενη έκδοση",
"anyVersion": "Οποιαδήποτε έκδοση"
},
"patchSelectorCard": {
"widgetTitle": "Επιλέξτε τροποποιήσεις",
"widgetTitleSelected": "Επιλεγμένες τροποποιήσεις",
"widgetSubtitle": "Επιλέξτε πρώτα μια εφαρμογή",
"widgetEmptySubtitle": "Δεν επιλέχθηκαν τροποποιήσεις"
},
"socialMediaCard": {
"widgetTitle": "Κοινωνικά Δίκτυα",
"widgetSubtitle": "Είμαστε ενεργοί!"
},
"appSelectorView": {
"viewTitle": "Επιλέξτε μία εφαρμογή",
"searchBarHint": "Αναζήτηση εφαρμογής",
"storageButton": "Αποθηκευτικός χώρος",
"selectFromStorageButton": "Επιλογή από αποθηκευτικό χώρο",
"errorMessage": "Αδυναμία χρήσης της επιλεγμένης εφαρμογής",
"downloadToast": "Η λειτουργία λήψης δεν είναι ακόμη διαθέσιμη",
"requireSuggestedAppVersionDialogText": "Η έκδοση της εφαρμογής που επιλέξατε δεν ταιριάζει με την προτεινόμενη έκδοση αυτό μπορεί να προκαλέσει ανεπιθύμητα θέματα. Παρακαλώ επιλέξτε την εφαρμογή που ταιριάζει με την προτεινόμενη έκδοση.\n\nΕπιλεγμένη έκδοση: ${selected}\nΠροτεινόμενη έκδοση: ${suggested}\n\nΓια να προχωρήσετε ούτως ή άλλως, απενεργοποιήστε την «Επιβολή επιλογής της προτεινόμενης έκδοσης εφαρμογής» στις ρυθμίσεις.",
"featureNotAvailable": "Η δυνατότητα δεν έχει υλοποιηθεί",
"featureNotAvailableText": "Αυτή η εφαρμογή είναι εγκατεστημένη ως split APK οπότε για να μπορέσουμε να την τροποιήσουμε και να την εγκαταστήσουμε αξιόπιστα χρειαζόμαστε πρόσβαση root ώστε να την προσαρτήσουμε. Ωστόσο, μπορείτε να τροποποιήσετε και να εγκαταστήσετε ένα κανονικό αρχείο APK επιλέγοντάς το από το χώρο αποθήκευσης χωρίς να χρειάζεται πρόσβαση root."
},
"patchesSelectorView": {
"viewTitle": "Επιλέξτε τροποποιήσεις",
"searchBarHint": "Αναζήτηση τροποποιήσεων",
"universalPatches": "Γενικευμένες τροποποιήσεις",
"newPatches": "Νέες τροποποιήσεις",
"patches": "Τροποποιήσεις",
"doneButton": "Τέλος",
"defaultChip": "Προεπιλογές",
"defaultTooltip": "Επιλέξτε όλες τις προεπιλεγμένες τροποποιήσεις",
"noneChip": "Καμία",
"noneTooltip": "Αποεπιλέξτε όλες τις τροποποιήσεις",
"loadPatchesSelection": "Φόρτωση επιλεγμένων τροποποιήσεων",
"noSavedPatches": "Δεν υπάρχουν αποθηκευμένες τροποποιήσεις για την εφαρμογή που επιλέξατε.\nΠατήστε «Τέλος» για να αποθηκεύσετε τις τωρινές επιλογές σας.",
"noPatchesFound": "Δε βρέθηκαν τροποποιήσεις για την επιλεγμένη εφαρμογή",
"setRequiredOption": "Κάποιες τροποποιήσεις απαιτούν να ορίζονται κάποιες επιλογές:\n\n${patches}\n\nΠαρακαλώ ορίστε τις επιλογές πρώτου συνεχίσετε."
},
"patchOptionsView": {
"customValue": "Προσαρμοσμένη τιμή",
"resetOptionsTooltip": "Επαναφορά επιλογών τροποποιήσεων",
"viewTitle": "Επιλογές τροποποιήσεων",
"saveOptions": "Αποθήκευση",
"addOptions": "Προσθήκη επιλογών",
"deselectPatch": "Αποεπιλέξτε τροποποιήσεις",
"tooltip": "Περισσότερες επιλογές εισόδου",
"selectFilePath": "Επιλογή τοποθεσίας αρχείου",
"selectFolder": "Επιλογή φακέλου",
"selectOption": "Επιλογή ρύθμισης",
"requiredOption": "Αυτή η επιλογή απαιτείται",
"unsupportedOption": "Αυτή η επιλογή δεν υποστηρίζεται",
"requiredOptionNull": "Πρέπει να οριστούν οι παρακάτω επιλογές:\n\n${options}"
},
"patchItem": {
"unsupportedDialogText": "Η επιλογή αυτής της τροποποίησης μπορεί να επιφέρει σφάλματα τροποποίησης.\n\nΈκδοση εφαρμογής: ${packageVersion}\nΥποστηριζόμενες εκδόσεις: ${supportedVersions}",
"unsupportedPatchVersion": "Η τροποποίηση δεν υποστηρίζεται σε αυτήν την έκδοση της εφαρμογής.",
"unsupportedRequiredOption": "Αυτή η τροποποίηση αναγκαστικά περιέχει μια επιλογή η οποία δεν υποστηρίζεται από αυτήν την εφαρμογή",
"patchesChangeWarningDialogText": "Συνιστάται να χρησιμοποιείτε τις προεπιλεγμένες τροποποιήσεις και επιλογές τους. Η αλλαγή τους μπορεί να οδηγήσει σε μη αναμενόμενα θέματα.\n\nΘα πρέπει να ενεργοποιήσετε το «Να επιτρέπονται αλλαγές επιλογών τροποποιήσεων» στις ρυθμίσεις προτού αλλάξετε οτιδήποτε.",
"patchesChangeWarningDialogButton": "Χρήση προεπιλεγμένων επιλογών"
},
"installerView": {
"widgetTitle": "Πρόγραμμα Εγκατάστασης",
"installType": "Επιλέξτε τύπο εγκατάστασης",
"installTypeDescription": "Συνεχίστε επιλέγοντας τον τύπο εγκατάστασης.",
"installButton": "Εγκατάσταση",
"installRootType": "Προσάρτηση",
"installNonRootType": "Κανονική",
"warning": "Απενεργοποίηση αυτόματων ενημερώσεων για την τροποποιημένη εφαρμογή για την αποφυγή απροσδόκητων προβλημάτων.",
"pressBackAgain": "Πατήστε πίσω ξανά για ακύρωση",
"openButton": "Άνοιγμα",
"shareButton": "Κοινοποίηση αρχείου",
"notificationTitle": "Πραγματοποιείται τροποποίηση μέσω ReVanced Manager",
"notificationText": "Πατήστε για να επιστρέψετε στο πρόγραμμα εγκατάστασης",
"exportApkButtonTooltip": "Εξαγωγή τροποποιημένου αρχείου APK",
"exportLogButtonTooltip": "Εξαγωγή αρχείου καταγραφής",
"screenshotDetected": "Ανιχνεύθηκε στιγμιότυπο οθόνης. Αν προσπαθείτε να κοινοποιήσετε το αρχείο καταγραφής, παρακαλούμε να κοινοποιήσετε αντίγραφο κειμένου αντ'αυτού.\n\nΑντιγραφή αρχείου καταγραφής στο πρόχειρο;",
"copiedToClipboard": "Το αρχείο καταγραφής αντιγράφηκε στο πρόχειρο",
"noExit": "Το πρόγραμμα εγκατάστασης εκτελείται ακόμη, αδυναμία εξόδου..."
},
"settingsView": {
"widgetTitle": "Ρυθμίσεις",
"appearanceSectionTitle": "Εμφάνιση",
"teamSectionTitle": "Ομάδα",
"debugSectionTitle": "Εντοπισμός σφαλμάτων",
"advancedSectionTitle": "Για προχωρημένους",
"exportSectionTitle": "Εισαγωγή & εξαγωγή",
"dataSectionTitle": "Πηγές δεδομένων",
"themeModeLabel": "Θέμα εφαρμογής",
"systemThemeLabel": "Σύστημα",
"lightThemeLabel": "Ανοιχτόχρωμο",
"darkThemeLabel": "Σκουρόχρωμο",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Εμφάνιση που ταιριάζει με τη δική σας συσκευή",
"languageLabel": "Γλώσσα",
"languageUpdated": "Η γλώσσα ενημερώθηκε",
"englishOption": "Αγγλικά",
"sourcesLabel": "Εναλλακτικές πηγές",
"sourcesLabelHint": "Ρυθμίστε τις εναλλακτικές πηγές για τις τροποποιήσεις ReVanced και τις ενσωματώσεις ReVanced",
"sourcesIntegrationsLabel": "Πηγή ενσωματώσεων",
"useAlternativeSources": "Χρήση εναλλακτικών πηγών",
"useAlternativeSourcesHint": "Χρήση εναλλακτικών πηγών για τις τροποποιήσεις και τις ενσωματώσεις ReVanced αντί του API",
"sourcesResetDialogTitle": "Επαναφορά",
"sourcesResetDialogText": "Είστε βέβαιοι ότι θέλετε να επαναφέρετε τις πηγές σας στις προεπιλεγμένες τιμές τους;",
"apiURLResetDialogText": "Είστε βέβαιοι ότι θέλετε να επαναφέρετε την API URL σας στην προεπιλεγμένη τιμή της;",
"sourcesUpdateNote": "Σημείωση: Θα γίνεται αυτόματη λήψη των τροποποιήσεων και των ενσωματώσεων ReVanced από τις εναλλακτικές πηγές.\n\nΟπότε θα συνδέεστε με τις εναλλακτικές πηγές.",
"apiURLLabel": "API URL",
"apiURLHint": "Ρύθμιση διεύθυνσης URL του API του ReVanced Manager",
"selectApiURL": "API URL",
"orgPatchesLabel": "Οργάνωση τροποποιήσεων",
"sourcesPatchesLabel": "Πηγή τροποποιήσεων",
"orgIntegrationsLabel": "Οργάνωση ενσωματώσεων",
"contributorsLabel": "Συνεισφέροντες",
"contributorsHint": "Λίστα με όσους έχουν συμβάλει στο ReVanced",
"logsLabel": "Κοινοποίηση αρχείων καταγραφής",
"logsHint": "Κοινοποίηση αρχείων καταγραφής του ReVanced Manager",
"enablePatchesSelectionLabel": "Να επιτρέπονται αλλαγές επιλογών τροποποιήσεων",
"enablePatchesSelectionHint": "Να μην εμποδίζονται οι επιλογές τροποποιήσεων",
"enablePatchesSelectionWarningText": "Αλλαγές στις προεπιλεγμένες επιλογές τροποποιήσεων ίσως επιφέρει μη αναμενόμενα προβλήματα.\n\nΕνεργοποίηση παρόλα αυτά;",
"disablePatchesSelectionWarningText": "Πρόκειται να απενεργοποιήσετε τη δυνατότητα αλλαγής των επιλογών τροποποιήσεων.\nΟι προεπιλεγμένες επιλογές τροποποιήσεων θα επαναφερθούν.\n\nΑπενεργοποίηση παρόλα αυτά;",
"autoUpdatePatchesLabel": "Αυτόματες ενημερώσεις τροποποιήσεων",
"autoUpdatePatchesHint": "Αυτόματη ενημέρωση τροποποιήσεων στην τελευταία έκδοση",
"showUpdateDialogLabel": "Εμφάνιση προτροπής για ενημερώσεις",
"showUpdateDialogHint": "Εμφάνιση ειδοποίησης όταν είναι διαθέσιμη κάποια νέα ενημέρωση",
"universalPatchesLabel": "Εμφάνιση γενικευμένων τροποποιήσεων",
"universalPatchesHint": "Εμφάνιση όλων των εφαρμογών και γενικευμένων τροποποιήσεων (ενδέχεται να επιβραδύνει τη φόρτωση λίστας εφαρμογών)",
"versionCompatibilityCheckLabel": "Έλεγχος συμβατότητας έκδοσης",
"versionCompatibilityCheckHint": "Αποκλεισμός επιλογών τροποποιήσεων που δεν είναι συμβατές με την επιλεγμένη έκδοση εφαρμογής",
"requireSuggestedAppVersionLabel": "Απαιτείται η προτεινόμενη έκδοση εφαρμογής",
"requireSuggestedAppVersionHint": "Αποκλεισμός επιλογής εκδόσεων εφαρμογών που δεν προτείνονται",
"requireSuggestedAppVersionDialogText": "Επιλέγοντας μια εφαρμογή που δεν έχει την προτεινόμενη έκδοση μπορεί να προκαλέσει μη αναμενόμενα προβλήματα.\n\nΘέλετε να προχωρήσετε ούτως ή άλλως;",
"aboutLabel": "Σχετικά με",
"snackbarMessage": "Αντιγράφηκε στο πρόχειρο",
"restartAppForChanges": "Επανεκκινήστε την εφαρμογή για να εφαρμόσετε αλλαγές",
"deleteTempDirLabel": "Διαγραφή προσωρινών αρχείων",
"deleteTempDirHint": "Διαγραφή των αχρησιμοποίητων προσωρινών αρχείων",
"deletedTempDir": "Τα προσωρινά αρχεία διαγράφηκαν",
"exportPatchesLabel": "Εξαγωγή των επιλεγμένων τροποποιήσεων",
"exportPatchesHint": "Εξαγωγή των επιλεγμένων τροποποιήσεων σε ένα αρχείο JSON",
"exportedPatches": "Η εξαγωγή των επιλεγμένων τροποποιήσεων ολοκληρώθηκε",
"noExportFileFound": "Δεν υπάρχει επιλογή τροποποιήσεων για εξαγωγή",
"importPatchesLabel": "Εισαγωγή των επιλεγμένων τροποποιήσεων",
"importPatchesHint": "Εισαγωγή των επιλεγμένων τροποποιήσεων από ένα αρχείο JSON",
"importedPatches": "Η εισαγωγή των επιλεγμένων τροποποιήσεων ολοκληρώθηκε",
"resetStoredPatchesLabel": "Επαναφορά επιλογών τροποποιήσεων",
"resetStoredPatchesHint": "Επαναφορά των αποθηκευμένων επιλογών τροποποιήσεων",
"resetStoredPatchesDialogTitle": "Επαναφορά επιλογών τροποποιήσεων;",
"resetStoredPatchesDialogText": "Θα επαναφερθούν οι προεπιλεγμένες επιλογές τροποποιήσεων.",
"resetStoredPatches": "Η επαναφορά των επιλεγμένων τροποποιήσεων ολοκληρώθηκε",
"resetStoredOptionsLabel": "Επαναφορά επιλογών τροποποιήσεων",
"resetStoredOptionsHint": "Επαναφορά όλων των επιλογών τροποποιήσεων",
"resetStoredOptionsDialogTitle": "Επαναφορά επιλογών τροποποιήσεων;",
"resetStoredOptionsDialogText": "Η επαναφορά των επιλογών τροποποιήσεων θα αφαιρέσει όλες τις αποθηκευμένες επιλογές.",
"resetStoredOptions": "Οι επιλογές επαναφέρθηκαν",
"deleteLogsLabel": "Εκκαθάριση αρχείων καταγραφής",
"deleteLogsHint": "Διαγραφή των αρχείων καταγραφής που έχει συλλέξει το ReVanced Manager",
"deletedLogs": "Τα αρχεία καταγραφής έχουν διαγραφεί",
"regenerateKeystoreLabel": "Επανέκδοση keystore",
"regenerateKeystoreHint": "Επαναφορά του keystore που χρησιμοποιείται για την υπογραφή των εφαρμογών",
"regenerateKeystoreDialogTitle": "Επαναφορά keystore;",
"regenerateKeystoreDialogText": "Τροποποιημένες εφαρμογές που είχαν υπογράφει με το παλιό keystore δε γίνεται να ενημερώνονται.",
"regeneratedKeystore": "Το keystore ανανεώθηκε",
"exportKeystoreLabel": "Εξαγωγή keystore",
"exportKeystoreHint": "Εξάγετε το κλειδί που χρησιμοποιείται για την υπογραφή των εφαρμογών",
"exportedKeystore": "Το κλειδί εξήχθη",
"noKeystoreExportFileFound": "Δεν υπάρχει κλειδί για να εξαχθεί",
"importKeystoreLabel": "Εισαγωγή keystore",
"importKeystoreHint": "Εισάγετε ένα κλειδί που θα χρησιμοποιείται για την υπογραφή εφαρμογών",
"importedKeystore": "Το κλειδί εισήχθη",
"selectKeystorePassword": "Κωδικός Keystore",
"selectKeystorePasswordHint": "Επιλέξτε κωδικό πρόσβασης για το κλειδί που χρησιμοποιείται για την υπογραφή εφαρμογών",
"jsonSelectorErrorMessage": "Αδυναμία χρήσης του επιλεγμένου αρχείου JSON",
"keystoreSelectorErrorMessage": "Αδυναμία χρήσης του επιλεγμένου αρχείου keystore"
},
"appInfoView": {
"widgetTitle": "Πληροφορίες εφαρμογής",
"openButton": "Άνοιγμα",
"uninstallButton": "Απεγκατάσταση",
"unmountButton": "Αποπροσάρτηση",
"rootDialogTitle": "Σφάλμα",
"unmountDialogText": "Είστε βέβαιοι ότι θέλετε να αποπροσαρτήσετε αυτήν την εφαρμογή;",
"uninstallDialogText": "Είστε βέβαιοι ότι θέλετε να απεγκαταστήσετε αυτή την εφαρμογή;",
"rootDialogText": "Η εφαρμογή εγκαταστάθηκε με πρόσβαση root, αλλά αυτή τη στιγμή το ReVanced Manager δεν έχει πρόσβαση root.\nΠαρακαλώ παραχωρήστε πρόσβαση root.",
"packageNameLabel": "Όνομα πακέτου",
"installTypeLabel": "Τύπος εγκατάστασης",
"mountTypeLabel": "Προσάρτηση",
"regularTypeLabel": "Κανονική",
"patchedDateLabel": "Ημερομηνία τροποποίησης",
"appliedPatchesLabel": "Τροποποιήσεις που έχουν εφαρμοστεί",
"patchedDateHint": "${date} στις ${time}",
"appliedPatchesHint": "${quantity} εφαρμοσμένες τροποποιήσεις",
"updateNotImplemented": "Αυτή η δυνατότητα δεν είναι ακόμα διαθέσιμη"
},
"contributorsView": {
"widgetTitle": "Συνεισφέροντες",
"patcherContributors": "Τροποποιητής ReVanced",
"patchesContributors": "Τροποποιήσεις ReVanced",
"integrationsContributors": "Ενσωματώσεις ReVanced",
"cliContributors": "Τερματικό ReVanced",
"managerContributors": "Διαχειριστής ReVanced"
},
"installErrorDialog": {
"mount_version_mismatch": "Ασυμφωνία έκδοσης",
"mount_no_root": "Δεν υπάρχει πρόσβαση root",
"mount_missing_installation": "Η εγκατάσταση δε βρέθηκε",
"status_failure_blocked": "Η εγκατάσταση αποκλείστηκε",
"install_failed_verification_failure": "Η επαλήθευση απέτυχε",
"status_failure_invalid": "Μη έγκυρη εγκατάσταση",
"install_failed_version_downgrade": "Αδυναμία υποβάθμισης",
"status_failure_conflict": "Η εγκατάσταση αντικρούστηκε",
"status_failure_storage": "Πρόβλημα αποθηκευτικού χώρου εγκατάστασης",
"status_failure_incompatible": "Μη συμβατή εγκατάσταση",
"status_failure_timeout": "Τέλος χρόνου για την εγκατάσταση",
"status_unknown": "Η εγκατάσταση απέτυχε",
"mount_version_mismatch_description": "Η εγκατάσταση απέτυχε διότι η εγκατεστημένη εφαρμογή έχει διαφορετική έκδοση από την τροποποιημένη εφαρμογή.\n\nΕγκαταστήστε την έκδοση της εφαρμογής που προσαρτήσατε και δοκιμάστε ξανά.",
"mount_no_root_description": "Η εγκατάσταση απέτυχε διότι δεν παραχωρήθηκε πρόσβαση root.\n\nΠαραχωρήστε πρόσβαση root στο ReVanced Manager και δοκιμάστε ξανά.",
"mount_missing_installation_description": "Η εγκατάσταση απέτυχε διότι η μη τροποποιημένη εφαρμογή δεν έχει εγκατασταθεί σε αυτή τη συσκευή ώστε να την προσαρτήσετε.\n\nΕγκαταστήστε την μη τροποποιημένη εφαρμογή προτού την προσαρτήσετε και δοκιμάστε ξανά.",
"status_failure_timeout_description": "Η εγκατάσταση περισσότερη ώρα από το φυσιολογικό για να ολοκληρωθεί.\n\nΘέλετε να δοκιμάσετε ξανά;",
"status_failure_storage_description": "Η εγκατάσταση απέτυχε λόγο μη επαρκούς χώρου.\n\nΑπελευθερώστε χώρο και δοκιμάστε ξανά.",
"status_failure_invalid_description": "Η εγκατάσταση απέτυχε επειδή η τροποποιημένη εφαρμογή είναι μη έγκυρη.\n\nΑπεγκατάσταση εφαρμογής και προσπάθεια ξανά;",
"status_failure_incompatible_description": "Η εφαρμογή δεν είναι συμβατή με αυτήν τη συσκευή.\n\nΕπικοινωνήστε με τον προγραμματιστή της εφαρμογής και ζητήστε υποστήριξη.",
"status_failure_conflict_description": "Η εγκατάσταση εμποδίστηκε από μια ήδη υπάρχων εγκατάσταση της εφαρμογής.\n\nΑπεγκατάσταση εφαρμογής και προσπάθεια ξανά;",
"status_failure_blocked_description": "Η εγκατάσταση αποκλείστηκε από το ${packageName}.\n\nΡυθμίστε τις ρυθμίσεις ασφαλείας σας και δοκιμάστε ξανά.",
"install_failed_verification_failure_description": "Η εγκατάσταση απέτυχε λόγο θέματος επαλήθευσης.\n\nΡυθμίστε τις ρυθμίσεις ασφαλείας σας και δοκιμάστε ξανά.",
"install_failed_version_downgrade_description": "Η εγκατάσταση απέτυχε διότι η τροποποιημένη εφαρμογή έχει χαμηλότερη έκδοση από την εγκατεστημένη εφαρμογή.\n\nΑπεγκατάσταση εφαρμογής και προσπάθεια ξανά;",
"status_unknown_description": "Η εγκατάσταση απέτυχε για κάποιον άγνωστο λόγο.\nΠαρακαλώ δοκιμάστε ξανά."
}
}

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