Compare commits

...

133 Commits

Author SHA1 Message Date
semantic-release-bot
fa6ad214f9 chore(release): 1.21.0-dev.3 [skip ci]
# [1.21.0-dev.3](https://github.com/ReVanced/revanced-manager/compare/v1.21.0-dev.2...v1.21.0-dev.3) (2024-05-07)

### Bug Fixes

* Change problematic translation string ([6b03f3a](6b03f3a169))
2024-05-07 14:01:16 +00:00
validcube
3ceb63be1d build: Downgrade intl to 0.18.1
1.19.0 is for beta channel atm
2024-05-07 20:53:43 +07:00
validcube
200483d733 ci: Always validate Dart file during translation 2024-05-07 20:51:34 +07:00
validcube
6b03f3a169 fix: Change problematic translation string 2024-05-07 20:51:01 +07:00
validcube
612a3bab49 build: Safely upgrade dependencies 2024-05-07 20:50:26 +07:00
ReVanced Bot
3ac08512f3 chore: Sync translations (#1888)
Co-authored-by: Pun Butrach <pun.butrach@gmail.com>
2024-05-06 21:24:51 +07:00
ReVanced Bot
1adc673c44 chore: Sync translations (#1842) 2024-04-29 10:24:25 +07:00
semantic-release-bot
1aa1bd84cf chore(release): 1.21.0-dev.2 [skip ci]
# [1.21.0-dev.2](https://github.com/ReVanced/revanced-manager/compare/v1.21.0-dev.1...v1.21.0-dev.2) (2024-04-28)

### Bug Fixes

* Download latest integrations non-pre-release ([4a72267](4a72267d41))
2024-04-28 21:49:47 +00:00
oSumAtrIX
4a72267d41 fix: Download latest integrations non-pre-release 2024-04-28 23:40:28 +02:00
oSumAtrIX
7e0f18e3b7 build: Bump dependencies 2024-04-28 23:39:20 +02:00
hellidox
aab5d4411b docs: Remove duplicate section in README (#1879)
[skip ci]
2024-04-23 18:29:06 +02:00
semantic-release-bot
e5d83f424a chore(release): 1.21.0-dev.1 [skip ci]
# [1.21.0-dev.1](https://github.com/ReVanced/revanced-manager/compare/v1.20.1...v1.21.0-dev.1) (2024-04-16)

### Features

* open browser when clicking on changelog link ([bc300d8](bc300d81d9))
2024-04-16 14:39:51 +00:00
Aunali321
bc300d81d9 feat: open browser when clicking on changelog link 2024-04-16 20:00:46 +05:30
dependabot[bot]
5e6cc86c7e build(deps-dev): bump semantic-release from 23.0.6 to 23.0.7 (#1844)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-05 14:57:28 +07:00
dependabot[bot]
d91ea62903 build(deps): bump flutter_local_notifications from 16.3.2 to 17.0.0 (#1848)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-05 14:57:16 +07:00
dependabot[bot]
f00dc4d3e6 build(deps): bump flutter_markdown from 0.6.20+1 to 0.6.22+1 (#1851)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-05 14:55:48 +07:00
dependabot[bot]
6c0c961ca0 build(deps): bump build_runner from 2.4.8 to 2.4.9 (#1850)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-05 14:54:31 +07:00
dependabot[bot]
a99de99202 build(deps): bump share_plus from 7.2.2 to 8.0.2 (#1853)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-05 14:53:59 +07:00
dependabot[bot]
a31ec9d1fe build(deps): bump permission_handler from 11.3.0 to 11.3.1 (#1852)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-05 14:53:30 +07:00
semantic-release-bot
a23f032fd2 chore(release): 1.20.1 [skip ci]
## [1.20.1](https://github.com/ReVanced/revanced-manager/compare/v1.20.0...v1.20.1) (2024-04-05)

### Bug Fixes

* Don't crash on patch ([a7e481c](a7e481c827))
2024-04-05 02:52:15 +00:00
Ushie
95a8234e2d chore: Merge branch dev to main (#1855) 2024-04-05 05:43:17 +03:00
Ushie
a7e481c827 fix: Don't crash on patch
This reverts commit 7833a0d552.
2024-04-05 05:35:36 +03:00
semantic-release-bot
975870e254 chore(release): 1.20.0 [skip ci]
# [1.20.0](https://github.com/ReVanced/revanced-manager/compare/v1.19.3...v1.20.0) (2024-04-05)

### Bug Fixes

* disable proguard obfuscation ([401646a](401646ace4))
* Do not crash when selecting an APK from storage ([#1768](https://github.com/ReVanced/revanced-manager/issues/1768)) ([8564c1a](8564c1a72e))
* Don't translation ReVanced repository ([c265794](c265794d0e))
* Ensure safe area usage in Changelogs Modal Bottom Sheet ([#1772](https://github.com/ReVanced/revanced-manager/issues/1772)) ([c981cb4](c981cb4a41))
* Pre-releases changelog being shown ([#1767](https://github.com/ReVanced/revanced-manager/issues/1767)) ([add49e1](add49e14fb))
* Replace Spacer with Expanded to avoid overflow ([#1791](https://github.com/ReVanced/revanced-manager/issues/1791)) ([6f70a07](6f70a07970))
* Set text colour on dropdown menu for Custom Value ([966796d](966796dfec)), closes [#1584](https://github.com/ReVanced/revanced-manager/issues/1584)
* **ui:** Support free-scroll and auto-scroll for the installer logs ([#1736](https://github.com/ReVanced/revanced-manager/issues/1736)) ([#1836](https://github.com/ReVanced/revanced-manager/issues/1836)) ([025ff52](025ff527ee))

### Features

* Improve language update settings ([#1838](https://github.com/ReVanced/revanced-manager/issues/1838)) ([f9e6ef3](f9e6ef3fd3))
2024-04-05 01:19:30 +00:00
Ushie
b7c838fd25 chore: Merge branch dev to main (#1763) 2024-04-05 04:11:17 +03:00
semantic-release-bot
3776674eb4 chore(release): 1.20.0-dev.1 [skip ci]
# [1.20.0-dev.1](https://github.com/ReVanced/revanced-manager/compare/v1.19.4-dev.7...v1.20.0-dev.1) (2024-04-05)

### Bug Fixes

* Do not crash when selecting an APK from storage ([#1768](https://github.com/ReVanced/revanced-manager/issues/1768)) ([8564c1a](8564c1a72e))

### Features

* Improve language update settings ([#1838](https://github.com/ReVanced/revanced-manager/issues/1838)) ([f9e6ef3](f9e6ef3fd3))
2024-04-05 01:10:39 +00:00
ReVanced Bot
4293e27681 chore: Sync translations (#1804) 2024-04-05 04:03:11 +03:00
aAbed
8564c1a72e fix: Do not crash when selecting an APK from storage (#1768) 2024-04-05 03:58:59 +03:00
Lam Thanh Nhan
f9e6ef3fd3 feat: Improve language update settings (#1838) 2024-04-05 03:55:16 +03:00
semantic-release-bot
e80ee09893 chore(release): 1.19.4-dev.7 [skip ci]
## [1.19.4-dev.7](https://github.com/ReVanced/revanced-manager/compare/v1.19.4-dev.6...v1.19.4-dev.7) (2024-04-04)

### Bug Fixes

* **ui:** Support free-scroll and auto-scroll for the installer logs ([#1736](https://github.com/ReVanced/revanced-manager/issues/1736)) ([#1836](https://github.com/ReVanced/revanced-manager/issues/1836)) ([025ff52](025ff527ee))
2024-04-04 02:35:20 +00:00
DMzS
025ff527ee fix(ui): Support free-scroll and auto-scroll for the installer logs (#1736) (#1836) 2024-04-04 09:27:47 +07:00
semantic-release-bot
35fdbb5988 chore(release): 1.19.4-dev.6 [skip ci]
## [1.19.4-dev.6](https://github.com/ReVanced/revanced-manager/compare/v1.19.4-dev.5...v1.19.4-dev.6) (2024-04-02)

### Bug Fixes

* disable proguard obfuscation ([401646a](401646ace4))
2024-04-02 16:19:30 +00:00
Ax333l
401646ace4 fix: disable proguard obfuscation 2024-04-02 18:09:38 +02:00
dependabot[bot]
a62a8852e7 build(deps): bump connectivity_plus from 5.0.2 to 6.0.1 (#1808)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 11:49:03 +07:00
dependabot[bot]
04a3df3642 build(deps): bump package_info_plus from 5.0.1 to 6.0.0 (#1806)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 11:48:46 +07:00
dependabot[bot]
ecb041187b build(deps-dev): bump semantic-release from 23.0.2 to 23.0.6 (#1816)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 11:43:57 +07:00
dependabot[bot]
1fd44e1cfc build(deps-dev): bump @droidsolutions-oss/semantic-release-update-file from 1.4.0-beta.1 to 1.4.0 (#1815)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 11:43:29 +07:00
dependabot[bot]
fb29036d0a build(deps): bump flutter_lints from 3.0.1 to 3.0.2 (#1805)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-01 10:18:52 +07:00
Ushie
aba2ed4378 ci: Don't specify bundle 2024-03-30 03:16:39 +03:00
Ushie
076e17d670 chore: Don't preserve hierachy in Crowdin 2024-03-30 03:12:06 +03:00
semantic-release-bot
a971cbd519 chore(release): 1.19.4-dev.5 [skip ci]
## [1.19.4-dev.5](https://github.com/ReVanced/revanced-manager/compare/v1.19.4-dev.4...v1.19.4-dev.5) (2024-03-28)

### Bug Fixes

* Don't translation ReVanced repository ([c265794](c265794d0e))
2024-03-28 06:23:34 +00:00
Pun Butrach
c265794d0e fix: Don't translation ReVanced repository
Regex:

,
    "patcherContributors":.*,
    "patchesContributors":.*,
    "integrationsContributors":.*,
    "cliContributors":.*,
    "managerContributors":.*
2024-03-28 06:13:05 +00:00
semantic-release-bot
ecadb80113 chore(release): 1.19.4-dev.4 [skip ci]
## [1.19.4-dev.4](https://github.com/ReVanced/revanced-manager/compare/v1.19.4-dev.3...v1.19.4-dev.4) (2024-03-28)

### Bug Fixes

* Set text colour on dropdown menu for Custom Value ([966796d](966796dfec)), closes [#1584](https://github.com/ReVanced/revanced-manager/issues/1584)
2024-03-28 05:35:25 +00:00
Pun Butrach
9a66357f7a refactor: slight format change
This is so unreadable, there must've been a better way to do this.
2024-03-28 05:26:35 +00:00
Pun Butrach
63d83a43ad chore: Remove unused en_US file
This file contains absolulely nothing, whereabout: Unknown.
2024-03-28 05:20:32 +00:00
Pun Butrach
7833a0d552 build: Switch flutter_background to official sources
https://github.com/JulianAssmann/flutter_background/pull/79 is merged.
2024-03-28 05:17:49 +00:00
Pun Butrach
966796dfec fix: Set text colour on dropdown menu for Custom Value
This fix #1584 and a continuation of acb1e2434b

Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2024-03-28 05:15:02 +00:00
semantic-release-bot
2d19f36901 chore(release): 1.19.4-dev.3 [skip ci]
## [1.19.4-dev.3](https://github.com/ReVanced/revanced-manager/compare/v1.19.4-dev.2...v1.19.4-dev.3) (2024-03-28)

### Bug Fixes

* Replace Spacer with Expanded to avoid overflow ([#1791](https://github.com/ReVanced/revanced-manager/issues/1791)) ([6f70a07](6f70a07970))
2024-03-28 04:45:28 +00:00
Pun Butrach
6f70a07970 fix: Replace Spacer with Expanded to avoid overflow (#1791) 2024-03-28 11:38:07 +07:00
Pun Butrach
e85ed5a8e3 build: Bump language_code to v0.4.2
This fix #1714 regarding country name of es-AR (Argentina) does not exist.

Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2024-03-28 04:06:52 +00:00
Ushie
ad416387c2 ci(Crowdin): Specify bundle to download 2024-03-28 02:02:55 +03:00
kitadai31
58d8e7f34f build: Bump dependencies (#1796) 2024-03-27 13:46:37 +01:00
Pun Butrach
bb105b5662 chore(Branding): Update ReVanced Logo name (#1794) 2024-03-27 17:33:42 +07:00
semantic-release-bot
a71a930125 chore(release): 1.19.4-dev.2 [skip ci]
## [1.19.4-dev.2](https://github.com/ReVanced/revanced-manager/compare/v1.19.4-dev.1...v1.19.4-dev.2) (2024-03-23)

### Bug Fixes

* Ensure safe area usage in Changelogs Modal Bottom Sheet ([#1772](https://github.com/ReVanced/revanced-manager/issues/1772)) ([c981cb4](c981cb4a41))
2024-03-23 11:03:27 +00:00
github-actions[bot]
af7e39b7f0 chore(i18n): Sync translations (#1719)
Co-authored-by: revanced-bot <github@revanced.app>
2024-03-23 17:55:11 +07:00
DMzS
c981cb4a41 fix: Ensure safe area usage in Changelogs Modal Bottom Sheet (#1772) 2024-03-23 17:51:17 +07:00
Pun Butrach
3ea6ef0bbf ci(Dependabot): Add Gradle ecosystem to RVM Flutter 2024-03-22 04:54:57 +00:00
Pun Butrach
2772a96727 docs(Build): Shorten build_runner args 2024-03-22 04:41:34 +00:00
oSumAtrIX
50b4a5f1d8 ci: Fix PR build success message 2024-03-18 11:51:07 +01:00
semantic-release-bot
e52a6ce734 chore(release): 1.19.4-dev.1 [skip ci]
## [1.19.4-dev.1](https://github.com/ReVanced/revanced-manager/compare/v1.19.3...v1.19.4-dev.1) (2024-03-17)

### Bug Fixes

* Pre-releases changelog being shown ([#1767](https://github.com/ReVanced/revanced-manager/issues/1767)) ([add49e1](add49e14fb))
2024-03-17 17:22:14 +00:00
aAbed
add49e14fb fix: Pre-releases changelog being shown (#1767) 2024-03-17 10:14:22 -07:00
Pun Butrach
ab13895196 docs(Security): Improve badges' accessibility
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2024-03-11 15:05:40 +07:00
Pun Butrach
846afb420b ci(PR Sync): Use revanced-bot acount
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2024-03-11 14:59:29 +07:00
Pun Butrach
dca8a1dab6 ci(Crowdin): Add workflow change to trigger event
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2024-03-11 14:49:46 +07:00
Pun Butrach
d1c36c1bcc ci(Crowdin): Improve configuration of the workflow
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2024-03-11 14:49:13 +07:00
semantic-release-bot
c209c32613 chore(release): 1.19.3 [skip ci]
## [1.19.3](https://github.com/ReVanced/revanced-manager/compare/v1.19.2...v1.19.3) (2024-03-09)

### Bug Fixes

* Copy APK to working directory before trying to write to it ([5cd1cba](5cd1cba668))
2024-03-09 09:16:08 +00:00
oSumAtrIX
9e5e89ac95 chore: Merge branch dev to main (#1756) 2024-03-09 10:09:13 +01:00
semantic-release-bot
7cc6b88e4e chore(release): 1.19.3-dev.1 [skip ci]
## [1.19.3-dev.1](https://github.com/ReVanced/revanced-manager/compare/v1.19.2...v1.19.3-dev.1) (2024-03-09)

### Bug Fixes

* Copy APK to working directory before trying to write to it ([5cd1cba](5cd1cba668))
2024-03-09 09:09:02 +00:00
oSumAtrIX
5cd1cba668 fix: Copy APK to working directory before trying to write to it 2024-03-09 10:01:36 +01:00
oSumAtrIX
ca365bac6e build: Bump dependencies to fix generating keystore 2024-03-09 09:58:41 +01:00
semantic-release-bot
f1fc48ce5a chore(release): 1.19.2 [skip ci]
## [1.19.2](https://github.com/ReVanced/revanced-manager/compare/v1.19.1...v1.19.2) (2024-03-09)

### Bug Fixes

* App list is empty if all apps are installed ([#1750](https://github.com/ReVanced/revanced-manager/issues/1750)) ([1f5461f](1f5461fbe5))
* Fix white-screen when trying to install conflicting apps ([4acd738](4acd738353))
2024-03-09 03:55:35 +00:00
oSumAtrIX
316e440d0d chore: Merge branch dev to main (#1739) 2024-03-09 04:48:12 +01:00
oSumAtrIX
95018814a7 ci: Bump dependencies to fix release workflow 2024-03-09 04:44:38 +01:00
oSumAtrIX
b52e49d90a build: Bump dependencies to fix signing issues 2024-03-09 04:39:58 +01:00
oSumAtrIX
4acd738353 fix: Fix white-screen when trying to install conflicting apps
When you tried to install a patched app, but it conflicted with an existing installation, the screen would go blank. This was caused by trying to use an argument on a translation with no arguments.
2024-03-09 04:39:58 +01:00
semantic-release-bot
982249f974 chore(release): 1.19.2-dev.1 [skip ci]
## [1.19.2-dev.1](https://github.com/ReVanced/revanced-manager/compare/v1.19.1...v1.19.2-dev.1) (2024-03-08)

### Bug Fixes

* App list is empty if all apps are installed ([#1750](https://github.com/ReVanced/revanced-manager/issues/1750)) ([1f5461f](1f5461fbe5))
2024-03-08 14:49:35 +00:00
Nikita
1f5461fbe5 fix: App list is empty if all apps are installed (#1750)
Co-authored-by: Nikita <n.petrjakov@niitp.in>
2024-03-08 21:41:16 +07:00
oSumAtrIX
adb7e5663a docs: Fix small mistakes [skip ci] 2024-03-05 14:58:11 +01:00
Benjamin
ffc14f2146 chore: Upgrade dependencies (#1734) 2024-03-05 14:09:02 +07:00
semantic-release-bot
0c57322051 chore(release): 1.19.1 [skip ci]
## [1.19.1](https://github.com/ReVanced/revanced-manager/compare/v1.19.0...v1.19.1) (2024-03-05)

### Bug Fixes

* Keep names for needed classes to fix crash at launch ([eef7016](eef701615b))
2024-03-05 02:29:37 +00:00
oSumAtrIX
a8b7debf8d chore: Merge branch dev to main (#1729) 2024-03-05 03:22:11 +01:00
oSumAtrIX
7ed9787b58 ci: Add workflow to open a PR to main 2024-03-05 03:21:07 +01:00
oSumAtrIX
eef701615b fix: Keep names for needed classes to fix crash at launch 2024-03-05 03:19:20 +01:00
semantic-release-bot
97d8519b8b chore(release): 1.19.0 [skip ci]
# [1.19.0](https://github.com/ReVanced/revanced-manager/compare/v1.18.0...v1.19.0) (2024-03-05)

### Bug Fixes

* added a trailing comma ([975180b](975180b075))
* adjust padding ([3559477](3559477247))
* Allow mounting without Magisk ([3f96608](3f96608398))
* Bump dependencies to support BCS keystore ([6ec6546](6ec6546cc5))
* Do not delete files from post-fs-data.d ([70a1086](70a1086edf))
* Fix patched APKs exports after installation ([1200360](1200360588))
* fix redundant buttons on dialog ([079c0de](079c0defaf))
* Incorrect strings and logics ([#1619](https://github.com/ReVanced/revanced-manager/issues/1619)) ([4f22e88](4f22e88e42))
* **Keystore Password:** textfield title display ([8e52abd](8e52abda9a))
* Mount script causes build to fail ([#1613](https://github.com/ReVanced/revanced-manager/issues/1613)) ([f3c78c2](f3c78c2c24))
* **Patch Option:** Set text colour on dropdown menu ([acb1e24](acb1e2434b))
* **PopScope:** User able to exit patch screen when the installer is still running ([#1663](https://github.com/ReVanced/revanced-manager/issues/1663)) ([eb6d3cd](eb6d3cd64e))
* **Release CI:** truncate the "v" from version ([8595099](85950991ab))
* Show version label correctly ([c72d10a](c72d10ac85))
* Specify that dark theme is dark ([#1699](https://github.com/ReVanced/revanced-manager/issues/1699)) ([d4b15ae](d4b15aee4d))
* Stop patch when signing fails ([#1553](https://github.com/ReVanced/revanced-manager/issues/1553)) ([5b2c551](5b2c55142e))
* **Update Confirmation Sheet:** Add top padding ([9aeb156](9aeb156d92))
* Use correct title size for bottom sheet ([#1687](https://github.com/ReVanced/revanced-manager/issues/1687)) ([3436523](34365239c1))
* Use correct version code & name ([#1647](https://github.com/ReVanced/revanced-manager/issues/1647)) ([d933997](d933997c89))
* use lowercase repo names ([#1626](https://github.com/ReVanced/revanced-manager/issues/1626)) ([edd8602](edd86024b9))

### Features

* Add a toggle for alternative sources ([#1686](https://github.com/ReVanced/revanced-manager/issues/1686)) ([f89c742](f89c742c90))
* Add API migration code ([#1615](https://github.com/ReVanced/revanced-manager/issues/1615)) ([28ae276](28ae2766f0))
* add haptic feedback ([#1459](https://github.com/ReVanced/revanced-manager/issues/1459)) ([7911459](7911459817))
* Allow changing languages ([#1488](https://github.com/ReVanced/revanced-manager/issues/1488)) ([f82c439](f82c439b26))
* Display current app language at the top of the list ([aa0575a](aa0575a637))
* Hide the Install button during installation ([#1633](https://github.com/ReVanced/revanced-manager/issues/1633)) ([3e696d6](3e696d6847))
* Improve app selector and patcher UI ([#1616](https://github.com/ReVanced/revanced-manager/issues/1616)) ([efb2d5e](efb2d5ef32))
* Improve consistency on language selector ([b2119ce](b2119ce60e))
* Improve language distinguishness and resolve language-specific issues ([#1706](https://github.com/ReVanced/revanced-manager/issues/1706)) ([6d866d4](6d866d4424))
* Improve Split APK warning readability ([#1625](https://github.com/ReVanced/revanced-manager/issues/1625)) ([6fd740f](6fd740f8c0))
* Show a dialog when an update is available ([#1654](https://github.com/ReVanced/revanced-manager/issues/1654)) ([c7d975e](c7d975e612))
* Simplify settings strings ([#1618](https://github.com/ReVanced/revanced-manager/issues/1618)) ([0d45fe4](0d45fe4a97))
* Use more appropriate progress values ([2d7026a](2d7026ac7a))
* use native TextField ([9ed43ef](9ed43efe5d))

### Performance Improvements

* Load patched apps as soon as possible ([c94eb7a](c94eb7a48e))

### Reverts

* WillPopScope migration ([3b0fed5](3b0fed55e4))
2024-03-05 01:57:21 +00:00
oSumAtrIX
00210f7f0e chore: Workaround CI bug by setting the expected version 2024-03-05 02:49:42 +01:00
Pun Butrach
cea4c6c27a chore: Merge dev to main (#1611)
100 commits 
2024-03-05 07:48:42 +07:00
semantic-release-bot
bc83a39b0f chore(release): 1.19.0-dev.21 [skip ci]
# [1.19.0-dev.21](https://github.com/ReVanced/revanced-manager/compare/v1.19.0-dev.20...v1.19.0-dev.21) (2024-03-05)

### Features

* Display current app language at the top of the list ([aa0575a](aa0575a637))
2024-03-05 00:12:19 +00:00
Ushie
aa0575a637 feat: Display current app language at the top of the list 2024-03-05 03:04:01 +03:00
semantic-release-bot
4ca7b8a7c1 chore(release): 1.19.0-dev.20 [skip ci]
# [1.19.0-dev.20](https://github.com/ReVanced/revanced-manager/compare/v1.19.0-dev.19...v1.19.0-dev.20) (2024-03-04)

### Bug Fixes

* Bump dependencies to support BCS keystore ([6ec6546](6ec6546cc5))
2024-03-04 14:56:19 +00:00
oSumAtrIX
6ec6546cc5 fix: Bump dependencies to support BCS keystore 2024-03-04 15:48:13 +01:00
oSumAtrIX
c5e04cc824 build: Bump dependencies 2024-03-04 13:53:33 +01:00
semantic-release-bot
4fc913eae1 chore(release): 1.19.0-dev.19 [skip ci]
# [1.19.0-dev.19](https://github.com/ReVanced/revanced-manager/compare/v1.19.0-dev.18...v1.19.0-dev.19) (2024-03-04)

### Bug Fixes

* Fix patched APKs exports after installation ([1200360](1200360588))

### Features

* Use more appropriate progress values ([2d7026a](2d7026ac7a))
2024-03-04 12:51:06 +00:00
oSumAtrIX
2d7026ac7a feat: Use more appropriate progress values 2024-03-04 13:43:35 +01:00
oSumAtrIX
1200360588 fix: Fix patched APKs exports after installation 2024-03-04 13:43:34 +01:00
semantic-release-bot
02722fc0be chore(release): 1.19.0-dev.18 [skip ci]
# [1.19.0-dev.18](https://github.com/ReVanced/revanced-manager/compare/v1.19.0-dev.17...v1.19.0-dev.18) (2024-03-04)
2024-03-04 12:25:39 +00:00
oSumAtrIX
2e1de94623 chore: Fix builds 2024-03-04 13:14:30 +01:00
oSumAtrIX
10bae69db6 build(Needs bump): Bump dependencies (#1717) 2024-03-04 12:47:38 +01:00
oSumAtrIX
6dee3aa1b7 docs: Fix consistency issues with other repositories (#1707) 2024-03-04 12:42:46 +01:00
github-actions[bot]
e76418d48d chore: Sync translations (#1701) 2024-03-04 11:28:34 +01:00
Pun Butrach
52e1020a90 chore(Dependency): Switch language_code back to Upstream version 2024-03-04 13:31:51 +07:00
Pun Butrach
c170392123 ci(Release): Use ReVanced account instead of semantic-release 2024-03-04 11:51:54 +07:00
Benjamin
d414a91f40 ci: Match changelog format of other ReVanced repos (#1705) 2024-02-26 03:01:30 +01:00
semantic-release-bot
6d6fae1ecd chore(release): 1.19.0-dev.17 [skip ci]
## Features
* Improve language distinguishness and resolve language-specific issues (#1706) ([Ushie](6d866d4424))
2024-02-26 01:15:28 +00:00
Ushie
6d866d4424 feat: Improve language distinguishness and resolve language-specific issues (#1706) 2024-02-26 08:08:14 +07:00
semantic-release-bot
f4dea6e58c chore(release): 1.19.0-dev.16 [skip ci]
## Features
* Hide the Install button during installation (#1633) ([Eray Erdin (&mut self)](3e696d6847))
## Bug Fixes
* Show version label correctly ([oSumAtrIX](c72d10ac85))
2024-02-25 20:57:07 +00:00
oSumAtrIX
c72d10ac85 fix: Show version label correctly 2024-02-25 21:49:38 +01:00
Eray Erdin (&mut self)
3e696d6847 feat: Hide the Install button during installation (#1633)
Co-authored-by: Ushie <ushiekane@gmail.com>
2024-02-25 23:48:52 +03:00
semantic-release-bot
28d6ab692e chore(release): 1.19.0-dev.15 [skip ci]
## Bug Fixes
* Specify that dark theme is dark (#1699) ([Benjamin](d4b15aee4d))
## Documentation
* Switch order of note and tip [skip ci] ([oSumAtrIX](d0689555f1))
## Continuous Integration
* **Release:** Remove unnecessary upload (#1695) ([Benjamin](82d6e3f105))
## Chores
* **i18n:** Sync translations (#1694) ([github-actions[bot]](f7747809f2))
2024-02-25 02:50:24 +00:00
github-actions[bot]
f7747809f2 chore(i18n): Sync translations (#1694)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: revanced-bot <github@revanced.app>
2024-02-25 09:42:15 +07:00
Benjamin
d4b15aee4d fix: Specify that dark theme is dark (#1699) 2024-02-25 09:37:55 +07:00
oSumAtrIX
d0689555f1 docs: Switch order of note and tip [skip ci] 2024-02-25 01:01:00 +01:00
Benjamin
82d6e3f105 ci(Release): Remove unnecessary upload (#1695) 2024-02-20 06:41:03 +07:00
semantic-release-bot
244d078b11 chore(release): 1.19.0-dev.14 [skip ci]
## Features
* Add a toggle for alternative sources (#1686) ([aAbed](f89c742c90))
2024-02-19 14:49:04 +00:00
aAbed
f89c742c90 feat: Add a toggle for alternative sources (#1686)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2024-02-19 20:26:42 +05:45
semantic-release-bot
ce5088ab53 chore(release): 1.19.0-dev.13 [skip ci]
## Chores
* **i18n:** Sync translations (#1688) ([github-actions[bot]](0443c8c200))
* Upgrade dependencies (#1693) ([Benjamin](8a4161753e))
2024-02-18 22:40:36 +00:00
github-actions[bot]
0443c8c200 chore(i18n): Sync translations (#1688)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: revanced-bot <github@revanced.app>
2024-02-19 05:33:11 +07:00
Benjamin
8a4161753e chore: Upgrade dependencies (#1693) 2024-02-19 05:31:24 +07:00
semantic-release-bot
f2e7071f6d chore(release): 1.19.0-dev.12 [skip ci]
## Documentation
* Add a tip for the prompt to select an APK from storage ([oSumAtrIX](bfe59ea57a))
* Adjust footnote regarding obtaining APK files ([oSumAtrIX](f5ba84d81e))
* Use consistent wording ([oSumAtrIX](933c71923e))
## Code Refactoring
* PopScope Migration (#1674) ([Pun Butrach](3b58d229da))
## Continuous Integration
* Dependabot (#1692) ([Benjamin](25d53ce9a8))
2024-02-18 22:05:57 +00:00
Benjamin
25d53ce9a8 ci: Dependabot (#1692)
And accept more commit.

Co-authored-by: Pun Butrach <pun.butrach@gmail.com>
2024-02-19 04:58:29 +07:00
Pun Butrach
3b58d229da refactor: PopScope Migration (#1674)
Co-authored-by: Benjamin Halko <benjaminhalko@hotmail.com>
2024-02-18 08:32:32 +07:00
oSumAtrIX
f5ba84d81e docs: Adjust footnote regarding obtaining APK files 2024-02-15 19:03:35 +01:00
oSumAtrIX
933c71923e docs: Use consistent wording 2024-02-15 18:55:54 +01:00
oSumAtrIX
bfe59ea57a docs: Add a tip for the prompt to select an APK from storage 2024-02-15 18:54:32 +01:00
semantic-release-bot
953209ca13 chore(release): 1.19.0-dev.11 [skip ci]
## Features
* Improve consistency on language selector ([Pun Butrach](b2119ce60e))
## Code Refactoring
* Check-in pubspec.lock ([Pun Butrach](5a24911fad))
## Build System
* Bump Gradle to v8.6 ([Pun Butrach](f57898a471))
* Enable ProGuard (#1650) ([kitadai31](b754a045eb))
## Continuous Integration
* **build:** Upload build artifact ([Pun Butrach](e0c750d27e))
## Chores
* Update .gitignore ([Pun Butrach](0ec6897fda))
2024-02-15 09:48:29 +00:00
Pun Butrach
b2119ce60e feat: Improve consistency on language selector 2024-02-15 16:41:09 +07:00
Pun Butrach
e0c750d27e ci(build): Upload build artifact 2024-02-15 16:31:19 +07:00
kitadai31
b754a045eb build: Enable ProGuard (#1650) 2024-02-15 16:24:24 +07:00
Pun Butrach
5a24911fad refactor: Check-in pubspec.lock 2024-02-15 08:17:11 +00:00
Pun Butrach
0ec6897fda chore: Update .gitignore 2024-02-15 08:17:10 +00:00
Pun Butrach
f57898a471 build: Bump Gradle to v8.6 2024-02-15 08:17:10 +00:00
semantic-release-bot
3ee29c2256 chore(release): 1.19.0-dev.10 [skip ci]
## Chores
* **i18n:** Sync translations (#1685) ([github-actions[bot]](31a32eb11d))
## Reverts
* WillPopScope migration ([Pun Butrach](3b0fed55e4))
2024-02-15 08:08:25 +00:00
Pun Butrach
3b0fed55e4 revert: WillPopScope migration
This reverts commit ef9b1d5c2d.

Why is this so hard to implement??? Are we missing something??
2024-02-15 08:00:52 +00:00
github-actions[bot]
31a32eb11d chore(i18n): Sync translations (#1685)
Co-authored-by: Crowdin Bot <support+bot@crowdin.com>
Co-authored-by: revanced-bot <github@revanced.app>
2024-02-13 13:26:08 +07:00
oSumAtrIX
bb1b0da749 chore: merge dev to main (#1573) 2023-12-23 22:43:10 +01:00
124 changed files with 8065 additions and 4025 deletions

View File

@@ -1,61 +0,0 @@
name: 🐞 Bug report
description: Create a new bug report.
title: 'bug: <title>'
labels: [bug]
body:
- type: markdown
attributes:
value: |
# ReVanced Manager bug report
Please check for existing issues [here](https://github.com/revanced/revanced-manager/labels/bug) before creating a new one.
- type: textarea
attributes:
label: Bug description
description: |
- Describe your bug in detail
- Add steps to reproduce the bug if possible (Step 1. Download some files. Step 2. ...)
- Add images and videos if possible
- List selected patches if applicable
validations:
required: true
- type: textarea
attributes:
label: Version of ReVanced Manager and version & name of application you tried to patch
validations:
required: true
- type: dropdown
attributes:
label: Installation type
options:
- Non-root
- Root
validations:
required: false
- type: textarea
attributes:
label: Device logs
description: Export logs in ReVanced Manager settings.
render: shell
validations:
required: true
- type: textarea
attributes:
label: Patcher logs
description: Export logs in "Patcher" screen.
render: shell
validations:
required: false
- type: checkboxes
attributes:
label: Acknowledgements
description: Your issue will be closed if you don't follow the checklist below!
options:
- label: This request is not a duplicate of an existing issue.
required: true
- label: I have chosen an appropriate title.
required: true
- label: All requested information has been provided properly.
required: true
- label: The issue is solely related to the ReVanced Manager
required: true

126
.github/ISSUE_TEMPLATE/bug_report.yml vendored Normal file
View File

@@ -0,0 +1,126 @@
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 +1,5 @@
blank_issues_enabled: false
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!

View File

@@ -1,42 +0,0 @@
name: ⭐ Feature request
description: Create a new feature request.
title: 'feat: <title>'
labels: 'feature request'
body:
- type: markdown
attributes:
value: |
# ReVanced Manager feature request
Please check for existing feature requests [here](https://github.com/revanced/revanced-manager/labels/bug) before creating a new one.
- type: textarea
attributes:
label: Feature description
description: Describe your feature in detail.
validations:
required: true
- type: textarea
attributes:
label: Motivation
description: Explain why the lack of it is a problem.
validations:
required: true
- type: textarea
attributes:
label: Additional context
description: In case there is something else you want to add.
validations:
required: false
- type: checkboxes
attributes:
label: Acknowledgements
description: Your issue will be closed if you don't follow the checklist below!
options:
- label: This request is not a duplicate of an existing issue.
required: true
- label: I have chosen an appropriate title.
required: true
- label: All requested information has been provided properly.
required: true
- label: The issue is solely related to the ReVanced Manager
required: true

View File

@@ -0,0 +1,106 @@
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 +1,2 @@
firstPRMergeComment: >
Thank you for contributing to ReVanced. Join us on [Discord](https://revanced.app/discord) if you want to receive a contributor role.
Thank you for contributing to ReVanced. Join us on [Discord](https://revanced.app/discord) to receive a role for your contribution.

38
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,38 @@
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,23 +1,15 @@
name: PR Build
name: Build pull request
on:
workflow_dispatch:
inputs:
# Flutter
flutter-branch:
description: Flutter branch
type: choice
default: 'stable'
options:
- stable
- beta
- dev
- master
# Enable or disable cache
flutter-cache:
description: Cache
type: boolean
default: true
# Application configuration
# Select app flavour
app-flavour:
description: App flavour
default: 'release'
@@ -26,22 +18,23 @@ on:
- release
- debug
- profile
# Pull Request
# Select pull request
pr-number:
description: PR number (No hashtag)
description: PR number (Without hashtag)
required: true
run-name: "Build PR ${{ inputs.pr-number }}"
run-name: "Build pull request ${{ inputs.pr-number }}"
jobs:
build:
name: Build the application
name: Build
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Setup
- name: Setup pull request
env:
GH_TOKEN: ${{ github.token }}
run: |
@@ -50,73 +43,74 @@ jobs:
gh repo set-default "${{ github.repository }}"
gh pr checkout "${{ inputs.pr-number }}"
echo "DATETIME=$( TZ='UTC+0' date --rfc-email )" >> $GITHUB_ENV
echo "COMMIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: false
- name: Setup JDK
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'zulu'
cache: gradle
- name: Setup Flutter
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: ${{ inputs.flutter-branch }}
channel: "stable"
cache: ${{ inputs.flutter-cache }}
- name: Install Flutter dependencies
- name: Get dependencies
run: flutter pub get
- name: Generate translation with Slang
- name: Generate translations
run: dart run slang
- name: Generate files with Builder
run: dart run build_runner build --delete-conflicting-outputs
- name: Build with Flutter
- 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 to comment
- name: Prepare comment
run: |
if [[ "${{ steps.flutter-build.outcome }}" == "success" ]]; then
echo "MESSAGE=✅ ReVanced Manager ${{ env.COMMIT_HASH }} build succeeded." >> $GITHUB_ENV
echo "MESSAGE=✅ Succeeded build on ${{ env.COMMIT_HASH }}." >> $GITHUB_ENV
else
echo "MESSAGE=🚫 ReVanced Manager ${{ env.COMMIT_HASH }} build failed." >> $GITHUB_ENV
echo "MESSAGE=🚫 Failed build on ${{ env.COMMIT_HASH }}." >> $GITHUB_ENV
fi
- name: "Comment to Pull Request #${{ inputs.pr-number }}"
- 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: |
## ⚒️ ReVanced PR Build workflow
## ⚒️ Build status
${{ env.MESSAGE }}
You can see more details in run [${{ github.run_id }}](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})!
Details: [${{ github.run_id }}](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})!
### ⚙️ Overview
### ⚙️ Workflow run configuration
- Flutter cache: ${{ inputs.flutter-cache }}
- App flavor: ${{ inputs.app-flavour }}
- Branch: ${{ inputs.flutter-branch }}
- Start time: ${{ env.DATETIME }}
- name: Upload build
uses: actions/upload-artifact@v3
- 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 }})-${{ inputs.flutter-branch }}
path: |
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

28
.github/workflows/open_pull_request.yml vendored Normal file
View File

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

@@ -1,4 +1,4 @@
name: "Release Build"
name: Release
on:
workflow_dispatch:
@@ -7,49 +7,51 @@ on:
- main
- dev
paths:
- ".github/workflows/release-build.yml"
- ".github/workflows/release.yml"
- "android/**"
- "assets/**"
- "lib/**"
- ".releaserc.js"
- "pubspec.yaml"
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up JDK
uses: actions/setup-java@v4
- name: Checkout
uses: actions/checkout@v4
with:
java-version: "17"
distribution: "zulu"
fetch-depth: 0
- uses: subosito/flutter-action@v2
- 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: Cache Node modules
uses: actions/cache@v4
with:
path: |
node_modules
key: npm-${{ hashFiles('package-lock.json') }}
- name: Setup semantic-release
- name: Install dependencies
run: npm install
- name: Set up Flutter
- name: Get dependencies
run: flutter pub get
- name: Generate translation with Slang
- name: Generate translations
run: dart run slang
- name: Generate files with Builder
- name: Generate code files
run: dart run build_runner build --delete-conflicting-outputs
- name: Build with Flutter
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_TOKEN: ${{ secrets.REPOSITORY_PUSH_ACCESS }}
signingKey: "keystore.jks"
keyStorePassword: ${{ secrets.SIGNING_KEYSTORE_PASSWORD }}
keyAlias: ${{ secrets.SIGNING_KEY_ALIAS }}

View File

@@ -1,12 +1,18 @@
name: Crowdin Action
name: Sync Crowdin
on:
workflow_dispatch:
schedule:
- cron: 00 12 * * 1
push:
branches: [dev]
paths:
- assets/i18n/*.json
- assets/i18n/*.dart
- .github/workflows/sync_crowdin.yml
jobs:
synchronize-with-crowdin:
sync:
name: Sync
runs-on: ubuntu-latest
steps:
- name: Checkout
@@ -14,10 +20,10 @@ jobs:
with:
fetch-depth: 0
- name: Set up Dart
- name: Setup Dart
uses: dart-lang/setup-dart@v1
- name: Sync translation from Crowdin
- name: Sync translations from Crowdin
uses: crowdin/github-action@v1
with:
config: crowdin.yml
@@ -26,28 +32,32 @@ jobs:
download_translations: true
localization_branch_name: feat/translations
create_pull_request: true
pull_request_title: "chore(i18n): Sync translations"
pull_request_body: "Sync translations from [Crowdin/ReVanced](https://crowdin.com/project/revanced)"
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(i18n): Sync translations"
commit_message: "chore: Sync translations"
github_user_name: revanced-bot
github_user_email: github@revanced.app
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
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 *
sudo chmod 777 *.json
dart nuke.dart >> $GITHUB_STEP_SUMMARY
- name: Push out changes to i10n
- name: Validation of Translation Strings
run: |
dart analyze lib/gen/strings.g.dart
- 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(Translation): Remove empty values from JSON" assets/i18n/*.json
git commit -m "chore: Remove empty values from JSON" assets/i18n/*.json
git push origin HEAD:feat/translations
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@@ -11,7 +11,7 @@ jobs:
name: Dispatch event to documentation repository
if: github.ref == 'refs/heads/main'
steps:
- uses: peter-evans/repository-dispatch@v2
- uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.DOCUMENTATION_REPO_ACCESS_TOKEN }}
repository: revanced/revanced-documentation

172
.gitignore vendored
View File

@@ -1,14 +1,40 @@
# Miscellaneous
*.class
*.lock
*.log
*.pyc
*.swp
.DS_Store
.atom/
.buildlog/
.history
.svn/
# 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
# IntelliJ related
@@ -17,129 +43,7 @@ local.properties
*.iws
.idea/
# Visual Studio Code related
.classpath
.project
.settings/
# 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
.gradle/
**/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
# Dependency directories
# Node Dependency directories
node_modules/
# FVM

64
.releaserc Normal file
View File

@@ -0,0 +1,64 @@
{
"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
}
]
]
}

View File

@@ -1,117 +0,0 @@
module.exports = {
"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",
{
preset: "conventionalcommits",
presetConfig: {
types: [
{ type: "feat", section: "Features" },
{ type: "fix", section: "Bug Fixes" },
{ type: "docs", section: "Documentation" },
{ type: "style", section: "Styles" },
{ type: "refactor", section: "Code Refactoring" },
{ type: "perf", section: "Performance Improvements" },
{ type: "test", section: "Tests" },
{ type: "build", section: "Build System" },
{ type: "ci", section: "Continuous Integration" },
{ type: "chore", section: "Chores" },
{ type: "revert", section: "Reverts" },
]
},
writerOpts: {
transform: (commit, context) => {
if (commit.author.name === "semantic-release-bot") return;
const types = {
feat: "Features",
fix: "Bug Fixes",
docs: "Documentation",
style: "Styles",
refactor: "Code Refactoring",
perf: "Performance Improvements",
test: "Tests",
build: "Build System",
ci: "Continuous Integration",
chore: "Chores",
revert: "Reverts",
}
commit.type = types[commit.type];
return commit;
},
commitPartial: "* {{#if scope}}**{{scope}}:** {{/if}}{{subject}} ([{{author.name}}]({{~@root.host}}/{{~@root.owner}}/{{~@root.repository}}/commit/{{hash}}))\n",
mainTemplate: `
{{#each commitGroups}}
{{#if title}}
## {{title}}
{{/if}}
{{#each commits}}
{{> commit root=@root}}
{{/each}}
{{/each}}
`
}
}
],
[
"@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
}
]
],
};

View File

@@ -13,8 +13,8 @@
<br>
<a href="https://revanced.app/">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="assets/revanced-logo/revanced-logo-round.svg" />
<img height="24px" src="assets/revanced-logo/revanced-logo-round.svg" />
<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">
@@ -71,33 +71,33 @@ This document describes how to contribute to ReVanced Manager.
## 🙏 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-issue.yml&title=feat%3A+%3Ctitle%3E).
[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]
> We may reject your request at the discretion of ReVanced Manager's maintainers,
> please provide good motivation for a request to be accepted.
> **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 the ReVanced Manager app, open an issue using the
[bug report issue template](https://github.com/ReVanced/revanced-manager/issues/new?assignees=&labels=bug&projects=&template=bug-issue.yml&title=bug%3A+%3Ctitle%3E).
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
> [!TIP]
> We recommend that you discuss your changes with
> the maintainers of ReVanced Manager before contributing.
> This will help you determine whether your change is acceptable.
1. Fork the repository and create a new branch based off the `dev` branch
2. Commit your changes
3. Open a pull request to the `dev` branch and reference issues that your pull request closes
4. The maintainers of ReVanced Manager will review and provide suggestions.
Once your pull request is approved and merged, it will be included in the next release of ReVanced Manager
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.
❤️ Thank you for considering contributing to ReVanced Manager,
ReVanced

View File

@@ -13,8 +13,8 @@
<br>
<a href="https://revanced.app/">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="assets/revanced-logo/revanced-logo-round.svg" />
<img height="24px" src="assets/revanced-logo/revanced-logo-round.svg" />
<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">
@@ -60,38 +60,46 @@
# 💊 ReVanced Manager
[![GitHub last commit](https://img.shields.io/github/last-commit/ReVanced/revanced-manager)](https://github.com/ReVanced/revanced-manager/commits "")
[![GitHub commit activity](https://img.shields.io/github/commit-activity/w/ReVanced/revanced-manager)](https://github.com/ReVanced/revanced-manager/commits "")
![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)
ReVanced Manager is an Android application that uses ReVanced Patcher to add, remove, and modify existing functionalities in Android applications.
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 we provide are:
Some of the features ReVanced Manager provides are:
* 📱 **Portable**: ReVanced Patcher that fit in your pocket;
* 🤗 **Intuitive UI**: Help you manage your patched applications with easy-to-use interface;
* 🛠️ **Customization**: Patch with third-party sources;
* ✨ And a **lot more!**
- 💉 **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
## 🔽 Download
You can get ReVanced Manager by downloading from [ReVanced site](https://revanced.app/download) or [GitHub releases](https://github.com/ReVanced/revanced-manager/releases).
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).
## 📚 Everything else
### 📙 Contributing
Thank you for considering contributing to ReVanced Manager.
You can find the contribution guidelines [here](CONTRIBUTING.md).
### 🛠️ Building
To build a ReVanced Manager, you can follow the [documentation](/docs).
### 📄 Documentation
Documentation on how to use the application is available [here](/docs/README.md).
### 👋 Contributing
Thank you for considering contributing to ReVanced Manager, you can find the contribution guidelines [here](/CONTRIBUTING.md).
### 🔴 Issues
For suggestions and bug reports, open an issue [here](https://github.com/ReVanced/revanced-manager/issues/choose).
You can find the documentation for ReVanced Manager [here](/docs).
## ⚖️ License
ReVanced Manager adopts the [GNU General Public License 3.0](/LICENSE), [tl;dr](https://www.tldrlegal.com/license/gnu-general-public-license-v3-gpl-3): You may copy, distribute and modify the software as long as you track changes/dates in source files. Any modifications to or software including (via compiler) GPL-licensed code must also be made available under the GPL along with build & install instructions.
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.

View File

@@ -13,8 +13,8 @@
<br>
<a href="https://revanced.app/">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="assets/revanced-logo/revanced-logo-round.svg" />
<img height="24px" src="assets/revanced-logo/revanced-logo-round.svg" />
<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">
@@ -70,8 +70,8 @@ If a vulnerability is confirmed and accepted, you can join our [Discord](https:/
### ⏳ Supported Versions
| Version | Branch | Supported |
| -------------------------------------------------------------------------------------------------------- | ----------- | ------------------ |
| ![GitHub Release](https://img.shields.io/github/v/release/ReVanced/revanced-manager?style=for-the-badge) | main | :white_check_mark: |
| ![Static Badge](https://img.shields.io/badge/version-latest-brightgreen?style=for-the-badge) | dev | :white_check_mark: |
| ![Static Badge](https://img.shields.io/badge/version-latest-brightgreen?style=for-the-badge) | compose-dev | :white_check_mark: |
| 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

@@ -23,7 +23,7 @@ if (flutterVersionName == null) {
}
android {
compileSdk 34
compileSdk flutter.compileSdkVersion
ndkVersion flutter.ndkVersion
compileOptions {
@@ -45,8 +45,6 @@ android {
}
buildTypes {
release {
shrinkResources false
minifyEnabled false
ndk {
abiFilters 'arm64-v8a', 'armeabi-v7a', 'x86_64'
}
@@ -115,12 +113,6 @@ flutter {
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
// ReVanced
implementation "app.revanced:revanced-patcher:19.1.0"
// Signing & aligning
implementation("org.bouncycastle:bcpkix-jdk15on:1.70")
implementation("com.android.tools.build:apksig:7.2.2")
implementation("app.revanced:revanced-patcher:19.3.1")
implementation("app.revanced:revanced-library:2.2.1")
}

21
android/app/proguard-rules.pro vendored Normal file
View File

@@ -0,0 +1,21 @@
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.kts.kts.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
-dontobfuscate
-keep class app.revanced.** { *; }
-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,4 +1,5 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<manifest xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.VIBRATE" />
@@ -17,13 +18,16 @@
<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" />
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"
tools:ignore="QueryAllPackagesPermission" />
<application
android:label="@string/app_name"
android:name="${applicationName}"
android:icon="@mipmap/ic_launcher"
android:largeHeap="true"
android:requestLegacyExternalStorage="true">
android:requestLegacyExternalStorage="true"
android:enableOnBackInvokedCallback="true">
<activity
android:name=".MainActivity"
android:exported="true"

View File

@@ -7,23 +7,19 @@ 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 app.revanced.manager.flutter.utils.Aapt
import app.revanced.manager.flutter.utils.aligning.ZipAligner
import app.revanced.manager.flutter.utils.packageInstaller.InstallerReceiver
import app.revanced.manager.flutter.utils.packageInstaller.UninstallerReceiver
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.PatchBundleLoader
import app.revanced.patcher.PatchSet
import app.revanced.patcher.Patcher
import app.revanced.patcher.PatcherOptions
import app.revanced.patcher.PatcherConfig
import app.revanced.patcher.patch.PatchResult
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel
import kotlinx.coroutines.InternalCoroutinesApi
import kotlinx.coroutines.cancel
import kotlinx.coroutines.flow.FlowCollector
import kotlinx.coroutines.runBlocking
import org.json.JSONArray
@@ -50,7 +46,10 @@ class MainActivity : FlutterActivity() {
val installerChannel = "app.revanced.manager.flutter/installer"
val openBrowserChannel = "app.revanced.manager.flutter/browser"
MethodChannel(flutterEngine.dartExecutor.binaryMessenger, openBrowserChannel).setMethodCallHandler { call, result ->
MethodChannel(
flutterEngine.dartExecutor.binaryMessenger,
openBrowserChannel
).setMethodCallHandler { call, result ->
if (call.method == "openBrowser") {
val searchQuery = call.argument<String>("query")
openBrowser(searchQuery)
@@ -69,40 +68,34 @@ class MainActivity : FlutterActivity() {
mainChannel.setMethodCallHandler { call, result ->
when (call.method) {
"runPatcher" -> {
val originalFilePath = call.argument<String>("originalFilePath")
val inputFilePath = call.argument<String>("inputFilePath")
val patchedFilePath = call.argument<String>("patchedFilePath")
val inFilePath = call.argument<String>("inFilePath")
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 cacheDirPath = call.argument<String>("cacheDirPath")
val tmpDirPath = call.argument<String>("tmpDirPath")
val keyStoreFilePath = call.argument<String>("keyStoreFilePath")
val keystorePassword = call.argument<String>("keystorePassword")
if (
originalFilePath != null &&
inputFilePath != null &&
patchedFilePath != null &&
inFilePath != null &&
outFilePath != null &&
integrationsPath != null &&
selectedPatches != null &&
options != null &&
cacheDirPath != null &&
tmpDirPath != null &&
keyStoreFilePath != null &&
keystorePassword != null
) {
cancel = false
runPatcher(
result,
originalFilePath,
inputFilePath,
patchedFilePath,
inFilePath,
outFilePath,
integrationsPath,
selectedPatches,
options,
cacheDirPath,
tmpDirPath,
keyStoreFilePath,
keystorePassword
)
@@ -214,28 +207,23 @@ class MainActivity : FlutterActivity() {
startActivity(intent)
}
}
@OptIn(InternalCoroutinesApi::class)
private fun runPatcher(
result: MethodChannel.Result,
originalFilePath: String,
inputFilePath: String,
patchedFilePath: String,
inFilePath: String,
outFilePath: String,
integrationsPath: String,
selectedPatches: List<String>,
options: Map<String, Map<String, Any>>,
cacheDirPath: String,
tmpDirPath: String,
keyStoreFilePath: String,
keystorePassword: String
) {
val originalFile = File(originalFilePath)
val inputFile = File(inputFilePath)
val patchedFile = File(patchedFilePath)
val inFile = File(inFilePath)
val outFile = File(outFilePath)
val integrations = File(integrationsPath)
val keyStoreFile = File(keyStoreFilePath)
val cacheDir = File(cacheDirPath)
val tmpDir = File(tmpDirPath)
Thread {
fun updateProgress(progress: Double, header: String, log: String) {
@@ -253,6 +241,16 @@ class MainActivity : FlutterActivity() {
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 {
@@ -273,38 +271,20 @@ class MainActivity : FlutterActivity() {
}
try {
updateProgress(0.0, "", "Copying APK")
if (cancel) {
postStop()
return@Thread
}
originalFile.copyTo(inputFile, true)
if (cancel) {
postStop()
return@Thread
}
updateProgress(0.05, "Reading APK...", "Reading APK")
updateProgress(0.0, "Reading APK...", "Reading APK")
val patcher = Patcher(
PatcherOptions(
inputFile,
cacheDir,
PatcherConfig(
inFile,
tmpDir,
Aapt.binary(applicationContext).absolutePath,
cacheDir.path,
tmpDir.path,
true // TODO: Add option to disable this
)
)
if (cancel) {
postStop()
return@Thread
}
updateProgress(0.1, "Loading patches...", "Loading patches")
if (cancel(patcher::close)) return@Thread
updateProgress(0.02, "Loading patches...", "Loading patches")
val patches = patches.filter { patch ->
val isCompatible = patch.compatiblePackages?.any {
@@ -319,32 +299,25 @@ class MainActivity : FlutterActivity() {
options[patch.name]?.forEach { (key, value) ->
patch.options[key] = value
}
}
}.toSet()
if (cancel) {
postStop()
return@Thread
}
if (cancel(patcher::close)) return@Thread
updateProgress(0.05, "Executing...", "")
updateProgress(0.15, "Executing...", "")
// 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.15
patcher.apply {
acceptIntegrations(listOf(integrations))
acceptPatches(patches)
val patcherResult = patcher.use {
patcher.apply {
acceptIntegrations(setOf(integrations))
acceptPatches(patches)
}
runBlocking {
apply(false).collect(FlowCollector { patchResult: PatchResult ->
if (cancel) {
handler.post { stopResult!!.success(null) }
this.cancel()
this@apply.close()
return@FlowCollector
}
// 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()
@@ -358,50 +331,29 @@ class MainActivity : FlutterActivity() {
progress += progressStep
})
}
if (cancel(patcher::close)) return@Thread
updateProgress(0.75, "Building...", "")
patcher.get()
}
if (cancel) {
postStop()
patcher.close()
return@Thread
}
if (cancel(patcher::close)) return@Thread
updateProgress(0.75, "Building...", "")
patcherResult.applyTo(inFile)
val res = patcher.get()
patcher.close()
if (cancel(patcher::close)) return@Thread
ZipFile(patchedFile).use { file ->
res.dexFiles.forEach {
if (cancel) {
postStop()
return@Thread
}
file.addEntryCompressData(
ZipEntry.createWithName(it.name),
it.stream.readBytes()
)
}
res.resourceFile?.let {
file.copyEntriesFromFileAligned(
ZipFile(it),
ZipAligner::getEntryAlignment
)
}
file.copyEntriesFromFileAligned(
ZipFile(inputFile),
ZipAligner::getEntryAlignment
ApkUtils.sign(
inFile,
outFile,
ApkUtils.SigningOptions(
keyStoreFile,
keystorePassword,
"alias",
keystorePassword
)
}
if (cancel) {
postStop()
return@Thread
}
updateProgress(0.8, "Signing...", "Signing APK")
Signer("ReVanced", keystorePassword).signApk(patchedFile, outFile, keyStoreFile)
)
updateProgress(.85, "Patched", "Patched APK")
} catch (ex: Throwable) {
@@ -421,7 +373,8 @@ class MainActivity : FlutterActivity() {
private fun installApk(apkPath: String) {
val packageInstaller: PackageInstaller = applicationContext.packageManager.packageInstaller
val sessionParams = PackageInstaller.SessionParams(PackageInstaller.SessionParams.MODE_FULL_INSTALL)
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 ->
@@ -436,7 +389,12 @@ class MainActivity : FlutterActivity() {
val receiverIntent = Intent(applicationContext, InstallerReceiver::class.java).apply {
action = "APP_INSTALL_ACTION"
}
val receiverPendingIntent = PendingIntent.getBroadcast(context, sessionId, receiverIntent, PackageInstallerManager.flags)
val receiverPendingIntent = PendingIntent.getBroadcast(
context,
sessionId,
receiverIntent,
PackageInstallerManager.flags
)
session.commit(receiverPendingIntent.intentSender)
session.close()
}
@@ -446,7 +404,8 @@ class MainActivity : FlutterActivity() {
val receiverIntent = Intent(applicationContext, UninstallerReceiver::class.java).apply {
action = "APP_UNINSTALL_ACTION"
}
val receiverPendingIntent = PendingIntent.getBroadcast(context, 0, receiverIntent, PackageInstallerManager.flags)
val receiverPendingIntent =
PendingIntent.getBroadcast(context, 0, receiverIntent, PackageInstallerManager.flags)
packageInstaller.uninstall(packageName, receiverPendingIntent.intentSender)
}

View File

@@ -1,11 +0,0 @@
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,74 +0,0 @@
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

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

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

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

@@ -1,190 +0,0 @@
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
}
}

View File

@@ -1,22 +1,14 @@
buildscript {
ext.kotlin_version = '1.9.10'
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.1.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
mavenCentral()
maven {
url 'https://jitpack.io'
// A repository must be speficied for some reason. "registry" is a dummy.
url = uri("https://maven.pkg.github.com/revanced/registry")
credentials {
username = project.findProperty("gpr.user") as String ?: System.getenv("GITHUB_ACTOR")
password = project.findProperty("gpr.key") as String ?: System.getenv("GITHUB_TOKEN")
}
}
mavenLocal()
}

View File

@@ -3,7 +3,6 @@ org.gradle.parallel=true
org.gradle.daemon=true
org.gradle.caching=true
android.useAndroidX=true
android.enableJetifier=true
android.defaults.buildfeatures.buildconfig=true
android.nonTransitiveRClass=false
android.nonFinalResIds=false

View File

@@ -1,7 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionSha256Sum=9d926787066a081739e8200858338b4a69e837c3a821a33aca9db09dd4a41026
distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
distributionSha256Sum=544c35d6bd849ae8a5ed0bcea39ba677dc40f49df7d1835561582da2009b961d
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME

View File

@@ -10,11 +10,16 @@ pluginManagement {
includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle")
plugins {
id "dev.flutter.flutter-gradle-plugin" version "1.0.0" apply false
repositories {
google()
mavenCentral()
}
}
include ":app"
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
}
apply from: "${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle/app_plugin_loader.gradle"
include ":app"

View File

View File

@@ -164,6 +164,7 @@
"debugSectionTitle": "Debugging",
"advancedSectionTitle": "Advanced",
"exportSectionTitle": "Import & export",
"dataSectionTitle": "Data sources",
"themeModeLabel": "App theme",
"systemThemeLabel": "System",
"lightThemeLabel": "Light",
@@ -173,17 +174,18 @@
"languageLabel": "Language",
"languageUpdated": "Language updated",
"englishOption": "English",
"sourcesLabel": "Sources",
"sourcesLabelHint": "Configure the source of patches and integrations",
"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: Patches will be updated to the latest version automatically.\n\nThis will reveal your IP address to the server.",
"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 URL of the API to use",
"apiURLHint": "Configure the API URL of ReVanced Manager",
"selectApiURL": "API URL",
"hostRepositoryLabel": "Repository API",
"orgPatchesLabel": "Patches organization",
"sourcesPatchesLabel": "Patches source",
"orgIntegrationsLabel": "Integrations organization",
@@ -269,12 +271,7 @@
"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"
"widgetTitle": "Contributors"
},
"installErrorDialog": {
"mount_version_mismatch": "Version mismatch",

View File

@@ -16,6 +16,8 @@
"noShowAgain": "لا تعرض هذا مرة أخرى",
"add": "إضافة",
"remove": "إزالة",
"showChangelogButton": "عرض سجل التغييرات",
"showUpdateButton": "عرض التحديث",
"navigationView": {
"dashboardTab": "لوحة التحكم",
"patcherTab": "المعدّل",
@@ -26,13 +28,27 @@
"widgetTitle": "لوحة التحكم",
"updatesSubtitle": "تحديثات",
"patchedSubtitle": "التطبيقات المعدلة",
"changeLaterSubtitle": "يمكنك تغيير هذا في الإعدادات في وقت لاحق.",
"noUpdates": "لا توجد تحديثات متاحة",
"WIP": "العمل قيد التنفيذ...",
"noInstallations": "لا توجد تطبيقات معدلة مثبتة",
"installUpdate": "هل تريد الاستمرار في تثبيت التحديث؟",
"updateSheetTitle": "تحديث ReVanced Manager",
"updateDialogTitle": "تحديث جديد متوفر",
"updatePatchesSheetTitle": "تحديث تعديلات ReVanced",
"updateChangelogTitle": "سجل التغييرات",
"downloadingMessage": "جارٍ تحميل التحديث...",
"updateDialogText": "يتوفر تحديث جديد لـ ${file}.\n\nالإصدار المثبت حاليًا هو ${version}.",
"downloadConsentDialogTitle": "تنزيل الملفات اللازمة؟",
"downloadConsentDialogText": "يحتاج مدير ReVanced إلى تنزيل الملفات اللازمة ليعمل بشكل صحيح.",
"downloadConsentDialogText2": "سيؤدي هذا إلى توصيلك بـ ${url}.",
"checkUpdateDialogTitle": "التحقق من توفر تحديثات؟",
"checkUpdateDialogText": "هل تريد أن يقوم مدير ReVanced بالتحقق من توفر تحديثات تلقائيًا؟",
"notificationTitle": "تم تنزيل التحديث",
"notificationText": "اضغط لتثبيت التحديث",
"downloadingMessage": "جارٍ تنزيل التحديث...",
"downloadedMessage": "تم تنزيل التحديث",
"installingMessage": "جارٍ تثبيت التحديث...",
"errorDownloadMessage": "تعذر تحميل التحديث",
"errorDownloadMessage": "تعذر تنزيل التحديث",
"errorInstallMessage": "تعذّر تثبيت التحديث",
"noConnection": "لا يوجد اتصال بالإنترنت",
"updatesDisabled": "تحديث تطبيق تم تعديله معطل حاليًا. أعد تعديل التطبيق مرة أخرى."
@@ -42,21 +58,30 @@
},
"latestCommitCard": {
"loadingLabel": "جارٍ التحميل...",
"timeagoLabel": "منذ ${time}"
"timeagoLabel": "منذ ${time}",
"patcherLabel": "المعدل: ",
"managerLabel": "المدير: ",
"updateButton": "تحديث المدير"
},
"patcherView": {
"widgetTitle": "المُعَّدِّل",
"patchButton": "تعديل",
"armv7WarningDialogText": "التعديل على أجهزة ARMv7 غير مدعوم حتى الآن وقد يفشل. هل تريد المتابعة على أي حال؟",
"removedPatchesWarningDialogText": "تم إزالة التعديلات التالية منذ آخر مرة استخدمتها فيها.\n\n${patches}\n\nتابع على أي حال؟",
"requiredOptionDialogText": "يجب ضبط بعض خيارات التعديل."
},
"appSelectorCard": {
"widgetTitle": "حدد تطبيق",
"widgetTitleSelected": "التطبيق المحدد",
"widgetSubtitle": "لم يتم تحديد أي تطبيق",
"noAppsLabel": "لم يتم العثور على تطبيقات",
"currentVersion": "الحالي",
"suggestedVersion": "المقترحة"
"suggestedVersion": "المقترح",
"anyVersion": "أي إصدار"
},
"patchSelectorCard": {
"widgetTitle": "حدد التعديلات",
"widgetTitleSelected": "التعديلات التي تم اختيارها",
"widgetTitleSelected": "التعديلات التي تم تحديدها",
"widgetSubtitle": "حدد تطبيق أولاً",
"widgetEmptySubtitle": "لم يتم تحديد أي تعديلات"
},
@@ -65,11 +90,15 @@
"widgetSubtitle": "تابعونا!"
},
"appSelectorView": {
"viewTitle": "حدد تطبيق",
"searchBarHint": "البحث عن تطبيق",
"storageButton": "التخزين",
"selectFromStorageButton": "اختيار من التخزين",
"selectFromStorageButton": "تحديد من التخزين",
"errorMessage": "لا يمكن استخدام التطبيق المحدد",
"downloadToast": "خاصية التحميل غير متوفرة بعد",
"featureNotAvailable": "الميزة غير مُدمَجة بعد"
"downloadToast": "خاصية التنزيل غير متوفرة بعد",
"requireSuggestedAppVersionDialogText": "الإصدار من التطبيق الذي حددته لا يتطابق مع الإصدار المقترح الذي يمكن أن يؤدي إلى مشاكل غير متوقعة. الرجاء استخدام الإصدار المقترح.\n\nالإصدار المحدد: ${selected}\nالإصدار المقترح: ${suggested}\n\nللاستمرار على أي حال، قم بتعطيل \"طلب إصدار التطبيق المقترح\" في الإعدادات.",
"featureNotAvailable": "الميزة غير مُدمَجة بعد",
"featureNotAvailableText": "هذا التطبيق عبارة عن ملف Spilt APK ولا يمكن تعديله وتثبيته بشكل موثوق إلا عن طريق التثبيت باستخدام أذونات Root. ومع ذلك، يمكنك تعديل وتثبيت ملف APK كاملًا عن طريق تحديده من وحدة التخزين."
},
"patchesSelectorView": {
"viewTitle": "حدد التعديلات",
@@ -78,7 +107,9 @@
"newPatches": "تعديلات جديدة",
"patches": "تعديلات",
"doneButton": "تم",
"defaultChip": "إفتراضي",
"defaultTooltip": "تحديد كل التعديلات الافتراضية",
"noneChip": "لا شيء",
"noneTooltip": "إلغاء تحديد كل التعديلات",
"loadPatchesSelection": "تحميل التعديل المحدد",
"noSavedPatches": "لا يوجد تحديد تعديل محفوظ للتطبيق المحدد.\nاضغط على تم لحفظ التحديد الحالي.",
@@ -95,21 +126,29 @@
"tooltip": "المزيد من خيارات الإدخال",
"selectFilePath": "تحديد مسار الملف",
"selectFolder": "تحديد مجلد",
"selectOption": "تحديد خيار",
"requiredOption": "هذا الخيار مطلوب",
"unsupportedOption": "هذا الخيار غير مدعوم",
"requiredOptionNull": "يجب تعيين الخيارات التالية:\n\n${options}"
},
"patchItem": {
"unsupportedDialogText": "قد يؤدي تحديد هذا التعديل إلى حدوث أخطاء في عملية التعديل.\n\nإصدار التطبيق: ${packageVersion}\nالإصدارات المدعومة حالياً:\n${supportedVersions}",
"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 المعدل",
@@ -125,6 +164,7 @@
"debugSectionTitle": "تصحيح الأخطاء",
"advancedSectionTitle": "إعدادات متقدمة",
"exportSectionTitle": "استيراد و تصدير",
"dataSectionTitle": "مصدر البيانات",
"themeModeLabel": "مظهر التطبيق",
"systemThemeLabel": "النظام",
"lightThemeLabel": "فاتح (ابيض)",
@@ -132,15 +172,20 @@
"dynamicThemeLabel": "تصميم Material You",
"dynamicThemeHint": "استمتع بتجربة أقرب إلى جهازك",
"languageLabel": "اللغة",
"sourcesLabel": "المصادر",
"languageUpdated": "تم تحديث اللغة",
"englishOption": "English",
"sourcesLabel": "مصادر بديلة",
"sourcesLabelHint": "قم بتكوين المصادر البديلة لتعديلات ReVanced وتكاملات ReVanced",
"sourcesIntegrationsLabel": "مصدر الـدمج",
"useAlternativeSources": "استخدام مصادر بديلة",
"useAlternativeSourcesHint": "استخدم مصادر بديلة لتعديلات ReVanced وعمليات التكامل ReVanced بدلاً من API",
"sourcesResetDialogTitle": "إعادة التعيين",
"sourcesResetDialogText": "هل أنت متأكد من أنك تريد إعادة تعيين المصادر الخاصة بك إلى قيمها الافتراضية؟",
"apiURLResetDialogText": "هل أنت متأكد من أنك تريد إعادة تعيين رابط API الخاص بك إلى قيمته الافتراضية؟",
"sourcesUpdateNote": "ملاحظة: سيتم تحديث التعديلات إلى الإصدار الأحدث تلقائيًا.\n\nسيكشف هذا عن عنوان IP الخاص بك للخادم.",
"sourcesUpdateNote": "ملاحظة: سيؤدي هذا إلى تنزيل تعديلات ReVanced وتكاملات ReVanced تلقائيًا من المصادر البديلة.\n\nسيؤدي هذا إلى توصيلك بالمصدر البديل.",
"apiURLLabel": "رابط API",
"apiURLHint": "تكوين عنوان URL لواجهة برمجة التطبيقات الخاصة بـ ReVanced Manager",
"selectApiURL": "رابط API",
"hostRepositoryLabel": "مستودع API",
"orgPatchesLabel": "تنظيم التعديلات",
"sourcesPatchesLabel": "مصدر التعديلات",
"orgIntegrationsLabel": "تنظيم الدمج",
@@ -149,14 +194,19 @@
"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": "نُسِخ إلى الحافظة",
@@ -205,10 +255,15 @@
"widgetTitle": "معلومات التطبيق",
"openButton": "فتح",
"uninstallButton": "إلغاء التثبيت",
"unmountButton": "إلغاء التحميل",
"rootDialogTitle": "خطأ",
"unmountDialogText": "هل أنت متأكد أنك تريد إلغاء تحميل هذا التطبيق؟",
"uninstallDialogText": "هل أنت متأكد من أنك تريد إلغاء تثبيت هذا التطبيق؟",
"rootDialogText": "تم تثبيت التطبيق بأذونات المستخدم المتميز، لكن ReVanced Manager ليس لديه أذونات حاليًا.\nالرجاء منح أذونات المستخدم المتميز أولاً.",
"packageNameLabel": "اسم الحُزْمَة",
"installTypeLabel": "نوع التثبيت",
"mountTypeLabel": "تحميل",
"regularTypeLabel": "عادي",
"patchedDateLabel": "تاريخ التعديل",
"appliedPatchesLabel": "التعديلات المطبقة",
"patchedDateHint": "${date} في ${time}",
@@ -216,12 +271,32 @@
"updateNotImplemented": "لم يتم تنفيذ هذه الميزة بعد"
},
"contributorsView": {
"widgetTitle": "المساهمون",
"patcherContributors": "المساهمون المُعَدِّلون",
"patchesContributors": "المساهمون في التعديلات",
"integrationsContributors": "المساهمون في الدمج",
"cliContributors": "المساهمون في CLI",
"managerContributors": "المساهمون في Manager"
"widgetTitle": "المساهمون"
},
"installErrorDialog": {}
"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": "فشل التثبيت لسبب غير معروف. الرجاء المحاولة مرة أخرى."
}
}

View File

@@ -16,6 +16,8 @@
"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ı",
@@ -26,14 +28,25 @@
"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",
@@ -53,12 +66,18 @@
"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"
"suggestedVersion": "Təklif edilən",
"anyVersion": "Bütün versiyalar"
},
"patchSelectorCard": {
"widgetTitle": "Yamaqları seçin",
@@ -71,11 +90,15 @@
"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",
"featureNotAvailable": "Özəllik tətbiq edilmədi"
"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",
@@ -84,7 +107,9 @@
"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.",
@@ -110,11 +135,13 @@
"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",
@@ -137,6 +164,7 @@
"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ı",
@@ -144,18 +172,20 @@
"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": "Mənbələr",
"sourcesLabelHint": "Yamaqlarıninteqrasiyaların mənbəyini konfiqurasiya et",
"sourcesLabel": "Alternativ mənbələr",
"sourcesLabelHint": "ReVanced Yamaqları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: Yamaqlar son versiyaya avtomatik güncəllənəcək.\n\nBu, IP ünvanızı serverə göstərəcək.",
"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": "İstifadə ediləcək API-nin URL-sini konfiqurasiya et",
"apiURLHint": "\"ReVacned Manager\"in API URL-sini konfiqurasiya et",
"selectApiURL": "API URL",
"hostRepositoryLabel": "Depo API",
"orgPatchesLabel": "Yamaq təşkilatı",
"sourcesPatchesLabel": "Yamaq mənbəyi",
"orgIntegrationsLabel": "İnteqrasiya təşkilatı",
@@ -169,6 +199,8 @@
"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ışı",
@@ -239,12 +271,7 @@
"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"
"widgetTitle": "Töhfə verənlər"
},
"installErrorDialog": {
"mount_version_mismatch": "Versiya uyuşmur",

View File

@@ -1,77 +1,302 @@
{
"okButton": "ОК",
"cancelButton": "Скасаваць",
"dismissButton": "Адхіліць",
"quitButton": "Выйсці",
"updateButton": "Абнавіць",
"enabledLabel": "Уключана",
"disabledLabel": "Адключана",
"installed": "Усталявана: ${version}",
"suggested": "Прапанавана: ${version}",
"yesButton": "Так",
"noButton": "Не",
"warning": "Увага",
"options": "Параметры",
"notice": "Апавяшчэнне",
"notice": "Заўвага",
"noShowAgain": "Больш не паказваць",
"add": "Дадаць",
"remove": "Выдаліць",
"showChangelogButton": "Паказаць журнал змяненняў",
"showUpdateButton": "Паказаць абнаўленне",
"navigationView": {
"dashboardTab": "Галоўная",
"patcherTab": атчар",
"patcherTab": раграма выпраўлення",
"settingsTab": "Налады"
},
"homeView": {
"refreshSuccess": "Паспяхова абноўлена",
"widgetTitle": "Галоўная",
"updatesSubtitle": "Абнаўленні",
"patchedSubtitle": "Прапатчаныя праграмы",
"noInstallations": "Няма ўсталяваных прапатчаных праграм",
"installUpdate": "Працягнуць устаноўку абнаўлення?",
"patchedSubtitle": "Выпраўленыя праграмы",
"changeLaterSubtitle": "Вы можаце змяніць гэта ў наладах пазней.",
"noUpdates": "Няма даступных абнаўленняў",
"WIP": "У працэсе...",
"noInstallations": "Няма ўсталяваных праграм з выпраўленнямі",
"installUpdate": "Працягнуць усталяванне абнаўлення?",
"updateSheetTitle": "Абнавіць ReVanced Manager",
"updateDialogTitle": "Даступна новае абнаўленне",
"updatePatchesSheetTitle": "Абнавіць выпраўленні ReVanced",
"updateChangelogTitle": "Спіс змяненняў",
"downloadingMessage": "Загружаецца абнаўленне...",
"updateDialogText": "Даступна новае абнаўленне для ${file}\n\nЦяпер усталявана версія ${version}.",
"downloadConsentDialogTitle": "Спампаваць неабходныя файлы?",
"downloadConsentDialogText": "ReVanced Manager неабходна спампаваць неабходныя файлы для правільнай працы.",
"downloadConsentDialogText2": "Гэта падключыць вас да ${url}.",
"checkUpdateDialogTitle": "Праверыць наяўнасць абнаўленняў?",
"checkUpdateDialogText": "Вы сапраўды хочаце правяраць абнаўленні ReVanced Manager аўтаматычна?",
"notificationTitle": "Абнаўленне спампавана",
"notificationText": "Націсніце, каб усталяваць абнаўленне",
"downloadingMessage": "Спампоўваецца абнаўленне...",
"downloadedMessage": "Абнаўленне спампавана",
"installingMessage": "Усталяванне абнаўлення...",
"errorDownloadMessage": "Немагчыма спампаваць абнаўленне",
"errorInstallMessage": "Немагчыма ўсталяваць абнаўленне",
"noConnection": "Няма злучэння з інтэрнэтам",
"updatesDisabled": "Абнаўленне праграмы з патчам зараз адключана. Паўторна прапатчыце праграму."
"updatesDisabled": "Абнаўленне выпраўленай праграмы ў цяперашні час адключана. Неабходна паўторна ўжыць выпраўленне для праграмы."
},
"applicationItem": {
"infoButton": "Інфармацыя"
"infoButton": "Звесткі"
},
"latestCommitCard": {
"loadingLabel": "Загрузка...",
"timeagoLabel": "${time} таму назад"
"timeagoLabel": "${time} таму",
"patcherLabel": "Праграма выпраўлення: ",
"managerLabel": "Менеджар: ",
"updateButton": "Абнавіць ReVanced Manager"
},
"patcherView": {
"widgetTitle": атчар",
"patchButton": "Прапатчыць",
"requiredOptionDialogText": "Некаторыя параметры павінны быць зададзены."
"widgetTitle": раграма выпраўлення",
"patchButton": "Выправіць",
"armv7WarningDialogText": "Выпраўленне для прылад на ARMv7 пакуль не падтрымліваецца і можа прывесці да збою. Працягнуць?",
"removedPatchesWarningDialogText": "Наступныя выпраўленні былі выдалены з моманту іх апошняга выкарыстання.\n\n${patches}\n\nУсё роўна працягнуць?",
"requiredOptionDialogText": "Неабходна задаць некаторыя параметры выпраўленняў."
},
"appSelectorCard": {
"widgetTitle": "Выбраць праграму",
"widgetTitleSelected": "Выбраная праграма",
"widgetSubtitle": "Праграма не выбрана",
"noAppsLabel": "Праграмы не знойдзены",
"currentVersion": "Бягучая версія",
"suggestedVersion": "Прапанаваная"
"suggestedVersion": "Прапанаваная",
"anyVersion": "Любая версія"
},
"patchSelectorCard": {
"widgetTitle": "Выбраць патчы",
"widgetTitleSelected": "Выбраныя патчы",
"widgetTitle": "Выберыце выпраўленні",
"widgetTitleSelected": "Выбраныя выпраўленні",
"widgetSubtitle": "Спачатку выберыце праграму",
"widgetEmptySubtitle": "Патчы не выбраны"
"widgetEmptySubtitle": "Выпраўленні не выбраны"
},
"socialMediaCard": {
"widgetTitle": "Сацсеткі",
"widgetSubtitle": "Мы ў інтэрнэце!"
},
"appSelectorView": {
"viewTitle": "Выбраць праграму",
"searchBarHint": "Пошук праграмы",
"storageButton": "Сховішча",
"selectFromStorageButton": "Выбраць са сховішча",
"errorMessage": "Немагчыма выкарыстоўваць выбраную праграму",
"downloadToast": "Функцыя спампоўвання пакуль недаступна"
"downloadToast": "Функцыя спампоўвання пакуль недаступна",
"requireSuggestedAppVersionDialogText": "Версія праграмы, якую вы выбралі не супадае з прапанаванай версіяй і гэта можа прывесці да нечаканых праблем. Скарыстайцеся прапанаванай версіяй.\n\nВыбраная версія: ${selected}\nПрапанаваная версія: ${suggested}\n\nАдключыце \"Патрабаваць прапанаваную версію праграмы\" ў наладах, каб праігнараваць гэта паведамленне.",
"featureNotAvailable": "Функцыя не рэалізавана",
"featureNotAvailableText": "Гэта праграма з'яўляецца раздзеленым файлам APK і яе можна надзейна выправіць і ўсталяваць толькі падключэннем з правамі суперкарыстальніка. Аднак вы можаце выправіць і ўсталяваць поўны файл APK выбраўшы яго са сховішча."
},
"patchesSelectorView": {},
"patchOptionsView": {},
"patchItem": {},
"installerView": {},
"settingsView": {},
"appInfoView": {},
"contributorsView": {},
"installErrorDialog": {}
"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": "Удзельнікі"
},
"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

@@ -5,13 +5,13 @@
"quitButton": "Изход",
"updateButton": "Актуализация",
"enabledLabel": "Активирано",
"disabledLabel": "Изключено",
"disabledLabel": "Деактивирано",
"installed": "Инсталирана версия: ${version}",
"suggested": "Предложена версия: ${version}",
"yesButton": "Да",
"noButton": "Не",
"warning": "Внимание",
"options": "Настроики",
"options": "Опции",
"notice": "Известие",
"noShowAgain": "Не показвай повече",
"add": "Добави",
@@ -29,9 +29,22 @@
"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": "Инсталиране на актуализация...",
@@ -52,14 +65,19 @@
},
"patcherView": {
"widgetTitle": "Модификатор",
"patchButton": "Модифицирайте"
"patchButton": "Модифицирайте",
"armv7WarningDialogText": "Все още не се поддържат модификации за ARMv7 устройства. Продължете въпреки това?",
"removedPatchesWarningDialogText": "Следните модификации са били премахнати след като са били употребени за последно от вас.\n\n${patches}\n\nПродължете въпреки това?",
"requiredOptionDialogText": "Опциите на някои модификации трябва да бъдат зададени."
},
"appSelectorCard": {
"widgetTitle": "Изберете приложение",
"widgetTitleSelected": "Избрани приложения",
"widgetSubtitle": "Няма избрано приложение",
"noAppsLabel": "Няма намерени приложения",
"currentVersion": "Текуща",
"suggestedVersion": "Препоръчана"
"suggestedVersion": "Препоръчана",
"anyVersion": "Всички версии"
},
"patchSelectorCard": {
"widgetTitle": "Изберете модификации",
@@ -72,11 +90,15 @@
"widgetSubtitle": "Открийте ни онлайн!"
},
"appSelectorView": {
"viewTitle": "Изберете приложение",
"searchBarHint": "Търсене на приложение",
"storageButton": "Хранилище",
"selectFromStorageButton": "Избери от хранилище",
"errorMessage": "Избраното приложение не може да се използва",
"downloadToast": "Функцията за изтегляне все още не е налична",
"featureNotAvailable": "Функцията не е внедрена"
"requireSuggestedAppVersionDialogText": "Избраната от вас версия на приложението не съответства на препоръчаната версия, което може да доведе до непредвидени проблеми. Моля, използвайте препоръчаната версия.\n\nИзбрана версия: ${selected}\nПрепоръчана версия: ${suggested}\n\nАко желаете да продължите въпреки това, деактивирайте \"Изискване на препоръчана версия на приложението\" в настройките.",
"featureNotAvailable": "Функцията не е внедрена",
"featureNotAvailableText": "Това приложение е разделено APK и не може да бъде актуализирано и инсталирано надеждно, освен ако не бъде монтирано с административни права. Въпреки това, можете да актуализирате и инсталирате цяло APK, като го изберете от хранилището."
},
"patchesSelectorView": {
"viewTitle": "Изберете модификации",
@@ -85,29 +107,54 @@
"newPatches": "Нови модификации",
"patches": "Модификации",
"doneButton": "Готово",
"defaultChip": "По подразбиране",
"defaultTooltip": "Изберете всички модификации по подразбиране",
"noneChip": "Нито една",
"noneTooltip": "Отмяна на всички модификации",
"noPatchesFound": "Няма налични модификации за избраното приложение"
"loadPatchesSelection": "Заредете избраните модификации",
"noSavedPatches": "Няма запазени избрани модификации за настоящото приложение.\nНатиснете Готово за да запазите текущия избор.",
"noPatchesFound": "Няма налични модификации за избраното приложение",
"setRequiredOption": "Някои модификации изискват опциите им да бъдат зададени:\n\n${patches}\n\nМоля задайте тези опции преди да продължите."
},
"patchOptionsView": {
"customValue": "Стойност по избор",
"resetOptionsTooltip": "Нулиране опциите на модификациите",
"viewTitle": "Опции за модификациите",
"saveOptions": "Запази",
"addOptions": "Добави опции",
"deselectPatch": "Отмяна на всички модификации",
"selectFolder": "Изберете папка"
"tooltip": "Повече опции за въвеждане",
"selectFilePath": "Изберете път към файла",
"selectFolder": "Изберете папка",
"selectOption": "Изберете опция",
"requiredOption": "Тази опция е задължителна",
"unsupportedOption": "Тази опция не се поддържа",
"requiredOptionNull": "Следните опции трябва да бъдат зададени:\n\n${options}"
},
"patchItem": {
"unsupportedDialogText": "Изборът на тази модификация може да доведе до грешки.\n\nВерсия: ${packageVersion}\nПоддържани версии: ${supportedVersions}"
"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 Мениджър модифицира",
"notificationText": "Натиснете за да се върнете при инсталатора",
"exportApkButtonTooltip": "Експортиране на модифицираното APK",
"exportLogButtonTooltip": "Експорт на дневника",
"screenshotDetected": "Беше направена снимка на екрана. Ако се опитвате да споделите дневника, моля направете го в текстов формат.\n\nДа се копира ли дневника в клипборда?",
"copiedToClipboard": "Дневникът беше копиран в клипборда",
"noExit": "Инсталаторът все още работи, не може да излезе..."
},
"settingsView": {
@@ -117,6 +164,7 @@
"debugSectionTitle": "Отстраняване на грешки",
"advancedSectionTitle": "Разширени",
"exportSectionTitle": "Импортиране и експортиране",
"dataSectionTitle": "Източници на данни",
"themeModeLabel": "Тема на приложението",
"systemThemeLabel": "Система",
"lightThemeLabel": "Светъл",
@@ -124,49 +172,98 @@
"dynamicThemeLabel": "Материална Тема",
"dynamicThemeHint": "Насладете се на преживяване по-близо до устройството си",
"languageLabel": "Език",
"languageUpdated": "Езикът е обновен",
"englishOption": "Английски",
"sourcesLabel": "Източници",
"sourcesLabel": "Алтернативни източници",
"sourcesLabelHint": "Конфигурирайте алтернативните източници за ReVanced Patches и ReVanced Integrations",
"sourcesIntegrationsLabel": "Източник на интеграциите",
"useAlternativeSources": "Използвайте алтернативни източници",
"useAlternativeSourcesHint": "Използвайте алтернативни източници за ReVanced Patches и ReVanced Integrations вместо тези от ППИ-я (API)",
"sourcesResetDialogTitle": "Нулиране",
"sourcesResetDialogText": "Искате ли да възстановите източниците до стойностите им по подразбиране?",
"apiURLResetDialogText": "Сигурни ли сте, че искате да възстановите адреса на ППИ (API) до стойността му по подразбиране?",
"sourcesUpdateNote": "Забележка: Това автоматично ще изтегли ReVanced Patches и ReVanced Integrations от алтернативните източници.\n\nТова ще ви свърже с алтернативния източник.",
"apiURLLabel": "API линк",
"apiURLHint": "Конфигуриране на URL адреса на API за използване",
"apiURLHint": "Конфигуриране на URL адреса на ППИ (API) на ReVanced Manager",
"selectApiURL": "API линк",
"hostRepositoryLabel": "API на хранилището",
"orgPatchesLabel": "Организация на модификациите",
"sourcesPatchesLabel": "Източник на модификациите",
"orgIntegrationsLabel": "Организация на интеграциите",
"contributorsLabel": "Хора, които допринесоха",
"contributorsHint": "Списък с хората, допринесли за ReVanced",
"logsLabel": "Сподели логовете",
"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": "Избраните модификации са импортирани",
"deletedLogs": "Логовете са изтрити",
"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": "Експортиране на keystore-а, който се използва за подписване на приложенията",
"exportedKeystore": "Keystore беше експортиран",
"noKeystoreExportFileFound": "Няма Keystore за експортиране",
"importKeystoreLabel": "Импортирай Keystore",
"importKeystoreHint": "Импортиране на keystore, който да бъде използван за подписване на приложенията",
"importedKeystore": "Keystorе е импортиран",
"jsonSelectorErrorMessage": "Избраният JSON файл не може да се изплозва"
"selectKeystorePassword": "Парола за keystore-а",
"selectKeystorePasswordHint": "Изберете парола за keystore-а, който се използва за подписване на приложенията",
"jsonSelectorErrorMessage": "Избраният JSON файл не може да се изплозва",
"keystoreSelectorErrorMessage": "Избранията keystore файл не може да бъде използва"
},
"appInfoView": {
"widgetTitle": "Информация за приложението",
"openButton": "Отвори",
"uninstallButton": "Деинсталирай",
"unmountButton": "Демонтиране",
"rootDialogTitle": "Грешка",
"unmountDialogText": "Сигурни ли сте, че искате да демонтирате това приложение?",
"uninstallDialogText": "Сигурни ли сте, че искате да деиснталирате това приложение?",
"rootDialogText": "Приложението е инсталирано с superuser разрешения, но в момента ReVanced Manager няма разрешения. Моля, първо дайте superuser разрешения.",
"packageNameLabel": "Име на пакета",
"installTypeLabel": "Тип инсталация",
"mountTypeLabel": "Монтиране",
"regularTypeLabel": "Нормален",
"patchedDateLabel": "Дата на модификацията",
"appliedPatchesLabel": "Приложени модификации",
"patchedDateHint": "на ${date} в ${time}",
@@ -174,12 +271,32 @@
"updateNotImplemented": "Тази функция все още не е внедрена"
},
"contributorsView": {
"widgetTitle": "Хора, които допринесоха",
"patcherContributors": "Допринесли към модификациите",
"patchesContributors": "Допринесли към модификациите",
"integrationsContributors": "Допринесли към интеграциите",
"cliContributors": "Допринесли към CLI",
"managerContributors": "Допринесли към мениджъра"
"widgetTitle": "Хора, които допринесоха"
},
"installErrorDialog": {}
"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": "Инсталацията не е успешна поради неизвестна причина. Моля, опитайте отново."
}
}

View File

@@ -1,9 +1,9 @@
{
"okButton": "ঠিক আছে",
"cancelButton": "বাতিল",
"cancelButton": "বাতিল করুন",
"dismissButton": "বাতিল করুন",
"quitButton": "কাটুন",
"updateButton": "আপডেট",
"updateButton": "হালনাগাদ করুন",
"enabledLabel": "সক্রিয় রয়েছে",
"disabledLabel": "নিষ্ক্রিয় হয়েছে",
"installed": "ইনস্টলকৃত: ${version}",
@@ -16,6 +16,8 @@
"noShowAgain": "পুনরায় দেখাবেন না",
"add": "যুক্ত করুন",
"remove": "অপসারণ করুন",
"showChangelogButton": "পরিবর্তনসূচী দেখান",
"showUpdateButton": "আপডেট দেখান",
"navigationView": {
"dashboardTab": "ড্যাশবোর্ড",
"patcherTab": "প্যাচার",
@@ -26,18 +28,29 @@
"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": "কোন ইন্টারনেট সংযোগ নেই",
"noConnection": "কোন ইন্টারনেট সংযোগ নেই",
"updatesDisabled": "প্যাচ করা অ্যাপকে আপডেট করা বর্তমানে সম্ভব নয়। অ্যাপটি পুনরায় প্যাচ করুন।"
},
"applicationItem": {
@@ -53,12 +66,18 @@
"patcherView": {
"widgetTitle": "প্যাচার",
"patchButton": "প্যাচ",
"armv7WarningDialogText": "ARMv7 ডিভাইসগুলোতে প্যাচিং এখনো সমর্থিত নয় এবং সফল নাও হতে পারে। যেকোন ভাবে এগিয়ে যেতে চান?",
"removedPatchesWarningDialogText": "আপনি এর আগে যখন ব্যবহার করেছিলেন তারপর এই প্যাচগুলো অপসারণ করা হয়।\n\n${patches}\n\nযেকোন ভাবে এগিয়ে যেতে চান?",
"requiredOptionDialogText": "কিছু প্যাচ অপশন সেট করতে হবে।"
},
"appSelectorCard": {
"widgetTitle": "একটি অ্যাপ নির্বাচন করুন",
"widgetTitleSelected": "নির্বাচিত অ্যাপ",
"widgetSubtitle": "কোন অ্যাপ নির্বাচন করা হয়নি",
"noAppsLabel": "কোন অ্যাপ্লিকেশন পাওয়া যায়নি",
"currentVersion": "বর্তমান",
"suggestedVersion": "প্রস্তাবিত"
"suggestedVersion": "প্রস্তাবিত",
"anyVersion": "যেকোন সংস্করণ"
},
"patchSelectorCard": {
"widgetTitle": "প্যাচসমূহ নির্বাচন করুন",
@@ -71,11 +90,15 @@
"widgetSubtitle": "আমরা অনলাইনে!"
},
"appSelectorView": {
"viewTitle": "একটি অ্যাপ নির্বাচন করুন",
"searchBarHint": "অ্যাপ খুঁজুন",
"storageButton": "স্টোরেজ",
"selectFromStorageButton": "স্টোরেজ থেকে নির্বাচন করুন",
"errorMessage": "নির্বাচিত অ্যাপ্লিকেশনটি ব্যবহার করা সম্ভব নয়",
"downloadToast": "ডাউনলোড ফাংশন এখনো উপলব্ধ হয়নি",
"featureNotAvailable": "ফিচার সম্পাদন করা হয়নি"
"requireSuggestedAppVersionDialogText": "আপনার নির্বাচিত অ্যাপ সংস্করণটি প্রস্তাবিত অ্যাপ সংস্করণের সাথে মিলছে না এতে অনাকাঙ্খিত ত্রুটি ঘটতে পারে। অনুগ্রহপূর্বক প্রস্তাবিত অ্যাপ সংস্করণ ব্যবহার করুন।\n\nনির্বাচিত সংস্করণ: ${selected}\nপ্রস্তাবিত সংসকরণ: ${suggested}\n\nযেকোন ভাবে এগিয়ে যেতে চাইলে, সেটিং থেকে \"প্রস্তাবিত অ্যঅপ সংস্করণ প্রয়োজন\" সেটিংটি নিষ্ক্রিয় করুন।",
"featureNotAvailable": "ফিচার সম্পাদন করা হয়নি",
"featureNotAvailableText": "এই অ্যাপটি একটি খন্ডিত APK এবং শুধুমাত্র রুট পারমিশন এর উপর ভিত্তি করে এটি প্যাচ ও ইনস্টল করা যেতে পারে। যাইহোক, আপনি স্টোরেজ থেকে সম্পূর্ণ APK নির্বাচন করে অ্যাপ প্যাচ ও ইনস্টল করতে পারেন।"
},
"patchesSelectorView": {
"viewTitle": "প্যাচ নির্বাচন করুন",
@@ -84,7 +107,9 @@
"newPatches": "নতুন প্যাচসমূহ",
"patches": "প্যাচসমূহ",
"doneButton": "সম্পন্ন হয়েছে",
"defaultChip": "পূর্ব-নির্ধারিত",
"defaultTooltip": "সকল পূর্ব-নির্ধারিত প্যাচ নির্বাচন করুন",
"noneChip": "কোনটি নয়",
"noneTooltip": "সকল প্যাচ অনির্বাচন করুন",
"loadPatchesSelection": "নির্বাচিত প্যাচ লোড করুন",
"noSavedPatches": "নির্বাচিত অ্যাপের জন্য কোন সংরক্ষিত প্যাচ নেই।\nবর্তমানে নির্বাচিত প্যাচ সংরক্ষণ করতে সম্পন্ন হয়েছে চাপুন।",
@@ -110,11 +135,13 @@
"unsupportedDialogText": "এই প্যাচটি নির্বাচন করলে প্যাচিং ত্রুটিপূর্ণ হতে পারে।\n\nঅ্যাপ সংস্করণ: ${packageVersion}\nসমর্থিত সংস্করণ:\n${supportedVersions}",
"unsupportedPatchVersion": "এই অ্যাপ সংস্করণের জন্য প্যাচ সমর্থিত নয়।",
"unsupportedRequiredOption": "এই প্যাচটিতে একটি প্রয়োজনীয় অপশন রয়েছে যা এই অ্যাপটি সমর্থন করে না",
"patchesChangeWarningDialogText": "পূর্ব নির্ধারিত নির্বাচিত প্যাচ এবং অপশন ব্যবহার করার প্রস্তাব রাখে। এগুলো পরিবর্তন করার মাধ্যমে অনাকাঙ্খিত ইস্যু হতে পারে।\n\nপ্যাচ নির্বাচন পরিবর্তন করার পূর্বে আপনাকে অবশ্যই সেটিং থেকে \"প্যাচ নির্বাচন পরিবর্তন করার অনুমতি\" সচল করতে হবে।",
"patchesChangeWarningDialogButton": "পূর্বনির্ধারিত নির্বাচন ব্যবহার করুন"
},
"installerView": {
"widgetTitle": "ইনস্টলার",
"installType": "ইনস্টল করার ধরণ নির্বাচন করুন",
"installTypeDescription": "যে প্রক্রিয়ায় ইনস্টল করা এগিয়ে নিতে চান তা নির্বাচন করুন।",
"installButton": "ইনস্টল করুন",
"installRootType": "মাউন্ট",
"installNonRootType": "সাধারণ",
@@ -137,6 +164,7 @@
"debugSectionTitle": "ডিবাগিং",
"advancedSectionTitle": "উন্নত",
"exportSectionTitle": "আমদানি ও রপ্তানি",
"dataSectionTitle": "তথ্যের উৎস",
"themeModeLabel": "অ্যাপের থীম",
"systemThemeLabel": "সিস্টেম",
"lightThemeLabel": "উজ্জ্বল",
@@ -144,18 +172,20 @@
"dynamicThemeLabel": "ম্যাটেরিয়াল ইউ",
"dynamicThemeHint": "আপনার ডিভাইসের লুকের কাছাকাছি অভিজ্ঞতা নিন",
"languageLabel": "ভাষা",
"languageUpdated": "ভাষা হালনাগাদ করা হয়েছে",
"englishOption": "ইংরেজি",
"sourcesLabel": "উৎস",
"sourcesLabelHint": "প্যাচ ও ইন্ট্রিগেশন এর সোর্স কনফিগার করুন",
"sourcesLabel": "বিকল্প উৎস",
"sourcesLabelHint": "ReVanced প্যাচ ও ReVanced ইন্ট্রিগ্রেশনের জন্য বিকল্প উৎস কনফিগার করুন",
"sourcesIntegrationsLabel": "ইন্ট্রিগেশনের উৎস",
"useAlternativeSources": "বিকল্প উৎস ব্যবহার করুন",
"useAlternativeSourcesHint": "ReVanced প্যাচ ও ReVanced ইন্ট্রিগ্রেশনের জন্য API এর পরিবর্তে বিকল্প উৎস ব্যবহার করুন",
"sourcesResetDialogTitle": "পুনরায় সেট করুন",
"sourcesResetDialogText": "আপনি কি নিশ্চিতভাবে আপনার উৎসগুলোকে পূর্বনির্ধারিত উৎসে ফিরিয়ে নিতে চান?",
"apiURLResetDialogText": "আপনি কি নিশ্চিতভাবে আপনার API URL কে তার মূল ভ্যালুতে পুনরায় সেট করতে চান?",
"sourcesUpdateNote": "বি:দ্র: প্যাচগুলো তার সর্বশেষ সংস্করণে স্বয়ংক্রিয়ভাবে আপডেট হবে।\n\nএর ফলে আপনার IP অ্যাড্রেস সার্ভারে প্রকাশ করা হবে।",
"sourcesUpdateNote": "বি:দ্র: এটি স্বয়ংক্রিয়ভাবে বিকল্প উৎস থেকে ReVanced প্যাচ ও ReVanced ইন্ট্রিগ্রেশন ডাউনলোড করবে।\n\nএটি আপনাকে বিকল্প উৎসের সাথে সংযুক্ত করবে।",
"apiURLLabel": "API URL",
"apiURLHint": "API ব্যাবহারের URL কনফিগার করুন",
"apiURLHint": "ReVanced Manager এর API URL কনফিগার করুন",
"selectApiURL": "API URL",
"hostRepositoryLabel": "রিপজিটরি API",
"orgPatchesLabel": "প্যাচ এর উদ্ভাবক",
"sourcesPatchesLabel": "প্যাচ এর উৎস",
"orgIntegrationsLabel": "ইন্ট্রিগেশনের উদ্ভাবক",
@@ -169,6 +199,8 @@
"disablePatchesSelectionWarningText": "আপনি নির্বাচিত প্যাচ পরিবর্তনকে নিষ্ক্রিয় করতে যাচ্ছেন।\nপূর্বনির্ধারিত নির্বাচিত প্যাচসমূহ ফিরিয়ে আনা হবে।\n\nযেকোন ভাবে নিষ্ক্রিয় করতে চান?",
"autoUpdatePatchesLabel": "প্যাচসমূহ স্বয়ংক্রিয়ভাবে আপডেট করুন",
"autoUpdatePatchesHint": "প্যাচসমূহ স্বয়ংক্রিয়ভাবে সর্বশেষ সংস্করণে আপডেট হবে",
"showUpdateDialogLabel": "হালনাগাদ ডায়ালগ দেখান",
"showUpdateDialogHint": "যখন হালনাগাদ উপলব্ধ থাকবে তখন একটি ডায়ালগ দেখান",
"universalPatchesLabel": "বৈশ্বিক প্যাচসমূহ দেখান",
"universalPatchesHint": "সকল অ্যাপ এবং বৈশ্বিক প্যাচসমূহ দেখায় (অ্যাপ লিস্ট দেখানো একটু ধীর হতে পারে)",
"versionCompatibilityCheckLabel": "সংস্করণ সামঞ্জস্যতা পরীক্ষা করা",
@@ -239,12 +271,7 @@
"updateNotImplemented": "এই ফিচারটি এখনো কার্যকর করা হয়নি"
},
"contributorsView": {
"widgetTitle": "অবদানকারীগণ",
"patcherContributors": "প্যাচার অবদানকারী",
"patchesContributors": "প্যাচসমূহে অবদানকারী",
"integrationsContributors": "ইন্টিগ্রেশন্স অবদানকারী",
"cliContributors": "CLI অবদানকারী",
"managerContributors": "Manager অবদানকারী"
"widgetTitle": "অবদানকারীগণ"
},
"installErrorDialog": {
"mount_version_mismatch": "সংস্করণ মেলেনি",
@@ -254,6 +281,22 @@
"install_failed_verification_failure": "যাচাইকরণ ব্যর্থ হয়েছে",
"status_failure_invalid": "ইনস্টল সঠিক নয়",
"install_failed_version_downgrade": "ডাউনগ্রেড সম্ভব নয়",
"status_failure_conflict": "ইনস্টল কনফ্লিক্ট হচ্ছে"
"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 এর রুট প্রবেশাধিকার অনুমতি দিন এবং আবার চেষ্টা করুন।",
"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,8 +1,11 @@
{
"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",
@@ -13,8 +16,11 @@
"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": {
@@ -22,28 +28,56 @@
"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": {},
"applicationItem": {
"infoButton": "Info"
},
"latestCommitCard": {
"loadingLabel": "Načítání...",
"timeagoLabel": "před ${time}"
"timeagoLabel": "před ${time}",
"patcherLabel": "Záplatovač: ",
"managerLabel": "Správce: ",
"updateButton": "Správce aktualizací"
},
"patcherView": {
"patchButton": "Patchovat"
"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"
"suggestedVersion": "Navrženo",
"anyVersion": "Jakákoli verze"
},
"patchSelectorCard": {
"widgetTitle": "Vybrat patche",
@@ -56,84 +90,180 @@
"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á",
"featureNotAvailable": "Funkce není implementována"
"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",
"featureNotAvailableText": "Tato aplikace je rozdělená APK a může být spolehlivě nainstalována pouze připojením oprávnění root. Nicméně, můžete opravit a nainstalovat plnou APK výběrem z úložiště."
},
"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ů",
"noPatchesFound": "Pro vybranou aplikaci nebyly nalezeny žádné záplaty"
"loadPatchesSelection": "Načíst výběr záplat",
"noSavedPatches": "Žádný uložený výběr patch pro vybranou aplikaci.\nStisknutím Dokončeno uložíte aktuální výběr.",
"noPatchesFound": "Pro vybranou aplikaci nebyly nalezeny žádné záplaty",
"setRequiredOption": "Některé záplaty vyžadují nastavení:\n\n${patches}\n\nPřed pokračováním je prosím nastavte."
},
"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"
"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}"
"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.",
"unsupportedRequiredOption": "Tato oprava obsahuje požadovanou volbu, která není touto aplikací podporována",
"patchesChangeWarningDialogText": "Doporučuje se použít výchozí záplatový výběr a možnosti. Změna může vést k neočekávaným problémům.\n\nPřed změnou jakéhokoli výběru patch budete muset zapnout \"Povolit změnu výběru patch\" v nastavení.",
"patchesChangeWarningDialogButton": "Použít výchozí výběr"
},
"installerView": {
"widgetTitle": "Instalátor",
"installType": "Zvolte instalační typ",
"installTypeDescription": "Vyberte typ instalace pro pokračování.",
"installButton": "Instalovat",
"installRootType": "Připojit",
"installNonRootType": "Běžný",
"warning": "Zakažte automatické aktualizace upravené aplikace, abyste se vyhnuli neočekávaným problémům.",
"pressBackAgain": "Stiskněte znovu pro zrušení",
"openButton": "Otevřít",
"shareButton": "Sdílet soubor",
"notificationTitle": "ReVanced Manager patchuje",
"notificationText": "Klepnutím se vrátíte do instalátoru",
"exportApkButtonTooltip": "Exportovat upravený APK",
"exportLogButtonTooltip": "Exportovat protokol",
"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",
"debugSectionTitle": "Ladění",
"advancedSectionTitle": "Pokročilé",
"exportSectionTitle": "Import a export",
"dataSectionTitle": "Zdroje údajů",
"themeModeLabel": "Vzhled aplikace",
"systemThemeLabel": "Systém",
"lightThemeLabel": "Světlý",
"darkThemeLabel": "Tmavý motiv",
"dynamicThemeLabel": "Váš materiál",
"dynamicThemeHint": "Vychutnejte si zážitek blíže k vašemu zařízení",
"languageLabel": "Jazyk",
"sourcesLabel": "Zdroje",
"languageUpdated": "Jazyk aktualizován",
"englishOption": "Angličtina",
"sourcesLabel": "Alternativní zdroje",
"sourcesLabelHint": "Konfigurace alternativních zdrojů pro vylepšené úpravy a zdokonalené integrace",
"sourcesIntegrationsLabel": "Zdroj integrace",
"useAlternativeSources": "Použít alternativní zdroje",
"useAlternativeSourcesHint": "Použít alternativní zdroje pro vylepšené úpravy a vylepšené integrace namísto API",
"sourcesResetDialogTitle": "Obnovit",
"hostRepositoryLabel": "API Repozitář",
"sourcesResetDialogText": "Jste si jisti, že chcete obnovit zdroje na jejich výchozí hodnoty?",
"apiURLResetDialogText": "Jste si jisti, že chcete resetovat URL API na výchozí hodnotu?",
"sourcesUpdateNote": "Poznámka: Toto automaticky stáhne reVanced Patches and ReVanced Integrations z alternativních zdrojů.\n\nToto vás připojí k alternativnímu zdroji.",
"apiURLLabel": "API URL",
"apiURLHint": "Konfigurace URL API ReVanced Manager",
"selectApiURL": "API URL",
"orgPatchesLabel": "Organizace patchů",
"sourcesPatchesLabel": "Zdroj patchů",
"orgIntegrationsLabel": "Autor integrace",
"contributorsLabel": "Přispěvatelé",
"contributorsHint": "Seznam přispěvatelů ReVanced",
"logsLabel": "Sdílet záznamy",
"logsHint": "Sdílet záznamy Revanced Manageru",
"enablePatchesSelectionLabel": "Povolit změnu výběru patch",
"enablePatchesSelectionHint": "Nezabraňte výběru nebo odebírání záplatek",
"enablePatchesSelectionWarningText": "Změna výběru záplatů může způsobit neočekávané problémy.\n\nPřesto povolit?",
"disablePatchesSelectionWarningText": "Chystáte se zakázat změnu výběru záplat.\nVýchozí výběr záplatů bude obnoven.\n\npřesto zakázat?",
"autoUpdatePatchesLabel": "Automaticky aktualizovat záplaty",
"autoUpdatePatchesHint": "Automaticky aktualizovat záplaty na nejnovější verzi",
"showUpdateDialogLabel": "Zobrazit dialogové okno aktualizace",
"showUpdateDialogHint": "Zobrazit dialogové okno, když je dostupná nová aktualizace",
"universalPatchesLabel": "Zobrazit univerzální záplaty",
"universalPatchesHint": "Zobrazit všechny aplikace a univerzální záplaty (může zpomalit seznam aplikací)",
"versionCompatibilityCheckLabel": "Kontrola kompatibility verzí",
"versionCompatibilityCheckHint": "Zabránit výběru záplat, které nejsou kompatibilní s vybranou verzí aplikace",
"requireSuggestedAppVersionLabel": "Vyžadovat navrhovanou verzi aplikace",
"requireSuggestedAppVersionHint": "Zabránit výběru aplikace s verzí, která není navržena",
"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",
"exportPatchesLabel": "Exportovat záplatu",
"exportPatchesHint": "Exportovat výběr patch do souboru JSON",
"exportedPatches": "Výběr patch exportován",
"noExportFileFound": "Není vybrána žádná oprava k exportu",
"importPatchesLabel": "Importovat výběr patch",
"importPatchesHint": "Importovat výběr patch ze souboru JSON",
"importedPatches": "Výběr patch importován",
"resetStoredPatchesLabel": "Resetovat výběr opravy",
"resetStoredPatchesHint": "Resetovat uloženou opravu",
"resetStoredPatchesDialogTitle": "Obnovit výběr patche?",
"resetStoredPatchesDialogText": "Výchozí výběr záplatů bude obnoven.",
"resetStoredPatches": "Výběr patch byl obnoven",
"resetStoredOptionsLabel": "Resetovat možnosti opravy",
"resetStoredOptionsHint": "Obnovit všechny možnosti opravy",
"resetStoredOptionsDialogTitle": "Obnovit možnosti oprav?",
"resetStoredOptionsDialogText": "Obnovení možností opravy odstraní všechny uložené možnosti.",
"resetStoredOptions": "Možnosti byly resetovány",
"deleteLogsLabel": "Vymazat logy",
"deleteLogsHint": "Odstranit shromážděné logy ReVanced Manageru",
"deleteLogsLabel": "Vymazat záznamy",
"deleteLogsHint": "Odstranit shromážděné záznamy ReVanced Manageru",
"deletedLogs": "Záznamy byly smazány",
"regenerateKeystoreLabel": "Obnovit úložiště klíčů",
"regenerateKeystoreHint": "Znovu vygenerovat úložiště klíčů používané k podpisu aplikací",
"regenerateKeystoreDialogTitle": "Obnovit úložiště klíčů?",
"regenerateKeystoreDialogText": "Upravené aplikace podepsané staré úložiště klíčů již nebudou moci být aktualizovány.",
"regeneratedKeystore": "Obnovena úložiště klíčů",
"exportKeystoreLabel": "Exportovat úložiště klíčů",
"exportKeystoreHint": "Exportovat úložiště klíčů používané k podpisu aplikací",
"exportedKeystore": "Úložiště klíčů exportováno",
"noKeystoreExportFileFound": "Žádný úložiště klíčů k exportu",
"importKeystoreLabel": "Importovat úložiště klíčů",
"importKeystoreHint": "Importovat úložiště klíčů používané k podpisu aplikací",
"importedKeystore": "Úložiště klíčů importováno",
"jsonSelectorErrorMessage": "Vybraný JSON soubor nelze použít"
"selectKeystorePassword": "Heslo úložiště klíčů",
"selectKeystorePasswordHint": "Vyberte heslo úložiště klíčů použité k podpisu aplikací",
"jsonSelectorErrorMessage": "Vybraný JSON soubor nelze použít",
"keystoreSelectorErrorMessage": "Nelze použít vybraný soubor úložiště klíčů"
},
"appInfoView": {
"widgetTitle": "Informace o aplikaci",
"openButton": "Otevřít",
"uninstallButton": "Odinstalovat",
"unmountButton": "Odpojit",
"rootDialogTitle": "Chyba",
"unmountDialogText": "Opravdu chcete odpojit tuto aplikaci?",
"uninstallDialogText": "Opravdu chcete odinstalovat tuto aplikaci?",
"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",
"mountTypeLabel": "Připojit",
"regularTypeLabel": "Běžný",
"patchedDateLabel": "Datum patchování",
"appliedPatchesLabel": "Použité patche",
"patchedDateHint": "${date} v ${time}",
@@ -141,12 +271,32 @@
"updateNotImplemented": "Tato funkce ještě není implementována"
},
"contributorsView": {
"widgetTitle": "Přispěvatelé",
"patcherContributors": "Přispěvatelé k patcheru",
"patchesContributors": "Přispěvatelé k patchemi",
"integrationsContributors": "Přispěvatelé integrace",
"cliContributors": "Přispěvatelé CLI",
"managerContributors": "Přispěvatelé správce"
"widgetTitle": "Přispěvatelé"
},
"installErrorDialog": {}
"installErrorDialog": {
"mount_version_mismatch": "Verse neshodná",
"mount_no_root": "Žádný root přístup",
"mount_missing_installation": "Instalace nebyla nalezena",
"status_failure_blocked": "Instalace blokovaná",
"install_failed_verification_failure": "Ověření selhalo",
"status_failure_invalid": "Instalace neplatná",
"install_failed_version_downgrade": "Nelze ponížit",
"status_failure_conflict": "Konflikt instalace",
"status_failure_storage": "Instalace má problém s uložistěm",
"status_failure_incompatible": "Instalace není kompatibilní",
"status_failure_timeout": "Instalaci vypršel čas",
"status_unknown": "Instalace selhala",
"mount_version_mismatch_description": "Instalace se nezdařila kvůli tomu, že nainstalovaná aplikace je jinou verzí než upravená aplikace.\n\nNainstalujte verzi aplikace, kterou připojujete a zkuste to znovu.",
"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.",
"mount_missing_installation_description": "Instalace se nezdařila z důvodu neopravené aplikace pro připojení na toto zařízení.\n\nNainstalujte si neupravenou aplikaci před připojením a zkuste to znovu.",
"status_failure_timeout_description": "Dokončení instalace trvalo příliš dlouho.\n\nChcete to zkusit 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_invalid_description": "Instalace se nezdařila, protože patchnutá aplikace je neplatná.\n\nOdinstalovat tuto aplikaci a zkusit 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_conflict_description": "Instalace byla zabráněna existující instalací aplikace.\n\nOdinstalovat nainstalovanou aplikaci a zkuste to znovu?",
"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,7 +1,11 @@
{
"okButton": "OK",
"cancelButton": "Afbryd",
"dismissButton": "Luk",
"quitButton": "Luk",
"updateButton": "Opdatér",
"enabledLabel": "Aktiveret",
"disabledLabel": "Deaktiveret",
"installed": "Installeret: ${version}",
"suggested": "Foreslået: ${version}",
"yesButton": "Ja",
@@ -12,8 +16,11 @@
"noShowAgain": "Vis ikke igen",
"add": "Tilføj",
"remove": "Fjern",
"showChangelogButton": "Vis ændringslog",
"showUpdateButton": "Vis opdatering",
"navigationView": {
"dashboardTab": "Oversigt",
"patcherTab": "Patcher",
"settingsTab": "Indstillinger"
},
"homeView": {
@@ -21,10 +28,25 @@
"widgetTitle": "Oversigt",
"updatesSubtitle": "Opdateringer",
"patchedSubtitle": "Patchede applikationer",
"changeLaterSubtitle": "Du kan ændre dette i indstillingerne senere.",
"noUpdates": "Ingen tilgængelige opdateringer",
"WIP": "Arbejdet er i gang...",
"noInstallations": "Ingen patchede apps installeret",
"installUpdate": "Fortsæt med at installere opdateringen?",
"updateSheetTitle": "Opdater ReVanced Manager",
"updateDialogTitle": "Ny opdatering tilgængelig",
"updatePatchesSheetTitle": "Opdater ReVanced Patches",
"updateChangelogTitle": "Ændringslog",
"updateDialogText": "En ny opdatering er tilgængelig for ${file}.\n\nDen installerede version er ${version}.",
"downloadConsentDialogTitle": "Download nødvendige filer?",
"downloadConsentDialogText": "ReVanced Manager har brug for at downloade nødvendige filer for at fungere korrekt.",
"downloadConsentDialogText2": "Dette vil forbinde dig til ${url}.",
"checkUpdateDialogTitle": "Søg efter opdateringer?",
"checkUpdateDialogText": "Ønsker du at ReVanced Manager skal søge efter opdateringer automatisk?",
"notificationTitle": "Opdatering downloadet",
"notificationText": "Tryk for at installere opdateringen",
"downloadingMessage": "Henter opdatering...",
"downloadedMessage": "Opdatering downloadet",
"installingMessage": "Installerer opdatering...",
"errorDownloadMessage": "Opdatering kan ikke hentes",
"errorInstallMessage": "Opdatering kunne ikke installeres",
@@ -36,15 +58,26 @@
},
"latestCommitCard": {
"loadingLabel": "Indlæser...",
"timeagoLabel": "${time} siden"
"timeagoLabel": "${time} siden",
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "Opdater Manager"
},
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Patch",
"armv7WarningDialogText": "Patching på ARMv7-enheder understøttes ikke endnu, og kan derfor fejle. Fortsæt alligevel?",
"removedPatchesWarningDialogText": "Følgende patches er blevet fjernet siden sidste gang du brugte dem.\n\n${patches}\n\nFortsæt alligevel?",
"requiredOptionDialogText": "Nogle patch muligheder skal indstilles."
},
"appSelectorCard": {
"widgetTitle": "Vælg en app",
"widgetTitleSelected": "Valgte app",
"widgetSubtitle": "Ingen app valgt",
"noAppsLabel": "Ingen applikationer fundet",
"currentVersion": "Nuværende",
"suggestedVersion": "Anbefalet"
"suggestedVersion": "Anbefalet",
"anyVersion": "Enhver version"
},
"patchSelectorCard": {
"widgetTitle": "Vælg patches",
@@ -57,19 +90,26 @@
"widgetSubtitle": "Vi er online!"
},
"appSelectorView": {
"viewTitle": "Vælg en app",
"searchBarHint": "Søg efter app",
"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"
"requireSuggestedAppVersionDialogText": "Versionen af den valgte app matcher ikke den foreslåede version, som kan føre til uventede problemer. Brug venligst den foreslåede version.\n\nValgt version: ${selected}\nForeslået version: ${suggested}\n\nFor at fortsætte alligevel, deaktiver \"Kræv foreslået app-version\" i indstillingerne.",
"featureNotAvailable": "Funktion ikke implementeret",
"featureNotAvailableText": "Denne app er en split APK og kan kun patches og installeres pålideligt ved montering med root-tilladelser. Du kan dog patche og installere en fuld APK ved at vælge det fra lager."
},
"patchesSelectorView": {
"viewTitle": "Vælg patches",
"searchBarHint": "Søg efter patches",
"universalPatches": "Universelle patches",
"newPatches": "Nye patches",
"patches": "Patches",
"doneButton": "Udført",
"defaultChip": "Standard",
"defaultTooltip": "Vælg alle standard patches",
"noneChip": "Ingen",
"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.",
@@ -86,21 +126,29 @@
"tooltip": "Flere input-indstillinger",
"selectFilePath": "Vælg fil sti",
"selectFolder": "Vælg mappe",
"selectOption": "Vælg indstilling",
"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}",
"unsupportedPatchVersion": "Patch er ikke understøttet i denne app-version.",
"unsupportedRequiredOption": "Denne patch indeholder en nødvendig mulighed, der ikke understøttes af denne app",
"patchesChangeWarningDialogText": "Det anbefales at bruge standard patchvalg og indstillinger. Ændring af dem kan resultere i uventede problemer.\n\nDu skal aktivere \"Tillad ændring af patchvalg\" i indstillinger, før du ændrer et patchvalg.",
"patchesChangeWarningDialogButton": "Brug standardvalg"
},
"installerView": {
"widgetTitle": "Installationsprogram",
"installType": "Vælg installationstype",
"installTypeDescription": "Vælg den installationstype der skal fortsættes med.",
"installButton": "Installér",
"installRootType": "Montér",
"installNonRootType": "Almindelig",
"warning": "Deaktiver automatiske opdateringer til den patchede app for at undgå uventede problemer.",
"pressBackAgain": "Tryk tilbage igen for at annullere",
"openButton": "Åbn",
"shareButton": "Del fil",
"notificationTitle": "ReVanced Manager patcher",
"notificationText": "Tryk for at gå tilbage til installationsprogrammet",
"exportApkButtonTooltip": "Eksporter patched APK",
@@ -116,18 +164,28 @@
"debugSectionTitle": "Fejlfinding",
"advancedSectionTitle": "Avanceret",
"exportSectionTitle": "Import & eksport",
"dataSectionTitle": "Datakilder",
"themeModeLabel": "App tema",
"systemThemeLabel": "System",
"lightThemeLabel": "Lyst",
"darkThemeLabel": "Mørk tilstand",
"dynamicThemeLabel": "Materiale Dig",
"dynamicThemeHint": "Nyd en oplevelse tættere på din enhed",
"languageLabel": "Sprog",
"sourcesLabel": "Kilder",
"languageUpdated": "Sprog opdateret",
"englishOption": "Engelsk",
"sourcesLabel": "Alternative kilder",
"sourcesLabelHint": "Konfigurer de alternative kilder til ReVanced Patches og ReVanced Integrations",
"sourcesIntegrationsLabel": "Kilde til Integrationer",
"useAlternativeSources": "Brug alternative kilder",
"useAlternativeSourcesHint": "Brug alternative kilder til ReVanced Patches og ReVanced Integrations i stedet for API'en",
"sourcesResetDialogTitle": "Nulstil",
"sourcesResetDialogText": "Er du sikker på, at du vil nulstille dine kilder til deres standardværdier?",
"apiURLResetDialogText": "Er du sikker på, at du vil nulstille API URL til dens standardværdi?",
"sourcesUpdateNote": "Bemærk: Patches vil blive opdateret til den nyeste version automatisk.\n\nDette vil vise din IP-adresse til serveren.",
"sourcesUpdateNote": "Bemærk: Dette vil automatisk downloade ReVanced Patches og ReVanced Integrations fra de alternative kilder.\n\nDette vil forbinde dig til den alternative kilde.",
"apiURLLabel": "API URL",
"apiURLHint": "Konfigurer API-URL'en til ReVanced Manager",
"selectApiURL": "API URL",
"orgPatchesLabel": "Organisation for Patches",
"sourcesPatchesLabel": "Kilde til Patches",
"orgIntegrationsLabel": "Organisation for Integrationer",
@@ -136,13 +194,20 @@
"logsLabel": "Del logs",
"logsHint": "Del ReVanced Manager logs",
"enablePatchesSelectionLabel": "Tillad skift af patch valg",
"enablePatchesSelectionHint": "Forhindrer ikke valg eller fravalg af patches",
"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",
"showUpdateDialogLabel": "Vis opdateringsdialog",
"showUpdateDialogHint": "Vis en dialog når en ny opdatering er tilgængelig",
"universalPatchesLabel": "Vis universelle patches",
"universalPatchesHint": "Vis alle apps og universelle patches (kan forsinke listen over apps)",
"versionCompatibilityCheckLabel": "Versions kompatibilitetskontrol",
"versionCompatibilityCheckHint": "Forhindre valg af patches der ikke er kompatible med den valgte app-version",
"requireSuggestedAppVersionLabel": "Kræv foreslået app-version",
"requireSuggestedAppVersionHint": "Undgå at vælge en app med en version der ikke er den foreslåede",
"requireSuggestedAppVersionDialogText": "Hvis du vælger en app der ikke er den foreslåede version kan det forårsage uventede problemer. \n\nVil du fortsætte alligevel?",
"aboutLabel": "Om",
"snackbarMessage": "Kopieret til udklipsholder",
"restartAppForChanges": "Genstart appen for at anvende ændringer",
@@ -190,10 +255,15 @@
"widgetTitle": "Appinfo",
"openButton": "Åbn",
"uninstallButton": "Afinstallér",
"unmountButton": "Afmonter",
"rootDialogTitle": "Fejl",
"unmountDialogText": "Er du sikker på, at du vil afmontere denne app?",
"uninstallDialogText": "Er du sikker på, at du vil afinstallere denne app?",
"rootDialogText": "App blev installeret med superbruger tilladelser, men i øjeblikket har ReVanced Manager ingen tilladelser.\nGiv superbruger tilladelser først.",
"packageNameLabel": "Pakkenavn",
"installTypeLabel": "Installationstype",
"mountTypeLabel": "Montér",
"regularTypeLabel": "Almindelig",
"patchedDateLabel": "Dato for patching",
"appliedPatchesLabel": "Anvendte patches",
"patchedDateHint": "${date} kl. ${time}",
@@ -201,12 +271,32 @@
"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"
"widgetTitle": "Medvirkende"
},
"installErrorDialog": {}
"installErrorDialog": {
"mount_version_mismatch": "Versionsmatch inkonsistens",
"mount_no_root": "Ingen rod-adgang",
"mount_missing_installation": "Installation ikke fundet",
"status_failure_blocked": "Installation blokeret",
"install_failed_verification_failure": "Bekræftelse mislykkedes",
"status_failure_invalid": "Installation ugyldig",
"install_failed_version_downgrade": "Kan ikke nedgradere",
"status_failure_conflict": "Installation konflikt",
"status_failure_storage": "Problemer med installationslagring",
"status_failure_incompatible": "Installation inkompatibel",
"status_failure_timeout": "Tidsudløb for installation",
"status_unknown": "Installation mislykkedes",
"mount_version_mismatch_description": "Installationen mislykkedes, fordi den installerede app er en anden version end den lappede app.\n\nInstaller versionen af den app, du monterer og prøv igen.",
"mount_no_root_description": "Installationen mislykkedes, fordi root-adgang ikke blev givet.\n\nTildel root-adgang til ReVanced Manager og prøv igen.",
"mount_missing_installation_description": "Installationen mislykkedes, fordi den unpatched app ikke blev installeret på denne enhed for at montere over den.\n\nInstaller den unpatched app før du monterer og prøv igen.",
"status_failure_timeout_description": "Installationen tog for lang tid at afslutte.\n\nVil du prøve igen?",
"status_failure_storage_description": "Installationen mislykkedes på grund af utilstrækkelig opbevaring.\n\nFrigør lidt plads og prøv igen.",
"status_failure_invalid_description": "Installationen mislykkedes på grund af den programrettede app er ugyldig.\n\nAfinstaller app'en og prøv igen?",
"status_failure_incompatible_description": "Appen er inkompatibel med denne enhed.\n\nKontakt udvikleren af appen og bed om support.",
"status_failure_conflict_description": "Installationen blev forhindret af en eksisterende installation af appen.\n\nAfinstaller den installerede app og prøv igen?",
"status_failure_blocked_description": "Installationen blev blokeret af ${packageName}.\n\nJuster dine sikkerhedsindstillinger og prøv igen.",
"install_failed_verification_failure_description": "Installationen mislykkedes på grund af et bekræftelsesproblem.\n\nJuster dine sikkerhedsindstillinger og prøv igen.",
"install_failed_version_downgrade_description": "Installationen mislykkedes, fordi den lappede app er en lavere version end den installerede app.\n\nAfinstaller app'en og prøv igen?",
"status_unknown_description": "Installationen mislykkedes på grund af en ukendt årsag. Prøv venligst igen."
}
}

View File

@@ -107,7 +107,9 @@
"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.",
@@ -162,6 +164,7 @@
"debugSectionTitle": "Debuggen",
"advancedSectionTitle": "Erweitert",
"exportSectionTitle": "Import & Export",
"dataSectionTitle": "Datenquellen",
"themeModeLabel": "Erscheinungsbild",
"systemThemeLabel": "System",
"lightThemeLabel": "Hell",
@@ -169,18 +172,20 @@
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Genieße ein Erlebnis näher an deinem Gerät",
"languageLabel": "Sprache",
"languageUpdated": "Sprache aktualisiert",
"englishOption": "Englisch",
"sourcesLabel": "Quellen",
"sourcesLabelHint": "Konfiguriere die Quelle von Patches und Integrationen",
"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: ReVanced Patches werden automatisch auf die neueste Version aktualisiert.\n\nDies wird Ihre IP-Adresse dem Server offenlegen.",
"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": "Konfiguriere die URL der zu verwendenden API",
"apiURLHint": "Konfigurieren die API URL von ReVanced Manager",
"selectApiURL": "API-URL",
"hostRepositoryLabel": "Repository-API",
"orgPatchesLabel": "Patches Organisation",
"sourcesPatchesLabel": "Patches Quelle",
"orgIntegrationsLabel": "Integrationen Organisation",
@@ -266,12 +271,7 @@
"updateNotImplemented": "Diese Funktion ist noch nicht implementiert"
},
"contributorsView": {
"widgetTitle": "Mitwirkende",
"patcherContributors": "Patcher Mitwirkende",
"patchesContributors": "Patches Mitwirkende",
"integrationsContributors": "Mitwirkende der Integration",
"cliContributors": "CLI Mitwirkende",
"managerContributors": "Manager Mitwirkende"
"widgetTitle": "Mitwirkende"
},
"installErrorDialog": {
"mount_version_mismatch": "Versionskonflikt",

View File

@@ -16,7 +16,7 @@
"noShowAgain": "Να μην ξαναεμφανιστεί",
"add": "Προσθήκη",
"remove": "Αφαίρεση",
"showChangelogButton": "Εμφάνιση αρχείου καταγραφής αλλαγών",
"showChangelogButton": "Εμφάνιση αλλαγών",
"showUpdateButton": "Εμφάνιση ενημέρωσης",
"navigationView": {
"dashboardTab": "Πίνακας Ελέγχου",
@@ -107,7 +107,9 @@
"newPatches": "Νέες τροποποιήσεις",
"patches": "Τροποποιήσεις",
"doneButton": "Τέλος",
"defaultChip": "Προεπιλογές",
"defaultTooltip": "Επιλέξτε όλες τις προεπιλεγμένες τροποποιήσεις",
"noneChip": "Καμία",
"noneTooltip": "Αποεπιλέξτε όλες τις τροποποιήσεις",
"loadPatchesSelection": "Φόρτωση επιλεγμένων τροποποιήσεων",
"noSavedPatches": "Δεν υπάρχουν αποθηκευμένες τροποποιήσεις για την εφαρμογή που επιλέξατε.\nΠατήστε «Τέλος» για να αποθηκεύσετε τις τωρινές επιλογές σας.",
@@ -162,6 +164,7 @@
"debugSectionTitle": "Εντοπισμός σφαλμάτων",
"advancedSectionTitle": "Για προχωρημένους",
"exportSectionTitle": "Εισαγωγή & εξαγωγή",
"dataSectionTitle": "Πηγές δεδομένων",
"themeModeLabel": "Θέμα εφαρμογής",
"systemThemeLabel": "Σύστημα",
"lightThemeLabel": "Ανοιχτόχρωμο",
@@ -169,18 +172,20 @@
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Εμφάνιση που ταιριάζει με τη δική σας συσκευή",
"languageLabel": "Γλώσσα",
"languageUpdated": "Η γλώσσα ενημερώθηκε",
"englishOption": "Αγγλικά",
"sourcesLabel": "Πηγές",
"sourcesLabelHint": "Ρυθμίστε την πηγή τροποποιήσεων και ενσωματώσεων",
"sourcesLabel": "Εναλλακτικές πηγές",
"sourcesLabelHint": "Ρυθμίστε τις εναλλακτικές πηγές για τις τροποποιήσεις ReVanced και τις ενσωματώσεις ReVanced",
"sourcesIntegrationsLabel": "Πηγή ενσωματώσεων",
"useAlternativeSources": "Χρήση εναλλακτικών πηγών",
"useAlternativeSourcesHint": "Χρήση εναλλακτικών πηγών για τις τροποποιήσεις και τις ενσωματώσεις ReVanced αντί του API",
"sourcesResetDialogTitle": "Επαναφορά",
"sourcesResetDialogText": "Είστε βέβαιοι ότι θέλετε να επαναφέρετε τις πηγές σας στις προεπιλεγμένες τιμές τους;",
"apiURLResetDialogText": "Είστε βέβαιοι ότι θέλετε να επαναφέρετε την API URL σας στην προεπιλεγμένη τιμή της;",
"sourcesUpdateNote": "Σημείωση: Οι τροποποιήσεις θα ενημερώνονται στην τελευταία έκδοση αυτόματα.\n\nΑυτό θα αποκαλύπτει την διεύθυνση IP σας στον διακομιστή.",
"sourcesUpdateNote": "Σημείωση: Θα γίνεται αυτόματη λήψη των τροποποιήσεων και των ενσωματώσεων ReVanced από τις εναλλακτικές πηγές.\n\nΟπότε θα συνδέεστε με τις εναλλακτικές πηγές.",
"apiURLLabel": "API URL",
"apiURLHint": "Ρυθμίστε την διεύθυνση που θα χρησιμοποιεί το API",
"apiURLHint": "Ρύθμιση διεύθυνσης URL του API του ReVanced Manager",
"selectApiURL": "API URL",
"hostRepositoryLabel": "Αποθετήριο API",
"orgPatchesLabel": "Οργάνωση τροποποιήσεων",
"sourcesPatchesLabel": "Πηγή τροποποιήσεων",
"orgIntegrationsLabel": "Οργάνωση ενσωματώσεων",
@@ -266,12 +271,7 @@
"updateNotImplemented": "Αυτή η δυνατότητα δεν είναι ακόμα διαθέσιμη"
},
"contributorsView": {
"widgetTitle": "Συνεισφέροντες",
"patcherContributors": "Συνεισφέροντες του τροποποιητή",
"patchesContributors": "Συνεισφέροντες των τροποποιήσεων",
"integrationsContributors": "Συνεισφέροντες των ενσωματώσεων",
"cliContributors": "Συνεισφέροντες του CLI",
"managerContributors": "Συνεισφέροντες του Manager"
"widgetTitle": "Συνεισφέροντες"
},
"installErrorDialog": {
"mount_version_mismatch": "Ασυμφωνία έκδοσης",

View File

@@ -1,172 +1,226 @@
{
"okButton": "Está bien",
"okButton": "Aceptar",
"cancelButton": "Cancelar",
"dismissButton": "Descartar",
"quitButton": "Salir",
"updateButton": "Actualizar",
"enabledLabel": "Activado",
"disabledLabel": "Desactivado",
"installed": "Instalada: ${version}",
"suggested": "Sugerida: ${version}",
"yesButton": "Si",
"yesButton": "Sí",
"noButton": "No",
"warning": "Atención",
"warning": "Advertencia",
"options": "Opciones",
"notice": "Aviso",
"noShowAgain": "No mostrar de nuevo",
"noShowAgain": "No volver a mostrar",
"add": "Agregar",
"remove": "Eliminar",
"showChangelogButton": "Notas de la versión",
"showUpdateButton": "Actualizar",
"navigationView": {
"dashboardTab": "Panel",
"dashboardTab": "Panel de control",
"patcherTab": "Parcheador",
"settingsTab": "Configuración"
},
"homeView": {
"refreshSuccess": "Se ha refrescado satisfactoriamente",
"widgetTitle": "Panel",
"refreshSuccess": "Refrescado satisfactoriamente",
"widgetTitle": "Panel de control",
"updatesSubtitle": "Actualizaciones",
"patchedSubtitle": "Aplicaciones parcheadas",
"noInstallations": "No hay aplicaciones parcheadas instaladas",
"installUpdate": "¿Continuar instalando la actualización?",
"updateChangelogTitle": "Registro de cambios",
"changeLaterSubtitle": "Podés cambiar esto en los ajustes más tarde.",
"noUpdates": "No hay actualizaciones disponibles",
"WIP": "En progreso...",
"noInstallations": "Aún no parcheaste ninguna aplicación",
"installUpdate": "¿Instalar actualización?",
"updateSheetTitle": "Actualizar ReVanced Manager",
"updateDialogTitle": "Nueva actualización disponible",
"updatePatchesSheetTitle": "Actualizar ReVanced Patches",
"updateChangelogTitle": "Notas de la versión",
"updateDialogText": "Hay una nueva actualización disponible para ${file}.\n\nLa versión instalada actualmente es la ${version}.",
"downloadConsentDialogTitle": "¿Descargar archivos necesarios?",
"downloadConsentDialogText": "ReVanced Manager necesita descargar los archivos necesarios para funcionar correctamente.",
"downloadConsentDialogText2": "Esto te va a conectar a ${url}.",
"checkUpdateDialogTitle": "¿Buscar actualizaciones?",
"checkUpdateDialogText": "¿Querés que ReVanced Manager compruebe si hay actualizaciones automáticamente?",
"notificationTitle": "Actualización descargada",
"notificationText": "Tocá para instalar la actualización",
"downloadingMessage": "Descargando actualización...",
"downloadedMessage": "Actualización descargada",
"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",
"noConnection": "No tenés conexión a Internet",
"updatesDisabled": "Por ahora no podés actualizar una app parcheada. Parcheala de nuevo."
},
"applicationItem": {
"infoButton": "Información"
"infoButton": "Gestionar"
},
"latestCommitCard": {
"loadingLabel": "Cargando...",
"timeagoLabel": "Hace ${time}"
"timeagoLabel": "Hace ${time}",
"patcherLabel": "Parcheador: ",
"managerLabel": "Manager: ",
"updateButton": "Actualizar Manager"
},
"patcherView": {
"widgetTitle": "Parcheador",
"patchButton": "Parchear",
"armv7WarningDialogText": "El parcheo en dispositivos ARMv7 aún no está soportado de forma oficial y podría fallar. ¿Querés continuar igual?",
"removedPatchesWarningDialogText": "Los siguientes parches fueron eliminados desde la última vez que los usaste.\n\n${patches}\n\n¿Continuar de todas formas?",
"requiredOptionDialogText": "Algunas opciones de parche tienen que ser establecidas."
},
"appSelectorCard": {
"widgetTitle": "Seleccionar una aplicación",
"widgetTitleSelected": "Aplicación seleccionada",
"widgetSubtitle": "Ninguna aplicación seleccionada",
"noAppsLabel": "No se encontró ninguna aplicación",
"currentVersion": "Actual",
"suggestedVersion": "Sugerida"
"suggestedVersion": "Sugerida",
"anyVersion": "Cualquier versión"
},
"patchSelectorCard": {
"widgetTitle": "Seleccionar parches",
"widgetTitleSelected": "Parches seleccionados",
"widgetSubtitle": "Seleccioná una aplicación primero",
"widgetEmptySubtitle": "No hay ningún parche seleccionado"
"widgetSubtitle": "Ninguna aplicación seleccionada",
"widgetEmptySubtitle": "Ningún parche seleccionado"
},
"socialMediaCard": {
"widgetTitle": "Redes sociales",
"widgetTitle": "Nuestras redes sociales",
"widgetSubtitle": "¡Estamos en línea!"
},
"appSelectorView": {
"storageButton": "Almacenamiento",
"selectFromStorageButton": "Seleccionar desde el almacenamiento",
"errorMessage": "No se puede usar la aplicación seleccionada",
"downloadToast": "La función de descarga aún no está disponible",
"featureNotAvailable": "Función no implementada"
"viewTitle": "Seleccionar una aplicación",
"searchBarHint": "Buscar...",
"storageButton": "Seleccionar desde\\nel almacenamiento",
"selectFromStorageButton": "Seleccionar desde\\nel almacenamiento",
"errorMessage": "El archivo que seleccionaste no es una aplicación o está dañado",
"downloadToast": "La descarga de aplicaciones aún no está disponible",
"requireSuggestedAppVersionDialogText": "La versión de la app que seleccionaste no coincide con la versión sugerida, lo que puede causar errores inesperados. Por favor, usá la versión sugerida.\n\nVersión seleccionada: ${selected}\nVersión sugerida: ${suggested}\n\nPara continuar de todas formas, desactivá \"Requerir versión sugerida de la app\" en los ajustes.",
"featureNotAvailable": "Función no implementada",
"featureNotAvailableText": "Esta aplicación está instalada en formato AAB (Android App Bundle) y solo se puede parchear e instalar de forma fiable mediante el montaje con acceso root. Sin embargo, podés parchear e instalar una aplicación en formato APK seleccionándola desde el almacenamiento."
},
"patchesSelectorView": {
"viewTitle": "Seleccionar parches",
"searchBarHint": "Buscar parches",
"searchBarHint": "Buscar...",
"universalPatches": "Parches universales",
"newPatches": "Nuevos parches",
"newPatches": "Parches nuevos",
"patches": "Parches",
"doneButton": "Listo",
"defaultTooltip": "Seleccioná todos los parches por defecto",
"noneTooltip": "Deseleccionar todos los parches",
"doneButton": "Guardar selección",
"defaultChip": "Por defecto",
"defaultTooltip": "Selecciona los parches por defecto",
"noneChip": "Ninguno",
"noneTooltip": "Deselecciona todos los parches",
"loadPatchesSelection": "Cargar selección de parches",
"noSavedPatches": "No se guardó ninguna selección de parches para la aplicación seleccionada.\nApretá Listo para guardar la selección actual.",
"noPatchesFound": "No se encontraron parches para la app seleccionada",
"setRequiredOption": "Algunos parches requieren establecer algunas opciones:\n\n${patches}\n\nPor favor, configúrelas antes de continuar."
"noSavedPatches": "No se guardó ninguna selección de parches para la aplicación seleccionada.\nApretá 'Guardar selección' para guardar la selección actual.",
"noPatchesFound": "No se encontraron parches para la aplicación seleccionada",
"setRequiredOption": "Los siguientes parches requieren su propia configuración:\\n\\n${patches}\\n\\nPor favor, configuralos antes de continuar."
},
"patchOptionsView": {
"customValue": "Valor personalizado",
"resetOptionsTooltip": "Restablecer las opciones de parche",
"viewTitle": "Opciones de parche",
"saveOptions": "Guardar",
"addOptions": "Agregar opciones",
"resetOptionsTooltip": "Restablecer a los valores por defecto",
"viewTitle": "Configuración\\ndel parche",
"saveOptions": "Guardar configuración",
"addOptions": "Agregar configuración",
"deselectPatch": "Deseleccionar parche",
"tooltip": "Más opciones de entrada",
"selectFilePath": "Selecciona la ruta del archivo",
"selectFolder": "Selecciona la carpeta",
"selectFilePath": "Seleccionar ruta del archivo",
"selectFolder": "Seleccionar carpeta",
"selectOption": "Seleccionar opción",
"requiredOption": "Esta opción es requerida",
"unsupportedOption": "Esta opción no es compatible",
"requiredOptionNull": "Hay que configurar las siguientes opciones:\n\n${options}"
"requiredOptionNull": "Tenés que configurar las siguientes opciones:\\n\\n${options}"
},
"patchItem": {
"unsupportedDialogText": "Seleccionar este parche puede provocar errores en el parcheo.\n\nVersión de la app: ${packageVersion}\nVersiones soportadas:\n${supportedVersions}",
"unsupportedRequiredOption": "Este parche contiene una opción necesaria que no es compatible con esta aplicación",
"unsupportedPatchVersion": "El parche no es compatible con esta versión de la aplicación.",
"unsupportedRequiredOption": "El parche contiene una opción necesaria que no es compatible con esta aplicación",
"patchesChangeWarningDialogText": "Te recomendamos que utilices la selección y opciones de parches por defecto; cambiarlas puede causar problemas inesperados.\\n\\nTendrás que activar \\\"Permitir cambiar la selección de parches\\\" en la configuración antes de poder hacerlo.",
"patchesChangeWarningDialogButton": "Utilizar la opción por defecto"
},
"installerView": {
"installType": "Seleccione el tipo de instalación",
"widgetTitle": "Instalador",
"installType": "Tipo de instalación",
"installTypeDescription": "Seleccioná el tipo de instalación para continuar.",
"installButton": "Instalar",
"installRootType": "Montar",
"installRootType": "Instalación por montaje (requiere root)",
"installNonRootType": "Instalación normal",
"warning": "Recordá desactivar las actualizaciones automáticas de la app parcheada para evitar problemas inesperados.",
"pressBackAgain": "Vuelve a presionar atrás para cancelar",
"openButton": "Abrir",
"shareButton": "Compartir archivo",
"notificationTitle": "ReVanced Manager está parcheando",
"notificationText": "Apretá para volver al instalador",
"exportApkButtonTooltip": "Exportar APK parcheado",
"exportLogButtonTooltip": "Exportar registro",
"screenshotDetected": "Se ha detectado una captura de pantalla. Si está intentando compartir el registro, por favor comparta una copia de texto en su lugar.\n\n¿Copiar registro al portapapeles?",
"copiedToClipboard": "Registro copiado en el portapapeles",
"screenshotDetected": "Detectamos que hiciste una captura de pantalla. Si estás intentando compartir el registro, por favor compartilo en formato de texto.\\n\\n¿Copiar registro al portapapeles?",
"copiedToClipboard": "Registro copiado al portapapeles",
"noExit": "El instalador aún se está ejecutando, no te podés salir..."
},
"settingsView": {
"widgetTitle": "Ajustes",
"widgetTitle": "Configuración",
"appearanceSectionTitle": "Apariencia",
"teamSectionTitle": "Equipo",
"debugSectionTitle": "Depurando",
"debugSectionTitle": "Depuración",
"advancedSectionTitle": "Avanzado",
"exportSectionTitle": "Importación y exportación",
"themeModeLabel": "Tema de la app",
"systemThemeLabel": "Sistema",
"lightThemeLabel": "Luz",
"darkThemeLabel": "Modo oscuro",
"dataSectionTitle": "Fuentes de datos",
"themeModeLabel": "Tema de la aplicación",
"systemThemeLabel": "Igual que el sistema",
"lightThemeLabel": "Claro",
"darkThemeLabel": "Oscuro",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Disfrutá de una experiencia más acorde a tu dispositivo",
"languageLabel": "Idioma",
"sourcesLabel": "Fuentes",
"languageUpdated": "Idioma actualizado",
"englishOption": "Inglés",
"sourcesLabel": "Fuentes alternativas",
"sourcesLabelHint": "Configurá las fuentes alternativas para ReVanced Patches y ReVanced Integrations",
"sourcesIntegrationsLabel": "Fuente de las integraciones",
"useAlternativeSources": "Usar fuentes alternativas",
"useAlternativeSourcesHint": "Usá fuentes alternativas para ReVanced Patches y ReVanced Integrations en lugar de la API",
"sourcesResetDialogTitle": "Resetear",
"sourcesResetDialogText": "¿Estás seguro de que quieres restablecer las fuentes a sus valores por defecto?",
"apiURLResetDialogText": "¿Estás seguro de que quieres restablecer la URL de tu API a su valor por defecto?",
"sourcesUpdateNote": "Nota: Los parches se actualizarán automáticamente a la última versión.\n\nEsto revelará su dirección IP al servidor.",
"sourcesUpdateNote": "Nota: Esto descargará de forma automática ReVanced Patches y ReVanced Integrations desde las fuentes alternativas.\n\nEsto te va a conectar a la fuente alternativa.",
"apiURLLabel": "URL de la API",
"apiURLHint": "Configurá la URL de la API de ReVanced Manager",
"selectApiURL": "URL de la API",
"hostRepositoryLabel": "API del repositorio",
"orgPatchesLabel": "Organización de los parches",
"sourcesPatchesLabel": "Fuente de los parches",
"orgIntegrationsLabel": "Organización de las integraciones",
"contributorsLabel": "Contribuidores",
"contributorsHint": "Una lista de los contribuidores de ReVanced",
"logsLabel": "Compartir registros",
"logsHint": "Compartir los registros de ReVanced Manager",
"logsHint": "Comparte los registros de ReVanced Manager",
"enablePatchesSelectionLabel": "Permitir cambiar la selección de parches",
"enablePatchesSelectionHint": "Permite la selección o deselección de parches",
"enablePatchesSelectionWarningText": "Cambiar la selección de parches puede causar problemas inesperados.\n\n¿Habilitar de todos modos?",
"disablePatchesSelectionWarningText": "Está a punto de desactivar el cambio de la selección de parches.\nSe restablecerá la selección de parches por defecto.\n\n¿Desactivar de todos modos?",
"autoUpdatePatchesLabel": "Actualizar parches automáticamente",
"autoUpdatePatchesHint": "Actualice automáticamente los parches a la última versión",
"autoUpdatePatchesHint": "Actualiza automáticamente los parches a la última versión",
"showUpdateDialogLabel": "Mostrar diálogo de actualización",
"showUpdateDialogHint": "Muestra un diálogo cuando haya una nueva actualización disponible",
"universalPatchesLabel": "Mostrar parches universales",
"universalPatchesHint": "Mostrar todas las aplicaciones y parches universales (puede ralentizar la lista de aplicaciones)",
"versionCompatibilityCheckLabel": "Comprobación de compatibilidad de versiones",
"requireSuggestedAppVersionLabel": "Requiere la versión de aplicación sugerida",
"versionCompatibilityCheckLabel": "Comprobar compatibilidad de versiones",
"versionCompatibilityCheckHint": "Impide la selección de parches que no sean compatibles con la versión de la aplicación seleccionada",
"requireSuggestedAppVersionLabel": "Requerir versión sugerida de la aplicación",
"requireSuggestedAppVersionHint": "Impide seleccionar una aplicación cuya versión no sea la sugerida",
"requireSuggestedAppVersionDialogText": "Seleccionar una aplicación que no es la versión sugerida puede causar problemas inesperados.\n\n¿Desea continuar de todos modos?",
"aboutLabel": "Acerca de",
"snackbarMessage": "Copiado al portapapeles",
"restartAppForChanges": "Reiniciá la app para aplicar los cambios",
"deleteTempDirLabel": "Eliminar archivos temporales",
"deleteTempDirHint": "Eliminá los archivos temporales que no se usan",
"deleteTempDirHint": "Elimina los archivos temporales que no se usan",
"deletedTempDir": "Archivos temporales eliminados",
"exportPatchesLabel": "Exportar parche seleccionado",
"exportPatchesHint": "Exportar parche seleccionado en un archivo JSON",
"exportedPatches": "Parche seleccionado exportado",
"noExportFileFound": "Ningún parche seleccionado para exportar",
"importPatchesLabel": "Importar parche seleccionado",
"importPatchesHint": "Importar parche seleccionado de un archivo JSON",
"importedPatches": "Parche seleccionado importado",
"exportPatchesLabel": "Exportar selección de parches",
"exportPatchesHint": "Exporta la 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": "Importa la selección de parches desde un archivo JSON",
"importedPatches": "Selección de parches importada",
"resetStoredPatchesLabel": "Restablecer selección de parches",
"resetStoredPatchesHint": "Restablecer selección de parches guardada",
"resetStoredPatchesDialogTitle": "¿Restablecer selección de parches?",
@@ -178,33 +232,38 @@
"resetStoredOptionsDialogText": "Restablecer las opciones de parche eliminará todas las opciones guardadas.",
"resetStoredOptions": "Las opciones se han restablecido",
"deleteLogsLabel": "Borrar registros",
"deleteLogsHint": "Eliminar los registros recopilados de ReVanced Manager",
"deleteLogsHint": "Elimina los registros recopilados por ReVanced Manager",
"deletedLogs": "Registros eliminados",
"regenerateKeystoreLabel": "Regenerar almacén de claves",
"regenerateKeystoreHint": "Regenerar el almacén de claves utilizado para firmar aplicaciones",
"regenerateKeystoreDialogTitle": "¿Regenerar almacén de claves?",
"regenerateKeystoreDialogText": "Las aplicaciones parcheadas firmadas con el antiguo almacén de claves ya no podrán actualizarse.",
"regeneratedKeystore": "Almacén de claves regenerado",
"exportKeystoreLabel": "Exportar almacén de claves",
"exportKeystoreHint": "Exportar el almacén de llaves utilizado para firmar aplicaciones",
"regenerateKeystoreLabel": "Regenerar repositorio de claves",
"regenerateKeystoreHint": "Regenera el repositorio de claves utilizado para firmar aplicaciones",
"regenerateKeystoreDialogTitle": "¿Regenerar repositorio de claves?",
"regenerateKeystoreDialogText": "Las aplicaciones parcheadas firmadas con el antiguo repositorio de claves ya no podrán actualizarse.",
"regeneratedKeystore": "Repositorio de claves regenerado",
"exportKeystoreLabel": "Exportar repositorio de claves",
"exportKeystoreHint": "Exporta el repositorio de claves utilizado para firmar aplicaciones",
"exportedKeystore": "Repositorio de claves exportado",
"noKeystoreExportFileFound": "No hay un almacén de claves para exportar",
"noKeystoreExportFileFound": "No hay repositorio de claves para exportar",
"importKeystoreLabel": "Importar repositorio de claves",
"importKeystoreHint": "Importar un almacén de llaves utilizado para firmar aplicaciones",
"importKeystoreHint": "Importar un repositorio de claves utilizado para firmar aplicaciones",
"importedKeystore": "Repositorio de claves importado",
"selectKeystorePassword": "Contraseña del almacén de llaves",
"selectKeystorePasswordHint": "Seleccionar la contraseña del almacén de llaves utilizada para firmar aplicaciones",
"selectKeystorePassword": "Contraseña del repositorio de claves",
"selectKeystorePasswordHint": "Selecciona la contraseña del repositorio de claves utilizada para firmar aplicaciones",
"jsonSelectorErrorMessage": "No se puede usar el archivo JSON seleccionado",
"keystoreSelectorErrorMessage": "No se puede utilizar el archivo de almacén de llaves seleccionado"
"keystoreSelectorErrorMessage": "No se puede utilizar el archivo de repositorio de claves seleccionado"
},
"appInfoView": {
"widgetTitle": "Información de la app",
"widgetTitle": "Información de la aplicación",
"openButton": "Abrir",
"uninstallButton": "Desinstalar",
"unmountButton": "Desmontar",
"rootDialogTitle": "Error",
"unmountDialogText": "¿Seguro que querés desmontar esta aplicación?",
"uninstallDialogText": "¿Seguro que querés desinstalar esta aplicación?",
"rootDialogText": "La app se instaló con permisos de superusuario, pero ReVanced Manager no los tiene.\nPor favor, concedele permisos de superusuario.",
"packageNameLabel": "Nombre del paquete",
"installTypeLabel": "Tipo de instalación",
"mountTypeLabel": "Instalación por montaje (requiere root)",
"regularTypeLabel": "Instalación normal",
"patchedDateLabel": "Fecha de parcheo",
"appliedPatchesLabel": "Parches aplicados",
"patchedDateHint": "${date} a las ${time}",
@@ -212,12 +271,32 @@
"updateNotImplemented": "Esta función no se implementó aún"
},
"contributorsView": {
"widgetTitle": "Contribuidores",
"patcherContributors": "Contribuidores del parcheador",
"patchesContributors": "Contribuidores de los parches",
"integrationsContributors": "Contribuidores de las integraciones",
"cliContributors": "Contribuidores del CLI",
"managerContributors": "Contribuidores del Manager"
"widgetTitle": "Contribuidores"
},
"installErrorDialog": {}
"installErrorDialog": {
"mount_version_mismatch": "La versión no coincide",
"mount_no_root": "Sin acceso root",
"mount_missing_installation": "Instalación no encontrada",
"status_failure_blocked": "Instalación bloqueada",
"install_failed_verification_failure": "Verificación fallida",
"status_failure_invalid": "Instalación inválida",
"install_failed_version_downgrade": "No se puede degradar",
"status_failure_conflict": "Conflicto de instalación",
"status_failure_storage": "Problema de almacenamiento en la instalación",
"status_failure_incompatible": "Instalación incompatible",
"status_failure_timeout": "Tiempo de instalación agotado",
"status_unknown": "Instalación fallida",
"mount_version_mismatch_description": "La instalación fallo debido a que la aplicación instalada es una versión diferente a la parcheada.\n\nInstalá la versión de la aplicación que intentás montar y volvé a intentarlo.",
"mount_no_root_description": "La instalación falló debido a que no concediste acceso root.\n\nConcedele acceso root a ReVanced Manager y volvé a intentarlo.",
"mount_missing_installation_description": "La instalación falló debido a que no instalaste la aplicación original en el dispositivo para poder montar la aplicación modificada sobre ella.\n\nInstalá la aplicación original antes de montar y volvé a intentarlo.",
"status_failure_timeout_description": "La instalación tardó demasiado tiempo en terminar.\n\n¿Querés volver a intentarlo?",
"status_failure_storage_description": "La instalación falló debido a falta de almacenamiento.\n\nLiberá algo de espacio y volvé a intentarlo.",
"status_failure_invalid_description": "La instalación falló debido a que la aplicación parcheada es inválida.\n\n¿Querés desinstalar la aplicación y volver a intentarlo?",
"status_failure_incompatible_description": "La aplicación es incompatible con este dispositivo.\n\nContactá con el desarrollador de la aplicación y solicitá asistencia.",
"status_failure_conflict_description": "Una instalación existente de la aplicación impidió la instalación.\n\n¿Querés desinstalar la aplicación instalada y volver a intentarlo?",
"status_failure_blocked_description": "${packageName} bloqueó la instalación.\n\nAjustá la configuración de seguridad y volvé a intentarlo.",
"install_failed_verification_failure_description": "La instalación falló debido a un problema de verificación.\n\nAjustá la configuración de seguridad y volvé a intentarlo.",
"install_failed_version_downgrade_description": "La instalación falló debido a que la aplicación parcheada es una versión inferior a la instalada.\n\n¿Querés desinstalar la aplicación y volver a intentarlo?",
"status_unknown_description": "La instalación falló debido a una razón desconocida. Por favor, volvé a intentarlo."
}
}

View File

@@ -35,7 +35,7 @@
"installUpdate": "¿Continuar instalando la actualización?",
"updateSheetTitle": "Actualizar ReVanced Manager",
"updateDialogTitle": "Nueva actualización disponible",
"updatePatchesSheetTitle": "Actualizar ReVanced Patches",
"updatePatchesSheetTitle": "Actualizar Parches de ReVanced",
"updateChangelogTitle": "Registro de cambios",
"updateDialogText": "Una nueva actualización está disponible para ${file}.\n\nLa versión actualmente instalada es ${version}.",
"downloadConsentDialogTitle": "¿Descargar archivos necesarios?",
@@ -73,7 +73,7 @@
"appSelectorCard": {
"widgetTitle": "Selecciona una app",
"widgetTitleSelected": "App seleccionada",
"widgetSubtitle": "No hay ninguna app seleccionada",
"widgetSubtitle": "Ninguna aplicación seleccionada",
"noAppsLabel": "No se encontraron aplicaciones",
"currentVersion": "Actual",
"suggestedVersion": "Recomendada",
@@ -96,9 +96,9 @@
"selectFromStorageButton": "Seleccionar desde el almacenamiento",
"errorMessage": "No se puede usar la aplicación seleccionada",
"downloadToast": "La función de descarga aún no está disponible",
"requireSuggestedAppVersionDialogText": "La versión de la app que has seleccionado no coincide con la versión sugerida que puede dar errores inesperados. Por favor usa la versión sugerida.\n\nVersión seleccionada: ${selected}\nVersión sugerida: ${suggested}\n\nPara proceder de todos modos, desactive \"Versión sugerida de la app requerida\" en la configuración.",
"requireSuggestedAppVersionDialogText": "La versión de la app que has seleccionado no coincide con la versión sugerida por lo que puede dar errores inesperados. Por favor usa la versión sugerida.\n\nVersión seleccionada: ${selected}\nVersión sugerida: ${suggested}\n\nPara proceder de todos modos, desactiva \"Versión sugerida de la app requerida\" en la configuración.",
"featureNotAvailable": "Función no implementada",
"featureNotAvailableText": "Esta aplicación es un APK dividido y sólo se puede parchear e instalar de forma fiable instalando con permisos de root. Sin embargo, puede parchear e instalar un APK completo seleccionándolo desde el almacenamiento."
"featureNotAvailableText": "Esta aplicación es un APK dividido y solo puede ser parcheada e instalada de forma fiable mediante el montaje con permisos de root. Sin embargo, puedes parchear e instalar un APK completo seleccionándolo del almacenamiento."
},
"patchesSelectorView": {
"viewTitle": "Seleccionar parches",
@@ -107,7 +107,9 @@
"newPatches": "Nuevos parches",
"patches": "Parches",
"doneButton": "Listo",
"defaultChip": "Por defecto",
"defaultTooltip": "Seleccionar todos los parches predeterminados",
"noneChip": "Ninguno",
"noneTooltip": "Deseleccionar todos los parches",
"loadPatchesSelection": "Cargar selección de parches",
"noSavedPatches": "No se ha guardado ninguna selección de parches para la aplicación seleccionada.\nPresione Hecho para guardar la selección actual.",
@@ -133,7 +135,7 @@
"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.",
"unsupportedRequiredOption": "Este parche contiene una opción necesaria que no está disponible en esta app",
"patchesChangeWarningDialogText": "Se recomienda utilizar la selección y las opciones de parche predeterminadas. Cambiarlas puede provocar problemas inesperados.\n\nDeberá activar \"Permitir cambiar la selección de parches\" en la configuración antes de cambiar cualquier selección de parche.",
"patchesChangeWarningDialogText": "Se recomienda utilizar la selección y las opciones predeterminadas del parche. Cambiarlas puede provocar problemas inesperados.\n\nDeberás activar \"Permitir cambiar la selección de parches\" en la configuración antes de cambiar cualquier selección de parche.",
"patchesChangeWarningDialogButton": "Usar selección por defecto"
},
"installerView": {
@@ -162,6 +164,7 @@
"debugSectionTitle": "Depuración",
"advancedSectionTitle": "Avanzado",
"exportSectionTitle": "Importar y exportar",
"dataSectionTitle": "Fuentes de datos",
"themeModeLabel": "Tema de la app",
"systemThemeLabel": "Sistema",
"lightThemeLabel": "Claro",
@@ -169,18 +172,20 @@
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Disfrute de una experiencia más acorde a su dispositivo",
"languageLabel": "Idioma",
"languageUpdated": "Idioma actualizado",
"englishOption": "Inglés",
"sourcesLabel": "Fuentes",
"sourcesLabelHint": "Configurar la fuente de parches e integraciones",
"sourcesLabel": "Fuentes alternativas",
"sourcesLabelHint": "Configurar las fuentes alternativas para Parches de ReVanced e Integraciones ReVanced",
"sourcesIntegrationsLabel": "Fuente de las integraciones",
"useAlternativeSources": "Usar fuentes alternativas",
"useAlternativeSourcesHint": "Usar fuentes alternativas para Parches de ReVanced e Integraciones ReVanced en lugar de la API",
"sourcesResetDialogTitle": "Restablecer",
"sourcesResetDialogText": "¿Estás seguro de que quieres restablecer tus fuentes a sus valores predeterminados?",
"apiURLResetDialogText": "¿Estás seguro de que quieres restablecer la URL de tu API a su valor predeterminado?",
"sourcesUpdateNote": "Nota: Los parches se actualizarán a la última versión automáticamente.\n\nEsto revelará tu dirección IP al servidor.",
"sourcesUpdateNote": "Nota: Esto automáticamente descargará Parches ReVanced e Integraciones ReVanced desde las fuentes alternativas.\n\nEsto lo conectará a la fuente alternativa.",
"apiURLLabel": "URL de la API",
"apiURLHint": "Configurar la URL de la API a usar",
"apiURLHint": "Configurar la URL de API del ReVanced Manager",
"selectApiURL": "URL de la API",
"hostRepositoryLabel": "Repositorio de la API",
"orgPatchesLabel": "Organización de los parches",
"sourcesPatchesLabel": "Fuente de los parches",
"orgIntegrationsLabel": "Organización de integraciones",
@@ -189,7 +194,7 @@
"logsLabel": "Compartir registros",
"logsHint": "Compartir registros de ReVanced Manager",
"enablePatchesSelectionLabel": "Permitir cambiar la selección de parches",
"enablePatchesSelectionHint": "No evitar seleccionar o deseleccionar parches",
"enablePatchesSelectionHint": "No prevenir la selección o deseleccion de parches",
"enablePatchesSelectionWarningText": "Cambiar la selección de parches puede causar problemas inesperados.\n\n¿Habilitar de todos modos?",
"disablePatchesSelectionWarningText": "Estás a punto de desactivar cambiar la selección de parches.\nLa selección predeterminada de parches se restaurará.\n\n¿Deshabilitar de todos modos?",
"autoUpdatePatchesLabel": "Actualizar automáticamente los parches",
@@ -266,12 +271,7 @@
"updateNotImplemented": "Esta función no se ha implementado aún"
},
"contributorsView": {
"widgetTitle": "Contribuidores",
"patcherContributors": "Contribuidores del parcheador",
"patchesContributors": "Contribuidores de los parches",
"integrationsContributors": "Contribuidores de las integraciones",
"cliContributors": "Contribuidores del CLI",
"managerContributors": "Contribuidores del Manager"
"widgetTitle": "Contribuidores"
},
"installErrorDialog": {
"mount_version_mismatch": "La versión no coincide",
@@ -287,15 +287,15 @@
"status_failure_timeout": "Tiempo de instalación agotado",
"status_unknown": "La instalación falló",
"mount_version_mismatch_description": "La instalación ha fallado debido a que la app instalada es una versión diferente de la app parcheada.\n\nInstala la versión de la app que estás montando y vuelve a intentarlo.",
"mount_no_root_description": "La instalación ha fallado debido a que no se ha concedido acceso root.\n\nConceda acceso root al ReVanced Manager y vuelva a intentarlo.",
"mount_missing_installation_description": "La instalación ha fallado debido a que la app no parcheada no ha sido instalada en este dispositivo para poder montarla.\n\nInstala la app desparcheada antes de montarla e inténtalo de nuevo.",
"mount_no_root_description": "La instalación ha fallado debido a que no se ha concedido acceso root.\n\nConcede acceso root a ReVanced Manager y vuelve a intentarlo.",
"mount_missing_installation_description": "La instalación ha fallado debido a que la aplicación no ha sido instalada en este dispositivo para montarla.\n\nInstala la aplicación sin parchear antes de montar y vuelve a intentarlo.",
"status_failure_timeout_description": "La instalación tardó demasiado tiempo en terminar.\n\n¿Te gustaría intentarlo de nuevo?",
"status_failure_storage_description": "La instalación ha fallado debido a falta de almacenamiento.\n\nLibera algo de espacio y vuelva a intentarlo.",
"status_failure_invalid_description": "La instalación falló debido a que la app parcheada es inválida.\n\n¿Desinstalar la app e intentarlo de nuevo?",
"status_failure_incompatible_description": "La app es incompatible con este dispositivo.\n\nPóngase en contacto con el desarrollador de la app y pida ayuda.",
"status_failure_incompatible_description": "La aplicación es incompatible con este dispositivo.\n\nContacta con el desarrollador de la aplicación y solicita ayuda.",
"status_failure_conflict_description": "La instalación fue evitada por una instalación existente de la app.\n\n¿Desinstalar la app instalada y volver a intentarlo?",
"status_failure_blocked_description": "La instalación fue bloqueada por ${packageName}.\n\nAjuste la configuración de seguridad e inténtelo de nuevo.",
"install_failed_verification_failure_description": "La instalación ha fallado debido a un problema de verificación.\n\nAjuste la configuración de seguridad e inténtelo de nuevo.",
"status_failure_blocked_description": "La instalación fue bloqueada por ${packageName}.\n\nAjusta la configuración de seguridad e inténtalo de nuevo.",
"install_failed_verification_failure_description": "La instalación ha fallado debido a un problema de verificación.\n\nAjusta la configuración de seguridad e inténtalo de nuevo.",
"install_failed_version_downgrade_description": "La instalación ha fallado debido a que la app parcheada es una versión inferior a la instalada.\n\n¿Desinstalar la app y volver a intentarlo?",
"status_unknown_description": "La instalación ha fallado debido a una razón desconocida. Por favor, inténtalo de nuevo."
}

View File

@@ -1,31 +1,52 @@
{
"okButton": "ACEPTAR",
"okButton": "Aceptar",
"cancelButton": "Cancelar",
"quitButton": "Quit",
"dismissButton": "Descartar",
"quitButton": "Salir",
"updateButton": "Actualizar",
"installed": "Instalado: ${version}",
"suggested": "Sugerido: ${version}",
"enabledLabel": "Activado",
"disabledLabel": "Desactivado",
"installed": "Instalada: ${version}",
"suggested": "Sugerida: ${version}",
"yesButton": "Sí",
"noButton": "No",
"warning": "Advertencia",
"options": "Opciones",
"notice": "Notice",
"notice": "Aviso",
"noShowAgain": "No volver a mostrar",
"add": "Añadir",
"remove": "Quitar",
"showChangelogButton": "Registro de cambios",
"showUpdateButton": "Actualizar",
"navigationView": {
"dashboardTab": "Panel de control",
"patcherTab": "Aplicador de parches",
"settingsTab": "Ajustes"
"patcherTab": "Parcheador",
"settingsTab": "Configuración"
},
"homeView": {
"refreshSuccess": "Actualizado con éxito",
"refreshSuccess": "Refrescado satisfactoriamente",
"widgetTitle": "Panel de control",
"updatesSubtitle": "Actualizaciones",
"patchedSubtitle": "Aplicaciones parcheadas",
"changeLaterSubtitle": "Puedes cambiar esto en la configuración más tarde.",
"noUpdates": "No hay actualizaciones disponibles",
"WIP": "Desarrollo en progreso...",
"noInstallations": "No hay aplicaciones parcheadas instaladas",
"installUpdate": "¿Continuar actualizando la aplicación?",
"updateSheetTitle": "Actualizar ReVanced Manager",
"updateDialogTitle": "Nueva actualización disponible",
"updatePatchesSheetTitle": "Actualizar ReVanced Patches",
"updateChangelogTitle": "Registro de cambios",
"updateDialogText": "Hay una nueva versión disponible para ${file}.\n\nLa versión actualmente instalada es la ${version}.",
"downloadConsentDialogTitle": "¿Descargar archivos necesarios?",
"downloadConsentDialogText": "ReVanced Manager necesita descargar los archivos necesarios para funcionar correctamente.",
"downloadConsentDialogText2": "Esto te conectará a ${url}.",
"checkUpdateDialogTitle": "¿Buscar actualizaciones?",
"checkUpdateDialogText": "¿Quieres que ReVanced Manager compruebe si hay actualizaciones automáticamente?",
"notificationTitle": "Actualización descargada",
"notificationText": "Toca para instalar la actualización",
"downloadingMessage": "Descargando actualización...",
"downloadedMessage": "Actualización descargada",
"installingMessage": "Instalando actualización...",
"errorDownloadMessage": "No se pudo descargar la actualización",
"errorInstallMessage": "Error al instalar la actualización",
@@ -37,17 +58,26 @@
},
"latestCommitCard": {
"loadingLabel": "Cargando...",
"timeagoLabel": "Hace ${time}"
"timeagoLabel": "Hace ${time}",
"patcherLabel": "Parcheador: ",
"managerLabel": "Manager: ",
"updateButton": "Actualizar ReVanced Manager"
},
"patcherView": {
"widgetTitle": "Parcheador",
"patchButton": "Parchear",
"armv7WarningDialogText": "El parcheo en dispositivos ARMv7 aún no está soportado y podría fallar. ¿Quieres continuar de todas formas?",
"removedPatchesWarningDialogText": "Los siguientes parches fueron removidos desde la última vez que los usaste.\n\n${patches}\n\n¿Quieres continuar de todas formas?",
"requiredOptionDialogText": "Algunas opciones de parche tienen que ser establecidas."
},
"appSelectorCard": {
"widgetTitle": "Seleccionar una aplicación",
"widgetTitleSelected": "Aplicación seleccionada",
"widgetSubtitle": "No se seleccionó ninguna aplicación",
"noAppsLabel": "No se encontraron aplicaciones",
"currentVersion": "Versión actual",
"suggestedVersion": "Version sugerida"
"suggestedVersion": "Version sugerida",
"anyVersion": "Cualquier versión"
},
"patchSelectorCard": {
"widgetTitle": "Seleccionar parches",
@@ -60,11 +90,15 @@
"widgetSubtitle": "¡Estamos en línea!"
},
"appSelectorView": {
"viewTitle": "Seleccionar una aplicación",
"searchBarHint": "Buscar app",
"storageButton": "Almacenamiento",
"selectFromStorageButton": "Seleccionar desde almacenamiento",
"errorMessage": "No se puede usar la aplicación seleccionada",
"downloadToast": "La función de descarga aún no está disponible",
"featureNotAvailable": "Característica no implementada"
"requireSuggestedAppVersionDialogText": "La versión de la aplicación que has seleccionado no coincide con la versión sugerida, lo que podría causar errores inesperados. Por favor, utiliza la versión sugerida.\n\nVersión seleccionada: ${selected}\nVersión sugerida: ${suggested}\n\nPara continuar de todas formas, desactiva \"Requerir versión sugerida de la aplicación\" en la configuración.",
"featureNotAvailable": "Característica no implementada",
"featureNotAvailableText": "Esta aplicación es un APK dividido y solo puede ser parcheada e instalada de forma fiable mediante el montaje con permisos de root. Sin embargo, puedes parchear e instalar un APK completo seleccionándolo del almacenamiento."
},
"patchesSelectorView": {
"viewTitle": "Selecciona parches",
@@ -73,7 +107,9 @@
"newPatches": "Nuevos parches",
"patches": "Parches",
"doneButton": "Completado",
"defaultChip": "Por defecto",
"defaultTooltip": "Seleccionar todos los parches predeterminados",
"noneChip": "Ninguno",
"noneTooltip": "Deseleccionar todos los elementos",
"loadPatchesSelection": "Cargar selección de parches",
"noSavedPatches": "No se ha guardado ninguna selección de parches para la aplicación seleccionada.\nPresione Hecho para guardar la selección actual.",
@@ -90,21 +126,29 @@
"tooltip": "Más opciones de entrada",
"selectFilePath": "Selecciona la ruta del archivo",
"selectFolder": "Selecciona la carpeta",
"selectOption": "Seleccionar opción",
"requiredOption": "Esta opción es requerida",
"unsupportedOption": "Esta opción no está disponible",
"requiredOptionNull": "Hay que configurar las siguientes opciones:\n\n${options}"
},
"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.",
"unsupportedRequiredOption": "Este parche contiene una opción necesaria que no es compatible con esta aplicación",
"patchesChangeWarningDialogText": "Se recomienda utilizar la selección y opciones de parches por defecto. Cambiarlas puede resultar en problemas inesperados.\n\nTendrás que activar \"Permitir cambiar la selección de parches\" en la configuración antes de cambiar cualquier selección de parches.",
"patchesChangeWarningDialogButton": "Usar selección por defecto"
},
"installerView": {
"widgetTitle": "Instalador",
"installType": "Seleccione el tipo de instalación",
"installTypeDescription": "Selecciona el tipo de instalación con el que quieres continuar.",
"installButton": "Instalar",
"installRootType": "Montar",
"installNonRootType": "Normal",
"warning": "Desactiva las actualizaciones para la aplicación parcheada para evitar problemas inesperados.",
"pressBackAgain": "Vuelve a presionar atrás para cancelar",
"openButton": "Abrir",
"shareButton": "Compartir archivo",
"notificationTitle": "ReVanced Manager está parcheando",
"notificationText": "Pulsa para volver al instalador",
"exportApkButtonTooltip": "Exportar APK parcheado",
@@ -120,6 +164,7 @@
"debugSectionTitle": "Depurando",
"advancedSectionTitle": "Avanzado",
"exportSectionTitle": "Importar y Exportar",
"dataSectionTitle": "Fuentes de datos",
"themeModeLabel": "Tema de la app",
"systemThemeLabel": "Sistema",
"lightThemeLabel": "Claro",
@@ -127,15 +172,20 @@
"dynamicThemeLabel": "Material para ti",
"dynamicThemeHint": "Disfruta de una experiencia más cercana a tu dispositivo",
"languageLabel": "Idioma",
"sourcesLabel": "Fuentes",
"languageUpdated": "Idioma actualizado",
"englishOption": "Inglés",
"sourcesLabel": "Fuentes alternativas",
"sourcesLabelHint": "Configura las fuentes alternativas para ReVanced Patches y ReVanced Integrations",
"sourcesIntegrationsLabel": "Fuente de integraciones",
"useAlternativeSources": "Usar fuentes alternativas",
"useAlternativeSourcesHint": "Usa fuentes alternativas para ReVanced Patches y ReVanced Integrations en lugar de la API",
"sourcesResetDialogTitle": "Reiniciar",
"sourcesResetDialogText": "¿Estás seguro de que quieres restablecer las fuentes a sus valores por defecto?",
"apiURLResetDialogText": "¿Estás seguro de que quieres restablecer la URL de tu API a su valor por defecto?",
"sourcesUpdateNote": "Nota: Los parches se actualizarán a la última versión automáticamente.\n\nEsto revelará tu dirección IP al servidor.",
"sourcesUpdateNote": "Nota: Se descargarán de forma automática ReVanced Patches y ReVanced Integrations desde las fuentes alternativas.\n\nEsto te conectará a la misma.",
"apiURLLabel": "URL API",
"apiURLHint": "Configura la URL de la API de ReVanced Manager",
"selectApiURL": "URL de la API",
"hostRepositoryLabel": "Repositorio de la API",
"orgPatchesLabel": "Organización de parches",
"sourcesPatchesLabel": "Fuente de los parches",
"orgIntegrationsLabel": "Organización de integraciones",
@@ -144,28 +194,76 @@
"logsLabel": "Compartir registros",
"logsHint": "Compartir los registros de ReVanced Manager",
"enablePatchesSelectionLabel": "Permitir cambiar la selección de parches",
"enablePatchesSelectionHint": "No prevenir la selección o deselección de parches",
"enablePatchesSelectionWarningText": "Cambiar la selección de parches puede cauar problemas inespereados.\n\n¿Quieres activarlo de todas formas?",
"disablePatchesSelectionWarningText": "Estás a punto de desactivar cambiar la selección de parches.\nLa selección predeterminada de parches se restaurará.\n\n¿Deshabilitar de todos modos?",
"autoUpdatePatchesLabel": "Actualizar parches automáticamente",
"autoUpdatePatchesHint": "Actualiza los parches a la última versión automáticamente",
"showUpdateDialogLabel": "Mostrar diálogo de actualización",
"showUpdateDialogHint": "Muestra un diálogo cuando una nueva actualización esté disponible",
"universalPatchesLabel": "Mostrar parches universales",
"universalPatchesHint": "Muestra todas las aplicaciones y los parches universales (puede ralentizar la carga de la lista de aplicaciones)",
"versionCompatibilityCheckLabel": "Comprobar compatibilidad de versiones",
"versionCompatibilityCheckHint": "Previene seleccionar parches que no sean compatibles con la versión de la aplicación seleccionada",
"requireSuggestedAppVersionLabel": "Requerir versión sugerida de la aplicación",
"requireSuggestedAppVersionHint": "Previene seleccionar una aplicación cuya versión no sea la sugerida",
"requireSuggestedAppVersionDialogText": "Seleccionar una aplicación cuya versión no sea la sugerida puede causar problemas inesperados.\n\n¿Quieres continuar de todas formas?",
"aboutLabel": "Acerca de",
"snackbarMessage": "Copiado al portapapeles",
"restartAppForChanges": "Reinicie la aplicación para aplicar los cambios",
"deleteTempDirLabel": "Borrar archivos temporales",
"deleteTempDirHint": "Eliminar archivos temporales no utilizados",
"deletedTempDir": "Archivos temporales eliminados",
"exportPatchesLabel": "Exportar selección de parches",
"exportPatchesHint": "Exporta la 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": "Importa la selección de parches desde un archivo JSON",
"importedPatches": "Selección de parches importada",
"resetStoredPatchesLabel": "Restablecer selección de parches",
"resetStoredPatchesHint": "Restablece la selección de parches almacenada",
"resetStoredPatchesDialogTitle": "¿Restablecer selección de parches?",
"resetStoredPatchesDialogText": "Se restaurará la selección de parches por defecto.",
"resetStoredPatches": "Selección de parches restablecida",
"resetStoredOptionsLabel": "Restablecer configuración de parches",
"resetStoredOptionsHint": "Restablece la configuración de todos los parches",
"resetStoredOptionsDialogTitle": "¿Restablecer configuración de parches?",
"resetStoredOptionsDialogText": "Restablecer la configuración de parches eliminará todas las opciones guardadas.",
"resetStoredOptions": "Configuración de parches restablecida",
"deleteLogsLabel": "Borrar registros",
"deleteLogsHint": "Elimina los registros recopilados por ReVanced Manager",
"deletedLogs": "Registros eliminados",
"regenerateKeystoreLabel": "Regenerar repositorio de claves",
"regenerateKeystoreHint": "Regenera el repositorio de claves utilizado para firmar aplicaciones",
"regenerateKeystoreDialogTitle": "¿Regenerar repositorio de claves?",
"regenerateKeystoreDialogText": "Las aplicaciones parcheadas con el repositorio de claves anterior ya no podrán actualizarse.",
"regeneratedKeystore": "Repositorio de claves regenerado",
"exportKeystoreLabel": "Exportar repositorio de claves",
"exportKeystoreHint": "Exporta el repositorio de claves utilizado para firmar aplicaciones",
"exportedKeystore": "Repositorio de claves exportado",
"noKeystoreExportFileFound": "No hay repositorio de claves para exportar",
"importKeystoreLabel": "Importar repositorio de claves",
"importKeystoreHint": "Importa el repositorio de claves utilizado para firmar aplicaciones",
"importedKeystore": "Repositorio de claves importado",
"jsonSelectorErrorMessage": "No se puede utilizar el archivo JSON seleccionado"
"selectKeystorePassword": "Contraseña del repositorio de claves",
"selectKeystorePasswordHint": "Introduce la contraseña del repositorio de claves utilizado para firmar aplicaciones",
"jsonSelectorErrorMessage": "No se puede utilizar el archivo JSON seleccionado",
"keystoreSelectorErrorMessage": "No se puede utilizar el archivo de repositorio de claves seleccionado"
},
"appInfoView": {
"widgetTitle": "Informacion de la applicacion",
"openButton": "Abrir",
"uninstallButton": "Desinstalar",
"unmountButton": "Desmontar",
"rootDialogTitle": "Ocurrió un error",
"unmountDialogText": "¿Seguro que quieres desmontar esta aplicación?",
"uninstallDialogText": "¿Seguro que quieres desinstalar esta aplicación?",
"rootDialogText": "La aplicación se instaló con permisos de root, pero actualmente ReVanced Manager no tiene permisos root.\nPor favor, conceda primero los permisos de root.",
"packageNameLabel": "Nombre del paquete",
"installTypeLabel": "Tipo de instalación",
"mountTypeLabel": "Montar",
"regularTypeLabel": "Normal",
"patchedDateLabel": "Fecha de parcheo",
"appliedPatchesLabel": "Parches aplicados",
"patchedDateHint": "${date} a las ${time}",
@@ -173,12 +271,32 @@
"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"
"widgetTitle": "Contribuidores"
},
"installErrorDialog": {}
"installErrorDialog": {
"mount_version_mismatch": "La versión no coincide",
"mount_no_root": "Sin acceso root",
"mount_missing_installation": "No se encontró la instalación",
"status_failure_blocked": "Instalación bloqueada",
"install_failed_verification_failure": "Verificación fallida",
"status_failure_invalid": "Instalación inválida",
"install_failed_version_downgrade": "No se puede bajar de versión",
"status_failure_conflict": "Conflicto de instalación",
"status_failure_storage": "Problema de almacenamiento de la instalación",
"status_failure_incompatible": "Instalación incompatible",
"status_failure_timeout": "Tiempo de instalación agotado",
"status_unknown": "Instalación fallida",
"mount_version_mismatch_description": "La instalación falló debido a que la versión de la aplicación instalada es diferente a la de la aplicación parcheada.\n\nInstala la versión de la aplicación que intentas montar e inténtalo de nuevo.",
"mount_no_root_description": "La instalación falló debido a que no se ha concedido acceso root.\n\nConcédele acceso root a ReVanced Manager y vuelve a intentarlo.",
"mount_missing_installation_description": "La instalación falló debido a que la aplicación original no ha sido instalada en este dispositivo para montar la versión parcheada sobre ella.\n\nInstala la aplicación original antes de montar y vuelve a intentarlo.",
"status_failure_timeout_description": "La instalación tardó demasiado en finalizar.\n\n¿Quieres intentarlo de nuevo?",
"status_failure_storage_description": "La instalación falló debido a falta de almacenamiento.\n\nLibera algo de espacio y vuelve a intentarlo.",
"status_failure_invalid_description": "La instalación falló debido a que la aplicación parcheada es inválida.\n\n¿Quieres desinstalar la aplicación e intentarlo de nuevo?",
"status_failure_incompatible_description": "La aplicación es incompatible con este dispositivo.\n\nContacta con el desarrollador de la aplicación y solicita asistencia.",
"status_failure_conflict_description": "Se impidió la instalación debido a una instalación existente de la aplicación.\n\n¿Quieres desinstalar la aplicación instalada e intentarlo de nuevo?",
"status_failure_blocked_description": "${packageName} bloqueó la instalación.\n\nAjusta la configuración de seguridad e inténtalo de nuevo.",
"install_failed_verification_failure_description": "La instalación falló debido a un problema de verificación.\n\nAjusta la configuración de seguridad e inténtalo de nuevo.",
"install_failed_version_downgrade_description": "La instalación falló debido a que la aplicación parcheada es una versión inferior a la instalada.\n\n¿Quieres desinstalar la aplicación e intentarlo de nuevo?",
"status_unknown_description": "La instalación falló debido a una razón desconocida. Por favor, inténtalo de nuevo."
}
}

View File

@@ -95,12 +95,7 @@
"updateNotImplemented": "Seda funktsiooni pole veel ellu viidud"
},
"contributorsView": {
"widgetTitle": "Panustajad",
"patcherContributors": "Parandaja panustajad",
"patchesContributors": "Paranduste panustajad",
"integrationsContributors": "Integratsioonide panustajad",
"cliContributors": "CLI panustajad",
"managerContributors": "Manageri panustajad"
"widgetTitle": "Panustajad"
},
"installErrorDialog": {}
}

View File

@@ -1,7 +1,11 @@
{
"okButton": "OK",
"cancelButton": "Peruuta",
"dismissButton": "Sulje",
"quitButton": "Sulje",
"updateButton": "Päivitä",
"enabledLabel": "Käytössä",
"disabledLabel": "Ei käytössä",
"installed": "Asennettu: ${version}",
"suggested": "Ehdotettu: ${version}",
"yesButton": "Kyllä",
@@ -12,6 +16,8 @@
"noShowAgain": "Älä näytä tätä uudelleen",
"add": "Lisää",
"remove": "Poista",
"showChangelogButton": "Näytä muutokset",
"showUpdateButton": "Näytä päivitys",
"navigationView": {
"dashboardTab": "Hallintapaneeli",
"patcherTab": "Paikkaaja",
@@ -22,10 +28,25 @@
"widgetTitle": "Hallintapaneeli",
"updatesSubtitle": "Päivitykset",
"patchedSubtitle": "Paikatut sovellukset",
"changeLaterSubtitle": "Voit muuttaa tätä aseutksista koska tahansa.",
"noUpdates": "Päivityksiä ei ole saatavilla",
"WIP": "Työn alla...",
"noInstallations": "Paikattuja sovelluksia ei ole asennettu",
"installUpdate": "Jatketaanko päivityksen asennusta?",
"updateSheetTitle": "Päivitä ReVanced Manager",
"updateDialogTitle": "Uusi päivitys on saatavilla",
"updatePatchesSheetTitle": "Päivitä ReVanced Paikkaukset",
"updateChangelogTitle": "Muutoshistoria",
"updateDialogText": "Uusi ${file} päivitys on saatavilla.\n\nNyt asennettu versio on ${version}.",
"downloadConsentDialogTitle": "Ladataanko tarvittavat tiedostot?",
"downloadConsentDialogText": "Revanced Managerin on ladattava kunnollista toimintaa varten tarvittavat tiedostot.",
"downloadConsentDialogText2": "Tämä yhdistää osoitteeseen ${url}.",
"checkUpdateDialogTitle": "Tarkistetaanko päivitykset?",
"checkUpdateDialogText": "Haluatko ReVanced Managerin tarkistavan päivitykset automaattisesti?",
"notificationTitle": "Päivitys on ladattu",
"notificationText": "Asenna se napauttamalla",
"downloadingMessage": "Päivitystä ladataan...",
"downloadedMessage": "Päivitys on ladattu",
"installingMessage": "Päivitystä asennetaan...",
"errorDownloadMessage": "Päivityksen lataus epäonnistui",
"errorInstallMessage": "Päivityksen asennus epäonnistui",
@@ -37,17 +58,26 @@
},
"latestCommitCard": {
"loadingLabel": "Ladataan...",
"timeagoLabel": "${time} sitten"
"timeagoLabel": "${time} sitten",
"patcherLabel": "Paikkaaja: ",
"managerLabel": "Manager: ",
"updateButton": "Päivitä Manager"
},
"patcherView": {
"widgetTitle": "Paikkaaja",
"patchButton": "Paikkaa",
"armv7WarningDialogText": "Paikkausta ei vielä tueta ARMv7-laitteissa ja se voi epäonnistua. Jatketaanko silti?",
"removedPatchesWarningDialogText": "Seuraavat paikkaukset on poistettu edellisen käyttökerran jälkeen.\n\n${patches}\n\nJatketaanko silti?",
"requiredOptionDialogText": "Joitakin paikkausasetuksia on määritettävä."
},
"appSelectorCard": {
"widgetTitle": "Valitse sovellus",
"widgetTitleSelected": "Valitut sovellukset",
"widgetSubtitle": "Sovellusta ei valittu",
"noAppsLabel": "Sovelluksia ei löytynyt",
"currentVersion": "Nykyinen",
"suggestedVersion": "Ehdotettu"
"suggestedVersion": "Ehdotettu",
"anyVersion": "Kaikki versiot"
},
"patchSelectorCard": {
"widgetTitle": "Valitse paikkaukset",
@@ -60,11 +90,15 @@
"widgetSubtitle": "Olemme verkossa!"
},
"appSelectorView": {
"viewTitle": "Valitse sovellus",
"searchBarHint": "Etsi sovellusta",
"storageButton": "Tallennustila",
"selectFromStorageButton": "Valitse tallennustilasta",
"errorMessage": "Valittua sovellusta ei voida käyttää",
"downloadToast": "Lataustoiminto ei ole vielä käytettävissä",
"featureNotAvailable": "Ominaisuutta ei ole toteutettu"
"requireSuggestedAppVersionDialogText": "Valitsemasi sovellusversio ei vastaa ehdotettua versiota ja tämä voi johtaa odottamattomia ongelmia. Käytä ehdotettua sovellusversiota.\n\nValittu versio: v${selected}\nEhdotettu versio: v${suggested}\n\nOhittaaksesi tämän, ota \"Vaadi ehdotettu sovellusversio\" -asetus käyttöön.",
"featureNotAvailable": "Ominaisuutta ei ole toteutettu",
"featureNotAvailableText": "Tämä sovellus on jaettu APK ja se voidaan paikata ja asentaa luotettavasti vain root-oikeuksilla liitettynä. Voit kuitenkin paikata ja asentaa täyden APK:n valitsemalla sen tallennustilasta."
},
"patchesSelectorView": {
"viewTitle": "Valitse paikkaukset",
@@ -73,7 +107,9 @@
"newPatches": "Uudet paikkaukset",
"patches": "Paikkaukset",
"doneButton": "Valmis",
"defaultChip": "Oletus",
"defaultTooltip": "Valitse kaikki oletuspaikkaukset",
"noneChip": "Ei mitään",
"noneTooltip": "Tyhjennä kaikki paikkausvalinnat",
"loadPatchesSelection": "Lataa paikkausvalikoima",
"noSavedPatches": "Valitulle sovellukselle ei ole tallennettu paikkausvalikoimaa.\nTallenna nykyinen valikoima painamalla \"Valmis\".",
@@ -90,21 +126,29 @@
"tooltip": "Enemmän syöteasetuksia",
"selectFilePath": "Valitse tiedostosijainti",
"selectFolder": "Valitse kansio",
"selectOption": "Valitse asetus",
"requiredOption": "Tämä asetus vaaditaan",
"unsupportedOption": "Tätä asetusta ei tueta",
"requiredOptionNull": "Seuraavat asetukset on määritettävä:\n\n${options}"
},
"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.",
"unsupportedRequiredOption": "Paikkaus sisältää pakollisen asetuksen, jota tämä sovellus ei tue",
"patchesChangeWarningDialogText": "On suositeltavaa käyttää oletusarvoisia paikkausvalintoja ja -asetuksia. Niiden muutokset voivat aiheuttaa odottamattomia ongelmia.\n\n\"Salli paikkausvalintojen muutos\" -asetus on otettava käyttöön ennen kuin valintoja voidaan muuttaa.",
"patchesChangeWarningDialogButton": "Käytä oletusvalintaa"
},
"installerView": {
"widgetTitle": "Asentaja",
"installType": "Valitse asennustyyppi",
"installTypeDescription": "Valitse asennustyyppi, jolla jatketaan.",
"installButton": "Asenna",
"installRootType": "Liitä",
"installNonRootType": "Tavallinen",
"warning": "Poista paikatun sovelluksen automaattiset päivitykset käytöstä odottamattomien ongelmien välttämiseksi.",
"pressBackAgain": "Peru painamalla takaisin-painiketta uudelleen",
"openButton": "Avaa",
"shareButton": "Jaa tiedosto",
"notificationTitle": "ReVanced Manager suorittaa paikkauksia",
"notificationText": "Napauta palataksesi hallintasovellukseen",
"exportApkButtonTooltip": "Via paikattu APK",
@@ -120,21 +164,28 @@
"debugSectionTitle": "Vianselvitys",
"advancedSectionTitle": "Lisäasetukset",
"exportSectionTitle": "Tuonti/vienti",
"dataSectionTitle": "Tietolähteet",
"themeModeLabel": "Sovelluksen teema",
"systemThemeLabel": "Järjestelmä",
"lightThemeLabel": "Vaalea",
"darkThemeLabel": "Tumma tila",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Nauti paremmin laitettasi vastaavasta käyttökokemuksesta",
"languageLabel": "Kieli",
"sourcesLabel": "Lähteet",
"languageUpdated": "Kieli on vaihdettu",
"englishOption": "Englanti",
"sourcesLabel": "Vaihtoehtoiset lähteet",
"sourcesLabelHint": "Määritä käytöstä poistettujen kohteiden ja käytöstä poistettujen integraatioiden vaihtoehtoiset lähteet",
"sourcesIntegrationsLabel": "Integraatioiden lähde",
"useAlternativeSources": "Käytä vaihtoehtoisia lähteitä",
"useAlternativeSourcesHint": "Käytä vaihtoehtoisia lähteitä ReVanced Patches ja ReVanced Integrations sijasta API",
"sourcesResetDialogTitle": "Palauta",
"sourcesResetDialogText": "Haluatko varmasti palauttaa oletuslähteet?",
"apiURLResetDialogText": "Haluatko varmasti palauttaa oletusarvoisen API:n URL-osoitteen?",
"sourcesUpdateNote": "Huomoi: Paikkaukset päivitetään uusimpiin versioihin automaattisesti.\n\nTämä paljastaa IP-osoitteesi palvelimelle.",
"sourcesUpdateNote": "Huomautus: Tämä lataa automaattisesti ReVanced Patches ja ReVanced Integrations vaihtoehtoisista lähteistä.\n\nTämä yhdistää sinut vaihtoehtoiseen lähdekoodiin.",
"apiURLLabel": "API:n URL-osoite",
"apiURLHint": "Määritä reVanced Manager API URL",
"selectApiURL": "API:n URL-osoite",
"hostRepositoryLabel": "Tietovarasto-API",
"orgPatchesLabel": "Paikkauksien organisaatio",
"sourcesPatchesLabel": "Paikkauksien lähde",
"orgIntegrationsLabel": "Integraatioiden organisaatio",
@@ -142,15 +193,20 @@
"contributorsHint": "Listaus ReVancedin kehitykseen osallistuneista",
"logsLabel": "Jaa lokit",
"logsHint": "Jaa ReVanced Managerin lokit",
"enablePatchesSelectionLabel": "Salli paikkasvalikoiman muutos",
"enablePatchesSelectionLabel": "Salli paikkausvalintojen muutos",
"enablePatchesSelectionHint": "Älä estä paikkausten valintaa tai valintojen poistoa",
"enablePatchesSelectionWarningText": "Paikkausvalikoiman muuttaminen voi aiheuttaa odottamattomia ongelmia.\n\nSallitaanko se silti?",
"disablePatchesSelectionWarningText": "Olet poistamassa paikkausvalikoiman muokkauksen käytöstä.\nOletusarvoiset paikkasvalikoimat palautetaan.\n\nEstetäänkö se silti?",
"autoUpdatePatchesLabel": "Päivitä paikkaukset automaattisesti",
"autoUpdatePatchesHint": "Päivitä paikkaukset automaattisesti uusimpiin versioihin",
"showUpdateDialogLabel": "Näytä päivitysruutu",
"showUpdateDialogHint": "Näytä ilmoitus, kun uusi päivitys on saatavilla",
"universalPatchesLabel": "Näytä yleispaikkaukset",
"universalPatchesHint": "Näytä kaikki sovellukset ja yleispaikkaukset (voi hidastaa sovelluslistausta)",
"versionCompatibilityCheckLabel": "Version yhteensopivuustarkastus",
"versionCompatibilityCheckHint": "Estä valitsemasta valitun sovellusversion kanssa yhteensopimattomia paikkauksia",
"requireSuggestedAppVersionLabel": "Vaadi ehdotettu sovellusversio",
"requireSuggestedAppVersionHint": "Estä ehdotetusta sovellusversiosta poikkeavan version valinta",
"requireSuggestedAppVersionDialogText": "Ehdotetusta poikkeavan sovellusversion valinta voi aiheuttaa odottamattomia ongelmia.\n\nJatketaanko tästä huolimatta?",
"aboutLabel": "Tietoja",
"snackbarMessage": "Kopioitu leikepöydälle",
@@ -199,10 +255,15 @@
"widgetTitle": "Sovelluksen tiedot",
"openButton": "Avaa",
"uninstallButton": "Poista asennus",
"unmountButton": "Irroita liitos",
"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.",
"unmountDialogText": "Haluatko varmasti irrottaa sovelluksen liitoksen?",
"uninstallDialogText": "Oletko varma, että haluat poistaa sovelluksen?",
"rootDialogText": "Sovellus asennettiin superuser-oikeuksilla, mutta ReVanced Managerilla ei tällä hetkellä ole näitä käyttöoikeuksia.\nMyönnä superuser-käyttöoikeus ensin.",
"packageNameLabel": "Paketin nimi",
"installTypeLabel": "Asennustyyppi",
"mountTypeLabel": "Liitä",
"regularTypeLabel": "Tavallinen",
"patchedDateLabel": "Paikkausaika",
"appliedPatchesLabel": "Suoritetut paikkaukset",
"patchedDateHint": "${date} klo ${time}",
@@ -210,12 +271,32 @@
"updateNotImplemented": "Ominaisuutta ei ole vielä toteutettu"
},
"contributorsView": {
"widgetTitle": "Osallistujat",
"patcherContributors": "Patcheriin osallistuneet",
"patchesContributors": "Paikkauksiin osallistuneet",
"integrationsContributors": "Integrointeihin osallistuneet",
"cliContributors": "Komentoriviin osallistuneet",
"managerContributors": "Manageriin osallistuneet"
"widgetTitle": "Osallistujat"
},
"installErrorDialog": {}
"installErrorDialog": {
"mount_version_mismatch": "Versioristiriita",
"mount_no_root": "Root-oikeuksia ei ole",
"mount_missing_installation": "Asennusta ei löytynyt",
"status_failure_blocked": "Asennus estettiin",
"install_failed_verification_failure": "Vahvistus epäonnistui",
"status_failure_invalid": "Asennus ei kelpaa",
"install_failed_version_downgrade": "Ei voida alentaa",
"status_failure_conflict": "Asennusristiriita",
"status_failure_storage": "Asennuksen tallennustilaongelma",
"status_failure_incompatible": "Asennus ei ole yhteensopiva",
"status_failure_timeout": "Asennus aikakatkaistiin",
"status_unknown": "Asennus epäonnistui",
"mount_version_mismatch_description": "Asennus epäonnistui, koska asennettu sovellusversio eroaa paikatusta versiosta.\n\nAsenna sovelluksesta se versio, jonka liität ja yritä uudelleen.",
"mount_no_root_description": "Asennus epäonnistui, koska root-oikeuksia ei myönnetty.\n\nMyönnä ReVanced Managerille root-oikeudet ja yritä uudelleen.",
"mount_missing_installation_description": "Asennus epäonnistui, koska paikkaamatonta sovellusta ei ole asennettu tälle laitteelle sen liikosen korvaamiseksi.\n\nAsenna paikkaamaton sovellus ennen liitosta ja yritä uudelleen.",
"status_failure_timeout_description": "Asennus kesti liian kauan.\n\nHaluatko yrittää uudelleen?",
"status_failure_storage_description": "Asennus epäonnistui riittämättömän tallennustilan vuoksi.\n\nVapauta tilaa ja yritä uudelleen.",
"status_failure_invalid_description": "Asennus epäonnistui, koska paikattu sovellus ei kelpaa.\n\nPoistetaanko sovelluksen asennus ja yritetään uudelleen?",
"status_failure_incompatible_description": "Sovellus ei ole yhteensopiva tämän laitteen kanssa.\n\nOta yhteyttä sovelluksen kehittäjään ja pyydä lisäämään tuki.",
"status_failure_conflict_description": "Sovelluksen jo olemassaoleva asennus esti asennuksen.\n\nPoistetaanko asennettu sovellus ja yritetään uudelleen?",
"status_failure_blocked_description": "${packageName} esti asennuksen.\n\nMuuta suojausasetuksiasi ja yritä uudelleen.",
"install_failed_verification_failure_description": "Asennus epäonnistui todennusongelman vuoksi.\n\nSäädä suojausasetuksiasi ja yritä uudelleen.",
"install_failed_version_downgrade_description": "Asennus epäonnistui, koska paikatun sovelluksen versio on asennettua vanhempi.\n\nPoistetaanko sovelluksen asennus ja yritetään uudelleen?",
"status_unknown_description": "Asennus epäonnistui tuntemattomasta syystä. Yritä uudelleen."
}
}

View File

@@ -29,20 +29,50 @@
"updatesSubtitle": "Mga Pagbabago",
"patchedSubtitle": "Naka-patch nga aplikasyon",
"changeLaterSubtitle": "Pwede mo palitan ito sa settings mamaya.",
"noUpdates": "Walang pagbabagong mayroon"
"noUpdates": "Walang pagbabagong mayroon",
"downloadingMessage": "Nagda-download ng update..."
},
"applicationItem": {
"infoButton": "Impormasyon"
},
"latestCommitCard": {
"loadingLabel": "Naglo-load...",
"timeagoLabel": "${time} ang nakalipas"
},
"applicationItem": {},
"latestCommitCard": {},
"patcherView": {},
"appSelectorCard": {},
"patchSelectorCard": {},
"socialMediaCard": {},
"appSelectorView": {},
"patchesSelectorView": {},
"appSelectorCard": {
"currentVersion": "Ngayong Bersyon"
},
"patchSelectorCard": {
"widgetEmptySubtitle": "Walang patches ang napili"
},
"socialMediaCard": {
"widgetSubtitle": "Online na kami!"
},
"appSelectorView": {
"viewTitle": "Pumili ka ng app",
"searchBarHint": "Hanapin ang app",
"storageButton": "Storage",
"selectFromStorageButton": "Pumili ka galing sa storage"
},
"patchesSelectorView": {
"viewTitle": "Pumili ka ng patches",
"doneButton": "Tapos na",
"defaultChip": "Default",
"noneChip": "Wala"
},
"patchOptionsView": {},
"patchItem": {},
"installerView": {},
"settingsView": {},
"settingsView": {
"systemThemeLabel": "Sistema",
"lightThemeLabel": "Liwanag",
"darkThemeLabel": "Dilim",
"dynamicThemeLabel": "Material You",
"languageLabel": "Wika",
"deleteLogsLabel": "Burahin lahat ng logs",
"deletedLogs": "Nabura na yung logs"
},
"appInfoView": {
"widgetTitle": "Impormasyon",
"openButton": "Buksan",

View File

@@ -107,7 +107,9 @@
"newPatches": "Nouveaux patchs",
"patches": "Patchs",
"doneButton": "Terminé",
"defaultChip": "Par défaut",
"defaultTooltip": "Sélectionner tous les patchs par défaut",
"noneChip": "Aucun",
"noneTooltip": "Désélectionner tous les patchs",
"loadPatchesSelection": "Charger les patchs sélectionnés",
"noSavedPatches": "Aucune sélection de patchs enregistrée pour l'application sélectionnée.\nAppuyez sur Terminé pour sauvegarder la sélection actuelle.",
@@ -162,6 +164,7 @@
"debugSectionTitle": "Débogage",
"advancedSectionTitle": "Avancé",
"exportSectionTitle": "Import & export",
"dataSectionTitle": "Sources de données",
"themeModeLabel": "Thème de l'application",
"systemThemeLabel": "Système",
"lightThemeLabel": "Clair",
@@ -169,18 +172,20 @@
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Profitez d'une expérience plus proche de votre appareil",
"languageLabel": "Langue",
"languageUpdated": "Langue mise à jour",
"englishOption": "Anglais",
"sourcesLabel": "Sources",
"sourcesLabelHint": "Configurer la source des patchs et des intégrations",
"sourcesLabel": "Sources alternatives",
"sourcesLabelHint": "Configure les sources alternatives pour les patchs et les intégrations ReVanced",
"sourcesIntegrationsLabel": "Source des intégrations",
"useAlternativeSources": "Utiliser les sources alternatives",
"useAlternativeSourcesHint": "Utilise les sources alternatives pour les patchs et les intégrations ReVanced à la place de l'API",
"sourcesResetDialogTitle": "Réinitialiser",
"sourcesResetDialogText": "Êtes-vous sûr de vouloir réinitialiser vos sources à leurs valeurs par défaut ?",
"apiURLResetDialogText": "Êtes-vous sûr de vouloir réinitialiser l'URL d'API à sa valeur par défaut ?",
"sourcesUpdateNote": "Remarque : Les patchs ReVanced seront automatiquement mis à jour vers la dernière version.\n\nCela révélera votre adresse IP au serveur.",
"sourcesUpdateNote": "Note : Cela téléchargera automatiquement les patchs et les intégrations ReVanced depuis les sources alternatives.\n\nCela vous connectera à la source alternative.",
"apiURLLabel": "URL de l'API",
"apiURLHint": "Configurer l'URL de l'API à utiliser",
"apiURLHint": "Configurer l'URL de l'API de ReVanced Manager",
"selectApiURL": "URL de l'API",
"hostRepositoryLabel": "Dépôt de l'API",
"orgPatchesLabel": "Organisation des patchs",
"sourcesPatchesLabel": "Source des patchs",
"orgIntegrationsLabel": "Organisation des intégrations",
@@ -266,12 +271,7 @@
"updateNotImplemented": "Cette fonctionnalité n'est pas encore disponible"
},
"contributorsView": {
"widgetTitle": "Contributeurs",
"patcherContributors": "Contributeurs du patcheur",
"patchesContributors": "Contributeurs des patchs",
"integrationsContributors": "Contributeurs à l'intégration",
"cliContributors": "Contributeurs du CLI",
"managerContributors": "Contributeurs du Manager"
"widgetTitle": "Contributeurs"
},
"installErrorDialog": {
"mount_version_mismatch": "Incompatibilité de version",

View File

@@ -1,6 +1,7 @@
{
"okButton": "אישור",
"cancelButton": "ביטול",
"dismissButton": "התעלם",
"quitButton": "יציאה",
"updateButton": "עדכן",
"enabledLabel": "הופעל",
@@ -15,6 +16,8 @@
"noShowAgain": "אל תציג זאת שוב",
"add": "הוסף",
"remove": "הסר",
"showChangelogButton": "הצגת יומן שינויים",
"showUpdateButton": "הצג עדכון",
"navigationView": {
"dashboardTab": "לוח בקרה",
"patcherTab": "מתקן",
@@ -25,14 +28,25 @@
"widgetTitle": "לוח בקרה",
"updatesSubtitle": "עדכונים",
"patchedSubtitle": "אפליקציות מתוקנות",
"changeLaterSubtitle": "ניתן לשנות זאת בהגדרות מאוחר יותר.",
"noUpdates": "אין עדכונים זמינים",
"WIP": "עבודה בתהליך...",
"noInstallations": "אין אפליקציות מתוקנת מותקנות",
"installUpdate": "המשך להתקין את העדכון?",
"updateSheetTitle": "עדכן את ReVanced Manager",
"updateDialogTitle": "עידכון חדש זמין",
"updatePatchesSheetTitle": "עדכן את ReVanced Patches",
"updateChangelogTitle": "היסטורית שינויים",
"updateDialogText": "עדכון חדש זמין עבור ${file}.\n\nהגרסה המותקנת כרגע היא ${version}.",
"downloadConsentDialogTitle": "להוריד קבצי עזר?",
"downloadConsentDialogText": "ReVanced Manager צריך להוריד קבצי עזר על מנת לעבוד כמו שצריך.",
"downloadConsentDialogText2": "זה יחבר אותך ל${url}.",
"checkUpdateDialogTitle": "לבדוק עדכונים?",
"checkUpdateDialogText": "מעדיף ש-ReVanced Manager יבדוק עדכונים אוטומטית?",
"notificationTitle": "העדכון הורד",
"notificationText": "הקש כדי להתקין את העדכון",
"downloadingMessage": "מוריד עדכון...",
"downloadedMessage": "עדכון הורד",
"installingMessage": "מתקין עדכון...",
"errorDownloadMessage": "הורדת קובץ העדכון נכשלה",
"errorInstallMessage": "לא ניתן להתקין את העדכון",
@@ -46,17 +60,24 @@
"loadingLabel": "טוען...",
"timeagoLabel": "לפני ${time}",
"patcherLabel": "מתקן: ",
"managerLabel": "מנהל: "
"managerLabel": "מנהל: ",
"updateButton": "עדכן את Manager"
},
"patcherView": {
"widgetTitle": "מתקן",
"patchButton": "תיקון",
"armv7WarningDialogText": "תיקון במכשירי ARMv7 לא נתמך כרגע ואולי יכשל. להמשיך בכל זאת?",
"removedPatchesWarningDialogText": "התיקונים הבאים הוסרו מאז הפעם האחרונה שהשתמשת בהם.\n${patches}\nלהמשיך בכל זאת?",
"requiredOptionDialogText": "כמה אפשרויות תיקון חייבות להיקבע."
},
"appSelectorCard": {
"widgetTitle": "בחר אפליקציה",
"widgetTitleSelected": "אפליקציה שנבחרה",
"widgetSubtitle": "לא נבחרה אפליקציה",
"noAppsLabel": "לא נמצאו יישומים",
"currentVersion": "נוֹכְחִי",
"suggestedVersion": "מוצע"
"suggestedVersion": "מוצע",
"anyVersion": "כל גרסה"
},
"patchSelectorCard": {
"widgetTitle": "בחר תיקונים",
@@ -69,10 +90,13 @@
"widgetSubtitle": "אנחנו מחוברים!"
},
"appSelectorView": {
"viewTitle": "בחר אפליקציה",
"searchBarHint": "חיפוש אפליקציה",
"storageButton": "אחסון",
"selectFromStorageButton": "בחירה מהאחסון",
"errorMessage": "לא ניתן להשתמש ביישום שנבחר",
"downloadToast": "פונקציית ההורדה אינה זמינה כעת",
"requireSuggestedAppVersionDialogText": "גרסת האפליקציה שבחרת אינה תואמת את הגרסה המומלצת, מה שעלול להוביל לבעיות בלתי צפויות. אנא השתמש בגרסה המומלצת.\n\nהגרסה שנבחרה: ${selected}\nהגרסה המומלצת: ${suggested}\n\nכדי להמשיך בכל זאת, כבה את \"דרוש גרסת אפליקציה מומלצת\" בהגדרות.",
"featureNotAvailable": "תכונה לא מיושמת"
},
"patchesSelectorView": {
@@ -82,7 +106,9 @@
"newPatches": "תיקונים חדשים",
"patches": "תיקונים",
"doneButton": "בוצע",
"defaultChip": "ברירת מחדל",
"defaultTooltip": "בחר את כל תיקוני ברירת המחדל",
"noneChip": "כלום",
"noneTooltip": "בטל את בחירת כל התיקונים",
"loadPatchesSelection": "טען בחירת תיקונים",
"noSavedPatches": "אין תיקונים שמורים עבור האפליקציה שנבחרה.\nלחץ על בוצע כדי לשמור את הבחירה הנוכחית.",
@@ -143,16 +169,12 @@
"dynamicThemeHint": "תהנה/י מחוויה קרובה יותר למכשיר שלך",
"languageLabel": "שפה",
"englishOption": "אנגלית",
"sourcesLabel": "מקורות",
"sourcesLabelHint": "הגדר את מקור התיקונים והאינטרקציות",
"sourcesIntegrationsLabel": "מקור אינטגרציות",
"sourcesResetDialogTitle": "איפוס",
"sourcesResetDialogText": "האם אתה בטוח שברצונך לאפס את המקורות לערכי ברירת המחדל שלהם?",
"apiURLResetDialogText": "האם אתה בטוח שברצונך לאפס את כתובת הAPI לערך ברירת המחדל?",
"sourcesUpdateNote": "שים לב: טלאי ReVanced יעודכנו לגרסה העדכנית באופן אוטומטי.\n\nזה יחשוף את כתובת ה־IP שלך לשרת.",
"apiURLLabel": "כתובת API",
"selectApiURL": "כתובת API",
"hostRepositoryLabel": "מאגר API",
"orgPatchesLabel": "ארגון תיקונים",
"sourcesPatchesLabel": "מקור התיקונים",
"orgIntegrationsLabel": "ארגון אינטגרציות",
@@ -216,12 +238,7 @@
"updateNotImplemented": "תכונה זו טרם יושמה"
},
"contributorsView": {
"widgetTitle": "תורמים",
"patcherContributors": "תורמי מתקן",
"patchesContributors": "תורמי תיקונים",
"integrationsContributors": "תורמי אינטגרציה",
"cliContributors": "תורמי CLI",
"managerContributors": "תורמי מנהל"
"widgetTitle": "תורמים"
},
"installErrorDialog": {
"mount_version_mismatch": "אי התאמה של הגירסה",

View File

@@ -1,8 +1,10 @@
{
"okButton": "ठीक है",
"cancelButton": "रद्द करें",
"dismissButton": "बंद करें",
"quitButton": "छोड़ें",
"updateButton": "अपडेट करें",
"enabledLabel": "सक्रिय",
"installed": "इंस्टॉल्ड: ${version}",
"suggested": "सुझाया गया: ${version}",
"yesButton": "हाँ",
@@ -13,6 +15,7 @@
"noShowAgain": "इसे पुनः न दिखाएँ",
"add": "ऐड करें",
"remove": "हटाएं",
"showChangelogButton": "बदलाव दिखाएं",
"navigationView": {
"dashboardTab": "नियंत्रण-पट्ट",
"patcherTab": "पैचर",
@@ -99,10 +102,8 @@
"dynamicThemeLabel": "मेटीरियल यू",
"dynamicThemeHint": "अपने डिवाइस के करीब एक अनुभव का आनंद लें",
"languageLabel": "भाषा",
"sourcesLabel": "स्रोत",
"sourcesIntegrationsLabel": "एकीकरण स्रोत",
"sourcesResetDialogTitle": "रीसेट करें",
"hostRepositoryLabel": "रिपोजिटरी एपीआई",
"orgPatchesLabel": "पैच संगठन",
"sourcesPatchesLabel": "पैच स्रोत",
"orgIntegrationsLabel": "एकीकरण संगठन",
@@ -138,12 +139,7 @@
"updateNotImplemented": "यह फीचर फिलहाल इम्प्लीमेंट नहीं हुआ है"
},
"contributorsView": {
"widgetTitle": "योगदान कर्ता",
"patcherContributors": "पैचर योगदानकर्ता",
"patchesContributors": "पैच योगदानकर्ता",
"integrationsContributors": "एकीकरण योगदानकर्ता",
"cliContributors": "CLI योगदानकर्ता",
"managerContributors": "प्रबंधक योगदानकर्ता"
"widgetTitle": "योगदान कर्ता"
},
"installErrorDialog": {}
}

View File

@@ -88,11 +88,9 @@
"darkThemeLabel": "Tamni način",
"dynamicThemeHint": "Uživajte u iskustvu prilagođenom vašem uređaju",
"languageLabel": "Jezik",
"sourcesLabel": "Izvori",
"sourcesIntegrationsLabel": "Izvori ugradnje",
"sourcesResetDialogTitle": "Ponovno postavljanje",
"apiURLLabel": "API URL (Automatic Copy)",
"hostRepositoryLabel": "Spremište API",
"orgPatchesLabel": "Autori zakrpa",
"sourcesPatchesLabel": "Izvor zakrpa",
"orgIntegrationsLabel": "Organizacije za ugradnju",
@@ -127,12 +125,7 @@
"updateNotImplemented": "Ova značajka još nije implementirana"
},
"contributorsView": {
"widgetTitle": "Pridonositelji",
"patcherContributors": "Pridonositelji zakrpa",
"patchesContributors": "Pridonositelji zakrpa",
"integrationsContributors": "Pridonositelji integracija",
"cliContributors": "Pridonositelji za CLI",
"managerContributors": "Pridonositelji za upravitelja"
"widgetTitle": "Pridonositelji"
},
"installErrorDialog": {}
}

View File

@@ -16,6 +16,8 @@
"noShowAgain": "Ne jelenjen meg többé",
"add": "Hozzáadás",
"remove": "Eltávolítás",
"showChangelogButton": "Változások megtekintése",
"showUpdateButton": "Frissítések mutatása",
"navigationView": {
"dashboardTab": "Irányítópult",
"patcherTab": "Patchelő",
@@ -26,14 +28,25 @@
"widgetTitle": "Irányítópult",
"updatesSubtitle": "Frissítések",
"patchedSubtitle": "Patchelt alkalmazások",
"changeLaterSubtitle": "Ezt később módosíthatja a beállításokban.",
"noUpdates": "Nincs elérhető frissítés",
"WIP": "Folyamatban van...",
"WIP": "Folyamatban...",
"noInstallations": "Nincs telepítve patchelt alkalmazás",
"installUpdate": "Folytatja a frissítés telepítését?",
"updateChangelogTitle": "Újdonságok",
"updateSheetTitle": "ReVanced Manager frissítése",
"updateDialogTitle": "Új frissítés elérhető",
"updatePatchesSheetTitle": "ReVanced Patchek frissítése",
"updateChangelogTitle": "Változásnapló",
"updateDialogText": "Új frissítés érhető el a következőhöz: ${file}.\n\nA jelenleg telepített verzió: ${version}.",
"downloadConsentDialogTitle": "Letölti a szükséges fájlokat?",
"downloadConsentDialogText": "A ReVanced Managernek le kell töltenie a szükséges fájlokat a megfelelő működéshez.",
"downloadConsentDialogText2": "Csatlakozni fog ehhez: ${url}.",
"checkUpdateDialogTitle": "Frissítések keresése?",
"checkUpdateDialogText": "Szeretné, hogy a ReVanced Manager automatikusan ellenőrizze a frissítéseket?",
"notificationTitle": "Frissítés letöltve",
"notificationText": "Koppintson a frissítés telepítéséhez",
"downloadingMessage": "Frissítés letöltése...",
"downloadedMessage": "Frissítés letöltve",
"installingMessage": "Frissítés telepítése...",
"errorDownloadMessage": "Frissítés letöltése sikertelen",
"errorInstallMessage": "Frissítés telepítése sikertelen",
@@ -45,37 +58,47 @@
},
"latestCommitCard": {
"loadingLabel": "Betöltés...",
"timeagoLabel": "Ennyi ideje: ${time}",
"timeagoLabel": "Frissítve: ${time}",
"patcherLabel": "Patchelő: ",
"managerLabel": "Kezelő: ",
"updateButton": "Frissítéskezelő"
"managerLabel": "Manager: ",
"updateButton": "Manager frissítése"
},
"patcherView": {
"widgetTitle": "Patchelő",
"patchButton": "Patch",
"armv7WarningDialogText": "A patchelés az ARMv7 eszközökön még nem támogatott, és sikertelen lehet. Folytatja?",
"removedPatchesWarningDialogText": "A következő patcheket a legutóbbi használatuk óta eltávolították.\n\n${patches}\n\nMindenképpen folytatja?",
"requiredOptionDialogText": "Néhány patch lehetőséget be kell állítani."
},
"appSelectorCard": {
"widgetTitle": "Válasszon egy alkalmazást",
"widgetTitleSelected": "Kiválasztott alkalmazás",
"widgetSubtitle": "Nincs alkalmazás kiválasztva",
"noAppsLabel": "Nem találhatóak alkalmazások",
"currentVersion": "Jelenlegi",
"suggestedVersion": "Javasolt"
"suggestedVersion": "Javasolt",
"anyVersion": "Bármilyen verzió"
},
"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"
"widgetSubtitle": "Először válasszon egy alkalmazást",
"widgetEmptySubtitle": "Nem választott patchet"
},
"socialMediaCard": {
"widgetTitle": "Közösségi oldalak",
"widgetSubtitle": "Online vagyunk!"
},
"appSelectorView": {
"viewTitle": "Válasszon egy alkalmazást",
"searchBarHint": "App keresés",
"storageButton": "Tárhely",
"selectFromStorageButton": "Kiválasztás a tárhelyről",
"errorMessage": "A kiválasztott alkalmazás nem használható",
"downloadToast": "A letöltés funkció még nem érhető el",
"featureNotAvailable": "A funkció nincs megvalósítva"
"requireSuggestedAppVersionDialogText": "Az alkalmazás kiválasztott verziója nem egyezik a javasolt verzióval. Kérjük, válassza ki a javasolt verziónak megfelelő alkalmazást.\n\nKiválasztott verzió: ${selected}\nJavasolt verzió: ${suggested}\n\nA folytatáshoz kapcsolja ki a „Javasolt alkalmazásverzió megkövetelése” lehetőséget a beállításokban.",
"featureNotAvailable": "A funkció nincs megvalósítva",
"featureNotAvailableText": "Ez az alkalmazás egy osztott APK, és csak root jogosultságokkal patchelhető és telepíthető megbízhatóan. A teljes APK-t azonban patchelheti és telepítheti, ha kiválasztja azt a tárhelyről."
},
"patchesSelectorView": {
"viewTitle": "Patchek kiválasztása",
@@ -84,10 +107,12 @@
"newPatches": "Új patchek",
"patches": "Patchek",
"doneButton": "Kész",
"defaultChip": "Alapértelmezett",
"defaultTooltip": "Összes alapértelmezett patch kiválasztása",
"noneTooltip": "Összes javítás kijelölésének törlése",
"loadPatchesSelection": "Patch kiválasztás betöltése",
"noSavedPatches": "Nincs mentett patch a kiválasztott alkalmazáshoz.\nNyomja meg a Kész gombot az aktuális kijelölés mentéséhez.",
"noneChip": "Semmi",
"noneTooltip": "Összes patch kijelölésének törlése",
"loadPatchesSelection": "Patch kijelölés betöltése",
"noSavedPatches": "Nincs mentett patch kijelölés a kiválasztott alkalmazáshoz.\nNyomja meg a Kész gombot az aktuális kijelölés mentéséhez.",
"noPatchesFound": "A kiválasztott alkalmazáshoz nem találhatóak patchek",
"setRequiredOption": "Néhány patchhez be kell állítani a következő beállításokat:\n\n${patches}\n\nKérjük, állítsa be őket a folytatás előtt."
},
@@ -97,7 +122,7 @@
"viewTitle": "Patch beállítások",
"saveOptions": "Mentés",
"addOptions": "Opciók hozzáadása",
"deselectPatch": "Patchek kijelölésének törlése",
"deselectPatch": "Patch kijelölésének törlése",
"tooltip": "További beviteli lehetőségek",
"selectFilePath": "Válassza ki a fájl elérési útját",
"selectFolder": "Mappa kiválasztása",
@@ -107,28 +132,30 @@
"requiredOptionNull": "A következő opciókat kell beállítani:\n\n${options}"
},
"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": "A Patch nem támogatott ehhez az alkalmazásverzióhoz.",
"unsupportedRequiredOption": "Ez a Patch egy kötelező beállítást tartalmaz, amelyet ez az alkalmazás nem támogat",
"unsupportedDialogText": "Ezt a patchet nem biztos hogy sikerül alkalmazni, mert más verzióhoz készült.\n\nAlkalmazás verzió: ${packageVersion}\nTámogatott verziók:\n${supportedVersions}",
"unsupportedPatchVersion": "A patch nem támogatott ehhez az alkalmazásverzióhoz.",
"unsupportedRequiredOption": "Ez a patch egy kötelező beállítást tartalmaz, amelyet ez az alkalmazás nem támogat",
"patchesChangeWarningDialogText": "Javasoljuk, hogy az alapértelmezett patch kijelölést és beállításait használja. Ezek megváltoztatása váratlan problémákat okozhat.\n\nMielőtt bármilyen patchet módosítana, be kell kapcsolnia a „Patch kijelölés módosításánák engedélyezése” lehetőséget a beállításokban.",
"patchesChangeWarningDialogButton": "Használja az alapértelmezett kijelölést"
},
"installerView": {
"widgetTitle": "Telepítő",
"installType": "Válassza ki a telepítés típusát",
"installTypeDescription": "Válassza ki a telepítés típusát a folytatáshoz.",
"installButton": "Telepítés",
"installRootType": "Felcsatolás",
"installRootType": "Csatolás",
"installNonRootType": "Hagyományos",
"warning": "A váratlan problémák elkerülése érdekében tiltsa le a javított alkalmazás automatikus frissítéseit.",
"pressBackAgain": "A visszavonáshoz nyomja meg ismét a vissza gombot",
"warning": "A váratlan problémák elkerülése érdekében tiltsa le a patchelt alkalmazás automatikus frissítéseit.",
"pressBackAgain": "A visszavonáshoz nyomja meg a vissza gombot ismét",
"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",
"notificationText": "Koppintson a telepítőhöz való visszalépéshez",
"exportApkButtonTooltip": "Patchelt apk exportálása",
"exportLogButtonTooltip": "Napló exportálása",
"screenshotDetected": "Képernyőképet észleltünk. Ha megpróbálja megosztani a naplót, kérjük, ossza meg helyette egy szöveges másolatot.\n\nVágólapra másolja a naplót?",
"copiedToClipboard": "Napló átmásolva a vágólapra",
"noExit": "A telepítő még fut, most nem lehet visszalépni..."
"screenshotDetected": "Képernyőképet észleltünk. Ha megpróbálja megosztani a naplót, kérjük osszon meg helyette egy szöveges másolatot.\n\nA vágólapra másolja a naplót?",
"copiedToClipboard": "A napló vágólapra másolva",
"noExit": "A telepítő még fut, nem lehet kilépni..."
},
"settingsView": {
"widgetTitle": "Beállítások",
@@ -136,26 +163,29 @@
"teamSectionTitle": "Csapat",
"debugSectionTitle": "Hibakeresés",
"advancedSectionTitle": "Haladó",
"exportSectionTitle": "Importálás & exportálás",
"exportSectionTitle": "Importálás és exportálás",
"dataSectionTitle": "Adatforrások",
"themeModeLabel": "Alkalmazás témája",
"systemThemeLabel": "Rendszer",
"lightThemeLabel": "Világos",
"darkThemeLabel": "Sötét mód",
"darkThemeLabel": "Sötét",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Élvezd az eszközödhöz közelibb élményt",
"dynamicThemeHint": "Élvezze az eszközéhez közelibb élményt",
"languageLabel": "Nyelv",
"languageUpdated": "Nyelv frissítve",
"englishOption": "Angol",
"sourcesLabel": "Források",
"sourcesLabelHint": "Konfigurálja a javítások és integrációk forrását",
"sourcesLabel": "Alternatív források",
"sourcesLabelHint": "Állítsa be a ReVanced Patchek és ReVanced Integrációk alternatív forrásait",
"sourcesIntegrationsLabel": "Integrációk - forrás",
"useAlternativeSources": "Alternatív források használata",
"useAlternativeSourcesHint": "Használjon alternatív forrásokat a ReVanced Patchekhez és a ReVanced Integrációhoz az API helyett",
"sourcesResetDialogTitle": "Visszaállítás",
"sourcesResetDialogText": "Biztosan vissza szeretné állítani a forrásokat az alapértelmezett értékekre?",
"apiURLResetDialogText": "Biztosan vissza szeretné állítani az API URL-jét az alapértelmezett értékre?",
"sourcesUpdateNote": "Megjegyzés: A patchek automatikusan frissülnek a legújabb verzióra.\n\nEz felfedi az IP-címét a szerver számára.",
"sourcesUpdateNote": "Megjegyzés: Ez automatikusan letölti a ReVanced Patcheket és a ReVanced Integrációkat az alternatív forrásokból.\n\nEzzel csatlakozik az alternatív forráshoz.",
"apiURLLabel": "API URL",
"apiURLHint": "Konfigurálja a használni kívánt API URL-jét",
"selectApiURL": "API címe",
"hostRepositoryLabel": "Adattároló API",
"apiURLHint": "Konfigurálja a ReVanced Manager API URL-jét",
"selectApiURL": "API link",
"orgPatchesLabel": "Patchek - szervezet",
"sourcesPatchesLabel": "Patchek - forrás",
"orgIntegrationsLabel": "Integrációk - szervezet",
@@ -163,49 +193,51 @@
"contributorsHint": "A ReVanced közreműködőinek listája",
"logsLabel": "Naplók megosztása",
"logsHint": "ReVanced Manager naplók megosztása",
"enablePatchesSelectionLabel": "Engedélyezze a patch kiválasztásának módosítását",
"enablePatchesSelectionHint": "Ne akadályozza meg a javítások kiválasztását vagy megszüntetését",
"enablePatchesSelectionWarningText": "A patchek kiválasztásának megváltoztatása váratlan problémákat okozhat.\n\nMindenképpen engedélyezi?",
"disablePatchesSelectionWarningText": "Arra készül, hogy letiltja a patchek kiválasztásának módosítását.\nA javítások alapértelmezett kiválasztása visszaáll.\n\nMindenképpen letiltja?",
"enablePatchesSelectionLabel": "Patch kijelölés módosításánák engedélyezése",
"enablePatchesSelectionHint": "Ne akadályozza meg a patchek kijelölését vagy a kijelölés megszüntetését",
"enablePatchesSelectionWarningText": "A patchek kijelölésének megváltoztatása váratlan problémákat okozhat.\n\nMindenképpen engedélyezi?",
"disablePatchesSelectionWarningText": "Arra készül, hogy letiltja a patchek kijelölésének módosítását.\nA patchek alapértelmezett kijelölése visszaáll.\n\nMindenképpen letiltja?",
"autoUpdatePatchesLabel": "Patchek automatikus frissítése",
"autoUpdatePatchesHint": "A patchek automatikus frissítése a legújabb verzióra",
"showUpdateDialogLabel": "Frissítési panel megjelenítése",
"showUpdateDialogHint": "Panel megjelenítése, ha új frissítés érhető el",
"universalPatchesLabel": "Univerzális patchek megjelenítése",
"universalPatchesHint": "Az összes alkalmazás és univerzális patch megjelenítése (lassíthatja az alkalmazáslistát)",
"versionCompatibilityCheckLabel": "Verziókompatibilitás ellenőrzése",
"versionCompatibilityCheckHint": "Akadályozza meg a kiválasztott alkalmazásverzióval nem kompatibilis javítások kiválasztását",
"requireSuggestedAppVersionLabel": "Javasolt alkalmazás verzió kötelező",
"versionCompatibilityCheckHint": "Akadályozza meg a kiválasztott alkalmazásverzióval nem kompatibilis patchek kiválasztását",
"requireSuggestedAppVersionLabel": "Javasolt alkalmazásverzió szükséges",
"requireSuggestedAppVersionHint": "Akadályozza meg, hogy olyan alkalmazást válasszon ki, amelynek verziója nem a javasolt",
"requireSuggestedAppVersionDialogText": "Egy nem a javasolt verziótól eltérő alkalmazás kiválasztása váratlan problémákat okozhat.\n\nMindenképpen folytatni szeretné?",
"requireSuggestedAppVersionDialogText": "A javasolt verziótól eltérő alkalmazás kiválasztása váratlan problémákat okozhat.\n\nMindenképpen folytatni szeretné?",
"aboutLabel": "Rólunk",
"snackbarMessage": "Vágólapra másolva",
"restartAppForChanges": "Indítsd újra az alkalmazást a változások alkalmazásához",
"restartAppForChanges": "Indítsa újra az alkalmazást a változások alkalmazásához",
"deleteTempDirLabel": "Ideiglenes fájlok törlése",
"deleteTempDirHint": "Nem használt ideiglenes fájlok törlése",
"deletedTempDir": "Ideiglenes fájlok törölve",
"exportPatchesLabel": "Kiválasztott patch exportálása",
"exportPatchesHint": "Exportálja a kiválasztott patchet JSON-fájlba",
"exportedPatches": "A patchek kiválasztása exportálva",
"noExportFileFound": "Nincs exportálandó patch",
"importPatchesLabel": "Patch kiválasztás importálása",
"importPatchesHint": "Importálja a kiválasztott patchet egy JSON-fájlból",
"importedPatches": "Patch kiválasztás importálva",
"resetStoredPatchesLabel": "Patch kiválasztás visszaállítása",
"resetStoredPatchesHint": "Állítsa vissza a tárolt patch kiválasztását",
"resetStoredPatchesDialogTitle": "Patch kiválasztás visszaállítása?",
"resetStoredPatchesDialogText": "A patchek alapértelmezett kiválasztása visszaáll.",
"resetStoredPatches": "A patchek kiválasztása visszaállításra került",
"exportPatchesLabel": "Kijelölt patchek exportálása",
"exportPatchesHint": "Exportálja a kijelölt patcheket egy JSON-fájlba",
"exportedPatches": "Kijelölt patchek exportálva",
"noExportFileFound": "Nincs exportálandó patch kijelölés",
"importPatchesLabel": "Kijelölt patchek importálása",
"importPatchesHint": "Importálja a kijelölt patcheket egy JSON-fájlból",
"importedPatches": "Patch kijelölés importálva",
"resetStoredPatchesLabel": "Patch kijelölés visszaállítása",
"resetStoredPatchesHint": "Mentett patch kijelölés visszaállítása",
"resetStoredPatchesDialogTitle": "Visszaállítja a kijelölt patcheket?",
"resetStoredPatchesDialogText": "A patchek alapértelmezett kijelölése visszaáll.",
"resetStoredPatches": "A patchek kijelölése visszaállításra került",
"resetStoredOptionsLabel": "Patch beállítások visszaállítása",
"resetStoredOptionsHint": "Állítsa vissza az összes patch opciót",
"resetStoredOptionsDialogTitle": "Patch beállítások visszaállítása?",
"resetStoredOptionsDialogText": "Patch beállítások visszaállítása eltávolítja az összes mentett opciót.",
"resetStoredOptionsDialogText": "A patch beállítások visszaállítása eltávolítja az összes mentett opciót.",
"resetStoredOptions": "Az opciók visszaállításra kerültek",
"deleteLogsLabel": "Napló ürítése",
"deleteLogsHint": "Az összegyűjtött ReVanced Manager naplók törlése",
"deleteLogsLabel": "Naplók törlése",
"deleteLogsHint": "A ReVanced Manager naplóinak törlése",
"deletedLogs": "Naplók törölve",
"regenerateKeystoreLabel": "Kulcstár újragenerálása",
"regenerateKeystoreHint": "Újragenerálja az alkalmazások aláírásához használt kulcstárolót",
"regenerateKeystoreDialogTitle": "Kulcstár újragenerálása?",
"regenerateKeystoreDialogText": "A régi kulcstárolóval aláírt javított alkalmazásokat a továbbiakban nem lehet majd frissíteni.",
"regenerateKeystoreDialogText": "A régi kulcstárolóval aláírt patchelt alkalmazásokat a továbbiakban nem lehet majd frissíteni.",
"regeneratedKeystore": "A kulcstár újra létrehozva",
"exportKeystoreLabel": "Kulcstároló exportálása",
"exportKeystoreHint": "Exportálja az alkalmazások aláírásához használt kulcstárolót",
@@ -216,52 +248,47 @@
"importedKeystore": "Kulcstároló importálva",
"selectKeystorePassword": "Kulcstár jelszó",
"selectKeystorePasswordHint": "Válassza ki az alkalmazások aláírásához használt kulcstároló jelszavát",
"jsonSelectorErrorMessage": "A kiválasztott JSON nem hasznalható",
"jsonSelectorErrorMessage": "A kiválasztott JSON fájl nem használható",
"keystoreSelectorErrorMessage": "A kiválasztott kulcstároló fájl nem használható"
},
"appInfoView": {
"widgetTitle": "Alkalmazás információ",
"openButton": "Megnyitás",
"uninstallButton": "Eltávolítás",
"unmountButton": "Lecsatolás",
"unmountButton": "Leválasztás",
"rootDialogTitle": "Hiba",
"unmountDialogText": "Biztosan le szeretné választani ezt az alkalmazást?",
"uninstallDialogText": "Biztosan eltávolítja ezt az alkalmazást?",
"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.",
"rootDialogText": "A patchelt alkalmazás root jogosultsággal lett telepítve, de a Managernek már nincs ilyen jogosultsága.\nKérjük először engedélyezze a root jogosultságot.",
"packageNameLabel": "Csomagnév",
"installTypeLabel": "Telepítés módja",
"mountTypeLabel": "Felcsatolás",
"mountTypeLabel": "Csatolás",
"regularTypeLabel": "Hagyományos",
"patchedDateLabel": "Patchelve",
"appliedPatchesLabel": "Alkalmazott patchek",
"patchedDateHint": "${date} ${time}-kor",
"appliedPatchesHint": "${quantity} alkalmazott patchek",
"updateNotImplemented": "Ez a funkció még nem készült el"
"appliedPatchesHint": "${quantity} alkalmazott patch",
"updateNotImplemented": "Ez a funkció még nem elérhető"
},
"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"
"widgetTitle": "Közreműködők"
},
"installErrorDialog": {
"mount_version_mismatch": "Verzió ütközés",
"mount_no_root": "Nincs Root hozzáférés",
"mount_no_root": "Nincs root hozzáférés",
"mount_missing_installation": "A telepítés nem található",
"status_failure_blocked": "A telepítés blokkolva",
"install_failed_verification_failure": "Az ellenőrzés sikertelen",
"status_failure_invalid": "A telepítés érvénytelen",
"install_failed_version_downgrade": "Nem lehet visszaminősíteni",
"install_failed_version_downgrade": "Nem lehet visszafejleszteni",
"status_failure_conflict": "Telepítési ütközés",
"status_failure_storage": "Telepítési tárolási probléma",
"status_failure_incompatible": "A telepítés nem kompatibilis",
"status_failure_timeout": "Telepítési időtúllépés",
"status_unknown": "A telepítés sikertelen",
"mount_version_mismatch_description": "A telepítés meghiúsult, mert a telepített alkalmazás verziója eltér a javított alkalmazástól.\n\nTelepítse a csatlakoztatott alkalmazás verzióját, és próbálja újra.",
"mount_version_mismatch_description": "A telepítés meghiúsult, mert a telepített alkalmazás verziója eltér a patchelt alkalmazástól.\n\nTelepítse a csatlakoztatott alkalmazás verzióját, és próbálja újra.",
"mount_no_root_description": "A telepítés meghiúsult, mert nem biztosított a root hozzáférés.\n\nAdjon root hozzáférést a ReVanced Manager számára, és próbálja újra.",
"mount_missing_installation_description": "A telepítés meghiúsult, mert a kijavítatlan alkalmazás nincs telepítve erre az eszközre ahhoz, hogy csatlakozhasson.\n\nFelszerelés előtt telepítse a nem javított alkalmazást, és próbálkozzon újra.",
"mount_missing_installation_description": "A telepítés sikertelen volt, mivel a nem patchelt alkalmazás nem volt telepítve az eszközre, hogy csatlakoztatni lehessen.\n\nTelepítse a nem patchelt alkalmazást a csatlakoztatás előtt, és próbálja meg újra.",
"status_failure_timeout_description": "A telepítés túl sokáig tartott.\n\nSzeretné újra megpróbálni?",
"status_failure_storage_description": "A telepítés meghiúsult a nem elegendő tárhely miatt.\n\nSzabadítson fel helyet, és próbálja újra.",
"status_failure_invalid_description": "A telepítés meghiúsult, mert a patchelt alkalmazás érvénytelen.\n\nTávolítsa el az alkalmazást, és próbálja újra?",
@@ -269,7 +296,7 @@
"status_failure_conflict_description": "A telepítést az alkalmazás meglévő példánya akadályozta meg.\n\nTávolítsa el a telepített alkalmazást, és próbálja újra?",
"status_failure_blocked_description": "A telepítést blokkolta: ${packageName}\n\nMódosítsa a biztonsági beállításokat, és próbálja újra.",
"install_failed_verification_failure_description": "A telepítés ellenőrzési probléma miatt nem sikerült.\n\nMódosítsa a biztonsági beállításokat, és próbálja újra.",
"install_failed_version_downgrade_description": "A telepítés meghiúsult, mert a patchelt alkalmazás régebbi verziója volt, mint a telepített alkalmazás.\n\nTávolítsa el az alkalmazást, és próbálja újra?",
"install_failed_version_downgrade_description": "A telepítés meghiúsult, mert a patchelt alkalmazás régebbi verzió, mint a telepített alkalmazás.\n\nTávolítsa el az alkalmazást, és próbálja újra?",
"status_unknown_description": "A telepítés ismeretlen ok miatt meghiúsult. Kérem próbálja újra."
}
}

View File

@@ -1,4 +1,5 @@
{
"okButton": "Այո",
"navigationView": {},
"homeView": {},
"applicationItem": {},

View File

@@ -3,12 +3,12 @@
"cancelButton": "Batal",
"dismissButton": "Abaikan",
"quitButton": "Keluar",
"updateButton": "Pembaruan",
"updateButton": "Perbarui",
"enabledLabel": "Aktif",
"disabledLabel": "Tidak Aktif",
"disabledLabel": "Nonaktif",
"installed": "Terpasang: ${version}",
"suggested": "Disarankan: ${version}",
"yesButton": "Ya",
"yesButton": "Iya",
"noButton": "Tidak",
"warning": "Peringatan",
"options": "Pengaturan",
@@ -16,7 +16,7 @@
"noShowAgain": "Jangan tampilkan lagi",
"add": "Tambah",
"remove": "Hapus",
"showChangelogButton": "Tampilkan daftar perubahan",
"showChangelogButton": "Tampilkan log perubahan",
"showUpdateButton": "Tampilkan pembaruan",
"navigationView": {
"dashboardTab": "Dasbor",
@@ -60,19 +60,24 @@
"loadingLabel": "Memuat...",
"timeagoLabel": "${time} yang lalu",
"patcherLabel": "Penambal: ",
"managerLabel": "Manager: ",
"managerLabel": "Pengelola: ",
"updateButton": "Perbarui Manager"
},
"patcherView": {
"widgetTitle": "Penambal",
"patchButton": "Tambalan",
"armv7WarningDialogText": "Menambal pada perangkat ARMv7 belum didukung dan mungkin gagal. Lanjutkan saja?",
"removedPatchesWarningDialogText": "Patch berikut telah dihapus sejak terakhir kali Anda menggunakannya.\n\n${patches}\n\nTetap lanjut?",
"requiredOptionDialogText": "Beberapa opsi patch harus diatur."
},
"appSelectorCard": {
"widgetTitle": "Pilih aplikasi",
"widgetTitleSelected": "Aplikasi yang dipilih",
"widgetSubtitle": "Tidak ada aplikasi yang dipilih",
"noAppsLabel": "Aplikasi tidak ditemukan",
"currentVersion": "Saat ini",
"suggestedVersion": "Disarankan"
"suggestedVersion": "Disarankan",
"anyVersion": "Versi apa saja"
},
"patchSelectorCard": {
"widgetTitle": "Pilih tambalan",
@@ -85,11 +90,15 @@
"widgetSubtitle": "Ikuti kami!"
},
"appSelectorView": {
"viewTitle": "Pilih aplikasi",
"searchBarHint": "Cari aplikasi",
"storageButton": "Penyimpanan",
"selectFromStorageButton": "Pilih dari penyimpanan",
"errorMessage": "Tidak dapat menggunakan aplikasi yang dipilih",
"downloadToast": "Fungsi mengunduh belum tersedia",
"featureNotAvailable": "Fitur tidak diterapkan"
"requireSuggestedAppVersionDialogText": "Versi aplikasi yang Anda pilih tidak sesuai dengan versi yang disarankan yang dapat menyebabkan masalah yang tidak diharapkan. Silakan gunakan versi yang disarankan.\n\nVersi yang dipilih: ${selected}\nVersi yang disarankan: ${suggested}\n\nUntuk melanjutkan, nonaktifkan \"Memerlukan versi aplikasi yang disarankan\" di pengaturan.",
"featureNotAvailable": "Fitur tidak diterapkan",
"featureNotAvailableText": "Aplikasi ini adalah APK terpisah dan hanya dapat ditambal dan dipasang dengan andal dengan memasang dengan izin root. Namun, Anda bisa menambal dan memasang APK lengkap dengan memilihnya dari penyimpanan."
},
"patchesSelectorView": {
"viewTitle": "Pilih tambalan",
@@ -98,16 +107,23 @@
"newPatches": "Patch baru",
"patches": "Patch",
"doneButton": "Selesai",
"defaultChip": "Bawaan",
"defaultTooltip": "Pilih semua tambalan bawaan",
"noneChip": "Tidak ada",
"noneTooltip": "Batalkan semua tambalan",
"loadPatchesSelection": "Muat patch terpilih",
"noPatchesFound": "Tidak ada tambalan untuk aplikasi"
"noSavedPatches": "Tidak ada pilihan tambalan yang disimpan untuk aplikasi yang dipilih.\nTekan Selesai untuk menyimpan pilihan saat ini.",
"noPatchesFound": "Tidak ada tambalan untuk aplikasi",
"setRequiredOption": "Beberapa patch memerlukan opsi untuk diatur:\n\n${patches}\n\nAturlah sebelum melanjutkan."
},
"patchOptionsView": {
"customValue": "Nilai kustom",
"resetOptionsTooltip": "Mengatur ulang opsi tambalan",
"viewTitle": "Opsi tambalan",
"saveOptions": "Simpan",
"addOptions": "Tambahkan opsi",
"deselectPatch": "Lepas tambalan",
"tooltip": "Opsi masukan lainnya",
"selectFilePath": "Pilih lokasi berkas",
"selectFolder": "Pilih folder",
"selectOption": "Pilih opsi",
@@ -118,11 +134,14 @@
"patchItem": {
"unsupportedDialogText": "Memilih tambalan ini akan menyebabkan galat tambal.\n\nVersi apli: ${packageVersion}\nVersi anjuran:\n${supportedVersions}",
"unsupportedPatchVersion": "Tambalan ini tidak mendukung versi aplikasi ini.",
"unsupportedRequiredOption": "Patch ini berisi opsi wajib yang tidak didukung oleh aplikasi ini",
"patchesChangeWarningDialogText": "Direkomendasikan untuk menggunakan pilihan dan opsi tambalan default. Mengubahnya dapat mengakibatkan masalah yang tidak diharapkan.\n\nAnda harus mengaktifkan \"Izinkan perubahan pilihan tambalan\" dalam pengaturan sebelum mengubah pilihan tambalan.",
"patchesChangeWarningDialogButton": "Gunakan pemilihan bawaan"
},
"installerView": {
"widgetTitle": "Pemasang",
"installType": "Pilih tipe pemasang",
"installTypeDescription": "Pilih jenis instalasi untuk melanjutkan.",
"installButton": "Pasang",
"installRootType": "Mount",
"installNonRootType": "Reguler",
@@ -132,14 +151,20 @@
"shareButton": "Bagikan berkas",
"notificationTitle": "ReVanced Manager sedang menambal",
"notificationText": "Ketuk untuk kembali ke pemasang",
"exportApkButtonTooltip": "Ekspor APK yang ditambal",
"exportLogButtonTooltip": "Log ekspor",
"screenshotDetected": "Tangkapan layar telah terdeteksi. Jika Anda mencoba membagikan log, silakan bagikan salinan teks.\n\nMenyalin log ke papan klip?",
"copiedToClipboard": "Menyalin log ke papan klip",
"noExit": "Pemasangan masih berjalan, tidak bisa keluar..."
},
"settingsView": {
"widgetTitle": "Pengaturan",
"appearanceSectionTitle": "Tampilan",
"teamSectionTitle": "Tim",
"debugSectionTitle": "Debugging",
"advancedSectionTitle": "Lanjutan",
"exportSectionTitle": "Impor & Ekspor",
"dataSectionTitle": "Sumber data",
"themeModeLabel": "Tema aplikasi",
"systemThemeLabel": "Sistem",
"lightThemeLabel": "Cahaya",
@@ -147,44 +172,79 @@
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Nikmati pengalaman lebih dekat ke perangkat Anda",
"languageLabel": "Bahasa",
"languageUpdated": "Bahasa diperbaharui",
"englishOption": "Bahasa Inggris",
"sourcesLabel": "Sumber",
"sourcesLabelHint": "Setel sumber dari tambalan dan pemaduan",
"sourcesLabel": "Sumber-sumber alternatif",
"sourcesLabelHint": "Mengonfigurasi sumber alternatif untuk ReVanced Patches dan ReVanced Integrations",
"sourcesIntegrationsLabel": "Sumber Integrasi",
"useAlternativeSources": "Gunakan sumber-sumber alternatif",
"useAlternativeSourcesHint": "Gunakan sumber alternatif untuk ReVanced Patches dan ReVanced Integrations alih-alih API",
"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?",
"sourcesUpdateNote": "Catatan: Tambalan ini akan diperbarui otomatis ke versi terkini.\n\nIni akan menampilkan alamat IP Anda ke server.",
"sourcesUpdateNote": "Catatan: Ini akan secara otomatis mengunduh ReVanced Patches dan ReVanced Integrations dari sumber alternatif.\n\nIni akan menghubungkan Anda ke sumber alternatif.",
"apiURLLabel": "URL API",
"apiURLHint": "Setel URL dari API yang digunakan",
"apiURLHint": "Konfigurasikan URL API dari ReVanced Manager",
"selectApiURL": "URL API",
"hostRepositoryLabel": "API Repositori",
"orgPatchesLabel": "Perapihan tambalan",
"sourcesPatchesLabel": "Sumber tambalan",
"orgIntegrationsLabel": "Organisasi Intergrasi",
"contributorsLabel": "Kontributor",
"contributorsHint": "Daftar kontributor ReVanced",
"logsLabel": "Bagikan log",
"logsHint": "Bagikan log ReVanced Manager",
"enablePatchesSelectionLabel": "Izinkan mengubah pemilihan tambalan",
"enablePatchesSelectionHint": "Jangan mencegah pemilihan atau pembatalan pemilihan tambalan",
"enablePatchesSelectionWarningText": "Mengubah pilihan dari tambalan akan menyebabkan isu tak terduga.\n\nAktifkan saja?",
"disablePatchesSelectionWarningText": "Anda akan menonaktifkan pengubahan pilihan tambalan.\nPilihan tambalan default akan dikembalikan.\n\nMenonaktifkan?",
"autoUpdatePatchesLabel": "Otomatis perbarui tambalan",
"autoUpdatePatchesHint": "Otomatis perbarui tambalan ke versi terkini",
"showUpdateDialogLabel": "Tampilkan dialog pembaruan",
"showUpdateDialogHint": "Tampilkan dialog ketika pembaruan tersedia",
"universalPatchesLabel": "Tampilkan tambalan universal",
"universalPatchesHint": "Menampilkan semua aplikasi dan tambalan universal (dapat memperlambat daftar aplikasi)",
"versionCompatibilityCheckLabel": "Periksa versi kompatibilitas",
"versionCompatibilityCheckHint": "Cegah pemilihan tambalan yang tidak kompatibel dengan versi aplikasi yang dipilih",
"requireSuggestedAppVersionLabel": "Memerlukan versi aplikasi yang disarankan",
"requireSuggestedAppVersionHint": "Cegah memilih versi aplikasi yang tidak disarankan",
"requireSuggestedAppVersionDialogText": "Memilih versi aplikasi yang tidak disarankan dapat menyebabkan masalah yang tidak terduga.\n\nApakah anda ingin melanjutkan?",
"aboutLabel": "Tentang",
"snackbarMessage": "Disalin ke papan klip",
"restartAppForChanges": "Mulai ulang aplikasi untuk menerapkan perubahan",
"deleteTempDirLabel": "Hapus berkas sementara",
"deleteTempDirHint": "Hapus berkas sementara yang tidak dipakai",
"deletedTempDir": "Berkas sementara dihapus",
"exportPatchesLabel": "Ekspor tambalan pilihan",
"exportPatchesHint": "Ekspor tambalan terpilih ke berkas JSON",
"exportedPatches": "Tambalan pilihan diekspor",
"noExportFileFound": "Belum pilih tambalan untuk diekspor",
"importPatchesLabel": "Impor modifikasi terpilih",
"importPatchesHint": "Impor tembalan terpilih dari berkas JSON",
"importedPatches": "Tambalan pilihan diimpor",
"resetStoredPatchesLabel": "Setel ulang tambalan pilihan",
"resetStoredPatchesHint": "Mulai ulang tambalan pilihan yang disimpan",
"resetStoredPatchesDialogTitle": "Mulai ulang tambalan pilihan?",
"resetStoredPatchesDialogText": "Tambalan pilihan bawaan akan dikembalikan.",
"resetStoredPatches": "Tambalan pilihan telah diatur ulang",
"resetStoredOptionsLabel": "Setel ulang opsi tambalan",
"resetStoredOptionsHint": "Setel ulang semua opsi tambalan",
"resetStoredOptionsDialogTitle": "Setel ulang opsi tambalan?",
"resetStoredOptionsDialogText": "Menyetel ulang opsi tambalan akan menghapus semua opsi yang disimpan.",
"resetStoredOptions": "Opsi telah diatur ulang",
"deleteLogsLabel": "Hapus riwayat",
"deleteLogsHint": "Hapus log ReVanced Manager terkumpul",
"deletedLogs": "Log dihapus",
"regenerateKeystoreLabel": "Menghasilkan penyimpanan kunci",
"regenerateKeystoreHint": "Buat ulang penyimpanan kunci yang digunakan untuk menandatangani aplikasi",
"regenerateKeystoreDialogTitle": "Membuat ulang kunci penyimpanan?",
"regenerateKeystoreDialogText": "Aplikasi tambalan yang ditandatangani dengan kunci penyimpanan lama tidak dapat diperbarui lagi.",
"regeneratedKeystore": "Kunci penyimpanan dibuat ulang",
"exportKeystoreLabel": "Ekspor keystore",
"exportKeystoreHint": "Ekspor kunci penyimpanan yang digunakan untuk menandatangani aplikasi",
"exportedKeystore": "Keystore diekspor",
"noKeystoreExportFileFound": "Tidak ada keystore untuk diekspor",
"importKeystoreLabel": "Impor keystore",
"importKeystoreHint": "Impor kunci penyimpanan yang digunakan untuk menandatangani aplikasi",
"importedKeystore": "Keystore diimpor",
"selectKeystorePassword": "Kata Sandi Keystore",
"selectKeystorePasswordHint": "Pilih kata sandi keystore yang digunakan untuk menandatangani aplikasi",
@@ -211,12 +271,7 @@
"updateNotImplemented": "Fitur ini belum diimplementasikan"
},
"contributorsView": {
"widgetTitle": "Kontributor",
"patcherContributors": "Penyumbangsih penambal",
"patchesContributors": "Penyumbangsih tambalan",
"integrationsContributors": "Kontributor Integrasi",
"cliContributors": "Kontributor CLI",
"managerContributors": "Penyumbangsih Manager"
"widgetTitle": "Kontributor"
},
"installErrorDialog": {
"mount_version_mismatch": "Versi tidak cocok",
@@ -231,6 +286,17 @@
"status_failure_incompatible": "Pemasangan tidak kompatibel",
"status_failure_timeout": "Pemasangan kelamaan",
"status_unknown": "Pemasangan gagal",
"mount_no_root_description": "Pemasangan ini gagal karena akses root belum dizinkan.\n\nIzinkan akses root ke ReVanced Manager dan coba lagi."
"mount_version_mismatch_description": "Penginstalan gagal karena aplikasi yang diinstal merupakan versi yang berbeda dari aplikasi yang ditambal.\n\nInstal versi aplikasi yang anda pasang dan coba lagi.",
"mount_no_root_description": "Pemasangan ini gagal karena akses root belum dizinkan.\n\nIzinkan akses root ke ReVanced Manager dan coba lagi.",
"mount_missing_installation_description": "Penginstalan gagal karena aplikasi yang belum ditambal tidak diinstal pada perangkat ini untuk dipasang di atasnya.\n\nInstal aplikasi yang belum ditambal sebelum memasang dan coba lagi.",
"status_failure_timeout_description": "Instalasi memakan waktu terlalu lama untuk diselesaikan.\n\nApakah anda ingin mencoba lagi?",
"status_failure_storage_description": "Instalasi gagal karena penyimpanan tidak mencukupi.\n\nKosongkan sebagian ruang dan coba kembali.",
"status_failure_invalid_description": "Instalasi gagal karena aplikasi yang ditambal tidak valid.\n\nCopot pemasangan aplikasi dan coba lagi?",
"status_failure_incompatible_description": "Aplikasi ini tidak kompatibel dengan perangkat anda.\n\nHubungi pengembang aplikasi dan minta dukungan.",
"status_failure_conflict_description": "Penginstalan dicegah oleh aplikasi yang sudah ada.\n\nCopot pemasangan aplikasi yang terpasang dan coba kembali?",
"status_failure_blocked_description": "Instalasi diblokir oleh ${packageName}.\n\nSesuaikan pengaturan keamanan anda dan coba kembali.",
"install_failed_verification_failure_description": "Instalasi gagal karena masalah verifikasi.\n\nSesuaikan pengaturan keamanan anda dan coba kembali.",
"install_failed_version_downgrade_description": "Instalasi gagal karena aplikasi tambalan memiliki versi yang lebih rendah daripada aplikasi yang sudah ada.\n\nCopot pemasangan aplikasi dan coba kembali?",
"status_unknown_description": "Instalasi gagal karena alasan yang tidak diketahui. Silakan coba kembali."
}
}

View File

@@ -28,11 +28,11 @@
"widgetTitle": "Dashboard",
"updatesSubtitle": "Aggiornamenti",
"patchedSubtitle": "Applicazioni patchate",
"changeLaterSubtitle": "È possibile modificare questa impostazione nelle impostazioni in un secondo momento.",
"changeLaterSubtitle": "Questo sarà modificabile nelle impostazioni in un secondo momento.",
"noUpdates": "Nessun aggiornamento disponibile",
"WIP": "Lavori in corso...",
"noInstallations": "Nessuna applicazione patchata è stata installata",
"installUpdate": "Proseguire ad installare l'aggiornamento?",
"installUpdate": "Proseguire con l'installazione dell'aggiornamento?",
"updateSheetTitle": "Aggiorna ReVanced Manager",
"updateDialogTitle": "Nuovo aggiornamento disponibile",
"updatePatchesSheetTitle": "Aggiorna le patch ReVanced",
@@ -65,7 +65,7 @@
},
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Patcha",
"patchButton": "Patch",
"armv7WarningDialogText": "Il patching sui dispositivi ARMv7 non è ancora supportato e potrebbe fallire. Continuare comunque?",
"removedPatchesWarningDialogText": "Le seguenti patch sono state rimosse dall'ultima volta che le hai usate.\n\n${patches}\n\nContinuare comunque?",
"requiredOptionDialogText": "Alcune opzioni di patch devono essere impostate."
@@ -93,7 +93,7 @@
"viewTitle": "Seleziona un'app",
"searchBarHint": "Cerca app",
"storageButton": "Memoria interna",
"selectFromStorageButton": "Seleziona dalla memoria",
"selectFromStorageButton": "Seleziona dalla memoria interna",
"errorMessage": "Impossibile utilizzare l'applicazione selezionata",
"downloadToast": "La funzione di Download non è ancora disponibile",
"requireSuggestedAppVersionDialogText": "La versione dell'app selezionata non corrisponde a quella suggerita, il che può causare problemi imprevisti. Si prega di utilizzare la versione suggerita.\n\nVersione selezionata: ${selected}\nVersione suggerita: ${suggested}\n\nPer continuare comunque, disattiva \"Richiedi versione consigliata dell'app\" nelle impostazioni.",
@@ -107,7 +107,9 @@
"newPatches": "Nuove patch",
"patches": "Patch",
"doneButton": "Fatto",
"defaultChip": "Predefinito",
"defaultTooltip": "Seleziona tutte le patch predefinite",
"noneChip": "Nessuna",
"noneTooltip": "Deseleziona tutte le patch",
"loadPatchesSelection": "Carica selezione patch",
"noSavedPatches": "Nessuna selezione patch salvata per l'app selezionata.\nPremi Fatto per salvare la selezione attuale.",
@@ -162,6 +164,7 @@
"debugSectionTitle": "Debugging",
"advancedSectionTitle": "Avanzate",
"exportSectionTitle": "Importa / Esporta",
"dataSectionTitle": "Sorgenti dati",
"themeModeLabel": "Tema dell'app",
"systemThemeLabel": "Sistema",
"lightThemeLabel": "Chiaro",
@@ -169,18 +172,20 @@
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Goditi un'esperienza più in armonia con il tuo dispositivo",
"languageLabel": "Lingua",
"languageUpdated": "Lingua aggiornata",
"englishOption": "Inglese",
"sourcesLabel": "Sorgenti",
"sourcesLabelHint": "Configura la sorgente delle patch e integrazioni",
"sourcesLabel": "Sorgenti alternative",
"sourcesLabelHint": "Configura fonti alternative per ReVanced Patches e ReVanced Integrations",
"sourcesIntegrationsLabel": "Sorgente Integrazioni",
"useAlternativeSources": "Usa sorgenti alternative",
"useAlternativeSourcesHint": "Usa sorgenti alternative per ReVanced Patches e ReVanced Integrations invece delle API",
"sourcesResetDialogTitle": "Reimposta",
"sourcesResetDialogText": "Sei sicuro di voler reimpostare le sorgenti ai valori predefiniti?",
"apiURLResetDialogText": "Sicuro di voler ripristinare l'URL API al valore predefinito?",
"sourcesUpdateNote": "Nota: le patch saranno aggiornate automaticamente all'ultima versione.\n\nQuesto rivelerà il tuo indirizzo IP al server.",
"sourcesUpdateNote": "Nota: Questo scaricherà automaticamente ReVanced Patches e ReVanced Integrations dalle sorgenti alternative.\n\nQuesto ti collegherà alla sorgente alternativa.",
"apiURLLabel": "URL API",
"apiURLHint": "Configura l'URL dell'API da usare",
"apiURLHint": "Configura l'URL API di ReVanced Manager",
"selectApiURL": "URL API",
"hostRepositoryLabel": "API del repository",
"orgPatchesLabel": "Organizzazione Patch",
"sourcesPatchesLabel": "Sorgente Patch",
"orgIntegrationsLabel": "Organizzazione Integrazioni",
@@ -266,12 +271,7 @@
"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"
"widgetTitle": "Contributori"
},
"installErrorDialog": {
"mount_version_mismatch": "Versione non corrispondente",

View File

@@ -1,18 +1,23 @@
{
"okButton": "OK",
"cancelButton": "キャンセル",
"quitButton": "中止",
"dismissButton": "取り消し",
"quitButton": "終了",
"updateButton": "更新",
"enabledLabel": "有効",
"disabledLabel": "無効",
"installed": "インストール済み: ${version}",
"suggested": "推奨: ${version}",
"yesButton": "はい",
"noButton": "いいえ",
"warning": "警告",
"options": "オプション",
"options": "設定",
"notice": "お知らせ",
"noShowAgain": "今後は表示しない",
"add": "追加",
"remove": "削除",
"showChangelogButton": "更新履歴を表示",
"showUpdateButton": "更新を表示",
"navigationView": {
"dashboardTab": "一覧",
"patcherTab": "パッチャー",
@@ -22,16 +27,30 @@
"refreshSuccess": "正常に更新されました",
"widgetTitle": "一覧",
"updatesSubtitle": "更新",
"patchedSubtitle": "パッチ適用済みのアプリ",
"noUpdates": "利用可能なアップデートはありません",
"patchedSubtitle": "パッチ済みのアプリ",
"changeLaterSubtitle": "この設定は後から変更できます",
"noUpdates": "利用可能な更新はありません",
"WIP": "制作中",
"noInstallations": "パッチ済みのアプリはインストールされていません",
"installUpdate": "更新を適用しますか?",
"updateSheetTitle": "ReVanced Managerを更新",
"updateDialogTitle": "新しいアップデートが利用可能",
"updatePatchesSheetTitle": "ReVancedパッチを更新",
"updateChangelogTitle": "変更履歴",
"updateDialogText": "${file} の更新が利用可能です。\n現在のバージョン: ${version} ",
"downloadConsentDialogTitle": "必要なファイルをダウンロードしますか?",
"downloadConsentDialogText": "ReVanced Managerを正常に動作させるためのファイルをダウンロードする必要があります。",
"downloadConsentDialogText2": "${url} に接続します。",
"checkUpdateDialogTitle": "更新を確認しますか?",
"checkUpdateDialogText": "ReVanced Managerの更新を自動的に確認しますか?",
"notificationTitle": "更新データをダウンロードしました",
"notificationText": "タップしてアップデートをインストール",
"downloadingMessage": "更新データをダウンロードしています...",
"downloadedMessage": "アップデートのダウンロードが完了しました",
"installingMessage": "更新を適用しています...",
"errorDownloadMessage": "更新データをダウンロードできません",
"errorDownloadMessage": "更新データをダウンロードできませんでした",
"errorInstallMessage": "更新を適用できませんでした",
"noConnection": "インターネット接続がありません",
"noConnection": "インターネット接続されていません",
"updatesDisabled": "パッチ済みアプリのアップデートは無効になっています。もう一度パッチし直してください"
},
"applicationItem": {
@@ -39,17 +58,26 @@
},
"latestCommitCard": {
"loadingLabel": "読み込み中...",
"timeagoLabel": "${time} 前"
"timeagoLabel": "${time} 前",
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "アップデートマネージャー"
},
"patcherView": {
"widgetTitle": "パッチャー",
"patchButton": "パッチ",
"armv7WarningDialogText": "ARMv7デバイスではパッチがサポートされていません。失敗する可能性がありますが、続行しますか?",
"removedPatchesWarningDialogText": "以下のパッチはもう使用できません。\n\n${patches}\n\n続行しますか?",
"requiredOptionDialogText": "一部のパッチオプションを設定する必要があります。"
},
"appSelectorCard": {
"widgetTitle": "アプリを選択",
"widgetTitleSelected": "選択したアプリ",
"widgetSubtitle": "アプリが選択されていません",
"noAppsLabel": "アプリが見つかりません",
"currentVersion": "選択",
"suggestedVersion": "推奨"
"suggestedVersion": "推奨",
"anyVersion": "全てのバージョン"
},
"patchSelectorCard": {
"widgetTitle": "パッチを選択",
@@ -59,14 +87,18 @@
},
"socialMediaCard": {
"widgetTitle": "SNS",
"widgetSubtitle": "私たちは活動しています"
"widgetSubtitle": "私たちはここにいます!"
},
"appSelectorView": {
"storageButton": "APKを選択",
"viewTitle": "アプリを選択",
"searchBarHint": "アプリを検索",
"storageButton": "APKファイルを選択",
"selectFromStorageButton": "ストレージから選択",
"errorMessage": "選択されたアプリは使用できません",
"errorMessage": "選択たアプリは使用できません",
"downloadToast": "現在、ダウンロード機能は利用できません",
"featureNotAvailable": "この機能は未実装です"
"requireSuggestedAppVersionDialogText": "選択したアプリのバージョンは推奨バージョンではありません。予期せぬ問題が発生する可能性があります。\n推奨バージョンを選択してください。\n\n選択されたバージョン ${selected}\n推奨バージョン ${suggested}\n\n選択されたバージョンを使用する場合、設定から「推奨バージョンの使用を強制」を無効にしてください。",
"featureNotAvailable": "この機能は未実装です",
"featureNotAvailableText": "このアプリは分割された APK であり、root 権限でマウントすることによってのみ確実にパッチを適用してインストールできます。 ただし、ストレージから選択することで完全な APK をパッチしてインストールすることができます。"
},
"patchesSelectorView": {
"viewTitle": "パッチを選択",
@@ -75,7 +107,9 @@
"newPatches": "新しいパッチ",
"patches": "パッチ",
"doneButton": "完了",
"defaultChip": "既定",
"defaultTooltip": "すべてのデフォルトのパッチを選択",
"noneChip": "なし",
"noneTooltip": "すべてのパッチの選択を解除",
"loadPatchesSelection": "パッチの選択を読み込む",
"noSavedPatches": "選択したアプリに保存されたパッチはありません。\n「完了」を押して現在の選択を保存します。",
@@ -94,18 +128,24 @@
"selectFolder": "フォルダーを選択",
"selectOption": "オプションを選択",
"requiredOption": "このオプションは必須です",
"unsupportedOption": "このオプションはサポートされていません",
"unsupportedOption": "この設定はサポートされていません",
"requiredOptionNull": "以下のオプションを設定する必要があります:\n\n${options}"
},
"patchItem": {
"unsupportedDialogText": "このパッチを選択するとエラーが発生する可能性があります。\n\n現在のバージョン: ${packageVersion}\nサポートされているバージョン: ${supportedVersions}",
"unsupportedRequiredOption": "このパッチには、このアプリではサポートされていない必須オプションが含まれています",
"unsupportedPatchVersion": "このアプリのバージョンではパッチはサポートされていません.",
"unsupportedRequiredOption": "このパッチには、このアプリではサポートされていない必須設定が含まれています",
"patchesChangeWarningDialogText": "デフォルトのパッチ選択とオプションの使用を推奨します。変更すると予期せぬ問題が発生する可能性があります。\n\nパッチ選択を続ける場合、設定で「パッチ選択の変更を許可」をオンにする必要があります。",
"patchesChangeWarningDialogButton": "デフォルトの選択を使用"
},
"installerView": {
"widgetTitle": "インストーラー",
"installType": "インストールの種類を選択",
"installTypeDescription": "インストールの種類を選択して続行します。",
"installButton": "インストール",
"installRootType": "マウント",
"installNonRootType": "標準",
"warning": "予期しない問題を避けるため、パッチを適用したアプリの自動更新を無効にします。",
"pressBackAgain": "キャンセルするには、もう一度戻るを押してください",
"openButton": "開く",
"shareButton": "ファイルを共有",
@@ -124,6 +164,7 @@
"debugSectionTitle": "デバッグ",
"advancedSectionTitle": "高度な設定",
"exportSectionTitle": "インポート&エクスポート",
"dataSectionTitle": "データソース",
"themeModeLabel": "アプリのテーマ",
"systemThemeLabel": "システム",
"lightThemeLabel": "ライト",
@@ -131,56 +172,65 @@
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "よりデバイスに近い体験が楽しめます",
"languageLabel": "言語",
"languageUpdated": "言語が更新されました",
"englishOption": "英語",
"sourcesLabel": "ソース",
"sourcesLabel": "代替ソース",
"sourcesLabelHint": "ReVanded PatchesとReVanced Integrationsの代替ソースを設定",
"sourcesIntegrationsLabel": "Integrations のソース",
"useAlternativeSources": "他のソースを使用",
"useAlternativeSourcesHint": "APIの代わりにReVanced PatchesとReVanced Integrationsの他のソースを使用する",
"sourcesResetDialogTitle": "リセット",
"sourcesResetDialogText": "ソースをデフォルト値にリセットしてもよろしいですか?",
"apiURLResetDialogText": "API の URL をデフォルト値にリセットしてもよろしいですか?",
"sourcesUpdateNote": "注: パッチは自動的に最新バージョンにアップデートされます。\n\nこれにより、あなたの IP アドレスがサーバーに公開されます。",
"sourcesUpdateNote": "注: ReVeded PatchesとReVanced Integrationsを別のソースから自動的にダウンロードします。\n\nこれにより、他のソースに接続されます。",
"apiURLLabel": "API の URL",
"apiURLHint": "ReVanced ManagerのAPIのURLを設定する",
"selectApiURL": "API の URL",
"hostRepositoryLabel": "リポジトリ API",
"orgPatchesLabel": "パッチの組織",
"sourcesPatchesLabel": "パッチのソース",
"orgIntegrationsLabel": "Integrations の組織",
"contributorsLabel": "コントリビューター",
"contributorsHint": "ReVanced のコントリビューターの一覧",
"contributorsLabel": "貢献者",
"contributorsHint": "ReVancedの貢献者一覧",
"logsLabel": "ログを共有",
"logsHint": "ReVanced Manager のログを共有します",
"enablePatchesSelectionLabel": "パッチ選択の変更を許可",
"enablePatchesSelectionLabel": "パッチ選択の変更を許可",
"enablePatchesSelectionHint": "パッチの選択・解除を禁止しません",
"enablePatchesSelectionWarningText": "パッチの選択を変更すると、予期せぬ問題が起こる可能性があります。\n\n有効にしますか",
"disablePatchesSelectionWarningText": "パッチ選択の変更を無効にしようとしています。\nデフォルトのパッチの選択が復元されます。\n\n無効にしますか",
"disablePatchesSelectionWarningText": "パッチ選択の変更を無効にしようとしています。\nデフォルトのパッチの選択が復元されます。\n\n無効にしますか",
"autoUpdatePatchesLabel": "パッチの自動アップデート",
"autoUpdatePatchesHint": "パッチを自動的に最新バージョンに更新します",
"autoUpdatePatchesHint": "パッチを自動的に最新バージョンに更新す",
"showUpdateDialogLabel": "アップデートの通知を表示",
"showUpdateDialogHint": "新しいアップデートが利用可能な場合にダイアログを表示する",
"universalPatchesLabel": "共通パッチの表示",
"universalPatchesHint": "すべてのアプリと共通パッチを表示します (アプリのリストの読み込みが遅くなる可能性があります)",
"versionCompatibilityCheckLabel": "バージョンの互換性チェック",
"requireSuggestedAppVersionLabel": "推奨されたアプリのバージョンが必要です",
"requireSuggestedAppVersionDialogText": "推奨されているバージョンではないアプリを選択すると、予期しない問題が発生する可能性があります。\n\nこのまま続行しますか",
"universalPatchesHint": "すべてのアプリと共通パッチを表示しますアプリ一覧の読み込みが遅くなる可能性があります",
"versionCompatibilityCheckLabel": "バージョンの互換性の確認",
"versionCompatibilityCheckHint": "選択したアプリのバージョンと互換性のないパッチの選択を防止",
"requireSuggestedAppVersionLabel": "推奨バージョンの使用を強制",
"requireSuggestedAppVersionHint": "推奨されていないバージョンのアプリを選択できないようにします",
"requireSuggestedAppVersionDialogText": "推奨バージョンではないアプリを選択すると、予期しない問題が発生する可能性があります。\n\nこのまま続行しますか",
"aboutLabel": "情報",
"snackbarMessage": "クリップボードにコピーしました",
"restartAppForChanges": "変更を適用するにはアプリを再起動してください",
"deleteTempDirLabel": "一時ファイルを削除",
"deleteTempDirHint": "未使用の一時ファイルを削除",
"deletedTempDir": "一時ファイルを削除しました",
"exportPatchesLabel": "パッチ選択をエクスポート",
"exportPatchesHint": "パッチ選択を JSON ファイルにエクスポートします",
"exportedPatches": "パッチ選択をエクスポートしました",
"exportPatchesLabel": "パッチ選択をエクスポート",
"exportPatchesHint": "パッチ選択を JSON ファイルにエクスポートします",
"exportedPatches": "パッチ選択をエクスポートしました",
"noExportFileFound": "エクスポートするパッチの選択がありません",
"importPatchesLabel": "パッチ選択をインポート",
"importPatchesHint": "パッチ選択を JSON ファイルからインポートします",
"importedPatches": "パッチ選択をインポートしました",
"importPatchesLabel": "パッチ選択をインポート",
"importPatchesHint": "パッチ選択を JSON ファイルからインポートします",
"importedPatches": "パッチ選択をインポートしました",
"resetStoredPatchesLabel": "パッチの選択をリセット",
"resetStoredPatchesHint": "保存されたパッチの選択をリセットします",
"resetStoredPatchesHint": "保存されたパッチの選択をリセットす",
"resetStoredPatchesDialogTitle": "パッチの選択をリセット",
"resetStoredPatchesDialogText": "デフォルトのパッチの選択が復元されます。",
"resetStoredPatches": "パッチの選択をリセットしました",
"resetStoredOptionsLabel": "パッチオプションをリセット",
"resetStoredOptionsHint": "すべてのパッチオプションをリセットします",
"resetStoredOptionsDialogTitle": "パッチオプションをリセットしますか?",
"resetStoredOptionsDialogText": "パッチオプションをリセットすると、保存されたすべてのオプションが削除されます。",
"resetStoredOptions": "オプションをリセットしました",
"resetStoredOptionsHint": "すべてのパッチ設定をリセット",
"resetStoredOptionsDialogTitle": "パッチ設定をリセットしますか?",
"resetStoredOptionsDialogText": "パッチ設定をリセットすると、保存されたすべてのオプションが削除されます。",
"resetStoredOptions": "設定をリセットしました",
"deleteLogsLabel": "ログを削除",
"deleteLogsHint": "収集された ReVanced Manager のログを削除します",
"deletedLogs": "ログを削除しました",
@@ -198,17 +248,22 @@
"importedKeystore": "キーストアをインポートしました",
"selectKeystorePassword": "キーストアのパスワード",
"selectKeystorePasswordHint": "アプリの署名に使用するキーストアのパスワードを入力してください",
"jsonSelectorErrorMessage": "選択された JSON ファイルは使用できません",
"jsonSelectorErrorMessage": "選択したJSON ファイルは使用できません",
"keystoreSelectorErrorMessage": "選択したキーストアファイルは使用できません"
},
"appInfoView": {
"widgetTitle": "アプリ情報",
"openButton": "開く",
"uninstallButton": "アンインストール",
"unmountButton": "マウント解除",
"rootDialogTitle": "エラー",
"unmountDialogText": "このアプリをアンマウントしてもよろしいですか?",
"uninstallDialogText": "本当にこのアプリをアンインストールしますか?",
"rootDialogText": "アプリはスーパーユーザー権限でインストールされましたが、現在 ReVanced Manager にはその権限がありません。 スーパーユーザー権限を付与してください。",
"packageNameLabel": "パッケージ名",
"installTypeLabel": "インストールの種類",
"mountTypeLabel": "マウント",
"regularTypeLabel": "通常",
"patchedDateLabel": "パッチ適用日時",
"appliedPatchesLabel": "適用されたパッチ",
"patchedDateHint": "${date} ${time}",
@@ -216,16 +271,32 @@
"updateNotImplemented": "この機能はまだ実装されていません"
},
"contributorsView": {
"widgetTitle": "貢献者",
"patcherContributors": "Patcher のコントリビューター",
"patchesContributors": "パッチの開発者",
"integrationsContributors": "Integrations のコントリビューター",
"cliContributors": "CLIの開発者",
"managerContributors": "ReVanced Managerの開発者"
"widgetTitle": "貢献者"
},
"installErrorDialog": {
"mount_version_mismatch": "バージョンが一致しません",
"mount_no_root": "ルート権限がありません",
"mount_missing_installation": "インストールが見つかりませんでした",
"status_failure_blocked": "インストールはブロックされました",
"install_failed_verification_failure": "検証に失敗しました",
"status_failure_invalid": "インストールは無効です",
"install_failed_version_downgrade": "ダウングレードできません"
"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へのルートアクセスを許可し、もう一度お試しください。",
"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,6 +1,45 @@
{
"navigationView": {},
"homeView": {},
"okButton": "ОК",
"cancelButton": "Артқа",
"dismissButton": "Елемеу",
"quitButton": "Шығу",
"updateButton": "Жаңарту",
"enabledLabel": "Қосулы",
"disabledLabel": "Сөндірулі",
"installed": "Орнатылған: ${version}",
"suggested": "Ұсынылған: ${version}",
"yesButton": "Иә",
"noButton": "Жоқ",
"warning": "Назар аударыңыз",
"options": "Баптау",
"notice": "Ескерту",
"noShowAgain": "Енді көрсетілмесін",
"add": "Қосу",
"remove": "Жою",
"showChangelogButton": "Өзгерту тарихын көрсету",
"showUpdateButton": "Жаңартуды көрсету",
"navigationView": {
"dashboardTab": "Басқару тақтасы",
"patcherTab": "Patcher",
"settingsTab": "Баптау"
},
"homeView": {
"refreshSuccess": "Сәтті жаңартылды",
"widgetTitle": "Бақылау тақтасы",
"updatesSubtitle": "Жаңартулар",
"patchedSubtitle": "Патчталған қолданбалар",
"changeLaterSubtitle": "Мұны кейінірек баптауда өзгертіп ала аласыз.",
"noUpdates": "Жаңарту жоқ",
"WIP": "Жүктеліп жатыр...",
"noInstallations": "Патчталған қолданбалар орнатылмаған",
"installUpdate": "Жаңартуды әрі қарай орната берейік пе?",
"updateSheetTitle": "ReVanced Manager-ді жаңарту",
"updateDialogTitle": "Жаңарту қолжетімді",
"updatePatchesSheetTitle": "ReVanced патчін жаңарту",
"updateChangelogTitle": "Өзгерту тарихы",
"updateDialogText": "${file} үшін жаңарту қолжетімді.\n\nҚазіргі ${version} нұсқасы орнатылып тұр.",
"downloadConsentDialogTitle": "Керек файлды жүктеп алайық па?"
},
"applicationItem": {},
"latestCommitCard": {},
"patcherView": {},

View File

@@ -6,9 +6,9 @@
"updateButton": "업데이트",
"enabledLabel": "활성화됨",
"disabledLabel": "비활성화됨",
"installed": "설치: ${version}",
"suggested": "권장: ${version}",
"yesButton": "",
"installed": "설치된 앱 버전: ${version}",
"suggested": "권장 앱 버전: ${version}",
"yesButton": "",
"noButton": "아니요",
"warning": "경고",
"options": "옵션",
@@ -16,37 +16,42 @@
"noShowAgain": "다시 보지 않기",
"add": "추가",
"remove": "제거",
"showChangelogButton": "변경 내역 보기",
"showChangelogButton": "변경 사항 보기",
"showUpdateButton": "업데이트 보기",
"navigationView": {
"dashboardTab": "대시보드",
"patcherTab": "패처",
"dashboardTab": "Dashboard",
"patcherTab": "Patcher",
"settingsTab": "설정"
},
"homeView": {
"refreshSuccess": "새로고침 성공",
"widgetTitle": "대시보드",
"refreshSuccess": "새로고침 성공했습니다.",
"widgetTitle": "Dashboard",
"updatesSubtitle": "업데이트",
"patchedSubtitle": "패치한 앱",
"changeLaterSubtitle": "나중에 설정에서 바꿀 수 있습니다.",
"noUpdates": "새 업데이트가 없습니다",
"patchedSubtitle": "설치된 앱",
"changeLaterSubtitle": "나중에 설정에서 변경할 수 있습니다.",
"noUpdates": "새 업데이트가 없습니다.",
"WIP": "개발 중 입니다...",
"noInstallations": "패치된 앱이 설치되지 않았습니다.",
"noInstallations": "아직 설치된 ReVanced 앱이 없습니다.",
"installUpdate": "업데이트를 계속 설치하겠습니까?",
"updateSheetTitle": "ReVanced 매니저 업데이트",
"updateDialogTitle": "새 업데이트가 있습니다",
"updateSheetTitle": "ReVanced Manager 업데이트",
"updateDialogTitle": "새 업데이트가 있습니다.",
"updatePatchesSheetTitle": "ReVanced 패치 업데이트",
"updateChangelogTitle": "변경 사항",
"downloadConsentDialogText2": "진행하면 ${url}에 연결하게 됩니다.",
"notificationTitle": "업데이트 다운로드 완료",
"notificationText": "눌러서 업데이트 설치",
"updateDialogText": "'${file}'에 대한 새 업데이트를 할 수 있습니다.\n\n현재 설치된 버전은 '${version}'입니다.",
"downloadConsentDialogTitle": "필요한 파일을 다운로드하시겠습니까?",
"downloadConsentDialogText": "ReVanced Manager가 제대로 작동하려면 필요한 파일을 다운로드해야 합니다.",
"downloadConsentDialogText2": "진행하면 '${url}'에 연결하게 됩니다.",
"checkUpdateDialogTitle": "업데이트를 확인하시겠습니까?",
"checkUpdateDialogText": "ReVanced Manager가 자동으로 업데이트를 확인하도록 하시겠습니까?",
"notificationTitle": "업데이트를 다운로드했습니다.",
"notificationText": "업데이트를 설치하려면 여기를 누르세요.",
"downloadingMessage": "업데이트 다운로드 중...",
"downloadedMessage": "업데이트 다운로드 완료",
"downloadedMessage": "업데이트 다운로드 완료했습니다.",
"installingMessage": "업데이트 설치 중...",
"errorDownloadMessage": "업데이트를 내려받을 수 없음",
"errorInstallMessage": "업데이트를 설치할 수 없",
"noConnection": "인터넷 연결되지 않음",
"updatesDisabled": "패치된 앱 업데이트는 현재 비활성화 되어 있습니다. 앱을 다시 패치하세요."
"errorDownloadMessage": "업데이트를 다운로드할 수 없습니다.",
"errorInstallMessage": "업데이트를 설치할 수 없습니다.",
"noConnection": "인터넷 연결되지 않음",
"updatesDisabled": "패치된 앱 업데이트는 현재 비활성화되어 있습니다. 앱을 다시 패치하세요."
},
"applicationItem": {
"infoButton": "정보"
@@ -54,57 +59,61 @@
"latestCommitCard": {
"loadingLabel": "불러오는 중...",
"timeagoLabel": "${time} 전",
"patcherLabel": "패처: ",
"managerLabel": "매니저: ",
"updateButton": "매니저 업데이트"
"patcherLabel": "Patcher: ",
"managerLabel": "Manager: ",
"updateButton": "Manager 업데이트"
},
"patcherView": {
"widgetTitle": "패처",
"patchButton": "패치",
"widgetTitle": "Patcher",
"patchButton": "패치하기",
"armv7WarningDialogText": "ARMv7 디바이스에 대한 패치는 아직 지원되지 않으며 실패할 수 있습니다. 그래도 계속 하시겠습니까?",
"removedPatchesWarningDialogText": "최근 적용한 패치들 중 아래 패치가 제거됩니다.\n\n${patches}\n\n계속 진행하시겠습니까?",
"removedPatchesWarningDialogText": "최근 적용한 패치들 중 다음 패치가 제거됩니다.\n\n${patches}\n\n계속 진행하시겠습니까?",
"requiredOptionDialogText": "일부 패치 옵션을 설정해야 합니다."
},
"appSelectorCard": {
"widgetTitle": "앱 선택",
"widgetTitle": "앱 선택하기",
"widgetTitleSelected": "선택한 앱",
"widgetSubtitle": "선택한 앱이 없습니다",
"widgetSubtitle": "선택한 앱이 없습니다.",
"noAppsLabel": "앱이 발견되지 않음",
"currentVersion": "현재 버전",
"suggestedVersion": "권장",
"anyVersion": "모든 버전"
"currentVersion": "현재 버전",
"suggestedVersion": "권장 앱 버전",
"anyVersion": "모든 버전"
},
"patchSelectorCard": {
"widgetTitle": "패치 선택하세요",
"widgetTitleSelected": "선택 패치",
"widgetSubtitle": "앱을 먼저 선택하세요.",
"widgetEmptySubtitle": "선택 패치가 없습니다."
"widgetTitle": "패치 선택하",
"widgetTitleSelected": "선택 패치",
"widgetSubtitle": "먼저 앱을 선택하세요.",
"widgetEmptySubtitle": "선택 패치가 없습니다."
},
"socialMediaCard": {
"widgetTitle": "소셜",
"widgetSubtitle": "SNS에서 우리를 만나보세요!"
"widgetTitle": "소셜 네트워크",
"widgetSubtitle": "소셜 네트워크에서 ReVanced Team을 만나보세요!"
},
"appSelectorView": {
"viewTitle": "앱 선택",
"searchBarHint": "앱 검색",
"storageButton": "저장소",
"selectFromStorageButton": "저장소에서 선택",
"errorMessage": "선택한 앱을 사용할 수 없",
"downloadToast": "다운로드 기능은 아직 사용할 수 없습니다",
"featureNotAvailable": "기능이 구현되지 않음"
"viewTitle": "앱 선택하기",
"searchBarHint": "앱 검색하기",
"storageButton": "기기 저장소",
"selectFromStorageButton": "기기 저장소에서 선택",
"errorMessage": "선택한 앱을 사용할 수 없습니다.",
"downloadToast": "다운로드 기능은 아직 사용할 수 없습니다.",
"requireSuggestedAppVersionDialogText": "선택한 앱 버전이 권장 앱 버전과 일치하지 않아 예기치 않은 문제가 발생할 수 있습니다. 권장 앱 버전을 사용하세요.\n\n선택한 앱 버전: ${selected}\n권장 앱 버전: ${suggested}\n\n계속하려면 설정에서 '권장 앱 버전 요구'를 비활성화하세요.",
"featureNotAvailable": "기능이 구현되지 않음",
"featureNotAvailableText": "이 앱은 분할 APK이며 Root 권한으로 마운트해야만 안정적으로 패치 및 설치할 수 있습니다. 그러나 저장소에서 완전한 APK를 선택하여 패치 및 설치할 수 있습니다."
},
"patchesSelectorView": {
"viewTitle": "패치 선택",
"searchBarHint": "패치 기",
"universalPatches": "보편 패치",
"viewTitle": "패치 선택하기",
"searchBarHint": "패치 검색하기",
"universalPatches": "공용 패치",
"newPatches": "새 패치",
"patches": "패치",
"doneButton": "완료",
"doneButton": "선택완료",
"defaultChip": "기본값",
"defaultTooltip": "모든 기본 패치 선택",
"noneChip": "선택안함",
"noneTooltip": "모든 패치 선택 해제",
"loadPatchesSelection": "패치 선택목록 가져오기",
"noSavedPatches": "선택 앱에 적용할 패치가 저장되지 않았습니다.\n완료를 눌러 현재 선택사항을 저장하세요.",
"noPatchesFound": "선택 앱에 대한 패치를 찾을 수 없습니다.",
"noSavedPatches": "선택 앱에 적용할 패치가 저장되지 않았습니다.\n완료를 눌러 현재 선택목록을 저장하세요.",
"noPatchesFound": "선택 앱에 대한 패치를 찾을 수 없습니다.",
"setRequiredOption": "옵션을 설정해야 하는 패치가 있습니다:\n\n${patches}\n\n진행하기 전 설정을 마쳐주세요."
},
"patchOptionsView": {
@@ -118,134 +127,139 @@
"selectFilePath": "파일 경로 선택",
"selectFolder": "폴더 선택",
"selectOption": "옵션 선택",
"requiredOption": "필수 옵션입니다",
"unsupportedOption": "지원하지 않는 옵션입니다",
"requiredOptionNull": "아래 옵션들 설정되어 있어야 합니다:\n\n${options}"
"requiredOption": "필수 옵션입니다.",
"unsupportedOption": "지원하지 않는 옵션입니다.",
"requiredOptionNull": "다음 옵션들 설정되어 있어야 합니다:\n\n${options}"
},
"patchItem": {
"unsupportedDialogText": "이 패치는 오류를 발생시킬 수 있습니다.\n\n앱 버전: ${packageVersion}\n지원되는 버전:\n${supportedVersions}",
"unsupportedPatchVersion": "패치가 이 앱 버전을 지원하지 않습니다.",
"unsupportedRequiredOption": "패치에 이 앱에서 지원하지 않는 필수 옵션이 포함되어 있습니다",
"patchesChangeWarningDialogText": "기본 패치 선택을 사용하는 것을 권장합니다. 설정을 변경할 경우 오류의 원인이 될 수 있습니다.\n패치 선택을 변경하기 위해서는 설정에서 \"패치 선택 변경 허용\"을 야 합니다.",
"patchesChangeWarningDialogButton": "기본 선택사항 사용"
"unsupportedRequiredOption": "패치에 이 앱 지원하지 않는 필수 옵션이 포함되어 있습니다.",
"patchesChangeWarningDialogText": "기본 패치 선택을 사용하는 것을 권장합니다. 설정을 변경할 경우 오류의 원인이 될 수 있습니다.\n패치 선택을 변경하기 위해서는 설정에서 \"패치 선택 변경 허용\"을 활성화해야 합니다.",
"patchesChangeWarningDialogButton": "기본 선택목록 사용"
},
"installerView": {
"widgetTitle": "설치",
"widgetTitle": "설치 관리자",
"installType": "설치 유형 선택",
"installTypeDescription": "설치를 진행할 유형을 선택해주세요.",
"installButton": "설치",
"installButton": "설치하기",
"installRootType": "마운트",
"installNonRootType": "일반",
"warning": "패치 앱의 자동 업데이트를 꺼서 예기치 못한 오류를 예방하세요.",
"pressBackAgain": "뒤로가기 버튼을 한 번 더 눌러 취소합니다",
"warning": "패치 앱의 자동 업데이트를 꺼서 예기치 못한 오류를 예방하세요.",
"pressBackAgain": "취소하려면 뒤로가기 버튼을 다시 누르세요.",
"openButton": "열기",
"shareButton": "파일 공유",
"notificationTitle": "ReVanced Manager가 패치 중입니다",
"notificationText": "탭하여 인스톨러로 돌아가기",
"notificationTitle": "ReVanced Manager가 패치 중입니다.",
"notificationText": "설치 관리자로 돌아가려면 여기를 누르세요.",
"exportApkButtonTooltip": "패치한 APK 내보내기",
"exportLogButtonTooltip": "로그 내보내기",
"screenshotDetected": "스크린샷이 감지되었습니다. 로그를 공유할 목적이라면, 대신 텍스트 사본으로 공유해주세요.\n\n로그를 클립보드에 복사하시겠습니까?",
"copiedToClipboard": "로그를 클립보드에 복사했습니다",
"noExit": "인스톨러가 실행 중이므로 중단할 수 없습니다..."
"copiedToClipboard": "로그를 클립보드에 복사했습니다.",
"noExit": "설치 관리자가 실행 중이므로 중단할 수 없습니다..."
},
"settingsView": {
"widgetTitle": "설정",
"appearanceSectionTitle": "외관",
"teamSectionTitle": "",
"appearanceSectionTitle": "레이아웃",
"teamSectionTitle": "ReVanced Team",
"debugSectionTitle": "디버깅",
"advancedSectionTitle": "고급",
"advancedSectionTitle": "고급 설정",
"exportSectionTitle": "가져오기 & 내보내기",
"dataSectionTitle": "데이터 소스",
"themeModeLabel": "앱 테마",
"systemThemeLabel": "시스템",
"lightThemeLabel": "밝은 모드",
"darkThemeLabel": "어두운 모드",
"systemThemeLabel": "기기 테마 사용",
"lightThemeLabel": "밝은 테마",
"darkThemeLabel": "어두운 테마",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "당신의 기기에 더 맞는 경험을 즐겨보세요",
"languageLabel": "언어",
"dynamicThemeHint": "당신의 기기에 더 맞는 경험을 즐겨보세요.",
"languageLabel": "언어",
"languageUpdated": "앱 언어를 변경했습니다.",
"englishOption": "영어",
"sourcesLabel": "소스",
"sourcesLabelHint": "패치 및 연동 항목의 소스 설정",
"sourcesIntegrationsLabel": "통합 기능 소스",
"sourcesLabel": "대체 소스",
"sourcesLabelHint": "ReVanced Patches 및 ReVanced Integrations 대체 소스 설정할 수 있습니다.",
"sourcesIntegrationsLabel": "Integrations 소스",
"useAlternativeSources": "대체 소스 사용",
"useAlternativeSourcesHint": "공식 소스가 아닌 ReVanced Patches 및 ReVanced Integrations 대체 소스를 사용합니다.",
"sourcesResetDialogTitle": "초기화",
"sourcesResetDialogText": "정말 커스텀 소스를 기본값으로 되돌릴까요?",
"apiURLResetDialogText": "정말 API URL을 기본값으로 되돌릴까요?",
"sourcesUpdateNote": "안내: ReVanced 패치가 최신 버전으로 자동 업데이트됩니다.\n\nIP 주소가 서버에 노출될 수 있습니다.",
"apiURLLabel": "API 링크",
"apiURLHint": "사용할 API URL 설정",
"selectApiURL": "API 링크",
"hostRepositoryLabel": "저장소 API",
"orgPatchesLabel": "패치 구성",
"sourcesPatchesLabel": "패치 소스",
"orgIntegrationsLabel": "통합 기능 구성",
"contributorsLabel": "기여자",
"contributorsHint": "ReVanced의 기여자",
"logsLabel": "로그 보내기",
"logsHint": "ReVanced 매니저 로그 보내기",
"sourcesUpdateNote": "알림: 변경하면 대체 소스에서 ReVanced Patches 및 ReVanced Integrations이 자동으로 다운로드됩니다. \n\n그 이후에는 대체 소스로 연결됩니다.",
"apiURLLabel": "API URL",
"apiURLHint": "ReVanced Manager의 API URL 설정할 수 있습니다.",
"selectApiURL": "API URL",
"orgPatchesLabel": "Patches 구성",
"sourcesPatchesLabel": "Patches 소스",
"orgIntegrationsLabel": "Integrations 구성",
"contributorsLabel": "도움을 주신 분들",
"contributorsHint": "ReVanced 개발에 도움을 주신 분들",
"logsLabel": "로그 공유하기",
"logsHint": "수집된 ReVanced Manager 로그를 공유합니다.",
"enablePatchesSelectionLabel": "패치 선택 변경 허용",
"enablePatchesSelectionHint": "패치를 선택하거나 선택 해제할 때 막지 않습니다",
"enablePatchesSelectionHint": "패치를 선택하거나 선택 해제할 수 있습니다.",
"enablePatchesSelectionWarningText": "패치의 기본 선택을 바꾸는 경우 예상치 못한 문제가 발생할 수 있습니다.\n\n그래도 활성화하시겠습니까?",
"disablePatchesSelectionWarningText": "패치 선택 변경을 비활성화하려 합니다.\n패치의 기본 선택사항이 복원될 것입니다.\n\n그래도 비활성화하시겠습니까?",
"disablePatchesSelectionWarningText": "패치 선택 변경을 비활성화하려 합니다.\n패치의 기본 선택목록이 복원될 것입니다.\n\n그래도 비활성화하시겠습니까?",
"autoUpdatePatchesLabel": "패치 자동 업데이트",
"autoUpdatePatchesHint": "ReVanced 패치를 최신 버전으로 자동 업데이트",
"universalPatchesLabel": "공통 패치 보기",
"universalPatchesHint": "모든 앱과 공통 패치 보기(앱이 느려질 수 있습니다.)",
"autoUpdatePatchesHint": "자동으로 패치를 최신 버전으로 업데이트합니다.",
"showUpdateDialogLabel": "업데이트 팝업창 보기",
"showUpdateDialogHint": "새 업데이트가 있으면 팝업창을 표시합니다.",
"universalPatchesLabel": "공용 패치 보기",
"universalPatchesHint": "기기에 설치된 모든 앱과 공용 패치를 표시합니다. (앱 목록이 느려질 수 있음)",
"versionCompatibilityCheckLabel": "버전 호환성 체크",
"versionCompatibilityCheckHint": "선택한 앱 버전과 호환되지 않는 패치를 선택하지 못하게 합니다",
"versionCompatibilityCheckHint": "선택한 앱 버전과 호환되지 않는 패치를 선택할 수 없습니다.",
"requireSuggestedAppVersionLabel": "권장 앱 버전 요구",
"requireSuggestedAppVersionHint": "권장되지 않은 버전의 앱을 선택하지 못하게 합니다",
"requireSuggestedAppVersionDialogText": "권장 버전이 아닌 앱을 선택하는 경우 예상치 못한 문제가 발생할 수 있습니다.\n\n그래도 계속 진행하시겠습니까?",
"requireSuggestedAppVersionHint": "권장되지 않은 앱 버전은 선택할 수 없습니다.",
"requireSuggestedAppVersionDialogText": "권장 버전이 아닌 앱을 선택하는 경우 예상치 못한 문제가 발생할 수 있습니다.\n\n그래도 계속 진행하시겠습니까?",
"aboutLabel": "정보",
"snackbarMessage": "클립보드에 복사",
"restartAppForChanges": "변경 사항을 적용하려면 앱을 다시 시작하세요",
"deleteTempDirLabel": "임시 파일 제",
"deleteTempDirHint": "사용하지 않는 임시 파일을 제합니다",
"deletedTempDir": "임시 파일을 삭제함",
"snackbarMessage": "클립보드에 복사했습니다.",
"restartAppForChanges": "변경 사항을 적용하려면 앱을 다시 시작하세요.",
"deleteTempDirLabel": "임시 파일 제",
"deleteTempDirHint": "사용하지 않는 임시 파일을 제합니다.",
"deletedTempDir": "임시 파일을 제거했습니다.",
"exportPatchesLabel": "패치 선택목록 내보내기",
"exportPatchesHint": "패치 선택목록을 JSON 파일로 내보내기",
"exportPatchesHint": "패치 선택목록을 JSON 파일로 내보냅니다.",
"exportedPatches": "패치 선택목록을 내보냄",
"noExportFileFound": "내보낼 패치 선택목록이 없습니다",
"noExportFileFound": "내보낼 패치 선택목록이 없습니다.",
"importPatchesLabel": "패치 선택목록 가져오기",
"importPatchesHint": "패치 선택목록을 JSON 파일에서 가져오기",
"importPatchesHint": "패치 선택목록을 JSON 파일에서 가져옵니다.",
"importedPatches": "패치 선택목록을 불러옴",
"resetStoredPatchesLabel": "패치 선택목록 초기화",
"resetStoredPatchesHint": "저장된 패치 선택목록 초기화",
"resetStoredPatchesDialogTitle": "패치 선택 사항을 초기화하시겠습니까?",
"resetStoredPatchesDialogText": "패치 기본 선택 사항으로 복원니다.",
"resetStoredPatches": "패치 선택 사항이 초기화되었습니다",
"resetStoredPatchesHint": "저장된 패치 선택목록 초기화합니다.",
"resetStoredPatchesDialogTitle": "패치 선택목록을 초기화하시겠습니까?",
"resetStoredPatchesDialogText": "패치 기본 선택목록으로 복원니다.",
"resetStoredPatches": "패치 선택목록을 초기화습니다.",
"resetStoredOptionsLabel": "패치 옵션 초기화",
"resetStoredOptionsHint": "모든 패치 옵션 초기화",
"resetStoredOptionsHint": "모든 패치 옵션 초기화합니다.",
"resetStoredOptionsDialogTitle": "패치 옵션을 초기화하시겠습니까?",
"resetStoredOptionsDialogText": "패치 옵션을 초기화하면 저장한 모든 옵션이 제거됩니다.",
"resetStoredOptions": "설정을 초기화했습니다",
"deleteLogsLabel": "로그 제",
"deleteLogsHint": "수집된 ReVanced 매니저 로그 삭제",
"deletedLogs": "제거된 로그",
"resetStoredOptions": "설정을 초기화했습니다.",
"deleteLogsLabel": "로그 제거하기",
"deleteLogsHint": "수집된 ReVanced Manager 로그를 제거합니다.",
"deletedLogs": "로그를 제거했습니다.",
"regenerateKeystoreLabel": "키스토어 재생성",
"regenerateKeystoreHint": "앱을 서명할 때 사용 키스토어를 재생성합니다",
"regenerateKeystoreHint": "앱을 서명할 때 사용 키스토어를 재생성합니다.",
"regenerateKeystoreDialogTitle": "키스토어를 재생성하시겠습니까?",
"regenerateKeystoreDialogText": "기존 키스토어로 서명한 패치된 앱을 더 이상 업데이트할 수 없게 됩니다.",
"regeneratedKeystore": "키스토어 재생성 완료",
"exportKeystoreLabel": "키스토어 내보내기",
"exportKeystoreHint": "앱을 서명할 때 키스토어를 내보냅니다",
"exportKeystoreHint": "앱을 서명할 때 사용한 키스토어를 내보냅니다.",
"exportedKeystore": "키스토어 내보냄",
"noKeystoreExportFileFound": "내보낼 키스토어가 없",
"noKeystoreExportFileFound": "내보낼 키스토어가 없습니다.",
"importKeystoreLabel": "키스토어 가져오기",
"importKeystoreHint": "앱을 서명할 때 키스토어를 가져옵니다",
"importKeystoreHint": "앱을 서명할 때 사용한 키스토어를 가져옵니다.",
"importedKeystore": "키스토어 가져옴",
"selectKeystorePassword": "키스토어 비밀번호",
"selectKeystorePasswordHint": "앱 서명 사용한 키스토어 비밀번호를 선택하세요",
"jsonSelectorErrorMessage": "선택한 JSON 파일을 사용할 수 없",
"keystoreSelectorErrorMessage": "선택한 키스토어 파일을 사용할 수 없습니다"
"selectKeystorePasswordHint": "앱 서명할 때 사용한 키스토어 비밀번호를 선택하세요.",
"jsonSelectorErrorMessage": "선택한 JSON 파일을 사용할 수 없습니다.",
"keystoreSelectorErrorMessage": "선택한 키스토어 파일을 사용할 수 없습니다."
},
"appInfoView": {
"widgetTitle": "앱 정보",
"openButton": "열기",
"uninstallButton": "설치 삭제",
"uninstallButton": "제거하기",
"unmountButton": "마운트 해제",
"rootDialogTitle": "오류",
"unmountDialogText": "이 앱의 마운트를 해제할까요?",
"uninstallDialogText": "이 앱을 제거할까요?",
"rootDialogText": "앱이 슈퍼유저 권한으로 설치되었으나 현재 ReVanced 매니저에게 권한이 없습니다. 슈퍼유저 권한을 부여해주세요.",
"rootDialogText": "앱이 슈퍼유저 권한으로 설치되었으나 현재 ReVanced Manager에는 권한이 없습니다. 먼저 슈퍼유저 권한을 부여해주세요.",
"packageNameLabel": "패키지 이름",
"installTypeLabel": "설치 유형",
"mountTypeLabel": "마운트",
@@ -254,40 +268,35 @@
"appliedPatchesLabel": "적용한 패치",
"patchedDateHint": "${date} ${time}",
"appliedPatchesHint": "적용한 패치 ${quantity}개",
"updateNotImplemented": "이 기능은 아직 구현되지 않았습니다"
"updateNotImplemented": "이 기능은 아직 구현되지 않았습니다."
},
"contributorsView": {
"widgetTitle": "기여자",
"patcherContributors": "패처 기여자",
"patchesContributors": "패치 기여자",
"integrationsContributors": "통합 기능 기여자",
"cliContributors": "CLI 기여자",
"managerContributors": "매니저 기여자"
"widgetTitle": "도움을 주신 분들"
},
"installErrorDialog": {
"mount_version_mismatch": "버전 불일치",
"mount_no_root": "루트 권한 없",
"mount_missing_installation": "설치 대상을 찾을 수 없",
"mount_no_root": "Root 권한습니다.",
"mount_missing_installation": "설치 대상을 찾을 수 없습니다.",
"status_failure_blocked": "설치 차단됨",
"install_failed_verification_failure": "인증 실패",
"status_failure_invalid": "설치가 유효하지 않",
"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에 루트 권한을 부여한 뒤 다시 시도하세요.",
"mount_version_mismatch_description": "패치 앱과 설치된 앱의 버전이 달라 설치에 실패했습니다.\n\n마운트하고 있는 앱의 버전으로 설치한 뒤 다시 시도하세요.",
"mount_no_root_description": "Root 권한이 주어지지 않아 설치에 실패했습니다.\n\nReVanced Manager에 Root 권한을 부여한 뒤 다시 시도하세요.",
"mount_missing_installation_description": "패치되지 않은 앱이 이 기기에 설치되지 않아서 마운트를 진행할 수 없어 설치에 실패했습니다.\n\n마운트하기 전 패치되지 않은 앱을 설치한 뒤 다시 시도하세요.",
"status_failure_timeout_description": "설치하는 데 시간이 너무 오래 걸립니다.\n\n다시 시도할까요?",
"status_failure_storage_description": "저장공간이 충분하지 않아 설치에 실패했습니다.\n\n저장공간을 확보한 뒤 다시 시도하세요.",
"status_failure_invalid_description": "패치된 앱이 유효하지 않아 설치에 실패했습니다.\n\n앱을 제거하고 다시 시도할까요?",
"status_failure_incompatible_description": "앱이 기기와 호환되지 않습니다.\n\n앱 개발자에게 문의하여 도움을 요청해 보세요.",
"status_failure_conflict_description": "기존에 설치된 앱이 설치를 방해했습니다.\n\n설치된 앱을 지우고 다시 시도할까요?",
"status_failure_blocked_description": "설치가 ${packageName}에 의해 차단되었습니다.\n\n보안 설정을 조정한 뒤 다시 시도하세요.",
"status_failure_blocked_description": "설치가 '${packageName}'에 의해 차단되었습니다.\n\n보안 설정을 조정한 뒤 다시 시도하세요.",
"install_failed_verification_failure_description": "인증 문제로 인해 설치에 실패했습니다.\n\n보안 설정을 조정한 뒤 다시 시도하세요.",
"install_failed_version_downgrade_description": "패치 앱의 버전이 설치된 앱의 버전보다 낮아 설치에 실패했습니다.\n\n앱을 제거하고 다시 시도할까요?",
"install_failed_version_downgrade_description": "패치 앱의 버전이 설치된 앱의 버전보다 낮아 설치에 실패했습니다.\n\n앱을 제거하고 다시 시도할까요?",
"status_unknown_description": "알 수 없는 이유로 설치에 실패했습니다. 다시 시도하세요."
}
}

View File

@@ -128,15 +128,12 @@
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Mėgaukis patirtimi artimiau tavo įrenginiui",
"languageLabel": "Kalba",
"sourcesLabel": "Šaltiniai",
"sourcesIntegrationsLabel": "Integracijų šaltinis",
"sourcesResetDialogTitle": "Nustatyti iš naujo",
"sourcesResetDialogText": "Ar tikrai norite iš naujo nustatyti savo šaltinius į numatytąsias vertes?",
"apiURLResetDialogText": "Ar tikrai norite iš naujo nustatyti savo API URL adresą į numatytąją vertę?",
"sourcesUpdateNote": "Pastaba: pataisymai į naujausią versiją bus atnaujinti automatiškai.\n\nTai atskleis jūsų IP adresą serveriui.",
"apiURLLabel": "API URL",
"selectApiURL": "API URL",
"hostRepositoryLabel": "API saugykla",
"orgPatchesLabel": "Modifikacijų organizacija",
"sourcesPatchesLabel": "Modifikacijų šaltinis",
"orgIntegrationsLabel": "Integracijų organizacija",
@@ -212,12 +209,7 @@
"updateNotImplemented": "Ši funkcija dar neįgyvendinta"
},
"contributorsView": {
"widgetTitle": "Prisidėjusieji žmonės",
"patcherContributors": "Prisidėjusieji prie Pataisytuvo",
"patchesContributors": "Prisidėjusieji prie pataisymų",
"integrationsContributors": "Prisidėjusieji prie integracijų",
"cliContributors": "Prisidėjusieji prie CLI",
"managerContributors": "Prisidėjusieji prie Tvarkyklės"
"widgetTitle": "Prisidėjusieji žmonės"
},
"installErrorDialog": {}
}

View File

@@ -100,12 +100,10 @@
"dynamicThemeLabel": "Materiāls izskats",
"dynamicThemeHint": "Izbaudi pieredzi personalizētu tavai ierīcei",
"languageLabel": "Valoda",
"sourcesLabel": "Avoti",
"sourcesIntegrationsLabel": "Integrācijas avots",
"sourcesResetDialogTitle": "Atiestatīt",
"apiURLLabel": "API Saite",
"selectApiURL": "API Saite",
"hostRepositoryLabel": "Repozitorija API",
"orgPatchesLabel": "Paču autori",
"sourcesPatchesLabel": "Paču avots",
"orgIntegrationsLabel": "Integrāciju autori",
@@ -140,12 +138,7 @@
"updateNotImplemented": "Šī funkcija vēl nav izveidota"
},
"contributorsView": {
"widgetTitle": "Autori",
"patcherContributors": "Paču autori",
"patchesContributors": "Paču autori",
"integrationsContributors": "Integrācijas autori",
"cliContributors": "CLI autori",
"managerContributors": "Menedžera autori"
"widgetTitle": "Autori"
},
"installErrorDialog": {}
}

View File

@@ -16,6 +16,8 @@
"noShowAgain": "Niet meer tonen",
"add": "Voeg toe",
"remove": "Verwijderen",
"showChangelogButton": "Wijzigingslogboek tonen",
"showUpdateButton": "Update weergeven",
"navigationView": {
"dashboardTab": "Overzicht",
"patcherTab": "Patcher",
@@ -26,14 +28,25 @@
"widgetTitle": "Overzicht",
"updatesSubtitle": "Updates",
"patchedSubtitle": "Gepatchte applicaties",
"changeLaterSubtitle": "U kunt dit op een later moment wijzigen in de instellingen.",
"noUpdates": "Geen updates beschikbaar",
"WIP": "Bezig met uitvoeren...",
"noInstallations": "Geen gepatchte applicaties geïnstalleerd",
"installUpdate": "Doorgaan met het installeren van de update?",
"updateSheetTitle": "Update ReVanced Manager",
"updateDialogTitle": "Nieuwe update beschikbaar",
"updatePatchesSheetTitle": "Update ReVanced Patches",
"updateChangelogTitle": "Wijzigingslogboek",
"updateDialogText": "Er is een nieuwe update beschikbaar voor ${file}.\n\nDe momenteel geïnstalleerde versie is ${version}.",
"downloadConsentDialogTitle": "Download de benodigde bestanden?",
"downloadConsentDialogText": "ReVanced Manager moet de benodigde bestanden downloaden om goed te werken.",
"downloadConsentDialogText2": "Dit verbindt u met ${url}.",
"checkUpdateDialogTitle": "Controleer op updates?",
"checkUpdateDialogText": "Wilt u dat ReVanced Manager automatisch op updates controleert?",
"notificationTitle": "Update gedownload",
"notificationText": "Tik om de update te installeren",
"downloadingMessage": "Update wordt gedownload...",
"downloadedMessage": "Update gedownload",
"installingMessage": "Update wordt geïnstalleerd...",
"errorDownloadMessage": "Update downloaden mislukt",
"errorInstallMessage": "Update installeren mislukt",
@@ -53,12 +66,18 @@
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Patchen",
"armv7WarningDialogText": "Patchen op ARMv7 apparaten zijn nog niet ondersteund en zou mogelijk kunnen misgaan. Toch verder gaan?",
"removedPatchesWarningDialogText": "De volgende patches zijn verwijderd sinds de laatste keer dat je ze hebt gebruikt.\n\n${patches}\n\nToch doorgaan?",
"requiredOptionDialogText": "Er moeten enkele patch-opties worden ingesteld."
},
"appSelectorCard": {
"widgetTitle": "Selecteer een app",
"widgetTitleSelected": "Geselecteerde app",
"widgetSubtitle": "Geen app geselecteerd",
"noAppsLabel": "Geen applicatie gevonden",
"currentVersion": "Huidige",
"suggestedVersion": "Voorgesteld"
"suggestedVersion": "Voorgesteld",
"anyVersion": "Iedere versie"
},
"patchSelectorCard": {
"widgetTitle": "Selecteer patches",
@@ -71,11 +90,15 @@
"widgetSubtitle": "We zijn online!"
},
"appSelectorView": {
"viewTitle": "Selecteer een app",
"searchBarHint": "Zoek naar apps",
"storageButton": "Opslag",
"selectFromStorageButton": "Selecteer uit opslag",
"errorMessage": "Kan geselecteerde applicatie niet gebruiken",
"downloadToast": "Download functie is nog niet beschikbaar",
"featureNotAvailable": "Functie niet geïmplementeerd"
"requireSuggestedAppVersionDialogText": "De versie van de app die u hebt geselecteerd komt niet overeen met de voorgestelde versie die onverwachte problemen kan veroorzaken. Gebruik de voorgestelde versie.\n\nGeselecteerde versie: ${selected}\nSuggeert versie: ${suggested}\n\nOm toch verder te gaan, schakel \"Vereis app versie\" uit in de instellingen.",
"featureNotAvailable": "Functie niet geïmplementeerd",
"featureNotAvailableText": "Deze app is een gesplitste APK en kan alleen op betrouwbare wijze worden gepatenteerd en geïnstalleerd door te koppelen met root-machtigingen. Je kunt echter wel een volledige APK patchen en installeren door deze uit de opslag te selecteren."
},
"patchesSelectorView": {
"viewTitle": "Selecteer patches",
@@ -84,7 +107,9 @@
"newPatches": "Nieuwe patches",
"patches": "Patches",
"doneButton": "Gereed",
"defaultChip": "Standaard",
"defaultTooltip": "Selecteer alle standaard patches",
"noneChip": "Geen",
"noneTooltip": "Alle patches deselecteren",
"loadPatchesSelection": "Laad patch selectie",
"noSavedPatches": "Geen opgeslagen patch selectie voor de geselecteerde app.\nDruk op Klaar om de huidige selectie op te slaan.",
@@ -110,11 +135,13 @@
"unsupportedDialogText": "Het selecteren van deze patch kan leiden tot patch fouten.\n\nApp-versie: ${packageVersion}\nOndersteunde versies:\n${supportedVersions}",
"unsupportedPatchVersion": "Patch wordt niet ondersteund voor deze app versie.",
"unsupportedRequiredOption": "Deze patch bevat een verplichte optie die niet wordt ondersteund door deze app",
"patchesChangeWarningDialogText": "Het wordt aangeraden om de standaard patch selectie en opties te gebruiken. Wijzigen van deze opties kan leiden tot onverwachte problemen.\n\nJe moet \"Veranderen van patch-selectie toestaan\" inschakelen in de instellingen voordat je de patch-selectie wijzigt.",
"patchesChangeWarningDialogButton": "Gebruik standaard selectie"
},
"installerView": {
"widgetTitle": "Installatieprogramma",
"installType": "Selecteer installatietype",
"installTypeDescription": "Selecteer het installatietype om mee door te gaan.",
"installButton": "Installeren",
"installRootType": "Bestijgen",
"installNonRootType": "Normaal",
@@ -137,6 +164,7 @@
"debugSectionTitle": "Foutopsporing",
"advancedSectionTitle": "Geavanceerd",
"exportSectionTitle": "Importeren & exporteren",
"dataSectionTitle": "Gegevensbronnen",
"themeModeLabel": "App thema",
"systemThemeLabel": "Systeem",
"lightThemeLabel": "Licht",
@@ -144,18 +172,20 @@
"dynamicThemeLabel": "Materiaal jij",
"dynamicThemeHint": "Geniet van een ervaring dichter bij je apparaat",
"languageLabel": "Taal",
"languageUpdated": "Taal bijgewerkt",
"englishOption": "Engels",
"sourcesLabel": "Bronnen",
"sourcesLabelHint": "Configureer de bron van patches en integraties",
"sourcesLabel": "Alternatieve bronnen",
"sourcesLabelHint": "Configureer de alternatieve bronnen voor ReVanced Patches en ReVanced Integrations",
"sourcesIntegrationsLabel": "Integratiebronnen",
"useAlternativeSources": "Gebruik alternatieve bronnen",
"useAlternativeSourcesHint": "Gebruik alternatieve bronnen voor ReVanced Patches en ReVanced Integrations in plaats van de API",
"sourcesResetDialogTitle": "Herstellen naar standaard",
"sourcesResetDialogText": "Weet u zeker dat u uw bronnen op hun standaardwaarden wilt herstellen?",
"apiURLResetDialogText": "Weet u zeker dat u uw API-URL wilt resetten naar de standaardwaarde?",
"sourcesUpdateNote": "Opmerking: Patches worden automatisch naar de laatste versie bijgewerkt.\n\nUw IP-adres wordt zichtbaar aan de server.",
"sourcesUpdateNote": "Opmerking: Dit zal automatisch ReVanceerde Patches en verbeterde integraties uit de alternatieve bronnen downloaden.\n\nDit verbindt je met de alternatieve bron.",
"apiURLLabel": "API URL",
"apiURLHint": "Stel de URL van de te gebruiken API in",
"apiURLHint": "Configureer de API URL van ReVanced Manager",
"selectApiURL": "API URL",
"hostRepositoryLabel": "Repository-API",
"orgPatchesLabel": "Organisatie van patches",
"sourcesPatchesLabel": "Bronnen voor patches",
"orgIntegrationsLabel": "Integraties organisatie",
@@ -169,6 +199,8 @@
"disablePatchesSelectionWarningText": "U staat op het punt om de selectie van patches uit te schakelen.\nDe standaard selectie van patches zal worden hersteld.\n\nToch uitschakelen?",
"autoUpdatePatchesLabel": "Patch automatisch bijwerken",
"autoUpdatePatchesHint": "Patch automatisch bijwerken naar de laatste versie",
"showUpdateDialogLabel": "Toon update dialoogvenster",
"showUpdateDialogHint": "Een dialoogvenster weergeven wanneer een nieuwe update beschikbaar is",
"universalPatchesLabel": "Toon universele patches",
"universalPatchesHint": "Alle apps en universele patches weergeven (kan de app-lijst vertragen)",
"versionCompatibilityCheckLabel": "Versie compatibiliteitscontrole",
@@ -239,12 +271,7 @@
"updateNotImplemented": "Deze functie is nog niet geïmplementeerd"
},
"contributorsView": {
"widgetTitle": "Bijdragers",
"patcherContributors": "Bijdragers aan het patchprogramma",
"patchesContributors": "Bijdragers aan de patchsoftware",
"integrationsContributors": "Bijdragers aan integratieoplossingen",
"cliContributors": "CLI-bijdragers",
"managerContributors": "Bijdragers ReVanced Manager"
"widgetTitle": "Bijdragers"
},
"installErrorDialog": {
"mount_version_mismatch": "Verkeerde versie",

View File

@@ -67,7 +67,6 @@
"darkThemeLabel": "Mørk modus",
"dynamicThemeHint": "Nyt en erfaring nærmere din enhet",
"languageLabel": "Språk",
"sourcesLabel": "Kilder",
"sourcesIntegrationsLabel": "Integrasjoner kilde",
"sourcesResetDialogTitle": "Tilbakestill",
"orgPatchesLabel": "Patches organisasjon",

View File

@@ -42,7 +42,6 @@
"lightThemeLabel": "ହାଲୁକା",
"darkThemeLabel": "ଗାଢ଼",
"languageLabel": "ଭାଷା",
"sourcesLabel": "ଉତ୍ସ",
"apiURLLabel": "API URL",
"selectApiURL": "API URL",
"aboutLabel": "ସମ୍ବନ୍ଧରେ",

View File

@@ -1,5 +1,5 @@
{
"okButton": "OK",
"okButton": "OK ",
"cancelButton": "Anuluj",
"dismissButton": "Odrzuć",
"quitButton": "Wyjdź",
@@ -107,7 +107,9 @@
"newPatches": "Nowe łatki",
"patches": "Łatki",
"doneButton": "Gotowe",
"defaultChip": "Domyślnie",
"defaultTooltip": "Wybierz wszystkie domyślne łatki",
"noneChip": "Brak",
"noneTooltip": "Odznacz wszystkie łatki",
"loadPatchesSelection": "Załaduj wybór łatek",
"noSavedPatches": "Brak zapisanych łatek dla wybranej aplikacji.\nNaciśnij Gotowe, aby zapisać bieżący wybór.",
@@ -162,6 +164,7 @@
"debugSectionTitle": "Debugowanie",
"advancedSectionTitle": "Zaawansowane",
"exportSectionTitle": "Import i eksport",
"dataSectionTitle": "Źródła danych",
"themeModeLabel": "Motyw aplikacji",
"systemThemeLabel": "Systemowy",
"lightThemeLabel": "Jasny",
@@ -169,18 +172,20 @@
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Ciesz się wrażeniami bliższymi twojemu urządzeniu",
"languageLabel": "Język",
"languageUpdated": "Zaktualizowano język",
"englishOption": "Angielski",
"sourcesLabel": "Źródła",
"sourcesLabelHint": "Skonfiguruj źródło łatek i integracji",
"sourcesLabel": "Alternatywne źródło",
"sourcesLabelHint": "Skonfiguruj alternatywne źródła dla Łatek ReVanced i Integracji ReVanced",
"sourcesIntegrationsLabel": "Źródło integracji",
"useAlternativeSources": "Używaj alternatywnych źródeł",
"useAlternativeSourcesHint": "Używaj alternatywnych źródeł dla Łatek ReVanced i Integracji ReVanced zamiast API",
"sourcesResetDialogTitle": "Zresetuj",
"sourcesResetDialogText": "Czy na pewno chcesz przywrócić źródła niestandardowe do ich wartości domyślnych?",
"apiURLResetDialogText": "Czy jesteś pewien, że chcesz przywrócić wszystkie adresy API do domyślnych wartości?",
"sourcesUpdateNote": "Uwaga: Łatki zostaną automatycznie zaktualizowane.\n\nTo ujawnij Twój adres IP serwerowi.",
"sourcesUpdateNote": "Uwaga: To automatycznie pobierze Łatki ReVanced i Integracje ReVanced z alternatywnych źródeł.\n\nTo połączy cię z alternatywnym źródłem.",
"apiURLLabel": "Adres API",
"apiURLHint": "Skonfiguruj adres URL API do użytku",
"apiURLHint": "Skonfiguruj adres API Menedżera ReVanced",
"selectApiURL": "Adres API",
"hostRepositoryLabel": "Repozytorium API",
"orgPatchesLabel": "Organizacja łatek",
"sourcesPatchesLabel": "Źródło łatek",
"orgIntegrationsLabel": "Organizacja integracji",
@@ -266,12 +271,7 @@
"updateNotImplemented": "Ta funkcja nie została jeszcze zaimplementowana"
},
"contributorsView": {
"widgetTitle": "Współtwórcy",
"patcherContributors": "Współtwórcy programu łatającego",
"patchesContributors": "Współtwórcy łatek",
"integrationsContributors": "Współtwórcy integracji",
"cliContributors": "Współtwórcy CLI",
"managerContributors": "Współtwórcy menedżera"
"widgetTitle": "Współtwórcy"
},
"installErrorDialog": {
"mount_version_mismatch": "Niezgodność wersji",

View File

@@ -1,8 +1,11 @@
{
"okButton": "Aceitar",
"okButton": "OK",
"cancelButton": "Cancelar",
"dismissButton": "Descartar",
"quitButton": "Sair",
"updateButton": "Atualizar",
"enabledLabel": "Ativado",
"disabledLabel": "Desativado",
"installed": "Instalado: ${version}",
"suggested": "Sugerido: ${version}",
"yesButton": "Sim",
@@ -10,10 +13,10 @@
"warning": "Atenção",
"options": "Opções",
"notice": "Nota",
"noShowAgain": "Não mostre novamente",
"noShowAgain": "Não mostrar novamente",
"add": "Adicionar",
"remove": "Remover",
"showChangelogButton": "Mostrar registro de alterações",
"showChangelogButton": "Mostrar alterações",
"showUpdateButton": "Mostrar atualização",
"navigationView": {
"dashboardTab": "Painel",
@@ -21,23 +24,27 @@
"settingsTab": "Configurações"
},
"homeView": {
"refreshSuccess": "Recarregado/Atualizado com sucesso",
"refreshSuccess": "Atualizado com sucesso",
"widgetTitle": "Painel",
"updatesSubtitle": "Atualizações",
"patchedSubtitle": "Aplicativos modificados/Patcheados",
"changeLaterSubtitle": "Você pode ajustar essa opção em Configurações mais tarde.",
"noInstallations": "Nenhum aplicativo modificado instalado",
"patchedSubtitle": "Aplicativos patcheados",
"changeLaterSubtitle": "Você pode ajustar essa opção nas configurações mais tarde.",
"noUpdates": "Nenhuma atualização encontrada",
"WIP": "Trabalho em progresso...",
"noInstallations": "Nenhum aplicativo patcheado instalado",
"installUpdate": "Continuar a instalação da atualização?",
"updateSheetTitle": "Atualizar o ReVanced Manager",
"updateDialogTitle": "Nova atualização disponível",
"updatePatchesSheetTitle": "Atualizar o ReVanced Patches",
"updateChangelogTitle": "Mudanças",
"updatePatchesSheetTitle": "Atualizar os patches do ReVanced",
"updateChangelogTitle": "Alterações",
"updateDialogText": "Uma nova atualização está disponível para ${file}.\n\nA versão atualmente instalada é a ${version}.",
"downloadConsentDialogTitle": "Baixar os arquivos necessários?",
"downloadConsentDialogText": "O ReVanced Manager precisará baixar os arquivos necessários para funcionar corretamente.",
"downloadConsentDialogText2": "Isso irá te conectar em ${url}.",
"checkUpdateDialogTitle": "Procurar atualizações?",
"checkUpdateDialogText": "Você quer que o ReVanced Manager procure atualizações automaticamente?",
"notificationTitle": "Atualização baixada",
"notificationText": "Toque para instalar a atualização",
"downloadingMessage": "Baixando atualização...",
"downloadedMessage": "Atualização baixada",
"installingMessage": "Instalando atualização...",
@@ -51,18 +58,26 @@
},
"latestCommitCard": {
"loadingLabel": "Carregando...",
"timeagoLabel": "há ${time}"
"timeagoLabel": "há ${time}",
"patcherLabel": "Patcher: ",
"managerLabel": "Gerenciador: ",
"updateButton": "Gerenciador de Atualizações"
},
"patcherView": {
"widgetTitle": "Patcher",
"patchButton": "Patch",
"armv7WarningDialogText": "Realizar patches em dispositivos ARMv7 ainda não é suportado e pode falhar. Continuar mesmo assim?",
"removedPatchesWarningDialogText": "Os seguintes patches foram removidos desde a última vez que você os utilizou:\n\n${patches}\n\nContinuar mesmo assim?",
"requiredOptionDialogText": "Algumas opções de patch tiveram que ser definidas."
},
"appSelectorCard": {
"widgetTitle": "Selecione um aplicativo",
"widgetTitleSelected": "Aplicativo selecionado",
"widgetSubtitle": "Nenhum aplicativo selecionado",
"noAppsLabel": "Nenhum aplicativo foi encontrado",
"currentVersion": "Atual",
"suggestedVersion": "Sugeridos/sugestões"
"suggestedVersion": "Sugeridos/sugestões",
"anyVersion": "Qualquer versão"
},
"patchSelectorCard": {
"widgetTitle": "Selecionar patches",
@@ -72,14 +87,18 @@
},
"socialMediaCard": {
"widgetTitle": "Redes sociais",
"widgetSubtitle": "Nós estamos online!"
"widgetSubtitle": "Estamos online!"
},
"appSelectorView": {
"viewTitle": "Selecione um aplicativo",
"searchBarHint": "Pesquisar aplicativo",
"storageButton": "Armazenamento",
"selectFromStorageButton": "Selecionar no armazenamento",
"errorMessage": "Não foi possível usar o app selecionado",
"downloadToast": "A função de download não está disponível no momento",
"featureNotAvailable": "Recurso não implementado"
"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": "Recurso não implementado",
"featureNotAvailableText": "Este aplicativo é um APK dividido e só pode ser patcheado e instalado de forma confiável ao ser montado com permissões de root. No entanto, você pode patchear e instalar um APK completo ao selecioná-lo do armazenamento."
},
"patchesSelectorView": {
"viewTitle": "Selecionar patches",
@@ -88,7 +107,9 @@
"newPatches": "Novos patches",
"patches": "Patches",
"doneButton": "Concluído",
"defaultChip": "Padrão",
"defaultTooltip": "Selecionar todos os patches padrões",
"noneChip": "Nenhum",
"noneTooltip": "Desmarcar todos os patches",
"loadPatchesSelection": "Carregar o patch selecionado",
"noSavedPatches": "Não há patches salvos para esse aplicativo selecionado.\nAperte \"Concluir\" para salvar a seleção atual.",
@@ -105,21 +126,29 @@
"tooltip": "Mais opções de entrada",
"selectFilePath": "Selecione o caminho do arquivo",
"selectFolder": "Selecione a pasta",
"selectOption": "Selecione uma opção",
"requiredOption": "Essa opção é necessária",
"unsupportedOption": "Essa opção não é suportada",
"requiredOptionNull": "As seguintes opções precisam ser definidas:\n\n${options}"
},
"patchItem": {
"unsupportedDialogText": "Selecionar esse patch pode resultar em erros de patchs\n\nVersão do app: ${packageVersion}\nVersões suportadas: ${supportedVersions}",
"unsupportedPatchVersion": "O patch não é suportado para esta versão do aplicativo.",
"unsupportedRequiredOption": "Esse patch contém uma opção necessária que não é suportada por esse app",
"patchesChangeWarningDialogText": "É recomendado usar a seleção de patch padrão e as opções. Alterá-las pode resultar em problemas inesperados.\n\nVocê precisará ativar \"Permitir alteração na seleção de patch\" nas configurações antes de alterar qualquer seleção de patch.",
"patchesChangeWarningDialogButton": "Use a seleção padrão"
},
"installerView": {
"widgetTitle": "Instalador",
"installType": "Selecione o tipo de instalação",
"installTypeDescription": "Selecione o tipo de instalação para continuar.",
"installButton": "Instalar",
"installRootType": "Montar",
"installNonRootType": "Regular",
"warning": "Desative as atualizações automáticas do aplicativo patcheado para evitar problemas inesperados.",
"pressBackAgain": "Pressione voltar mais uma vez para cancelar",
"openButton": "Abrir",
"shareButton": "Share file",
"notificationTitle": "ReVanced manager está aplicando os patches",
"notificationText": "Toque para voltar ao instalador",
"exportApkButtonTooltip": "Exportar APK com o patch aplicado",
@@ -135,21 +164,28 @@
"debugSectionTitle": "Depurando",
"advancedSectionTitle": "Avançado",
"exportSectionTitle": "Importar e exportar",
"dataSectionTitle": "Data sources",
"themeModeLabel": "Tema do aplicativo",
"systemThemeLabel": "Sistema",
"lightThemeLabel": "Claro",
"darkThemeLabel": "Modo escuro",
"darkThemeLabel": "Escuro",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Aproveite uma experiência mais próxima do tema de seu dispositivo",
"languageLabel": "Idioma",
"sourcesLabel": "Fontes",
"languageUpdated": "Idioma atualizado",
"englishOption": "English",
"sourcesLabel": "Fontes alternativas",
"sourcesLabelHint": "Conigure as fontes alternativas para ReVanced Patches e ReVanced Integrations",
"sourcesIntegrationsLabel": "Fonte das integrações",
"useAlternativeSources": "Usar fontes alternativas",
"useAlternativeSourcesHint": "Use alternative sources for ReVanced Patches and ReVanced Integrations instead of the API",
"sourcesResetDialogTitle": "Redefinir",
"sourcesResetDialogText": "Você tem certeza que deseja redefinir as fontes para os valores padrão?",
"sourcesUpdateNote": "Nota: Patches serão atualizados automaticamente para a versão mais recente.\n\nIsso irá revelar seu endereço IP ao servidor.",
"apiURLResetDialogText": "Are you sure you want to reset your API URL to its default value?",
"sourcesUpdateNote": "Nota: Isso irá baixar automaticamente os Patches ReVanced e as Integrações ReVanced de fontes alternativas.\n\nIsso irá conectá-lo à fonte alternativa.",
"apiURLLabel": "URL da API",
"apiURLHint": "Configure the API URL of ReVanced Manager",
"selectApiURL": "URL da API",
"hostRepositoryLabel": "API do Repositório",
"orgPatchesLabel": "Organização dos patches",
"sourcesPatchesLabel": "Fonte dos patches",
"orgIntegrationsLabel": "Organização das integrações",
@@ -158,13 +194,20 @@
"logsLabel": "Compartilhar logs",
"logsHint": "Compartilhar logs do ReVanced Manager",
"enablePatchesSelectionLabel": "Permitir alterar a seleção de patch",
"enablePatchesSelectionHint": "Não evite selecionar ou desmarcar patches",
"enablePatchesSelectionWarningText": "Alterar a seleção dos patches pode causar problemas inesperados.\n\nAtivar mesmo assim?",
"disablePatchesSelectionWarningText": "Você irá desabilitar a mudança da pré-seleção dos patches.\nA seleção padrão dos patches será restaurada.\n\nDesabilitar mesmo assim?",
"autoUpdatePatchesLabel": "Atualizar patches automaticamente",
"autoUpdatePatchesHint": "Atualize automaticamente os patches para a versão mais recente",
"showUpdateDialogLabel": "Show update dialog",
"showUpdateDialogHint": "Show a dialog when a new update is available",
"universalPatchesLabel": "Mostrar patches universais",
"universalPatchesHint": "Mostra todos os aplicativos e patches universais (pode deixar a lista de aplicativos mais lenta)",
"versionCompatibilityCheckLabel": "Verificar compatibilidade de versão",
"versionCompatibilityCheckHint": "Prevent selecting patches that are not compatible with the selected app version",
"requireSuggestedAppVersionLabel": "Requer a versão sugerida do app",
"requireSuggestedAppVersionHint": "Evite selecionar um aplicativo com uma versão diferente da sugerida",
"requireSuggestedAppVersionDialogText": "Selecionar um aplicativo que não seja a versão sugerida pode causar problemas inesperados.\n\nVocê quer prosseguir mesmo assim?",
"aboutLabel": "Sobre",
"snackbarMessage": "Copiado para a área de transferência",
"restartAppForChanges": "Reinicie o aplicativo para aplicar as mudanças",
@@ -174,19 +217,34 @@
"exportPatchesLabel": "Exportar a seleção do patch",
"exportPatchesHint": "Exportar a seleção do patch para um arquivo JSON",
"exportedPatches": "Seleção do patch exportada",
"noExportFileFound": "Não há seleção de patch para exportar.",
"importPatchesLabel": "Importar seleção de patch",
"importPatchesHint": "Importar seleção de patch de um arquivo JSON",
"importedPatches": "Seleção de patch importada",
"resetStoredPatchesLabel": "Redefinir seleção de patch",
"resetStoredPatchesHint": "Redefinir a seleção de patch armazenada",
"resetStoredPatchesDialogTitle": "Redefinir seleção de patch?",
"resetStoredPatchesDialogText": "A seleção padrão de patches será restaurada.",
"resetStoredPatches": "A seleção de patch foi redefinida",
"resetStoredOptionsLabel": "Redefinir opções de patch",
"resetStoredOptionsHint": "Resetar todas as opções de patch",
"resetStoredOptionsDialogTitle": "Reset patch options?",
"resetStoredOptionsDialogText": "Resetting patch options will remove all saved options.",
"resetStoredOptions": "As opções foram resetadas",
"deleteLogsLabel": "Limpar registros",
"deleteLogsHint": "Delete collected ReVanced Manager logs",
"deletedLogs": "Registros apagados",
"regenerateKeystoreLabel": "Regerar keystore",
"regenerateKeystoreHint": "Regenerar o keystore usado para assinar aplicativos",
"regenerateKeystoreDialogTitle": "Regerar keystore?",
"regenerateKeystoreDialogText": "Aplicativos patcheados assinados com o keystore antigo não poderão mais ser atualizados.",
"regeneratedKeystore": "Keystore regerado",
"exportKeystoreLabel": "Exportar keystore",
"exportKeystoreHint": "Exportar o keystore usado para assinar aplicativos",
"exportedKeystore": "Keystore exportado",
"noKeystoreExportFileFound": "Nenhum keystore para exportar",
"importKeystoreLabel": "Importar keystore",
"importKeystoreHint": "Import a keystore used to sign apps",
"importedKeystore": "Keystore importado",
"selectKeystorePassword": "Senha do keystore",
"selectKeystorePasswordHint": "Selecione a senha de keystore usada para assinar aplicativos",
@@ -197,10 +255,15 @@
"widgetTitle": "Informações do aplicativo",
"openButton": "Abrir",
"uninstallButton": "Desisntalar",
"unmountButton": "Unmount",
"rootDialogTitle": "Erro",
"unmountDialogText": "Are you sure you want to unmount this app?",
"uninstallDialogText": "Are you sure you want to uninstall this app?",
"rootDialogText": "O aplicativo foi instalado com permissões de superusuário, mas atualmente o ReVanced Manager não tem permissões.\nPor favor, conceda as permissões de superusuário primeiro.",
"packageNameLabel": "Nome do pacote",
"installTypeLabel": "Tipo de instalação",
"mountTypeLabel": "Mount",
"regularTypeLabel": "Regular",
"patchedDateLabel": "Data de patcheamento",
"appliedPatchesLabel": "Patches aplicados",
"patchedDateHint": "${date} às ${time}",
@@ -208,12 +271,32 @@
"updateNotImplemented": "Este recurso ainda não foi implementado"
},
"contributorsView": {
"widgetTitle": "Contribuidores",
"patcherContributors": "Contribuidores do patcher",
"patchesContributors": "Contribuidores de patches",
"integrationsContributors": "Contribuidores de integrações",
"cliContributors": "Contribuidores CLI",
"managerContributors": "Contribuidores do Manager"
"widgetTitle": "Contribuidores"
},
"installErrorDialog": {}
"installErrorDialog": {
"mount_version_mismatch": "Diferença de versão",
"mount_no_root": "Sem acesso root",
"mount_missing_installation": "Instalação não encontrada",
"status_failure_blocked": "Instalação bloqueada",
"install_failed_verification_failure": "Verificação falhou",
"status_failure_invalid": "Instalação inválida",
"install_failed_version_downgrade": "Não é possível rebaixar",
"status_failure_conflict": "Conflito de instalação",
"status_failure_storage": "Problema de armazenamento da instalação",
"status_failure_incompatible": "Instalação incompatível",
"status_failure_timeout": "Tempo limite de instalação",
"status_unknown": "Falha na instalação",
"mount_version_mismatch_description": "A instalação falhou devido ao aplicativo instalado ser uma versão diferente do aplicativo patcheado.\n\nInstale a versão do aplicativo que você está montando e tente novamente.",
"mount_no_root_description": "A instalação falhou devido ao acesso root não ter sido concedido.\n\nConceda acesso root ao Gerenciador ReVanced e tente novamente.",
"mount_missing_installation_description": "A instalação falhou devido ao aplicativo não patcheado não estar instalado neste dispositivo para ser montado sobre ele.\n\nInstale o aplicativo não patcheado antes de montar e tente novamente.",
"status_failure_timeout_description": "A instalação demorou muito para terminar.\n\nVocê gostaria de tentar novamente?",
"status_failure_storage_description": "A instalação falhou devido a falta de espaço de armazenamento.\n\nLibere algum espaço e tente novamente.",
"status_failure_invalid_description": "A instalação falhou devido ao aplicativo patcheado ser inválido.\n\nDesinstale o aplicativo e tente novamente.",
"status_failure_incompatible_description": "O aplicativo é incompatível com este dispositivo.\n\nEntre em contato com o desenvolvedor do aplicativo e peça suporte.",
"status_failure_conflict_description": "A instalação foi impedida por uma instalação existente do aplicativo.\n\nDesinstale o aplicativo instalado e tente novamente",
"status_failure_blocked_description": "A instalação foi bloqueada por ${packageName}.\n\nAjuste suas configurações de segurança e tente novamente.",
"install_failed_verification_failure_description": "A instalação falhou devido a um problema de verificação.\n\nAjuste suas configurações de segurança e tente novamente.",
"install_failed_version_downgrade_description": "A instalação falhou devido ao aplicativo patcheado ser uma versão mais baixa que o aplicativo instalado.\n\nDesinstale o aplicativo e tente novamente.",
"status_unknown_description": "A instalação falhou por um motivo desconhecido. Por favor, tente novamente."
}
}

View File

@@ -16,16 +16,16 @@
"noShowAgain": "Não mostrar isto novamente",
"add": "Adicionar",
"remove": "Remover",
"showChangelogButton": "Mostrar o registo de modificações",
"showChangelogButton": "Mostrar as correções",
"showUpdateButton": "Mostrar atualização",
"navigationView": {
"dashboardTab": "Painel de controlo",
"dashboardTab": "Painel de Controlo",
"patcherTab": "Modificador",
"settingsTab": "Definições"
},
"homeView": {
"refreshSuccess": "Atualizado com sucesso",
"widgetTitle": "Painel de controlo",
"widgetTitle": "Painel de Controlo",
"updatesSubtitle": "Atualizações",
"patchedSubtitle": "Aplicações Modificadas",
"changeLaterSubtitle": "Podes modificar esta definição mais tarde.",
@@ -67,7 +67,7 @@
"widgetTitle": "Modificador",
"patchButton": "Modificar",
"armv7WarningDialogText": "Fazer modificações numa aplicação num dispositivo com processador ARMv7 ainda não é suportada e poderá falhar. Continuar na mesma?",
"removedPatchesWarningDialogText": "As seguintes modificações foram removidos desde a última vez que os utilizaste.\n\n${patches}\n\nContinuar na mesma?",
"removedPatchesWarningDialogText": "As seguintes modificações foram removidas desde a última vez que as utilizaste.\n\n${patches}\n\nContinuar na mesma?",
"requiredOptionDialogText": "Algumas opções das Modificações precisam ser definidas."
},
"appSelectorCard": {
@@ -107,7 +107,9 @@
"newPatches": "Novas modificações",
"patches": "Modificações",
"doneButton": "Concluído",
"defaultChip": "Predefinição",
"defaultTooltip": "Selecionar todas as modificações padrão",
"noneChip": "Nenhum",
"noneTooltip": "Desselecionar todas as modificações",
"loadPatchesSelection": "Carregar a seleção de modificações",
"noSavedPatches": "Não há nenhuma modificação guardada para a aplicação selecionada.\nPrima Concluído para guardar a seleção atual.",
@@ -162,6 +164,7 @@
"debugSectionTitle": "Depuração",
"advancedSectionTitle": "Opções avançadas",
"exportSectionTitle": "Importar e exportar",
"dataSectionTitle": "Fontes de dados",
"themeModeLabel": "Tema da aplicação",
"systemThemeLabel": "Sistema",
"lightThemeLabel": "Claro",
@@ -169,18 +172,20 @@
"dynamicThemeLabel": "O Teu Material",
"dynamicThemeHint": "Aproveite uma experiência mais próxima do tema do seu dispositivo",
"languageLabel": "Idioma",
"languageUpdated": "Idioma atualizado",
"englishOption": "Inglês",
"sourcesLabel": "Fontes",
"sourcesLabelHint": "Configurar a fonte de correções e integrações",
"sourcesLabel": "Fontes alternativas",
"sourcesLabelHint": "Configurar as fontes alternativas para as Modificações ReVanced e Integrações ReVanced",
"sourcesIntegrationsLabel": "Fonte das Integrações",
"useAlternativeSources": "Usar fontes alternativas",
"useAlternativeSourcesHint": "Usar fontes alternativas para as Modificações ReVanced e as Integrações ReVanced em vez da API",
"sourcesResetDialogTitle": "Repor",
"sourcesResetDialogText": "Tens a certeza de que pretendes repor os valores predefinidos das fontes?",
"apiURLResetDialogText": "Tens a certeza de que pretendes repor a URL da API para o seu valor predefinido?",
"sourcesUpdateNote": "Nota: As Modificações serão atualizados automaticamente para a versão mais recente.\n\nIsto revelará o seu endereço IP ao servidor.",
"sourcesUpdateNote": "Nota: Esta ação descarrega automaticamente as Modificações do ReVanced e as Integrações do ReVanced das fontes alternativas.\n\nIsto irá conectar-te com a fonte alternativa.",
"apiURLLabel": "URL da API",
"apiURLHint": "Configurar o URL da API para usar",
"apiURLHint": "Configurar a URL do API do Gestor ReVanced",
"selectApiURL": "URL da API",
"hostRepositoryLabel": "API do Repositório",
"orgPatchesLabel": "Organização de Modificações",
"sourcesPatchesLabel": "Fonte das Modificações",
"orgIntegrationsLabel": "Organização de Integrações",
@@ -266,12 +271,7 @@
"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"
"widgetTitle": "Contribuidores"
},
"installErrorDialog": {
"mount_version_mismatch": "Versão incompatível",
@@ -287,7 +287,7 @@
"status_failure_timeout": "Tempo de instalação esgotado",
"status_unknown": "Falha na instalação",
"mount_version_mismatch_description": "A instalação falhou devido ao facto da aplicação instalada ser uma versão diferente da aplicação modificada.\n\nInstala a versão da aplicação que estás a montar e tenta novamente.",
"mount_no_root_description": "A instalação falhou devido ao facto de o acesso root não ter sido concedido.\n\nConceda o acesso root ao ReVanced Manager e tente novamente.",
"mount_no_root_description": "A instalação falhou devido ao facto de o acesso root não ter sido atribuído.\n\nAtribua o acesso root ao ReVanced Manager e tente novamente.",
"mount_missing_installation_description": "A instalação falhou devido ao facto da aplicação não modificada não estar instalada neste dispositivo para poder ser montada sobre o mesmo.\n\nInstale a aplicação não corrigida antes de montar e tente novamente.",
"status_failure_timeout_description": "A instalação demorou demasiado tempo para terminar.\n\nGostarias de tentar novamente?",
"status_failure_storage_description": "A instalação falhou devido ao armazenamento insuficiente.\n\nLiberta algum espaço e tenta novamente.",

View File

@@ -72,7 +72,7 @@
},
"appSelectorCard": {
"widgetTitle": "Selectați o aplicație",
"widgetTitleSelected": "Aplicația selectata",
"widgetTitleSelected": "Aplicația selectată",
"widgetSubtitle": "Nici o aplicație selectată",
"noAppsLabel": "Nu s-au găsit aplicații",
"currentVersion": "Actual",
@@ -107,7 +107,9 @@
"newPatches": "Patch-uri noi",
"patches": "Patch-uri",
"doneButton": "Finalizat",
"defaultChip": "Implicit",
"defaultTooltip": "Selectați toate patch-urile implicite",
"noneChip": "Niciunul",
"noneTooltip": "Deselectați toate patch-urile",
"loadPatchesSelection": "Importă selecția patch-urilor",
"noSavedPatches": "Nu există patch-uri salvate pentru aplicația selectată.\nApăsați Terminat pentru a salva selecția curentă.",
@@ -162,6 +164,7 @@
"debugSectionTitle": "Depanare",
"advancedSectionTitle": "Avansat",
"exportSectionTitle": "Importă & exportă",
"dataSectionTitle": "Surse de date",
"themeModeLabel": "Tema aplicației",
"systemThemeLabel": "Sistem",
"lightThemeLabel": "Luminoasă",
@@ -169,18 +172,20 @@
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Bucură-te de o experiență mai apropiată de dispozitivul tău",
"languageLabel": "Limbă",
"languageUpdated": "Limbă actualizată",
"englishOption": "Engleză",
"sourcesLabel": "Surse",
"sourcesLabelHint": "Configuraţi sursa patch-urilor şi a integrărilor",
"sourcesLabel": "Surse alternative",
"sourcesLabelHint": "Configurați sursele alternative pentru patch-urile ReVanced și Integrările ReVanced",
"sourcesIntegrationsLabel": "Sursă integrări",
"useAlternativeSources": "Folosiți surse alternative",
"useAlternativeSourcesHint": "Utilizați surse alternative pentru patch-urile revanced și Integrările ReVanced în loc de API",
"sourcesResetDialogTitle": "Resetează",
"sourcesResetDialogText": "Sunteți sigur că doriți să resetați sursele la valorile lor implicite?",
"apiURLResetDialogText": "Sunteţi sigur că doriţi să resetaţi URL-ul API la valoarea sa implicită?",
"sourcesUpdateNote": "Notă: Patch-urile vor fi actualizate automat la cea mai recentă versiune.\n\nAcest lucru va dezvălui adresa dumneavoastră de IP pe server.",
"sourcesUpdateNote": "Notă: Acest lucru va descărca automat patch-urile ReVanced și Integrările ReVanced din sursele alternative.\n\nAceasta vă va conecta la sursa alternativă.",
"apiURLLabel": "API URL",
"apiURLHint": "Configurați URL-ul API pentru utilizare",
"apiURLHint": "Configurați URL-ul API al Managerului ReVanced",
"selectApiURL": "API URL",
"hostRepositoryLabel": "API-ul Repository",
"orgPatchesLabel": "Organizarea patch-urilor",
"sourcesPatchesLabel": "Sursă patch-uri",
"orgIntegrationsLabel": "Organizare integrări",
@@ -266,12 +271,7 @@
"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"
"widgetTitle": "Contribuitori"
},
"installErrorDialog": {
"mount_version_mismatch": "Versiune nepotrivită",

View File

@@ -7,7 +7,7 @@
"enabledLabel": "Включено",
"disabledLabel": "Отключено",
"installed": "Установлено: ${version}",
"suggested": "Предложено: ${version}",
"suggested": "Рекомендуемая: ${version}",
"yesButton": "Да",
"noButton": "Нет",
"warning": "Внимание",
@@ -16,6 +16,8 @@
"noShowAgain": "Не показывать снова",
"add": "Добавить",
"remove": "Удалить",
"showChangelogButton": "Показать список изменений",
"showUpdateButton": "Показать обновление",
"navigationView": {
"dashboardTab": "Панель инструментов",
"patcherTab": "Патчер",
@@ -26,14 +28,25 @@
"widgetTitle": "Панель инструментов",
"updatesSubtitle": "Обновления",
"patchedSubtitle": "Пропатченные приложения",
"changeLaterSubtitle": "Вы можете изменить это в настройках позже.",
"noUpdates": "Нет доступных обновлений",
"WIP": "В процессе...",
"noInstallations": "Пропатченные приложения не установлены",
"installUpdate": "Продолжить установку обновления?",
"updateSheetTitle": "Обновить Revanced Менеджер",
"updateDialogTitle": "Доступно обновление",
"updatePatchesSheetTitle": "Обновить патчи ReVanced",
"updateChangelogTitle": "Список изменений",
"updateDialogText": "Доступно обновление для ${file}.\n\nТекущая установленная версия ${version}.",
"downloadConsentDialogTitle": "Скачать необходимые файлы?",
"downloadConsentDialogText": "Для правильной работы ReVanced Менеджера нужно загрузить необходимые файлы.",
"downloadConsentDialogText2": "Это соединит вас с ${url}.",
"checkUpdateDialogTitle": "Проверить наличие обновлений?",
"checkUpdateDialogText": "Хотите, чтобы ReVanced Менеджер автоматически проверял наличие обновлений?",
"notificationTitle": "Обновление загружено",
"notificationText": "Нажмите, чтобы установить обновление",
"downloadingMessage": "Загрузка обновления...",
"downloadedMessage": "Обновление загружено",
"installingMessage": "Установка обновления...",
"errorDownloadMessage": "Не удалось загрузить обновление",
"errorInstallMessage": "Не удалось установить обновление",
@@ -53,12 +66,18 @@
"patcherView": {
"widgetTitle": "Патчер",
"patchButton": "Патч",
"armv7WarningDialogText": "Патчинг на устройствах ARMv7 пока не поддерживается и может привести к сбоям. Все равно продолжить?",
"removedPatchesWarningDialogText": "Следующие патчи были удалены с момента их последнего использования.\n\n ${patches}\n\n Все равно продолжить?",
"requiredOptionDialogText": "Некоторые параметры патчей должны быть обязательно установлены."
},
"appSelectorCard": {
"widgetTitle": "Выбрать приложение",
"widgetTitleSelected": "Выбранное приложение",
"widgetSubtitle": "Приложение не выбрано",
"noAppsLabel": "Приложения не найдены",
"currentVersion": "Текущая",
"suggestedVersion": "Предложенная"
"suggestedVersion": "Предложенная",
"anyVersion": "Любая версия"
},
"patchSelectorCard": {
"widgetTitle": "Выбор патчей",
@@ -71,11 +90,15 @@
"widgetSubtitle": "Мы онлайн!"
},
"appSelectorView": {
"viewTitle": "Выбрать приложение",
"searchBarHint": "Поиск приложения",
"storageButton": "Хранилище",
"selectFromStorageButton": "Выбрать из хранилища",
"errorMessage": "Невозможно использовать выбранное приложение",
"downloadToast": "Функция загрузки пока недоступна",
"featureNotAvailable": "Функция не реализована"
"requireSuggestedAppVersionDialogText": "Выбранная Вами версия приложения не соответствует предлагаемой, что может привести к непредвиденным проблемам. Пожалуйста, используйте предложенную версию.\n\n Выбранная версия: ${selected}\n Предлагаемая версия: ${suggested}.\n\nЧтобы продолжить, отключите в настройках параметр «Требовать рекомендуемую версию приложения».",
"featureNotAvailable": "Функция не реализована",
"featureNotAvailableText": "Это приложение представляет собой разделенный APK-файл, и его можно пропатчить и корректно установить только путем монтирования с правами root. Однако Вы можете пропатчить и установить полный APK-файл, выбрав его из хранилища."
},
"patchesSelectorView": {
"viewTitle": "Выбор патчей",
@@ -84,7 +107,9 @@
"newPatches": "Новые патчи",
"patches": "Патчи",
"doneButton": "Готово",
"defaultChip": "По умолчанию",
"defaultTooltip": "Выбрать все стандартные патчи",
"noneChip": "Никакие",
"noneTooltip": "Снять выбор всех патчей",
"loadPatchesSelection": "Загрузка выборки патчей",
"noSavedPatches": "Нет сохраненной выборки патчей для выбранного приложения.\nНажмите \"Готово\" для сохранения текущего выбора.",
@@ -110,11 +135,13 @@
"unsupportedDialogText": "Выбор этого патча может привести к ошибкам во время патчинга.\n\nВерсия приложения: ${packageVersion}\nПоддерживаемые версии:\n${supportedVersions}",
"unsupportedPatchVersion": "Патч не поддерживается этой версией приложения.",
"unsupportedRequiredOption": "Этот патч содержит обязательную опцию, не поддерживаемую этим приложением",
"patchesChangeWarningDialogText": "Рекомендуется использовать выборку патчей и параметры по умолчанию. Их изменение может привести к неожиданным проблемам.\n\n Вам необходимо включить «Разрешить изменение выборки патчей» в настройках, прежде чем изменять какие-либо выборки патчей.",
"patchesChangeWarningDialogButton": "Использовать стандартный набор"
},
"installerView": {
"widgetTitle": "Установщик",
"installType": "Выберите тип установки",
"installTypeDescription": "Выберите тип установки, чтобы продолжить.",
"installButton": "Установить",
"installRootType": "Монтировать",
"installNonRootType": "Обычный",
@@ -132,11 +159,12 @@
},
"settingsView": {
"widgetTitle": "Настройки",
"appearanceSectionTitle": "Оформление",
"appearanceSectionTitle": "Внешний вид",
"teamSectionTitle": "Команда",
"debugSectionTitle": "Отладка",
"advancedSectionTitle": "Дополнительные",
"exportSectionTitle": "Импорт и экспорт",
"dataSectionTitle": "Источники данных",
"themeModeLabel": "Тема приложения",
"systemThemeLabel": "Системная",
"lightThemeLabel": "Светлая",
@@ -144,18 +172,20 @@
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Наслаждайтесь темой Вашего устройства",
"languageLabel": "Язык",
"languageUpdated": "Язык обновлен",
"englishOption": "Английский",
"sourcesLabel": "Источники",
"sourcesLabelHint": "Настройка источника патчей и интеграций",
"sourcesLabel": "Альтернативные источники",
"sourcesLabelHint": "Настроить альтернативные источники для патчей и интеграций ReVanced",
"sourcesIntegrationsLabel": "Репозиторий интеграций",
"useAlternativeSources": "Использовать альтернативные источники",
"useAlternativeSourcesHint": "Использовать альтернативные источники для патчей и интеграций ReVanced вместо API",
"sourcesResetDialogTitle": "Сброс",
"sourcesResetDialogText": "Вы уверены, что хотите сбросить ваши источники до значений по умолчанию?",
"apiURLResetDialogText": "Вы уверены, что хотите сбросить API-ссылку до значения по умолчанию?",
"sourcesUpdateNote": "Примечание: патчи будут обновляться автоматически до последней версии.\nЭто действие сделает доступным ваш IP адрес для сервера.",
"sourcesUpdateNote": "Примечание: при этом будут автоматически загружены патчи и интеграции ReVanced из альтернативных источников.\n\nЭто соединит вас с альтернативным источником.",
"apiURLLabel": "API-ссылка",
"apiURLHint": "Настройка URL-адреса API для использования",
"apiURLHint": "Настройте URL-адрес API ReVanced Менеджера",
"selectApiURL": "API-ссылка",
"hostRepositoryLabel": "API репозитория",
"orgPatchesLabel": "Организация патчей",
"sourcesPatchesLabel": "Репозиторий патчей",
"orgIntegrationsLabel": "Организация интеграций",
@@ -169,6 +199,8 @@
"disablePatchesSelectionWarningText": "Вы собираетесь выключить измененную выборку патчей.\nБудет восстановлен стандартный выбор патчей.\n\nВсе равно выключить?",
"autoUpdatePatchesLabel": "Автообновление патчей",
"autoUpdatePatchesHint": "Автоматически обновлять патчи до последней версии",
"showUpdateDialogLabel": "Показать диалог обновления",
"showUpdateDialogHint": "Показывать диалоговое окно, когда доступно новое обновление",
"universalPatchesLabel": "Показать универсальные патчи",
"universalPatchesHint": "Отобразить все приложения и универсальные патчи (может замедлить список отображения приложений)",
"versionCompatibilityCheckLabel": "Проверка совместимости версий",
@@ -239,12 +271,7 @@
"updateNotImplemented": "Эта возможность ещё не реализована"
},
"contributorsView": {
"widgetTitle": "Соучастники проекта",
"patcherContributors": "Соучастники патчера",
"patchesContributors": "Соучастники патчей",
"integrationsContributors": "Соучастники интеграций",
"cliContributors": "Соучастники CLI",
"managerContributors": "Соучастники Менеджера"
"widgetTitle": "Соучастники проекта"
},
"installErrorDialog": {
"mount_version_mismatch": "Несовпадение версий",

View File

@@ -102,12 +102,10 @@
"darkThemeLabel": "Tmavý režim",
"dynamicThemeHint": "Užite si tému bližíe prispôsobenú vášmu zariadeniu",
"languageLabel": "Jazyk",
"sourcesLabel": "Zdroje",
"sourcesIntegrationsLabel": "Zdroj integrácie",
"sourcesResetDialogTitle": "Resetovať",
"apiURLLabel": "URL API",
"selectApiURL": "URL API",
"hostRepositoryLabel": "API repozitára",
"orgPatchesLabel": "Autor záplaty",
"sourcesPatchesLabel": "Zdroj záplaty",
"orgIntegrationsLabel": "Autor integrácie",
@@ -148,12 +146,7 @@
"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"
"widgetTitle": "Prispievatelia"
},
"installErrorDialog": {}
}

View File

@@ -88,12 +88,10 @@
"darkThemeLabel": "Temni videz",
"dynamicThemeHint": "Videz je prilagojen za vašo napravo",
"languageLabel": "Jezik",
"sourcesLabel": "Viri",
"sourcesIntegrationsLabel": "Vir integracij",
"sourcesResetDialogTitle": "Ponastavi",
"apiURLLabel": "URL API-ja",
"selectApiURL": "URL API-ja",
"hostRepositoryLabel": "API repozitorija",
"orgPatchesLabel": "Organizacija popravkov",
"sourcesPatchesLabel": "Vir popravkov",
"orgIntegrationsLabel": "Organizacija integracij",
@@ -128,12 +126,7 @@
"updateNotImplemented": "Ta funkcionalnost še ni implementirana"
},
"contributorsView": {
"widgetTitle": "Prispevali so",
"patcherContributors": "Za Popravilnik so prispevali",
"patchesContributors": "Popravke so prispevali",
"integrationsContributors": "K integraciji so prispevali",
"cliContributors": "Za CLI so prispevali",
"managerContributors": "K Upravitelju so prispevali"
"widgetTitle": "Prispevali so"
},
"installErrorDialog": {}
}

View File

@@ -16,6 +16,8 @@
"noShowAgain": "Ne prikazuj ponovo",
"add": "Dodaj",
"remove": "Ukloni",
"showChangelogButton": "Vidi evidenciju promena",
"showUpdateButton": "Vidi ažuriranje",
"navigationView": {
"dashboardTab": "Kontrolna tabla",
"patcherTab": "Pečer",
@@ -26,14 +28,25 @@
"widgetTitle": "Kontrolna tabla",
"updatesSubtitle": "Ažuriranja",
"patchedSubtitle": "Pečovane aplikacije",
"changeLaterSubtitle": "Ovo možete kasnije da promenite u podešavanjima.",
"noUpdates": "Nema dostupnih ažuriranja",
"WIP": "Radovi u toku…",
"noInstallations": "Nema instaliranih pečovanih aplikacija",
"installUpdate": "Nastaviti sa instalacijom ažuriranja?",
"updateSheetTitle": "Ažuriranje ReVanced Managera",
"updateDialogTitle": "Novo ažuriranje je dostupno",
"updatePatchesSheetTitle": "Ažuriranje ReVanced pečeva",
"updateChangelogTitle": "Evidencija promena",
"updateDialogText": "Novo ažuriranje je dostupno za ${file}.\n\nTrenutno instalirana verzija je ${version}.",
"downloadConsentDialogTitle": "Preuzeti neophodne fajlove?",
"downloadConsentDialogText": "ReVanced Manager mora da preuzme neophodne fajlove da bi ispravno radio.",
"downloadConsentDialogText2": "Ovo će vas povezati sa ${url}.",
"checkUpdateDialogTitle": "Provera ažuriranja?",
"checkUpdateDialogText": "Želite li da ReVanced Manager automatski proverava da li postoje ažuriranja?",
"notificationTitle": "Ažuriranje je preuzeto",
"notificationText": "Dodirnite da biste instalirali ažuriranje",
"downloadingMessage": "Preuzimanje ažuriranja…",
"downloadedMessage": "Ažuriranje je preuzeto",
"installingMessage": "Instaliranje ažuriranja…",
"errorDownloadMessage": "Nije moguće preuzeti ažuriranje",
"errorInstallMessage": "Nije moguće instalirati ažuriranje",
@@ -53,15 +66,21 @@
"patcherView": {
"widgetTitle": "Pečer",
"patchButton": "Pečuj",
"armv7WarningDialogText": "Pečovanje na ARMv7 uređajima još uvek nije podržano i možda neće uspeti. Ipak nastaviti?",
"removedPatchesWarningDialogText": "Sledeći pečevi su uklonjeni od poslednjeg puta kada ste ih koristili.\n\n${patches}\n\nIpak nastaviti?",
"requiredOptionDialogText": "Neke opcije moraju biti podešene."
},
"appSelectorCard": {
"widgetTitle": "Izaberi aplikaciju",
"widgetTitleSelected": "Izabrana aplikacija",
"widgetSubtitle": "Nije izabrana nijedna aplikacija",
"noAppsLabel": "Nijedna aplikacija nije pronađena",
"currentVersion": "Trenutna verzija",
"suggestedVersion": "Preporučena verzija"
"suggestedVersion": "Preporučena verzija",
"anyVersion": "Sve verzije"
},
"patchSelectorCard": {
"widgetTitle": "Izaberite pečeve",
"widgetTitle": "Izaberi pečeve",
"widgetTitleSelected": "Izabrani pečevi",
"widgetSubtitle": "Prvo izaberite aplikaciju",
"widgetEmptySubtitle": "Nema izabranih pečeva"
@@ -71,11 +90,15 @@
"widgetSubtitle": "Onlajn smo!"
},
"appSelectorView": {
"viewTitle": "Izaberite aplikaciju",
"searchBarHint": "Pretražite aplikaciju",
"storageButton": "Memorija",
"selectFromStorageButton": "Izaberi iz memorije",
"errorMessage": "Nije moguće koristiti izabranu aplikaciju",
"downloadToast": "Preuzimanje trenutno nije dostupno",
"featureNotAvailable": "Funkcija nije implementirana"
"requireSuggestedAppVersionDialogText": "Verzija aplikacije koju ste izabrali nije preporučena, što može dovesti do neočekivanih problema. Izaberite preporučenu verziju.\n\nIzabrana verzija: v${selected}\nPreporučena verzija: v${suggested}\n\nDa biste ipak nastavili, onemogućite opciju „Zahtevaj preporučenu verziju aplikacije” u podešavanjima.",
"featureNotAvailable": "Funkcija nije implementirana",
"featureNotAvailableText": "Ova aplikacija je podeljeni APK i može se pečovati i pouzdano instalirati samo montiranjem sa root dozvolama. Međutim, možete da pečujete i instalirate potpuni APK tako što ćete ga izabrati iz memorije."
},
"patchesSelectorView": {
"viewTitle": "Izaberite pečeve",
@@ -84,7 +107,9 @@
"newPatches": "Novi pečevi",
"patches": "Pečevi",
"doneButton": "Gotovo",
"defaultChip": "Podrazumevani",
"defaultTooltip": "Izaberi sve podrazumevane pečeve",
"noneChip": "Nijedan",
"noneTooltip": "Poništi izbor svih pečeva",
"loadPatchesSelection": "Učitaj izbor pečeva",
"noSavedPatches": "Za izabranu aplikaciju nema sačuvanog izbora pečeva.\nPritisnite „Gotovo” da biste sačuvali trenutni izbor.",
@@ -110,11 +135,13 @@
"unsupportedDialogText": "Izborom ovog peča može doći do grešaka prilikom pečovanja.\n\nVerzija aplikacije: ${packageVersion}\nPodržane verzije:\n${supportedVersions}",
"unsupportedPatchVersion": "Peč nije primenljiv na ovu verziju aplikacije.",
"unsupportedRequiredOption": "Ovaj peč sadrži obaveznu opciju koju ova aplikacija ne podržava",
"patchesChangeWarningDialogText": "Preporučuje se da koristite podrazumevani izbor i opcije pečeva. Njihova promena može dovesti do neočekivanih problema.\n\nMoraćete da uključite „Dozvoli promenu izbora pečeva” u podešavanjima pre nego što promenite bilo koji izbor pečeva.",
"patchesChangeWarningDialogButton": "Koristi podrazumevani izbor"
},
"installerView": {
"widgetTitle": "Program za instalaciju",
"installType": "Izbor tipa instalacije",
"installTypeDescription": "Izaberite tip instalacije da biste nastavili.",
"installButton": "Instaliraj",
"installRootType": "Privilegovana",
"installNonRootType": "Obična",
@@ -137,6 +164,7 @@
"debugSectionTitle": "Otklanjanje grešaka",
"advancedSectionTitle": "Napredno",
"exportSectionTitle": "Uvoz i izvoz",
"dataSectionTitle": "Izvori podataka",
"themeModeLabel": "Tema aplikacije",
"systemThemeLabel": "Sistemska",
"lightThemeLabel": "Svetla",
@@ -144,18 +172,20 @@
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Uživajte u temi koja se prilagođava vašem uređaju",
"languageLabel": "Jezik",
"languageUpdated": "Jezik je ažuriran",
"englishOption": "engleski",
"sourcesLabel": "Izvori",
"sourcesLabelHint": "Podesite izvor pečeva i integracija",
"sourcesLabel": "Alternativni izvori",
"sourcesLabelHint": "Konfigurišite alternativne izvore za ReVanced pečeve i ReVanced integracije",
"sourcesIntegrationsLabel": "Izvor integracija",
"useAlternativeSources": "Koristi alternativne izvore",
"useAlternativeSourcesHint": "Korišćenje alternativnih izvora za ReVanced pečeve i ReVanced integracije umesto API-ja",
"sourcesResetDialogTitle": "Resetovanje",
"sourcesResetDialogText": "Želite li zaista da vratite izvore na podrazumevane vrednosti?",
"apiURLResetDialogText": "Želite li zaista da vratite URL API-ja na podrazumevanu vrednost?",
"sourcesUpdateNote": "Napomena: pečevi će se automatski ažurirati na najnoviju verziju. \n\nOvim ćete otkriti svoju IP adresu serveru.",
"sourcesUpdateNote": "Napomena: Ovo će automatski preuzeti ReVanced pečeve i ReVanced integracije iz alternativnih izvora.\n\nOvo će vas povezati sa alternativnim izvorom.",
"apiURLLabel": "URL API-ja",
"apiURLHint": "Podesite URL API-ja za korišćenje",
"apiURLHint": "Konfigurišite URL API-ja za ReVanced Manager",
"selectApiURL": "URL API-ja",
"hostRepositoryLabel": "Repozitorijum API-ja",
"orgPatchesLabel": "Organizacija za pečeve",
"sourcesPatchesLabel": "Izvor pečeva",
"orgIntegrationsLabel": "Organizacija za integracije",
@@ -169,6 +199,8 @@
"disablePatchesSelectionWarningText": "Upravo ćete da onemogućite promenu izbora pečeva.\nPodrazumevani izbor pečeva će biti vraćen.\n\nIpak onemogućiti?",
"autoUpdatePatchesLabel": "Automatski ažuriraj pečeve",
"autoUpdatePatchesHint": "Instalira najnoviju verziju pečeva automatski",
"showUpdateDialogLabel": "Prikaži dijalog o ažuriranju",
"showUpdateDialogHint": "Prikazivanje dijaloga kada je novo ažuriranje dostupno",
"universalPatchesLabel": "Prikaži univerzalne pečeve",
"universalPatchesHint": "Prikazuje sve aplikacije i univerzalne pečeve (može da uspori listu aplikacija)",
"versionCompatibilityCheckLabel": "Provera kompatibilnosti verzije",
@@ -194,12 +226,12 @@
"resetStoredPatchesDialogTitle": "Resetovati izbor pečeva?",
"resetStoredPatchesDialogText": "Podrazumevani izbor pečeva će biti vraćen.",
"resetStoredPatches": "Izbor pečeva je resetovan",
"resetStoredOptionsLabel": "Resetuj opcije peča",
"resetStoredOptionsHint": "Resetujte sve opcije peča",
"resetStoredOptionsDialogTitle": "Resetovati opcije peča?",
"resetStoredOptionsDialogText": "Resetovanjem opcija peča uklanjate sve sačuvane opcije.",
"resetStoredOptionsLabel": "Resetuj opcije pečeva",
"resetStoredOptionsHint": "Resetujte sve opcije pečeva",
"resetStoredOptionsDialogTitle": "Resetovati opcije pečeva?",
"resetStoredOptionsDialogText": "Resetovanjem opcija pečeva uklanjate sve sačuvane opcije.",
"resetStoredOptions": "Opcije su resetovane",
"deleteLogsLabel": "Obriši evidencije",
"deleteLogsLabel": "Izbriši evidencije",
"deleteLogsHint": "Izbrišite prikupljene evidencije ReVanced Managera",
"deletedLogs": "Evidencije su izbrisane",
"regenerateKeystoreLabel": "Generiši novo skladište ključeva",
@@ -220,7 +252,7 @@
"keystoreSelectorErrorMessage": "Nije moguće koristiti izabrani fajl sa skladištem ključeva"
},
"appInfoView": {
"widgetTitle": "Informacije o aplikaciji",
"widgetTitle": "O aplikaciji",
"openButton": "Otvori",
"uninstallButton": "Deinstaliraj",
"unmountButton": "Demontiraj",
@@ -239,12 +271,7 @@
"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"
"widgetTitle": "Saradnici"
},
"installErrorDialog": {
"mount_version_mismatch": "Verzija se ne poklapa",

View File

@@ -16,6 +16,8 @@
"noShowAgain": "Не приказуј поново",
"add": "Додај",
"remove": "Уклони",
"showChangelogButton": "Види евиденцију промена",
"showUpdateButton": "Види ажурирање",
"navigationView": {
"dashboardTab": "Контролна табла",
"patcherTab": "Печер",
@@ -26,14 +28,25 @@
"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": "Није могуће инсталирати ажурирање",
@@ -53,15 +66,21 @@
"patcherView": {
"widgetTitle": "Печер",
"patchButton": "Печуј",
"armv7WarningDialogText": "Печовање на ARMv7 уређајима још увек није подржано и можда неће успети. Ипак наставити?",
"removedPatchesWarningDialogText": "Следећи печеви су уклоњени од последњег пута када сте их користили.\n\n${patches}\n\nИпак наставити?",
"requiredOptionDialogText": "Неке опције морају бити подешене."
},
"appSelectorCard": {
"widgetTitle": "Изабери апликацију",
"widgetTitleSelected": "Изабрана апликација",
"widgetSubtitle": "Није изабрана ниједна апликација",
"noAppsLabel": "Ниједна апликација није пронађена",
"currentVersion": "Тренутна верзија",
"suggestedVersion": "Препоручена верзија"
"suggestedVersion": "Препоручена верзија",
"anyVersion": "Све верзије"
},
"patchSelectorCard": {
"widgetTitle": "Изаберите печеве",
"widgetTitle": "Изабери печеве",
"widgetTitleSelected": "Изабрани печеви",
"widgetSubtitle": "Прво изаберите апликацију",
"widgetEmptySubtitle": "Нема изабраних печева"
@@ -71,11 +90,15 @@
"widgetSubtitle": "Онлајн смо!"
},
"appSelectorView": {
"viewTitle": "Изаберите апликацију",
"searchBarHint": "Претражите апликацију",
"storageButton": "Из меморије",
"selectFromStorageButton": "Изабери из меморије",
"errorMessage": "Није могуће користити изабрану апликацију",
"downloadToast": "Преузимање тренутно није доступно",
"featureNotAvailable": "Функција није имплементирана"
"requireSuggestedAppVersionDialogText": "Верзија апликације коју сте изабрали није препоручена, што може довести до неочекиваних проблема. Изаберите препоручену верзију.\n\nИзабрана верзија: ${selected}\nПрепоручена верзија: ${suggested}\n\nДа бисте ипак наставили, онемогућите опцију „Захтевај препоручену верзију апликације” у подешавањима.",
"featureNotAvailable": "Функција није имплементирана",
"featureNotAvailableText": "Ова апликација је подељени APK и може се печовати и поуздано инсталирати само монтирањем са root дозволама. Међутим, можете да печујете и инсталирате потпуни APK тако што ћете га изабрати из меморије."
},
"patchesSelectorView": {
"viewTitle": "Изаберите печеве",
@@ -84,7 +107,9 @@
"newPatches": "Нови печеви",
"patches": "Печеви",
"doneButton": "Готово",
"defaultChip": "Подразумевани",
"defaultTooltip": "Изабери све подразумеване печеве",
"noneChip": "Ниједан",
"noneTooltip": "Поништи избор свих печева",
"loadPatchesSelection": "Учитај избор печева",
"noSavedPatches": "За изабрану апликацију нема сачуваног избора печева.\nПритисните „Готово” да бисте сачували тренутни избор.",
@@ -110,11 +135,13 @@
"unsupportedDialogText": "Избором овог печа може доћи до грешака приликом печовања.\n\nВерзија апликације: ${packageVersion}\nПодржане верзије:\n${supportedVersions}",
"unsupportedPatchVersion": "Печ није применљив на ову верзију апликације.",
"unsupportedRequiredOption": "Овај печ садржи обавезну опцију коју ова апликација не подржава",
"patchesChangeWarningDialogText": "Препоручује се да користите подразумевани избор и опције печева. Њихова промена може довести до неочекиваних проблема.\n\nМораћете да укључите „Дозволи промену избора печева” у подешавањима пре него што промените било који избор печева.",
"patchesChangeWarningDialogButton": "Користи подразумевани избор"
},
"installerView": {
"widgetTitle": "Програм за инсталацију",
"installType": "Избор типа инсталације",
"installTypeDescription": "Изаберите тип инсталације да бисте наставили.",
"installButton": "Инсталирај",
"installRootType": "Привилегована",
"installNonRootType": "Обична",
@@ -137,6 +164,7 @@
"debugSectionTitle": "Отклањање грешака",
"advancedSectionTitle": "Напредно",
"exportSectionTitle": "Увоз и извоз",
"dataSectionTitle": "Извори података",
"themeModeLabel": "Тема апликације",
"systemThemeLabel": "Системска",
"lightThemeLabel": "Светла",
@@ -144,18 +172,20 @@
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Уживајте у теми која се прилагођава вашем уређају",
"languageLabel": "Језик",
"languageUpdated": "Језик је ажуриран",
"englishOption": "енглески",
"sourcesLabel": "Извори",
"sourcesLabelHint": "Подесите извор печева и интеграција",
"sourcesLabel": "Алтернативни извори",
"sourcesLabelHint": "Конфигуришите алтернативне изворе за ReVanced печеве и ReVanced интеграције",
"sourcesIntegrationsLabel": "Извор интеграција",
"useAlternativeSources": "Користи алтернативне изворе",
"useAlternativeSourcesHint": "Коришћење алтернативних извора за ReVanced печеве и ReVanced интеграције уместо API-ја",
"sourcesResetDialogTitle": "Ресетовање",
"sourcesResetDialogText": "Желите ли заиста да вратите изворе на подразумеване вредности?",
"apiURLResetDialogText": "Желите ли заиста да вратите URL API-ја на подразумевану вредност?",
"sourcesUpdateNote": "Напомена: печеви ће се аутоматски ажурирати на најновију верзију. \n\nОвим ћете открити своју IP адресу серверу.",
"sourcesUpdateNote": "Напомена: Ово ће аутоматски преузети ReVanced печеве и ReVanced интеграције из алтернативних извора.\n\nОво ће вас повезати са алтернативним извором.",
"apiURLLabel": "URL API-ја",
"apiURLHint": "Подесите URL API-ја за коришћење",
"apiURLHint": "Конфигуришите URL API-ја за ReVanced Manager",
"selectApiURL": "URL API-ја",
"hostRepositoryLabel": "Репозиторијум API-ја",
"orgPatchesLabel": "Организација за печеве",
"sourcesPatchesLabel": "Извор печева",
"orgIntegrationsLabel": "Организација за интеграције",
@@ -169,6 +199,8 @@
"disablePatchesSelectionWarningText": "Управо ћете да онемогућите промену избора печева.\nПодразумевани избор печева ће бити враћен.\n\nИпак онемогућити?",
"autoUpdatePatchesLabel": "Аутоматски ажурирај печеве",
"autoUpdatePatchesHint": "Инсталира најновију верзију печева аутоматски",
"showUpdateDialogLabel": "Прикажи дијалог о ажурирању",
"showUpdateDialogHint": "Приказивање дијалога када је ново ажурирање доступно",
"universalPatchesLabel": "Прикажи универзалне печеве",
"universalPatchesHint": "Приказује све апликације и универзалне печеве (може да успори листу апликација)",
"versionCompatibilityCheckLabel": "Провера компатибилности верзије",
@@ -194,12 +226,12 @@
"resetStoredPatchesDialogTitle": "Ресетовати избор печева?",
"resetStoredPatchesDialogText": "Подразумевани избор печева ће бити враћен.",
"resetStoredPatches": "Избор печева је ресетован",
"resetStoredOptionsLabel": "Ресетуј опције печа",
"resetStoredOptionsHint": "Ресетујте све опције печа",
"resetStoredOptionsDialogTitle": "Ресетовати опције печа?",
"resetStoredOptionsDialogText": "Ресетовањем опција печа уклањате све сачуване опције.",
"resetStoredOptionsLabel": "Ресетуј опције печева",
"resetStoredOptionsHint": "Ресетујте све опције печева",
"resetStoredOptionsDialogTitle": "Ресетовати опције печева?",
"resetStoredOptionsDialogText": "Ресетовањем опција печева уклањате све сачуване опције.",
"resetStoredOptions": "Опције су ресетоване",
"deleteLogsLabel": "Обриши евиденције",
"deleteLogsLabel": "Избриши евиденције",
"deleteLogsHint": "Избришите прикупљене евиденције ReVanced Manager-а",
"deletedLogs": "Евиденције су избрисане",
"regenerateKeystoreLabel": "Генериши ново складиште кључева",
@@ -220,7 +252,7 @@
"keystoreSelectorErrorMessage": "Није могуће користити изабрани фајл са складиштем кључева"
},
"appInfoView": {
"widgetTitle": "Информације о апликацији",
"widgetTitle": "О апликацији",
"openButton": "Отвори",
"uninstallButton": "Деинсталирај",
"unmountButton": "Демонтирај",
@@ -239,12 +271,7 @@
"updateNotImplemented": "Ова функција још увек није имплементирана"
},
"contributorsView": {
"widgetTitle": "Сарадници",
"patcherContributors": "Сарадници за Patcher",
"patchesContributors": "Сарадници за печеве",
"integrationsContributors": "Сарадници за интеграције",
"cliContributors": "Сарадници за CLI",
"managerContributors": "Сарадници за Manager"
"widgetTitle": "Сарадници"
},
"installErrorDialog": {
"mount_version_mismatch": "Верзија се не поклапа",

View File

@@ -107,7 +107,9 @@
"newPatches": "Nya patchar",
"patches": "Patchar",
"doneButton": "Klar",
"defaultChip": "Standard",
"defaultTooltip": "Välj alla standardpatchar",
"noneChip": "Inga",
"noneTooltip": "Avmarkera alla patchar",
"loadPatchesSelection": "Ladda patchval",
"noSavedPatches": "Inga sparade patchval för den valda appen.\nTryck på klar för att spara aktuellt val.",
@@ -162,6 +164,7 @@
"debugSectionTitle": "Felsökning",
"advancedSectionTitle": "Avancerat",
"exportSectionTitle": "Importera och exportera",
"dataSectionTitle": "Datakällor",
"themeModeLabel": "Apptema",
"systemThemeLabel": "System",
"lightThemeLabel": "Ljust",
@@ -169,18 +172,20 @@
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Njut av en upplevelse närmare din enhet",
"languageLabel": "Språk",
"languageUpdated": "Språket uppdaterat",
"englishOption": "Engelska",
"sourcesLabel": "Källor",
"sourcesLabelHint": "Konfigurera källan för patchar och integrationer",
"sourcesLabel": "Alternativa källor",
"sourcesLabelHint": "Konfigurera alternativa källor för ReVanced patches och ReVanced integrations",
"sourcesIntegrationsLabel": "Källa för integrationer",
"useAlternativeSources": "Använd alternativa källor",
"useAlternativeSourcesHint": "Använd alternativa källor för ReVanced patches och ReVanced integrationer i stället för API",
"sourcesResetDialogTitle": "Återställ",
"sourcesResetDialogText": "Är du säker på att du vill återställa dina källorna till deras standardvärden?",
"apiURLResetDialogText": "Är du säker att du vill återställa API-webbadressen till standardvärdet?",
"sourcesUpdateNote": "Obs: Patches kommer att uppdateras till den senaste versionen automatiskt.\n\nDetta kommer att avslöja din IP-adress för servern.",
"sourcesUpdateNote": "Obs: Detta kommer automatiskt att ladda ner ReVanced patches och ReVanced integrationer från alternativa källor.\n\nDetta kommer att ansluta dig till den alternativa källan.",
"apiURLLabel": "API-webbadress",
"apiURLHint": "Konfigurera webbadressen till API:et som ska användas",
"apiURLHint": "Konfigurera API-webbadressen för ReVanced-hanterare",
"selectApiURL": "API-webbadress",
"hostRepositoryLabel": "Förvarings-API",
"orgPatchesLabel": "Organisation för patchar",
"sourcesPatchesLabel": "Källa för patchar",
"orgIntegrationsLabel": "Organisation för integrationer",
@@ -266,12 +271,7 @@
"updateNotImplemented": "Denna funktionen har inte lagts till ännu"
},
"contributorsView": {
"widgetTitle": "Bidragsgivare",
"patcherContributors": "Bidragsgivare för Patcher",
"patchesContributors": "Bidragsgivare för Patches",
"integrationsContributors": "Bidragsgivare för integrationer",
"cliContributors": "Bidragsgivare för CLI",
"managerContributors": "Bidragsgivare för hanterare"
"widgetTitle": "Bidragsgivare"
},
"installErrorDialog": {
"mount_version_mismatch": "Versionerna stämmer inte överens",

View File

@@ -87,12 +87,10 @@
"darkThemeLabel": "ธีมมืด",
"dynamicThemeHint": "เพลิดเพลินกับประสบการณ์ที่ใกล้ชิดกับอุปกรณ์ของคุณมากขึ้น",
"languageLabel": "ภาษา",
"sourcesLabel": "แหล่งที่มา",
"sourcesIntegrationsLabel": "ที่มาของส่วนเสริม",
"sourcesResetDialogTitle": "รีเซ็ต",
"apiURLLabel": "URL ของ API",
"selectApiURL": "URL ของ API",
"hostRepositoryLabel": "API ที่เก็บข้อมูล",
"orgPatchesLabel": "ผู้ดูแลการดัดแปลง",
"sourcesPatchesLabel": "ที่มาของการดัดแปลง",
"orgIntegrationsLabel": "ผู้ดูแลส่วนเสริม",
@@ -127,12 +125,7 @@
"updateNotImplemented": "ยังไม่ได้ใช้คุณลักษณะนี้"
},
"contributorsView": {
"widgetTitle": "ผู้ช่วยเหลือโปรเจกต์",
"patcherContributors": "ผู้ร่วมพัฒนาตัวดัดแปลง",
"patchesContributors": "ผู้ร่วมพัฒนาการดัดแปลง",
"integrationsContributors": "ผู้ร่วมพัฒนาส่วนเสริม",
"cliContributors": "ผู้ร่วมพัฒนา CLI",
"managerContributors": "ผู้ร่วมพัฒนา Manager"
"widgetTitle": "ผู้ช่วยเหลือโปรเจกต์"
},
"installErrorDialog": {}
}

View File

@@ -16,6 +16,7 @@
"noShowAgain": "Bunu tekrar gösterme",
"add": "Ekle",
"remove": "Kaldır",
"showChangelogButton": "Değişiklikleri göster",
"showUpdateButton": "Güncellemeyi göster",
"navigationView": {
"dashboardTab": "Gösterge Paneli",
@@ -34,7 +35,7 @@
"installUpdate": "Güncelleme yüklensin mi?",
"updateSheetTitle": "ReVanced Manager'ı güncelle",
"updateDialogTitle": "Yeni güncelleme mevcut",
"updatePatchesSheetTitle": "ReVanced Yamaları'nı güncelle",
"updatePatchesSheetTitle": "ReVanced Patches'ı güncelle",
"updateChangelogTitle": "Değişiklikler",
"updateDialogText": "${file} için yeni bir güncelleme mevcut.\n\nŞu anda kurulu olan sürüm: ${version}.",
"downloadConsentDialogTitle": "Gerekli dosyalar indirilsin mi?",
@@ -95,9 +96,9 @@
"selectFromStorageButton": "Depolama alanından seçin",
"errorMessage": "Seçilen uygulama kullanılamıyor",
"downloadToast": "İndirme özelliği henüz kullanılamıyor",
"requireSuggestedAppVersionDialogText": "Seçtiğiniz uygulamanın sürümü, önerilen sürümle eşleşmiyor. Lütfen önerilen sürümle eşleşen sürümünü seçin.\n\nSeçilen sürüm: v${selected}\nÖnerilen sürüm: v${suggested}\n\nYine de devam etmek istiyorsanız, ayarlardan \"Önerilen uygulama sürümünü zorunlu kıl\" seçeneğini devre dışı bırakın.",
"requireSuggestedAppVersionDialogText": "Seçtiğiniz uygulamanın sürümü, önerilen sürümle eşleşmiyor ve bu durum beklenmeyen sorunlara yol açabilir. Lütfen önerilen sürümü kullanın.\n\nSeçilen sürüm: ${selected}\nÖnerilen sürüm: ${suggested}\n\nYine de devam etmek istiyorsanız, ayarlarda \"Önerilen uygulama sürümünü zorunlu kıl\" seçeneğini devre dışı bırakın.",
"featureNotAvailable": "Özellik henüz etkin değil",
"featureNotAvailableText": "Bu uygulama bir bölünmüş APK ve yalnızca root izinleriyle eksiksizce yamalanıp yüklenebilir. Tam APK'yı depolamadan seçerek yamalayabilir ve yükleyebilirsiniz."
"featureNotAvailableText": "Bu uygulama bir split APK'dır ve yalnızca root izinleriyle yamalanıp, mount yöntemiyle kurulabilir. Yine de, bir tam APK'yı depolamadan seçerek yamalayabilir ve kurabilirsiniz."
},
"patchesSelectorView": {
"viewTitle": "Yamaları seçin",
@@ -106,7 +107,9 @@
"newPatches": "Yeni yamalar",
"patches": "Yamalar",
"doneButton": "Bitti",
"defaultChip": "Varsayılan",
"defaultTooltip": "Varsayılan yamaların tümünü seç",
"noneChip": "Hiçbiri",
"noneTooltip": "Tüm yamaların seçimini kaldır",
"loadPatchesSelection": "Yama seçimini yükle",
"noSavedPatches": "Seçilen uygulama için kaydedilmiş yama seçimi yok.\nMevcut seçimi kaydetmek için Bitti tuşuna basın.",
@@ -132,7 +135,7 @@
"unsupportedDialogText": "Bu yamayı seçmek yamalama hatalarına sebep olabilir.\n\nUygulama sürümü: ${packageVersion}\nDesteklenen sürümler:\n${supportedVersions}",
"unsupportedPatchVersion": "Yama, uygulamanın bu sürümü için desteklenmiyor.",
"unsupportedRequiredOption": "Bu yama, bu uygulama tarafından desteklenmeyen fakat gerekli olan bir seçenek içeriyor",
"patchesChangeWarningDialogText": "Varsayılan yama seçeneklerini kullanmanız önerilir. Bunları değiştirmek beklenmedik sorunlara yol açabilir.\n\nHerhangi bir yama seçimini değiştirmeden önce ayarlarda \"Yama seçimini değiştirmeye izin ver\" seçeneğini açmanız gerekir.",
"patchesChangeWarningDialogText": "Varsayılan yama seçimini ve seçeneklerini kullanmanız önerilir. Bunları değiştirmek beklenmedik sorunlara yol açabilir.\n\nHerhangi bir yama seçimini değiştirmeden önce ayarlarda \"Yama seçimini değiştirmeye izin ver\" seçeneğini açmanız gerekir.",
"patchesChangeWarningDialogButton": "Varsayılan seçimi kullan"
},
"installerView": {
@@ -158,9 +161,10 @@
"widgetTitle": "Ayarlar",
"appearanceSectionTitle": "Görünüm",
"teamSectionTitle": "Ekip",
"debugSectionTitle": "Hata ayıklama",
"debugSectionTitle": "Debug",
"advancedSectionTitle": "Gelişmiş",
"exportSectionTitle": "İçe ve dışa aktar",
"dataSectionTitle": "Veri kaynakları",
"themeModeLabel": "Uygulama teması",
"systemThemeLabel": "Sistem",
"lightThemeLabel": "Aydınlık",
@@ -168,31 +172,35 @@
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Cihazınıza yakın bir deneyimin keyfini çıkarın",
"languageLabel": "Dil",
"languageUpdated": "Dil güncellendi",
"englishOption": "İngilizce",
"sourcesLabel": "Kaynaklar",
"sourcesLabelHint": "Yamaların ve Integrations'ın kaynağını ayarlayın",
"sourcesIntegrationsLabel": "Integrations kaynağı",
"sourcesLabel": "Alternatif kaynaklar",
"sourcesLabelHint": "ReVanced Patches ve ReVanced Integrations için alternatif kaynakları ayarlayın",
"sourcesIntegrationsLabel": "Integrations source",
"useAlternativeSources": "Alternatif kaynakları kullan",
"useAlternativeSourcesHint": "ReVanced Patches ve ReVanced Integrations için API yerine alternatif kaynakları kullanın",
"sourcesResetDialogTitle": "Sıfırla",
"sourcesResetDialogText": "Kaynaklarınızı varsayılan değerlerine sıfırlamak istediğinizden emin misiniz?",
"apiURLResetDialogText": "API URL'nizi varsayılan değerine sıfırlamak istediğinizden emin misiniz?",
"sourcesUpdateNote": "Not: Yamalar otomatik olarak en son sürüme güncellenecektir.\n\nBu, IP adresinizi sunucuya gösterecektir.",
"sourcesUpdateNote": "Not: Bu, ReVanced Patches'ı ve ReVanced Integrations'ı otomatik olarak alternatif kaynaklardan indirecektir.\n\nBu sizi alternatif kaynağa bağlayacaktır.",
"apiURLLabel": "API URL'si",
"apiURLHint": "Kullanılacak API'nin URL'sini ayarlayın",
"apiURLHint": "ReVanced Manager'in API URL'sini ayarlayın",
"selectApiURL": "API URL'si",
"hostRepositoryLabel": "Repository API'si",
"orgPatchesLabel": "Yama organizasyonu",
"sourcesPatchesLabel": "Yama kaynağı",
"orgIntegrationsLabel": "Integrations organizasyonu",
"orgPatchesLabel": "Patches organization",
"sourcesPatchesLabel": "Patches source",
"orgIntegrationsLabel": "Integrations organization",
"contributorsLabel": "Katkıda bulunanlar",
"contributorsHint": "ReVanced'a katkıda bulunanların listesi",
"logsLabel": "Logları paylaş",
"logsHint": "ReVanced Manager loglarını paylaş",
"logsHint": "ReVanced Manager loglarını paylaşın",
"enablePatchesSelectionLabel": "Yama seçimini değiştirmeye izin ver",
"enablePatchesSelectionHint": "Yamaların seçilmesini veya seçiminin kaldırılmasını engelleme",
"enablePatchesSelectionWarningText": "Yama seçimini değiştirmek beklenmedik sorunlara yol açabilir.\n\nYine de etkinleştirilsin mi?",
"disablePatchesSelectionWarningText": "Yama seçimini değiştirmeyi devre dışı bırakmak üzeresiniz.\nVarsayılan yama seçimi geri yüklenecektir.\n\nYine de devre dışı bırakılsın mı?",
"autoUpdatePatchesLabel": "Yamaları otomatik güncelle",
"autoUpdatePatchesHint": "Yamaları otomatik olarak en son sürüme güncelle",
"showUpdateDialogLabel": "Güncelleme penceresini göster",
"showUpdateDialogHint": "Yeni bir güncelleme mevcut olduğunda bir pencere göster",
"universalPatchesLabel": "Ortak yamaları göster",
"universalPatchesHint": "Tüm uygulamaları ve ortak yamaları göster (uygulamaları listelemeyi yavaşlatabilir)",
"versionCompatibilityCheckLabel": "Sürüm uyumluluğu kontrolü",
@@ -204,27 +212,27 @@
"snackbarMessage": "Panoya kopyalandı",
"restartAppForChanges": "Değişiklikleri uygulamak için uygulamayı yeniden başlatın",
"deleteTempDirLabel": "Geçici dosyaları sil",
"deleteTempDirHint": "Kullanılmayan geçici dosyaları sil",
"deleteTempDirHint": "Kullanılmayan geçici dosyaları silin",
"deletedTempDir": "Geçici dosyalar silindi",
"exportPatchesLabel": "Yama seçimini dışa aktar",
"exportPatchesHint": "Yama seçimini bir JSON dosyasına kaydet",
"exportPatchesHint": "Yama seçimini bir JSON dosyasına kaydedin",
"exportedPatches": "Yama seçimi dışa aktarıldı",
"noExportFileFound": "Dışa aktarılabilecek yama seçimi yok",
"importPatchesLabel": "Yama seçimini içe aktar",
"importPatchesHint": "Yama seçimini bir JSON dosyasından içe aktarın",
"importedPatches": "Yama seçimi içe aktarıldı",
"resetStoredPatchesLabel": "Yama seçimini sıfırla",
"resetStoredPatchesHint": "Mevcut yama seçimini sıfırla",
"resetStoredPatchesHint": "Mevcut yama seçimini sıfırlayın",
"resetStoredPatchesDialogTitle": "Yama seçimi sıfırlansın mı?",
"resetStoredPatchesDialogText": "Varsayılan yama seçimi geri yüklenecektir.",
"resetStoredPatches": "Yama seçimi sıfırlandı",
"resetStoredOptionsLabel": "Yama seçeneklerini sıfırla",
"resetStoredOptionsHint": "Tüm yama seçeneklerini sıfırla",
"resetStoredOptionsHint": "Tüm yama seçeneklerini sıfırlayın",
"resetStoredOptionsDialogTitle": "Yama seçenekleri sıfırlansın mı?",
"resetStoredOptionsDialogText": "Yama seçeneklerini sıfırlamak, kayıtlı tüm seçenekleri kaldıracaktır.",
"resetStoredOptions": "Seçenekler sıfırlandı",
"deleteLogsLabel": "Logları temizle",
"deleteLogsHint": "Kayıtlı ReVanced Manager loglarını sil",
"deleteLogsHint": "Kayıtlı ReVanced Manager loglarını silin",
"deletedLogs": "Loglar silindi",
"regenerateKeystoreLabel": "Keystore'u yeniden oluştur",
"regenerateKeystoreHint": "Uygulamaları imzalamak için kullanılan keystore'u yeniden oluşturun",
@@ -263,12 +271,7 @@
"updateNotImplemented": "Bu özellik henüz geliştirilmedi"
},
"contributorsView": {
"widgetTitle": "Katkıda bulunanlar",
"patcherContributors": "Yamalayıcı'ya katkıda bulunanlar",
"patchesContributors": "Yamalara katkıda bulunanlar",
"integrationsContributors": "Integrations'a katkıda bulunanlar",
"cliContributors": "CLI'ye katkıda bulunanlar",
"managerContributors": "Manager'a katkıda bulunanlar"
"widgetTitle": "Katkıda bulunanlar"
},
"installErrorDialog": {
"mount_version_mismatch": "Sürüm uyuşmazlığı",

View File

@@ -5,14 +5,14 @@
"quitButton": "Вийти",
"updateButton": "Оновити",
"enabledLabel": "Увімкнено",
"disabledLabel": "Вимкнено",
"disabledLabel": "Вимкнуто",
"installed": "Установлено: ${version}",
"suggested": "Запропоновано: ${version}",
"yesButton": "Так",
"noButton": "Ні",
"warning": "Увага",
"options": "Налаштування",
"notice": "Нотатки",
"notice": "Примітка",
"noShowAgain": "Не показувати знову",
"add": "Додати",
"remove": "Прибрати",
@@ -35,7 +35,7 @@
"installUpdate": "Продовжити встановлення оновлення?",
"updateSheetTitle": "Оновити ReVanced Manager",
"updateDialogTitle": "Доступне нове оновлення",
"updatePatchesSheetTitle": "Оновити патчі ReVanced",
"updatePatchesSheetTitle": "Оновити ReVanced Patches",
"updateChangelogTitle": "Список змін",
"updateDialogText": "Доступне нове оновлення для ${file}.\n\nВстановлена версія ${version}.",
"downloadConsentDialogTitle": "Завантажити необхідні файли?",
@@ -51,10 +51,10 @@
"errorDownloadMessage": "Неможливо завантажити оновлення",
"errorInstallMessage": "Не вдалося встановити оновлення",
"noConnection": "Немає з’єднання з інтернетом",
"updatesDisabled": "Оновлення застосунку з виправленнями наразі вимкнено. Перезапустіть застосунок ще раз."
"updatesDisabled": "Оновлення пропатченого застосунку наразі вимкнено. Пропатчіть застосунок ще раз."
},
"applicationItem": {
"infoButton": "Відомості"
"infoButton": "Інформація"
},
"latestCommitCard": {
"loadingLabel": "Завантаження...",
@@ -65,24 +65,24 @@
},
"patcherView": {
"widgetTitle": "Патчер",
"patchButton": "Патч",
"patchButton": "Патчити",
"armv7WarningDialogText": "Патчінг на пристроях ARMv7 ще не підтримується і може не спрацювати. Продовжити в будь-якому випадку?",
"removedPatchesWarningDialogText": "Наступні патчі було видалено з моменту останнього використання.\n\n${patches}\n\nВсе одно продовжити?",
"requiredOptionDialogText": "Потрібно встановити деякі параметри патчу."
},
"appSelectorCard": {
"widgetTitle": "Виберіть додаток",
"widgetTitleSelected": "Обраний застосунок",
"widgetSubtitle": "Застосунок не обрано",
"widgetTitle": "Вибрати застосунок",
"widgetTitleSelected": "Вибраний застосунок",
"widgetSubtitle": "Застосунок не вибрано",
"noAppsLabel": "Не знайдено жодного застосунку",
"currentVersion": "Поточна версія",
"suggestedVersion": "Запропоновано",
"anyVersion": "Будь-яка версія"
},
"patchSelectorCard": {
"widgetTitle": "Обрати патчі",
"widgetTitleSelected": "Обрані патчі",
"widgetSubtitle": "Спочатку оберіть застосунок",
"widgetTitle": "Вибрати патчі",
"widgetTitleSelected": "Вибрані патчі",
"widgetSubtitle": "Спочатку виберіть застосунок",
"widgetEmptySubtitle": "Патчі не вибрано"
},
"socialMediaCard": {
@@ -90,33 +90,35 @@
"widgetSubtitle": "Ми в мережі!"
},
"appSelectorView": {
"viewTitle": "Виберіть застосунок",
"viewTitle": "Вибір застосунку",
"searchBarHint": "Пошук застосунку",
"storageButton": "Сховище",
"selectFromStorageButton": "Вибрати зі сховища",
"errorMessage": "Неможливо використати обраний застосунок",
"errorMessage": "Неможливо використати вибраний застосунок",
"downloadToast": "Функція завантаження поки що недоступна",
"requireSuggestedAppVersionDialogText": "Обрана вами версія застосунку не відповідає запропонованій версії, це може призвести до неочікуваних проблем. Будь ласка, використовуйте запропоновану версію.\n\nОбрана версія: v${selected}\nЗапропонована версія: v${suggested}\n\nЩоб продовжити, вимкніть \"Вимагати запропоновану версію застосунку\" в налаштуваннях.",
"requireSuggestedAppVersionDialogText": "Вибрана Вами версія застосунку не відповідає запропонованій версії, це може призвести до неочікуваних проблем. Будь ласка, використовуйте запропоновану версію.\n\nВибрана версія: v${selected}\nЗапропонована версія: v${suggested}\n\nЩоб продовжити, вимкніть \"Вимагати запропоновану версію застосунку\" в налаштуваннях.",
"featureNotAvailable": "Функція не реалізована",
"featureNotAvailableText": "Цей застосунок є розділеним файлом APK, і він може бути пропатчений та надійно встановлений лише за допомогою монтування з правами root. Однак ви можете виправити та встановити повний APK, вибравши його зі сховища."
"featureNotAvailableText": "Цей застосунок є розділеним файлом APK, і він може бути пропатчений та надійно встановлений лише за допомогою монтування з правами root. Однак ви можете пропатчити та встановити повний APK, вибравши його зі сховища."
},
"patchesSelectorView": {
"viewTitle": "Обрати патчі",
"viewTitle": "Вибір патчів",
"searchBarHint": "Пошук патчів",
"universalPatches": "Універсальні патчі",
"newPatches": "Нові патчі",
"patches": "Патчі",
"doneButton": "Готово",
"defaultTooltip": "Обрати всі стандартні патчі",
"noneTooltip": "Зняти вибір з усіх патчів",
"defaultChip": "За замовчуванням",
"defaultTooltip": "Вибрати всі стандартні патчі",
"noneChip": "Скинути вибір",
"noneTooltip": "Скинути вибір з усіх патчів",
"loadPatchesSelection": "Ввантажити вибір патчів",
"noSavedPatches": "Немає збереженого вибору патчів для вибраного застосунку.\nНатисніть «Готово», щоб зберегти поточний вибір.",
"noSavedPatches": "Немає збереженого вибору патчів для вибраного застосунку.\nНатисніть \"Готово\", щоб зберегти поточний вибір.",
"noPatchesFound": "Для цього застосунку немає патчів",
"setRequiredOption": "Деякі патчі вимагають встановлення параметрів:\n\n${patches}\n\n Будь ласка, встановіть їх перед продовженням."
},
"patchOptionsView": {
"customValue": "Власне значення",
"resetOptionsTooltip": "Скинути параметр патчу",
"resetOptionsTooltip": "Скинути параметри патчу",
"viewTitle": "Параметри патчу",
"saveOptions": "Зберегти",
"addOptions": "Додати параметри",
@@ -124,7 +126,7 @@
"tooltip": "Більше варіантів вводу",
"selectFilePath": "Оберіть шлях до файлу",
"selectFolder": "Оберіть теку",
"selectOption": "Обрати параметр",
"selectOption": "Вибрати параметр",
"requiredOption": "Цей параметр є обов’язковим",
"unsupportedOption": "Цей параметр не підтримується",
"requiredOptionNull": "Необхідно встановити наступні параметри:\n\n${options}"
@@ -151,8 +153,8 @@
"notificationText": "Натисніть, щоб повернутися до інсталятора",
"exportApkButtonTooltip": "Експортувати пропатчений APK",
"exportLogButtonTooltip": "Експортувати журнал",
"screenshotDetected": "Виявлено знімок екрана. Якщо ви намагаєтеся поділитися журналом, будь ласка, надішліть його текстову копію.\n\nСкопіювати журнал у буфер обміну?",
"copiedToClipboard": "Скопійовано журнал до буфера обміну",
"screenshotDetected": "Виявлено знімок екрана. Якщо ви намагаєтеся поділитися журналом, будь ласка, діліться його текстовою копією.\n\nСкопіювати журнал у буфер обміну?",
"copiedToClipboard": "Журнал скопійовано до буфера обміну",
"noExit": "Інсталятор все ще працює, неможливо вийти..."
},
"settingsView": {
@@ -162,6 +164,7 @@
"debugSectionTitle": "Налагодження",
"advancedSectionTitle": "Розширені",
"exportSectionTitle": "Імпорт та Експорт",
"dataSectionTitle": "Джерела даних",
"themeModeLabel": "Тема застосунку",
"systemThemeLabel": "Системна",
"lightThemeLabel": "Світла",
@@ -169,21 +172,23 @@
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "Насолоджуйтесь враженнями ближче до свого пристрою",
"languageLabel": "Мова",
"languageUpdated": "Мову застосунку оновлено",
"englishOption": "Англійська",
"sourcesLabel": "Джерела",
"sourcesLabelHint": "Налаштування джерела патчів та інтеграцій",
"sourcesIntegrationsLabel": "Джерело інтеграцій",
"sourcesLabel": "Альтернативні джерела",
"sourcesLabelHint": "Налаштувати альтернативні джерела для ReVanced Patches та ReVanced Integrations",
"sourcesIntegrationsLabel": "Integrations source",
"useAlternativeSources": "Використовувати альтернативні джерела",
"useAlternativeSourcesHint": "Використовувати альтернативні джерела для ReVanced Patches та ReVanced Integrations замість API",
"sourcesResetDialogTitle": "Скинути",
"sourcesResetDialogText": "Ви дійсно бажаєте відновити стандартні значення джерел?",
"apiURLResetDialogText": "Ви дійсно хочете скинути API URL на стандартне значення?",
"sourcesUpdateNote": "Примітка: Патчі буде оновлено автоматично до останньої версії.\n\nЦе розкриє вашу IP-адресу серверу.",
"apiURLResetDialogText": "Ви дійсно бажаєте відновити API URL до стандартного значення?",
"sourcesUpdateNote": "Примітка. Це автоматично завантажить ReVanced Patches і ReVanced Integrations з альтернативних джерел.\n\nЦе під'єднає вас до альтернативного джерела.",
"apiURLLabel": "URL-адреса API",
"apiURLHint": "Налаштування URL-адреси API для використання",
"apiURLHint": "Налаштувати API URL для ReVanced Manager",
"selectApiURL": "URL-адреса API",
"hostRepositoryLabel": "API репозиторій",
"orgPatchesLabel": "Організація патчів",
"sourcesPatchesLabel": "Джерело патчів",
"orgIntegrationsLabel": "Організація інтеграцій",
"orgPatchesLabel": "Patches organization",
"sourcesPatchesLabel": "Patches source",
"orgIntegrationsLabel": "Integrations organization",
"contributorsLabel": "Розробники",
"contributorsHint": "Список розробників ReVanced",
"logsLabel": "Поділитися журналом",
@@ -191,7 +196,7 @@
"enablePatchesSelectionLabel": "Дозволити зміну вибору патчів",
"enablePatchesSelectionHint": "Не перешкоджати вибору або скасуванню вибору патчів",
"enablePatchesSelectionWarningText": "Зміна вибору патчів може спричинити несподівані проблеми.\n\nУвімкнути все одно?",
"disablePatchesSelectionWarningText": "Ви збираєтеся вимкнути зміну вибору патчів.\nБуде відновлено типовий вибір патчів.\n\nВсе одно вимкнути?",
"disablePatchesSelectionWarningText": "Ви збираєтеся вимкнути зміну вибору патчів.\nБуде відновлено стандартний вибір патчів.\n\nВсе одно вимкнути?",
"autoUpdatePatchesLabel": "Автоматичне оновлення патчів",
"autoUpdatePatchesHint": "Автоматично оновлювати патчі до останньої версії",
"showUpdateDialogLabel": "Показувати вікно оновлення",
@@ -203,7 +208,7 @@
"requireSuggestedAppVersionLabel": "Вимагати запропоновану версію застосунку",
"requireSuggestedAppVersionHint": "Запобігати вибору застосунку з не рекомендованою версією",
"requireSuggestedAppVersionDialogText": "Вибір застосунку не запропонованої версії може спричинити непередбачувані проблеми.\n\nВсе одно бажаєте продовжити?",
"aboutLabel": "Про нас",
"aboutLabel": "Про застосунок",
"snackbarMessage": "Скопійовано в буфер обміну",
"restartAppForChanges": "Перезапустіть застосунок, щоб застосувати зміни",
"deleteTempDirLabel": "Видалити тимчасові файли",
@@ -255,23 +260,18 @@
"unmountDialogText": "Ви впевнені, що бажаєте розмонтувати цей додаток?",
"uninstallDialogText": "Ви впевнені, що бажаєте видалити цей застосунок?",
"rootDialogText": "Застосунок було встановлено з правами суперкористувача, але наразі ReVanced Manager не має таких прав.\nБудь ласка, спочатку надайте права суперкористувача.",
"packageNameLabel": "Назва пакету",
"packageNameLabel": "Ім'я пакету",
"installTypeLabel": "Тип встановлення",
"mountTypeLabel": "Монтувати",
"regularTypeLabel": "Звичайний",
"patchedDateLabel": "Дата патчу",
"patchedDateLabel": "Дата патчінгу",
"appliedPatchesLabel": "Застосовані патчі",
"patchedDateHint": "${date} о ${time}",
"appliedPatchesHint": "${quantity} застосованих патчів",
"updateNotImplemented": "Ця можливість ще не реалізована"
},
"contributorsView": {
"widgetTitle": "Розробники",
"patcherContributors": "Розробники патчера",
"patchesContributors": "Розробники патчів",
"integrationsContributors": "Розробники інтеграцій",
"cliContributors": "Розробники CLI",
"managerContributors": "Розробники менеджера"
"widgetTitle": "Розробники"
},
"installErrorDialog": {
"mount_version_mismatch": "Невідповідність версії",

View File

@@ -16,6 +16,8 @@
"noShowAgain": "Không hiển thị lại điều này",
"add": "Thêm",
"remove": "Loại bỏ",
"showChangelogButton": "Hiển thị nhật ký thay đổi",
"showUpdateButton": "Hiển thị cập nhật",
"navigationView": {
"dashboardTab": "Tổng quan",
"patcherTab": "Trình vá",
@@ -26,14 +28,25 @@
"widgetTitle": "Tổng quan",
"updatesSubtitle": "Các bản cập nhật",
"patchedSubtitle": "Ứng dụng đã vá",
"changeLaterSubtitle": "Bạn có thể thay đổi cài đặt này sau.",
"noUpdates": "Không có bản cập nhật mới",
"WIP": "Đang thực hiện...",
"noInstallations": "Không có ứng dụng đã vá nào được cài đặt",
"installUpdate": "Tiếp tục cài đặt bản cập nhật?",
"updateSheetTitle": "Cập nhật ReVanced Manager",
"updateDialogTitle": "Có bản cập nhật mới",
"updatePatchesSheetTitle": "Cập nhật Các bản vá ReVanced",
"updateChangelogTitle": "Nhật ký thay đổi",
"updateDialogText": "Có một bản cập nhật cho ${file}.\n\nPhiên bản đã cài hiện tại là ${version}.",
"downloadConsentDialogTitle": "Tải các tập tin cần thiết?",
"downloadConsentDialogText": "ReVanced Manager cần tải các tập tin cần thiết để hoạt động đúng cách.",
"downloadConsentDialogText2": "Điều này sẽ kết nối bạn đến ${url}.",
"checkUpdateDialogTitle": "Kiểm tra cập nhật?",
"checkUpdateDialogText": "Bạn có muốn ReVanced Manager kiểm tra bản cập nhật tự động?",
"notificationTitle": "Đã tải xuống bản cập nhật",
"notificationText": "Nhấn để cài đặt bản cập nhật",
"downloadingMessage": "Đang tải xuống bản cập nhật...",
"downloadedMessage": "Đã tải xuống bản cập nhật",
"installingMessage": "Đang cài đặt bản cập nhật...",
"errorDownloadMessage": "Không thể tải về bản cập nhật",
"errorInstallMessage": "Không thể cài đặt bản cập nhật",
@@ -53,12 +66,18 @@
"patcherView": {
"widgetTitle": "Trình vá",
"patchButton": "Vá",
"armv7WarningDialogText": "Việc vá trên các thiết bị ARMv7 chưa được hỗ trợ và có thể thất bại. Vẫn tiếp tục?",
"removedPatchesWarningDialogText": "Những bản vá sau đây đã bị loại bỏ từ lần cuối bạn dùng chúng.\n\n${patches}\n\nVẫn tiếp tục?",
"requiredOptionDialogText": "Một số tùy chọn bản vá cần được thiết đặt."
},
"appSelectorCard": {
"widgetTitle": "Chọn một ứng dụng",
"widgetTitleSelected": "Ứng dụng đã chọn",
"widgetSubtitle": "Không có ứng dụng được chọn",
"noAppsLabel": "Không tìm thấy ứng dụng nào",
"currentVersion": "Hiện tại",
"suggestedVersion": "Được đề xuất"
"suggestedVersion": "Được đề xuất",
"anyVersion": "Phiên bản bất kỳ"
},
"patchSelectorCard": {
"widgetTitle": "Chọn bản vá",
@@ -71,11 +90,15 @@
"widgetSubtitle": "Chúng tôi đang trực tuyến!"
},
"appSelectorView": {
"viewTitle": "Chọn một ứng dụng",
"searchBarHint": "Tìm ứng dụng",
"storageButton": "Lưu trữ",
"selectFromStorageButton": "Chọn từ bộ nhớ",
"errorMessage": "Không thể dùng ứng dụng đã chọn",
"downloadToast": "Tính năng tải về chưa khả dụng",
"featureNotAvailable": "Tính năng chưa triển khai"
"requireSuggestedAppVersionDialogText": "Phiên bản của ứng dụng bạn đã chọn không trùng khớp vói phiên bản được đề xuất có thể dẫn đến các phát sinh không mong muốn. Xin chọn ứng dụng khớp với phiên bản được đề xuất.\n\nPhiên bản đã chọn: ${selected}\nPhiên bản được đề xuất: ${suggested}\n\nĐể tiếp tục, tắt \"Yêu cầu phiên bản ứng dụng được đề xuất\" trong cài đặt.",
"featureNotAvailable": "Tính năng chưa triển khai",
"featureNotAvailableText": "Ứng dụng này là một APK tách rời và chỉ có thể được vá và cài một cách tin cậy bằng cách gắn kết với quyền root. Tuy nhiên, bạn có thể vá và cài APK đầy đủ bằng cách chọn chúng từ lưu trữ."
},
"patchesSelectorView": {
"viewTitle": "Chọn bản vá",
@@ -84,7 +107,9 @@
"newPatches": "Các bản vá mới",
"patches": "Các bản vá",
"doneButton": "Hoàn tất",
"defaultChip": "Mặc định",
"defaultTooltip": "Chọn tất cả bản vá mặc định",
"noneChip": "Không có",
"noneTooltip": "Bỏ chọn tất cả bản vá",
"loadPatchesSelection": "Nạp các bản vá được chọn",
"noSavedPatches": "Không có bản vá cho ứng dụng được chọn\nNhấn Hoàn tất để lưu lựa chọn hiện tại.",
@@ -110,11 +135,13 @@
"unsupportedDialogText": "Chọn bản vá này có thể gây lỗi khi vá.\n\nPhiên bản ứng dụng: ${packageVersion}\nPhiên bản được hỗ trợ: ${supportedVersions}",
"unsupportedPatchVersion": "Bản vá không được hỗ trợ cho phiên bản ứng dụng này.",
"unsupportedRequiredOption": "Bản vá này chứa một tùy chọn bắt buộc không được hỗ trợ bởi ứng dụng này",
"patchesChangeWarningDialogText": "Bạn nên sử dụng lựa chọn bản vá mặc định và các tùy chọn. Thay đổi chúng có thể dẫn đến các vấn đề không mong muốn.\n\nBạn cần bật \"Cho phép thay đổi lựa chọn đường dẫn\" trong cài đặt trước khi thay đổi bất kỳ lựa chọn đường dẫn nào.",
"patchesChangeWarningDialogButton": "Dùng lựa chọn mặc định"
},
"installerView": {
"widgetTitle": "Trình cài đặt",
"installType": "Chọn kiểu cài đặt",
"installTypeDescription": "Chọn kiểu cài đặt để thực hiện với nó.",
"installButton": "Cài đặt",
"installRootType": "Gắn kết",
"installNonRootType": "Thông thường",
@@ -137,6 +164,7 @@
"debugSectionTitle": "Gỡ Lỗi",
"advancedSectionTitle": "Nâng cao",
"exportSectionTitle": "Nhập và xuất",
"dataSectionTitle": "Nguồn dữ liệu",
"themeModeLabel": "Chủ đề ứng dụng",
"systemThemeLabel": "Hệ thống",
"lightThemeLabel": "Sáng",
@@ -144,18 +172,20 @@
"dynamicThemeLabel": "Cá nhân",
"dynamicThemeHint": "Tận hưởng trải nghiệm gần hơn với thiết bị của bạn",
"languageLabel": "Ngôn ngữ",
"languageUpdated": "Ngôn ngữ đã cập nhập",
"englishOption": "Tiếng Anh",
"sourcesLabel": "Nguồn",
"sourcesLabelHint": "Cấu hình nguồn các bản vátích hợp",
"sourcesLabel": "Nguồn thay thế",
"sourcesLabelHint": "Cấu hình nguồn thay thế cho Bản vá ReVancedTích hợp ReVanced",
"sourcesIntegrationsLabel": "Nguồn tích hợp",
"useAlternativeSources": "Dùng nguồn thay thế",
"useAlternativeSourcesHint": "Dùng nguồn thay thế cho Bản vá ReVanced và Tích hợp ReVanced thay cho API",
"sourcesResetDialogTitle": "Đặt lại",
"sourcesResetDialogText": "Bạn có chắc chắn muốn đặt lại nguồn của mình về giá trị mặc định không?",
"apiURLResetDialogText": "Bạn có chắc bạn muốn đặt lại API URL của bạn về giá trị mặc định của nó không?",
"sourcesUpdateNote": "Lưu ý: Bản vá ReVanced sẽ được cập nhật lên phiên bản mới nhất một cách tự động.\n\nĐiều này sẽ tiết lộ địa chỉ IP của bạn cho máy chủ.",
"sourcesUpdateNote": "Lưu ý: Việc này sẽ tự động tải Bản vá ReVanced và Tích hợp ReVanced từ nguồn thay thế.",
"apiURLLabel": "Địa chỉ URL của API",
"apiURLHint": "Cấu hình URL của API để sử dụng",
"apiURLHint": "Cấu hình địa chỉ URL API của ReVanced Manager",
"selectApiURL": "Địa chỉ URL của API",
"hostRepositoryLabel": "API Kho lưu trữ",
"orgPatchesLabel": "Tác giả bản vá",
"sourcesPatchesLabel": "Nguồn bản vá",
"orgIntegrationsLabel": "Tác giá bản tích hợp",
@@ -169,6 +199,8 @@
"disablePatchesSelectionWarningText": "Bạn chuẩn bị tắt thay đổi lựa chọn các bản vá.\nLựa chọn mặc định các bản vá sẽ được khôi phục.\n\nVẫn tắt?",
"autoUpdatePatchesLabel": "Tự động cập nhật các bản vá",
"autoUpdatePatchesHint": "Tự động cập nhật các bản vá lên phiên bản mới nhất",
"showUpdateDialogLabel": "Hiện hộp thoại cập nhật",
"showUpdateDialogHint": "Hiện một hộp thoại khi có một bản cập nhật",
"universalPatchesLabel": "Các bản vá phổ quát",
"universalPatchesHint": "Hiển thị tất cả các ứng dụng và các bản vá phổ quát (có thể gây chậm danh sách ứng dụng)",
"versionCompatibilityCheckLabel": "Kiểm tra khả năng tương thích của phiên bản",
@@ -239,12 +271,7 @@
"updateNotImplemented": "Tính năng này chưa được triển khai"
},
"contributorsView": {
"widgetTitle": "Những người đóng góp",
"patcherContributors": "Những người đóng góp Trình vá",
"patchesContributors": "Những người đóng góp Trình vá",
"integrationsContributors": "Những người đóng góp bản tích hợp",
"cliContributors": "Những người đóng góp CLI",
"managerContributors": "Những người đóng góp Trình quản lý"
"widgetTitle": "Những người đóng góp"
},
"installErrorDialog": {
"mount_version_mismatch": "Phiên bản không phù hợp",

View File

@@ -1,8 +1,11 @@
{
"okButton": "确定",
"cancelButton": "取消",
"dismissButton": "忽略",
"quitButton": "退出",
"updateButton": "更新",
"enabledLabel": "已启用",
"disabledLabel": "已禁用",
"installed": "已安装版本:${version}",
"suggested": "建议的版本:${version}",
"yesButton": "是",
@@ -14,6 +17,7 @@
"add": "添加",
"remove": "移除",
"showChangelogButton": "显示更新日志",
"showUpdateButton": "显示更新",
"navigationView": {
"dashboardTab": "控制面板",
"patcherTab": "补丁程序",
@@ -25,15 +29,20 @@
"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": "正在下载更新…",
@@ -49,11 +58,17 @@
},
"latestCommitCard": {
"loadingLabel": "正在加载…",
"timeagoLabel": "${time}前"
"timeagoLabel": "${time} 前",
"patcherLabel": "补丁程序: ",
"managerLabel": "管理器: ",
"updateButton": "更新管理器"
},
"patcherView": {
"widgetTitle": "修补器",
"patchButton": "修补"
"patchButton": "修补",
"armv7WarningDialogText": "尚不支持在 ARMv7 设备上进行修补并且可能会失败。仍要继续吗?",
"removedPatchesWarningDialogText": "自您上次使用以下补丁以来,它们已被删除。\n\n${patches}\n\n还是继续吗",
"requiredOptionDialogText": "某些补丁选项必须设置。"
},
"appSelectorCard": {
"widgetTitle": "选择一个应用",
@@ -61,7 +76,8 @@
"widgetSubtitle": "未选择任何应用",
"noAppsLabel": "未发现应用程序",
"currentVersion": "当前",
"suggestedVersion": "建议"
"suggestedVersion": "建议",
"anyVersion": "所有版本"
},
"patchSelectorCard": {
"widgetTitle": "选择补丁",
@@ -81,7 +97,8 @@
"errorMessage": "无法使用所选应用程序。",
"downloadToast": "下载功能尚不可用",
"requireSuggestedAppVersionDialogText": "你所选择的应用版本与推荐的版本不一致,这可能会导致不可预料的问题。请使用推荐的版本。\n\n选择的版本${selected}\n推荐的版本${suggested}",
"featureNotAvailable": "功能未实现"
"featureNotAvailable": "功能未实现",
"featureNotAvailableText": "此应用程序是一个拆分的 APK只能通过安装root 权限来修补和可靠安装。 然而,您可以通过从存储中选择一个完整的 APK来修补和安装。"
},
"patchesSelectorView": {
"viewTitle": "选择补丁",
@@ -90,10 +107,14 @@
"newPatches": "新补丁",
"patches": "补丁",
"doneButton": "完成",
"defaultChip": "默认",
"defaultTooltip": "选择所有默认补丁",
"noneChip": "无",
"noneTooltip": "取消选择所有补丁",
"loadPatchesSelection": "加载补丁选项",
"noPatchesFound": "未找到适用于所选应用程序的补丁"
"noSavedPatches": "所选应用没有保存补丁选择。\n按完成保存当前选择。",
"noPatchesFound": "未找到适用于所选应用程序的补丁",
"setRequiredOption": "某些补丁需要设置选项:\n\n${patches}\n\n请设置后再继续。"
},
"patchOptionsView": {
"customValue": "自定义值",
@@ -105,22 +126,34 @@
"tooltip": "更多输入选项",
"selectFilePath": "选择文件路径",
"selectFolder": "选择文件夹",
"unsupportedOption": "不支持此选项"
"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": "安装程序仍在运行,无法退出..."
},
@@ -131,53 +164,106 @@
"debugSectionTitle": "调试",
"advancedSectionTitle": "高级",
"exportSectionTitle": "导入与导出",
"dataSectionTitle": "数据来源",
"themeModeLabel": "应用主题",
"systemThemeLabel": "系统",
"lightThemeLabel": "亮色主题",
"darkThemeLabel": "深色模式",
"dynamicThemeLabel": "Material You 风格",
"dynamicThemeHint": "享受更贴近你的设备的体验",
"languageLabel": "语言",
"sourcesLabel": "",
"languageUpdated": "语言已更新",
"englishOption": "英语",
"sourcesLabel": "其他来源",
"sourcesLabelHint": "配置 ReVanced 补丁和 ReVanced 集成的替代源",
"sourcesIntegrationsLabel": "集成源",
"useAlternativeSources": "使用其他来源",
"useAlternativeSourcesHint": "使用 ReVanced 补丁和 ReVanced 集成的替代来源而不是 API",
"sourcesResetDialogTitle": "重置",
"sourcesResetDialogText": "您确定要将源重置为默认值吗?",
"apiURLResetDialogText": "您确定要重置你的 API URL 为默认值吗?",
"sourcesUpdateNote": "注意:这将自动从其他来源下载 ReVanced 补丁和 ReVanced 集成。\n\n这将连接到替代源。",
"apiURLLabel": "API 地址",
"apiURLHint": "配置 ReVanced Manager 的 API URL",
"selectApiURL": "API 地址",
"hostRepositoryLabel": "存储库 API",
"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": "密钥库已导入\n\n",
"jsonSelectorErrorMessage": "无法使用所选的 json 文件"
"selectKeystorePassword": "密钥存储密码",
"selectKeystorePasswordHint": "选择用于签署应用程序的密钥库密码",
"jsonSelectorErrorMessage": "无法使用所选的 json 文件",
"keystoreSelectorErrorMessage": "无法使用选定的密钥存储文件"
},
"appInfoView": {
"widgetTitle": "应用信息",
"openButton": "打开",
"uninstallButton": "卸载",
"unmountButton": "卸载",
"rootDialogTitle": "错误",
"unmountDialogText": "您确定要卸载此应用程序吗?",
"uninstallDialogText": "您确定要卸载此应用程序吗?",
"rootDialogText": "应用程序曾以超级用户权限安装,但是 ReVanced 管理器目前没有权限。\n请先授予超级用户权限。",
"packageNameLabel": "包名",
"installTypeLabel": "安装类型",
"mountTypeLabel": "安装",
"regularTypeLabel": "常规",
"patchedDateLabel": "修补日期",
"appliedPatchesLabel": "应用的补丁",
"patchedDateHint": "${date} 于 ${time}",
@@ -185,12 +271,32 @@
"updateNotImplemented": "此功能尚未实现"
},
"contributorsView": {
"widgetTitle": "贡献者",
"patcherContributors": "修补器贡献者",
"patchesContributors": "补丁贡献者",
"integrationsContributors": "集成贡献者",
"cliContributors": "命令行界面贡献者",
"managerContributors": "管理器贡献者"
"widgetTitle": "贡献者"
},
"installErrorDialog": {}
"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": "由于未授予 root 访问权限,安装失败。\n\n授予 ReVanced Manager root 访问权限,然后重试。",
"mount_missing_installation_description": "安装失败,因为此设备上没有安装未经修补的应用以挂载它。\n\n在安装前安装未经修补的应用然后重试。",
"status_failure_timeout_description": "安装时间太长。\n\n您想再试一次吗",
"status_failure_storage_description": "由于存储空间不足,安装失败。\n\n释放一些空间然后重试。",
"status_failure_invalid_description": "由于修补的应用程序无效,安装失败。\n\n卸载该应用程序并重试",
"status_failure_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,12 +1,23 @@
{
"okButton": "確定",
"cancelButton": "取消",
"dismissButton": "忽略",
"quitButton": "離開",
"updateButton": "更新",
"enabledLabel": "已啟用",
"disabledLabel": "已關閉",
"installed": "已安裝版本: ${version}",
"suggested": "建議: ${version}",
"yesButton": "是",
"noButton": "不是",
"warning": "警告",
"options": "選項",
"notice": "通知",
"noShowAgain": "唔再顯示哩個內容",
"add": "增加",
"remove": "移除",
"showChangelogButton": "顯示更新日誌",
"showUpdateButton": "顯示更新",
"navigationView": {
"dashboardTab": "儀表板",
"patcherTab": "修補工具",
@@ -17,9 +28,17 @@
"widgetTitle": "儀表板",
"updatesSubtitle": "更新",
"patchedSubtitle": "修改咗既應用",
"changeLaterSubtitle": "你可以之後喺設定改返",
"noUpdates": "冇新既更新",
"WIP": "開發中...",
"noInstallations": "未安裝修改咗既應用",
"installUpdate": "繼續安裝更新嗎?",
"updateSheetTitle": "更新 ReVanced Manager",
"updateDialogTitle": "有新嘅更新",
"updatePatchesSheetTitle": "更新 ReVanced 補丁",
"updateChangelogTitle": "變更日誌",
"downloadConsentDialogTitle": "下載必要嘅文件?",
"checkUpdateDialogTitle": "檢查更新?",
"downloadingMessage": "正在下載更新",
"installingMessage": "正在安裝更新…",
"errorDownloadMessage": "下載唔到更新",
@@ -32,16 +51,24 @@
},
"latestCommitCard": {
"loadingLabel": "載入中...",
"timeagoLabel": "${time} 之前"
"timeagoLabel": "${time} 之前",
"patcherLabel": "修補工具: ",
"managerLabel": "管理器: ",
"updateButton": "更新管理器"
},
"patcherView": {
"widgetTitle": "修補工具",
"patchButton": "修補"
"patchButton": "修補",
"armv7WarningDialogText": "唔支援在ARMv7架構嘅設備上打補丁要唔要繼續"
},
"appSelectorCard": {
"widgetTitle": "選擇一個應用程式",
"widgetTitleSelected": "揀咗嘅應用程式",
"widgetSubtitle": "冇揀咗嘅應用程式",
"noAppsLabel": "搵唔到應用",
"currentVersion": "目前",
"suggestedVersion": "建議"
"suggestedVersion": "建議",
"anyVersion": "任何版本"
},
"patchSelectorCard": {
"widgetTitle": "選擇補丁",
@@ -54,6 +81,8 @@
"widgetSubtitle": "我哋上線啦!"
},
"appSelectorView": {
"viewTitle": "選擇一個應用程式",
"searchBarHint": "搜索應用程式",
"storageButton": "儲存空間",
"selectFromStorageButton": "係儲存空間裏面選擇",
"errorMessage": "用唔到揀咗嘅應用",
@@ -63,9 +92,15 @@
"patchesSelectorView": {
"viewTitle": "揀補丁",
"searchBarHint": "搜尋補丁",
"newPatches": "新補丁",
"patches": "補丁",
"doneButton": "完成",
"defaultChip": "預設",
"defaultTooltip": "選擇所有預設嘅補丁",
"noneChip": "冇",
"noneTooltip": "取消選擇所有修補項目",
"loadPatchesSelection": "載入選擇嘅補丁",
"noSavedPatches": "冇保存咗嘅補丁選擇俾呢個應用。\n撳\"完成\"嚟保存當前嘅選擇。",
"noPatchesFound": "冇補丁俾呢個揀咗嘅應用。"
},
"patchOptionsView": {},
@@ -88,15 +123,19 @@
"darkThemeLabel": "暗黑模式",
"dynamicThemeHint": "享受一個更貼近你裝置嘅體驗",
"languageLabel": "語言",
"sourcesLabel": "來源",
"sourcesIntegrationsLabel": "項目整合來源",
"sourcesResetDialogTitle": "重設",
"hostRepositoryLabel": "儲存庫 API",
"sourcesResetDialogText": "真喺要重新設定你嘅來源返去預設值?",
"apiURLResetDialogText": "真喺要重新設定 API URL 返去預設值?",
"apiURLLabel": "API URL",
"selectApiURL": "API URL",
"orgPatchesLabel": "修補檔組織",
"sourcesPatchesLabel": "修補檔來源",
"orgIntegrationsLabel": "項目整合組織",
"contributorsLabel": "貢獻者",
"contributorsHint": "ReVanced 貢獻者列表",
"logsLabel": "分享記錄檔",
"logsHint": "分享 ReVanced Manager 嘅記錄檔",
"aboutLabel": "關於",
"snackbarMessage": "已複製到剪貼簿",
"restartAppForChanges": "重啟應用嚟套用變更",
@@ -113,10 +152,7 @@
"updateNotImplemented": "呢個功能仲未開發"
},
"contributorsView": {
"widgetTitle": "貢獻者",
"integrationsContributors": "整合貢獻者",
"cliContributors": "CLI 貢獻者",
"managerContributors": "修補器貢獻者"
"widgetTitle": "貢獻者"
},
"installErrorDialog": {}
}

View File

@@ -7,13 +7,13 @@
"enabledLabel": "已啟用",
"disabledLabel": "已停用",
"installed": "已安裝: ${version}",
"suggested": "建議: ${version}",
"suggested": "建議版本:${version}",
"yesButton": "是",
"noButton": "否",
"warning": "警告",
"options": "選項",
"notice": "提示",
"noShowAgain": "不再顯示此內容",
"noShowAgain": "不再顯示此內容",
"add": "新增",
"remove": "移除",
"showChangelogButton": "顯示更新記錄",
@@ -24,30 +24,30 @@
"settingsTab": "設定"
},
"homeView": {
"refreshSuccess": "重新整理成",
"refreshSuccess": "重新整理成",
"widgetTitle": "儀表板",
"updatesSubtitle": "更新",
"patchedSubtitle": "已修補的應用程式",
"changeLaterSubtitle": "您可以稍後在設定中更此項。",
"changeLaterSubtitle": "您稍後可以在設定中更此項。",
"noUpdates": "沒有可用的更新",
"WIP": "進行中…",
"WIP": "進行中…",
"noInstallations": "未安裝已修補的應用程式",
"installUpdate": "是否要繼續安裝更新?",
"updateSheetTitle": "更新 ReVanced Manager",
"updateDialogTitle": "有可用的更新",
"updatePatchesSheetTitle": "更新 ReVanced 的修補檔",
"updateChangelogTitle": "更新日誌",
"updateChangelogTitle": "更新記錄檔",
"updateDialogText": "${file} 有新的更新可用。\n\n當前安裝的版本是 ${version}。",
"downloadConsentDialogTitle": "需要下載必要檔案嗎?",
"downloadConsentDialogText": "ReVanced Manager 需要下載必要檔案才能正常工作。",
"downloadConsentDialogText2": "這將連您至 ${url}。",
"downloadConsentDialogText": "ReVanced Manager 需要下載必要檔案才能正常執行。",
"downloadConsentDialogText2": "這將連您至 ${url}。",
"checkUpdateDialogTitle": "檢查更新?",
"checkUpdateDialogText": "您希望 ReVanced Manager 自動檢查更新嗎?",
"notificationTitle": "更新已下載",
"notificationText": "點擊安裝更新",
"downloadingMessage": "正在下載更新…",
"downloadingMessage": "正在下載更新…",
"downloadedMessage": "更新已下載",
"installingMessage": "正在安裝更新…",
"installingMessage": "正在安裝更新…",
"errorDownloadMessage": "無法下載更新",
"errorInstallMessage": "無法安裝更新",
"noConnection": "沒有網際網路連線",
@@ -57,11 +57,11 @@
"infoButton": "資訊"
},
"latestCommitCard": {
"loadingLabel": "正在載入...",
"loadingLabel": "正在載入……",
"timeagoLabel": "${time} 前",
"patcherLabel": "修補工具: ",
"managerLabel": "管理工具: ",
"updateButton": "更新管理工具"
"managerLabel": "Manager",
"updateButton": "更新 Manager"
},
"patcherView": {
"widgetTitle": "修補工具",
@@ -71,7 +71,7 @@
"requiredOptionDialogText": "某些修補檔選項需要設定。"
},
"appSelectorCard": {
"widgetTitle": "選擇一個應用程式",
"widgetTitle": "選擇應用程式",
"widgetTitleSelected": "已選擇的應用程式",
"widgetSubtitle": "未選擇任何應用程式",
"noAppsLabel": "找不到應用程式",
@@ -90,15 +90,15 @@
"widgetSubtitle": "掃榻以待,歡迎造訪!"
},
"appSelectorView": {
"viewTitle": "選擇一個應用程式",
"viewTitle": "選擇應用程式",
"searchBarHint": "搜尋應用程式",
"storageButton": "儲存空間",
"selectFromStorageButton": "從儲存空間中選取",
"errorMessage": "無法使用所選的應用程式",
"downloadToast": "下載功能尚不可用",
"requireSuggestedAppVersionDialogText": "您選擇的應用程式版本與建議版本不符,可能會導致意外問題。請使用建議的版本。\n\n選擇版本:${selected}\n建議版本:${suggested}\n\n要無視此警告繼續請在設定中用「要求使用建議的應用程式版本」。",
"downloadToast": "下載功能暫時無法使用",
"requireSuggestedAppVersionDialogText": "您選擇的應用程式版本與建議版本不符,可能會導致意外問題。請使用建議的版本。\n\n選擇版本:${selected}\n建議版本${suggested}\n\n要無視此警告繼續請在設定中用「要求使用建議的應用程式版本」。",
"featureNotAvailable": "功能尚未實作",
"featureNotAvailableText": "此應用程式為分割 APK只能通過具有 root 權限的掛載來可靠地進行修補和安裝。不過,您可以過從儲存中選擇來修補和安裝完整 APK。"
"featureNotAvailableText": "此應用程式為分割 APK只能通過具有 root 權限的掛載來可靠地進行修補和安裝。不過,您可以過從儲存空間中選擇來修補和安裝完整 APK。"
},
"patchesSelectorView": {
"viewTitle": "選取修補檔",
@@ -107,7 +107,9 @@
"newPatches": "新的修補檔",
"patches": "修補檔",
"doneButton": "完成",
"defaultChip": "預設",
"defaultTooltip": "選取全部預設修補檔",
"noneChip": "無",
"noneTooltip": "取消選取修補檔",
"loadPatchesSelection": "載入修補選取",
"noSavedPatches": "未儲存應用程式選定的修補選項。\n按下 [完成] 以儲存目前的選取。",
@@ -143,44 +145,47 @@
"installButton": "安裝",
"installRootType": "掛載",
"installNonRootType": "普通",
"warning": "用已修補應用程式的自動更新,以避免意外問題。",
"warning": "用已修補應用程式的自動更新,以避免意外問題。",
"pressBackAgain": "再次按「返回」以取消操作",
"openButton": "開啟",
"shareButton": "分享檔案",
"notificationTitle": "ReVanced Manager 正在修補",
"notificationText": "輕觸以返回安裝程式",
"exportApkButtonTooltip": "匯出已修補的 APK 檔案",
"exportLogButtonTooltip": "匯出日誌",
"screenshotDetected": "偵測到螢幕截圖。若您試圖分享日誌,請改為複製文字版本。\n\n是否將日誌複製到剪貼簿?",
"copiedToClipboard": "日誌已複製到剪貼簿",
"noExit": "安裝程式仍在執行,無法結束..."
"exportLogButtonTooltip": "匯出記錄檔",
"screenshotDetected": "偵測到螢幕截圖。若您試圖分享記錄檔,請改為複製文字版本。\n\n是否將記錄檔複製到剪貼簿?",
"copiedToClipboard": "已複製記錄檔到剪貼簿",
"noExit": "安裝程式仍在執行,無法結束……"
},
"settingsView": {
"widgetTitle": "設定",
"appearanceSectionTitle": "外觀",
"teamSectionTitle": "團隊",
"debugSectionTitle": "錯",
"debugSectionTitle": "錯",
"advancedSectionTitle": "進階",
"exportSectionTitle": "匯入和匯出",
"dataSectionTitle": "資料來源",
"themeModeLabel": "應用程式主題",
"systemThemeLabel": "系統預設",
"lightThemeLabel": "色模式",
"lightThemeLabel": "色模式",
"darkThemeLabel": "深色模式",
"dynamicThemeLabel": "質感設計",
"dynamicThemeLabel": "Material You",
"dynamicThemeHint": "享受更貼近您裝置的使用體驗",
"languageLabel": "語言",
"languageUpdated": "已更新語言",
"englishOption": "英文",
"sourcesLabel": "來源",
"sourcesLabelHint": "設定修補檔和整合功能的來源",
"sourcesLabel": "替代來源",
"sourcesLabelHint": "設定 ReVanced 修補和 ReVanced 整合的替代來源",
"sourcesIntegrationsLabel": "整合來源",
"useAlternativeSources": "使用替代來源",
"useAlternativeSourcesHint": "改用 ReVanced 修補檔和 ReVanced 整合的替代來源,而不是 API",
"sourcesResetDialogTitle": "重設",
"sourcesResetDialogText": "確定要將來源資訊重設為預設值嗎?",
"apiURLResetDialogText": "確定要重設 API URL 至預設值嗎?",
"sourcesUpdateNote": "注意:修補檔將自動更新至最新版本。\n\n此操作將向伺服器透露您的 IP 位址。",
"apiURLLabel": "API 鏈接",
"apiURLHint": "設定要使用的 API 的網址",
"selectApiURL": "API 鏈接",
"hostRepositoryLabel": "儲存庫 API",
"sourcesUpdateNote": "注意:這將會自動從替代來源下載 ReVanced 修補檔和 ReVanced 整合。\n\n這將連接您到替代來源。",
"apiURLLabel": "API URL",
"apiURLHint": "設定 ReVanced Manager 的 API URL",
"selectApiURL": "API URL",
"orgPatchesLabel": "修補檔組織",
"sourcesPatchesLabel": "修補檔來源",
"orgIntegrationsLabel": "整合組織",
@@ -191,18 +196,18 @@
"enablePatchesSelectionLabel": "允許變更修補選項",
"enablePatchesSelectionHint": "不要阻止選擇或取消選擇修補檔",
"enablePatchesSelectionWarningText": "變更的修補選項可能導致意外問題。\n\n確定要繼續啟用嗎",
"disablePatchesSelectionWarningText": "即將用修補選項的變更功能,並恢復到預設選項。\n\n仍然要用嗎?",
"disablePatchesSelectionWarningText": "即將用修補選項的變更功能,並還原到預設選項。\n\n仍然要用嗎?",
"autoUpdatePatchesLabel": "自動更新修補檔",
"autoUpdatePatchesHint": "自動更新修補檔至最新版本",
"showUpdateDialogLabel": "顯示更新對話框",
"showUpdateDialogHint": "當有新更新可用時,顯示一個對話框",
"showUpdateDialogHint": "當有新更新可用時,顯示對話框",
"universalPatchesLabel": "顯示通用修補檔",
"universalPatchesHint": "顯示所有應用程式和通用修補檔(可能會拖慢應用程式列表的速度)",
"versionCompatibilityCheckLabel": "檢查版本相容性",
"versionCompatibilityCheckHint": "防止選擇與所選應用程式版本不相容的修補檔",
"requireSuggestedAppVersionLabel": "要求使用建議的應用程式版本",
"requireSuggestedAppVersionHint": "防止選擇非建議版本的應用程式",
"requireSuggestedAppVersionDialogText": "目前選取的應用程式並非建議版本,可能造成未預期的狀況發生。\n\n確定仍要繼續執行嗎",
"requireSuggestedAppVersionDialogText": "目前選取的應用程式並非建議版本,可能導致意外問題。\n\n確定仍要繼續執行嗎",
"aboutLabel": "關於",
"snackbarMessage": "已複製到剪貼簿",
"restartAppForChanges": "重新啟動應用程式以套用變更",
@@ -219,13 +224,13 @@
"resetStoredPatchesLabel": "重設修補選取",
"resetStoredPatchesHint": "重設已儲存的修補選取",
"resetStoredPatchesDialogTitle": "確定要重設修補選取嗎?",
"resetStoredPatchesDialogText": "將恢復為預設的修補檔選項。",
"resetStoredPatchesDialogText": "將還原為預設的修補檔選項。",
"resetStoredPatches": "已重設修補選取",
"resetStoredOptionsLabel": "重設修補選項",
"resetStoredOptionsHint": "重設所有修補選項",
"resetStoredOptionsDialogTitle": "確定要重設修補選項嗎?",
"resetStoredOptionsDialogText": "重設修補檔選項將移除所有已儲存的設定。",
"resetStoredOptions": "所有選項已重設",
"resetStoredOptions": "已重設所有選項",
"deleteLogsLabel": "清除記錄檔",
"deleteLogsHint": "刪除已收集的 ReVanced Manager 記錄檔",
"deletedLogs": "已刪除記錄檔",
@@ -266,12 +271,7 @@
"updateNotImplemented": "這項功能尚未實作"
},
"contributorsView": {
"widgetTitle": "貢獻者",
"patcherContributors": "修補工具貢獻者",
"patchesContributors": "修補檔貢獻者",
"integrationsContributors": "整合貢獻者",
"cliContributors": "CLI 貢獻者",
"managerContributors": "Manager 貢獻者"
"widgetTitle": "貢獻者"
},
"installErrorDialog": {
"mount_version_mismatch": "版本不相符",
@@ -287,12 +287,12 @@
"status_failure_timeout": "安裝逾時",
"status_unknown": "安裝失敗",
"mount_version_mismatch_description": "安裝失敗是由於安裝的應用程式與已修補的應用程式版本不同。\n\n請安裝您正在掛載的應用程式的版本然後重試。",
"mount_no_root_description": "安裝失敗是因為沒有授予 root 存取權限。\n\n請授予 ReVanced 管理器 root 存取權限,然後重試。",
"mount_missing_installation_description": "安裝失敗是因為未在此設備上安裝未修補的應用程式,無法進行掛載。\n\n請在掛載前安裝未修補的應用程式然後重試。",
"mount_no_root_description": "安裝失敗是因為沒有授予 root 存取權限。\n\n請授予 ReVanced Manager root 存取權限,然後重試。",
"mount_missing_installation_description": "安裝失敗是因為未在此裝置上安裝未修補的應用程式,無法進行掛載。\n\n請在掛載前安裝未修補的應用程式然後重試。",
"status_failure_timeout_description": "安裝耗時太長。\n\n您想要再試一次嗎",
"status_failure_storage_description": "安裝失敗是因為儲存空間不足。\n\n請釋放一些空間然後重試。",
"status_failure_invalid_description": "安裝失敗是因為已修補的應用程式無效。\n\n請解除安裝應用程式然後重試",
"status_failure_incompatible_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請調整您的安全設定然後重試。",

View File

@@ -1 +1 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 800 800" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><g id="Logo"><g id="Ring"><circle id="Ring-Background" serif:id="Ring Background" cx="400" cy="400" r="400" style="fill:#1b1b1b;"/><path id="Ring1" serif:id="Ring" d="M400,0c220.766,0 400,179.234 400,400c-0,220.766 -179.234,400 -400,400c-220.766,-0 -400,-179.234 -400,-400c0,-220.766 179.234,-400 400,-400Zm-0,36c200.897,-0 364,163.103 364,364c0,200.897 -163.103,364 -364,364c-200.897,0 -364,-163.103 -364,-364c-0,-200.897 163.103,-364 364,-364Z" style="fill:url(#_Linear1);"/></g><g id="Shape"><path id="V-Shape" serif:id="V Shape" d="M538.74,269.872c1.481,-3.382 1.157,-7.283 -0.863,-10.373c-2.021,-3.091 -5.464,-4.954 -9.156,-4.954c-5.148,0 -10.435,0 -14.165,0c-3.1,0 -5.907,1.834 -7.153,4.672c-12.468,28.396 -78.273,178.273 -100.25,228.328c-1.246,2.838 -4.053,4.671 -7.154,4.671c-3.1,0 -5.907,-1.833 -7.153,-4.671c-21.977,-50.055 -87.782,-199.932 -100.25,-228.328c-1.246,-2.838 -4.053,-4.672 -7.153,-4.672c-3.73,0 -9.017,0 -14.164,0c-3.693,0 -7.135,1.863 -9.156,4.954c-2.02,3.09 -2.344,6.991 -0.863,10.373c23.557,53.766 101.872,232.519 117.871,269.034c1.743,3.979 5.674,6.549 10.018,6.549c6.293,-0 15.408,-0 21.701,-0c4.344,-0 8.275,-2.57 10.018,-6.549c15.999,-36.515 94.315,-215.268 117.872,-269.034Z" style="fill:#fff;"/><path id="Diamond" d="M408.119,395.312c-1.675,2.901 -4.77,4.688 -8.119,4.688c-3.349,-0 -6.444,-1.787 -8.119,-4.688c-16.997,-29.44 -56.156,-97.264 -73.153,-126.704c-1.675,-2.901 -1.675,-6.474 0,-9.375c1.675,-2.901 4.77,-4.688 8.119,-4.688c33.995,0 112.311,0 146.306,0c3.349,0 6.444,1.787 8.119,4.688c1.675,2.901 1.675,6.474 -0,9.375c-16.997,29.44 -56.156,97.264 -73.153,126.704Z" style="fill:url(#_Linear2);"/></g></g><defs><linearGradient id="_Linear1" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(4.89859e-14,800,-800,4.89859e-14,400.001,3.31681e-10)"><stop offset="0" style="stop-color:#f04e98;stop-opacity:1"/><stop offset="0.5" style="stop-color:#5f65d4;stop-opacity:1"/><stop offset="1" style="stop-color:#4e98f0;stop-opacity:1"/></linearGradient><linearGradient id="_Linear2" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.77155e-14,289.317,-282.535,1.73003e-14,400,254.545)"><stop offset="0" style="stop-color:#f04e98;stop-opacity:1"/><stop offset="0.5" style="stop-color:#5f65d4;stop-opacity:1"/><stop offset="1" style="stop-color:#4e98f0;stop-opacity:1"/></linearGradient></defs></svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg width="100%" height="100%" viewBox="0 0 800 800" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;"><g id="Logo"><g id="Ring"><circle id="Ring-Background" serif:id="Ring Background" cx="400" cy="400" r="400" style="fill:#1b1b1b;"/><path id="Ring1" serif:id="Ring" d="M400,0c220.766,0 400,179.234 400,400c-0,220.766 -179.234,400 -400,400c-220.766,-0 -400,-179.234 -400,-400c0,-220.766 179.234,-400 400,-400Zm-0,36c200.897,-0 364,163.103 364,364c0,200.897 -163.103,364 -364,364c-200.897,0 -364,-163.103 -364,-364c-0,-200.897 163.103,-364 364,-364Z" style="fill:url(#_Linear1);"/></g><g id="Shape"><path id="V-Shape" serif:id="V Shape" d="M538.74,269.872c1.481,-3.382 1.157,-7.283 -0.863,-10.373c-2.021,-3.091 -5.464,-4.954 -9.156,-4.954c-5.148,0 -10.435,0 -14.165,0c-3.1,0 -5.907,1.834 -7.153,4.672c-12.468,28.396 -78.273,178.273 -100.25,228.328c-1.246,2.838 -4.053,4.671 -7.154,4.671c-3.1,0 -5.907,-1.833 -7.153,-4.671c-21.977,-50.055 -87.782,-199.932 -100.25,-228.328c-1.246,-2.838 -4.053,-4.672 -7.153,-4.672c-3.73,0 -9.017,0 -14.164,0c-3.693,0 -7.135,1.863 -9.156,4.954c-2.02,3.09 -2.344,6.991 -0.863,10.373c23.557,53.766 101.872,232.519 117.871,269.034c1.743,3.979 5.674,6.549 10.018,6.549c6.293,-0 15.408,-0 21.701,-0c4.344,-0 8.275,-2.57 10.018,-6.549c15.999,-36.515 94.315,-215.268 117.872,-269.034Z" style="fill:#fff;"/><path id="Diamond" d="M408.119,395.312c-1.675,2.901 -4.77,4.688 -8.119,4.688c-3.349,-0 -6.444,-1.787 -8.119,-4.688c-16.997,-29.44 -56.156,-97.264 -73.153,-126.704c-1.675,-2.901 -1.675,-6.474 0,-9.375c1.675,-2.901 4.77,-4.688 8.119,-4.688c33.995,0 112.311,0 146.306,0c3.349,0 6.444,1.787 8.119,4.688c1.675,2.901 1.675,6.474 -0,9.375c-16.997,29.44 -56.156,97.264 -73.153,126.704Z" style="fill:url(#_Linear2);"/></g></g><defs><linearGradient id="_Linear1" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(4.89859e-14,800,-800,4.89859e-14,400.001,3.31681e-10)"><stop offset="0" style="stop-color:#f04e98;stop-opacity:1"/><stop offset="0.5" style="stop-color:#5f65d4;stop-opacity:1"/><stop offset="1" style="stop-color:#4e98f0;stop-opacity:1"/></linearGradient><linearGradient id="_Linear2" x1="0" y1="0" x2="1" y2="0" gradientUnits="userSpaceOnUse" gradientTransform="matrix(1.77155e-14,289.317,-282.535,1.73003e-14,400,254.545)"><stop offset="0" style="stop-color:#f04e98;stop-opacity:1"/><stop offset="0.5" style="stop-color:#5f65d4;stop-opacity:1"/><stop offset="1" style="stop-color:#4e98f0;stop-opacity:1"/></linearGradient></defs></svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

View File

@@ -1,7 +1,7 @@
project_id_env: "CROWDIN_PROJECT_ID"
api_token_env: "CROWDIN_PERSONAL_TOKEN"
preserve_hierarchy: true
preserve_hierarchy: false
files:
- source: /assets/i18n/strings.i18n.json
translation: /assets/i18n/strings_%locale_with_underscore%.i18n.json

View File

@@ -1,16 +1,16 @@
# 💼 Prerequisites
In order to use ReVanced Manager, certain requirements must be met.
To use ReVanced Manager, you need to fulfill certain requirements.
## 🤝 Requirements
- An Android device running Android 8 or higher
- Any device architecture except ARMv7[^1]
[^1]: This constraint only applies to patches, that require patching APK resources which is why some patches may or may not work on ARMv7 architecture. You can find out, which architectures your device supports here: [⚙️ Configuring ReVanced Manager](2_4_settings.md#%E2%84%B9%EF%B8%8F-about).
[^1]: Patching on ARMv7 is limited to bytecode patching but may work in certain circumstances for resource patching. You can check your device architecture in ReVanced Manager settings.
## ⏭️ What's next
The next page will guide you through patching an app.
The next page will explain how to install ReVanced Manager.
Continue: [⬇️ Installation](1_installation.md)

View File

@@ -1,14 +1,14 @@
# ⬇️ Installation
In order to use ReVanced on your Android device, ReVanced Manager must be installed.
To use ReVanced on your Android device, ReVanced Manager must be first installed.
## ✅ Installation steps
1. Download the latest version of ReVanced Manager from [here](https://github.com/revanced/revanced-manager/releases/latest)
1. Download the latest version of ReVanced Manager at [revanced.app/download](https://revanced.app/download) or from [GitHub releases](https://github.com/ReVanced/revanced-manager/releases)
2. Install ReVanced Manager
## ⏭️ What's next
The next page will guide you through using ReVanced Manager.
The next page explain how to use ReVanced Manager to update ReVanced Manager and manage or patch apps.
Continue: [🛠️ Usage](2_usage.md)

View File

@@ -1,6 +1,6 @@
# 🧩 Patching apps
The following pages will guide you through using ReVanced Manager to patch apps.
Learn how to use ReVanced Manager to patch apps.
## ✅ Steps to patch apps
@@ -8,31 +8,38 @@ The following pages will guide you through using ReVanced Manager to patch apps.
2. Tap on the **Select an app** card
3. Choose an app to patch[^1]
> [!NOTE]
> The suggested version is visible in each app's card.
> Note
> The suggested version is visible on each app's card.
> You can tap on it to open a search query to obtain an APK file for the selected app with the suggested version
> 💡 Tip
> If you are prompted to select an APK file from storage because the selected app is a split APK, tap on the "Suggested version" label to open a search query to obtain said APK file
4. Tap on the **Select patches** card and select the patches you want to apply[^2].
> [!NOTE]
> Note
> Some patches have options that can or must be configured by tapping on ⚙️ icon next to the patch name.
>[!WARNING]
> If you see a warning you can click on it for more information.
> ⚠️ Warning
> If you see a warning, you can click on it for more information.
5. Tap on the **Done** then **Patch** button
> [!WARNING]
> The patching process may take ~5 minutes. Exiting the app may cancel patching or increase the time it takes to patch.
> ⚠️ Warning
> The patching process may take ~5 minutes. Exiting the app may cancel patching or increase the time it takes to patch significantly.
6. Tap on the **Install** button
> [!NOTE]
> Note
> If you are rooted, you can mount the patched app on top of the original app.[^3]
> Optionally, you may export the patched app to storage using the option in the bottom left corner.
[^1]: Non-root users may be prompted to select an APK from storage, in which case you must source the APK file yourself. ReVanced does not provide any APK files.
[^1]: You can select installed apps or select APK files from storage. ReVanced does not provide any APK files, which is why you have to source them yourself.
[^2]: It is suggested to use the default set of patches by tapping on the **Default** button above the list of patches.
[^3]: Mounting the patched app on top of the original app will only work if the installed app version matches the version of the app selected in step 3. above.
## ⏭️ What's next
The next page will bring you back to the usage page.
The next page will lead back to the usage page.
Continue: [🛠️ Usage](2_usage.md)

View File

@@ -1,15 +1,15 @@
# 🧰 Managing patched apps
After patching an app, you may want to manage it. This page will guide you through managing patched apps.
Learn how to view, open and uninstall patched apps.
## ✅ Steps to manage patched apps
## ✅ Steps to view, open and uninstall patched apps
1. Tap on the **Dashboard** tab in the bottom navigation bar
2. Tap on the **Info** button for the app you want to manage
3. Choose one of the options from the menu
3. Choose any of the options from the menu to view, open or uninstall the app
## ⏭️ What's next
The next page will bring you back to the usage page.
The next page will lead back to the usage page.
Continue: [🛠️ Usage](2_usage.md)

View File

@@ -1,6 +1,6 @@
# 🔄 Updating ReVanced Manager
In order to keep up with the latest features and bug fixes, it is recommended to keep ReVanced Manager up to date.
Learn how to update ReVanced Manager.
## ✅ Updating steps
@@ -9,6 +9,6 @@ In order to keep up with the latest features and bug fixes, it is recommended to
## ⏭️ What's next
The next page will bring you back to the usage page.
The next page will lead back to the usage page.
Continue: [🛠️ Usage](2_usage.md)

View File

@@ -1,52 +1,65 @@
# ⚙️ Configuring ReVanced Manager
ReVanced Manager has settings that can be configured to your liking.
Learn how to configure ReVanced Manager.
## 🎛️ Essential settings
- ### 🪛 Allow changing patch selection
Allows the user to change the patch selection from the default selection.
By default, you can not change the patch selection and the default selection is used. Enabling this will allow you to change the patch selection.
- ### 🔍 Version compatibility check
> ⚠️ Warning
> Changing the selection may cause unexpected issues. Unless you know what you are doing, it is recommended to keep this disabled.
Constrains patches to supported app versions. Disable this to patch any version of an app.
- ### 📦 Require suggested app version
> [!WARNING]
> Disabling this may cause issues if the patches are not compatible with the app version.
By default, ReVanced Manager allows you to patch an app if the suggested version to patch matches the version of the app you selected. Disabling this will allow you to patch an app even if the suggested version does not match the version of the app you selected.
> ⚠️ Warning
> Patches are more likely to fail on versions that are not suggested by ReVanced Manager. Unless you know what you are doing, it is recommended to keep this enabled.
- ### ✅ Version compatibility check
By default, ReVanced Manager does not allow you to select patches that are not compatible with the version of the app you selected. Disabling this will allow you to select patches that are not compatible with the version of the app you selected.
> ⚠️ Warning
> Patches are more likely to fail on versions they are not compatible with. Unless you know what you are doing, it is recommended to keep this enabled.
- ### 🧑‍🔬 Show universal patches
Reveals patches which can be applied to any app.
By default, ReVanced Manager only shows patches that are compatible with specific apps. Enabling this will show patches that are intended to work on all apps.
> [!WARNING]
> These patches may not work on all apps.
- ### 🧬 Sources
Override the API and download patches from a different source.
> ⚠️ Warning
> Patches that are intended to may not work on all apps. Unless you know what you are doing, it is recommended to keep this disabled.
- ### 🔗 API URL
API to use to fetch updates and patches from.
Configure the API URL to use. The API is used to download patches and updates.
- ### 💾 Imports & Exports
- ### 🧬 Use alternative source
You can import, export or reset the following settings:
Use alternative sources for patches and integrations instead of the API.
- 🔑 Keystore
- 📄 Patch selection
- ⚙️ Patch options
> Note
> ReVanced Manager will still use the API for updates.
> [!NOTE]
> This is particularly useful if you want to backup or reset your settings.
- ### 💾 Import, export and reset options
You can import, export or reset saved settings. This includes:
- 🔑 Keystore used to sign patched apps
- 📄 Remembered selection of patches for each app
- ⚙️ Remembered patch options
> Note
> These can be used to backup and restore or reset settings to default in case of issues.
- ### ❓ About
View information about your device and ReVanced Manager. This includes the version of ReVanced Manager and supported architectures of your device.
View information about your device and ReVanced Manager. This includes the version of ReVanced Manager and architectures your device supports.
## ⏭️ What's next
The next page will bring you back to the usage page.
The next page will lead back to the usage page.
Continue: [🛠️ Usage](2_usage.md)
Continue: [🛠️ Usage](2_usage.md)

View File

@@ -1,6 +1,6 @@
# 🛠️ Usage
The following pages will guide you through using ReVanced Manager to patch apps, manage patched apps, and update ReVanced Manager.
Learn how to use ReVanced Manager to manage and patch apps or update ReVanced Manager.
## 📖 Table of contents
@@ -11,6 +11,6 @@ The following pages will guide you through using ReVanced Manager to patch apps,
## ⏭️ What's next
The next page will guide you through troubleshooting ReVanced Manager.
The next page will explain how to troubleshoot issues with ReVanced Manager.
Continue: [❔ Troubleshooting](3_troubleshooting.md)

View File

@@ -1,26 +1,27 @@
# ❔ Troubleshooting
In case you encounter any issues while using ReVanced Manager, please refer to this page for possible solutions.
In case you encounter any issues while using ReVanced Manager, this page will help you troubleshoot them.
- 💉 Patching fails with an error
- 💉 Common issues during or after patching
Make sure ReVanced Manager is up to date by following [🔄 Updating ReVanced Manager](2_3_updating.md) and select the **Default** button when choosing patches.
- Make sure ReVanced Manager is up to date by following [🔄 Updating ReVanced Manager](2_3_updating.md)
- You may have changed settings in ReVanced Manager that are not recommended to change. Please review the warnings that appear when adjusting these settings and reset them to their default configuration as explained in [⚙️ Configuring ReVanced Manager](2_4_settings.md)
- 🚫 App not installed as package conflicts with an existing package
An existing installation of the app you're trying to patch conflicts with the patched app (i.e., signature mismatch or downgrade). Uninstall the existing app before installing the patched app.
> 💡 Tip
> This may also be caused by changing settings in ReVanced Manager that are not recommended to change. Please review the warnings that appear when adjusting these settings and reset them to their default configuration as explained in [⚙️ Configuring ReVanced Manager](2_4_settings.md)
- ❗️ Error code `135`, `139` or `1` when patching the app
You may be trying to patch a split APK[^1]. This may not work under certain circumstances. In such a case, patch a full APK.
Your device may otherwise be unsupported. Please look at the [Prerequisites](0_prerequisites.md) page for supported devices.
Alternatively, you can use [ReVanced CLI](https://github.com/revanced/revanced-cli) to patch the app.
- You may be trying to patch a split APK[^1]. This can fail under certain circumstances. If that is the case, patch a full APK
- Your device may otherwise be unsupported. Please look at the [Prerequisites](0_prerequisites.md) page to see if your device is supported. Alternatively, you can use [ReVanced CLI](https://github.com/revanced/revanced-cli) to patch the app.
- 🚨 Patched app crashes on launch
Select the **Default** button when choosing patches.
This may also be caused by changing settings in ReVanced Manager that are not recommended to change. Please review the warnings that appear when adjusting these settings and reset them to their default configuration as explained in [⚙️ Configuring ReVanced Manager](2_4_settings.md)
## ⏭️ What's next

View File

@@ -1,37 +1,41 @@
# 🛠️ Building from source
This page will guide you through building ReVanced Manager from source.
Learn how to build ReVanced Manager from source.
1\. Setup the Flutter environment for your [platform](https://docs.flutter.dev/get-started/install)
1. Setup the Flutter environment for your [platform](https://docs.flutter.dev/get-started/install)
2\. Clone the repository
2. Clone the repository
```sh
git clone https://github.com/revanced/revanced-manager.git && cd revanced-manager
```
3\. Get dependencies
3. Get dependencies
```sh
flutter pub get
```
4\. Generate translation file
4. Generate temporary files
```sh
dart run slang
dart run build_runner build -d
```
5\. Delete conflicting outputs
> [!TIP]
> Must be run every time you sync your local repository with the remote repository.
```sh
dart run build_runner build --delete-conflicting-outputs
```
6\. Build the APK
5. Build the APK
```sh
flutter build apk
```
> [!NOTE]
> If the build fails due to authentication, you may need to authenticate to GitHub Packages.
> Create a PAT with the scope `read:packages` [here](https://github.com/settings/tokens/new?scopes=read:packages&description=ReVanced) and add your token to ~/.gradle/gradle.properties.
>
> Example `gradle.properties` file:
>
> ```properties
> gpr.user = user
> gpr.key = key
> ```

View File

@@ -23,39 +23,6 @@ class GithubAPI {
Future<Map<String, dynamic>?> getLatestRelease(
String repoName,
) async {
try {
final response = await _dio.get(
'/repos/$repoName/releases',
);
return response.data[0];
} on Exception catch (e) {
if (kDebugMode) {
print(e);
}
return null;
}
}
Future<Map<String, dynamic>?> getPatchesRelease(
String repoName,
String version,
) async {
try {
final response = await _dio.get(
'/repos/$repoName/releases/tags/$version',
);
return response.data;
} on Exception catch (e) {
if (kDebugMode) {
print(e);
}
return null;
}
}
Future<Map<String, dynamic>?> getLatestPatchesRelease(
String repoName,
) async {
try {
final response = await _dio.get(
@@ -85,6 +52,9 @@ class GithubAPI {
updates++;
}
for (int i = 1; i < updates; i++) {
if (response.data[i]['prerelease']) {
continue;
}
releases.update(
'body',
(value) =>
@@ -105,32 +75,7 @@ class GithubAPI {
}
}
Future<File?> getLatestReleaseFile(
String extension,
String repoName,
) async {
try {
final Map<String, dynamic>? release = await getLatestRelease(repoName);
if (release != null) {
final Map<String, dynamic>? asset =
(release['assets'] as List<dynamic>).firstWhereOrNull(
(asset) => (asset['name'] as String).endsWith(extension),
);
if (asset != null) {
return await _downloadManager.getSingleFile(
asset['browser_download_url'],
);
}
}
} on Exception catch (e) {
if (kDebugMode) {
print(e);
}
}
return null;
}
Future<File?> getPatchesReleaseFile(
Future<File?> getReleaseFile(
String extension,
String repoName,
String version,
@@ -142,8 +87,10 @@ class GithubAPI {
url,
);
}
final Map<String, dynamic>? release =
await getPatchesRelease(repoName, version);
final response = await _dio.get(
'/repos/$repoName/releases/tags/$version',
);
final Map<String, dynamic>? release = response.data;
if (release != null) {
final Map<String, dynamic>? asset =
(release['assets'] as List<dynamic>).firstWhereOrNull(

View File

@@ -53,14 +53,6 @@ class ManagerAPI {
String? patchesVersion = '';
String? integrationsVersion = '';
bool isDefaultPatchesRepo() {
return getPatchesRepo().toLowerCase() == defaultPatchesRepo;
}
bool isDefaultIntegrationsRepo() {
return getIntegrationsRepo().toLowerCase() == defaultIntegrationsRepo;
}
Future<void> initialize() async {
_prefs = await SharedPreferences.getInstance();
isRooted = await _rootAPI.isRooted();
@@ -73,14 +65,23 @@ class ManagerAPI {
}
// Migrate to new API URL if not done yet as the old one is sunset.
final bool hasMigrated = _prefs.getBool('migratedToNewApiUrl') ?? false;
if (!hasMigrated) {
final bool hasMigratedToNewApi = _prefs.getBool('migratedToNewApiUrl') ?? false;
if (!hasMigratedToNewApi) {
final String apiUrl = getApiUrl().toLowerCase();
if (apiUrl.contains('releases.revanced.app')) {
await setApiUrl(''); // Reset to default.
_prefs.setBool('migratedToNewApiUrl', true);
}
}
final bool hasMigratedToAlternativeSource = _prefs.getBool('migratedToAlternativeSource') ?? false;
if (!hasMigratedToAlternativeSource) {
final String patchesRepo = getPatchesRepo();
final String integrationsRepo = getIntegrationsRepo();
final bool usingAlternativeSources = patchesRepo.toLowerCase() != defaultPatchesRepo || integrationsRepo.toLowerCase() != defaultIntegrationsRepo;
_prefs.setBool('useAlternativeSources', usingAlternativeSources);
_prefs.setBool('migratedToAlternativeSource', true);
}
}
Future<int> getSdkVersion() async {
@@ -102,14 +103,7 @@ class ManagerAPI {
}
String getRepoUrl() {
return _prefs.getString('repoUrl') ?? defaultRepoUrl;
}
Future<void> setRepoUrl(String url) async {
if (url.isEmpty || url == ' ') {
url = defaultRepoUrl;
}
await _prefs.setString('repoUrl', url);
return defaultRepoUrl;
}
String getPatchesDownloadURL() {
@@ -219,6 +213,15 @@ class ManagerAPI {
await _prefs.setStringList('usedPatches-$packageName', patchesJson);
}
void useAlternativeSources(bool value) {
_prefs.setBool('useAlternativeSources', value);
_toast.showBottom(t.settingsView.restartAppForChanges);
}
bool isUsingAlternativeSources() {
return _prefs.getBool('useAlternativeSources') ?? false;
}
Option? getPatchOption(String packageName, String patchName, String key) {
final String? optionJson =
_prefs.getString('patchOption-$packageName-$patchName-$key');
@@ -416,10 +419,10 @@ class ManagerAPI {
Future<File?> downloadPatches() async {
try {
final String repoName = getPatchesRepo();
final String repoName = !isUsingAlternativeSources() ? defaultPatchesRepo : getPatchesRepo();
final String currentVersion = await getCurrentPatchesVersion();
final String url = getPatchesDownloadURL();
return await _githubAPI.getPatchesReleaseFile(
return await _githubAPI.getReleaseFile(
'.jar',
repoName,
currentVersion,
@@ -435,10 +438,10 @@ class ManagerAPI {
Future<File?> downloadIntegrations() async {
try {
final String repoName = getIntegrationsRepo();
final String repoName = !isUsingAlternativeSources() ? defaultIntegrationsRepo : getIntegrationsRepo();
final String currentVersion = await getCurrentIntegrationsVersion();
final String url = getIntegrationsDownloadURL();
return await _githubAPI.getPatchesReleaseFile(
return await _githubAPI.getReleaseFile(
'.apk',
repoName,
currentVersion,
@@ -460,14 +463,14 @@ class ManagerAPI {
}
Future<String?> getLatestPatchesReleaseTime() async {
if (isDefaultPatchesRepo()) {
if (!isUsingAlternativeSources()) {
return await _revancedAPI.getLatestReleaseTime(
'.json',
defaultPatchesRepo,
);
} else {
final release =
await _githubAPI.getLatestPatchesRelease(getPatchesRepo());
await _githubAPI.getLatestRelease(getPatchesRepo());
if (release != null) {
final DateTime timestamp =
DateTime.parse(release['created_at'] as String);
@@ -493,7 +496,7 @@ class ManagerAPI {
}
Future<String?> getLatestIntegrationsVersion() async {
if (isDefaultIntegrationsRepo()) {
if (!isUsingAlternativeSources()) {
return await _revancedAPI.getLatestReleaseVersion(
'.apk',
defaultIntegrationsRepo,
@@ -509,14 +512,14 @@ class ManagerAPI {
}
Future<String?> getLatestPatchesVersion() async {
if (isDefaultPatchesRepo()) {
if (!isUsingAlternativeSources()) {
return await _revancedAPI.getLatestReleaseVersion(
'.json',
defaultPatchesRepo,
);
} else {
final release =
await _githubAPI.getLatestPatchesRelease(getPatchesRepo());
await _githubAPI.getLatestRelease(getPatchesRepo());
if (release != null) {
return release['tag_name'];
} else {
@@ -666,7 +669,7 @@ class ManagerAPI {
);
}
Future<void> rePatchedSavedApps() async {
Future<void> reAssessPatchedApps() async {
final List<PatchedApplication> patchedApps = getPatchedApps();
// Remove apps that are not installed anymore.

View File

@@ -171,26 +171,26 @@ class PatcherAPI {
if (integrationsFile != null) {
_dataDir.createSync();
_tmpDir.createSync();
final Directory workDir = _tmpDir.createTempSync('tmp-');
final File inputFile = File('${workDir.path}/base.apk');
final File patchedFile = File('${workDir.path}/patched.apk');
final Directory workDir = await _tmpDir.createTemp('tmp-');
final File inApkFile = File('${workDir.path}/in.apk');
await File(apkFilePath).copy(inApkFile.path);
outFile = File('${workDir.path}/out.apk');
final Directory cacheDir = Directory('${workDir.path}/cache');
cacheDir.createSync();
final String originalFilePath = apkFilePath;
final Directory tmpDir =
Directory('${workDir.path}/revanced-temporary-files');
try {
await patcherChannel.invokeMethod(
'runPatcher',
{
'originalFilePath': originalFilePath,
'inputFilePath': inputFile.path,
'patchedFilePath': patchedFile.path,
'inFilePath': inApkFile.path,
'outFilePath': outFile!.path,
'integrationsPath': integrationsFile.path,
'selectedPatches': selectedPatches.map((p) => p.name).toList(),
'options': options,
'cacheDirPath': cacheDir.path,
'tmpDirPath': tmpDir.path,
'keyStoreFilePath': _keyStoreFile.path,
'keystorePassword': _managerAPI.getKeystorePassword(),
},
@@ -300,6 +300,18 @@ class PatcherAPI {
);
bool cleanInstall = false;
final bool isFixable = statusCode == 4 || statusCode == 5;
var description = t['installErrorDialog.${statusValue}_description'];
if (statusCode == 2) {
description = description(
packageName: statusCode == 2
? {
'packageName': status['otherPackageName'],
}
: null,
);
}
await showDialog(
context: _managerAPI.ctx!,
builder: (context) => AlertDialog(
@@ -309,15 +321,7 @@ class PatcherAPI {
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
Text(
t['installErrorDialog.${statusValue}_description'](
packageName: statusCode == 2
? {
'packageName': status['otherPackageName'],
}
: null,
),
),
Text(description),
],
),
actions: (status == null)
@@ -462,7 +466,6 @@ enum InstallStatus {
mountNoRoot(1),
mountVersionMismatch(1.1),
mountMissingInstallation(1.2),
statusFailureBlocked(2),
installFailedVerificationFailure(3.1),
statusFailureInvalid(4),
@@ -473,6 +476,7 @@ enum InstallStatus {
statusFailureTimeout(8);
const InstallStatus(this.statusCode);
final double statusCode;
static String byCode(num code) {

View File

@@ -33,7 +33,7 @@ class RevancedAPI {
final response = await _dio.get('/contributors');
final List<dynamic> repositories = response.data['repositories'];
for (final Map<String, dynamic> repo in repositories) {
final String name = repo['name'].toLowerCase();
final String name = repo['name'];
contributors[name] = repo['contributors'];
}
} on Exception catch (e) {
@@ -58,7 +58,7 @@ class RevancedAPI {
final List<dynamic> tools = response.data['tools'];
return tools.firstWhereOrNull(
(t) =>
(t['repository'] as String).toLowerCase() == repoName.toLowerCase() &&
(t['repository'] as String) == repoName &&
(t['name'] as String).endsWith(extension),
);
} on Exception catch (e) {

View File

@@ -2,13 +2,10 @@ import 'dart:ui';
import 'package:dynamic_color/dynamic_color.dart';
import 'package:dynamic_themes/dynamic_themes.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:revanced_manager/app/app.locator.dart';
import 'package:revanced_manager/app/app.router.dart';
import 'package:revanced_manager/gen/strings.g.dart';
import 'package:revanced_manager/services/manager_api.dart';
import 'package:revanced_manager/theme.dart';
import 'package:stacked_services/stacked_services.dart';
@@ -28,7 +25,6 @@ class DynamicThemeBuilder extends StatefulWidget {
class _DynamicThemeBuilderState extends State<DynamicThemeBuilder>
with WidgetsBindingObserver {
Brightness brightness = PlatformDispatcher.instance.platformBrightness;
final ManagerAPI _managerAPI = locator<ManagerAPI>();
@override
void initState() {
@@ -36,22 +32,6 @@ class _DynamicThemeBuilderState extends State<DynamicThemeBuilder>
WidgetsBinding.instance.addObserver(this);
}
@override
void didChangePlatformBrightness() {
setState(() {
brightness = PlatformDispatcher.instance.platformBrightness;
});
if (_managerAPI.getThemeMode() < 2) {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(
systemNavigationBarIconBrightness: brightness == Brightness.light
? Brightness.dark
: Brightness.light,
),
);
}
}
@override
Widget build(BuildContext context) {
return DynamicColorBuilder(
@@ -70,6 +50,7 @@ class _DynamicThemeBuilderState extends State<DynamicThemeBuilder>
textTheme: GoogleFonts.robotoTextTheme(ThemeData.light().textTheme),
);
final ThemeData darkDynamicTheme = ThemeData(
brightness: Brightness.dark,
useMaterial3: true,
navigationBarTheme: NavigationBarThemeData(
labelTextStyle: MaterialStateProperty.all(

View File

@@ -78,7 +78,7 @@ class _AppSelectorViewState extends State<AppSelectorView> {
),
),
)
: model.allApps.isEmpty
: model.allApps.isEmpty && model.apps.isEmpty
? const AppSkeletonLoader()
: Padding(
padding: const EdgeInsets.symmetric(horizontal: 12.0)

View File

@@ -54,7 +54,7 @@ class AppSelectorViewModel extends BaseViewModel {
.toSet()
.where((name) => !apps.any((app) => app.packageName == name))
.toList();
noApps = allApps.isEmpty;
noApps = allApps.isEmpty && apps.isEmpty;
return allApps;
}
@@ -258,7 +258,7 @@ class AppSelectorViewModel extends BaseViewModel {
try {
final String? result = await FlutterFileDialog.pickFile(
params: const OpenFileDialogParams(
fileExtensionsFilter: ['apk'],
mimeTypesFilter: ['application/vnd.android.package-archive'],
),
);
if (result != null) {

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