mirror of
https://github.com/ReVanced/revanced-manager.git
synced 2025-05-18 06:56:16 +08:00
Compare commits
40 Commits
v1.20.0
...
v1.21.0-de
Author | SHA1 | Date | |
---|---|---|---|
a99406f0a9 | |||
73368b58be | |||
ca14e77ba3 | |||
cafdfcda47 | |||
5c68d513a3 | |||
fc52560244 | |||
46f6a49a7a | |||
c13827e8e1 | |||
e0a6de2c2b | |||
afdba00722 | |||
9084c71aa3 | |||
8fc5fb6a80 | |||
5f762c5442 | |||
8b21ec1ea3 | |||
e83fbb864e | |||
f03af17f71 | |||
2c3e2e639f | |||
cc85b393dc | |||
fa6ad214f9 | |||
3ceb63be1d | |||
200483d733 | |||
6b03f3a169 | |||
612a3bab49 | |||
3ac08512f3 | |||
1adc673c44 | |||
1aa1bd84cf | |||
4a72267d41 | |||
7e0f18e3b7 | |||
aab5d4411b | |||
e5d83f424a | |||
bc300d81d9 | |||
5e6cc86c7e | |||
d91ea62903 | |||
f00dc4d3e6 | |||
6c0c961ca0 | |||
a99de99202 | |||
a31ec9d1fe | |||
a23f032fd2 | |||
95a8234e2d | |||
a7e481c827 |
10
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
10
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -70,7 +70,7 @@ body:
|
||||
|
||||
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).
|
||||
- **Do not submit a duplicate bug report**: Search for existing bug reports [here](https://github.com/ReVanced/revanced-manager/issues?q=label%3A%22Bug+report%22).
|
||||
- **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
|
||||
@ -99,14 +99,14 @@ body:
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: ReVanced Manager logs
|
||||
description: Export logs in ReVanced Manager settings.
|
||||
description: Export logs from the ReVanced Manager settings.
|
||||
render: shell
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Patch logs
|
||||
description: Export logs in "Patcher" screen.
|
||||
description: Export logs from the "Patcher" screen.
|
||||
render: shell
|
||||
validations:
|
||||
required: false
|
||||
@ -116,11 +116,11 @@ body:
|
||||
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.
|
||||
- label: I have checked all open and closed bug reports and this is not a duplicate.
|
||||
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
|
||||
- label: The bug is only related to ReVanced Manager.
|
||||
required: true
|
||||
|
7
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
7
.github/ISSUE_TEMPLATE/feature_request.yml
vendored
@ -70,7 +70,7 @@ body:
|
||||
|
||||
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).
|
||||
- **Do not submit a duplicate feature request**: Search for existing feature requests [here](https://github.com/ReVanced/revanced-manager/issues?q=label%3A%22Feature+request%22).
|
||||
- **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
|
||||
@ -79,7 +79,6 @@ body:
|
||||
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
|
||||
@ -98,9 +97,9 @@ body:
|
||||
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.
|
||||
- label: I have checked all open and closed feature requests and this is not a duplicate.
|
||||
required: true
|
||||
- label: I have chosen an appropriate title.
|
||||
required: true
|
||||
- label: The feature request is only related to ReVanced Manager
|
||||
- label: The feature request is only related to ReVanced Manager.
|
||||
required: true
|
||||
|
1
.github/workflows/build_pull_request.yml
vendored
1
.github/workflows/build_pull_request.yml
vendored
@ -61,6 +61,7 @@ jobs:
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "stable"
|
||||
flutter-version: 3.22.x
|
||||
cache: ${{ inputs.flutter-cache }}
|
||||
|
||||
- name: Get dependencies
|
||||
|
1
.github/workflows/release.yml
vendored
1
.github/workflows/release.yml
vendored
@ -36,6 +36,7 @@ jobs:
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "stable"
|
||||
flutter-version: 3.22.x
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm install
|
||||
|
14
.github/workflows/sync_crowdin.yml
vendored
14
.github/workflows/sync_crowdin.yml
vendored
@ -5,6 +5,7 @@ on:
|
||||
schedule:
|
||||
- cron: 00 12 * * 1
|
||||
push:
|
||||
branches: dev
|
||||
paths:
|
||||
- assets/i18n/*.json
|
||||
- assets/i18n/*.dart
|
||||
@ -20,8 +21,11 @@ jobs:
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Dart
|
||||
uses: dart-lang/setup-dart@v1
|
||||
- name: Setup Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
cache: true
|
||||
flutter-version: 3.22.x
|
||||
|
||||
- name: Sync translations from Crowdin
|
||||
uses: crowdin/github-action@v1
|
||||
@ -49,6 +53,12 @@ jobs:
|
||||
sudo chmod 777 *.json
|
||||
dart nuke.dart >> $GITHUB_STEP_SUMMARY
|
||||
|
||||
- name: Validation of Translation Strings
|
||||
run: |
|
||||
dart pub get
|
||||
dart run slang
|
||||
flutter analyze lib/gen/strings.g.dart --no-fatal-infos --no-fatal-warnings
|
||||
|
||||
- name: Commit translations
|
||||
run: |
|
||||
git config user.name revanced-bot
|
||||
|
@ -98,10 +98,6 @@ To build a ReVanced Manager, you can follow the [documentation](/docs).
|
||||
|
||||
You can find the documentation for ReVanced Manager [here](/docs).
|
||||
|
||||
### 👋 Contributing
|
||||
|
||||
Thank you for considering contributing to ReVanced Manager. You can find the contribution guidelines [here](/CONTRIBUTING.md).
|
||||
|
||||
## ⚖️ License
|
||||
|
||||
ReVanced Manager is licensed under the GPLv3 license. Please see the [license file](LICENSE) for more information.
|
||||
|
@ -23,10 +23,11 @@ if (flutterVersionName == null) {
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdk flutter.compileSdkVersion
|
||||
compileSdk 34
|
||||
ndkVersion flutter.ndkVersion
|
||||
|
||||
compileOptions {
|
||||
coreLibraryDesugaringEnabled true
|
||||
sourceCompatibility JavaVersion.VERSION_17
|
||||
targetCompatibility JavaVersion.VERSION_17
|
||||
}
|
||||
@ -113,6 +114,7 @@ flutter {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.0.4") // https://pub.dev/packages/flutter_local_notifications#gradle-setup
|
||||
implementation("app.revanced:revanced-patcher:19.3.1")
|
||||
implementation("app.revanced:revanced-library:2.2.1")
|
||||
}
|
||||
|
@ -26,7 +26,8 @@
|
||||
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"
|
||||
|
@ -1,7 +1,7 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.6-bin.zip
|
||||
distributionSha256Sum=9631d53cf3e74bfa726893aee1f8994fee4e060c401335946dba2156f440f24c
|
||||
distributionSha256Sum=544c35d6bd849ae8a5ed0bcea39ba677dc40f49df7d1835561582da2009b961d
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
|
@ -18,8 +18,8 @@ pluginManagement {
|
||||
|
||||
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
|
||||
id "com.android.application" version "8.4.1" apply false
|
||||
id "org.jetbrains.kotlin.android" version "2.0.0" apply false
|
||||
}
|
||||
|
||||
include ":app"
|
||||
|
@ -118,16 +118,18 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "Custom value",
|
||||
"setToNull": "Set to null",
|
||||
"nullValue": "This option value is currently null",
|
||||
"resetOptionsTooltip": "Reset patch options",
|
||||
"viewTitle": "Patch options",
|
||||
"saveOptions": "Save",
|
||||
"addOptions": "Add options",
|
||||
"deselectPatch": "Deselect patch",
|
||||
"unselectPatch": "Unselect patch",
|
||||
"tooltip": "More input options",
|
||||
"selectFilePath": "Select file path",
|
||||
"selectFolder": "Select folder",
|
||||
"selectOption": "Select option",
|
||||
"requiredOption": "This option is required",
|
||||
"requiredOption": "Setting this option is required",
|
||||
"unsupportedOption": "This option is not supported",
|
||||
"requiredOptionNull": "The following options have to be set:\n\n${options}"
|
||||
},
|
||||
|
@ -16,7 +16,7 @@
|
||||
"noShowAgain": "لا تعرض هذا مرة أخرى",
|
||||
"add": "إضافة",
|
||||
"remove": "إزالة",
|
||||
"showChangelogButton": "إظهار سجل التغييرات",
|
||||
"showChangelogButton": "عرض سجل التغييرات",
|
||||
"showUpdateButton": "عرض التحديث",
|
||||
"navigationView": {
|
||||
"dashboardTab": "لوحة التحكم",
|
||||
@ -30,7 +30,7 @@
|
||||
"patchedSubtitle": "التطبيقات المعدلة",
|
||||
"changeLaterSubtitle": "يمكنك تغيير هذا في الإعدادات في وقت لاحق.",
|
||||
"noUpdates": "لا توجد تحديثات متاحة",
|
||||
"WIP": "العمل قيد التقدم...",
|
||||
"WIP": "العمل قيد التنفيذ...",
|
||||
"noInstallations": "لا توجد تطبيقات معدلة مثبتة",
|
||||
"installUpdate": "هل تريد الاستمرار في تثبيت التحديث؟",
|
||||
"updateSheetTitle": "تحديث ReVanced Manager",
|
||||
@ -38,17 +38,17 @@
|
||||
"updatePatchesSheetTitle": "تحديث تعديلات ReVanced",
|
||||
"updateChangelogTitle": "سجل التغييرات",
|
||||
"updateDialogText": "يتوفر تحديث جديد لـ ${file}.\n\nالإصدار المثبت حاليًا هو ${version}.",
|
||||
"downloadConsentDialogTitle": "تحميل الملفات المطلوبة؟",
|
||||
"downloadConsentDialogText": "يحتاج مدير ReVanced إلى تنزيل الملفات الضرورية ليعمل بشكل صحيح.",
|
||||
"downloadConsentDialogTitle": "تنزيل الملفات اللازمة؟",
|
||||
"downloadConsentDialogText": "يحتاج مدير ReVanced إلى تنزيل الملفات اللازمة ليعمل بشكل صحيح.",
|
||||
"downloadConsentDialogText2": "سيؤدي هذا إلى توصيلك بـ ${url}.",
|
||||
"checkUpdateDialogTitle": "التحقق من وجود تحديثات؟",
|
||||
"checkUpdateDialogText": "هل تريد أن يقوم مدير ReVanced بالتحقق من وجود تحديثات تلقائياً؟",
|
||||
"checkUpdateDialogTitle": "التحقق من توفر تحديثات؟",
|
||||
"checkUpdateDialogText": "هل تريد أن يقوم مدير ReVanced بالتحقق من توفر تحديثات تلقائيًا؟",
|
||||
"notificationTitle": "تم تنزيل التحديث",
|
||||
"notificationText": "انقر لتثبيت التحديث",
|
||||
"downloadingMessage": "جارٍ تحميل التحديث...",
|
||||
"notificationText": "اضغط لتثبيت التحديث",
|
||||
"downloadingMessage": "جارٍ تنزيل التحديث...",
|
||||
"downloadedMessage": "تم تنزيل التحديث",
|
||||
"installingMessage": "جارٍ تثبيت التحديث...",
|
||||
"errorDownloadMessage": "تعذر تحميل التحديث",
|
||||
"errorDownloadMessage": "تعذر تنزيل التحديث",
|
||||
"errorInstallMessage": "تعذّر تثبيت التحديث",
|
||||
"noConnection": "لا يوجد اتصال بالإنترنت",
|
||||
"updatesDisabled": "تحديث تطبيق تم تعديله معطل حاليًا. أعد تعديل التطبيق مرة أخرى."
|
||||
@ -71,17 +71,17 @@
|
||||
"requiredOptionDialogText": "يجب ضبط بعض خيارات التعديل."
|
||||
},
|
||||
"appSelectorCard": {
|
||||
"widgetTitle": "اختر تطبيق",
|
||||
"widgetTitle": "حدد تطبيق",
|
||||
"widgetTitleSelected": "التطبيق المحدد",
|
||||
"widgetSubtitle": "لم يتم تحديد أي تطبيق",
|
||||
"noAppsLabel": "لم يتم العثور على تطبيقات",
|
||||
"currentVersion": "الحالي",
|
||||
"suggestedVersion": "المقترحة",
|
||||
"suggestedVersion": "المقترح",
|
||||
"anyVersion": "أي إصدار"
|
||||
},
|
||||
"patchSelectorCard": {
|
||||
"widgetTitle": "حدد التعديلات",
|
||||
"widgetTitleSelected": "التعديلات التي تم اختيارها",
|
||||
"widgetTitleSelected": "التعديلات التي تم تحديدها",
|
||||
"widgetSubtitle": "حدد تطبيق أولاً",
|
||||
"widgetEmptySubtitle": "لم يتم تحديد أي تعديلات"
|
||||
},
|
||||
@ -90,12 +90,12 @@
|
||||
"widgetSubtitle": "تابعونا!"
|
||||
},
|
||||
"appSelectorView": {
|
||||
"viewTitle": "اختر تطبيق",
|
||||
"viewTitle": "حدد تطبيق",
|
||||
"searchBarHint": "البحث عن تطبيق",
|
||||
"storageButton": "التخزين",
|
||||
"selectFromStorageButton": "اختيار من التخزين",
|
||||
"selectFromStorageButton": "تحديد من التخزين",
|
||||
"errorMessage": "لا يمكن استخدام التطبيق المحدد",
|
||||
"downloadToast": "خاصية التحميل غير متوفرة بعد",
|
||||
"downloadToast": "خاصية التنزيل غير متوفرة بعد",
|
||||
"requireSuggestedAppVersionDialogText": "الإصدار من التطبيق الذي حددته لا يتطابق مع الإصدار المقترح الذي يمكن أن يؤدي إلى مشاكل غير متوقعة. الرجاء استخدام الإصدار المقترح.\n\nالإصدار المحدد: ${selected}\nالإصدار المقترح: ${suggested}\n\nللاستمرار على أي حال، قم بتعطيل \"طلب إصدار التطبيق المقترح\" في الإعدادات.",
|
||||
"featureNotAvailable": "الميزة غير مُدمَجة بعد",
|
||||
"featureNotAvailableText": "هذا التطبيق عبارة عن ملف Spilt APK ولا يمكن تعديله وتثبيته بشكل موثوق إلا عن طريق التثبيت باستخدام أذونات Root. ومع ذلك، يمكنك تعديل وتثبيت ملف APK كاملًا عن طريق تحديده من وحدة التخزين."
|
||||
@ -118,21 +118,23 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "تخصيص القيمة",
|
||||
"setToNull": "تعيين إلى فارغ",
|
||||
"nullValue": "قيمة هذا الخيار فارغة حاليا",
|
||||
"resetOptionsTooltip": "إعادة تعيين خيارات التعديل",
|
||||
"viewTitle": "خيارات التعديل",
|
||||
"saveOptions": "حفظ",
|
||||
"addOptions": "إضافة خيارات",
|
||||
"deselectPatch": "إلغاء تحديد التعديل",
|
||||
"unselectPatch": "إلغاء تحديد التصحيح",
|
||||
"tooltip": "المزيد من خيارات الإدخال",
|
||||
"selectFilePath": "تحديد مسار الملف",
|
||||
"selectFolder": "تحديد مجلد",
|
||||
"selectOption": "تحديد خيار",
|
||||
"requiredOption": "هذا الخيار مطلوب",
|
||||
"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ستحتاج إلى تشغيل \"السماح بتغيير تحديد التعديل\" في الإعدادات قبل تغيير أي تحديد تعديل.",
|
||||
@ -141,14 +143,14 @@
|
||||
"installerView": {
|
||||
"widgetTitle": "المثبت",
|
||||
"installType": "تحديد نوع التثبيت",
|
||||
"installTypeDescription": "حدد نوع التثبيت للمتابعة.",
|
||||
"installTypeDescription": "تحديد نوع التثبيت للمتابعة.",
|
||||
"installButton": "تثبيت",
|
||||
"installRootType": "تحميل",
|
||||
"installRootType": "Mount",
|
||||
"installNonRootType": "عادي",
|
||||
"warning": "قم بتعطيل التحديثات التلقائية للتطبيق المعدل لتجنب المشكلات غير المتوقعة.",
|
||||
"pressBackAgain": "اضغط رجوع مرة اخرى للإلغاء",
|
||||
"openButton": "فتح",
|
||||
"shareButton": "شارك ملف",
|
||||
"shareButton": "شارك مِلَفّ",
|
||||
"notificationTitle": "ReVanced Manager يقوم بعملية التعديل",
|
||||
"notificationText": "انقر للعودة إلى المثبت",
|
||||
"exportApkButtonTooltip": "تصدير APK المعدل",
|
||||
@ -164,7 +166,7 @@
|
||||
"debugSectionTitle": "تصحيح الأخطاء",
|
||||
"advancedSectionTitle": "إعدادات متقدمة",
|
||||
"exportSectionTitle": "استيراد و تصدير",
|
||||
"dataSectionTitle": "مصادر البيانات",
|
||||
"dataSectionTitle": "مصدر البيانات",
|
||||
"themeModeLabel": "مظهر التطبيق",
|
||||
"systemThemeLabel": "النظام",
|
||||
"lightThemeLabel": "فاتح (ابيض)",
|
||||
@ -173,7 +175,7 @@
|
||||
"dynamicThemeHint": "استمتع بتجربة أقرب إلى جهازك",
|
||||
"languageLabel": "اللغة",
|
||||
"languageUpdated": "تم تحديث اللغة",
|
||||
"englishOption": "الإنجليزية",
|
||||
"englishOption": "English",
|
||||
"sourcesLabel": "مصادر بديلة",
|
||||
"sourcesLabelHint": "قم بتكوين المصادر البديلة لتعديلات ReVanced وتكاملات ReVanced",
|
||||
"sourcesIntegrationsLabel": "مصدر الـدمج",
|
||||
@ -200,7 +202,7 @@
|
||||
"autoUpdatePatchesLabel": "تحديث التعديلات تلقائيًا",
|
||||
"autoUpdatePatchesHint": "تحديث التعديلات تلقائيًا إلى الإصدار الأحدث",
|
||||
"showUpdateDialogLabel": "عرض مربع حوار التحديث",
|
||||
"showUpdateDialogHint": "إظهار مربع حوار عندما يتوفر تحديث جديد",
|
||||
"showUpdateDialogHint": "عرض مربع حوار عندما يتوفر تحديث جديد",
|
||||
"universalPatchesLabel": "عرض التعديلات العامة",
|
||||
"universalPatchesHint": "عرض جميع التطبيقات والتعديلات العامة (قد تؤدي إلى إبطاء قائمة التطبيقات)",
|
||||
"versionCompatibilityCheckLabel": "التحقق من توافق الإصدار",
|
||||
@ -255,11 +257,14 @@
|
||||
"widgetTitle": "معلومات التطبيق",
|
||||
"openButton": "فتح",
|
||||
"uninstallButton": "إلغاء التثبيت",
|
||||
"unmountButton": "Unmount",
|
||||
"rootDialogTitle": "خطأ",
|
||||
"unmountDialogText": "هل أنت متأكد من أنك تريد Unmount لهذا التطبيق؟",
|
||||
"uninstallDialogText": "هل أنت متأكد من أنك تريد إلغاء تثبيت هذا التطبيق؟",
|
||||
"rootDialogText": "تم تثبيت التطبيق بأذونات المستخدم المتميز، لكن ReVanced Manager ليس لديه أذونات حاليًا.\nالرجاء منح أذونات المستخدم المتميز أولاً.",
|
||||
"packageNameLabel": "اسم الحُزْمَة",
|
||||
"installTypeLabel": "نوع التثبيت",
|
||||
"mountTypeLabel": "Mount",
|
||||
"regularTypeLabel": "عادي",
|
||||
"patchedDateLabel": "تاريخ التعديل",
|
||||
"appliedPatchesLabel": "التعديلات المطبقة",
|
||||
@ -271,8 +276,8 @@
|
||||
"widgetTitle": "المساهمون"
|
||||
},
|
||||
"installErrorDialog": {
|
||||
"mount_version_mismatch": "نسخة غير متطابقة",
|
||||
"mount_no_root": "لا توجد صلاحيات روت",
|
||||
"mount_version_mismatch": "الإصدار غير متطابق",
|
||||
"mount_no_root": "لا توجد صلاحيات Root",
|
||||
"mount_missing_installation": "التثبيت غير متوفر",
|
||||
"status_failure_blocked": "التثبيت محظور",
|
||||
"install_failed_verification_failure": "فشل التحقق",
|
||||
|
@ -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,46 +172,98 @@
|
||||
"dynamicThemeLabel": "Материална Тема",
|
||||
"dynamicThemeHint": "Насладете се на преживяване по-близо до устройството си",
|
||||
"languageLabel": "Език",
|
||||
"languageUpdated": "Езикът е обновен",
|
||||
"englishOption": "Английски",
|
||||
"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) на ReVanced Manager",
|
||||
"selectApiURL": "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}",
|
||||
@ -173,5 +273,30 @@
|
||||
"contributorsView": {
|
||||
"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": "Инсталацията не е успешна поради неизвестна причина. Моля, опитайте отново."
|
||||
}
|
||||
}
|
@ -1,9 +1,9 @@
|
||||
{
|
||||
"okButton": "ঠিক আছে",
|
||||
"cancelButton": "বাতিল",
|
||||
"cancelButton": "বাতিল করুন",
|
||||
"dismissButton": "বাতিল করুন",
|
||||
"quitButton": "কাটুন",
|
||||
"updateButton": "আপডেট",
|
||||
"updateButton": "হালনাগাদ করুন",
|
||||
"enabledLabel": "সক্রিয় রয়েছে",
|
||||
"disabledLabel": "নিষ্ক্রিয় হয়েছে",
|
||||
"installed": "ইনস্টলকৃত: ${version}",
|
||||
@ -16,7 +16,7 @@
|
||||
"noShowAgain": "পুনরায় দেখাবেন না",
|
||||
"add": "যুক্ত করুন",
|
||||
"remove": "অপসারণ করুন",
|
||||
"showChangelogButton": "চেঞ্জলগ দেখান",
|
||||
"showChangelogButton": "পরিবর্তনসূচী দেখান",
|
||||
"showUpdateButton": "আপডেট দেখান",
|
||||
"navigationView": {
|
||||
"dashboardTab": "ড্যাশবোর্ড",
|
||||
@ -50,7 +50,7 @@
|
||||
"installingMessage": "আপডেট ইনস্টল করা হচ্ছে...",
|
||||
"errorDownloadMessage": "আপডেট ডাউনলোড করতে সফল হয় নি",
|
||||
"errorInstallMessage": "আপডেট ইনস্টল করতে সফল হয় নি",
|
||||
"noConnection": "কোনো ইন্টারনেট সংযোগ নেই",
|
||||
"noConnection": "কোন ইন্টারনেট সংযোগ নেই",
|
||||
"updatesDisabled": "প্যাচ করা অ্যাপকে আপডেট করা বর্তমানে সম্ভব নয়। অ্যাপটি পুনরায় প্যাচ করুন।"
|
||||
},
|
||||
"applicationItem": {
|
||||
@ -288,8 +288,15 @@
|
||||
"status_unknown": "ইনস্টলেশন ব্যর্থ হয়েছে",
|
||||
"mount_version_mismatch_description": "প্যাচ অ্যাপ ও ইনস্টলকৃত অ্যাপের সংস্করণ ভিন্ন হওয়ার কারণে ইনস্টলেশন ব্যর্থ হয়েছে।\n\nআপনি যে সংস্করণটি মাউন্ট করতে চাচ্ছেন তা আগে ইনস্টল করুন অতঃপর আবার চেষ্টা করুন।",
|
||||
"mount_no_root_description": "রুট প্রবেশাধিকারের অনুমতি না দেয়ার কারণে ইনস্টলেশন ব্যর্থ হয়েছে।\n\nReVanced Manager এর রুট প্রবেশাধিকার অনুমতি দিন এবং আবার চেষ্টা করুন।",
|
||||
"mount_missing_installation_description": "এটির উপর মাউন্ট করার জন্য এই ডিভাইসে আনপ্যাচড অ্যাপ ইনস্টল না হওয়ার কারণে ইনস্টলেশন ব্যর্থ হয়েছে.\n\nমাউন্ট করার আগে আনপ্যাচড অ্যাপ ইনস্টল করুন এবং আবার চেষ্টা করুন.",
|
||||
"mount_missing_installation_description": "এটির উপর মাউন্ট করার জন্য এই ডিভাইসে আনপ্যাচড অ্যাপ ইনস্টল না হওয়ার কারণে ইনস্টলেশন ব্যর্থ হয়েছে।\n\nমাউন্ট করার আগে আনপ্যাচড অ্যাপ ইনস্টল করুন এবং আবার চেষ্টা করুন।",
|
||||
"status_failure_timeout_description": "ইন্সটলেশন শেষ হতে অনেক সময় লেগেছে.\n\nআপনি আবার চেষ্টা করতে চান?",
|
||||
"status_failure_storage_description": "অপর্যাপ্ত সঞ্চয়স্থানের কারণে ইনস্টলেশন ব্যর্থ হয়েছে.\n\nকিছু জায়গা খালি করুন এবং আবার চেষ্টা করুন."
|
||||
"status_failure_storage_description": "অপর্যাপ্ত সঞ্চয়স্থানের কারণে ইনস্টলেশন ব্যর্থ হয়েছে.\n\nকিছু জায়গা খালি করুন এবং আবার চেষ্টা করুন.",
|
||||
"status_failure_invalid_description": "প্যাচ করা অ্যাপটি অবৈধ হওয়ার কারণে ইনস্টলেশন ব্যর্থ হয়েছে.\n\nঅ্যাপটি আনইনস্টল করে আবার চেষ্টা করবেন?",
|
||||
"status_failure_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": "একটি অজানা কারণে ইনস্টলেশন ব্যর্থ হয়েছে. অনুগ্রহপূর্বক আবার চেষ্টা করুন."
|
||||
}
|
||||
}
|
@ -97,7 +97,8 @@
|
||||
"errorMessage": "Vybranou aplikaci nelze použít",
|
||||
"downloadToast": "Funkce stahování zatím není dostupná",
|
||||
"requireSuggestedAppVersionDialogText": "Vybraná verze aplikace se neshoduje s navrhovanou verzí, což může vést k neočekávaným problémům. Prosím použijte navrhovanou verzi.\n\nVybraná verze: ${selected}\nNavrhovaná verze: ${suggested}\n\nChcete-li přesto pokračovat, zakažte v nastavení \"Vyžadovat navrhovanou verzi aplikace\".",
|
||||
"featureNotAvailable": "Funkce není implementována"
|
||||
"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",
|
||||
@ -111,36 +112,49 @@
|
||||
"noneChip": "Žádné",
|
||||
"noneTooltip": "Zrušit výběr všech patchů",
|
||||
"loadPatchesSelection": "Načíst výběr záplat",
|
||||
"noPatchesFound": "Pro vybranou aplikaci nebyly nalezeny žádné záplaty"
|
||||
"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",
|
||||
"setToNull": "Nastavit na null",
|
||||
"nullValue": "Tato hodnota volby je v současné době null",
|
||||
"resetOptionsTooltip": "Obnovit nastavení záplat",
|
||||
"viewTitle": "Nastavení záplat",
|
||||
"saveOptions": "Uložit",
|
||||
"addOptions": "Přidat možnosti",
|
||||
"deselectPatch": "Odznačit záplatu",
|
||||
"unselectPatch": "Zrušit výběr patch",
|
||||
"tooltip": "Další možnosti vstupu",
|
||||
"selectFilePath": "Zvolte cestu k souboru",
|
||||
"selectFolder": "Vybrat složku",
|
||||
"selectOption": "Vybrat možnost",
|
||||
"requiredOption": "Tato možnost je vyžadována",
|
||||
"requiredOption": "Nastavení této možnosti je vyžadováno",
|
||||
"unsupportedOption": "Tato možnost není podporována",
|
||||
"requiredOptionNull": "Tyto možnosti musí být nastaveny:\n\n${options}"
|
||||
},
|
||||
"patchItem": {
|
||||
"unsupportedDialogText": "Výběrem této záplaty může dojít k chybám.\n\nVerze aplikace: ${packageVersion}\nAktuálně podporované verze:\n${supportedVersions}",
|
||||
"unsupportedPatchVersion": "Záplata není podporována touto verzí aplikace."
|
||||
"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..."
|
||||
@ -149,18 +163,31 @@
|
||||
"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",
|
||||
"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",
|
||||
"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",
|
||||
@ -168,7 +195,20 @@
|
||||
"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",
|
||||
@ -176,25 +216,55 @@
|
||||
"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 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",
|
||||
@ -207,16 +277,25 @@
|
||||
},
|
||||
"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?",
|
||||
|
@ -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.",
|
||||
@ -78,29 +118,39 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "Tilpasset værdi",
|
||||
"setToNull": "Sæt til nul",
|
||||
"nullValue": "Denne valgmulighed værdi er i øjeblikket nul",
|
||||
"resetOptionsTooltip": "Nulstil patch indstillinger",
|
||||
"viewTitle": "Patch indstillinger",
|
||||
"saveOptions": "Gem",
|
||||
"addOptions": "Tilføj indstillinger",
|
||||
"deselectPatch": "Fravælg patch",
|
||||
"unselectPatch": "Fravælg patch",
|
||||
"tooltip": "Flere input-indstillinger",
|
||||
"selectFilePath": "Vælg fil sti",
|
||||
"selectFolder": "Vælg mappe",
|
||||
"requiredOption": "Denne indstilling er påkrævet",
|
||||
"selectOption": "Vælg indstilling",
|
||||
"requiredOption": "Indstilling af 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,16 +166,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",
|
||||
"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: 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",
|
||||
@ -134,13 +196,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",
|
||||
@ -188,10 +257,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,5 +275,30 @@
|
||||
"contributorsView": {
|
||||
"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."
|
||||
}
|
||||
}
|
@ -118,16 +118,18 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "Benutzerdefinierter Wert",
|
||||
"setToNull": "Auf Null setzen",
|
||||
"nullValue": "Dieser Optionswert ist derzeit null",
|
||||
"resetOptionsTooltip": "Patch-Optionen zurücksetzen",
|
||||
"viewTitle": "Patch-Optionen",
|
||||
"saveOptions": "Speichern",
|
||||
"addOptions": "Option hinzufügen",
|
||||
"deselectPatch": "Patch abwählen",
|
||||
"unselectPatch": "Patch entfernen",
|
||||
"tooltip": "Weitere Eingabeoptionen",
|
||||
"selectFilePath": "Dateipfad auswählen",
|
||||
"selectFolder": "Ordner auswählen",
|
||||
"selectOption": "Option auswählen",
|
||||
"requiredOption": "Diese Option ist erforderlich.",
|
||||
"requiredOption": "Einstellung dieser Option ist erforderlich",
|
||||
"unsupportedOption": "Dieser Vorgang ist nicht unterstützt.",
|
||||
"requiredOptionNull": "Die folgenden Optionen müssen gesetzt sein:\n\n${options}"
|
||||
},
|
||||
|
@ -118,16 +118,18 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "Προσαρμοσμένη τιμή",
|
||||
"setToNull": "Ορισμός σε null",
|
||||
"nullValue": "Αυτή η επιλογή είναι κενή",
|
||||
"resetOptionsTooltip": "Επαναφορά επιλογών τροποποιήσεων",
|
||||
"viewTitle": "Επιλογές τροποποιήσεων",
|
||||
"saveOptions": "Αποθήκευση",
|
||||
"addOptions": "Προσθήκη επιλογών",
|
||||
"deselectPatch": "Αποεπιλέξτε τροποποιήσεις",
|
||||
"unselectPatch": "Αποεπιλογή patch",
|
||||
"tooltip": "Περισσότερες επιλογές εισόδου",
|
||||
"selectFilePath": "Επιλογή τοποθεσίας αρχείου",
|
||||
"selectFolder": "Επιλογή φακέλου",
|
||||
"selectOption": "Επιλογή ρύθμισης",
|
||||
"requiredOption": "Αυτή η επιλογή απαιτείται",
|
||||
"requiredOption": "Απαιτείται ρύθμιση αυτής της επιλογής",
|
||||
"unsupportedOption": "Αυτή η επιλογή δεν υποστηρίζεται",
|
||||
"requiredOptionNull": "Πρέπει να οριστούν οι παρακάτω επιλογές:\n\n${options}"
|
||||
},
|
||||
|
@ -59,7 +59,7 @@
|
||||
"latestCommitCard": {
|
||||
"loadingLabel": "Cargando...",
|
||||
"timeagoLabel": "Hace ${time}",
|
||||
"patcherLabel": "Patcher: ",
|
||||
"patcherLabel": "Parcheador: ",
|
||||
"managerLabel": "Manager: ",
|
||||
"updateButton": "Actualizar Manager"
|
||||
},
|
||||
@ -118,16 +118,18 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "Valor personalizado",
|
||||
"setToNull": "Establecer a nulo",
|
||||
"nullValue": "Este valor de opción es nulo actualmente",
|
||||
"resetOptionsTooltip": "Restablecer a los valores por defecto",
|
||||
"viewTitle": "Configuración\\ndel parche",
|
||||
"saveOptions": "Guardar configuración",
|
||||
"addOptions": "Agregar configuración",
|
||||
"deselectPatch": "Deseleccionar parche",
|
||||
"unselectPatch": "Deseleccionar parche",
|
||||
"tooltip": "Más opciones de entrada",
|
||||
"selectFilePath": "Seleccionar ruta del archivo",
|
||||
"selectFolder": "Seleccionar carpeta",
|
||||
"selectOption": "Seleccionar opción",
|
||||
"requiredOption": "Esta opción es requerida",
|
||||
"requiredOption": "La configuración de esta opción es necesaria",
|
||||
"unsupportedOption": "Esta opción no es compatible",
|
||||
"requiredOptionNull": "Tenés que configurar las siguientes opciones:\\n\\n${options}"
|
||||
},
|
||||
|
@ -118,16 +118,18 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "Valor personalizado",
|
||||
"setToNull": "Establecer a nulo",
|
||||
"nullValue": "Este valor de opción es nulo actualmente",
|
||||
"resetOptionsTooltip": "Restablecer las opciones de parche",
|
||||
"viewTitle": "Opciones de parche",
|
||||
"saveOptions": "Guardar",
|
||||
"addOptions": "Añadir opciones",
|
||||
"deselectPatch": "Deseleccionar parche",
|
||||
"unselectPatch": "Deseleccionar parche",
|
||||
"tooltip": "Más opciones de entrada",
|
||||
"selectFilePath": "Seleccionar ruta del archivo",
|
||||
"selectFolder": "Seleccionar carpeta",
|
||||
"selectOption": "Seleccionar opción",
|
||||
"requiredOption": "Esta opción es necesaria",
|
||||
"requiredOption": "La configuración de esta opción es necesaria",
|
||||
"unsupportedOption": "Esta opción no está disponible",
|
||||
"requiredOptionNull": "Hay que establecer las siguientes opciones:\n\n${options}"
|
||||
},
|
||||
|
@ -41,7 +41,7 @@
|
||||
"downloadConsentDialogTitle": "¿Descargar archivos necesarios?",
|
||||
"downloadConsentDialogText": "ReVanced Manager necesita descargar los archivos necesarios para funcionar correctamente.",
|
||||
"downloadConsentDialogText2": "Esto te conectará a ${url}.",
|
||||
"checkUpdateDialogTitle": "Comprobar actualizaciones",
|
||||
"checkUpdateDialogTitle": "¿Comprobar actualizaciones?",
|
||||
"checkUpdateDialogText": "¿Quieres que ReVanced Manager compruebe si hay actualizaciones automáticamente?",
|
||||
"notificationTitle": "Actualización descargada",
|
||||
"notificationText": "Toca para instalar la actualización",
|
||||
@ -91,14 +91,14 @@
|
||||
},
|
||||
"appSelectorView": {
|
||||
"viewTitle": "Seleccionar una aplicación",
|
||||
"searchBarHint": "Buscar...",
|
||||
"searchBarHint": "Buscar aplicación",
|
||||
"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",
|
||||
"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 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, puedes parchear e instalar una aplicación en formato APK seleccionándola desde el almacenamiento."
|
||||
"featureNotAvailableText": "Esta aplicación es una APK dividida y solo puede ser parcheada e instalada confiablemente al montar con permisos de root. Sin embargo, puedes parchear e instalar una APK completa seleccionándola en el almacenamiento."
|
||||
},
|
||||
"patchesSelectorView": {
|
||||
"viewTitle": "Selecciona parches",
|
||||
@ -118,16 +118,18 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "Valor personalizado",
|
||||
"setToNull": "Establecer a nulo",
|
||||
"nullValue": "Este valor de opción es nulo actualmente",
|
||||
"resetOptionsTooltip": "Restablecer las opciones de parche",
|
||||
"viewTitle": "Opciones de parche",
|
||||
"saveOptions": "Guardar",
|
||||
"addOptions": "Añadir opciones",
|
||||
"deselectPatch": "Deseleccionar parche",
|
||||
"unselectPatch": "Deseleccionar parche",
|
||||
"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",
|
||||
"requiredOption": "La configuración de esta opción es necesaria",
|
||||
"unsupportedOption": "Esta opción no está disponible",
|
||||
"requiredOptionNull": "Hay que configurar las siguientes opciones:\n\n${options}"
|
||||
},
|
||||
@ -143,7 +145,7 @@
|
||||
"installType": "Seleccione el tipo de instalación",
|
||||
"installTypeDescription": "Selecciona el tipo de instalación con el que quieres continuar.",
|
||||
"installButton": "Instalar",
|
||||
"installRootType": "Montar (requiere acceso root)",
|
||||
"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",
|
||||
@ -196,7 +198,7 @@
|
||||
"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 el cambiar la selección de parches.\nSe restaurará la selección de parches por defecto.",
|
||||
"disablePatchesSelectionWarningText": "Estás a punto de desactivar cambiar la selección de los parches.\nLa selección predeterminada de los parches será restaurada.\n\n¿Desactivar 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",
|
||||
@ -252,7 +254,7 @@
|
||||
"keystoreSelectorErrorMessage": "No se puede utilizar el archivo de repositorio de claves seleccionado"
|
||||
},
|
||||
"appInfoView": {
|
||||
"widgetTitle": "Informacion de la applicacion",
|
||||
"widgetTitle": "Informacion de la aplicación",
|
||||
"openButton": "Abrir",
|
||||
"uninstallButton": "Desinstalar",
|
||||
"unmountButton": "Desmontar",
|
||||
@ -262,7 +264,7 @@
|
||||
"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 (requiere acceso root)",
|
||||
"mountTypeLabel": "Montar",
|
||||
"regularTypeLabel": "Normal",
|
||||
"patchedDateLabel": "Fecha de parcheo",
|
||||
"appliedPatchesLabel": "Parches aplicados",
|
||||
|
@ -118,16 +118,18 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "Oma arvo",
|
||||
"setToNull": "Aseta tyhjäksi",
|
||||
"nullValue": "Tämä valinta arvo on tällä hetkellä nolla",
|
||||
"resetOptionsTooltip": "Palauta paikkausasetukset",
|
||||
"viewTitle": "Paikkausasetukset",
|
||||
"saveOptions": "Tallenna",
|
||||
"addOptions": "Lisää asetuksia",
|
||||
"deselectPatch": "Poista paikkauksen valinta",
|
||||
"unselectPatch": "Peru korjauksen valinta",
|
||||
"tooltip": "Enemmän syöteasetuksia",
|
||||
"selectFilePath": "Valitse tiedostosijainti",
|
||||
"selectFolder": "Valitse kansio",
|
||||
"selectOption": "Valitse asetus",
|
||||
"requiredOption": "Tämä asetus vaaditaan",
|
||||
"requiredOption": "Tämän asetuksen asettaminen on pakollinen",
|
||||
"unsupportedOption": "Tätä asetusta ei tueta",
|
||||
"requiredOptionNull": "Seuraavat asetukset on määritettävä:\n\n${options}"
|
||||
},
|
||||
@ -164,6 +166,7 @@
|
||||
"debugSectionTitle": "Vianselvitys",
|
||||
"advancedSectionTitle": "Lisäasetukset",
|
||||
"exportSectionTitle": "Tuonti/vienti",
|
||||
"dataSectionTitle": "Tietolähteet",
|
||||
"themeModeLabel": "Sovelluksen teema",
|
||||
"systemThemeLabel": "Järjestelmä",
|
||||
"lightThemeLabel": "Vaalea",
|
||||
@ -173,11 +176,17 @@
|
||||
"languageLabel": "Kieli",
|
||||
"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": "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",
|
||||
"orgPatchesLabel": "Paikkauksien organisaatio",
|
||||
"sourcesPatchesLabel": "Paikkauksien lähde",
|
||||
|
@ -29,7 +29,7 @@
|
||||
"updatesSubtitle": "Mises à jour",
|
||||
"patchedSubtitle": "Applications patchées",
|
||||
"changeLaterSubtitle": "Vous pouvez changer cela dans les paramètres ultérieurement.",
|
||||
"noUpdates": "Aucune mise à jour n'est disponible",
|
||||
"noUpdates": "Aucune mise à jour disponible",
|
||||
"WIP": "Bientôt disponible...",
|
||||
"noInstallations": "Aucune application patchée installée",
|
||||
"installUpdate": "Continuer à installer la mise à jour ?",
|
||||
@ -51,7 +51,7 @@
|
||||
"errorDownloadMessage": "Impossible de télécharger la mise à jour",
|
||||
"errorInstallMessage": "Impossible d'installer la mise à jour",
|
||||
"noConnection": "Aucune connexion internet",
|
||||
"updatesDisabled": "La mise à jour d'une application patchée est actuellement désactivée. Repatchez l'application à nouveau."
|
||||
"updatesDisabled": "La mise à jour d'une application patchée est actuellement désactivée. Repatchez l'application."
|
||||
},
|
||||
"applicationItem": {
|
||||
"infoButton": "Info"
|
||||
@ -82,8 +82,8 @@
|
||||
"patchSelectorCard": {
|
||||
"widgetTitle": "Sélectionner les patchs",
|
||||
"widgetTitleSelected": "Patchs sélectionnés",
|
||||
"widgetSubtitle": "Choisissez d'abord une application",
|
||||
"widgetEmptySubtitle": "Aucun patch n'est sélectionné"
|
||||
"widgetSubtitle": "Sélectionnez d'abord une application",
|
||||
"widgetEmptySubtitle": "Aucun patch sélectionné"
|
||||
},
|
||||
"socialMediaCard": {
|
||||
"widgetTitle": "Réseaux sociaux",
|
||||
@ -118,24 +118,26 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "Valeur personnalisée",
|
||||
"setToNull": "Définir à NULL",
|
||||
"nullValue": "Cette valeur d'option est actuellement nulle",
|
||||
"resetOptionsTooltip": "Réinitialiser les options de patch",
|
||||
"viewTitle": "Options de patch",
|
||||
"saveOptions": "Enregistrer",
|
||||
"addOptions": "Ajouter des options",
|
||||
"deselectPatch": "Désélectionner tous les patchs",
|
||||
"unselectPatch": "Désélectionner le patch",
|
||||
"tooltip": "Plus d'options d'entrée",
|
||||
"selectFilePath": "Sélectionner l'emplacement du fichier",
|
||||
"selectFolder": "Sélectionner le dossier",
|
||||
"selectOption": "Sélectionner une option",
|
||||
"requiredOption": "Cette option est obligatoire",
|
||||
"unsupportedOption": "Cette option n'est pas supportée",
|
||||
"requiredOption": "Définir cette option est nécessaire",
|
||||
"unsupportedOption": "Cette option n'est pas prise en charge",
|
||||
"requiredOptionNull": "Les options suivantes doivent être définies :\n\n${options}"
|
||||
},
|
||||
"patchItem": {
|
||||
"unsupportedDialogText": "Sélectionner ce patch pourrait entrainer des erreurs dans la modification.\n\nVersion de l'application : ${packageVersion}\nVersions supportées :\n${supportedVersions}",
|
||||
"unsupportedPatchVersion": "Le patch n'est pas supporté pour cette version de l'application.",
|
||||
"unsupportedRequiredOption": "Ce patch contient une option requise qui n'est pas supporté par cette application",
|
||||
"patchesChangeWarningDialogText": "Il est recommandé d'utiliser les patchs par défaut ainsi que les options. Leur modification peut entraîner des problèmes inattendus.\n\nVous aurez besoin d'activer \"Autoriser la modification de la sélection du patch\" dans les paramètres avant de modifier toute sélection de patch.",
|
||||
"unsupportedDialogText": "Sélectionner ce patch peut entrainer des erreurs dans la modification.\n\nVersion de l'application : ${packageVersion}\nVersions prises en charge :\n${supportedVersions}",
|
||||
"unsupportedPatchVersion": "Le patch n'est pas pris en charge pour cette version de l'application.",
|
||||
"unsupportedRequiredOption": "Ce patch contient une option requise qui n'est pas prise en charge par cette application",
|
||||
"patchesChangeWarningDialogText": "Il est recommandé d'utiliser les patchs et options par défaut. Leur modification peut entraîner des problèmes inattendus.\n\nVous aurez besoin d'activer « Autoriser la modification de la sélection de patchs » dans les paramètres avant de modifier toute sélection de patchs.",
|
||||
"patchesChangeWarningDialogButton": "Utiliser la sélection par défaut"
|
||||
},
|
||||
"installerView": {
|
||||
@ -193,7 +195,7 @@
|
||||
"contributorsHint": "Liste des contributeurs de ReVanced",
|
||||
"logsLabel": "Partager les journaux",
|
||||
"logsHint": "Partager les logs de ReVanced Manager",
|
||||
"enablePatchesSelectionLabel": "Autoriser la modification de la sélection du patch",
|
||||
"enablePatchesSelectionLabel": "Autoriser la modification de la sélection de patchs",
|
||||
"enablePatchesSelectionHint": "Ne pas empêcher la sélection ou la désélection des patchs",
|
||||
"enablePatchesSelectionWarningText": "Le changement de sélection par défaut des patchs peut causer des problèmes inattendus \n\nActiver quand même ?",
|
||||
"disablePatchesSelectionWarningText": "Vous êtes sur le point de désactiver le changement de sélection par défaut des patchs.\nLa sélection par défaut des patchs sera restaurée.\n\nDésactiver quand même ?",
|
||||
|
@ -30,19 +30,19 @@
|
||||
"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?",
|
||||
"updateSheetTitle": "ReVanced Manager frissítése",
|
||||
"updateDialogTitle": "Új frissítés elérhető",
|
||||
"updatePatchesSheetTitle": "ReVanced Patchek frissítése",
|
||||
"updateChangelogTitle": "Újdonságok",
|
||||
"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": "Ezzel összekapcsolja a következővel: ${url}.",
|
||||
"downloadConsentDialogText2": "Csatlakozni fog ehhez: ${url}.",
|
||||
"checkUpdateDialogTitle": "Frissítések keresése?",
|
||||
"checkUpdateDialogText": "Szeretné, hogy a ReVanced Kezelő automatikusan ellenőrizze a frissítéseket?",
|
||||
"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...",
|
||||
@ -60,7 +60,7 @@
|
||||
"loadingLabel": "Betöltés...",
|
||||
"timeagoLabel": "Frissítve: ${time}",
|
||||
"patcherLabel": "Patchelő: ",
|
||||
"managerLabel": "Kezelő: ",
|
||||
"managerLabel": "Manager: ",
|
||||
"updateButton": "Manager frissítése"
|
||||
},
|
||||
"patcherView": {
|
||||
@ -82,8 +82,8 @@
|
||||
"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",
|
||||
@ -111,8 +111,8 @@
|
||||
"defaultTooltip": "Összes alapértelmezett patch kiválasztása",
|
||||
"noneChip": "Semmi",
|
||||
"noneTooltip": "Összes patch 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.",
|
||||
"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."
|
||||
},
|
||||
@ -122,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",
|
||||
@ -132,10 +132,10 @@
|
||||
"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",
|
||||
"patchesChangeWarningDialogText": "Javasoljuk, hogy az alapértelmezett patch lehetőséget és opciókat 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 módosításának engedélyezése” lehetőséget a beállításokban.",
|
||||
"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": {
|
||||
@ -143,19 +143,19 @@
|
||||
"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 patchelt alkalmazás automatikus frissítéseit.",
|
||||
"pressBackAgain": "A visszavonáshoz nyomja meg ismét a vissza gombot",
|
||||
"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",
|
||||
@ -169,8 +169,8 @@
|
||||
"systemThemeLabel": "Rendszer",
|
||||
"lightThemeLabel": "Világos",
|
||||
"darkThemeLabel": "Sötét",
|
||||
"dynamicThemeLabel": "Közel Hozzád",
|
||||
"dynamicThemeHint": "Élvezd az eszközödhöz közelibb élményt",
|
||||
"dynamicThemeLabel": "Material You",
|
||||
"dynamicThemeHint": "Élvezze az eszközéhez közelibb élményt",
|
||||
"languageLabel": "Nyelv",
|
||||
"languageUpdated": "Nyelv frissítve",
|
||||
"englishOption": "Angol",
|
||||
@ -182,10 +182,10 @@
|
||||
"sourcesResetDialogTitle": "Visszaállítás",
|
||||
"sourcesResetDialogText": "Biztosan vissza szeretné állítani a forrásokat az alapértelmezett értékekre?",
|
||||
"apiURLResetDialogText": "Biztosan vissza szeretné állítani az API URL-jét az alapértelmezett értékre?",
|
||||
"sourcesUpdateNote": "Megjegyzés: Ez automatikusan letölti a ReVanced Patch-eket és a ReVanced Integrációkat az alternatív forrásokból.\n\nEzzel csatlakozik az alternatív forráshoz.",
|
||||
"sourcesUpdateNote": "Megjegyzés: Ez automatikusan letölti a ReVanced 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 ReVanced Manager API URL-jét",
|
||||
"selectApiURL": "API címe",
|
||||
"selectApiURL": "API link",
|
||||
"orgPatchesLabel": "Patchek - szervezet",
|
||||
"sourcesPatchesLabel": "Patchek - forrás",
|
||||
"orgIntegrationsLabel": "Integrációk - szervezet",
|
||||
@ -193,10 +193,10 @@
|
||||
"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 patchek 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 patchek 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",
|
||||
@ -205,34 +205,34 @@
|
||||
"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 patchek kiválasztását",
|
||||
"requireSuggestedAppVersionLabel": "Javasolt alkalmazás verzió kötelező",
|
||||
"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",
|
||||
@ -248,39 +248,39 @@
|
||||
"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"
|
||||
},
|
||||
"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",
|
||||
@ -296,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."
|
||||
}
|
||||
}
|
@ -3,9 +3,9 @@
|
||||
"cancelButton": "Batal",
|
||||
"dismissButton": "Abaikan",
|
||||
"quitButton": "Keluar",
|
||||
"updateButton": "Memperbarui",
|
||||
"updateButton": "Perbarui",
|
||||
"enabledLabel": "Aktif",
|
||||
"disabledLabel": "Tidak Aktif",
|
||||
"disabledLabel": "Nonaktif",
|
||||
"installed": "Terpasang: ${version}",
|
||||
"suggested": "Disarankan: ${version}",
|
||||
"yesButton": "Iya",
|
||||
@ -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",
|
||||
@ -27,7 +27,7 @@
|
||||
"refreshSuccess": "Berhasil Memuat Ulang",
|
||||
"widgetTitle": "Dasbor",
|
||||
"updatesSubtitle": "Pembaruan",
|
||||
"patchedSubtitle": "Aplikasi yang dimodifikasi",
|
||||
"patchedSubtitle": "Aplikasi tertambal",
|
||||
"changeLaterSubtitle": "Anda dapat mengubahnya di pengaturan nanti.",
|
||||
"noUpdates": "Tidak ada pembaruan",
|
||||
"WIP": "Sedang dikerjakan...",
|
||||
@ -67,7 +67,7 @@
|
||||
"widgetTitle": "Penambal",
|
||||
"patchButton": "Tambalan",
|
||||
"armv7WarningDialogText": "Menambal pada perangkat ARMv7 belum didukung dan mungkin gagal. Lanjutkan saja?",
|
||||
"removedPatchesWarningDialogText": "Patch berikut ini telah dihapus sejak terakhir kali Anda menggunakannya.\n\n${patches}\n\nTetap lanjutkan?",
|
||||
"removedPatchesWarningDialogText": "Patch berikut telah dihapus sejak terakhir kali Anda menggunakannya.\n\n${patches}\n\nTetap lanjut?",
|
||||
"requiredOptionDialogText": "Beberapa opsi patch harus diatur."
|
||||
},
|
||||
"appSelectorCard": {
|
||||
|
@ -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.",
|
||||
@ -118,16 +118,18 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "Valore personalizzato",
|
||||
"setToNull": "Imposta a nullo",
|
||||
"nullValue": "Questo valore di opzione è al momento nullo",
|
||||
"resetOptionsTooltip": "Ripristina opzioni patch",
|
||||
"viewTitle": "Opzioni patch",
|
||||
"saveOptions": "Salva",
|
||||
"addOptions": "Aggiungi opzioni",
|
||||
"deselectPatch": "Deseleziona patch",
|
||||
"unselectPatch": "Deseleziona patch",
|
||||
"tooltip": "Più opzioni di input",
|
||||
"selectFilePath": "Seleziona percorso file",
|
||||
"selectFolder": "Seleziona cartella",
|
||||
"selectOption": "Seleziona opzione",
|
||||
"requiredOption": "Questa opzione è richiesta",
|
||||
"requiredOption": "L'impostazione di questa opzione è obbligatoria",
|
||||
"unsupportedOption": "Questa opzione non è supportata",
|
||||
"requiredOptionNull": "È necessario impostare le seguenti opzioni:\n\n${options}"
|
||||
},
|
||||
|
@ -2,7 +2,7 @@
|
||||
"okButton": "OK",
|
||||
"cancelButton": "キャンセル",
|
||||
"dismissButton": "取り消し",
|
||||
"quitButton": "中止",
|
||||
"quitButton": "終了",
|
||||
"updateButton": "更新",
|
||||
"enabledLabel": "有効",
|
||||
"disabledLabel": "無効",
|
||||
@ -11,13 +11,13 @@
|
||||
"yesButton": "はい",
|
||||
"noButton": "いいえ",
|
||||
"warning": "警告",
|
||||
"options": "オプション",
|
||||
"options": "設定",
|
||||
"notice": "お知らせ",
|
||||
"noShowAgain": "今後は表示しない",
|
||||
"add": "追加",
|
||||
"remove": "削除",
|
||||
"showChangelogButton": "更新履歴を確認",
|
||||
"showUpdateButton": "アップデート内容を見せる",
|
||||
"showChangelogButton": "更新履歴を表示",
|
||||
"showUpdateButton": "更新を表示",
|
||||
"navigationView": {
|
||||
"dashboardTab": "一覧",
|
||||
"patcherTab": "パッチャー",
|
||||
@ -28,29 +28,29 @@
|
||||
"widgetTitle": "一覧",
|
||||
"updatesSubtitle": "更新",
|
||||
"patchedSubtitle": "パッチ済みのアプリ",
|
||||
"changeLaterSubtitle": "この設定はあとでも変更できます",
|
||||
"noUpdates": "利用可能なアップデートはありません",
|
||||
"changeLaterSubtitle": "この設定は後から変更できます",
|
||||
"noUpdates": "利用可能な更新はありません",
|
||||
"WIP": "制作中",
|
||||
"noInstallations": "パッチ済みのアプリはインストールされていません",
|
||||
"installUpdate": "更新を適用しますか?",
|
||||
"updateSheetTitle": "ReVanced Managerをアップデート",
|
||||
"updateSheetTitle": "ReVanced Managerを更新",
|
||||
"updateDialogTitle": "新しいアップデートが利用可能",
|
||||
"updatePatchesSheetTitle": "ReVancedパッチを更新",
|
||||
"updateChangelogTitle": "変更履歴",
|
||||
"updateDialogText": "新しいアップデートが${file} 向けにあります。\n現在のインストールされているバージョンは${version} です。",
|
||||
"updateDialogText": "${file} の更新が利用可能です。\n現在のバージョン: ${version} ",
|
||||
"downloadConsentDialogTitle": "必要なファイルをダウンロードしますか?",
|
||||
"downloadConsentDialogText": "ReVanced Managerは正常に動作するために必要なファイルをダウンロードする必要があります。",
|
||||
"downloadConsentDialogText2": "これにより${url} に接続します",
|
||||
"checkUpdateDialogTitle": "アップデートを確認しますか?",
|
||||
"checkUpdateDialogText": "ReVanced Managerのアップデートを自動チェックしますか?",
|
||||
"notificationTitle": "アップデートをダウンロードしました",
|
||||
"downloadConsentDialogText": "ReVanced Managerを正常に動作させるためのファイルをダウンロードする必要があります。",
|
||||
"downloadConsentDialogText2": "${url} に接続します。",
|
||||
"checkUpdateDialogTitle": "更新を確認しますか?",
|
||||
"checkUpdateDialogText": "ReVanced Managerの更新を自動的に確認しますか?",
|
||||
"notificationTitle": "更新データをダウンロードしました",
|
||||
"notificationText": "タップしてアップデートをインストール",
|
||||
"downloadingMessage": "更新データをダウンロードしています...",
|
||||
"downloadedMessage": "アップデートのダウンロードが完了しました",
|
||||
"installingMessage": "更新を適用しています...",
|
||||
"errorDownloadMessage": "更新データをダウンロードできません",
|
||||
"errorDownloadMessage": "更新データをダウンロードできませんでした",
|
||||
"errorInstallMessage": "更新を適用できませんでした",
|
||||
"noConnection": "インターネット接続がありません",
|
||||
"noConnection": "インターネットに接続されていません",
|
||||
"updatesDisabled": "パッチ済みアプリのアップデートは無効になっています。もう一度パッチし直してください"
|
||||
},
|
||||
"applicationItem": {
|
||||
@ -72,7 +72,7 @@
|
||||
},
|
||||
"appSelectorCard": {
|
||||
"widgetTitle": "アプリを選択",
|
||||
"widgetTitleSelected": "選択済のアプリ",
|
||||
"widgetTitleSelected": "選択したアプリ",
|
||||
"widgetSubtitle": "アプリが選択されていません",
|
||||
"noAppsLabel": "アプリが見つかりません",
|
||||
"currentVersion": "選択",
|
||||
@ -87,16 +87,16 @@
|
||||
},
|
||||
"socialMediaCard": {
|
||||
"widgetTitle": "SNS",
|
||||
"widgetSubtitle": "私たちは活動しています!"
|
||||
"widgetSubtitle": "私たちはここにいます!"
|
||||
},
|
||||
"appSelectorView": {
|
||||
"viewTitle": "アプリを選択",
|
||||
"searchBarHint": "アプリを検索",
|
||||
"storageButton": "APKファイルを選択",
|
||||
"selectFromStorageButton": "ストレージから選択",
|
||||
"errorMessage": "選択されたアプリは使用できません",
|
||||
"errorMessage": "選択したアプリは使用できません",
|
||||
"downloadToast": "現在、ダウンロード機能は利用できません",
|
||||
"requireSuggestedAppVersionDialogText": "選択されたアプリのバージョンは推奨バージョン外です。\n推奨バージョンのアプリを選択してください。\n選択されたバージョン ${selected}\n推奨バージョン ${suggested}\n\n選択されたバージョンを使用する場合、設定から「推奨バージョンの使用を強制」を無効にしてください。",
|
||||
"requireSuggestedAppVersionDialogText": "選択したアプリのバージョンは推奨バージョンではありません。予期せぬ問題が発生する可能性があります。\n推奨バージョンを選択してください。\n\n選択されたバージョン ${selected}\n推奨バージョン ${suggested}\n\n選択されたバージョンを使用する場合、設定から「推奨バージョンの使用を強制」を無効にしてください。",
|
||||
"featureNotAvailable": "この機能は未実装です",
|
||||
"featureNotAvailableText": "このアプリは分割された APK であり、root 権限でマウントすることによってのみ確実にパッチを適用してインストールできます。 ただし、ストレージから選択することで完全な APK をパッチしてインストールすることができます。"
|
||||
},
|
||||
@ -118,24 +118,26 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "カスタム値",
|
||||
"setToNull": "null に設定",
|
||||
"nullValue": "このオプション値は現在nullです",
|
||||
"resetOptionsTooltip": "パッチ設定をリセット",
|
||||
"viewTitle": "パッチ設定",
|
||||
"saveOptions": "保存",
|
||||
"addOptions": "オプションを追加",
|
||||
"deselectPatch": "パッチの選択を解除",
|
||||
"unselectPatch": "パッチの選択を解除",
|
||||
"tooltip": "他の入力オプション",
|
||||
"selectFilePath": "ファイルパスを選択",
|
||||
"selectFolder": "フォルダーを選択",
|
||||
"selectOption": "オプションを選択",
|
||||
"requiredOption": "このオプションは必須です",
|
||||
"unsupportedOption": "このオプションはサポートされていません",
|
||||
"requiredOption": "このオプションを設定する必要があります",
|
||||
"unsupportedOption": "この設定はサポートされていません",
|
||||
"requiredOptionNull": "以下のオプションを設定する必要があります:\n\n${options}"
|
||||
},
|
||||
"patchItem": {
|
||||
"unsupportedDialogText": "このパッチを選択するとエラーが発生する可能性があります。\n\n現在のバージョン: ${packageVersion}\nサポートされているバージョン: ${supportedVersions}",
|
||||
"unsupportedPatchVersion": "このアプリのバージョンではパッチはサポートされていません.",
|
||||
"unsupportedRequiredOption": "このパッチには、このアプリではサポートされていない必須オプションが含まれています",
|
||||
"patchesChangeWarningDialogText": "デフォルトのパッチの選択とオプションを使用することを推奨します。変更すると予期せぬ問題が発生する可能性があります。\n\nパッチの選択を続ける場合、設定で「パッチの選択の変更を許可」をオンにする必要があります。",
|
||||
"unsupportedRequiredOption": "このパッチには、このアプリではサポートされていない必須設定が含まれています",
|
||||
"patchesChangeWarningDialogText": "デフォルトのパッチ選択とオプションの使用を推奨します。変更すると予期せぬ問題が発生する可能性があります。\n\nパッチ選択を続ける場合、設定で「パッチ選択の変更を許可」をオンにする必要があります。",
|
||||
"patchesChangeWarningDialogButton": "デフォルトの選択を使用"
|
||||
},
|
||||
"installerView": {
|
||||
@ -174,7 +176,7 @@
|
||||
"languageLabel": "言語",
|
||||
"languageUpdated": "言語が更新されました",
|
||||
"englishOption": "英語",
|
||||
"sourcesLabel": "他のソース",
|
||||
"sourcesLabel": "代替ソース",
|
||||
"sourcesLabelHint": "ReVanded PatchesとReVanced Integrationsの代替ソースを設定",
|
||||
"sourcesIntegrationsLabel": "Integrations のソース",
|
||||
"useAlternativeSources": "他のソースを使用",
|
||||
@ -193,10 +195,10 @@
|
||||
"contributorsHint": "ReVancedの貢献者一覧",
|
||||
"logsLabel": "ログを共有",
|
||||
"logsHint": "ReVanced Manager のログを共有します",
|
||||
"enablePatchesSelectionLabel": "パッチの選択の変更を許可",
|
||||
"enablePatchesSelectionHint": "パッチの選択と解除を防止しない",
|
||||
"enablePatchesSelectionLabel": "パッチ選択の変更を許可",
|
||||
"enablePatchesSelectionHint": "パッチの選択・解除を禁止しません",
|
||||
"enablePatchesSelectionWarningText": "パッチの選択を変更すると、予期せぬ問題が起こる可能性があります。\n\n有効にしますか?",
|
||||
"disablePatchesSelectionWarningText": "パッチの選択の変更を無効にしようとしています。\nデフォルトのパッチの選択が復元されます。\n\n無効にしますか?",
|
||||
"disablePatchesSelectionWarningText": "パッチ選択の変更を無効にしようとしています。\nデフォルトのパッチの選択が復元されます。\n\n無効にしますか?",
|
||||
"autoUpdatePatchesLabel": "パッチの自動アップデート",
|
||||
"autoUpdatePatchesHint": "パッチを自動的に最新バージョンに更新する",
|
||||
"showUpdateDialogLabel": "アップデートの通知を表示",
|
||||
@ -204,31 +206,33 @@
|
||||
"universalPatchesLabel": "共通パッチの表示",
|
||||
"universalPatchesHint": "すべてのアプリと共通パッチを表示します(アプリ一覧の読み込みが遅くなる可能性があります)",
|
||||
"versionCompatibilityCheckLabel": "バージョンの互換性の確認",
|
||||
"requireSuggestedAppVersionLabel": "推奨するアプリバージョンの要求",
|
||||
"requireSuggestedAppVersionDialogText": "推奨されているバージョンではないアプリを選択すると、予期しない問題が発生する可能性があります。\n\nこのまま続行しますか?",
|
||||
"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": "保存されたパッチの選択をリセットする",
|
||||
"resetStoredPatchesDialogTitle": "パッチの選択をリセット",
|
||||
"resetStoredPatchesDialogText": "デフォルトのパッチの選択が復元されます。",
|
||||
"resetStoredPatches": "パッチの選択をリセットしました",
|
||||
"resetStoredOptionsLabel": "パッチオプションをリセット",
|
||||
"resetStoredOptionsHint": "すべてのパッチオプションをリセットする",
|
||||
"resetStoredOptionsDialogTitle": "パッチオプションをリセットしますか?",
|
||||
"resetStoredOptionsDialogText": "パッチオプションをリセットすると、保存されたすべてのオプションが削除されます。",
|
||||
"resetStoredOptions": "オプションをリセットしました",
|
||||
"resetStoredOptionsHint": "すべてのパッチ設定をリセット",
|
||||
"resetStoredOptionsDialogTitle": "パッチ設定をリセットしますか?",
|
||||
"resetStoredOptionsDialogText": "パッチ設定をリセットすると、保存されたすべてのオプションが削除されます。",
|
||||
"resetStoredOptions": "設定をリセットしました",
|
||||
"deleteLogsLabel": "ログを削除",
|
||||
"deleteLogsHint": "収集された ReVanced Manager のログを削除します",
|
||||
"deletedLogs": "ログを削除しました",
|
||||
@ -246,15 +250,17 @@
|
||||
"importedKeystore": "キーストアをインポートしました",
|
||||
"selectKeystorePassword": "キーストアのパスワード",
|
||||
"selectKeystorePasswordHint": "アプリの署名に使用するキーストアのパスワードを入力してください",
|
||||
"jsonSelectorErrorMessage": "選択された JSON ファイルは使用できません",
|
||||
"jsonSelectorErrorMessage": "選択したJSON ファイルは使用できません",
|
||||
"keystoreSelectorErrorMessage": "選択したキーストアファイルは使用できません"
|
||||
},
|
||||
"appInfoView": {
|
||||
"widgetTitle": "アプリ情報",
|
||||
"openButton": "開く",
|
||||
"uninstallButton": "アンインストール",
|
||||
"unmountButton": "マウント解除",
|
||||
"rootDialogTitle": "エラー",
|
||||
"unmountDialogText": "このアプリをアンマウントしてもよろしいですか?",
|
||||
"uninstallDialogText": "本当にこのアプリをアンインストールしますか?",
|
||||
"rootDialogText": "アプリはスーパーユーザー権限でインストールされましたが、現在 ReVanced Manager にはその権限がありません。 スーパーユーザー権限を付与してください。",
|
||||
"packageNameLabel": "パッケージ名",
|
||||
"installTypeLabel": "インストールの種類",
|
||||
@ -270,8 +276,29 @@
|
||||
"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": "不明な理由によりインストールに失敗しました。もう一度やり直してください。"
|
||||
}
|
||||
}
|
@ -28,7 +28,7 @@
|
||||
"widgetTitle": "Dashboard",
|
||||
"updatesSubtitle": "업데이트",
|
||||
"patchedSubtitle": "설치된 앱",
|
||||
"changeLaterSubtitle": "나중에 설정에서 바꿀 수 있습니다.",
|
||||
"changeLaterSubtitle": "나중에 설정에서 변경할 수 있습니다.",
|
||||
"noUpdates": "새 업데이트가 없습니다.",
|
||||
"WIP": "개발 중 입니다...",
|
||||
"noInstallations": "아직 설치된 ReVanced 앱이 없습니다.",
|
||||
@ -44,7 +44,7 @@
|
||||
"checkUpdateDialogTitle": "업데이트를 확인하시겠습니까?",
|
||||
"checkUpdateDialogText": "ReVanced Manager가 자동으로 업데이트를 확인하도록 하시겠습니까?",
|
||||
"notificationTitle": "업데이트를 다운로드했습니다.",
|
||||
"notificationText": "업데이트를 설치하려면 탭하세요.",
|
||||
"notificationText": "업데이트를 설치하려면 여기를 누르세요.",
|
||||
"downloadingMessage": "업데이트 다운로드 중...",
|
||||
"downloadedMessage": "업데이트를 다운로드 완료했습니다.",
|
||||
"installingMessage": "업데이트 설치 중...",
|
||||
@ -106,10 +106,10 @@
|
||||
"universalPatches": "공용 패치",
|
||||
"newPatches": "새 패치",
|
||||
"patches": "패치",
|
||||
"doneButton": "완료",
|
||||
"doneButton": "선택완료",
|
||||
"defaultChip": "기본값",
|
||||
"defaultTooltip": "모든 기본 패치 선택",
|
||||
"noneChip": "없음",
|
||||
"noneChip": "선택안함",
|
||||
"noneTooltip": "모든 패치 선택 해제",
|
||||
"loadPatchesSelection": "패치 선택목록 가져오기",
|
||||
"noSavedPatches": "선택한 앱에 적용할 패치가 저장되지 않았습니다.\n완료를 눌러서 현재 선택목록을 저장하세요.",
|
||||
@ -150,7 +150,7 @@
|
||||
"openButton": "열기",
|
||||
"shareButton": "파일 공유",
|
||||
"notificationTitle": "ReVanced Manager가 패치 중입니다.",
|
||||
"notificationText": "설치 관리자로 돌아가려면 탭하세요.",
|
||||
"notificationText": "설치 관리자로 돌아가려면 여기를 누르세요.",
|
||||
"exportApkButtonTooltip": "패치한 APK 내보내기",
|
||||
"exportLogButtonTooltip": "로그 내보내기",
|
||||
"screenshotDetected": "스크린샷이 감지되었습니다. 로그를 공유할 목적이라면, 대신 텍스트 사본으로 공유해주세요.\n\n로그를 클립보드에 복사하시겠습니까?",
|
||||
|
@ -118,16 +118,18 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "Aangepaste waarde",
|
||||
"setToNull": "Zet op nul",
|
||||
"nullValue": "Deze optiewaarde is momenteel leeg",
|
||||
"resetOptionsTooltip": "Reset patch opties",
|
||||
"viewTitle": "Patch opties",
|
||||
"saveOptions": "Opslaan",
|
||||
"addOptions": "Opties toevoegen",
|
||||
"deselectPatch": "Deselecteer patch",
|
||||
"unselectPatch": "Patch deselecteren",
|
||||
"tooltip": "Meer invoeropties",
|
||||
"selectFilePath": "Bestandspad selecteren",
|
||||
"selectFolder": "Map selecteren",
|
||||
"selectOption": "Selecteer optie",
|
||||
"requiredOption": "Deze optie is vereist",
|
||||
"requiredOption": "Het instellen van deze optie is vereist",
|
||||
"unsupportedOption": "Deze optie wordt niet ondersteund",
|
||||
"requiredOptionNull": "De volgende opties moeten worden ingesteld:\n\n${options}"
|
||||
},
|
||||
|
@ -1,5 +1,5 @@
|
||||
{
|
||||
"okButton": "OK",
|
||||
"okButton": "OK ",
|
||||
"cancelButton": "Anuluj",
|
||||
"dismissButton": "Odrzuć",
|
||||
"quitButton": "Wyjdź",
|
||||
@ -118,16 +118,18 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "Niestandardowa wartość",
|
||||
"setToNull": "Ustaw na zerowy",
|
||||
"nullValue": "Ta opcja jest obecnie pusta",
|
||||
"resetOptionsTooltip": "Zresetuj opcje od łatek",
|
||||
"viewTitle": "Opcje łatek",
|
||||
"saveOptions": "Zapisz",
|
||||
"addOptions": "Dodaj opcje",
|
||||
"deselectPatch": "Odznacz łatkę",
|
||||
"unselectPatch": "Odznacz łatkę",
|
||||
"tooltip": "Więcej opcji wejściowych",
|
||||
"selectFilePath": "Wybierz ścieżkę pliku",
|
||||
"selectFolder": "Wybierz folder",
|
||||
"selectOption": "Wybierz opcję",
|
||||
"requiredOption": "Ta opcja jest wymagana",
|
||||
"requiredOption": "Ustawienie tej opcji jest wymagane",
|
||||
"unsupportedOption": "Ta opcja nie jest wspierana",
|
||||
"requiredOptionNull": "Należy ustawić następujące opcje:\n\n${options}"
|
||||
},
|
||||
|
@ -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}.",
|
||||
"downloadConsentDialogText2": "Isso vai conectar você 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 app",
|
||||
"widgetTitleSelected": "App selecionado",
|
||||
"widgetSubtitle": "Nenhum app 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": "A versão do app selecionada não corresponde à versão sugerida, o que pode causar problemas inesperados. Por favor, use a versão sugerida.\n\nVersão selecionada: ${selected} \nVersão sugerida: ${suggested}\n\nPara continuar mesmo assim, desative \"Exigir versão sugerida do app\" nas configurações.",
|
||||
"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.",
|
||||
@ -97,29 +118,39 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "Valor personalizado",
|
||||
"resetOptionsTooltip": "Redefinir opções de patch",
|
||||
"setToNull": "Definir como nulo",
|
||||
"nullValue": "Atualmente, este valor de opção é nulo",
|
||||
"resetOptionsTooltip": "Redefinir as opções de patch",
|
||||
"viewTitle": "Opções de patch",
|
||||
"saveOptions": "Salvar",
|
||||
"addOptions": "Adicionar opções",
|
||||
"deselectPatch": "Deselecionar patch",
|
||||
"unselectPatch": "Desmarque o patch",
|
||||
"tooltip": "Mais opções de entrada",
|
||||
"selectFilePath": "Selecione o caminho do arquivo",
|
||||
"selectFolder": "Selecione a pasta",
|
||||
"requiredOption": "Essa opção é necessária",
|
||||
"selectOption": "Selecione uma opção",
|
||||
"requiredOption": "Definir esta opção é necessário",
|
||||
"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,17 +166,27 @@
|
||||
"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",
|
||||
"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 fontes alternativas para Patches do ReVanced e Integrações do ReVanced em vez da API",
|
||||
"sourcesResetDialogTitle": "Redefinir",
|
||||
"sourcesResetDialogText": "Você tem certeza que deseja redefinir as fontes para os valores padrão?",
|
||||
"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",
|
||||
"orgPatchesLabel": "Organização dos patches",
|
||||
"sourcesPatchesLabel": "Fonte dos patches",
|
||||
@ -155,13 +196,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": "Mostrar alerta de atualização",
|
||||
"showUpdateDialogHint": "Mostra um aviso quando uma nova atualização estiver disponível",
|
||||
"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",
|
||||
"requireSuggestedAppVersionLabel": "Requer a versão sugerida do app",
|
||||
"versionCompatibilityCheckHint": "Impedir a seleção de patches que não são compatíveis com a versão do app selecionado",
|
||||
"requireSuggestedAppVersionLabel": "Exigir versão sugerida do app",
|
||||
"requireSuggestedAppVersionHint": "Evite selecionar um app com uma versão diferente da sugerida",
|
||||
"requireSuggestedAppVersionDialogText": "Selecionar um app 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",
|
||||
@ -171,19 +219,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",
|
||||
"resetStoredOptionsHint": "Resetar todas as opções de patch",
|
||||
"resetStoredOptions": "As opções foram resetadas",
|
||||
"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 a seleção de patch",
|
||||
"resetStoredPatchesHint": "Redefinir a seleção de patch armazenada",
|
||||
"resetStoredPatchesDialogTitle": "Redefinir a seleção de patch?",
|
||||
"resetStoredPatchesDialogText": "A seleção padrão de patches será restaurada.",
|
||||
"resetStoredPatches": "A seleção de patch foi redefinida",
|
||||
"resetStoredOptionsLabel": "Redefinir as opções de patch",
|
||||
"resetStoredOptionsHint": "Redefinir todas as opções de patch",
|
||||
"resetStoredOptionsDialogTitle": "Redefinir as opções de patch?",
|
||||
"resetStoredOptionsDialogText": "Redefinir as opções de patch vai remover todas as opções salvas.",
|
||||
"resetStoredOptions": "As opções foram redefinidas",
|
||||
"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",
|
||||
@ -194,10 +257,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}",
|
||||
@ -207,5 +275,30 @@
|
||||
"contributorsView": {
|
||||
"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 porque o app instalado era de uma versão diferente do app patcheado.\n\nInstale a versão do app que você está montando e tente de novo.",
|
||||
"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 porque o app patcheado era uma versão mais baixa que o app instalado.\n\nDesinstalar o app e tentar de novo?",
|
||||
"status_unknown_description": "A instalação falhou por um motivo desconhecido. Por favor, tente novamente."
|
||||
}
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
{
|
||||
"okButton": "OK",
|
||||
"cancelButton": "Cancelar",
|
||||
"dismissButton": "Dispensar",
|
||||
"dismissButton": "Ignorar",
|
||||
"quitButton": "Sair",
|
||||
"updateButton": "Atualizar",
|
||||
"enabledLabel": "Ativado",
|
||||
@ -27,11 +27,11 @@
|
||||
"refreshSuccess": "Atualizado com sucesso",
|
||||
"widgetTitle": "Painel de Controlo",
|
||||
"updatesSubtitle": "Atualizações",
|
||||
"patchedSubtitle": "Aplicações Modificadas",
|
||||
"patchedSubtitle": "Apps patcheados",
|
||||
"changeLaterSubtitle": "Podes modificar esta definição mais tarde.",
|
||||
"noUpdates": "Nenhuma atualização disponível",
|
||||
"WIP": "Trabalho em progresso...",
|
||||
"noInstallations": "Nenhuma aplicação modificada instalada",
|
||||
"noInstallations": "Nenhum app patcheado instalado",
|
||||
"installUpdate": "Continuar para instalar a atualização?",
|
||||
"updateSheetTitle": "Atualizar o ReVanced Manager",
|
||||
"updateDialogTitle": "Nova atualização disponível",
|
||||
@ -51,7 +51,7 @@
|
||||
"errorDownloadMessage": "Não é possível transferir a atualização",
|
||||
"errorInstallMessage": "Não foi possível instalar a atualização",
|
||||
"noConnection": "Sem ligação à Internet",
|
||||
"updatesDisabled": "Atualizar uma aplicação modificada está atualmente desabilitado. Volta a modificar a aplicação."
|
||||
"updatesDisabled": "A atualização de um app patcheado está desativada no momento. Repatch o app de novo."
|
||||
},
|
||||
"applicationItem": {
|
||||
"infoButton": "Informação"
|
||||
@ -98,7 +98,7 @@
|
||||
"downloadToast": "A função de transferência não está disponível",
|
||||
"requireSuggestedAppVersionDialogText": "A versão da aplicação que selecionaste não corresponde à versão sugerida, o que pode levar a problemas inesperados. Utiliza a versão recomendada.\n\nVersão selecionada: ${selected}\nVersão recomendada: ${suggested}\n\nPara continuar na mesma, desactive a opção \"Exigir a versão recomendada da aplicação\" nas definições.",
|
||||
"featureNotAvailable": "Recurso não implementado",
|
||||
"featureNotAvailableText": "Esta aplicação é um APK dividido e só pode ser modificado e instalado de forma fiável através da montagem com permissões root. No entanto, é possível corrigir e instalar um APK completo selecionando-o a partir do armazenamento."
|
||||
"featureNotAvailableText": "Esse app é um APK dividido e só pode ser modificado e instalado de forma fiável através da montagem com permissões root. No entanto, é possível patchear e instalar um APK completo selecionando ele a partir do armazenamento."
|
||||
},
|
||||
"patchesSelectorView": {
|
||||
"viewTitle": "Selecionar modificações",
|
||||
@ -118,16 +118,18 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "Valor personalizado",
|
||||
"setToNull": "Definir como nulo",
|
||||
"nullValue": "Atualmente, este valor de opção é nulo",
|
||||
"resetOptionsTooltip": "Reiniciar as opções da modificação",
|
||||
"viewTitle": "Opções de modificação",
|
||||
"saveOptions": "Guardar",
|
||||
"addOptions": "Adicionar opções",
|
||||
"deselectPatch": "Desselecionar modificação",
|
||||
"unselectPatch": "Desmarque o patch",
|
||||
"tooltip": "Mais opções de entrada",
|
||||
"selectFilePath": "Selecionar caminho do arquivo",
|
||||
"selectFolder": "Selecionar pasta",
|
||||
"selectOption": "Seleccionar opção",
|
||||
"requiredOption": "Esta opção é obrigatória",
|
||||
"requiredOption": "Definir esta opção é necessário",
|
||||
"unsupportedOption": "Esta opção não é suportada",
|
||||
"requiredOptionNull": "As seguintes opções devem ser definidas:\n\n${options}"
|
||||
},
|
||||
@ -145,13 +147,13 @@
|
||||
"installButton": "Instalar",
|
||||
"installRootType": "Montar",
|
||||
"installNonRootType": "Normal",
|
||||
"warning": "Desativa as atualizações automáticas da aplicação modificada para evitar problemas inesperados.",
|
||||
"warning": "Desative as atualizações automáticas do app patcheado para evitar problemas inesperados.",
|
||||
"pressBackAgain": "Pressione voltar novamente para cancelar",
|
||||
"openButton": "Abrir",
|
||||
"shareButton": "Partilhar ficheiro",
|
||||
"notificationTitle": "O ReVanced Manager está a fazer as modificações",
|
||||
"notificationText": "Toca para voltar ao instalador",
|
||||
"exportApkButtonTooltip": "Exportar APK modificado",
|
||||
"exportApkButtonTooltip": "Exportar APK patcheado",
|
||||
"exportLogButtonTooltip": "Exportar registo",
|
||||
"screenshotDetected": "Foi detetada uma captura de ecrã. Se estiver a tentar partilhar o registo, partilhe antes uma cópia de texto.\n\nCopiar o registo para a área de transferência?",
|
||||
"copiedToClipboard": "Registo copiado para a área de transferência",
|
||||
@ -258,13 +260,13 @@
|
||||
"unmountButton": "Desmontar",
|
||||
"rootDialogTitle": "Erro",
|
||||
"unmountDialogText": "Tens a certeza que queres remover as modificações desta aplicação?",
|
||||
"uninstallDialogText": "Tens a certeza que queres desinstalar esta aplicação?",
|
||||
"uninstallDialogText": "Tem certeza que quer desinstalar esse app?",
|
||||
"rootDialogText": "A aplicação foi instalada com permissões de Super-Utilizador, mas atualmente o ReVanced Manager não tem permissões.\nPor favor, conceda permissões de Super-Utilizador primeiro.",
|
||||
"packageNameLabel": "Nome do pacote",
|
||||
"installTypeLabel": "Tipo de instalação",
|
||||
"mountTypeLabel": "Montar",
|
||||
"regularTypeLabel": "Normal",
|
||||
"patchedDateLabel": "Data da Modificação",
|
||||
"patchedDateLabel": "Data do patch",
|
||||
"appliedPatchesLabel": "Modificações aplicadas",
|
||||
"patchedDateHint": "${date} às ${time}",
|
||||
"appliedPatchesHint": "${quantity} modificação/ões aplicada/s",
|
||||
@ -293,10 +295,10 @@
|
||||
"status_failure_storage_description": "A instalação falhou devido ao armazenamento insuficiente.\n\nLiberta algum espaço e tenta novamente.",
|
||||
"status_failure_invalid_description": "A instalação falhou devido ao facto da aplicação modificada ser inválida.\n\nDesinstalar a aplicação e tentar novamente?",
|
||||
"status_failure_incompatible_description": "O aplicativo é incompatível com este dispositivo.\n\nEntre em contacto com o desenvolvedor da aplicação e peça suporte.",
|
||||
"status_failure_conflict_description": "A instalação foi impedida por uma instalação já existente da mesma aplicação.\n\nDesinstalar a aplicação instalada e tentar novamente?",
|
||||
"status_failure_conflict_description": "A instalação foi impedida por uma instalação existente do app.\n\nDesinstalar o app instalado e tentar de novo?",
|
||||
"status_failure_blocked_description": "A instalação foi bloqueada por ${packageName}.\n\nAjuste as suas definições de segurança e tenta novamente.",
|
||||
"install_failed_verification_failure_description": "A instalação falhou por problemas de verificação.\n\nAjusta as tuas definições de segurança e tenta novamente.",
|
||||
"install_failed_version_downgrade_description": "A instalação falhou devido ao facto da aplicação modificada ser uma versão inferior à da aplicação instalada.\n\nDesinstalar a aplicação e tentar novamente?",
|
||||
"install_failed_version_downgrade_description": "A instalação falhou porque o app patcheado era uma versão inferior ao aplicativo instalado.\n\nDesinstalar o app e tentar de novo?",
|
||||
"status_unknown_description": "A instalação falhou por razões desconhecidas. Por favor, tenta novamente."
|
||||
}
|
||||
}
|
@ -118,16 +118,18 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "Valoare personalizată",
|
||||
"setToNull": "Setează ca nul",
|
||||
"nullValue": "Această valoare este în prezent nulă",
|
||||
"resetOptionsTooltip": "Resetează opțiunile patch-ului",
|
||||
"viewTitle": "Opțiuni patch",
|
||||
"saveOptions": "Salvează",
|
||||
"addOptions": "Adaugă opțiuni",
|
||||
"deselectPatch": "Deselectați toate patch-urile",
|
||||
"unselectPatch": "Deselectează patch-ul",
|
||||
"tooltip": "Mai multe opțiuni de intrare",
|
||||
"selectFilePath": "Selectați calea fișierului",
|
||||
"selectFolder": "Selectați dosarul",
|
||||
"selectOption": "Selectați opțiunea",
|
||||
"requiredOption": "Această opțiune este necesară",
|
||||
"requiredOption": "Setarea acestei opțiuni este necesară",
|
||||
"unsupportedOption": "Această opțiune nu este acceptată",
|
||||
"requiredOptionNull": "Următoarele opțiuni trebuie setate:\n\n${options}"
|
||||
},
|
||||
|
@ -118,11 +118,13 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "Пользовательское значение",
|
||||
"setToNull": "Установить null",
|
||||
"nullValue": "Значение этого параметра в настоящее время является нулевым",
|
||||
"resetOptionsTooltip": "Сброс параметров патчей",
|
||||
"viewTitle": "Параметры патчей",
|
||||
"saveOptions": "Сохранить",
|
||||
"addOptions": "Добавить параметры",
|
||||
"deselectPatch": "Снять выделение с патча",
|
||||
"unselectPatch": "Отменить выбор патча",
|
||||
"tooltip": "Другие параметры ввода",
|
||||
"selectFilePath": "Выберите путь к файлу",
|
||||
"selectFolder": "Выберите папку",
|
||||
@ -159,7 +161,7 @@
|
||||
},
|
||||
"settingsView": {
|
||||
"widgetTitle": "Настройки",
|
||||
"appearanceSectionTitle": "Оформление",
|
||||
"appearanceSectionTitle": "Внешний вид",
|
||||
"teamSectionTitle": "Команда",
|
||||
"debugSectionTitle": "Отладка",
|
||||
"advancedSectionTitle": "Дополнительные",
|
||||
@ -175,7 +177,7 @@
|
||||
"languageUpdated": "Язык обновлен",
|
||||
"englishOption": "Английский",
|
||||
"sourcesLabel": "Альтернативные источники",
|
||||
"sourcesLabelHint": "Настройте альтернативные источники для патчей и интеграций ReVanced",
|
||||
"sourcesLabelHint": "Настроить альтернативные источники для патчей и интеграций ReVanced",
|
||||
"sourcesIntegrationsLabel": "Репозиторий интеграций",
|
||||
"useAlternativeSources": "Использовать альтернативные источники",
|
||||
"useAlternativeSourcesHint": "Использовать альтернативные источники для патчей и интеграций ReVanced вместо API",
|
||||
|
@ -16,8 +16,8 @@
|
||||
"noShowAgain": "Ne prikazuj ponovo",
|
||||
"add": "Dodaj",
|
||||
"remove": "Ukloni",
|
||||
"showChangelogButton": "Prikaži evidenciju promena",
|
||||
"showUpdateButton": "Prikaži ažuriranje",
|
||||
"showChangelogButton": "Vidi evidenciju promena",
|
||||
"showUpdateButton": "Vidi ažuriranje",
|
||||
"navigationView": {
|
||||
"dashboardTab": "Kontrolna tabla",
|
||||
"patcherTab": "Pečer",
|
||||
@ -77,7 +77,7 @@
|
||||
"noAppsLabel": "Nijedna aplikacija nije pronađena",
|
||||
"currentVersion": "Trenutna verzija",
|
||||
"suggestedVersion": "Preporučena verzija",
|
||||
"anyVersion": "Bilo koja verzija"
|
||||
"anyVersion": "Sve verzije"
|
||||
},
|
||||
"patchSelectorCard": {
|
||||
"widgetTitle": "Izaberi pečeve",
|
||||
@ -178,7 +178,7 @@
|
||||
"sourcesLabelHint": "Konfigurišite alternativne izvore za ReVanced pečeve i ReVanced integracije",
|
||||
"sourcesIntegrationsLabel": "Izvor integracija",
|
||||
"useAlternativeSources": "Koristi alternativne izvore",
|
||||
"useAlternativeSourcesHint": "Koristite alternativne izvore za ReVanced pečeve i ReVanced integracije umesto API-ja",
|
||||
"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?",
|
||||
@ -226,10 +226,10 @@
|
||||
"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": "Izbriši evidencije",
|
||||
"deleteLogsHint": "Izbrišite prikupljene evidencije ReVanced Managera",
|
||||
@ -252,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",
|
||||
|
@ -16,8 +16,8 @@
|
||||
"noShowAgain": "Не приказуј поново",
|
||||
"add": "Додај",
|
||||
"remove": "Уклони",
|
||||
"showChangelogButton": "Прикажи евиденцију промена",
|
||||
"showUpdateButton": "Прикажи ажурирање",
|
||||
"showChangelogButton": "Види евиденцију промена",
|
||||
"showUpdateButton": "Види ажурирање",
|
||||
"navigationView": {
|
||||
"dashboardTab": "Контролна табла",
|
||||
"patcherTab": "Печер",
|
||||
@ -77,7 +77,7 @@
|
||||
"noAppsLabel": "Ниједна апликација није пронађена",
|
||||
"currentVersion": "Тренутна верзија",
|
||||
"suggestedVersion": "Препоручена верзија",
|
||||
"anyVersion": "Било која верзија"
|
||||
"anyVersion": "Све верзије"
|
||||
},
|
||||
"patchSelectorCard": {
|
||||
"widgetTitle": "Изабери печеве",
|
||||
@ -178,7 +178,7 @@
|
||||
"sourcesLabelHint": "Конфигуришите алтернативне изворе за ReVanced печеве и ReVanced интеграције",
|
||||
"sourcesIntegrationsLabel": "Извор интеграција",
|
||||
"useAlternativeSources": "Користи алтернативне изворе",
|
||||
"useAlternativeSourcesHint": "Користите алтернативне изворе за ReVanced печеве и ReVanced интеграције уместо API-ја",
|
||||
"useAlternativeSourcesHint": "Коришћење алтернативних извора за ReVanced печеве и ReVanced интеграције уместо API-ја",
|
||||
"sourcesResetDialogTitle": "Ресетовање",
|
||||
"sourcesResetDialogText": "Желите ли заиста да вратите изворе на подразумеване вредности?",
|
||||
"apiURLResetDialogText": "Желите ли заиста да вратите URL API-ја на подразумевану вредност?",
|
||||
@ -226,10 +226,10 @@
|
||||
"resetStoredPatchesDialogTitle": "Ресетовати избор печева?",
|
||||
"resetStoredPatchesDialogText": "Подразумевани избор печева ће бити враћен.",
|
||||
"resetStoredPatches": "Избор печева је ресетован",
|
||||
"resetStoredOptionsLabel": "Ресетуј опције печа",
|
||||
"resetStoredOptionsHint": "Ресетујте све опције печа",
|
||||
"resetStoredOptionsDialogTitle": "Ресетовати опције печа?",
|
||||
"resetStoredOptionsDialogText": "Ресетовањем опција печа уклањате све сачуване опције.",
|
||||
"resetStoredOptionsLabel": "Ресетуј опције печева",
|
||||
"resetStoredOptionsHint": "Ресетујте све опције печева",
|
||||
"resetStoredOptionsDialogTitle": "Ресетовати опције печева?",
|
||||
"resetStoredOptionsDialogText": "Ресетовањем опција печева уклањате све сачуване опције.",
|
||||
"resetStoredOptions": "Опције су ресетоване",
|
||||
"deleteLogsLabel": "Избриши евиденције",
|
||||
"deleteLogsHint": "Избришите прикупљене евиденције ReVanced Manager-а",
|
||||
@ -252,7 +252,7 @@
|
||||
"keystoreSelectorErrorMessage": "Није могуће користити изабрани фајл са складиштем кључева"
|
||||
},
|
||||
"appInfoView": {
|
||||
"widgetTitle": "Информације о апликацији",
|
||||
"widgetTitle": "О апликацији",
|
||||
"openButton": "Отвори",
|
||||
"uninstallButton": "Деинсталирај",
|
||||
"unmountButton": "Демонтирај",
|
||||
|
@ -118,16 +118,18 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "Anpassat värde",
|
||||
"setToNull": "Sätt till noll",
|
||||
"nullValue": "Detta alternativ värde är för närvarande noll",
|
||||
"resetOptionsTooltip": "Återställ patchalternativ",
|
||||
"viewTitle": "Patchalternativ",
|
||||
"saveOptions": "Spara",
|
||||
"addOptions": "Lägg till alternativ",
|
||||
"deselectPatch": "Avmarkera patch",
|
||||
"unselectPatch": "Avmarkera patch",
|
||||
"tooltip": "Fler inmatningsalternativ",
|
||||
"selectFilePath": "Välj filsökväg",
|
||||
"selectFolder": "Välj mapp",
|
||||
"selectOption": "Välj alternativ",
|
||||
"requiredOption": "Detta alternativ är nödvändigt",
|
||||
"requiredOption": "Inställning av detta alternativ krävs",
|
||||
"unsupportedOption": "Detta alternativ stöds ej",
|
||||
"requiredOptionNull": "Följande alternativ måste anges:\n\n${options}"
|
||||
},
|
||||
|
@ -161,7 +161,7 @@
|
||||
"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ı",
|
||||
|
@ -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": "Завантаження...",
|
||||
@ -71,18 +71,18 @@
|
||||
"requiredOptionDialogText": "Потрібно встановити деякі параметри патчу."
|
||||
},
|
||||
"appSelectorCard": {
|
||||
"widgetTitle": "Виберіть додаток",
|
||||
"widgetTitleSelected": "Обраний застосунок",
|
||||
"widgetSubtitle": "Застосунок не обрано",
|
||||
"widgetTitle": "Вибрати застосунок",
|
||||
"widgetTitleSelected": "Вибраний застосунок",
|
||||
"widgetSubtitle": "Застосунок не вибрано",
|
||||
"noAppsLabel": "Не знайдено жодного застосунку",
|
||||
"currentVersion": "Поточна версія",
|
||||
"suggestedVersion": "Запропоновано",
|
||||
"anyVersion": "Будь-яка версія"
|
||||
},
|
||||
"patchSelectorCard": {
|
||||
"widgetTitle": "Обрати патчі",
|
||||
"widgetTitleSelected": "Обрані патчі",
|
||||
"widgetSubtitle": "Спочатку оберіть застосунок",
|
||||
"widgetTitle": "Вибрати патчі",
|
||||
"widgetTitleSelected": "Вибрані патчі",
|
||||
"widgetSubtitle": "Спочатку виберіть застосунок",
|
||||
"widgetEmptySubtitle": "Патчі не вибрано"
|
||||
},
|
||||
"socialMediaCard": {
|
||||
@ -90,44 +90,46 @@
|
||||
"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": "Готово",
|
||||
"defaultChip": "За замовчуванням",
|
||||
"defaultTooltip": "Обрати всі стандартні патчі",
|
||||
"noneChip": "Скинути",
|
||||
"noneTooltip": "Зняти вибір з усіх патчів",
|
||||
"defaultTooltip": "Вибрати всі стандартні патчі",
|
||||
"noneChip": "Скинути вибір",
|
||||
"noneTooltip": "Скинути вибір з усіх патчів",
|
||||
"loadPatchesSelection": "Ввантажити вибір патчів",
|
||||
"noSavedPatches": "Немає збереженого вибору патчів для вибраного застосунку.\nНатисніть «Готово», щоб зберегти поточний вибір.",
|
||||
"noSavedPatches": "Немає збереженого вибору патчів для вибраного застосунку.\nНатисніть \"Готово\", щоб зберегти поточний вибір.",
|
||||
"noPatchesFound": "Для цього застосунку немає патчів",
|
||||
"setRequiredOption": "Деякі патчі вимагають встановлення параметрів:\n\n${patches}\n\n Будь ласка, встановіть їх перед продовженням."
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "Власне значення",
|
||||
"resetOptionsTooltip": "Скинути параметр патчу",
|
||||
"setToNull": "Встановити в null",
|
||||
"nullValue": "Значення опції в даний час null",
|
||||
"resetOptionsTooltip": "Скинути параметри патчу",
|
||||
"viewTitle": "Параметри патчу",
|
||||
"saveOptions": "Зберегти",
|
||||
"addOptions": "Додати параметри",
|
||||
"deselectPatch": "Зняти вибір патчу",
|
||||
"unselectPatch": "Скасувати вибір патча",
|
||||
"tooltip": "Більше варіантів вводу",
|
||||
"selectFilePath": "Оберіть шлях до файлу",
|
||||
"selectFolder": "Оберіть теку",
|
||||
"selectOption": "Обрати параметр",
|
||||
"requiredOption": "Цей параметр є обов’язковим",
|
||||
"selectOption": "Вибрати параметр",
|
||||
"requiredOption": "Встановлення цього параметра є обов'язковим",
|
||||
"unsupportedOption": "Цей параметр не підтримується",
|
||||
"requiredOptionNull": "Необхідно встановити наступні параметри:\n\n${options}"
|
||||
},
|
||||
@ -153,8 +155,8 @@
|
||||
"notificationText": "Натисніть, щоб повернутися до інсталятора",
|
||||
"exportApkButtonTooltip": "Експортувати пропатчений APK",
|
||||
"exportLogButtonTooltip": "Експортувати журнал",
|
||||
"screenshotDetected": "Виявлено знімок екрана. Якщо ви намагаєтеся поділитися журналом, будь ласка, надішліть його текстову копію.\n\nСкопіювати журнал у буфер обміну?",
|
||||
"copiedToClipboard": "Скопійовано журнал до буфера обміну",
|
||||
"screenshotDetected": "Виявлено знімок екрана. Якщо ви намагаєтеся поділитися журналом, будь ласка, діліться його текстовою копією.\n\nСкопіювати журнал у буфер обміну?",
|
||||
"copiedToClipboard": "Журнал скопійовано до буфера обміну",
|
||||
"noExit": "Інсталятор все ще працює, неможливо вийти..."
|
||||
},
|
||||
"settingsView": {
|
||||
@ -175,16 +177,16 @@
|
||||
"languageUpdated": "Мову застосунку оновлено",
|
||||
"englishOption": "Англійська",
|
||||
"sourcesLabel": "Альтернативні джерела",
|
||||
"sourcesLabelHint": "Налаштуйте альтернативні джерела для ReVanced Patches та ReVanced Integrations",
|
||||
"sourcesLabelHint": "Налаштувати альтернативні джерела для ReVanced Patches та ReVanced Integrations",
|
||||
"sourcesIntegrationsLabel": "Integrations source",
|
||||
"useAlternativeSources": "Використовувати альтернативні джерела",
|
||||
"useAlternativeSourcesHint": "Використовувати альтернативні джерела для ReVanced Patches та ReVanced Integrations замість API",
|
||||
"sourcesResetDialogTitle": "Скинути",
|
||||
"sourcesResetDialogText": "Ви дійсно бажаєте відновити стандартні значення джерел?",
|
||||
"apiURLResetDialogText": "Ви дійсно хочете скинути API URL на стандартне значення?",
|
||||
"apiURLResetDialogText": "Ви дійсно бажаєте відновити API URL до стандартного значення?",
|
||||
"sourcesUpdateNote": "Примітка. Це автоматично завантажить ReVanced Patches і ReVanced Integrations з альтернативних джерел.\n\nЦе під'єднає вас до альтернативного джерела.",
|
||||
"apiURLLabel": "URL-адреса API",
|
||||
"apiURLHint": "Налаштуйте API URL для ReVanced Manager",
|
||||
"apiURLHint": "Налаштувати API URL для ReVanced Manager",
|
||||
"selectApiURL": "URL-адреса API",
|
||||
"orgPatchesLabel": "Patches organization",
|
||||
"sourcesPatchesLabel": "Patches source",
|
||||
@ -196,7 +198,7 @@
|
||||
"enablePatchesSelectionLabel": "Дозволити зміну вибору патчів",
|
||||
"enablePatchesSelectionHint": "Не перешкоджати вибору або скасуванню вибору патчів",
|
||||
"enablePatchesSelectionWarningText": "Зміна вибору патчів може спричинити несподівані проблеми.\n\nУвімкнути все одно?",
|
||||
"disablePatchesSelectionWarningText": "Ви збираєтеся вимкнути зміну вибору патчів.\nБуде відновлено типовий вибір патчів.\n\nВсе одно вимкнути?",
|
||||
"disablePatchesSelectionWarningText": "Ви збираєтеся вимкнути зміну вибору патчів.\nБуде відновлено стандартний вибір патчів.\n\nВсе одно вимкнути?",
|
||||
"autoUpdatePatchesLabel": "Автоматичне оновлення патчів",
|
||||
"autoUpdatePatchesHint": "Автоматично оновлювати патчі до останньої версії",
|
||||
"showUpdateDialogLabel": "Показувати вікно оновлення",
|
||||
@ -260,7 +262,7 @@
|
||||
"unmountDialogText": "Ви впевнені, що бажаєте розмонтувати цей додаток?",
|
||||
"uninstallDialogText": "Ви впевнені, що бажаєте видалити цей застосунок?",
|
||||
"rootDialogText": "Застосунок було встановлено з правами суперкористувача, але наразі ReVanced Manager не має таких прав.\nБудь ласка, спочатку надайте права суперкористувача.",
|
||||
"packageNameLabel": "Назва пакету",
|
||||
"packageNameLabel": "Ім'я пакету",
|
||||
"installTypeLabel": "Тип встановлення",
|
||||
"mountTypeLabel": "Монтувати",
|
||||
"regularTypeLabel": "Звичайний",
|
||||
|
@ -58,7 +58,7 @@
|
||||
},
|
||||
"latestCommitCard": {
|
||||
"loadingLabel": "正在加载…",
|
||||
"timeagoLabel": "${time}前",
|
||||
"timeagoLabel": "${time} 前",
|
||||
"patcherLabel": "补丁程序: ",
|
||||
"managerLabel": "管理器: ",
|
||||
"updateButton": "更新管理器"
|
||||
@ -118,16 +118,18 @@
|
||||
},
|
||||
"patchOptionsView": {
|
||||
"customValue": "自定义值",
|
||||
"setToNull": "设置为为空",
|
||||
"nullValue": "此选项值当前为空",
|
||||
"resetOptionsTooltip": "重置补丁选项",
|
||||
"viewTitle": "补丁选项",
|
||||
"saveOptions": "保存",
|
||||
"addOptions": "添加选项",
|
||||
"deselectPatch": "取消选择补丁",
|
||||
"unselectPatch": "取消选择补丁",
|
||||
"tooltip": "更多输入选项",
|
||||
"selectFilePath": "选择文件路径",
|
||||
"selectFolder": "选择文件夹",
|
||||
"selectOption": "选择选项",
|
||||
"requiredOption": "必须填写此选项",
|
||||
"requiredOption": "设置此选项是必需的",
|
||||
"unsupportedOption": "不支持此选项",
|
||||
"requiredOptionNull": "必须设置以下选项:\n\n${options}"
|
||||
},
|
||||
|
@ -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": "選取修補檔",
|
||||
@ -145,37 +145,37 @@
|
||||
"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": "設定 ReVanced 補丁和 ReVanced 整合的替代來源",
|
||||
"sourcesLabelHint": "設定 ReVanced 修補和 ReVanced 整合的替代來源",
|
||||
"sourcesIntegrationsLabel": "整合來源",
|
||||
"useAlternativeSources": "使用替代來源",
|
||||
"useAlternativeSourcesHint": "改用 ReVanced 修補檔和 ReVanced 整合的替代來源,而不是 API",
|
||||
@ -183,9 +183,9 @@
|
||||
"sourcesResetDialogText": "確定要將來源資訊重設為預設值嗎?",
|
||||
"apiURLResetDialogText": "確定要重設 API URL 至預設值嗎?",
|
||||
"sourcesUpdateNote": "注意:這將會自動從替代來源下載 ReVanced 修補檔和 ReVanced 整合。\n\n這將連接您到替代來源。",
|
||||
"apiURLLabel": "API 鏈接",
|
||||
"apiURLHint": "設定 ReVanced 管理器的 API URL",
|
||||
"selectApiURL": "API 鏈接",
|
||||
"apiURLLabel": "API URL",
|
||||
"apiURLHint": "設定 ReVanced Manager 的 API URL",
|
||||
"selectApiURL": "API URL",
|
||||
"orgPatchesLabel": "修補檔組織",
|
||||
"sourcesPatchesLabel": "修補檔來源",
|
||||
"orgIntegrationsLabel": "整合組織",
|
||||
@ -196,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": "重新啟動應用程式以套用變更",
|
||||
@ -224,13 +224,13 @@
|
||||
"resetStoredPatchesLabel": "重設修補選取",
|
||||
"resetStoredPatchesHint": "重設已儲存的修補選取",
|
||||
"resetStoredPatchesDialogTitle": "確定要重設修補選取嗎?",
|
||||
"resetStoredPatchesDialogText": "將恢復為預設的修補檔選項。",
|
||||
"resetStoredPatchesDialogText": "將還原為預設的修補檔選項。",
|
||||
"resetStoredPatches": "已重設修補選取",
|
||||
"resetStoredOptionsLabel": "重設修補選項",
|
||||
"resetStoredOptionsHint": "重設所有修補選項",
|
||||
"resetStoredOptionsDialogTitle": "確定要重設修補選項嗎?",
|
||||
"resetStoredOptionsDialogText": "重設修補檔選項將移除所有已儲存的設定。",
|
||||
"resetStoredOptions": "所有選項已重設",
|
||||
"resetStoredOptions": "已重設所有選項",
|
||||
"deleteLogsLabel": "清除記錄檔",
|
||||
"deleteLogsHint": "刪除已收集的 ReVanced Manager 記錄檔",
|
||||
"deletedLogs": "已刪除記錄檔",
|
||||
@ -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請調整您的安全設定,然後重試。",
|
||||
|
@ -6,12 +6,14 @@ import 'package:injectable/injectable.dart';
|
||||
import 'package:revanced_manager/app/app.locator.dart';
|
||||
import 'package:revanced_manager/services/download_manager.dart';
|
||||
import 'package:revanced_manager/services/manager_api.dart';
|
||||
import 'package:synchronized/synchronized.dart';
|
||||
|
||||
@lazySingleton
|
||||
class GithubAPI {
|
||||
late final Dio _dio;
|
||||
late final ManagerAPI _managerAPI = locator<ManagerAPI>();
|
||||
late final DownloadManager _downloadManager = locator<DownloadManager>();
|
||||
final Map<String, Lock> _lockMap = {};
|
||||
|
||||
Future<void> initialize(String repoUrl) async {
|
||||
_dio = _downloadManager.initDio(repoUrl);
|
||||
@ -21,44 +23,21 @@ class GithubAPI {
|
||||
await _downloadManager.clearAllCache();
|
||||
}
|
||||
|
||||
Future<Response> _dioGetSynchronously(String path) async {
|
||||
// Create a new Lock for each path
|
||||
if (!_lockMap.containsKey(path)) {
|
||||
_lockMap[path] = Lock();
|
||||
}
|
||||
return _lockMap[path]!.synchronized(() async {
|
||||
return await _dio.get(path);
|
||||
});
|
||||
}
|
||||
|
||||
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(
|
||||
final response = await _dioGetSynchronously(
|
||||
'/repos/$repoName/releases/latest',
|
||||
);
|
||||
return response.data;
|
||||
@ -70,36 +49,27 @@ class GithubAPI {
|
||||
}
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>?> getLatestManagerRelease(
|
||||
String repoName,
|
||||
) async {
|
||||
Future<String?> getManagerChangelogs() async {
|
||||
try {
|
||||
final response = await _dio.get(
|
||||
'/repos/$repoName/releases',
|
||||
final response = await _dioGetSynchronously(
|
||||
'/repos/${_managerAPI.defaultManagerRepo}/releases?per_page=50',
|
||||
);
|
||||
final Map<String, dynamic> releases = response.data[0];
|
||||
int updates = 0;
|
||||
final buffer = StringBuffer();
|
||||
final String currentVersion =
|
||||
await _managerAPI.getCurrentManagerVersion();
|
||||
while (response.data[updates]['tag_name'] != currentVersion) {
|
||||
updates++;
|
||||
}
|
||||
for (int i = 1; i < updates; i++) {
|
||||
if (response.data[i]['prerelease']) {
|
||||
for (final release in response.data) {
|
||||
if (release['tag_name'] == currentVersion) {
|
||||
if (buffer.isEmpty) {
|
||||
buffer.writeln(release['body']);
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (release['prerelease']) {
|
||||
continue;
|
||||
}
|
||||
releases.update(
|
||||
'body',
|
||||
(value) =>
|
||||
value +
|
||||
'\n' +
|
||||
'# ' +
|
||||
response.data[i]['tag_name'] +
|
||||
'\n' +
|
||||
response.data[i]['body'],
|
||||
);
|
||||
buffer.writeln(release['body']);
|
||||
}
|
||||
return releases;
|
||||
return buffer.toString();
|
||||
} on Exception catch (e) {
|
||||
if (kDebugMode) {
|
||||
print(e);
|
||||
@ -108,32 +78,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,
|
||||
@ -145,8 +90,10 @@ class GithubAPI {
|
||||
url,
|
||||
);
|
||||
}
|
||||
final Map<String, dynamic>? release =
|
||||
await getPatchesRelease(repoName, version);
|
||||
final response = await _dioGetSynchronously(
|
||||
'/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(
|
||||
|
@ -31,7 +31,6 @@ class ManagerAPI {
|
||||
final String cliRepo = 'revanced-cli';
|
||||
late SharedPreferences _prefs;
|
||||
List<Patch> patches = [];
|
||||
List<Option> modifiedOptions = [];
|
||||
List<Option> options = [];
|
||||
Patch? selectedPatch;
|
||||
BuildContext? ctx;
|
||||
@ -422,7 +421,7 @@ class ManagerAPI {
|
||||
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,
|
||||
@ -441,7 +440,7 @@ class ManagerAPI {
|
||||
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,
|
||||
@ -470,7 +469,7 @@ class ManagerAPI {
|
||||
);
|
||||
} else {
|
||||
final release =
|
||||
await _githubAPI.getLatestPatchesRelease(getPatchesRepo());
|
||||
await _githubAPI.getLatestRelease(getPatchesRepo());
|
||||
if (release != null) {
|
||||
final DateTime timestamp =
|
||||
DateTime.parse(release['created_at'] as String);
|
||||
@ -519,7 +518,7 @@ class ManagerAPI {
|
||||
);
|
||||
} else {
|
||||
final release =
|
||||
await _githubAPI.getLatestPatchesRelease(getPatchesRepo());
|
||||
await _githubAPI.getLatestRelease(getPatchesRepo());
|
||||
if (release != null) {
|
||||
return release['tag_name'];
|
||||
} else {
|
||||
|
@ -39,7 +39,8 @@ class HomeViewModel extends BaseViewModel {
|
||||
List<PatchedApplication> patchedInstalledApps = [];
|
||||
String _currentManagerVersion = '';
|
||||
String _currentPatchesVersion = '';
|
||||
String? _latestManagerVersion = '';
|
||||
String? latestManagerVersion;
|
||||
String? latestPatchesVersion;
|
||||
File? downloadedApk;
|
||||
|
||||
Future<void> initialize(BuildContext context) async {
|
||||
@ -50,7 +51,6 @@ class HomeViewModel extends BaseViewModel {
|
||||
await forceRefresh(context);
|
||||
return;
|
||||
}
|
||||
_latestManagerVersion = await _managerAPI.getLatestManagerVersion();
|
||||
_currentPatchesVersion = await _managerAPI.getCurrentPatchesVersion();
|
||||
if (_managerAPI.showUpdateDialog() && await hasManagerUpdates()) {
|
||||
showUpdateDialog(context, false);
|
||||
@ -131,21 +131,21 @@ class HomeViewModel extends BaseViewModel {
|
||||
if (!_managerAPI.releaseBuild) {
|
||||
return false;
|
||||
}
|
||||
_latestManagerVersion =
|
||||
latestManagerVersion =
|
||||
await _managerAPI.getLatestManagerVersion() ?? _currentManagerVersion;
|
||||
|
||||
if (_latestManagerVersion != _currentManagerVersion) {
|
||||
if (latestManagerVersion != _currentManagerVersion) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
Future<bool> hasPatchesUpdates() async {
|
||||
final String? latestVersion = await _managerAPI.getLatestPatchesVersion();
|
||||
if (latestVersion != null) {
|
||||
latestPatchesVersion = await _managerAPI.getLatestPatchesVersion();
|
||||
if (latestPatchesVersion != null) {
|
||||
try {
|
||||
final int latestVersionInt =
|
||||
int.parse(latestVersion.replaceAll(RegExp('[^0-9]'), ''));
|
||||
int.parse(latestPatchesVersion!.replaceAll(RegExp('[^0-9]'), ''));
|
||||
final int currentVersionInt =
|
||||
int.parse(_currentPatchesVersion.replaceAll(RegExp('[^0-9]'), ''));
|
||||
return latestVersionInt > currentVersionInt;
|
||||
@ -475,12 +475,14 @@ class HomeViewModel extends BaseViewModel {
|
||||
);
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>?> getLatestManagerRelease() {
|
||||
return _githubAPI.getLatestManagerRelease(_managerAPI.defaultManagerRepo);
|
||||
Future<String?> getManagerChangelogs() {
|
||||
return _githubAPI.getManagerChangelogs();
|
||||
}
|
||||
|
||||
Future<Map<String, dynamic>?> getLatestPatchesRelease() {
|
||||
return _githubAPI.getLatestPatchesRelease(_managerAPI.defaultPatchesRepo);
|
||||
Future<String?> getLatestPatchesChangelog() async {
|
||||
final release =
|
||||
await _githubAPI.getLatestRelease(_managerAPI.defaultPatchesRepo);
|
||||
return release?['body'];
|
||||
}
|
||||
|
||||
Future<String?> getLatestPatchesReleaseTime() {
|
||||
|
@ -37,79 +37,35 @@ class PatchOptionsView extends StatelessWidget {
|
||||
color: Theme.of(context).textTheme.titleLarge!.color,
|
||||
),
|
||||
),
|
||||
actions: [
|
||||
IconButton(
|
||||
onPressed: () {
|
||||
model.resetOptions();
|
||||
},
|
||||
icon: const Icon(
|
||||
Icons.history,
|
||||
),
|
||||
tooltip: t.patchOptionsView.resetOptionsTooltip,
|
||||
),
|
||||
],
|
||||
),
|
||||
SliverToBoxAdapter(
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Column(
|
||||
children: [
|
||||
for (final Option option in model.visibleOptions)
|
||||
for (final Option option in model.modifiedOptions)
|
||||
if (option.valueType == 'String' ||
|
||||
option.valueType == 'Int')
|
||||
IntAndStringPatchOption(
|
||||
patchOption: option,
|
||||
removeOption: (option) {
|
||||
model.removeOption(option);
|
||||
},
|
||||
onChanged: (value, option) {
|
||||
model.modifyOptions(value, option);
|
||||
},
|
||||
model: model,
|
||||
)
|
||||
else if (option.valueType == 'Boolean')
|
||||
BooleanPatchOption(
|
||||
patchOption: option,
|
||||
removeOption: (option) {
|
||||
model.removeOption(option);
|
||||
},
|
||||
onChanged: (value, option) {
|
||||
model.modifyOptions(value, option);
|
||||
},
|
||||
model: model,
|
||||
)
|
||||
else if (option.valueType == 'StringArray' ||
|
||||
option.valueType == 'IntArray' ||
|
||||
option.valueType == 'LongArray')
|
||||
IntStringLongListPatchOption(
|
||||
patchOption: option,
|
||||
removeOption: (option) {
|
||||
model.removeOption(option);
|
||||
},
|
||||
onChanged: (value, option) {
|
||||
model.modifyOptions(value, option);
|
||||
},
|
||||
model: model,
|
||||
)
|
||||
else
|
||||
UnsupportedPatchOption(
|
||||
patchOption: option,
|
||||
),
|
||||
if (model.visibleOptions.length !=
|
||||
model.options.length) ...[
|
||||
const SizedBox(
|
||||
height: 8,
|
||||
),
|
||||
FilledButton(
|
||||
onPressed: () {
|
||||
model.showAddOptionDialog(context);
|
||||
},
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
const Icon(Icons.add),
|
||||
Text(t.patchOptionsView.addOptions),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
const SizedBox(
|
||||
height: 80,
|
||||
),
|
||||
|
@ -5,7 +5,6 @@ import 'package:revanced_manager/models/patch.dart';
|
||||
import 'package:revanced_manager/services/manager_api.dart';
|
||||
import 'package:revanced_manager/ui/views/patcher/patcher_viewmodel.dart';
|
||||
import 'package:revanced_manager/ui/views/patches_selector/patches_selector_viewmodel.dart';
|
||||
import 'package:revanced_manager/ui/widgets/shared/custom_card.dart';
|
||||
import 'package:stacked/stacked.dart';
|
||||
|
||||
class PatchOptionsViewModel extends BaseViewModel {
|
||||
@ -14,7 +13,7 @@ class PatchOptionsViewModel extends BaseViewModel {
|
||||
locator<PatcherViewModel>().selectedApp!.packageName;
|
||||
List<Option> options = [];
|
||||
List<Option> savedOptions = [];
|
||||
List<Option> visibleOptions = [];
|
||||
List<Option> modifiedOptions = [];
|
||||
|
||||
Future<void> initialize() async {
|
||||
options = getDefaultOptions();
|
||||
@ -28,36 +27,18 @@ class PatchOptionsViewModel extends BaseViewModel {
|
||||
savedOptions.add(savedOption);
|
||||
}
|
||||
}
|
||||
if (savedOptions.isNotEmpty) {
|
||||
visibleOptions = [
|
||||
...savedOptions,
|
||||
...options.where(
|
||||
(option) =>
|
||||
option.required &&
|
||||
!savedOptions.any((sOption) => sOption.key == option.key),
|
||||
),
|
||||
];
|
||||
} else {
|
||||
visibleOptions = [
|
||||
...options.where((option) => option.required),
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
void addOption(Option option) {
|
||||
visibleOptions.add(option);
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
void removeOption(Option option) {
|
||||
visibleOptions.removeWhere((vOption) => vOption.key == option.key);
|
||||
notifyListeners();
|
||||
modifiedOptions = [
|
||||
...savedOptions,
|
||||
...options.where(
|
||||
(option) => !savedOptions.any((sOption) => sOption.key == option.key),
|
||||
),
|
||||
];
|
||||
}
|
||||
|
||||
bool saveOptions(BuildContext context) {
|
||||
final List<Option> requiredNullOptions = [];
|
||||
for (final Option option in options) {
|
||||
if (!visibleOptions.any((vOption) => vOption.key == option.key)) {
|
||||
if (modifiedOptions.any((mOption) => mOption.key == option.key)) {
|
||||
_managerAPI.clearPatchOption(
|
||||
selectedApp,
|
||||
_managerAPI.selectedPatch!.name,
|
||||
@ -65,7 +46,7 @@ class PatchOptionsViewModel extends BaseViewModel {
|
||||
);
|
||||
}
|
||||
}
|
||||
for (final Option option in visibleOptions) {
|
||||
for (final Option option in modifiedOptions) {
|
||||
if (option.required && option.value == null) {
|
||||
requiredNullOptions.add(option);
|
||||
} else {
|
||||
@ -98,11 +79,8 @@ class PatchOptionsViewModel extends BaseViewModel {
|
||||
required: option.required,
|
||||
key: option.key,
|
||||
);
|
||||
visibleOptions[visibleOptions
|
||||
.indexWhere((vOption) => vOption.key == option.key)] = modifiedOption;
|
||||
_managerAPI.modifiedOptions
|
||||
.removeWhere((mOption) => mOption.key == option.key);
|
||||
_managerAPI.modifiedOptions.add(modifiedOption);
|
||||
modifiedOptions.removeWhere((mOption) => mOption.key == option.key);
|
||||
modifiedOptions.add(modifiedOption);
|
||||
}
|
||||
|
||||
List<Option> getDefaultOptions() {
|
||||
@ -122,93 +100,11 @@ class PatchOptionsViewModel extends BaseViewModel {
|
||||
return defaultOptions;
|
||||
}
|
||||
|
||||
void resetOptions() {
|
||||
_managerAPI.modifiedOptions.clear();
|
||||
visibleOptions =
|
||||
getDefaultOptions().where((option) => option.required).toList();
|
||||
notifyListeners();
|
||||
}
|
||||
|
||||
Future<void> showAddOptionDialog(BuildContext context) async {
|
||||
await showDialog(
|
||||
context: context,
|
||||
builder: (context) => AlertDialog(
|
||||
title: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
Text(
|
||||
t.patchOptionsView.addOptions,
|
||||
),
|
||||
Text(
|
||||
'',
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color: Theme.of(context).colorScheme.onSecondaryContainer,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
actions: [
|
||||
FilledButton(
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
},
|
||||
child: Text(t.cancelButton),
|
||||
),
|
||||
],
|
||||
contentPadding: const EdgeInsets.all(8),
|
||||
content: Wrap(
|
||||
spacing: 14,
|
||||
runSpacing: 14,
|
||||
children: options
|
||||
.where(
|
||||
(option) =>
|
||||
!visibleOptions.any((vOption) => vOption.key == option.key),
|
||||
)
|
||||
.map((e) {
|
||||
return CustomCard(
|
||||
padding: const EdgeInsets.all(4),
|
||||
backgroundColor: Theme.of(context).colorScheme.surface,
|
||||
onTap: () {
|
||||
addOption(e);
|
||||
Navigator.pop(context);
|
||||
},
|
||||
child: Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
e.title,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color: Theme.of(context).colorScheme.onSurface,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
Text(
|
||||
e.description,
|
||||
style: TextStyle(
|
||||
fontSize: 14,
|
||||
color: Theme.of(context).colorScheme.onSurface,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
);
|
||||
}).toList(),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
dynamic getDefaultValue(Option patchOption) => _managerAPI.options
|
||||
.firstWhere(
|
||||
(option) => option.key == patchOption.key,
|
||||
)
|
||||
.value;
|
||||
}
|
||||
|
||||
Future<void> showRequiredOptionNullDialog(
|
||||
@ -248,7 +144,7 @@ Future<void> showRequiredOptionNullDialog(
|
||||
PatchesSelectorViewModel().showPatchesChangeDialog(context);
|
||||
}
|
||||
},
|
||||
child: Text(t.patchOptionsView.deselectPatch),
|
||||
child: Text(t.patchOptionsView.unselectPatch),
|
||||
),
|
||||
FilledButton(
|
||||
onPressed: () {
|
||||
|
@ -61,7 +61,6 @@ class PatchesSelectorViewModel extends BaseViewModel {
|
||||
void navigateToPatchOptions(List<Option> setOptions, Patch patch) {
|
||||
_managerAPI.options = setOptions;
|
||||
_managerAPI.selectedPatch = patch;
|
||||
_managerAPI.modifiedOptions.clear();
|
||||
_navigationService.navigateToPatchOptionsView();
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:language_code/language_code.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/services/toast.dart';
|
||||
@ -10,8 +11,10 @@ import 'package:revanced_manager/ui/views/settings/settings_viewmodel.dart';
|
||||
import 'package:revanced_manager/ui/widgets/settingsView/settings_tile_dialog.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
import 'package:stacked/stacked.dart';
|
||||
import 'package:stacked_services/stacked_services.dart';
|
||||
|
||||
final _settingViewModel = SettingsViewModel();
|
||||
final _navigationService = NavigationService();
|
||||
|
||||
class SUpdateLanguage extends BaseViewModel {
|
||||
final Toast _toast = locator<Toast>();
|
||||
@ -108,10 +111,9 @@ class SUpdateLanguage extends BaseViewModel {
|
||||
child: Text(t.cancelButton),
|
||||
),
|
||||
TextButton(
|
||||
onPressed: () {
|
||||
// TODO(nullcube): Translation will not update until we refresh the page.
|
||||
onPressed: () async {
|
||||
updateLocale(selectedLanguageCode.value.languageTag);
|
||||
Navigator.of(context).pop();
|
||||
await _navigationService.navigateToNavigationView();
|
||||
},
|
||||
child: Text(t.okButton),
|
||||
),
|
||||
|
@ -3,6 +3,7 @@ import 'package:flutter_markdown/flutter_markdown.dart';
|
||||
import 'package:revanced_manager/app/app.locator.dart';
|
||||
import 'package:revanced_manager/gen/strings.g.dart';
|
||||
import 'package:revanced_manager/ui/views/home/home_viewmodel.dart';
|
||||
import 'package:url_launcher/url_launcher.dart';
|
||||
|
||||
class UpdateConfirmationSheet extends StatelessWidget {
|
||||
const UpdateConfirmationSheet({
|
||||
@ -13,6 +14,7 @@ class UpdateConfirmationSheet extends StatelessWidget {
|
||||
|
||||
final bool isPatches;
|
||||
final bool changelog;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final HomeViewModel model = locator<HomeViewModel>();
|
||||
@ -24,120 +26,125 @@ class UpdateConfirmationSheet extends StatelessWidget {
|
||||
builder: (_, scrollController) => SingleChildScrollView(
|
||||
controller: scrollController,
|
||||
child: SafeArea(
|
||||
child: FutureBuilder<Map<String, dynamic>?>(
|
||||
future: !isPatches
|
||||
? model.getLatestManagerRelease()
|
||||
: model.getLatestPatchesRelease(),
|
||||
builder: (_, snapshot) {
|
||||
if (!snapshot.hasData) {
|
||||
return const SizedBox(
|
||||
height: 300,
|
||||
child: Center(
|
||||
child: CircularProgressIndicator(),
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
if (!changelog)
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(
|
||||
top: 40.0,
|
||||
left: 24.0,
|
||||
right: 24.0,
|
||||
bottom: 20.0,
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
if (!changelog)
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(
|
||||
top: 40.0,
|
||||
left: 24.0,
|
||||
right: 24.0,
|
||||
bottom: 20.0,
|
||||
),
|
||||
child: Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
child: Row(
|
||||
children: [
|
||||
Expanded(
|
||||
child: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
Text(
|
||||
isPatches
|
||||
? t.homeView.updatePatchesSheetTitle
|
||||
: t.homeView.updateSheetTitle,
|
||||
style: const TextStyle(
|
||||
fontSize: 24,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 4.0),
|
||||
Row(
|
||||
children: [
|
||||
Text(
|
||||
Icon(
|
||||
Icons.new_releases_outlined,
|
||||
color:
|
||||
Theme.of(context).colorScheme.secondary,
|
||||
),
|
||||
const SizedBox(width: 8.0),
|
||||
Text(
|
||||
isPatches
|
||||
? t.homeView.updatePatchesSheetTitle
|
||||
: t.homeView.updateSheetTitle,
|
||||
style: const TextStyle(
|
||||
fontSize: 24,
|
||||
fontWeight: FontWeight.bold,
|
||||
),
|
||||
? model.latestPatchesVersion ?? 'Unknown'
|
||||
: model.latestManagerVersion ?? 'Unknown',
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.w500,
|
||||
color:
|
||||
Theme.of(context).colorScheme.secondary,
|
||||
),
|
||||
const SizedBox(height: 4.0),
|
||||
Row(
|
||||
children: [
|
||||
Icon(
|
||||
Icons.new_releases_outlined,
|
||||
color: Theme.of(context)
|
||||
.colorScheme
|
||||
.secondary,
|
||||
),
|
||||
const SizedBox(width: 8.0),
|
||||
Text(
|
||||
snapshot.data!['tag_name'] ?? 'Unknown',
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.w500,
|
||||
color: Theme.of(context)
|
||||
.colorScheme
|
||||
.secondary,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
FilledButton(
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
isPatches
|
||||
? model.updatePatches(context)
|
||||
: model.updateManager(context);
|
||||
},
|
||||
child: Text(t.updateButton),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(
|
||||
top: 12.0,
|
||||
left: 24.0,
|
||||
bottom: 12.0,
|
||||
),
|
||||
child: Text(
|
||||
t.homeView.updateChangelogTitle,
|
||||
style: TextStyle(
|
||||
fontSize: changelog ? 24 : 20,
|
||||
fontWeight: FontWeight.w500,
|
||||
color:
|
||||
Theme.of(context).colorScheme.onSecondaryContainer,
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
Container(
|
||||
margin: const EdgeInsets.symmetric(horizontal: 24.0),
|
||||
decoration: BoxDecoration(
|
||||
color: Theme.of(context).colorScheme.secondaryContainer,
|
||||
borderRadius: BorderRadius.circular(12.0),
|
||||
FilledButton(
|
||||
onPressed: () {
|
||||
Navigator.of(context).pop();
|
||||
isPatches
|
||||
? model.updatePatches(context)
|
||||
: model.updateManager(context);
|
||||
},
|
||||
child: Text(t.updateButton),
|
||||
),
|
||||
child: Markdown(
|
||||
],
|
||||
),
|
||||
),
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(
|
||||
top: 12.0,
|
||||
left: 24.0,
|
||||
bottom: 12.0,
|
||||
),
|
||||
child: Text(
|
||||
t.homeView.updateChangelogTitle,
|
||||
style: TextStyle(
|
||||
fontSize: changelog ? 24 : 20,
|
||||
fontWeight: FontWeight.w500,
|
||||
color: Theme.of(context).colorScheme.onSecondaryContainer,
|
||||
),
|
||||
),
|
||||
),
|
||||
FutureBuilder<String?>(
|
||||
future: !isPatches
|
||||
? model.getManagerChangelogs()
|
||||
: model.getLatestPatchesChangelog(),
|
||||
builder: (_, snapshot) {
|
||||
if (!snapshot.hasData) {
|
||||
return Padding(
|
||||
padding: EdgeInsets.only(top: changelog ? 96 : 24),
|
||||
child: const Center(
|
||||
child: CircularProgressIndicator(),
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
return Container(
|
||||
margin: const EdgeInsets.symmetric(horizontal: 24.0),
|
||||
decoration: BoxDecoration(
|
||||
color: Theme.of(context).colorScheme.secondaryContainer,
|
||||
borderRadius: BorderRadius.circular(12.0),
|
||||
),
|
||||
child: Markdown(
|
||||
styleSheet: MarkdownStyleSheet(
|
||||
a: TextStyle(
|
||||
color: Theme.of(context).colorScheme.primary,
|
||||
),
|
||||
),
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
padding: const EdgeInsets.all(20.0),
|
||||
data: snapshot.data!['body'] ?? '',
|
||||
),
|
||||
onTapLink: (text, href, title) => href != null
|
||||
? launchUrl(
|
||||
Uri.parse(href),
|
||||
mode: LaunchMode.externalApplication,
|
||||
)
|
||||
: null,
|
||||
shrinkWrap: true,
|
||||
physics: const NeverScrollableScrollPhysics(),
|
||||
padding: const EdgeInsets.all(20.0),
|
||||
data: snapshot.data ?? '',
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
),
|
||||
|
@ -3,19 +3,18 @@ import 'package:flutter/services.dart';
|
||||
import 'package:flutter_file_dialog/flutter_file_dialog.dart';
|
||||
import 'package:revanced_manager/gen/strings.g.dart';
|
||||
import 'package:revanced_manager/models/patch.dart';
|
||||
import 'package:revanced_manager/ui/views/patch_options/patch_options_viewmodel.dart';
|
||||
import 'package:revanced_manager/ui/widgets/shared/custom_card.dart';
|
||||
|
||||
class BooleanPatchOption extends StatelessWidget {
|
||||
const BooleanPatchOption({
|
||||
super.key,
|
||||
required this.patchOption,
|
||||
required this.removeOption,
|
||||
required this.onChanged,
|
||||
required this.model,
|
||||
});
|
||||
|
||||
final Option patchOption;
|
||||
final void Function(Option option) removeOption;
|
||||
final void Function(dynamic value, Option option) onChanged;
|
||||
final PatchOptionsViewModel model;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@ -30,88 +29,94 @@ class BooleanPatchOption extends StatelessWidget {
|
||||
value: value ?? false,
|
||||
onChanged: (bool value) {
|
||||
patchOptionValue.value = value;
|
||||
onChanged(value, patchOption);
|
||||
model.modifyOptions(value, patchOption);
|
||||
},
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
patchOption: patchOption,
|
||||
removeOption: (Option option) {
|
||||
removeOption(option);
|
||||
},
|
||||
patchOptionValue: patchOptionValue,
|
||||
model: model,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
class IntAndStringPatchOption extends StatelessWidget {
|
||||
class IntAndStringPatchOption extends StatefulWidget {
|
||||
const IntAndStringPatchOption({
|
||||
super.key,
|
||||
required this.patchOption,
|
||||
required this.removeOption,
|
||||
required this.onChanged,
|
||||
required this.model,
|
||||
});
|
||||
|
||||
final Option patchOption;
|
||||
final void Function(Option option) removeOption;
|
||||
final void Function(dynamic value, Option option) onChanged;
|
||||
final PatchOptionsViewModel model;
|
||||
|
||||
@override
|
||||
State<IntAndStringPatchOption> createState() =>
|
||||
_IntAndStringPatchOptionState();
|
||||
}
|
||||
|
||||
class _IntAndStringPatchOptionState extends State<IntAndStringPatchOption> {
|
||||
ValueNotifier? patchOptionValue;
|
||||
String getKey() {
|
||||
if (patchOptionValue!.value != null && widget.patchOption.values != null) {
|
||||
final List values = widget.patchOption.values!.entries
|
||||
.where((e) => e.value == patchOptionValue!.value)
|
||||
.toList();
|
||||
if (values.isNotEmpty) {
|
||||
return values.first.key;
|
||||
}
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final ValueNotifier patchOptionValue = ValueNotifier(patchOption.value);
|
||||
String getKey() {
|
||||
if (patchOption.value != null && patchOption.values != null) {
|
||||
final List values = patchOption.values!.entries
|
||||
.where((e) => e.value == patchOption.value)
|
||||
.toList();
|
||||
if (values.isNotEmpty) {
|
||||
return values.first.key;
|
||||
}
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||
patchOptionValue ??= ValueNotifier(widget.patchOption.value);
|
||||
return PatchOption(
|
||||
widget: Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextFieldForPatchOption(
|
||||
value: patchOption.value,
|
||||
values: patchOption.values,
|
||||
optionType: patchOption.valueType,
|
||||
selectedKey: getKey(),
|
||||
onChanged: (value) {
|
||||
patchOptionValue.value = value;
|
||||
onChanged(value, patchOption);
|
||||
},
|
||||
),
|
||||
ValueListenableBuilder(
|
||||
valueListenable: patchOptionValue,
|
||||
builder: (context, value, child) {
|
||||
if (patchOption.required && value == null) {
|
||||
return Column(
|
||||
widget: ValueListenableBuilder(
|
||||
valueListenable: patchOptionValue!,
|
||||
builder: (context, value, child) {
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
TextFieldForPatchOption(
|
||||
value: value,
|
||||
patchOption: widget.patchOption,
|
||||
selectedKey: getKey(),
|
||||
onChanged: (value) {
|
||||
patchOptionValue!.value = value;
|
||||
widget.model.modifyOptions(value, widget.patchOption);
|
||||
},
|
||||
),
|
||||
if (value == null)
|
||||
Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
const SizedBox(height: 8),
|
||||
Text(
|
||||
t.patchOptionsView.requiredOption,
|
||||
widget.patchOption.required
|
||||
? t.patchOptionsView.requiredOption
|
||||
: t.patchOptionsView.nullValue,
|
||||
style: TextStyle(
|
||||
color: Theme.of(context).colorScheme.error,
|
||||
color: widget.patchOption.required
|
||||
? Theme.of(context).colorScheme.error
|
||||
: Theme.of(context)
|
||||
.colorScheme
|
||||
.onSecondaryContainer
|
||||
.withOpacity(0.6),
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
} else {
|
||||
return const SizedBox();
|
||||
}
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
),
|
||||
patchOption: patchOption,
|
||||
removeOption: (Option option) {
|
||||
removeOption(option);
|
||||
},
|
||||
patchOption: widget.patchOption,
|
||||
patchOptionValue: patchOptionValue!,
|
||||
model: widget.model,
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -120,13 +125,11 @@ class IntStringLongListPatchOption extends StatelessWidget {
|
||||
const IntStringLongListPatchOption({
|
||||
super.key,
|
||||
required this.patchOption,
|
||||
required this.removeOption,
|
||||
required this.onChanged,
|
||||
required this.model,
|
||||
});
|
||||
|
||||
final Option patchOption;
|
||||
final void Function(Option option) removeOption;
|
||||
final void Function(dynamic value, Option option) onChanged;
|
||||
final PatchOptionsViewModel model;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
@ -172,8 +175,7 @@ class IntStringLongListPatchOption extends StatelessWidget {
|
||||
final e = values[index];
|
||||
return TextFieldForPatchOption(
|
||||
value: e.toString(),
|
||||
values: patchOption.values,
|
||||
optionType: type,
|
||||
patchOption: patchOption,
|
||||
selectedKey: value.length > 1 ? '' : getKey(e),
|
||||
showDropdown: index == 0,
|
||||
onChanged: (newValue) {
|
||||
@ -205,13 +207,13 @@ class IntStringLongListPatchOption extends StatelessWidget {
|
||||
}
|
||||
}
|
||||
patchOptionValue.value = List.from(values);
|
||||
onChanged(values, patchOption);
|
||||
model.modifyOptions(values, patchOption);
|
||||
},
|
||||
removeValue: () {
|
||||
patchOptionValue.value = List.from(patchOptionValue.value)
|
||||
..removeAt(index);
|
||||
values.removeAt(index);
|
||||
onChanged(values, patchOption);
|
||||
model.modifyOptions(values, patchOption);
|
||||
},
|
||||
);
|
||||
},
|
||||
@ -231,7 +233,7 @@ class IntStringLongListPatchOption extends StatelessWidget {
|
||||
List.from(patchOptionValue.value)..add(0);
|
||||
values.add(0);
|
||||
}
|
||||
onChanged(values, patchOption);
|
||||
model.modifyOptions(values, patchOption);
|
||||
},
|
||||
child: Row(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
@ -254,9 +256,8 @@ class IntStringLongListPatchOption extends StatelessWidget {
|
||||
},
|
||||
),
|
||||
patchOption: patchOption,
|
||||
removeOption: (Option option) {
|
||||
removeOption(option);
|
||||
},
|
||||
patchOptionValue: patchOptionValue,
|
||||
model: model,
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -282,7 +283,8 @@ class UnsupportedPatchOption extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
patchOption: patchOption,
|
||||
removeOption: (_) {},
|
||||
patchOptionValue: ValueNotifier(null),
|
||||
model: PatchOptionsViewModel(),
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -292,15 +294,18 @@ class PatchOption extends StatelessWidget {
|
||||
super.key,
|
||||
required this.widget,
|
||||
required this.patchOption,
|
||||
required this.removeOption,
|
||||
required this.patchOptionValue,
|
||||
required this.model,
|
||||
});
|
||||
|
||||
final Widget widget;
|
||||
final Option patchOption;
|
||||
final void Function(Option option) removeOption;
|
||||
final ValueNotifier patchOptionValue;
|
||||
final PatchOptionsViewModel model;
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final defaultValue = model.getDefaultValue(patchOption);
|
||||
return Padding(
|
||||
padding: const EdgeInsets.all(8.0),
|
||||
child: CustomCard(
|
||||
@ -337,11 +342,24 @@ class PatchOption extends StatelessWidget {
|
||||
],
|
||||
),
|
||||
),
|
||||
if (!patchOption.required)
|
||||
IconButton(
|
||||
onPressed: () => removeOption(patchOption),
|
||||
icon: const Icon(Icons.delete),
|
||||
),
|
||||
ValueListenableBuilder(
|
||||
valueListenable: patchOptionValue,
|
||||
builder: (context, value, child) {
|
||||
if (defaultValue != patchOptionValue.value) {
|
||||
return IconButton(
|
||||
onPressed: () {
|
||||
patchOptionValue.value = defaultValue;
|
||||
model.modifyOptions(
|
||||
defaultValue,
|
||||
patchOption,
|
||||
);
|
||||
},
|
||||
icon: const Icon(Icons.history),
|
||||
);
|
||||
}
|
||||
return const SizedBox();
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
const SizedBox(height: 4),
|
||||
@ -360,17 +378,15 @@ class TextFieldForPatchOption extends StatefulWidget {
|
||||
const TextFieldForPatchOption({
|
||||
super.key,
|
||||
required this.value,
|
||||
required this.values,
|
||||
required this.patchOption,
|
||||
this.removeValue,
|
||||
required this.onChanged,
|
||||
required this.optionType,
|
||||
required this.selectedKey,
|
||||
this.showDropdown = true,
|
||||
});
|
||||
|
||||
final String? value;
|
||||
final Map<String, dynamic>? values;
|
||||
final String optionType;
|
||||
final Option patchOption;
|
||||
final String selectedKey;
|
||||
final bool showDropdown;
|
||||
final void Function()? removeValue;
|
||||
@ -388,20 +404,19 @@ class _TextFieldForPatchOptionState extends State<TextFieldForPatchOption> {
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final bool isStringOption = widget.optionType.contains('String');
|
||||
final bool isArrayOption = widget.optionType.contains('Array');
|
||||
selectedKey ??= widget.selectedKey;
|
||||
controller.text = !isStringOption &&
|
||||
isArrayOption &&
|
||||
selectedKey == '' &&
|
||||
(widget.value != null && widget.value.toString().startsWith('['))
|
||||
? ''
|
||||
: widget.value ?? '';
|
||||
final bool isStringOption = widget.patchOption.valueType.contains('String');
|
||||
final bool isArrayOption = widget.patchOption.valueType.contains('Array');
|
||||
selectedKey = selectedKey == '' ? selectedKey : widget.selectedKey;
|
||||
final bool isValueArray = widget.value?.startsWith('[') ?? false;
|
||||
final bool shouldResetValue =
|
||||
!isStringOption && isArrayOption && selectedKey == '' && isValueArray;
|
||||
controller.text = shouldResetValue ? '' : widget.value ?? '';
|
||||
defaultValue ??= controller.text;
|
||||
return Column(
|
||||
crossAxisAlignment: CrossAxisAlignment.start,
|
||||
children: [
|
||||
if (widget.showDropdown && (widget.values?.isNotEmpty ?? false))
|
||||
if (widget.showDropdown &&
|
||||
(widget.patchOption.values?.isNotEmpty ?? false))
|
||||
DropdownButton<String>(
|
||||
style: const TextStyle(
|
||||
fontSize: 16,
|
||||
@ -410,11 +425,12 @@ class _TextFieldForPatchOptionState extends State<TextFieldForPatchOption> {
|
||||
dropdownColor: Theme.of(context).colorScheme.secondaryContainer,
|
||||
isExpanded: true,
|
||||
value: selectedKey,
|
||||
items: widget.values!.entries
|
||||
items: widget.patchOption.values!.entries
|
||||
.map(
|
||||
(e) => DropdownMenuItem(
|
||||
value: e.key,
|
||||
child: RichText(
|
||||
overflow: TextOverflow.ellipsis,
|
||||
text: TextSpan(
|
||||
text: e.key,
|
||||
style: TextStyle(
|
||||
@ -427,7 +443,7 @@ class _TextFieldForPatchOptionState extends State<TextFieldForPatchOption> {
|
||||
TextSpan(
|
||||
text: ' ${e.value}',
|
||||
style: TextStyle(
|
||||
fontSize: 14,
|
||||
fontSize: 16,
|
||||
color: Theme.of(context)
|
||||
.colorScheme
|
||||
.onSecondaryContainer
|
||||
@ -447,9 +463,7 @@ class _TextFieldForPatchOptionState extends State<TextFieldForPatchOption> {
|
||||
t.patchOptionsView.customValue,
|
||||
style: TextStyle(
|
||||
fontSize: 16,
|
||||
color: Theme.of(context)
|
||||
.colorScheme
|
||||
.onSecondaryContainer,
|
||||
color: Theme.of(context).colorScheme.onSecondaryContainer,
|
||||
),
|
||||
),
|
||||
),
|
||||
@ -459,9 +473,11 @@ class _TextFieldForPatchOptionState extends State<TextFieldForPatchOption> {
|
||||
controller.text = defaultValue!;
|
||||
widget.onChanged(controller.text);
|
||||
} else {
|
||||
controller.text = widget.values![value].toString();
|
||||
controller.text = widget.patchOption.values![value].toString();
|
||||
widget.onChanged(
|
||||
isArrayOption ? widget.values![value] : controller.text,
|
||||
isArrayOption
|
||||
? widget.patchOption.values![value]
|
||||
: controller.text,
|
||||
);
|
||||
}
|
||||
setState(() {
|
||||
@ -472,9 +488,9 @@ class _TextFieldForPatchOptionState extends State<TextFieldForPatchOption> {
|
||||
if (selectedKey == '')
|
||||
TextFormField(
|
||||
inputFormatters: [
|
||||
if (widget.optionType.contains('Int'))
|
||||
if (widget.patchOption.valueType.contains('Int'))
|
||||
FilteringTextInputFormatter.allow(RegExp(r'[0-9]')),
|
||||
if (widget.optionType.contains('Long'))
|
||||
if (widget.patchOption.valueType.contains('Long'))
|
||||
FilteringTextInputFormatter.allow(RegExp(r'^[0-9]*\.?[0-9]*')),
|
||||
],
|
||||
controller: controller,
|
||||
@ -487,31 +503,36 @@ class _TextFieldForPatchOptionState extends State<TextFieldForPatchOption> {
|
||||
return [
|
||||
if (isArrayOption)
|
||||
PopupMenuItem(
|
||||
value: t.remove,
|
||||
value: 'remove',
|
||||
child: Text(t.remove),
|
||||
),
|
||||
if (isStringOption) ...[
|
||||
PopupMenuItem(
|
||||
value: t.patchOptionsView.selectFilePath,
|
||||
value: 'file',
|
||||
child: Text(t.patchOptionsView.selectFilePath),
|
||||
),
|
||||
PopupMenuItem(
|
||||
value: t.patchOptionsView.selectFolder,
|
||||
value: 'folder',
|
||||
child: Text(t.patchOptionsView.selectFolder),
|
||||
),
|
||||
],
|
||||
if (!widget.patchOption.required)
|
||||
PopupMenuItem(
|
||||
value: 'null',
|
||||
child: Text(t.patchOptionsView.setToNull),
|
||||
),
|
||||
];
|
||||
},
|
||||
onSelected: (String selection) async {
|
||||
switch (selection) {
|
||||
case 'patchOptionsView.selectFilePath':
|
||||
case 'file':
|
||||
final String? result = await FlutterFileDialog.pickFile();
|
||||
if (result != null) {
|
||||
controller.text = result;
|
||||
widget.onChanged(controller.text);
|
||||
}
|
||||
break;
|
||||
case 'patchOptionsView.selectFolder':
|
||||
case 'folder':
|
||||
final DirectoryLocation? result =
|
||||
await FlutterFileDialog.pickDirectory();
|
||||
if (result != null) {
|
||||
@ -522,6 +543,10 @@ class _TextFieldForPatchOptionState extends State<TextFieldForPatchOption> {
|
||||
case 'remove':
|
||||
widget.removeValue!();
|
||||
break;
|
||||
case 'null':
|
||||
controller.text = '';
|
||||
widget.onChanged(null);
|
||||
break;
|
||||
}
|
||||
},
|
||||
),
|
||||
|
3147
package-lock.json
generated
3147
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -5,6 +5,6 @@
|
||||
"@semantic-release/changelog": "^6.0.3",
|
||||
"@semantic-release/exec": "^6.0.3",
|
||||
"@semantic-release/git": "^10.0.1",
|
||||
"semantic-release": "^23.0.6"
|
||||
"semantic-release": "^23.0.8"
|
||||
}
|
||||
}
|
||||
|
251
pubspec.lock
251
pubspec.lock
@ -29,10 +29,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: args
|
||||
sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596
|
||||
sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.2"
|
||||
version: "2.5.0"
|
||||
async:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -85,10 +85,10 @@ packages:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: build_runner
|
||||
sha256: "581bacf68f89ec8792f5e5a0b2c4decd1c948e97ce659dc783688c8a88fbec21"
|
||||
sha256: "3ac61a79bfb6f6cc11f693591063a7f19a7af628dc52f141743edac5c16e8c22"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.8"
|
||||
version: "2.4.9"
|
||||
build_runner_core:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -109,10 +109,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: built_value
|
||||
sha256: fedde275e0a6b798c3296963c5cd224e3e1b55d0e478d5b7e65e6b540f363a0e
|
||||
sha256: c7913a9737ee4007efedaffc968c049fd0f3d0e49109e778edc10de9426005cb
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.9.1"
|
||||
version: "8.9.2"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -157,10 +157,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: connectivity_plus
|
||||
sha256: e9feae83b1849f61bad9f6f33ee00646e3410d54ce0821e02f262f9901dad3c9
|
||||
sha256: db7a4e143dc72cc3cb2044ef9b052a7ebfe729513e6a82943bc3526f784365b8
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.0.1"
|
||||
version: "6.0.3"
|
||||
connectivity_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -197,10 +197,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: csv
|
||||
sha256: "63ed2871dd6471193dffc52c0e6c76fb86269c00244d244297abbb355c84a86e"
|
||||
sha256: c6aa2679b2a18cb57652920f674488d89712efaf4d3fdf2e537215b35fc19d6c
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.1.1"
|
||||
version: "6.0.0"
|
||||
dart_style:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -230,10 +230,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: device_info_plus
|
||||
sha256: "77f757b789ff68e4eaf9c56d1752309bd9f7ad557cb105b938a7f8eb89e59110"
|
||||
sha256: eead12d1a1ed83d8283ab4c2f3fca23ac4082f29f25f29dff0f758f57d06ec91
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "9.1.2"
|
||||
version: "10.1.0"
|
||||
device_info_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -246,10 +246,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: dio
|
||||
sha256: "49af28382aefc53562459104f64d16b9dfd1e8ef68c862d5af436cc8356ce5a8"
|
||||
sha256: "11e40df547d418cc0c4900a9318b26304e665da6fa4755399a9ff9efd09034b5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.4.1"
|
||||
version: "5.4.3+1"
|
||||
dio_cache_interceptor:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -323,19 +323,19 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: "."
|
||||
ref: "65cf0ec93486b3a6c74339aadaeb384cf2c9a24b"
|
||||
resolved-ref: "65cf0ec93486b3a6c74339aadaeb384cf2c9a24b"
|
||||
url: "https://github.com/JulianAssmann/flutter_background"
|
||||
ref: "900a81501f1f0e4996fe9e2cbf55f1ea8df08b49"
|
||||
resolved-ref: "900a81501f1f0e4996fe9e2cbf55f1ea8df08b49"
|
||||
url: "https://github.com/validcube/flutter_background"
|
||||
source: git
|
||||
version: "1.2.0"
|
||||
flutter_cache_manager:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_cache_manager
|
||||
sha256: "8207f27539deb83732fdda03e259349046a39a4c767269285f449ade355d54ba"
|
||||
sha256: "395d6b7831f21f3b989ebedbb785545932adb9afe2622c1ffacf7f4b53a7e544"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.3.1"
|
||||
version: "3.3.2"
|
||||
flutter_file_dialog:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -356,10 +356,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_local_notifications
|
||||
sha256: c18f1de98fe0bb9dd5ba91e1330d4febc8b6a7de6aae3ffe475ef423723e72f3
|
||||
sha256: "40e6fbd2da7dcc7ed78432c5cdab1559674b4af035fddbfb2f9a8f9c2112fcef"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "16.3.2"
|
||||
version: "17.1.2"
|
||||
flutter_local_notifications_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -372,10 +372,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_local_notifications_platform_interface
|
||||
sha256: "7cf643d6d5022f3baed0be777b0662cce5919c0a7b86e700299f22dc4ae660ef"
|
||||
sha256: "340abf67df238f7f0ef58f4a26d2a83e1ab74c77ab03cd2b2d5018ac64db30b7"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.0.0+1"
|
||||
version: "7.1.0"
|
||||
flutter_localizations:
|
||||
dependency: "direct main"
|
||||
description: flutter
|
||||
@ -385,10 +385,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_markdown
|
||||
sha256: a64c5323ac83ed2b7940d2b6288d160aa1753ff271ba9d9b2a86770414aa3eab
|
||||
sha256: "9921f9deda326f8a885e202b1e35237eadfc1345239a0f6f0f1ff287e047547f"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.20+1"
|
||||
version: "0.7.1"
|
||||
flutter_test:
|
||||
dependency: transitive
|
||||
description: flutter
|
||||
@ -403,10 +403,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: fluttertoast
|
||||
sha256: dfdde255317af381bfc1c486ed968d5a43a2ded9c931e87cbecd88767d6a71c1
|
||||
sha256: "81b68579e23fcbcada2db3d50302813d2371664afe6165bc78148050ab94bf66"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.2.4"
|
||||
version: "8.2.5"
|
||||
font_awesome_flutter:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -427,10 +427,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: frontend_server_client
|
||||
sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612"
|
||||
sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.2.0"
|
||||
version: "4.0.0"
|
||||
get:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -443,10 +443,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: get_it
|
||||
sha256: e6017ce7fdeaf218dc51a100344d8cb70134b80e28b760f8bb23c242437bafd7
|
||||
sha256: d85128a5dae4ea777324730dc65edd9c9f43155c109d5cc0a69cab74139fbac1
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.6.7"
|
||||
version: "7.7.0"
|
||||
glob:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -499,26 +499,26 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: injectable
|
||||
sha256: cd3c422e13270c81f64ab73c80406b2b2ed563fe59d0ff2093eb7eee63d0bbeb
|
||||
sha256: "3c8355a29d11ff28c0311bed754649761f345ef7a13ff66a714380954af51226"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.2"
|
||||
version: "2.4.2"
|
||||
injectable_generator:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: injectable_generator
|
||||
sha256: f9d3c05f0938403f79ad6c6d23ec8e37a7a05ad980b1bf9399493f3e41845788
|
||||
sha256: "2ca3ada337eac0ef6b82f8049c970ddb63947738fdf32ac6cbef8d1567d7ba05"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.1"
|
||||
version: "2.6.1"
|
||||
intl:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: intl
|
||||
sha256: "3bc132a9dbce73a7e4a21a17d06e1878839ffbf975568bc875c60537824b0c4d"
|
||||
sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.18.1"
|
||||
version: "0.19.0"
|
||||
io:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -531,10 +531,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: js
|
||||
sha256: f2c445dce49627136094980615a031419f7f3eb393237e4ecd97ac15dea343f3
|
||||
sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.7"
|
||||
version: "0.7.1"
|
||||
json2yaml:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -547,50 +547,50 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: json_annotation
|
||||
sha256: b10a7b2ff83d83c777edba3c6a0f97045ddadd56c944e1a23a3fdf43a1bf4467
|
||||
sha256: "1ce844379ca14835a50d2f019a3099f419082cfdd231cd86a142af94dd5c6bb1"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.8.1"
|
||||
version: "4.9.0"
|
||||
json_serializable:
|
||||
dependency: "direct dev"
|
||||
description:
|
||||
name: json_serializable
|
||||
sha256: aa1f5a8912615733e0fdc7a02af03308933c93235bdc8d50d0b0c8a8ccb0b969
|
||||
sha256: ea1432d167339ea9b5bb153f0571d0039607a873d6e04e0117af043f14a1fd4b
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.7.1"
|
||||
version: "6.8.0"
|
||||
language_code:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: language_code
|
||||
sha256: "3124246f599039a89c990d007b00bc41b1526d6400de97cf13a478b7f4b16a83"
|
||||
sha256: "7272519879a86e64fb5f183716ba10cefeb2f191e6e0aa043e0259d0ca0aa122"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.4.2"
|
||||
version: "0.5.3+2"
|
||||
leak_tracker:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker
|
||||
sha256: "78eb209deea09858f5269f5a5b02be4049535f568c07b275096836f01ea323fa"
|
||||
sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "10.0.0"
|
||||
version: "10.0.5"
|
||||
leak_tracker_flutter_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_flutter_testing
|
||||
sha256: b46c5e37c19120a8a01918cfaf293547f47269f7cb4b0058f21531c2465d6ef0
|
||||
sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
version: "3.0.5"
|
||||
leak_tracker_testing:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: leak_tracker_testing
|
||||
sha256: a597f72a664dbd293f3bfc51f9ba69816f84dcd403cdac7066cb3f6003f3ab47
|
||||
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
version: "3.0.1"
|
||||
lints:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -628,10 +628,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: markdown
|
||||
sha256: "1b134d9f8ff2da15cb298efe6cd8b7d2a78958c1b00384ebcbdf13fe340a6c90"
|
||||
sha256: ef2a1298144e3f985cc736b22e0ccdaf188b5b3970648f2d9dc13efd1d9df051
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.2.1"
|
||||
version: "7.2.2"
|
||||
matcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -644,18 +644,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: material_color_utilities
|
||||
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
|
||||
sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.8.0"
|
||||
version: "0.11.1"
|
||||
meta:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: meta
|
||||
sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
|
||||
sha256: "25dfcaf170a0190f47ca6355bdd4552cb8924b430512ff0cafb8db9bd41fe33b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.11.0"
|
||||
version: "1.14.0"
|
||||
mime:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -692,18 +692,18 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: package_info_plus
|
||||
sha256: cb44f49b6e690fa766f023d5b22cac6b9affe741dd792b6ac7ad4fabe0d7b097
|
||||
sha256: "2c582551839386fa7ddbc7770658be7c0f87f388a4bff72066478f597c34d17f"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.0.0"
|
||||
version: "7.0.0"
|
||||
package_info_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: package_info_plus_platform_interface
|
||||
sha256: "9bc8ba46813a4cc42c66ab781470711781940780fd8beddd0c3da62506d3a6c6"
|
||||
sha256: f49918f3433a3146047372f9d4f1f847511f2acd5cd030e1f44fe5a50036b70e
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.0.1"
|
||||
version: "3.0.0"
|
||||
path:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -716,26 +716,26 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: path_provider
|
||||
sha256: b27217933eeeba8ff24845c34003b003b2b22151de3c908d0e679e8fe1aa078b
|
||||
sha256: c9e7d3a4cd1410877472158bee69963a4579f78b68c65a2b7d40d1a7a88bb161
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.1.2"
|
||||
version: "2.1.3"
|
||||
path_provider_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_android
|
||||
sha256: "477184d672607c0a3bf68fbbf601805f92ef79c82b64b4d6eb318cbca4c48668"
|
||||
sha256: a248d8146ee5983446bf03ed5ea8f6533129a12b11f12057ad1b4a67a2b3b41d
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.2"
|
||||
version: "2.2.4"
|
||||
path_provider_foundation:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: path_provider_foundation
|
||||
sha256: "5a7999be66e000916500be4f15a3633ebceb8302719b47b9cc49ce924125350f"
|
||||
sha256: f234384a3fdd67f989b4d54a5d73ca2a6c422fa55ae694381ae0f4375cd1ea16
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.2"
|
||||
version: "2.4.0"
|
||||
path_provider_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -764,26 +764,26 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: permission_handler
|
||||
sha256: "74e962b7fad7ff75959161bb2c0ad8fe7f2568ee82621c9c2660b751146bfe44"
|
||||
sha256: "18bf33f7fefbd812f37e72091a15575e72d5318854877e0e4035a24ac1113ecb"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "11.3.0"
|
||||
version: "11.3.1"
|
||||
permission_handler_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: permission_handler_android
|
||||
sha256: "1acac6bae58144b442f11e66621c062aead9c99841093c38f5bcdcc24c1c3474"
|
||||
sha256: "8bb852cd759488893805c3161d0b2b5db55db52f773dbb014420b304055ba2c5"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "12.0.5"
|
||||
version: "12.0.6"
|
||||
permission_handler_apple:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: permission_handler_apple
|
||||
sha256: bdafc6db74253abb63907f4e357302e6bb786ab41465e8635f362ee71fd8707b
|
||||
sha256: e9ad66020b89ff1b63908f247c2c6f931c6e62699b756ef8b3c4569350cd8662
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "9.4.0"
|
||||
version: "9.4.4"
|
||||
permission_handler_html:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -796,10 +796,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: permission_handler_platform_interface
|
||||
sha256: "23dfba8447c076ab5be3dee9ceb66aad345c4a648f0cac292c77b1eb0e800b78"
|
||||
sha256: "48d4fcf201a1dad93ee869ab0d4101d084f49136ec82a8a06ed9cfeacab9fd20"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.2.0"
|
||||
version: "4.2.1"
|
||||
permission_handler_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -902,42 +902,42 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: share_plus
|
||||
sha256: "3ef39599b00059db0990ca2e30fca0a29d8b37aae924d60063f8e0184cf20900"
|
||||
sha256: ef3489a969683c4f3d0239010cc8b7a2a46543a8d139e111c06c558875083544
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "7.2.2"
|
||||
version: "9.0.0"
|
||||
share_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: share_plus_platform_interface
|
||||
sha256: df08bc3a07d01f5ea47b45d03ffcba1fa9cd5370fb44b3f38c70e42cced0f956
|
||||
sha256: "0f9e4418835d1b2c3ae78fdb918251959106cefdbc4dd43526e182f80e82f6d4"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.3.1"
|
||||
version: "4.0.0"
|
||||
shared_preferences:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: shared_preferences
|
||||
sha256: "81429e4481e1ccfb51ede496e916348668fd0921627779233bd24cc3ff6abd02"
|
||||
sha256: d3bbe5553a986e83980916ded2f0b435ef2e1893dfaa29d5a7a790d0eca12180
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.2"
|
||||
version: "2.2.3"
|
||||
shared_preferences_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_android
|
||||
sha256: "8568a389334b6e83415b6aae55378e158fbc2314e074983362d20c562780fb06"
|
||||
sha256: "1ee8bf911094a1b592de7ab29add6f826a7331fb854273d55918693d5364a1f2"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.2.1"
|
||||
version: "2.2.2"
|
||||
shared_preferences_foundation:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: shared_preferences_foundation
|
||||
sha256: "7708d83064f38060c7b39db12aefe449cb8cdc031d6062280087bc4cdb988f5c"
|
||||
sha256: "0a8a893bf4fd1152f93fec03a415d11c27c74454d96e2318a7ac38dd18683ab7"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.5"
|
||||
version: "2.4.0"
|
||||
shared_preferences_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -989,10 +989,11 @@ packages:
|
||||
skeletons:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: skeletons
|
||||
sha256: "5b2d08ae7f908ee1f7007ca99f8dcebb4bfc1d3cb2143dec8d112a5be5a45c8f"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
path: "."
|
||||
ref: "326fbb4223ac4d8a6301cc2f16b6112ecd308c71"
|
||||
resolved-ref: "326fbb4223ac4d8a6301cc2f16b6112ecd308c71"
|
||||
url: "https://github.com/Ofceab-Studio/skeletons"
|
||||
source: git
|
||||
version: "0.0.3"
|
||||
sky_engine:
|
||||
dependency: transitive
|
||||
@ -1003,10 +1004,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: slang
|
||||
sha256: "5e08ac915ac27a3508863f37734280d30c3713d56746cd2e4a5da77413da4b95"
|
||||
sha256: ad2a3974fa705017d40e59f9fce5ba738ce78a40c13247bf655d1760d3af018f
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.30.1"
|
||||
version: "3.30.2"
|
||||
slang_flutter:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -1051,18 +1052,18 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: sqflite
|
||||
sha256: a9016f495c927cb90557c909ff26a6d92d9bd54fc42ba92e19d4e79d61e798c6
|
||||
sha256: a43e5a27235518c03ca238e7b4732cf35eabe863a369ceba6cbefa537a66f16d
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.2"
|
||||
version: "2.3.3+1"
|
||||
sqflite_common:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: sqflite_common
|
||||
sha256: "28d8c66baee4968519fb8bd6cdbedad982d6e53359091f0b74544a9f32ec72d5"
|
||||
sha256: "3da423ce7baf868be70e2c0976c28a1bb2f73644268b7ffa7d2e08eab71f16a4"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.5.3"
|
||||
version: "2.5.4"
|
||||
stack_trace:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1091,10 +1092,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: stacked_services
|
||||
sha256: b91f8f35043f80961f4d80cd25ec3677f035461b9e7ee12b04727911ed7f53f7
|
||||
sha256: "5cb55065d85c395da3d37ec0e52ace7f6e367c0b8477aace8c8479009e02cb41"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.4.0"
|
||||
version: "1.5.0"
|
||||
stacked_shared:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1147,10 +1148,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: test_api
|
||||
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
|
||||
sha256: "2419f20b0c8677b2d67c8ac4d1ac7372d862dc6c460cdbb052b40155408cd794"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.6.1"
|
||||
version: "0.7.1"
|
||||
timeago:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
@ -1163,10 +1164,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: timezone
|
||||
sha256: "1cfd8ddc2d1cfd836bc93e67b9be88c3adaeca6f40a00ca999104c30693cdca0"
|
||||
sha256: a6ccda4a69a442098b602c44e61a1e2b4bf6f5516e875bbf0f427d5df14745d5
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.9.2"
|
||||
version: "0.9.3"
|
||||
timing:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1195,26 +1196,26 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: url_launcher
|
||||
sha256: "0ecc004c62fd3ed36a2ffcbe0dd9700aee63bd7532d0b642a488b1ec310f492e"
|
||||
sha256: "6ce1e04375be4eed30548f10a315826fd933c1e493206eab82eed01f438c8d2e"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.2.5"
|
||||
version: "6.2.6"
|
||||
url_launcher_android:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_android
|
||||
sha256: d4ed0711849dd8e33eb2dd69c25db0d0d3fdc37e0a62e629fe32f57a22db2745
|
||||
sha256: "360a6ed2027f18b73c8d98e159dda67a61b7f2e0f6ec26e86c3ada33b0621775"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.3.0"
|
||||
version: "6.3.1"
|
||||
url_launcher_ios:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_ios
|
||||
sha256: "9149d493b075ed740901f3ee844a38a00b33116c7c5c10d7fb27df8987fb51d5"
|
||||
sha256: "7068716403343f6ba4969b4173cbf3b84fc768042124bc2c011e5d782b24fe89"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "6.2.5"
|
||||
version: "6.3.0"
|
||||
url_launcher_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1227,10 +1228,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_macos
|
||||
sha256: b7244901ea3cf489c5335bdacda07264a6e960b1c1b1a9f91e4bc371d9e68234
|
||||
sha256: "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.1.0"
|
||||
version: "3.2.0"
|
||||
url_launcher_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1243,10 +1244,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_web
|
||||
sha256: "3692a459204a33e04bc94f5fb91158faf4f2c8903281ddd82915adecdb1a901d"
|
||||
sha256: "8d9e750d8c9338601e709cd0885f95825086bd8b642547f26bda435aade95d8a"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.3.0"
|
||||
version: "2.3.1"
|
||||
url_launcher_windows:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1259,10 +1260,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: uuid
|
||||
sha256: cd210a09f7c18cbe5a02511718e0334de6559871052c90a90c0cca46a4aa81c8
|
||||
sha256: "814e9e88f21a176ae1359149021870e87f7cddaf633ab678a5d2b0bff7fd1ba8"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.3.3"
|
||||
version: "4.4.0"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1275,26 +1276,26 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: vm_service
|
||||
sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
|
||||
sha256: "7475cb4dd713d57b6f7464c0e13f06da0d535d8b2067e188962a59bac2cf280b"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "13.0.0"
|
||||
version: "14.2.2"
|
||||
wakelock_plus:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: wakelock_plus
|
||||
sha256: "104d94837bb28c735894dcd592877e990149c380e6358b00c04398ca1426eed4"
|
||||
sha256: "14758533319a462ffb5aa3b7ddb198e59b29ac3b02da14173a1715d65d4e6e68"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.1"
|
||||
version: "1.2.5"
|
||||
wakelock_plus_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: wakelock_plus_platform_interface
|
||||
sha256: "582f2f7aecc7376332d961a0dd1efa9378ce117657e0ade55d9ff72699a55e82"
|
||||
sha256: "422d1cdbb448079a8a62a5a770b69baa489f8f7ca21aef47800c726d404f9d16"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.0"
|
||||
version: "1.2.1"
|
||||
watcher:
|
||||
dependency: transitive
|
||||
description:
|
||||
@ -1315,26 +1316,26 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: web_socket_channel
|
||||
sha256: "1d8e795e2a8b3730c41b8a98a2dff2e0fb57ae6f0764a1c46ec5915387d257b2"
|
||||
sha256: "58c6666b342a38816b2e7e50ed0f1e261959630becd4c879c4f26bfa14aa5a42"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.4"
|
||||
version: "2.4.5"
|
||||
win32:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: win32
|
||||
sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8"
|
||||
sha256: "0eaf06e3446824099858367950a813472af675116bf63f008a4c2a75ae13e9cb"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "5.2.0"
|
||||
version: "5.5.0"
|
||||
win32_registry:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: win32_registry
|
||||
sha256: "41fd8a189940d8696b1b810efb9abcf60827b6cbfab90b0c43e8439e3a39d85a"
|
||||
sha256: "10589e0d7f4e053f2c61023a31c9ce01146656a70b7b7f0828c0b46d7da2a9bb"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.2"
|
||||
version: "1.1.3"
|
||||
xdg_directories:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
81
pubspec.yaml
81
pubspec.yaml
@ -4,51 +4,51 @@ homepage: https://github.com/ReVanced/revanced-manager
|
||||
|
||||
publish_to: 'none'
|
||||
|
||||
version: 1.20.0+101800015
|
||||
version: 1.21.0-dev.4+101800020
|
||||
|
||||
environment:
|
||||
sdk: '>=3.0.0 <4.0.0'
|
||||
|
||||
dependencies:
|
||||
animations: ^2.0.7
|
||||
collection: ^1.17.0
|
||||
connectivity_plus: ^6.0.1
|
||||
animations: ^2.0.11
|
||||
collection: ^1.18.0
|
||||
connectivity_plus: ^6.0.3
|
||||
device_apps:
|
||||
git:
|
||||
url: https://github.com/ponces/flutter_plugin_device_apps
|
||||
ref: 0609662324b9e00931fccfa87e9e1b00b7610907 # Branch: revanced-manager
|
||||
device_info_plus: ^9.1.0
|
||||
dio: ^5.0.0
|
||||
dio_cache_interceptor: ^3.4.0
|
||||
dynamic_color: ^1.6.3
|
||||
device_info_plus: ^10.1.0
|
||||
dio: ^5.4.3+1
|
||||
dio_cache_interceptor: ^3.5.0
|
||||
dynamic_color: ^1.7.0
|
||||
dynamic_themes: ^1.1.0
|
||||
expandable: ^5.0.1
|
||||
flutter:
|
||||
sdk: flutter
|
||||
flutter_background:
|
||||
git: # Switch to 'flutter_background' once new version is released
|
||||
url: https://github.com/JulianAssmann/flutter_background
|
||||
ref: 65cf0ec93486b3a6c74339aadaeb384cf2c9a24b # Branch: master
|
||||
flutter_cache_manager: ^3.3.0
|
||||
git: # remove once https://github.com/JulianAssmann/flutter_background/pull/83 is merged
|
||||
url: https://github.com/validcube/flutter_background
|
||||
ref: 900a81501f1f0e4996fe9e2cbf55f1ea8df08b49 # Branch: specify-namespace
|
||||
flutter_cache_manager: ^3.3.2
|
||||
flutter_file_dialog: ^3.0.2
|
||||
flutter_local_notifications: ^16.1.0
|
||||
flutter_local_notifications: ^17.1.0
|
||||
flutter_localizations:
|
||||
sdk: flutter
|
||||
flutter_markdown: ^0.6.14
|
||||
fluttertoast: ^8.2.4
|
||||
font_awesome_flutter: ^10.4.0
|
||||
flutter_markdown: ^0.7.1
|
||||
fluttertoast: ^8.2.5
|
||||
font_awesome_flutter: ^10.7.0
|
||||
google_fonts: ^6.2.1
|
||||
injectable: ^2.1.1
|
||||
intl: ^0.18.0
|
||||
json_annotation: ^4.8.1
|
||||
language_code: ^0.5.1
|
||||
injectable: ^2.4.0
|
||||
intl: 0.19.0
|
||||
json_annotation: ^4.9.0
|
||||
language_code: ^0.5.3+2
|
||||
logcat:
|
||||
git:
|
||||
url: https://github.com/BenjaminHalko/logcat
|
||||
ref: 4a6d5e0e22292c8eb160cfb9365b9ea29735fd43 # Branch: master
|
||||
package_info_plus: ^6.0.0
|
||||
path_provider: ^2.0.14
|
||||
permission_handler: ^11.0.1
|
||||
package_info_plus: ^7.0.0
|
||||
path_provider: ^2.1.3
|
||||
permission_handler: ^11.3.1
|
||||
root:
|
||||
git:
|
||||
url: https://github.com/validcube/root
|
||||
@ -57,26 +57,29 @@ dependencies:
|
||||
git: # remove once https://github.com/flutter-moum/flutter_screenshot_callback/pull/81 is merged
|
||||
url: https://github.com/BenjaminHalko/flutter_screenshot_callback
|
||||
ref: 1a1616ac91e16cd1f3dd170a81febf27ffce3587 # Branch: master
|
||||
share_plus: ^7.2.1
|
||||
shared_preferences: ^2.1.0
|
||||
skeletons: ^0.0.3
|
||||
slang: ^3.25.0
|
||||
slang_flutter: ^3.25.0
|
||||
stacked: ^3.2.0
|
||||
stacked_generator: ^1.1.0
|
||||
stacked_services: ^1.0.0
|
||||
synchronized: ^3.1.0
|
||||
timeago: ^3.3.0
|
||||
timezone: ^0.9.0
|
||||
url_launcher: ^6.1.10
|
||||
wakelock_plus: ^1.1.3
|
||||
share_plus: ^9.0.0
|
||||
shared_preferences: ^2.2.3
|
||||
skeletons:
|
||||
git: # remove once https://github.com/badjio/skeletons/pull/11 is merged
|
||||
url: https://github.com/Ofceab-Studio/skeletons
|
||||
ref: 326fbb4223ac4d8a6301cc2f16b6112ecd308c71 # Branch: master
|
||||
slang: ^3.30.2
|
||||
slang_flutter: ^3.30.0
|
||||
stacked: ^3.4.2
|
||||
stacked_generator: ^1.6.0
|
||||
stacked_services: ^1.5.0
|
||||
synchronized: ^3.1.0+1
|
||||
timeago: ^3.6.1
|
||||
timezone: ^0.9.3
|
||||
url_launcher: ^6.2.6
|
||||
wakelock_plus: ^1.2.4
|
||||
|
||||
dev_dependencies:
|
||||
analyzer: ^6.4.1
|
||||
build_runner: any
|
||||
build_runner: 2.4.9
|
||||
flutter_lints: ^3.0.2
|
||||
injectable_generator: ^2.1.5
|
||||
json_serializable: ^6.7.1
|
||||
injectable_generator: ^2.6.1
|
||||
json_serializable: ^6.8.0
|
||||
|
||||
flutter:
|
||||
uses-material-design: true
|
||||
|
Reference in New Issue
Block a user