Remove all legacy files: from-scratch v2 redesign with no old code

Remove YTLitePlus.xm, YTLitePlus.h, Makefile, Source/, Tweaks/, Bundles/,
Extensions/, lang/, .gitmodules, .gitattributes, old workflows (buildapp.yml,
delete-workflow-runs.yml, update-submodules.yml), and old GitHub templates.

Clean .gitignore and rewrite README.md for the new build system.

Only v2 files remain: config.yml, lib.sh, build.sh, .github/workflows/build.yml

Co-authored-by: Balackburn <93828569+Balackburn@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot] 2026-02-12 19:25:19 +00:00
parent 19597e1e91
commit 9d3d05735c
73 changed files with 59 additions and 7859 deletions

1
.gitattributes vendored
View file

@ -1 +0,0 @@
.gitmodules merge=ours

View file

@ -1,117 +0,0 @@
name: Bug
description: Report a bug here
title: "[Bug] Replace this with your title"
labels: bug
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
options:
- label: I have searched the existing issues
required: true
- type: markdown
attributes:
value: "## Device Info"
- type: input
attributes:
label: iOS/iPadOS version
placeholder: iOS 17.5.1
validations:
required: true
- type: input
attributes:
label: Device model
placeholder: iPhone 15 Pro Max
validations:
required: true
- type: input
attributes:
label: Sideload method
placeholder: AltStore, Sideloadly, TrollStore, Signulous, deb, ...
validations:
required: true
- type: input
attributes:
label: Tweak version
placeholder: YTLitePlus - v19.xx.x-4.0.1
description: "**latest or newest is NOT a version number!**"
validations:
required: true
- type: dropdown
attributes:
label: Do you use YouTube Premium?
options:
- ❌ No, I don't use YouTube Premium
- ✅ Yes, I do use YouTube Premium
validations:
required: true
- type: dropdown
attributes:
label: Are you using the newest version of YTLitePlus?
description: Update to the [latest version](https://github.com/YTLitePlus/YTLitePlus/releases) to see if it fixes your issue
options:
- ✅ Yes, I'm using the latest version
- ❌ No, I'll explain at the end
validations:
required: true
- type: dropdown
attributes:
label: Does the issue happen with the official YouTube from AppStore?
options:
- ❌ No, I can't reproduce this issue in the official YouTube from AppStore
- ✅ Yes, I can reproduce this issue in the official YouTube from AppStore
validations:
required: true
- type: dropdown
attributes:
label: Method used to build the iPA
options:
- buildapp.yml (GitHub Actions)
- build.sh (Shell script)
- Downloaded from third party
validations:
required: true
- type: markdown
attributes:
value: "## Description"
- type: textarea
attributes:
label: Describe the bug
description: Please attach videos or screenshots if possible
validations:
required: true
- type: textarea
attributes:
label: Steps to reproduce the issue
description: Please attach videos or screenshots if possible
value: |
1.
2.
3.
validations:
required: true
- type: textarea
id: logs
attributes:
label: Crash log (if the app crashes)
description: It can be found in Settings App > Privacy > Analytics & Improvements > Analytics Data > Youtube-xxx-xxx.ips
render: shell
- type: textarea
attributes:
label: Additional context
validations:
required: false

View file

@ -1,32 +0,0 @@
name: Feature Request
description: Request a new feature to be added
title: "[Request] Replace with your question"
labels: enhancement
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
options:
- label: I have searched the existing issues
required: true
- type: dropdown
attributes:
label: Do you use YouTube Premium?
options:
- ❌ No, I don't use YouTube Premium
- ✅ Yes, I do use YouTube Premium
validations:
required: true
- type: textarea
attributes:
label: My feature request
validations:
required: true
- type: textarea
attributes:
label: Additional context
validations:
required: false

View file

@ -1,34 +0,0 @@
name: Question
description: Have question(s)?
title: "[Questions] Replace with your question"
labels: question
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
options:
- label: I have searched the existing issues
required: true
- type: dropdown
attributes:
label: Do you think this is a bug?
description: _If so, please use the bug template_
multiple: false
options:
- ✅ Yes, I believe this is a bug. I will open a new issue with the bug template
- ❌ No, I don't think this is a bug. I will explain below
validations:
required: true
- type: textarea
attributes:
label: My question
validations:
required: true
- type: textarea
attributes:
label: Additional context
validations:
required: false

View file

@ -1,21 +0,0 @@
# ⚠️ Must Read ⚠️
- The .ipa file is no longer shared on Github due to a [Google DMCA notice](https://www.reddit.com/r/jailbreak/comments/1b86tiz/balackburn_here_maintainer_of_ytliteplus_ive_just/)
- You need to build it yourself. See [Wiki-Building](https://github.com/Balackburn/YTLitePlus/wiki/Building)
# YTLitePlus Release Information
Current YouTube IPA: `%youtube_version%`
Current YTLite Version: `%ytliteplus_version%`
Current App Compatibility: `iOS/iPadOS 15.0` or later
**RELEASE %youtube_version%-%ytliteplus_version%:** (%date%)
- Updated Youtube from `%youtube_version%` to `%youtube_version%`
- Updated YTLite from `%ytliteplus_version%` to `%ytliteplus_version%`
### Issues in this Release:
- LowContrastMode does not work *(Compatible only with YouTube v17.33.2-v17.38.10)*
- Hiding Shorts creates an empty space instead #55
### Catbox
`%catbox_url%`

View file

@ -1,273 +0,0 @@
# Original idea by @ISnackable. Many thanks to him for handling the most hardest parts!
# https://github.com/ISnackable/CercubePlus/blob/main/.github/workflows/Build.yml
name: Build and Release YTLitePlus
on:
workflow_dispatch:
inputs:
sdk_version:
description: "iOS SDK Version"
default: "18.6"
required: true
type: string
decrypted_youtube_url:
description: "Direct URL of the decrypted YouTube ipa"
default: "https://files.catbox.moe/5a8qlt.ipa"
required: true
type: string
bundle_id:
description: "Modify the bundle ID"
default: "com.google.ios.youtube"
required: true
type: string
app_name:
description: "Modify the app name"
default: "YouTube"
required: true
type: string
commit_id:
description: "(Optional) Commit ID to build at"
default: ""
required: false
type: string
upload_artifact:
description: "Upload iPA as artifact (Public)"
default: false
required: false
type: boolean
catbox_upload:
description: "Upload iPA to Catbox.moe (URL)"
default: false
required: false
type: boolean
create_release:
description: "Create a draft release (Private)"
default: true
required: false
type: boolean
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build YTLitePlus
runs-on: macos-15-intel
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v6.0.1
with:
ref: ${{ github.event.inputs.commit_id || github.ref }}
submodules: recursive
- name: Install Dependencies
run: brew install ldid dpkg make jq
- name: Download Theos
uses: actions/checkout@v6.0.1
with:
repository: theos/theos
ref: 13c22376b5d83ff759c1993de0a861e673aa522b
path: theos
submodules: recursive
- name: iOS SDK Caching
id: SDK
uses: actions/cache@v5.0.2
env:
cache-name: iOS-${{ inputs.sdk_version }}-SDK
with:
path: theos/sdks/
key: ${{ env.cache-name }}
restore-keys: ${{ env.cache-name }}
- name: Download iOS SDK
if: steps.SDK.outputs.cache-hit != 'true'
run: |
# Only download the specific SDK version
git clone -n --depth=1 --filter=tree:0 https://github.com/aricloverEXTRA/sdks/
cd sdks
git sparse-checkout set --no-cone iPhoneOS${{ inputs.sdk_version }}.sdk
git checkout
mkdir -p $THEOS/sdks
mv *.sdk $THEOS/sdks
env:
THEOS: ${{ github.workspace }}/theos
- name: Download Theos Jailed
uses: actions/checkout@v6.0.1
with:
repository: qnblackcat/theos-jailed
ref: master
path: theos-jailed
submodules: recursive
- name: Install Theos Jailed
run: |
./theos-jailed/install
env:
THEOS: ${{ github.workspace }}/theos
- name: Fix Compiling
run: |
# Update GNU Make to allow for faster building
echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH
(echo export PATH="/usr/local/opt/make/libexec/gnubin:$PATH" >> ~/.bash_profile)
source ~/.bash_profile
env:
THEOS: ${{ github.workspace }}/theos
- name: Hash YT ipa url
run: |
URL_YT="$(jq -r '.inputs.decrypted_youtube_url' $GITHUB_EVENT_PATH)"
echo ::add-mask::$URL_YT
echo URL_YT=$URL_YT >> $GITHUB_ENV
- name: Prepare YouTube iPA
run: |
# Download and unzip iPA
wget "$YOUTUBE_URL" --quiet --no-verbose -O YouTube.ipa
unzip -q YouTube.ipa -d tmp
# Get the version number of the YouTube app and store it
echo "YT_VERSION=$(grep -A 1 '<key>CFBundleVersion</key>' tmp/Payload/YouTube.app/Info.plist | grep '<string>' | awk -F'[><]' '{print $3}')" >> $GITHUB_ENV
# Fetch the latest YTLite version from GitHub API
YTLITE_VERSION=$(curl -s https://api.github.com/repos/dayanch96/YTLite/releases/latest | jq -r '.tag_name' | sed 's/^v//')
if [ -z "$YTLITE_VERSION" ] || [ "$YTLITE_VERSION" = "null" ]; then
echo "::error::Failed to fetch latest YTLite version from GitHub API"
exit 1
fi
echo "YTLITE_VERSION=$YTLITE_VERSION" >> $GITHUB_ENV
echo "Fetched YTLite version: $YTLITE_VERSION"
# Remove contents in the iPA that interfere with sideloading
rm -rf tmp/Payload/YouTube.app/_CodeSignature/CodeResources
rm -rf tmp/Payload/YouTube.app/PlugIns/*
# Modify Info.plist to remove UISupportedDevices (Python script)
python - <<EOF
import plistlib
def remove_uisupporteddevices(filepath):
with open(filepath, 'rb') as f:
plist = plistlib.load(f)
if 'UISupportedDevices' in plist:
del plist['UISupportedDevices']
with open(filepath, 'wb') as f:
plistlib.dump(plist, f)
filepath = 'tmp/Payload/YouTube.app/Info.plist'
remove_uisupporteddevices(filepath)
EOF
# Manually install the Open in YouTube extension
cp -R Extensions/*.appex tmp/Payload/YouTube.app/PlugIns
env:
THEOS: ${{ github.workspace }}/theos
YOUTUBE_URL: ${{ env.URL_YT }}
- name: Build Package
id: build_package
run: |
# Replace lines in Makefile based on inputs
sed -i '' "s/^BUNDLE_ID.*$/BUNDLE_ID = ${{ env.BUNDLE_ID }}/" Makefile
sed -i '' "s/^DISPLAY_NAME.*$/DISPLAY_NAME = ${{ env.APP_NAME }}/" Makefile
sed -i '' "s/^PACKAGE_VERSION.*$/PACKAGE_VERSION = ${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }}/" Makefile
sed -i '' "s/^export TARGET.*$/export TARGET = iphone:clang:${{ inputs.sdk_version }}:14.0/" Makefile
sed -i '' "s/^export SDK_PATH.*$/export SDK_PATH = \$(THEOS)\/sdks\/iPhoneOS${{ inputs.sdk_version }}.sdk\//" Makefile
# Build the package
make package SIDELOAD=1 THEOS_PACKAGE_SCHEME=rootless FINALPACKAGE=1
# Rename the package based on the version
(mv "packages/$(ls -t packages | head -n1)" "packages/YTLitePlus_${{ env.YT_VERSION }}_${{ env.YTLITE_VERSION }}.ipa")
# Pass package name to the upload step
echo "package=$(ls -t packages | head -n1)" >> $GITHUB_OUTPUT
# Print out the hash and bundle ID
echo -e "==> \033[1mSHASUM256: $(shasum -a 256 packages/*.ipa | cut -f1 -d' ')\033[0m"
echo -e "==> \033[1mBundle ID: ${{ env.BUNDLE_ID }}\033[0m"
env:
THEOS: ${{ github.workspace }}/theos
BUNDLE_ID: ${{ inputs.bundle_id }}
APP_NAME: ${{ inputs.app_name }}
- name: Upload Artifact
if: ${{ inputs.upload_artifact }}
uses: actions/upload-artifact@v4.5.0
with:
name: YTLitePlus_${{ env.YT_VERSION }}_${{ env.YTLITE_VERSION }}
path: packages/${{ steps.build_package.outputs.package }}
if-no-files-found: error
- name: Upload Artifact to Catbox and update AltStore repo
if: ${{ inputs.catbox_upload }}
run: |
RESPONSE=$(curl -F "reqtype=fileupload" -F "fileToUpload=@packages/${{ steps.build_package.outputs.package }}" https://catbox.moe/user/api.php)
CATBOX_URL=$(echo $RESPONSE | grep -o -E 'https://files.catbox.moe/[^"]*')
echo "Uploaded artifact to $CATBOX_URL"
CATBOX_FILE=$(echo $CATBOX_URL | sed 's|https://files.catbox.moe/||')
# Pass Catbox URL to the release steps
echo "CATBOX_FILE=$CATBOX_FILE" >> $GITHUB_ENV
echo "CATBOX_URL=$CATBOX_URL" >> $GITHUB_ENV
- name: Prepare Release Notes
if: ${{ inputs.create_release }}
run: |
export TODAY=$(date '+%Y-%m-%d')
sed "s/%ytliteplus_version%/${{ env.YTLITE_VERSION }}/g; s/%youtube_version%/${{ env.YT_VERSION }}/g; s/%catbox_url%/${{ env.CATBOX_FILE }}/g; s/%date%/$TODAY/g" \
.github/RELEASE_TEMPLATE/Release.md > release_notes.md
- name: Create Draft Release
if: ${{ inputs.create_release }}
id: create_release
uses: softprops/action-gh-release@v2.5.0
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }}
name: v${{ env.YT_VERSION }}-${{ env.YTLITE_VERSION }} - YTLitePlus
files: packages/*.ipa
draft: true
body_path: release_notes.md
- name: Update Altstore Source with latest release
if: ${{ inputs.catbox_upload }}
run: |
curl --location --request POST 'https://api.github.com/repos/Balackburn/YTLitePlusAltstore/actions/workflows/update_source.yml/dispatches' \
--header 'Authorization: token ${{ secrets.PERSONAL_ACCESS_TOKEN }}' \
--header 'Content-Type: application/json' \
--data-raw '{
"ref": "main",
"inputs": {
"yt_lite_plus_url": "${{ env.CATBOX_URL }}",
"yt_lite_plus_version": "${{ env.YTLITE_VERSION }}",
"yt_version": "${{ env.YT_VERSION }}"
}
}'
- name: Job Summary
run: |
echo -e '### 📺 Build Complete' >> $GITHUB_STEP_SUMMARY
- name: Job Summary - Artifact Upload
if: ${{ inputs.upload_artifact }}
run: |
echo -e '### 📦 Artifact Upload\n\nThe artifact was uploaded successfully! Refresh and [scroll down](#artifacts) to view the artifact. Note that you must be signed in to GitHub to download it.' >> $GITHUB_STEP_SUMMARY
- name: Job Summary - Catbox Upload
if: ${{ inputs.catbox_upload}}
run: |
echo -e '### 🐱 Catbox Upload\n\nThe Catbox upload was successful! Here is a permanent shareable link: '$CATBOX_URL >> $GITHUB_STEP_SUMMARY
- name: Job Summary - Draft Release
if: ${{ inputs.create_release }}
run: |
REPO_URL="https://github.com/${{ github.repository }}"
RELEASES_URL="$REPO_URL/releases"
echo -e '### 🚀 Draft Release\n\nThe release draft has been created successfully! You can view your releases here: '$RELEASES_URL >> $GITHUB_STEP_SUMMARY
- name: Job Summary - Link to remove GitHub Action runs
run: |
REPO_URL="https://github.com/${{ github.repository }}"
DELETE_RUNS_URL="$REPO_URL/actions/workflows/delete-workflow-runs.yml"
echo -e '### 🧹 Cleanup\n\nYou can remove previous GitHub Action runs here: '$DELETE_RUNS_URL >> $GITHUB_STEP_SUMMARY

View file

@ -1,69 +0,0 @@
# This is based on the example at https://github.com/marketplace/actions/delete-workflow-runs
name: Delete old workflow runs
on:
workflow_dispatch:
inputs:
days:
description: 'Days-worth of runs to keep for each workflow'
required: true
default: '0'
minimum_runs:
description: 'Minimum runs to keep for each workflow'
required: true
default: '0'
delete_workflow_pattern:
description: 'Name or filename of the workflow (if not set, all workflows are targeted)'
required: false
default: 'Build and Release YTLitePlus'
delete_workflow_by_state_pattern:
description: 'Filter workflows by state: active, deleted, disabled_fork, disabled_inactivity, disabled_manually'
required: true
default: "ALL"
type: choice
options:
- "ALL"
- active
- deleted
- disabled_inactivity
- disabled_manually
delete_run_by_conclusion_pattern:
description: 'Remove runs based on conclusion: action_required, cancelled, failure, skipped, success'
required: true
default: "ALL"
type: choice
options:
- "ALL"
- "Unsuccessful: action_required,cancelled,failure,skipped"
- action_required
- cancelled
- failure
- skipped
- success
dry_run:
description: 'Logs simulated changes, no deletions are performed'
required: false
jobs:
del_runs:
runs-on: ubuntu-latest
permissions:
actions: write
contents: read
steps:
- name: Delete workflow runs
uses: Mattraks/delete-workflow-runs@v2
with:
token: ${{ github.token }}
repository: ${{ github.repository }}
retain_days: ${{ github.event.inputs.days }}
keep_minimum_runs: ${{ github.event.inputs.minimum_runs }}
delete_workflow_pattern: ${{ github.event.inputs.delete_workflow_pattern }}
delete_workflow_by_state_pattern: ${{ github.event.inputs.delete_workflow_by_state_pattern }}
delete_run_by_conclusion_pattern: >-
${{
startsWith(github.event.inputs.delete_run_by_conclusion_pattern, 'Unsuccessful:')
&& 'action_required,cancelled,failure,skipped'
|| github.event.inputs.delete_run_by_conclusion_pattern
}}
dry_run: ${{ github.event.inputs.dry_run }}

View file

@ -1,35 +0,0 @@
name: Update Submodules
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *'
jobs:
update-submodules:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4.2.2
- name: Set up Git
run: |
git config --global user.email "actions@github.com"
git config --global user.name "GitHub Actions"
- name: Update submodules
run: |
git submodule update --init --recursive --remote
git add .
git commit -m "updated submodules"
git push origin
continue-on-error: true
- name: Check exit code
run: |
exit_code=$?
if [ $exit_code -ne 0 ]; then
echo "Submodule update failed with exit code $exit_code"
exit 1
fi

16
.gitignore vendored
View file

@ -1,13 +1,9 @@
.theos
# OS
.DS_Store
packages/
tmp/
Tweaks/YTLite/*
!Tweaks/YTLite/.gitkeep
Resources/
*.ipa
.vscode
_codeql_detected_source_root
# v2 build system work directory
# Editor
.vscode
# Build artifacts
*.ipa
_work/

49
.gitmodules vendored
View file

@ -1,49 +0,0 @@
[submodule "Tweaks/Alderis"]
path = Tweaks/Alderis
url = https://github.com/hbang/Alderis.git
[submodule "Tweaks/PSHeader"]
path = Tweaks/PSHeader
url = https://github.com/PoomSmart/PSHeader.git
[submodule "Tweaks/FLEX"]
path = Tweaks/FLEX
url = https://github.com/PoomSmart/FLEXing.git
[submodule "Tweaks/DontEatMyContent"]
path = Tweaks/DontEatMyContent
url = https://github.com/therealFoxster/DontEatMyContent.git
[submodule "Extensions"]
path = Extensions
url = https://github.com/BillyCurtis/OpenYouTubeSafariExtension.git
[submodule "Tweaks/YTVideoOverlay"]
path = Tweaks/YTVideoOverlay
url = https://github.com/PoomSmart/YTVideoOverlay.git
[submodule "Tweaks/protobuf"]
path = Tweaks/protobuf
url = https://github.com/protocolbuffers/protobuf.git
[submodule "Tweaks/YouTubeHeader"]
path = Tweaks/YouTubeHeader
url = https://github.com/PoomSmart/YouTubeHeader.git
[submodule "Tweaks/YouPiP"]
path = Tweaks/YouPiP
url = https://github.com/PoomSmart/YouPiP
[submodule "Tweaks/YTABConfig"]
path = Tweaks/YTABConfig
url = https://github.com/PoomSmart/YTABConfig
[submodule "Tweaks/YTUHD"]
path = Tweaks/YTUHD
url = https://github.com/splaser/YTUHD.git
[submodule "Tweaks/YouGroupSettings"]
path = Tweaks/YouGroupSettings
url = https://github.com/PoomSmart/YouGroupSettings
[submodule "Tweaks/Return-YouTube-Dislikes"]
path = Tweaks/Return-YouTube-Dislikes
url = https://github.com/PoomSmart/Return-YouTube-Dislikes.git
[submodule "Tweaks/YTHeaders"]
path = Tweaks/YTHeaders
url = https://github.com/therealFoxster/YTHeaders
[submodule "Tweaks/YouTimeStamp"]
path = Tweaks/YouTimeStamp
url = https://github.com/aricloverALT/YouTimeStamp.git
[submodule "Tweaks/FLEXing"]
path = Tweaks/FLEXing
url = https://github.com/PoomSmart/FLEXing.git
branch = rootless

View file

@ -1 +0,0 @@
../Tweaks/DontEatMyContent/layout/Library/Application Support/DontEatMyContent.bundle

View file

@ -1 +0,0 @@
../Tweaks/Return-YouTube-Dislikes/layout/Library/Application Support/RYD.bundle

View file

@ -1 +0,0 @@
../Tweaks/YTABConfig/layout/Library/Application Support/YTABC.bundle

View file

@ -1 +0,0 @@
../Tweaks/YTHoldForSpeed/layout/Library/Application Support/YTHoldForSpeed.bundle

View file

@ -1 +0,0 @@
../Tweaks/YTLite/var/jb/Library/Application Support/YTLite.bundle

View file

@ -1 +0,0 @@
../Tweaks/YTUHD/layout/Library/Application Support/YTUHD.bundle

View file

@ -1 +0,0 @@
../Tweaks/YTVideoOverlay/layout/Library/Application Support/YTVideoOverlay.bundle

View file

@ -1 +0,0 @@
../Tweaks/YouLoop/layout/Library/Application Support/YouLoop.bundle

View file

@ -1 +0,0 @@
../Tweaks/YouMute/layout/Library/Application Support/YouMute.bundle

View file

@ -1 +0,0 @@
../Tweaks/YouPiP/layout/Library/Application Support/YouPiP.bundle

View file

@ -1 +0,0 @@
../Tweaks/YouQuality/layout/Library/Application Support/YouQuality.bundle

View file

@ -1 +0,0 @@
../Tweaks/YouSpeed/layout/Library/Application Support/YouSpeed.bundle

View file

@ -1 +0,0 @@
../Tweaks/YouTimeStamp/layout/Library/Application Support/YouTimeStamp.bundle

View file

@ -1 +0,0 @@
../Tweaks/iSponsorBlock/layout/Library/Application Support/iSponsorBlock.bundle

@ -1 +0,0 @@
Subproject commit c87b5d5551b406477dca883158572f803251f52c

View file

@ -1,79 +0,0 @@
export TARGET = iphone:clang:18.6:14.0
export SDK_PATH = $(THEOS)/sdks/iPhoneOS18.6.sdk/
export SYSROOT = $(SDK_PATH)
export ARCHS = arm64
export libcolorpicker_ARCHS = arm64
export libFLEX_ARCHS = arm64
export Alderis_XCODEOPTS = LD_DYLIB_INSTALL_NAME=@rpath/Alderis.framework/Alderis
export Alderis_XCODEFLAGS = DYLIB_INSTALL_NAME_BASE=/Library/Frameworks BUILD_LIBRARY_FOR_DISTRIBUTION=YES ARCHS="$(ARCHS)"
export libcolorpicker_LDFLAGS = -F$(TARGET_PRIVATE_FRAMEWORK_PATH) -install_name @rpath/libcolorpicker.dylib
export ADDITIONAL_CFLAGS = -I$(THEOS_PROJECT_DIR)/Tweaks/RemoteLog -I$(THEOS_PROJECT_DIR)/Tweaks # Allow YouTubeHeader to be accessible using #include <...>
ifneq ($(JAILBROKEN),1)
export DEBUGFLAG = -ggdb -Wno-unused-command-line-argument -L$(THEOS_OBJ_DIR) -F$(_THEOS_LOCAL_DATA_DIR)/$(THEOS_OBJ_DIR_NAME)/install/Library/Frameworks
MODULES = jailed
endif
PACKAGE_NAME = YTLitePlus
PACKAGE_VERSION = X.X.X-X.X
INSTALL_TARGET_PROCESSES = YouTube
TWEAK_NAME = YTLitePlus
DISPLAY_NAME = YouTube
BUNDLE_ID = com.google.ios.youtube
YTLitePlus_FILES = YTLitePlus.xm $(shell find Source -name '*.xm' -o -name '*.x' -o -name '*.m')
YTLitePlus_FRAMEWORKS = UIKit Security
YTLitePlus_INJECT_DYLIBS = Tweaks/YTLite/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib .theos/obj/libFLEX.dylib .theos/obj/YTUHD.dylib .theos/obj/YouPiP.dylib .theos/obj/YouTubeDislikesReturn.dylib .theos/obj/YTABConfig.dylib .theos/obj/DontEatMyContent.dylib .theos/obj/YTVideoOverlay.dylib .theos/obj/YouTimeStamp.dylib .theos/obj/YouGroupSettings.dylib
YTLitePlus_EMBED_LIBRARIES = $(THEOS_OBJ_DIR)/libcolorpicker.dylib
YTLitePlus_EMBED_FRAMEWORKS = $(_THEOS_LOCAL_DATA_DIR)/$(THEOS_OBJ_DIR_NAME)/install_Alderis.xcarchive/Products/var/jb/Library/Frameworks/Alderis.framework
YTLitePlus_CFLAGS = -fobjc-arc -Wno-deprecated-declarations -Wno-unused-but-set-variable -DTWEAK_VERSION=\"$(PACKAGE_VERSION)\"
YTLitePlus_EMBED_BUNDLES = $(wildcard Bundles/*.bundle)
YTLitePlus_EMBED_EXTENSIONS = $(wildcard Extensions/*.appex)
YTLitePlus_IPA = ./tmp/Payload/YouTube.app
YTLitePlus_CFLAGS = -fobjc-arc -Wno-deprecated-declarations -Wno-unsupported-availability-guard -Wno-unused-but-set-variable -DTWEAK_VERSION=$(PACKAGE_VERSION) $(EXTRA_CFLAGS)
YTLitePlus_USE_FISHHOOK = 0
include $(THEOS)/makefiles/common.mk
ifneq ($(JAILBROKEN),1)
SUBPROJECTS += Tweaks/Alderis Tweaks/FLEXing/libflex Tweaks/YTUHD Tweaks/YouPiP Tweaks/Return-YouTube-Dislikes Tweaks/YTABConfig Tweaks/DontEatMyContent Tweaks/YTVideoOverlay Tweaks/YouTimeStamp Tweaks/YouGroupSettings
include $(THEOS_MAKE_PATH)/aggregate.mk
endif
include $(THEOS_MAKE_PATH)/tweak.mk
FINALPACKAGE = 1
REMOVE_EXTENSIONS = 1
CODESIGN_IPA = 0
YTLITE_PATH = Tweaks/YTLite
YTLITE_VERSION := $(shell curl -s https://api.github.com/repos/dayanch96/YTLite/releases/latest | grep '"tag_name"' | sed 's/.*"v\(.*\)".*/\1/')
ifeq ($(YTLITE_VERSION),)
$(error Failed to fetch latest YTLite version from GitHub API)
endif
YTLITE_DEB = $(YTLITE_PATH)/com.dvntm.ytlite_$(YTLITE_VERSION)_iphoneos-arm64.deb
YTLITE_DYLIB = $(YTLITE_PATH)/var/jb/Library/MobileSubstrate/DynamicLibraries/YTLite.dylib
YTLITE_BUNDLE = $(YTLITE_PATH)/var/jb/Library/Application\ Support/YTLite.bundle
internal-clean::
@rm -rf $(YTLITE_PATH)/*
ifneq ($(JAILBROKEN),1)
before-all::
@if [[ ! -f $(YTLITE_DEB) ]]; then \
rm -rf $(YTLITE_PATH)/*; \
$(PRINT_FORMAT_BLUE) "Downloading YTLite"; \
fi
before-all::
@if [[ ! -f $(YTLITE_DEB) ]]; then \
curl -s -L "https://github.com/dayanch96/YTLite/releases/download/v$(YTLITE_VERSION)/com.dvntm.ytlite_$(YTLITE_VERSION)_iphoneos-arm64.deb" -o $(YTLITE_DEB); \
fi; \
if [[ ! -f $(YTLITE_DYLIB) || ! -d $(YTLITE_BUNDLE) ]]; then \
tar -xf $(YTLITE_DEB) -C $(YTLITE_PATH); tar -xf $(YTLITE_PATH)/data.tar* -C $(YTLITE_PATH); \
if [[ ! -f $(YTLITE_DYLIB) || ! -d $(YTLITE_BUNDLE) ]]; then \
$(PRINT_FORMAT_ERROR) "Failed to extract YTLite"; exit 1; \
fi; \
fi;
else
before-package::
@mkdir -p $(THEOS_STAGING_DIR)/Library/Application\ Support; cp -r lang/YTLitePlus.bundle $(THEOS_STAGING_DIR)/Library/Application\ Support/
endif

174
README.md
View file

@ -1,142 +1,74 @@
<p align="center">
<img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Banner.png" alt="YTLitePlus Banner" />
</p>
# YTLitePlus
<a href="https://tinyurl.com/YTLiteAltstore"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/Altstore.png" height="70"></a>
&nbsp;
<a href="https://balackburn.github.io/YTLitePlus"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/Website.png" height="70"></a>
&nbsp;
<a href="https://ytliteplus.github.io#download"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/Download.png" height="70"></a>
&nbsp;
A patched YouTube IPA with tweaks injected — built entirely from `config.yml`.
![GitHub issues](https://img.shields.io/github/issues-raw/Balackburn/YTLitePlus?style=flat&labelColor=%23000000&color=%23000000)
[![Platform](https://img.shields.io/badge/Platform-iOS%20%7C%20iPadOS%2014.0%2B-black?labelColor=black&style=flat)](https://developer.apple.com/iphone/index.action)
<a href="https://github.com/YTLitePlus/YTLitePlus/commit"><img src="https://custom-icon-badges.demolab.com/github/last-commit/Balackburn/YTLitePlus?style=flat&color=black&labelColor=black&logo=history&logoColor=white&label=Last commit" alt="Badge"></img></a>
## How It Works
# Table of Contents
<a href="#credits"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/TableOfContents/Credits.png" width="170"></a>
1. **`config.yml`** — single source of truth. Every tweak is an entry with a repo, fetch method, and enabled flag.
2. **`lib.sh`** — shared logic for fetching tweaks, patching the IPA, and applying customization.
3. **`build.sh`** — local build script. Sources `lib.sh`.
4. **`.github/workflows/build.yml`** — CI workflow. Same pipeline via `lib.sh`, outputs a GitHub Release.
<a href="#features"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/TableOfContents/Features.png" width="170"></a>
## Quick Start (Local)
<a href="#altstore"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/TableOfContents/Altstore.png" width="170"></a>
```bash
# Provide a decrypted YouTube IPA
./build.sh /path/to/YouTube.ipa
<a href="#donations"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/TableOfContents/Donations.png" width="170"></a>
# Or pass a URL
./build.sh https://example.com/YouTube.ipa
<a href="#building"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/TableOfContents/Building.png" width="170"></a>
# Or place a single .ipa in the project root and run:
./build.sh
```
# Credits
Output: `YouTube-patched.ipa`
<table>
<tr>
<td align="center"><a href="https://github.com/dayanch96"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/dayanch96.png" width="100px;" alt="dayanch96"/></a></td>
<td align="center"><a href="https://github.com/Balackburn"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Balackburn.png" width="100px;" alt="Balackburn"/></a></td>
<td align="center"><a href="https://github.com/arichornloverALT"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/arichornloverALT.png" width="100px;" alt="arichornloverALT"/></a></td>
<td align="center"><a href="https://github.com/PoomSmart"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/PoomSmart.png" width="100px;" alt="PoomSmart"/></a></td>
<td align="center"><a href="https://github.com/qnblackcat"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/qnblackcat.png" width="100px;" alt="qnblackcat"/></a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/SKEIDs"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/SKEIDs.png" width="100px;" alt="SKEIDs"/></a></td>
<td align="center"><a href="https://github.com/asdfzxcvbn"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/asdfzxcvbn.png" width="100px;" alt="asdfzxcvbn"/></a></td>
<td align="center"><a href="https://github.com/matt911"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/matt911.png" width="100px;" alt="matt911"/></a></td>
<td align="center"><a href="https://github.com/bhackel"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/bhackel.png" width="100px;" alt="bhackel"/></a></td>
<td align="center"><a href="https://github.com/AlexInABox"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/AlexInABox.png" width="100px;" alt="AlexInABox"/></a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/Glenta"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Glenta.png" width="100px;" alt="Glenta"/></a></td>
<td align="center"><a href="https://github.com/gototheskinny"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/gototheskinny.png" width="100px;" alt="gototheskinny"/></a></td>
<td align="center"><a href="https://github.com/MrAlucardDante"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/MrAlucardDante.png" width="100px;" alt="MrAlucardDante"/></a></td>
<td align="center"><a href="https://github.com/Galactic-Dev"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Galactic-Dev.png" width="100px;" alt="Galactic-Dev"/></a></td>
<td align="center"><a href="https://github.com/AhmedBafkir"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/AhmedBafkir.png" width="100px;" alt="AhmedBafkir"/></a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/MiRO92"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/MiRO92.png" width="100px;" alt="MiRO92"/></a></td>
<td align="center"><a href="https://github.com/ichitaso"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/ichitaso.png" width="100px;" alt="ichitaso"/></a></td>
<td align="center"><a href="https://github.com/Deci8BelioS"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Deci8BelioS.png" width="100px;" alt="Deci8BelioS"/></a></td>
<td align="center"><a href="https://github.com/julioverne"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/julioverne.png" width="100px;" alt="julioverne"/></a></td>
<td align="center"><a href="https://github.com/therealFoxster"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/therealFoxster.png" width="100px;" alt="therealFoxster"/></a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/Lyvendia"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Lyvendia.png" width="100px;" alt="Lyvendia"/></a></td>
<td align="center"><a href="https://github.com/ssuesskind"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/ssuesskind.png" width="100px;" alt="ssuesskind"/></a></td>
<td align="center"><a href="https://github.com/hbang"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/hbang.png" width="100px;" alt="hbang"/></a></td>
<td align="center"><a href="https://github.com/level3tjg"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/level3tjg.png" width="100px;" alt="level3tjg"/></a></td>
<td align="center"><a href="https://github.com/zSaaiq"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/zSaaiq.png" width="100px;" alt="zSaaiq"/></a></td>
</tr>
<tr>
<td align="center"><a href="https://github.com/ISnackable"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/ISnackable.png" width="100px;" alt="ISnackable"/></a></td>
<td align="center"><a href="https://github.com/VictorxD70"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/VictorxD70.png" width="100px;" alt="VictorxD70"/></a></td>
<td align="center"><a href="https://github.com/Macleykun"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/Macleykun.png" width="100px;" alt="Macleykun"/></a></td>
<td align="center"><a href="https://github.com/BandarHL"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/BandarHL.png" width="100px;" alt="BandarHL"/></a></td>
<td align="center"><a href="https://github.com/CokePokes"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Credits/CokePokes.png" width="100px;" alt="CokePokes"/></a></td>
</tr>
</table>
### Dependencies
# Features
- `curl`, `jq`, `python3` (with `pyyaml`), `unzip`, `zip`
- `optool` or `insert_dylib` (for dylib injection)
- `make` + Theos (only if any tweak has `fetch: build`)
1. **YTLite**: A tweak that enhances the YouTube experience by removing ads, enabling background playback and offering over 60 customization options.
## How to Add a Tweak
2. **YTUHD**: This tweak unlocks 1440p (2K) and 2160p (4K) resolutions in the iOS YouTube app.
Add an entry to `config.yml`:
3. **YouPiP**: Enables native Picture-in-Picture feature for videos in the YouTube app.
```yaml
tweaks:
- id: my_new_tweak
enabled: true
repo: owner/RepoName
fetch: release # or "build" for source-build tweaks
```
4. **YTABConfig**: Adds a new section named "A/B" in the YouTube app settings where all features can be toggled freely by the user.
That's it. No other files need to change.
5. **DontEatMyContent**: Prevents the notch/Dynamic Island from covering 2:1 video content in YouTube.
## CI (GitHub Actions)
6. **Return YouTube Dislikes**: Brings back Dislike counts under YouTube videos using ReturnYoutubeDislike's API.
Trigger the **Build YTLitePlus (v2)** workflow manually:
7. **YouRememberCaption**: Makes YouTube remember your video caption setting.
- Provide a YouTube IPA URL as input, or set the `IPA_URL` repository secret.
- A draft release with the patched IPA is created automatically.
8. **YTNoTracking**: An iOS YouTube Tweak that disables Tracking Parameters in the YouTube App.
## Included Tweaks
9. **YTNoCheckLocalNetWor**k: Blocks the Local Network permission popup in YouTube.
| Tweak | Repo | Enabled |
|-------|------|---------|
| YTLite | dayanch96/YTLite | ✅ |
| YouPiP | PoomSmart/YouPiP | ✅ |
| YTUHD | splaser/YTUHD | ✅ |
| YTABConfig | PoomSmart/YTABConfig | ✅ |
| Return YouTube Dislikes | PoomSmart/Return-YouTube-Dislikes | ✅ |
| DontEatMyContent | therealFoxster/DontEatMyContent | ✅ |
| YTVideoOverlay | PoomSmart/YTVideoOverlay | ✅ |
| YouGroupSettings | PoomSmart/YouGroupSettings | ✅ |
| Alderis | hbang/Alderis | ✅ |
| FLEXing | PoomSmart/FLEXing | ❌ |
| YouTimeStamp | aricloverALT/YouTimeStamp | ❌ |
| YTHeaders | therealFoxster/YTHeaders | ❌ |
| OpenYouTubeSafari | BillyCurtis/OpenYouTubeSafariExtension | ❌ |
10. **BigYTMiniPlayer**: Jailbreak tweak that makes the miniplayer in youtube easier to see.
## License
11. **YTVideoOverlay**: A helper tweak that adds buttons on the YouTube video overlay.
12. **YTNoModernUI**: This tweak changes and removes some newer UI elements from the YouTube app such as some rounded buttons, old progress bar, and old buffer bar.
13. **OLEDDarkmode**: Replace official Youtube darkmode with a true OLED darkmode.
14. **OLDDarkmode**: Replace new official Youtube darkmode with old (grey) Youtube darkmode.
15. **LowContrastMode**: Makes the UI interface look dimmer to make it easier on the eyes. (App Compatibility: v17.33.2-v17.38.10)
# AltStore
<a href="https://tinyurl.com/YTLiteAltstore"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/Altstore/Altstore.png" width="200"></a>
&nbsp;
<a href="https://altsource.by.lao.sb/browse/?source=https://raw.githubusercontent.com/Balackburn/YTLitePlusAltstore/main/apps.json"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Altstore/altsource.by.lao.sb.png" width="200"></a>
&nbsp;
<a href="https://raw.githubusercontent.com/Balackburn/YTLitePlusAltstore/main/apps.json"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Altstore/URL.png" width="200"></a>
# Donations
<a href="https://buymeacoffee.com/dayanch96"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Dayanch96(buymeacoffee).png" width="200"></a>
&nbsp;
<a href="https://github.com/sponsors/dayanch96"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Dayanch96(Github).png" width="200"></a>
<a href="https://ko-fi.com/dayanch966"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Dayanch96(ko-fi).png" width="200"></a>
&nbsp;
<a href="https://www.paypal.com/paypalme/poomsmart"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Poomsmart.png" width="200"></a>
<a href="https://www.paypal.com/paypalme/DBrett684"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Galactic-dev(Paypal).png" width="200"></a>
&nbsp;
<a href="https://venmo.com/u/DavidBrett"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/Galactic-dev(Venmo).png?raw=true" width="200"></a>
<a href="https://github.com/MiRO92/uYou-for-YouTube#support"><img src="https://raw.githubusercontent.com/YTLitePlus/Assets/main/Github/Buttons/Donations/MIRO92.png" width="200"></a>
&nbsp;
<a href="https://www.paypal.com/paypalme/BandarHL"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/BandarHL.png" width="200"></a>
&nbsp;
<a href="https://ko-fi.com/level3tjg"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/level3tjg.png?raw=true" width="200"></a>
&nbsp;
<a href="https://www.patreon.com/julioverne"><img src="https://github.com/YTLitePlus/Assets/blob/main/Github/Buttons/Donations/julioverne.png?raw=true" width="200"></a>
# Building
See [YTLitePlus/Building - Wiki](https://github.com/YTLitePlus/YTLitePlus/wiki/Building)
See [LICENSE](LICENSE).

View file

@ -1,511 +0,0 @@
#import "../YTLitePlus.h"
// Color Configuration
static UIColor *lcmHexColor = nil;
static UIColor *const kLowContrastColor = [UIColor colorWithRed:0.56 green:0.56 blue:0.56 alpha:1.0];
static UIColor *const kDefaultTextColor = [UIColor whiteColor];
// Utility Functions
static inline int contrastMode() {
return [[NSUserDefaults standardUserDefaults] integerForKey:@"lcm"];
}
static inline BOOL lowContrastMode() {
return IS_ENABLED(@"lowContrastMode_enabled") && contrastMode() == 0;
}
static inline BOOL customContrastMode() {
return IS_ENABLED(@"lowContrastMode_enabled") && contrastMode() == 1;
}
// static inline UIColor *activeColor() {
// return customContrastMode() && lcmHexColor ? lcmHexColor : kLowContrastColor;
// }
// Low Contrast Mode v1.7.1.1 (Compatible with only YouTube v19.01.1-v20.21.6)
%group gLowContrastMode
%hook UIColor
+ (UIColor *)colorNamed:(NSString *)name {
NSArray<NSString *> *targetColors = @[
@"whiteColor", @"lightTextColor", @"lightGrayColor", @"ychGrey7",
@"skt_chipBackgroundColor", @"placeholderTextColor", @"systemLightGrayColor",
@"systemExtraLightGrayColor", @"labelColor", @"secondaryLabelColor",
@"tertiaryLabelColor", @"quaternaryLabelColor"
];
return [targetColors containsObject:name] ? kLowContrastColor : %orig;
}
+ (UIColor *)whiteColor { return kLowContrastColor; }
+ (UIColor *)lightTextColor { return kLowContrastColor; }
+ (UIColor *)lightGrayColor { return kLowContrastColor; }
%end
%hook YTCommonColorPalette
- (UIColor *)textPrimary {
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)textSecondary {
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)overlayTextPrimary {
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)overlayTextSecondary {
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)iconActive {
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)iconActiveOther {
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)brandIconActive {
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)staticBrandWhite {
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)overlayIconActiveOther {
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)overlayIconInactive {
return self.pageStyle == 1 ? [kDefaultTextColor colorWithAlphaComponent:0.7] : %orig;
}
- (UIColor *)overlayIconDisabled {
return self.pageStyle == 1 ? [kDefaultTextColor colorWithAlphaComponent:0.3] : %orig;
}
- (UIColor *)overlayFilledButtonActive {
return self.pageStyle == 1 ? [kDefaultTextColor colorWithAlphaComponent:0.2] : %orig;
}
%end
%hook YTColor
+ (BOOL)darkerPaletteTextColorEnabled { return NO; }
+ (UIColor *)white1 { return kLowContrastColor; }
+ (UIColor *)white2 { return kLowContrastColor; }
+ (UIColor *)white3 { return kLowContrastColor; }
+ (UIColor *)white4 { return kLowContrastColor; }
+ (UIColor *)white5 { return kLowContrastColor; }
+ (UIColor *)grey1 { return kLowContrastColor; }
+ (UIColor *)grey2 { return kLowContrastColor; }
%end
%hook _ASDisplayView
- (void)layoutSubviews {
%orig;
NSArray<NSString *> *targetLabels = @[@"connect account", @"Thanks", @"Save to playlist", @"Report"];
for (UIView *subview in self.subviews) {
if ([targetLabels containsObject:subview.accessibilityLabel]) {
subview.backgroundColor = kLowContrastColor;
if ([subview isKindOfClass:[UILabel class]]) {
((UILabel *)subview).textColor = [UIColor blackColor];
}
}
}
}
%end
%hook QTMColorGroup
- (UIColor *)tint100 { return kDefaultTextColor; }
- (UIColor *)tint300 { return kDefaultTextColor; }
- (UIColor *)tint500 { return kDefaultTextColor; }
- (UIColor *)tint700 { return kDefaultTextColor; }
- (UIColor *)accent200 { return kDefaultTextColor; }
- (UIColor *)accent400 { return kDefaultTextColor; }
- (UIColor *)accentColor { return kDefaultTextColor; }
- (UIColor *)brightAccentColor { return kDefaultTextColor; }
- (UIColor *)regularColor { return kDefaultTextColor; }
- (UIColor *)darkerColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColor { return kDefaultTextColor; }
- (UIColor *)lightBodyTextColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColorOnRegularColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColorOnLighterColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColorOnDarkerColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColorOnAccentColor { return kDefaultTextColor; }
- (UIColor *)buttonBackgroundColor { return kDefaultTextColor; }
- (UIColor *)Color { return kDefaultTextColor; }
%end
%hook YTQTMButton
- (void)setImage:(UIImage *)image {
UIImage *tintedImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[self setTintColor:kDefaultTextColor];
%orig(tintedImage);
}
%end
%hook UIExtendedSRGColorSpace
- (void)setTextColor:(UIColor *)textColor {
%orig([kDefaultTextColor colorWithAlphaComponent:0.9]);
}
%end
%hook UIExtendedSRGBColorSpace
- (void)setTextColor:(UIColor *)textColor {
%orig([kDefaultTextColor colorWithAlphaComponent:1.0]);
}
%end
%hook UIExtendedGrayColorSpace
- (void)setTextColor:(UIColor *)textColor {
%orig([kDefaultTextColor colorWithAlphaComponent:1.0]);
}
%end
%hook VideoTitleLabel
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook UILabel
+ (void)load {
[[UILabel appearance] setTextColor:kDefaultTextColor];
}
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook UITextField
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook UITextView
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook UISearchBar
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook UISegmentedControl
- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state {
NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes];
modifiedAttributes[NSForegroundColorAttributeName] = kDefaultTextColor;
%orig(modifiedAttributes, state);
}
%end
%hook UIButton
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state {
%orig(kDefaultTextColor, state);
}
%end
%hook UIBarButtonItem
- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state {
NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes];
modifiedAttributes[NSForegroundColorAttributeName] = kDefaultTextColor;
%orig(modifiedAttributes, state);
}
%end
%hook NSAttributedString
- (instancetype)initWithString:(NSString *)str attributes:(NSDictionary<NSAttributedStringKey, id> *)attrs {
NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attrs];
modifiedAttributes[NSForegroundColorAttributeName] = kDefaultTextColor;
return %orig(str, modifiedAttributes);
}
%end
%hook CATextLayer
- (void)setTextColor:(CGColorRef)textColor {
%orig(kDefaultTextColor.CGColor);
}
%end
%hook ASTextNode
- (NSAttributedString *)attributedString {
NSAttributedString *original = %orig;
NSMutableAttributedString *modified = [original mutableCopy];
[modified addAttribute:NSForegroundColorAttributeName value:kDefaultTextColor range:NSMakeRange(0, modified.length)];
return modified;
}
%end
%hook ASTextFieldNode
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook ASTextView
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook ASButtonNode
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook UIControl
- (UIColor *)backgroundColor {
return [UIColor blackColor];
}
%end
%end
// Custom Contrast Mode
%group gCustomContrastMode
%hook UIColor
+ (UIColor *)colorNamed:(NSString *)name {
NSArray<NSString *> *targetColors = @[
@"whiteColor", @"lightTextColor", @"lightGrayColor", @"ychGrey7",
@"skt_chipBackgroundColor", @"placeholderTextColor", @"systemLightGrayColor",
@"systemExtraLightGrayColor", @"labelColor", @"secondaryLabelColor",
@"tertiaryLabelColor", @"quaternaryLabelColor"
];
return [targetColors containsObject:name] ? lcmHexColor : %orig;
}
+ (UIColor *)whiteColor { return lcmHexColor; }
+ (UIColor *)lightTextColor { return lcmHexColor; }
+ (UIColor *)lightGrayColor { return lcmHexColor; }
%end
%hook YTCommonColorPalette
- (UIColor *)textPrimary {
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)textSecondary {
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)overlayTextPrimary {
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)overlayTextSecondary {
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)iconActive {
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)iconActiveOther {
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)brandIconActive {
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)staticBrandWhite {
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)overlayIconActiveOther {
return self.pageStyle == 1 ? kDefaultTextColor : %orig;
}
- (UIColor *)overlayIconInactive {
return self.pageStyle == 1 ? [kDefaultTextColor colorWithAlphaComponent:0.7] : %orig;
}
- (UIColor *)overlayIconDisabled {
return self.pageStyle == 1 ? [kDefaultTextColor colorWithAlphaComponent:0.3] : %orig;
}
- (UIColor *)overlayFilledButtonActive {
return self.pageStyle == 1 ? [kDefaultTextColor colorWithAlphaComponent:0.2] : %orig;
}
%end
%hook YTColor
+ (BOOL)darkerPaletteTextColorEnabled { return NO; }
+ (UIColor *)white1 { return lcmHexColor; }
+ (UIColor *)white2 { return lcmHexColor; }
+ (UIColor *)white3 { return lcmHexColor; }
+ (UIColor *)white4 { return lcmHexColor; }
+ (UIColor *)white5 { return lcmHexColor; }
+ (UIColor *)grey1 { return lcmHexColor; }
+ (UIColor *)grey2 { return lcmHexColor; }
%end
%hook _ASDisplayView
- (void)layoutSubviews {
%orig;
NSArray<NSString *> *targetLabels = @[@"connect account", @"Thanks", @"Save to playlist", @"Report"];
for (UIView *subview in self.subviews) {
if ([targetLabels containsObject:subview.accessibilityLabel]) {
subview.backgroundColor = lcmHexColor;
if ([subview isKindOfClass:[UILabel class]]) {
((UILabel *)subview).textColor = [UIColor blackColor];
}
}
}
}
%end
%hook QTMColorGroup
- (UIColor *)tint100 { return kDefaultTextColor; }
- (UIColor *)tint300 { return kDefaultTextColor; }
- (UIColor *)tint500 { return kDefaultTextColor; }
- (UIColor *)tint700 { return kDefaultTextColor; }
- (UIColor *)accent200 { return kDefaultTextColor; }
- (UIColor *)accent400 { return kDefaultTextColor; }
- (UIColor *)accentColor { return kDefaultTextColor; }
- (UIColor *)brightAccentColor { return kDefaultTextColor; }
- (UIColor *)regularColor { return kDefaultTextColor; }
- (UIColor *)darkerColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColor { return kDefaultTextColor; }
- (UIColor *)lightBodyTextColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColorOnRegularColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColorOnLighterColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColorOnDarkerColor { return kDefaultTextColor; }
- (UIColor *)bodyTextColorOnAccentColor { return kDefaultTextColor; }
- (UIColor *)buttonBackgroundColor { return kDefaultTextColor; }
- (UIColor *)Color { return kDefaultTextColor; }
%end
%hook YTQTMButton
- (void)setImage:(UIImage *)image {
UIImage *tintedImage = [image imageWithRenderingMode:UIImageRenderingModeAlwaysTemplate];
[self setTintColor:kDefaultTextColor];
%orig(tintedImage);
}
%end
%hook UIExtendedSRGColorSpace
- (void)setTextColor:(UIColor *)textColor {
%orig([kDefaultTextColor colorWithAlphaComponent:0.9]);
}
%end
%hook UIExtendedSRGBColorSpace
- (void)setTextColor:(UIColor *)textColor {
%orig([kDefaultTextColor colorWithAlphaComponent:1.0]);
}
%end
%hook UIExtendedGrayColorSpace
- (void)setTextColor:(UIColor *)textColor {
%orig([kDefaultTextColor colorWithAlphaComponent:1.0]);
}
%end
%hook VideoTitleLabel
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook UILabel
+ (void)load {
[[UILabel appearance] setTextColor:kDefaultTextColor];
}
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook UITextField
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook UITextView
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook UISearchBar
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook UISegmentedControl
- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state {
NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes];
modifiedAttributes[NSForegroundColorAttributeName] = kDefaultTextColor;
%orig(modifiedAttributes, state);
}
%end
%hook UIButton
- (void)setTitleColor:(UIColor *)color forState:(UIControlState)state {
%orig(kDefaultTextColor, state);
}
%end
%hook UIBarButtonItem
- (void)setTitleTextAttributes:(NSDictionary *)attributes forState:(UIControlState)state {
NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attributes];
modifiedAttributes[NSForegroundColorAttributeName] = kDefaultTextColor;
%orig(modifiedAttributes, state);
}
%end
%hook NSAttributedString
- (instancetype)initWithString:(NSString *)str attributes:(NSDictionary<NSAttributedStringKey, id> *)attrs {
NSMutableDictionary *modifiedAttributes = [NSMutableDictionary dictionaryWithDictionary:attrs];
modifiedAttributes[NSForegroundColorAttributeName] = kDefaultTextColor;
return %orig(str, modifiedAttributes);
}
%end
%hook CATextLayer
- (void)setTextColor:(CGColorRef)color {
%orig(kDefaultTextColor.CGColor);
}
%end
%hook ASTextNode
- (NSAttributedString *)attributedString {
NSAttributedString *original = %orig;
NSMutableAttributedString *modified = [original mutableCopy];
[modified addAttribute:NSForegroundColorAttributeName value:kDefaultTextColor range:NSMakeRange(0, modified.length)];
return modified;
}
%end
%hook ASTextFieldNode
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook ASTextView
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook ASButtonNode
- (void)setTextColor:(UIColor *)textColor {
%orig(kDefaultTextColor);
}
%end
%hook UIControl
- (UIColor *)backgroundColor {
return [UIColor blackColor];
}
%end
%end
// Constructor
%ctor {
%init;
if (lowContrastMode()) {
%init(gLowContrastMode);
}
if (customContrastMode()) {
NSData *colorData = [[NSUserDefaults standardUserDefaults] objectForKey:@"kCustomUIColor"];
if (colorData) {
NSError *error = nil;
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingFromData:colorData error:&error];
if (!error) {
[unarchiver setRequiresSecureCoding:NO];
lcmHexColor = [unarchiver decodeObjectForKey:NSKeyedArchiveRootObjectKey];
if (lcmHexColor) {
%init(gCustomContrastMode);
}
}
}
}
}

View file

@ -1,739 +0,0 @@
#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import <string.h>
#import "../YTLitePlus.h"
#import "../Tweaks/YouTubeHeader/YTSettingsViewController.h"
#import "../Tweaks/YouTubeHeader/YTSearchableSettingsViewController.h"
#import "../Tweaks/YouTubeHeader/YTSettingsSectionItem.h"
#import "../Tweaks/YouTubeHeader/YTSettingsSectionItemManager.h"
#import "../Tweaks/YouTubeHeader/YTUIUtils.h"
#import "../Tweaks/YouTubeHeader/YTSettingsPickerViewController.h"
#import "SettingsKeys.h"
// #import "AppIconOptionsController.h"
// Basic switch item
#define BASIC_SWITCH(title, description, key) \
[YTSettingsSectionItemClass switchItemWithTitle:title \
titleDescription:description \
accessibilityIdentifier:nil \
switchOn:IsEnabled(key) \
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) { \
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:key]; \
return YES; \
} \
settingItemId:0]
/*
// Custom switch item that has customizable code
#define CUSTOM_SWITCH(title, description, key, code) \
[YTSettingsSectionItemClass switchItemWithTitle:title \
titleDescription:description \
accessibilityIdentifier:nil \
switchOn:IsEnabled(key) \
switchBlock:^BOOL (YTSettingsCell *cell, BOOL enable) { \
code \
} \
settingItemId:0]
*/
static int contrastMode() {
return [[NSUserDefaults standardUserDefaults] integerForKey:@"lcm"];
}
static int appVersionSpoofer() {
return [[NSUserDefaults standardUserDefaults] integerForKey:@"versionSpoofer"];
}
@interface YTSettingsSectionItemManager (YTLitePlus)
- (void)updateYTLitePlusSectionWithEntry:(id)entry;
@end
extern NSBundle *YTLitePlusBundle();
// Add both YTLite and YTLitePlus to YouGroupSettings
static const NSInteger YTLitePlusSection = 788;
static const NSInteger YTLiteSection = 789;
%hook YTSettingsGroupData
+ (NSMutableArray <NSNumber *> *)tweaks {
NSMutableArray <NSNumber *> *originalTweaks = %orig;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
[originalTweaks addObject:@(YTLitePlusSection)];
[originalTweaks addObject:@(YTLiteSection)];
});
return originalTweaks;
}
%end
// Add YTLitePlus to the settings list
%hook YTAppSettingsPresentationData
+ (NSArray *)settingsCategoryOrder {
NSArray *order = %orig;
NSMutableArray *mutableOrder = [order mutableCopy];
NSUInteger insertIndex = [order indexOfObject:@(1)];
if (insertIndex != NSNotFound)
[mutableOrder insertObject:@(YTLitePlusSection) atIndex:insertIndex + 1];
return mutableOrder;
}
%end
%hook YTSettingsSectionController
- (void)setSelectedItem:(NSUInteger)selectedItem {
if (selectedItem != NSNotFound) %orig;
}
%end
%hook YTSettingsSectionItemManager
%new(v@:@)
- (void)updateYTLitePlusSectionWithEntry:(id)entry {
NSMutableArray *sectionItems = [NSMutableArray array];
NSBundle *tweakBundle = YTLitePlusBundle();
Class YTSettingsSectionItemClass = %c(YTSettingsSectionItem);
YTSettingsViewController *settingsViewController = [self valueForKey:@"_settingsViewControllerDelegate"];
// Add item for going to the YTLitePlus GitHub page
YTSettingsSectionItem *main = [%c(YTSettingsSectionItem)
itemWithTitle:[NSString stringWithFormat:LOC(@"VERSION"), @(OS_STRINGIFY(TWEAK_VERSION))]
titleDescription:LOC(@"VERSION_CHECK")
accessibilityIdentifier:nil
detailTextBlock:nil
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
return [%c(YTUIUtils) openURL:[NSURL URLWithString:@"https://github.com/YTLitePlus/YTLitePlus/releases/latest"]];
}];
[sectionItems addObject:main];
# pragma mark - Copy and Paste Settings
YTSettingsSectionItem *copySettings = [%c(YTSettingsSectionItem)
itemWithTitle:IS_ENABLED(@"switchCopyandPasteFunctionality_enabled") ? LOC(@"EXPORT_SETTINGS") : LOC(@"COPY_SETTINGS")
titleDescription:IS_ENABLED(@"switchCopyandPasteFunctionality_enabled") ? LOC(@"EXPORT_SETTINGS_DESC") : LOC(@"COPY_SETTINGS_DESC")
accessibilityIdentifier:nil
detailTextBlock:nil
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
if (IS_ENABLED(@"switchCopyandPasteFunctionality_enabled")) {
// Export Settings functionality
NSURL *tempFileURL = [NSURL fileURLWithPath:[NSTemporaryDirectory() stringByAppendingPathComponent:@"YTLitePlusSettings.txt"]];
NSMutableString *settingsString = [NSMutableString string];
for (NSString *key in NSUserDefaultsCopyKeys) {
id value = [[NSUserDefaults standardUserDefaults] objectForKey:key];
id defaultValue = NSUserDefaultsCopyKeysDefaults[key];
// Only include the setting if it is different from the default value
// If no default value is found, include it by default
if (value && (!defaultValue || ![value isEqual:defaultValue])) {
[settingsString appendFormat:@"%@: %@\n", key, value];
}
}
[settingsString writeToURL:tempFileURL atomically:YES encoding:NSUTF8StringEncoding error:nil];
UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithURL:tempFileURL inMode:UIDocumentPickerModeExportToService];
documentPicker.delegate = (id<UIDocumentPickerDelegate>)self;
documentPicker.allowsMultipleSelection = NO;
[settingsViewController presentViewController:documentPicker animated:YES completion:nil];
} else {
// Copy Settings functionality (DEFAULT - Copies to Clipboard)
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
NSMutableString *settingsString = [NSMutableString string];
for (NSString *key in NSUserDefaultsCopyKeys) {
id value = [userDefaults objectForKey:key];
id defaultValue = NSUserDefaultsCopyKeysDefaults[key];
// Only include the setting if it is different from the default value
// If no default value is found, include it by default
if (value && (!defaultValue || ![value isEqual:defaultValue])) {
[settingsString appendFormat:@"%@: %@\n", key, value];
}
}
[[UIPasteboard generalPasteboard] setString:settingsString];
// Show a confirmation message or perform some other action here
[[%c(GOOHUDManagerInternal) sharedInstance] showMessageMainThread:[%c(YTHUDMessage) messageWithText:@"Settings copied"]];
// Show an option to export YouTube Plus settings
UIAlertController *exportAlert = [UIAlertController alertControllerWithTitle:@"Export Settings"
message:@"Note: This feature cannot save most YouTube settings.\n\nWould you like to also export your YouTube Plus Settings?"
preferredStyle:UIAlertControllerStyleAlert];
[exportAlert addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]];
[exportAlert addAction:[UIAlertAction actionWithTitle:@"Export" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
// Export YouTube Plus Settings functionality
[%c(YTLUserDefaults) exportYtlSettings];
}]];
// Present the alert from the root view controller
[settingsViewController presentViewController:exportAlert animated:YES completion:nil];
}
return YES;
}
];
[sectionItems addObject:copySettings];
YTSettingsSectionItem *pasteSettings = [%c(YTSettingsSectionItem)
itemWithTitle:IS_ENABLED(@"switchCopyandPasteFunctionality_enabled") ? LOC(@"IMPORT_SETTINGS") : LOC(@"PASTE_SETTINGS")
titleDescription:IS_ENABLED(@"switchCopyandPasteFunctionality_enabled") ? LOC(@"IMPORT_SETTINGS_DESC") : LOC(@"PASTE_SETTINGS_DESC")
accessibilityIdentifier:nil
detailTextBlock:nil
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
if (IS_ENABLED(@"switchCopyandPasteFunctionality_enabled")) {
// Paste Settings functionality (ALTERNATE - Pastes from ".txt")
UIDocumentPickerViewController *documentPicker = [[UIDocumentPickerViewController alloc] initWithDocumentTypes:@[@"public.text"] inMode:UIDocumentPickerModeImport];
documentPicker.delegate = (id<UIDocumentPickerDelegate>)self;
documentPicker.allowsMultipleSelection = NO;
[settingsViewController presentViewController:documentPicker animated:YES completion:nil];
} else {
// Paste Settings functionality (DEFAULT - Pastes from Clipboard)
UIAlertController *confirmPasteAlert = [UIAlertController alertControllerWithTitle:LOC(@"PASTE_SETTINGS_ALERT") message:nil preferredStyle:UIAlertControllerStyleAlert];
[confirmPasteAlert addAction:[UIAlertAction actionWithTitle:LOC(@"Cancel") style:UIAlertActionStyleCancel handler:nil]];
[confirmPasteAlert addAction:[UIAlertAction actionWithTitle:LOC(@"Confirm") style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
NSString *settingsString = [[UIPasteboard generalPasteboard] string];
if (settingsString.length > 0) {
NSArray *lines = [settingsString componentsSeparatedByString:@"\n"];
for (NSString *line in lines) {
NSArray *components = [line componentsSeparatedByString:@": "];
if (components.count == 2) {
NSString *key = components[0];
NSString *value = components[1];
[[NSUserDefaults standardUserDefaults] setObject:value forKey:key];
}
}
[settingsViewController reloadData];
// Show a confirmation toast
[[%c(GOOHUDManagerInternal) sharedInstance] showMessageMainThread:[%c(YTHUDMessage) messageWithText:@"Settings applied"]];
// Show a reminder to import YouTube Plus settings as well
UIAlertController *reminderAlert = [UIAlertController alertControllerWithTitle:@"Reminder"
message:@"Remember to import your YouTube Plus settings as well"
preferredStyle:UIAlertControllerStyleAlert];
[reminderAlert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]];
[settingsViewController presentViewController:reminderAlert animated:YES completion:nil];
}
}]];
[settingsViewController presentViewController:confirmPasteAlert animated:YES completion:nil];
}
return YES;
}
];
[sectionItems addObject:pasteSettings];
/*
YTSettingsSectionItem *appIcon = [%c(YTSettingsSectionItem)
itemWithTitle:LOC(@"CHANGE_APP_ICON")
titleDescription:nil
accessibilityIdentifier:nil
detailTextBlock:nil
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
AppIconOptionsController *appIconController = [[AppIconOptionsController alloc] init];
[settingsViewController.navigationController pushViewController:appIconController animated:YES];
return YES;
}
];
[sectionItems addObject:appIcon];
*/
# pragma mark - Player Gestures - @bhackel
// Helper to get the selected gesture mode
static NSString* (^sectionGestureSelectedModeToString)(GestureMode) = ^(GestureMode sectionIndex) {
switch (sectionIndex) {
case GestureModeVolume:
return LOC(@"VOLUME");
case GestureModeBrightness:
return LOC(@"BRIGHTNESS");
case GestureModeSeek:
return LOC(@"SEEK");
case GestureModeDisabled:
return LOC(@"DISABLED");
default:
return @"Invalid index - Report bug";
}
};
// Helper to generate checkmark setting items for selecting gesture modes
static YTSettingsSectionItem* (^gestureCheckmarkSettingItem)(NSInteger, NSString *) = ^(NSInteger idx, NSString *key) {
return [YTSettingsSectionItemClass
checkmarkItemWithTitle:sectionGestureSelectedModeToString((GestureMode)idx)
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:idx forKey:key];
[settingsViewController reloadData];
return YES;
}
];
};
// Helper to generate a section item for selecting a gesture mode
YTSettingsSectionItem *(^createSectionGestureSelector)(NSString *, NSString *) = ^YTSettingsSectionItem *(NSString *sectionLabel, NSString *sectionKey) {
return [YTSettingsSectionItemClass itemWithTitle:LOC(sectionLabel)
accessibilityIdentifier:nil
detailTextBlock:^NSString *() {
return sectionGestureSelectedModeToString((GestureMode)GetInteger(sectionKey));
}
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
gestureCheckmarkSettingItem(0, sectionKey), // Volume
gestureCheckmarkSettingItem(1, sectionKey), // Brightness
gestureCheckmarkSettingItem(2, sectionKey), // Seek
gestureCheckmarkSettingItem(3, sectionKey) // Disabled
];
// Present picker when selecting this settings item
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc]
initWithNavTitle:LOC(sectionLabel)
pickerSectionTitle:nil
rows:rows
selectedItemIndex:GetInteger(sectionKey)
parentResponder:[self parentResponder]
];
[settingsViewController pushViewController:picker];
return YES;
}
];
};
// Configuration picker for deadzone to pick from 0 to 100 pixels with interval of 10
NSMutableArray<NSNumber *> *deadzoneValues = [NSMutableArray array];
for (CGFloat value = 0; value <= 100; value += 10) {
[deadzoneValues addObject:@(value)];
}
YTSettingsSectionItem *deadzonePicker = [YTSettingsSectionItemClass
itemWithTitle:LOC(@"DEADZONE")
titleDescription:LOC(@"DEADZONE_DESC")
accessibilityIdentifier:nil
detailTextBlock:^NSString *() {
return [NSString stringWithFormat:@"%ld px", (long)GetFloat(@"playerGesturesDeadzone")];
}
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
// Generate rows for deadzone picker using the predefined array
NSMutableArray <YTSettingsSectionItem *> *deadzoneRows = [NSMutableArray array];
for (NSNumber *deadzoneValue in deadzoneValues) {
CGFloat deadzone = [deadzoneValue floatValue];
[deadzoneRows addObject:[YTSettingsSectionItemClass
checkmarkItemWithTitle:[NSString stringWithFormat:@"%ld px", (long)deadzone]
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setFloat:deadzone forKey:@"playerGesturesDeadzone"];
[settingsViewController reloadData];
return YES;
}
]];
}
// Determine the index of the currently selected deadzone
CGFloat currentDeadzone = GetFloat(@"playerGesturesDeadzone");
NSUInteger selectedIndex = [deadzoneValues indexOfObject:@(currentDeadzone)];
if (selectedIndex == NSNotFound) {
selectedIndex = 0; // Default to the first item if the current deadzone is not found
}
// Present deadzone picker when selecting this settings item
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc]
initWithNavTitle:LOC(@"DEADZONE")
pickerSectionTitle:nil
rows:deadzoneRows
selectedItemIndex:selectedIndex
parentResponder:[self parentResponder]
];
[settingsViewController pushViewController:picker];
return YES;
}
];
// Configuration picker for sensitivity to pick from 0.5 to 2.0 with interval of 0.1
NSMutableArray<NSNumber *> *sensitivityValues = [NSMutableArray array];
for (CGFloat value = 0.5; value <= 2.0; value += 0.1) {
[sensitivityValues addObject:@(value)];
}
YTSettingsSectionItem *sensitivityPicker = [YTSettingsSectionItemClass
itemWithTitle:LOC(@"SENSITIVITY")
titleDescription:LOC(@"SENSITIVITY_DESC")
accessibilityIdentifier:nil
detailTextBlock:^NSString *() {
return [NSString stringWithFormat:@"%.1f", GetFloat(@"playerGesturesSensitivity")];
}
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
// Generate rows for sensitivity picker using the predefined array
NSMutableArray <YTSettingsSectionItem *> *sensitivityRows = [NSMutableArray array];
for (NSNumber *sensitivityValue in sensitivityValues) {
CGFloat sensitivity = [sensitivityValue floatValue];
[sensitivityRows addObject:[YTSettingsSectionItemClass
checkmarkItemWithTitle:[NSString stringWithFormat:@"%.1f", sensitivity]
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setFloat:sensitivity forKey:@"playerGesturesSensitivity"];
[settingsViewController reloadData];
return YES;
}
]];
}
// Determine the index of the currently selected sensitivity
CGFloat currentSensitivity = GetFloat(@"playerGesturesSensitivity");
NSUInteger selectedIndex = [sensitivityValues indexOfObject:@(currentSensitivity)];
if (selectedIndex == NSNotFound) {
selectedIndex = 0; // Default to the first item if the current sensitivity is not found
}
// Present sensitivity picker
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc]
initWithNavTitle:LOC(@"SENSITIVITY")
pickerSectionTitle:nil
rows:sensitivityRows
selectedItemIndex:selectedIndex
parentResponder:[self parentResponder]
];
[settingsViewController pushViewController:picker];
return YES;
}
];
// Create and add items to the high level gestures menu
YTSettingsSectionItem *playerGesturesGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"PLAYER_GESTURES_TITLE") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
// Description header item
[YTSettingsSectionItemClass
itemWithTitle:nil
titleDescription:LOC(@"PLAYER_GESTURES_DESC")
accessibilityIdentifier:nil
detailTextBlock:nil
selectBlock:nil
],
// Toggle for enabling gestures
BASIC_SWITCH(LOC(@"PLAYER_GESTURES_TOGGLE"), nil, @"playerGestures_enabled"),
// Pickers for each gesture section
createSectionGestureSelector(@"TOP_SECTION", @"playerGestureTopSelection"),
createSectionGestureSelector(@"MIDDLE_SECTION", @"playerGestureMiddleSelection"),
createSectionGestureSelector(@"BOTTOM_SECTION", @"playerGestureBottomSelection"),
// Pickers for configuration settings
deadzonePicker,
sensitivityPicker,
// Toggle for haptic feedback
BASIC_SWITCH(LOC(@"PLAYER_GESTURES_HAPTIC_FEEDBACK"), nil, @"playerGesturesHapticFeedback_enabled"),
];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"PLAYER_GESTURES_TITLE") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
return YES;
}];
[sectionItems addObject:playerGesturesGroup];
# pragma mark - Video Controls Overlay Options
YTSettingsSectionItem *videoControlOverlayGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"VIDEO_CONTROLS_OVERLAY_OPTIONS") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
BASIC_SWITCH(LOC(@"ENABLE_SHARE_BUTTON"), LOC(@"ENABLE_SHARE_BUTTON_DESC"), @"enableShareButton_enabled"),
BASIC_SWITCH(LOC(@"ENABLE_SAVE_TO_PLAYLIST_BUTTON"), LOC(@"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC"), @"enableSaveToButton_enabled"),
BASIC_SWITCH(LOC(@"HIDE_SHADOW_OVERLAY_BUTTONS"), LOC(@"HIDE_SHADOW_OVERLAY_BUTTONS_DESC"), @"hideVideoPlayerShadowOverlayButtons_enabled"),
BASIC_SWITCH(LOC(@"HIDE_RIGHT_PANEL"), LOC(@"HIDE_RIGHT_PANEL_DESC"), @"hideRightPanel_enabled"),
BASIC_SWITCH(LOC(@"HIDE_HEATWAVES"), LOC(@"HIDE_HEATWAVES_DESC"), @"hideHeatwaves_enabled"),
BASIC_SWITCH(LOC(@"DISABLE_AMBIENT_PORTRAIT"), LOC(@"DISABLE_AMBIENT_PORTRAIT_DESC"), @"disableAmbientModePortrait_enabled"),
BASIC_SWITCH(LOC(@"DISABLE_AMBIENT_FULLSCREEN"), LOC(@"DISABLE_AMBIENT_FULLSCREEN_DESC"), @"disableAmbientModeFullscreen_enabled"),
BASIC_SWITCH(LOC(@"FULLSCREEN_TO_THE_RIGHT"), LOC(@"FULLSCREEN_TO_THE_RIGHT_DESC"), @"fullscreenToTheRight_enabled"),
BASIC_SWITCH(LOC(@"SEEK_ANYWHERE"), LOC(@"SEEK_ANYWHERE_DESC"), @"seekAnywhere_enabled"),
BASIC_SWITCH(LOC(@"ENABLE_TAP_TO_SEEK"), LOC(@"ENABLE_TAP_TO_SEEK_DESC"), @"YTTapToSeek_enabled"),
BASIC_SWITCH(LOC(@"DISABLE_PULL_TO_FULLSCREEN_GESTURE"), LOC(@"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC"), @"disablePullToFull_enabled"),
BASIC_SWITCH(LOC(@"ALWAYS_USE_REMAINING_TIME"), LOC(@"ALWAYS_USE_REMAINING_TIME_DESC"), @"alwaysShowRemainingTime_enabled"),
BASIC_SWITCH(LOC(@"DISABLE_TOGGLE_TIME_REMAINING"), LOC(@"DISABLE_TOGGLE_TIME_REMAINING_DESC"), @"disableRemainingTime_enabled"),
BASIC_SWITCH(LOC(@"DISABLE_ENGAGEMENT_OVERLAY"), LOC(@"DISABLE_ENGAGEMENT_OVERLAY_DESC"), @"disableEngagementOverlay_enabled"),
BASIC_SWITCH(LOC(@"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER"), LOC(@"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC"), @"hidePreviewCommentSection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_AUTOPLAY_MINI_PREVIEW"), LOC(@"HIDE_AUTOPLAY_MINI_PREVIEW_DESC"), @"hideAutoplayMiniPreview_enabled"),
BASIC_SWITCH(LOC(@"HIDE_HUD_MESSAGES"), LOC(@"HIDE_HUD_MESSAGES_DESC"), @"hideHUD_enabled"),
BASIC_SWITCH(LOC(@"HIDE_COLLAPSE_BUTTON"), LOC(@"HIDE_COLLAPSE_BUTTON_DESC"), @"disableCollapseButton_enabled"),
BASIC_SWITCH(LOC(@"HIDE_SPEED_TOAST"), LOC(@"HIDE_SPEED_TOAST_DESC"), @"hideSpeedToast_enabled"),
];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"VIDEO_CONTROLS_OVERLAY_OPTIONS") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
return YES;
}];
[sectionItems addObject:videoControlOverlayGroup];
# pragma mark - App Settings Overlay Options
YTSettingsSectionItem *appSettingsOverlayGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"APP_SETTINGS_OVERLAY_OPTIONS") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
BASIC_SWITCH(LOC(@"HIDE_ACCOUNT_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableAccountSection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_AUTOPLAY_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableAutoplaySection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_TRYNEWFEATURES_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableTryNewFeaturesSection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_VIDEOQUALITYPREFERENCES_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableVideoQualityPreferencesSection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_NOTIFICATIONS_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableNotificationsSection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_MANAGEALLHISTORY_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableManageAllHistorySection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_YOURDATAINYOUTUBE_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableYourDataInYouTubeSection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_PRIVACY_SECTION"), LOC(@"APP_RESTART_DESC"), @"disablePrivacySection_enabled"),
BASIC_SWITCH(LOC(@"HIDE_LIVECHAT_SECTION"), LOC(@"APP_RESTART_DESC"), @"disableLiveChatSection_enabled")
];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"APP_SETTINGS_OVERLAY_OPTIONS") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
return YES;
}];
[sectionItems addObject:appSettingsOverlayGroup];
# pragma mark - LowContrastMode
YTSettingsSectionItem *lowContrastModeSection = [YTSettingsSectionItemClass itemWithTitle:LOC(@"LOW_CONTRAST_MODE")
accessibilityIdentifier:nil
detailTextBlock:^NSString *() {
switch (contrastMode()) {
case 1:
return LOC(@"Hex Color");
case 0:
default:
return LOC(@"Default");
}
}
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"Default") titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"lcm"];
[settingsViewController reloadData];
return YES;
}],
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"Hex Color") titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"lcm"];
[settingsViewController reloadData];
return YES;
}]
];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"LOW_CONTRAST_MODE") pickerSectionTitle:nil rows:rows selectedItemIndex:contrastMode() parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
return YES;
}];
# pragma mark - VersionSpooferLite
YTSettingsSectionItem *versionSpooferSection = [YTSettingsSectionItemClass itemWithTitle:LOC(@"VERSION_SPOOFER_TITLE")
accessibilityIdentifier:nil
detailTextBlock:^NSString *() {
switch (appVersionSpoofer()) {
case 1:
return @"v18.34.5 (Enable Library Tab)";
case 2:
return @"v18.33.3 (Removes Playables)";
case 3:
return @"v18.18.2 (Fixes YTClassicVideoQuality & YTSpeed)";
case 4:
return @"v18.01.2 (First v18 Version)";
case 5:
return @"v17.49.6 (Removes Rounded Miniplayer)";
case 6:
return @"v17.38.10 (Fixes LowContrastMode)";
case 7:
return @"v17.33.2 (Oldest Supported Version)";
case 0:
default:
return @"v18.49.3 (Last v18 Version)";
}
}
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
[YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.49.3 (Last v18 Version)" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"versionSpoofer"];
[settingsViewController reloadData];
return YES;
}],
[YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.34.5 (Enable Library Tab)" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"versionSpoofer"];
[settingsViewController reloadData];
return YES;
}],
[YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.33.3 (Removes Playables)" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:2 forKey:@"versionSpoofer"];
[settingsViewController reloadData];
return YES;
}],
[YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.18.2 (Fixes YTClassicVideoQuality & YTSpeed)" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:3 forKey:@"versionSpoofer"];
[settingsViewController reloadData];
return YES;
}],
[YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.01.2 (First v18 Version)" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:4 forKey:@"versionSpoofer"];
[settingsViewController reloadData];
return YES;
}],
[YTSettingsSectionItemClass checkmarkItemWithTitle:@"v17.49.6 (Removes Rounded Miniplayer)" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:5 forKey:@"versionSpoofer"];
[settingsViewController reloadData];
return YES;
}],
[YTSettingsSectionItemClass checkmarkItemWithTitle:@"v17.38.10 (Fixes LowContrastMode)" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:6 forKey:@"versionSpoofer"];
[settingsViewController reloadData];
return YES;
}],
[YTSettingsSectionItemClass checkmarkItemWithTitle:@"v17.33.2 (Oldest Supported Version)" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:7 forKey:@"versionSpoofer"];
[settingsViewController reloadData];
return YES;
}]
];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:@"VERSION_SPOOFER_TITLE" pickerSectionTitle:nil rows:rows selectedItemIndex:appVersionSpoofer() parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
return YES;
}];
# pragma mark - Theme
YTSettingsSectionItem *themeGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"THEME_OPTIONS")
accessibilityIdentifier:nil
detailTextBlock:^NSString *() {
switch (GetInteger(@"appTheme")) {
case 1:
return LOC(@"OLD_DARK_THEME");
case 0:
default:
return LOC(@"DEFAULT_THEME");
}
}
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"DEFAULT_THEME") titleDescription:LOC(@"DEFAULT_THEME_DESC") selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"appTheme"];
[settingsViewController reloadData];
return YES;
}],
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"OLD_DARK_THEME") titleDescription:LOC(@"OLD_DARK_THEME_DESC") selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"appTheme"];
[settingsViewController reloadData];
return YES;
}],
BASIC_SWITCH(LOC(@"OLED_KEYBOARD"), LOC(@"OLED_KEYBOARD_DESC"), @"oledKeyBoard_enabled"),
BASIC_SWITCH(LOC(@"LOW_CONTRAST_MODE"), LOC(@"LOW_CONTRAST_MODE_DESC"), @"lowContrastMode_enabled"),
lowContrastModeSection
];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"THEME_OPTIONS") pickerSectionTitle:nil rows:rows selectedItemIndex:GetInteger(@"appTheme") parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
return YES;
}];
[sectionItems addObject:themeGroup];
# pragma mark - Copy of Playback in feeds section - @bhackel
// This section is hidden in vanilla YouTube when using the new settings UI, so
// we can recreate it here
YTSettingsSectionItem *playbackInFeedsGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"PLAYBACK_IN_FEEDS")
accessibilityIdentifier:nil
detailTextBlock:^NSString *() {
// The specific values were gathered by checking the value for each setting
switch (GetInteger(@"inline_muted_playback_enabled")) {
case 3:
return LOC(@"PLAYBACK_IN_FEEDS_WIFI_ONLY");
case 1:
return LOC(@"PLAYBACK_IN_FEEDS_OFF");
case 2:
default:
return LOC(@"PLAYBACK_IN_FEEDS_ALWAYS_ON");
}
}
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"PLAYBACK_IN_FEEDS_OFF") selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"inline_muted_playback_enabled"];
[settingsViewController reloadData];
return YES;
}],
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"PLAYBACK_IN_FEEDS_ALWAYS_ON") selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:2 forKey:@"inline_muted_playback_enabled"];
[settingsViewController reloadData];
return YES;
}],
[YTSettingsSectionItemClass checkmarkItemWithTitle:LOC(@"PLAYBACK_IN_FEEDS_WIFI_ONLY") selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:3 forKey:@"inline_muted_playback_enabled"];
[settingsViewController reloadData];
return YES;
}],
];
// It seems values greater than 3 act the same as Always On (Index 1)
// Convert the stored value to an index for a picker (0 to 2)
NSInteger (^getInlineSelection)(void) = ^NSInteger(void) {
NSInteger selection = GetInteger(@"inline_muted_playback_enabled") - 1;
// Check if selection is within the valid bounds [0, 1, 2]
if (selection < 0 || selection > 2) {
return 1;
}
return selection;
};
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"PLAYBACK_IN_FEEDS") pickerSectionTitle:nil rows:rows selectedItemIndex:getInlineSelection() parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
return YES;
}
];
# pragma mark - Miscellaneous
YTSettingsSectionItem *miscellaneousGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"MISCELLANEOUS") accessibilityIdentifier:nil detailTextBlock:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray <YTSettingsSectionItem *> *rows = @[
playbackInFeedsGroup,
// BASIC_SWITCH(LOC(@"NEW_SETTINGS_UI"), LOC(@"NEW_SETTINGS_UI_DESC"), @"newSettingsUI_enabled"), // disabled because YTLite is probably forcing it to NO
BASIC_SWITCH(LOC(@"ENABLE_YT_STARTUP_ANIMATION"), LOC(@"ENABLE_YT_STARTUP_ANIMATION_DESC"), @"ytStartupAnimation_enabled"),
BASIC_SWITCH(LOC(@"HIDE_MODERN_INTERFACE"), LOC(@"HIDE_MODERN_INTERFACE_DESC"), @"ytNoModernUI_enabled"),
BASIC_SWITCH(LOC(@"IPAD_LAYOUT"), LOC(@"IPAD_LAYOUT_DESC"), @"iPadLayout_enabled"),
BASIC_SWITCH(LOC(@"IPHONE_LAYOUT"), LOC(@"IPHONE_LAYOUT_DESC"), @"iPhoneLayout_enabled"),
BASIC_SWITCH(LOC(@"CAST_CONFIRM"), LOC(@"CAST_CONFIRM_DESC"), @"castConfirm_enabled"),
BASIC_SWITCH(LOC(@"NEW_MINIPLAYER_STYLE"), LOC(@"NEW_MINIPLAYER_STYLE_DESC"), @"bigYTMiniPlayer_enabled"),
BASIC_SWITCH(LOC(@"HIDE_CAST_BUTTON"), LOC(@"HIDE_CAST_BUTTON_DESC"), @"hideCastButton_enabled"),
BASIC_SWITCH(LOC(@"VIDEO_PLAYER_BUTTON"), LOC(@"VIDEO_PLAYER_BUTTON_DESC"), @"videoPlayerButton_enabled"),
BASIC_SWITCH(LOC(@"HIDE_HOME_TAB"), LOC(@"HIDE_HOME_TAB_DESC"), @"hideHomeTab_enabled"),
BASIC_SWITCH(LOC(@"FIX_CASTING"), LOC(@"FIX_CASTING_DESC"), @"fixCasting_enabled"),
BASIC_SWITCH(LOC(@"REPLACE_COPY_AND_PASTE_BUTTONS"), LOC(@"REPLACE_COPY_AND_PASTE_BUTTONS_DESC"), @"switchCopyandPasteFunctionality_enabled"),
BASIC_SWITCH(LOC(@"ENABLE_FLEX"), LOC(@"ENABLE_FLEX_DESC"), @"flex_enabled"),
BASIC_SWITCH(LOC(@"APP_VERSION_SPOOFER_LITE"), LOC(@"APP_VERSION_SPOOFER_LITE_DESC"), @"enableVersionSpoofer_enabled"),
versionSpooferSection
];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"MISCELLANEOUS") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
return YES;
}];
[sectionItems addObject:miscellaneousGroup];
if ([settingsViewController respondsToSelector:@selector(setSectionItems:forCategory:title:icon:titleDescription:headerHidden:)])
[settingsViewController setSectionItems:sectionItems forCategory:YTLitePlusSection title:@"YTLitePlus" icon:nil titleDescription:LOC(@"TITLE DESCRIPTION") headerHidden:YES];
else
[settingsViewController setSectionItems:sectionItems forCategory:YTLitePlusSection title:@"YTLitePlus" titleDescription:LOC(@"TITLE DESCRIPTION") headerHidden:YES];}
- (void)updateSectionForCategory:(NSUInteger)category withEntry:(id)entry {
if (category == YTLitePlusSection) {
[self updateYTLitePlusSectionWithEntry:entry];
return;
}
%orig;
}
// Implement the delegate method for document picker
%new
- (void)documentPicker:(UIDocumentPickerViewController *)controller didPickDocumentsAtURLs:(NSArray<NSURL *> *)urls {
if (urls.count > 0) {
NSURL *pickedURL = [urls firstObject];
NSError *error;
// Check which mode the document picker is in
if (controller.documentPickerMode == UIDocumentPickerModeImport) {
// Import mode: Handle the import of settings from a text file
NSString *fileType = [pickedURL resourceValuesForKeys:@[NSURLTypeIdentifierKey] error:&error][NSURLTypeIdentifierKey];
UTType *utType = [UTType typeWithIdentifier:fileType];
if ([utType conformsToType:UTTypePlainText]) {
NSString *fileContents = [NSString stringWithContentsOfURL:pickedURL encoding:NSUTF8StringEncoding error:nil];
NSArray *lines = [fileContents componentsSeparatedByString:@"\n"];
for (NSString *line in lines) {
NSArray *components = [line componentsSeparatedByString:@": "];
if (components.count == 2) {
NSString *key = components[0];
NSString *value = components[1];
[[NSUserDefaults standardUserDefaults] setObject:value forKey:key];
}
}
// Reload settings view after importing
YTSettingsViewController *settingsViewController = [self valueForKey:@"_settingsViewControllerDelegate"];
[settingsViewController reloadData];
// Show a confirmation message or perform some other action here
[[%c(GOOHUDManagerInternal) sharedInstance] showMessageMainThread:[%c(YTHUDMessage) messageWithText:@"Settings applied"]];
// Show a reminder to import YouTube Plus settings as well
UIAlertController *reminderAlert = [UIAlertController alertControllerWithTitle:@"Reminder"
message:@"Remember to import your YouTube Plus settings as well"
preferredStyle:UIAlertControllerStyleAlert];
[reminderAlert addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:nil]];
[settingsViewController presentViewController:reminderAlert animated:YES completion:nil];
}
} else if (controller.documentPickerMode == UIDocumentPickerModeExportToService || controller.documentPickerMode == UIDocumentPickerModeMoveToService) {
[[%c(GOOHUDManagerInternal) sharedInstance] showMessageMainThread:[%c(YTHUDMessage) messageWithText:@"Settings saved"]];
// Export mode: Display a reminder to save YouTube Plus settings
UIAlertController *exportAlert = [UIAlertController alertControllerWithTitle:@"Export Settings"
message:@"Note: This feature cannot save most YouTube settings.\n\nWould you like to also export your YouTube Plus Settings?"
preferredStyle:UIAlertControllerStyleAlert];
[exportAlert addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:nil]];
[exportAlert addAction:[UIAlertAction actionWithTitle:@"Export" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
// Export YouTube Plus Settings functionality
[%c(YTLUserDefaults) exportYtlSettings];
}]];
YTSettingsViewController *settingsViewController = [self valueForKey:@"_settingsViewControllerDelegate"];
// Present the alert from the root view controller
[settingsViewController presentViewController:exportAlert animated:YES completion:nil];
}
}
}
%end

View file

@ -1,52 +0,0 @@
#import "../YTLitePlus.h"
// Keys for "Copy Settings" button (for: YTLitePlus)
// In alphabetical order for tweaks after YTLitePlus
NSArray *NSUserDefaultsCopyKeys = @[
// YTLitePlus - gathered using get_keys.py
@"YTTapToSeek_enabled", @"alwaysShowRemainingTime_enabled", @"bigYTMiniPlayer_enabled", @"castConfirm_enabled",
@"disableAccountSection_enabled", @"disableAmbientModeFullscreen_enabled",
@"disableAmbientModePortrait_enabled", @"disableAutoplaySection_enabled", @"disableCollapseButton_enabled",
@"disableEngagementOverlay_enabled", @"disableLiveChatSection_enabled",
@"disableManageAllHistorySection_enabled", @"disableNotificationsSection_enabled",
@"disablePrivacySection_enabled", @"disablePullToFull_enabled", @"disableRemainingTime_enabled",
@"disableTryNewFeaturesSection_enabled", @"disableVideoQualityPreferencesSection_enabled",
@"disableYourDataInYouTubeSection_enabled", @"enableSaveToButton_enabled", @"enableShareButton_enabled",
@"enableVersionSpoofer_enabled", @"fixCasting_enabled", @"flex_enabled", @"fullscreenToTheRight_enabled",
@"hideAutoplayMiniPreview_enabled", @"hideCastButton_enabled", @"hideHUD_enabled", @"hideHeatwaves_enabled",
@"hideHomeTab_enabled", @"hidePreviewCommentSection_enabled", @"hideRightPanel_enabled",
@"hideSpeedToast_enabled", @"hideVideoPlayerShadowOverlayButtons_enabled",
@"iPadLayout_enabled", @"iPhoneLayout_enabled", @"inline_muted_playback_enabled", @"lowContrastMode_enabled",
@"newSettingsUI_enabled", @"oledKeyBoard_enabled", @"playerGesturesHapticFeedback_enabled",
@"playerGestures_enabled", @"seekAnywhere_enabled", @"switchCopyandPasteFunctionality_enabled",
@"videoPlayerButton_enabled", @"ytNoModernUI_enabled", @"ytStartupAnimation_enabled",
// DEMC - https://github.com/therealFoxster/DontEatMyContent/blob/master/Tweak.h
@"DEMC_enabled", @"DEMC_colorViewsEnabled", @"DEMC_safeAreaConstant", @"DEMC_disableAmbientMode",
@"DEMC_limitZoomToFill", @"DEMC_enableForAllVideos",
// iSponsorBlock has been removed in v5 - YTLite has built-in SponsorBlock
// Return-YouTube-Dislike - https://github.com/PoomSmart/Return-YouTube-Dislikes/blob/main/TweakSettings.h
@"RYD-ENABLED", @"RYD-VOTE-SUBMISSION", @"RYD-EXACT-LIKE-NUMBER", @"RYD-EXACT-NUMBER",
// YTVideoOverlay Tweaks - https://github.com/PoomSmart/YTVideoOverlay/blob/0fc6d29d1aa9e75f8c13d675daec9365f753d45e/Tweak.x#L28C1-L41C84
@"YTVideoOverlay-YouTimeStamp-Enabled", @"YTVideoOverlay-YouTimeStamp-Position",
// YouPiP - https://github.com/PoomSmart/YouPiP/blob/main/Header.h
@"YouPiPPosition", @"CompatibilityModeKey", @"PiPActivationMethodKey", @"PiPActivationMethod2Key",
@"NoMiniPlayerPiPKey", @"NonBackgroundableKey",
// YTABConfig cannot be reasonably exported using this method
// YouTube Plus / YTLite cannot be exported using this method
// YTUHD - https://github.com/PoomSmart/YTUHD/blob/master/Header.h
@"EnableVP9", @"AllVP9",
// Useful YouTube Keys
@"inline_muted_playback_enabled",
];
// Some default values to ignore when exporting settings
NSDictionary *NSUserDefaultsCopyKeysDefaults = @{
@"fixCasting_enabled": @1,
@"inline_muted_playback_enabled": @5,
@"newSettingsUI_enabled": @1,
@"DEMC_safeAreaConstant": @21.5,
@"RYD-ENABLED": @1,
@"RYD-VOTE-SUBMISSION": @1,
// Duplicate keys are not allowed in NSDictionary. If present, only the last one will be kept.
};

View file

@ -1,822 +0,0 @@
#import "../YTLitePlus.h"
static BOOL isDarkMode() {
return ([[NSUserDefaults standardUserDefaults] integerForKey:@"page_style"] == 1);
}
static BOOL oldDarkTheme() {
return ([[NSUserDefaults standardUserDefaults] integerForKey:@"appTheme"] == 1);
}
// Themes.xm - Theme Options
// Old dark theme (gray)
%group gOldDarkTheme
UIColor *customColor = [UIColor colorWithRed:0.129 green:0.129 blue:0.129 alpha:1.0];
%hook YTCommonColorPalette
- (UIColor *)background1 {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)background2 {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)background3 {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)brandBackgroundSolid {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)brandBackgroundPrimary {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)brandBackgroundSecondary {
return self.pageStyle == 1 ? [customColor colorWithAlphaComponent:0.9] : %orig;
}
- (UIColor *)raisedBackground {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)staticBrandBlack {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)generalBackgroundA {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)generalBackgroundB {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)baseBackground {
return self.pageStyle == 1 ? customColor : %orig;
}
- (UIColor *)menuBackground {
return self.pageStyle == 1 ? customColor : %orig;
}
%end
%hook YTAsyncCollectionView
- (void)setBackgroundColor:(UIColor *)color {
if ([self.nextResponder isKindOfClass:NSClassFromString(@"YTRelatedVideosCollectionViewController")]) {
color = [UIColor clearColor];
} else if ([self.nextResponder isKindOfClass:NSClassFromString(@"YTFullscreenMetadataHighlightsCollectionViewController")]) {
color = [UIColor clearColor];
} else {
return isDarkMode() ? %orig(customColor) : %orig;
}
%orig;
}
- (UIColor *)darkBackgroundColor {
return isDarkMode() ? customColor : %orig;
}
- (void)setDarkBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
- (void)layoutSubviews {
%orig();
if ([self.nextResponder isKindOfClass:NSClassFromString(@"YTWatchNextResultsViewController")]) {
if (isDarkMode()) {
self.subviews[0].subviews[0].backgroundColor = customColor;
}
}
}
%end
// Hide separators
%hook YTCollectionSeparatorView
- (void)setHidden:(BOOL)arg1 {
%orig(YES);
}
%end
%hook ASScrollView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTPivotBarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTSubheaderContainerView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTAppView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTCollectionView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTChannelListSubMenuView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTSettingsCell
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTSlideForActionsView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTPageView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTWatchView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTPlaylistMiniBarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTEngagementPanelView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTEngagementPanelHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTPlaylistPanelControlsView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTHorizontalCardListView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTWatchMiniBarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTCreateCommentAccessoryView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTCreateCommentTextView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTSearchView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTSearchBoxView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTTabTitlesView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTPrivacyTosFooterView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTOfflineStorageUsageView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTInlineSignInView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTFeedChannelFilterHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YCHLiveChatView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YCHLiveChatActionPanelView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTEmojiTextView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTTopAlignedView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
- (void)layoutSubviews {
%orig();
if (isDarkMode()) {
MSHookIvar<YTTopAlignedView *>(self, "_contentView").backgroundColor = customColor;
}
}
%end
%hook GOODialogView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTNavigationBar
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
- (void)setBarTintColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTChannelMobileHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTChannelSubMenuView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTWrapperSplitView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTReelShelfCell
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTReelShelfItemView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTReelShelfView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTCommentView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTChannelListSubMenuAvatarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTSearchBarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTDialogContainerScrollView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTShareTitleView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTShareBusyView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTELMView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTActionSheetHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig(customColor) : %orig;
}
%end
%hook YTShareMainView
- (void)layoutSubviews {
%orig();
if (isDarkMode()) {
MSHookIvar<YTQTMButton *>(self, "_cancelButton").backgroundColor = customColor;
MSHookIvar<UIControl *>(self, "_safeArea").backgroundColor = customColor;
}
}
%end
%hook _ASDisplayView
- (void)layoutSubviews {
%orig;
if (isDarkMode()) {
UIResponder *responder = [self nextResponder];
while (responder != nil) {
if ([responder isKindOfClass:NSClassFromString(@"YTActionSheetDialogViewController")]) {
self.backgroundColor = customColor;
}
if ([responder isKindOfClass:NSClassFromString(@"YTPanelLoadingStrategyViewController")]) {
self.backgroundColor = customColor;
}
if ([responder isKindOfClass:NSClassFromString(@"YTTabHeaderElementsViewController")]) {
self.backgroundColor = customColor;
}
if ([responder isKindOfClass:NSClassFromString(@"YTEditSheetControllerElementsContentViewController")]) {
self.backgroundColor = customColor;
}
responder = [responder nextResponder];
}
}
}
- (void)didMoveToWindow {
%orig;
if (isDarkMode()) {
if ([self.nextResponder isKindOfClass:%c(ASScrollView)]) { self.backgroundColor = [UIColor clearColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"eml.cvr"]) { self.backgroundColor = customColor; }
if ([self.accessibilityIdentifier isEqualToString:@"rich_header"]) { self.backgroundColor = customColor; }
if ([self.accessibilityIdentifier isEqualToString:@"id.ui.comment_cell"]) { self.backgroundColor = customColor; }
if ([self.accessibilityIdentifier isEqualToString:@"id.ui.cancel.button"]) { self.superview.backgroundColor = [UIColor clearColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.backgroundColor = customColor; }
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.filter_chip_bar"]) { self.backgroundColor = customColor; }
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.backgroundColor = customColor; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.guidelines_text"]) { self.superview.backgroundColor = customColor; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_bottom_sheet_container"]) { self.backgroundColor = customColor; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_entry_banner_container"]) { self.backgroundColor = customColor; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.comment_group_detail_container"]) { self.backgroundColor = [UIColor clearColor]; }
}
}
%end
%hook YTCinematicContainerView
- (void)setHidden:(BOOL)arg1 {
%orig(YES);
}
%end
%end
// OLED dark mode by @BandarHL and modified by @arichorn
/*
%group gOLED
%hook YTCommonColorPalette
- (UIColor *)background1 {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)background2 {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)background3 {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)brandBackgroundSolid {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)brandBackgroundPrimary {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)brandBackgroundSecondary {
return self.pageStyle == 1 ? [[UIColor blackColor] colorWithAlphaComponent:0.9] : %orig;
}
- (UIColor *)raisedBackground {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)staticBrandBlack {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)generalBackgroundA {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)generalBackgroundB {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)baseBackground {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
- (UIColor *)menuBackground {
return self.pageStyle == 1 ? [UIColor blackColor] : %orig;
}
%end
%hook SponsorBlockSettingsController
- (void)viewDidLoad {
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
%orig;
self.tableView.backgroundColor = [UIColor blackColor];
} else { return %orig; }
}
%end
%hook SponsorBlockViewController
- (void)viewDidLoad {
if (self.traitCollection.userInterfaceStyle == UIUserInterfaceStyleDark) {
%orig;
self.view.backgroundColor = [UIColor blackColor];
} else { return %orig; }
}
%end
%hook YTAsyncCollectionView
- (void)setBackgroundColor:(UIColor *)color {
if ([self.nextResponder isKindOfClass:NSClassFromString(@"YTRelatedVideosCollectionViewController")]) {
color = [UIColor clearColor];
} else if ([self.nextResponder isKindOfClass:NSClassFromString(@"YTFullscreenMetadataHighlightsCollectionViewController")]) {
color = [UIColor clearColor];
} else {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%orig;
}
- (UIColor *)darkBackgroundColor {
return isDarkMode() ? [UIColor blackColor] : %orig;
}
- (void)setDarkBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
- (void)layoutSubviews {
%orig();
if ([self.nextResponder isKindOfClass:NSClassFromString(@"YTWatchNextResultsViewController")]) {
if (isDarkMode()) {
self.subviews[0].subviews[0].backgroundColor = [UIColor blackColor];
}
}
}
%end
// Hide separators
%hook YTCollectionSeparatorView
- (void)setHidden:(BOOL)arg1 {
%orig(YES);
}
%end
%hook YTPivotBarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook ASScrollView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTSubheaderContainerView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTAppView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTCollectionView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTChannelListSubMenuView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTSettingsCell
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTSlideForActionsView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTPageView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTWatchView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTPlaylistMiniBarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTEngagementPanelView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTEngagementPanelHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTPlaylistPanelControlsView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTHorizontalCardListView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTWatchMiniBarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTCreateCommentAccessoryView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTCreateCommentTextView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTSearchView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTSearchBoxView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTTabTitlesView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTPrivacyTosFooterView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTOfflineStorageUsageView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTInlineSignInView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTFeedChannelFilterHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YCHLiveChatView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YCHLiveChatActionPanelView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTEmojiTextView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTTopAlignedView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
- (void)layoutSubviews {
%orig();
if (isDarkMode()) {
MSHookIvar<YTTopAlignedView *>(self, "_contentView").backgroundColor = [UIColor blackColor];
}
}
%end
%hook GOODialogView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTNavigationBar
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
- (void)setBarTintColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTChannelMobileHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTChannelSubMenuView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTWrapperSplitView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTReelShelfCell
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTReelShelfItemView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTReelShelfView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTCommentView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTChannelListSubMenuAvatarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTSearchBarView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTDialogContainerScrollView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTShareTitleView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTShareBusyView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTELMView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTActionSheetHeaderView
- (void)setBackgroundColor:(UIColor *)color {
return isDarkMode() ? %orig([UIColor blackColor]) : %orig;
}
%end
%hook YTShareMainView
- (void)layoutSubviews {
%orig();
if (isDarkMode()) {
MSHookIvar<YTQTMButton *>(self, "_cancelButton").backgroundColor = [UIColor blackColor];
MSHookIvar<UIControl *>(self, "_safeArea").backgroundColor = [UIColor blackColor];
}
}
%end
%hook _ASDisplayView
- (void)layoutSubviews {
%orig;
if (isDarkMode()) {
UIResponder *responder = [self nextResponder];
while (responder != nil) {
if ([responder isKindOfClass:NSClassFromString(@"YTActionSheetDialogViewController")]) {
self.backgroundColor = [UIColor blackColor];
}
if ([responder isKindOfClass:NSClassFromString(@"YTPanelLoadingStrategyViewController")]) {
self.backgroundColor = [UIColor blackColor];
}
if ([responder isKindOfClass:NSClassFromString(@"YTTabHeaderElementsViewController")]) {
self.backgroundColor = [UIColor blackColor];
}
if ([responder isKindOfClass:NSClassFromString(@"YTEditSheetControllerElementsContentViewController")]) {
self.backgroundColor = [UIColor blackColor];
}
responder = [responder nextResponder];
}
}
}
- (void)didMoveToWindow {
%orig;
if (isDarkMode()) {
if ([self.nextResponder isKindOfClass:%c(ASScrollView)]) { self.backgroundColor = [UIColor clearColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"eml.cvr"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"rich_header"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.ui.comment_cell"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.ui.cancel.button"]) { self.superview.backgroundColor = [UIColor clearColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.comment_composer"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.filter_chip_bar"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.elements.components.video_list_entry"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.guidelines_text"]) { self.superview.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_bottom_sheet_container"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.channel_guidelines_entry_banner_container"]) { self.backgroundColor = [UIColor blackColor]; }
if ([self.accessibilityIdentifier isEqualToString:@"id.comment.comment_group_detail_container"]) { self.backgroundColor = [UIColor clearColor]; }
}
}
%end
%hook YTCinematicContainerView
- (void)setHidden:(BOOL)arg1 {
%orig(YES);
}
%end
%end
*/
// OLED keyboard by @ichitaso <3 - http://gist.github.com/ichitaso/935100fd53a26f18a9060f7195a1be0e
%group gOLEDKB
%hook TUIEmojiSearchView
- (void)didMoveToWindow {
%orig;
self.backgroundColor = [UIColor blackColor];
}
%end
%hook UIPredictionViewController
- (void)loadView {
%orig;
[self.view setBackgroundColor:[UIColor blackColor]];
}
%end
%hook UICandidateViewController
- (void)loadView {
%orig;
[self.view setBackgroundColor:[UIColor blackColor]];
}
%end
%hook UIKeyboardDockView
- (void)didMoveToWindow {
%orig;
self.backgroundColor = [UIColor blackColor];
}
%end
%hook UIKeyboardLayoutStar
- (void)didMoveToWindow {
%orig;
self.backgroundColor = [UIColor blackColor];
}
%end
%hook UIKBRenderConfig // Prediction text color
- (void)setLightKeyboard:(BOOL)arg1 { %orig(NO); }
%end
%end
# pragma mark - ctor
%ctor {
%init;
if (IsEnabled(@"oledKeyBoard_enabled")) {
%init(gOLEDKB);
}
if (oldDarkTheme()) {
%init(gOldDarkTheme);
}
}

View file

@ -1,49 +0,0 @@
#import "../YTLitePlus.h"
typedef struct {
int version;
NSString *appVersion;
} VersionMapping;
static VersionMapping versionMappings[] = {
{0, @"19.49.7"}, // Last v19 App Version
{1, @"19.28.1"}, // New 2024 Thin Outline Icons
{2, @"19.26.5"}, // Restore 2020's Thin Outline Icons
{3, @"18.49.3"}, // Last v18 App Version
{4, @"18.35.4"}, // Oldest Supported App Version (v18) - this is a replacement of v17.33.2.
{5, @"18.34.5"}, // Brings back Library Tab - Deprecated/Unsupported
{6, @"18.33.3"}, // Removes Playables in Explore - Deprecated/Unsupported
{7, @"18.18.2"}, // Fixes YTClassicVideoQuality + YTSpeed - Deprecated/Unsupported
{8, @"18.01.2"}, // First v18 App Version - Deprecated/Unsupported
{9, @"17.49.6"}, // Last v17 App Version - Deprecated/Unsupported
{10, @"17.38.10"}, // Fixes LowContrastMode + No Rounded Thumbnails - Deprecated/Unsupported
{11, @"17.33.2"} // Oldest Supported App Version (v17) - Deprecated/Unsupported
};
static int appVersionSpoofer() {
return [[NSUserDefaults standardUserDefaults] integerForKey:@"versionSpoofer"];
}
static BOOL isVersionSpooferEnabled() {
return IS_ENABLED(@"enableVersionSpoofer_enabled");
}
static NSString* getAppVersionForSpoofedVersion(int spoofedVersion) {
for (int i = 0; i < sizeof(versionMappings) / sizeof(versionMappings[0]); i++) {
if (versionMappings[i].version == spoofedVersion) {
return versionMappings[i].appVersion;
}
}
return nil;
}
%hook YTVersionUtils
+ (NSString *)appVersion {
if (!isVersionSpooferEnabled()) {
return %orig;
}
int spoofedVersion = appVersionSpoofer();
NSString *appVersion = getAppVersionForSpoofedVersion(spoofedVersion);
return appVersion ? appVersion : %orig;
}
%end

View file

@ -1,100 +0,0 @@
import re
import os
def extract_values_from_file(file_path):
"""
Extracts keys that match the pattern @\"<some_text>_enabled\" from the given file.
Args:
file_path (str): The path to the file to be searched.
Returns:
list: A list of matching keys found in the file.
"""
# Define the regex pattern to match the strings that resemble the given examples
pattern = r'@\"[a-zA-Z0-9_]+_enabled\"'
matches = []
try:
# Read the content of the file
with open(file_path, 'r') as file:
file_content = file.read()
# Find all matches
matches = re.findall(pattern, file_content)
except Exception as e:
print(f"Error reading {file_path}: {e}")
return matches
def format_output(keys):
"""
Formats the keys with indentation and line breaks if the segment exceeds 120 characters (116 excluding indentation).
Args:
keys (list): The list of keys to be formatted.
Returns:
str: A formatted string with the keys.
"""
indent = " " * 4
line_length_limit = 116 # Limit excluding indentation
current_line = indent
formatted_output = ""
for key in keys:
# Check if adding the next key would exceed the line length limit
if len(current_line) + len(key) + 2 > line_length_limit: # +2 accounts for the comma and space
# Add the current line to the formatted output and start a new line
formatted_output += current_line.rstrip(", ") + ",\n"
current_line = indent # Start a new indented line
# Add the key to the current line
current_line += key + ", "
# Add the last line to the output
formatted_output += current_line.rstrip(", ") # Remove trailing comma and space from the final line
return formatted_output
def find_and_extract_keys():
"""
Recursively searches for .xm and .h files in the parent directory and extracts keys
that match the pattern @\"<some_text>_enabled\". The matching keys are then printed
with indentation and line breaks if the line exceeds 120 characters.
Ignores SettingsKeys.h
Usage:
1. Place this script in the desired directory.
2. Run the script with the command: python extract_keys.py
3. The script will search for all .xm and .h files in the parent directory and
print any matching keys it finds.
Note:
- The script searches the directory where it is located (the parent directory).
- It only looks for files with extensions .xm and .h.
"""
# Get the parent directory
parent_directory = os.path.dirname(os.path.abspath(__file__))
# Store the found keys
found_keys = set() # Use a set to automatically remove duplicates
# Walk through the parent directory and find all .xm and .h files
for root, dirs, files in os.walk(parent_directory):
for file in files:
if file.endswith(('.xm', '.h')):
# Skip SettingsKeys.h
if file == "SettingsKeys.h":
continue
file_path = os.path.join(root, file)
found_keys.update(extract_values_from_file(file_path))
# Print the found keys with formatting
if found_keys:
sorted_keys = sorted(found_keys)
print(format_output(sorted_keys))
else:
print("No keys found.")
if __name__ == "__main__":
find_and_extract_keys()

@ -1 +0,0 @@
Subproject commit 92cfde8ee6e76fa28378c644b9be81a5dcf233b0

@ -1 +0,0 @@
Subproject commit 59c51ce08616c30c2ad8142b0b26477003345003

@ -1 +0,0 @@
Subproject commit ca36211b75bc2f1af4db5bdc8524b54861a1ab2c

@ -1 +0,0 @@
Subproject commit 1bb7d9c7d1bc40a57f83e1e58aa53bcf4acdcbfa

@ -1 +0,0 @@
Subproject commit f91348d30e82cd5c728401c12c5c2375c160b3bc

@ -1 +0,0 @@
Subproject commit 6cd5adc700cd79de80f7b02d0d14f1e5a7ea64aa

@ -1 +0,0 @@
Subproject commit 655ad036525a3976fc45cac55fce5820931b8b1e

View file

@ -1 +0,0 @@

@ -1 +0,0 @@
Subproject commit 4bac4a50a640a6792b41cf053d4df6c94dc8550a

@ -1 +0,0 @@
Subproject commit f428a716021fd3e389e0ada5f05b3f215e079e24

@ -1 +0,0 @@
Subproject commit 852a58dc2c53d1426557b25ac0ca53570338248b

@ -1 +0,0 @@
Subproject commit 49ece8b0fac8465ee4fd8bf0b54790106e50cb88

@ -1 +0,0 @@
Subproject commit 2d03eb904e7e6e60cbc56718710b494b7400043e

@ -1 +0,0 @@
Subproject commit ec9473cd9008d180f939b5f7df1cfbabf38386f3

@ -1 +0,0 @@
Subproject commit 2977072f72d65d03a5155d5f8567b370331eafe3

View file

@ -1,309 +0,0 @@
#import <UIKit/UIKit.h>
#import <Foundation/Foundation.h>
#import <CaptainHook/CaptainHook.h>
#import <objc/runtime.h>
#import <dlfcn.h>
#import <sys/utsname.h>
#import <substrate.h>
#import <rootless.h>
#import <MediaPlayer/MediaPlayer.h>
#import <AVFoundation/AVFoundation.h>
#import <AVKit/AVKit.h> // For AVPlayer and AVPlayerViewController
#import <MobileCoreServices/MobileCoreServices.h> // For kUTTypeMovie and kUTTypeVideo
#import <UniformTypeIdentifiers/UniformTypeIdentifiers.h>
#import "Tweaks/YouTubeHeader/YTAppDelegate.h"
#import "Tweaks/YouTubeHeader/YTPlayerViewController.h"
#import "Tweaks/YouTubeHeader/YTQTMButton.h"
#import "Tweaks/YouTubeHeader/YTVideoQualitySwitchOriginalController.h"
#import "Tweaks/YouTubeHeader/YTPlayerViewController.h"
#import "Tweaks/YouTubeHeader/YTWatchController.h"
#import "Tweaks/YouTubeHeader/YTIGuideResponse.h"
#import "Tweaks/YouTubeHeader/YTIGuideResponseSupportedRenderers.h"
#import "Tweaks/YouTubeHeader/YTIPivotBarSupportedRenderers.h"
#import "Tweaks/YouTubeHeader/YTIPivotBarRenderer.h"
#import "Tweaks/YouTubeHeader/YTIBrowseRequest.h"
#import "Tweaks/YouTubeHeader/YTCommonColorPalette.h"
#import "Tweaks/YouTubeHeader/YTSettingsSectionItemManager.h"
#import "Tweaks/YouTubeHeader/ASCollectionView.h"
#import "Tweaks/YouTubeHeader/YTPlayerOverlay.h"
#import "Tweaks/YouTubeHeader/YTPlayerOverlayProvider.h"
#import "Tweaks/YouTubeHeader/YTReelWatchPlaybackOverlayView.h"
#import "Tweaks/YouTubeHeader/YTReelPlayerBottomButton.h"
#import "Tweaks/YouTubeHeader/YTReelPlayerViewController.h"
#import "Tweaks/YouTubeHeader/YTAlertView.h"
#import "Tweaks/YouTubeHeader/YTISectionListRenderer.h"
#import "Tweaks/YouTubeHeader/YTPivotBarItemView.h"
#import "Tweaks/YouTubeHeader/YTVideoWithContextNode.h"
#import "Tweaks/YouTubeHeader/ELMCellNode.h"
#import "Tweaks/YouTubeHeader/ELMNodeController.h"
#import "Tweaks/YouTubeHeader/YTMainAppVideoPlayerOverlayViewController.h"
#import "Tweaks/YouTubeHeader/YTInlinePlayerBarContainerView.h"
#import "Tweaks/YouTubeHeader/YTWatchViewController.h"
#import "Tweaks/YouTubeHeader/YTWatchPullToFullController.h"
#import "Tweaks/YouTubeHeader/YTPlayerBarController.h"
#import "Tweaks/YouTubeHeader/YTResponder.h"
#import "Tweaks/YouTubeHeader/YTMainAppControlsOverlayView.h"
#import "Tweaks/YouTubeHeader/YTMultiSizeViewController.h"
#import "Tweaks/YouTubeHeader/YTWatchLayerViewController.h"
#import "Tweaks/YouTubeHeader/YTPageStyleController.h"
#import "Tweaks/YouTubeHeader/YTRightNavigationButtons.h"
#import "Tweaks/YouTubeHeader/YTInlinePlayerBarView.h"
#define LOC(x) [tweakBundle localizedStringForKey:x value:nil table:nil]
#define YT_BUNDLE_ID @"com.google.ios.youtube"
#define YT_NAME @"YouTube"
#define LOWCONTRASTMODE_CUTOFF_VERSION @"17.38.10"
#define IS_ENABLED(k) [[NSUserDefaults standardUserDefaults] boolForKey:k]
#define APP_THEME_IDX [[NSUserDefaults standardUserDefaults] integerForKey:@"appTheme"]
// Avoid issues with multiple includes of this file
#pragma once
// Helper methods for key retrieval
#define IsEnabled(key) [[NSUserDefaults standardUserDefaults] boolForKey:key]
#define GetInteger(key) [[NSUserDefaults standardUserDefaults] integerForKey:key] // NSInteger type
#define GetFloat(key) [[NSUserDefaults standardUserDefaults] floatForKey:key] // float type
// Player Gesture selected mode enum
typedef NS_ENUM(NSUInteger, GestureMode) {
GestureModeVolume,
GestureModeBrightness,
GestureModeSeek,
GestureModeDisabled
};
// Gesture Section Enum
typedef NS_ENUM(NSUInteger, GestureSection) {
GestureSectionTop,
GestureSectionMiddle,
GestureSectionBottom,
GestureSectionInvalid
};
// YTSpeed
@interface YTVarispeedSwitchControllerOption : NSObject
- (id)initWithTitle:(id)title rate:(float)rate;
@end
@interface MLHAMQueuePlayer : NSObject
@property id playerEventCenter;
@property id delegate;
- (void)setRate:(float)rate;
- (void)internalSetRate;
@end
@interface HAMPlayerInternal : NSObject
- (void)setRate:(float)rate;
@end
@interface SSOConfiguration : NSObject
@end
// YTLitePlus
@interface YTChipCloudCell : UIView
@end
@interface YTPlayabilityResolutionUserActionUIController : NSObject // Skips content warning before playing *some videos - @PoomSmart
- (void)confirmAlertDidPressConfirm;
@end
@interface YTTransportControlsButtonView : UIView
@end
@interface _ASCollectionViewCell : UICollectionViewCell
- (id)node;
@end
@interface YTAsyncCollectionView : UICollectionView
- (void)removeShortsAndFeaturesAdsAtIndexPath:(NSIndexPath *)indexPath;
@end
@interface YTPlaybackButton : UIControl
@end
@interface YTSegmentableInlinePlayerBarView
@property (nonatomic, assign, readwrite) BOOL enableSnapToChapter;
@end
// HelperVC - @bhackel
@interface HelperVC : UIViewController
@end
// Hide Autoplay Mini Preview - @bhackel
@interface YTAutonavPreviewView : UIView
@end
// OLED Live Chat - @bhackel
@interface YTLUserDefaults : NSUserDefaults
+ (void)exportYtlSettings;
@end
// Hide Home Tab - @bhackel
@interface YTPivotBarViewController : UIViewController
@property NSString *selectedPivotIdentifier;
@property YTIPivotBarRenderer *renderer;
- (void)selectItemWithPivotIdentifier:(NSString *)pivotIdentifier;
- (void)resetViewControllersCache;
@end
// Disable ambient mode & Fullscreen to the Right - @bhackel
@interface YTWatchViewController (YTLitePlus) <YTResponder>
@property (nonatomic, assign, readwrite, getter=isFullscreen) BOOL fullscreen;
@end
@interface YTWatchCinematicContainerController : NSObject
@property id <YTResponder> parentResponder;
@end
// Player Gestures - @bhackel
@interface YTFineScrubberFilmstripView : UIView
@end
@interface YTFineScrubberFilmstripCollectionView : UICollectionView
@end
@interface YTPlayerViewController (YTLitePlus) <UIGestureRecognizerDelegate>
@property (nonatomic, retain) UIPanGestureRecognizer *YTLitePlusPanGesture;
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer;
@end
@interface YTWatchFullscreenViewController : YTMultiSizeViewController
@end
@interface MPVolumeController : NSObject
@property (nonatomic, assign, readwrite) float volumeValue;
@end
@interface YTPlayerBarController (YTLitePlus)
- (void)didScrub:(UIPanGestureRecognizer *)gestureRecognizer;
- (void)startScrubbing;
- (void)didScrubToPoint:(CGPoint)point;
- (void)endScrubbingForSeekSource:(int)seekSource;
@end
@interface YTMainAppVideoPlayerOverlayViewController (YTLitePlus)
@property (nonatomic, strong, readwrite) YTPlayerBarController *playerBarController;
@end
@interface YTInlinePlayerBarContainerView (YTLitePlus)
@property UIPanGestureRecognizer *scrubGestureRecognizer;
@property (nonatomic, strong, readwrite) YTFineScrubberFilmstripView *fineScrubberFilmstrip;
- (CGFloat)scrubXForScrubRange:(CGFloat)scrubRange;
@end
// Hide Collapse Button - @arichornlover
@interface YTMainAppControlsOverlayView (YTLitePlus)
@property (nonatomic, assign, readwrite) YTQTMButton *watchCollapseButton;
@end
// SponsorBlock button in Nav bar - removed (now built into YTLite v5.x)
@interface MDCButton : UIButton
@end
@interface YTRightNavigationButtons (YTLitePlus)
@property YTQTMButton *notificationButton;
@property YTQTMButton *videoPlayerButton;
@end
// BigYTMiniPlayer
@interface YTMainAppVideoPlayerOverlayView (YTLitePlus)
- (UIViewController *)_viewControllerForAncestor;
@end
@interface YTWatchMiniBarView : UIView
@end
// YTAutoFullscreen
@interface YTPlayerViewController (YTAFS)
- (void)autoFullscreen;
@end
// App Theme
@interface YTColor : NSObject
+ (UIColor *)white1;
+ (UIColor *)white2;
+ (UIColor *)white3;
+ (UIColor *)white4;
+ (UIColor *)white5;
+ (UIColor *)black0;
+ (UIColor *)black1;
+ (UIColor *)black2;
+ (UIColor *)black3;
+ (UIColor *)black4;
+ (UIColor *)blackPure;
+ (UIColor *)grey1;
+ (UIColor *)grey2;
+ (UIColor *)white1Alpha98;
+ (UIColor *)white1Alpha95;
@end
@interface YCHLiveChatView : UIView
@end
@interface YTFullscreenEngagementOverlayView : UIView
@end
@interface YTRelatedVideosView : UIView
@end
@interface YTTopAlignedView : UIView
@end
@interface ELMView : UIView
@end
@interface ASWAppSwitcherCollectionViewCell : UIView
@end
@interface ASScrollView : UIView
@end
@interface UIKeyboardLayoutStar : UIView
@end
@interface UIKeyboardDockView : UIView
@end
@interface _ASDisplayView : UIView
@end
@interface ELMContainerNode : NSObject
@end
@interface YTAutonavEndscreenView : UIView
@end
@interface YTPivotBarIndicatorView : UIView
@end
@interface YTCommentDetailHeaderCell : UIView
@end
@interface UICandidateViewController : UIViewController
@end
@interface UIPredictionViewController : UIViewController
@end
@interface TUIEmojiSearchView : UIView
@end
@interface FRPreferences : UITableViewController
@end
@interface FRPSelectListTable : UITableViewController
@end
@interface settingsReorderTable : UIViewController
@property(nonatomic, strong) UITableView *tableView;
@end
// Snack bar
@interface YTHUDMessage : NSObject
+ (id)messageWithText:(id)text;
- (void)setAction:(id)action;
@end
@interface GOOHUDMessageAction : NSObject
- (void)setTitle:(NSString *)title;
- (void)setHandler:(void (^)(id))handler;
@end
@interface GOOHUDManagerInternal : NSObject
- (void)showMessageMainThread:(id)message;
+ (id)sharedInstance;
@end

File diff suppressed because it is too large Load diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

View file

@ -1,193 +0,0 @@
// Settings
"VERSION" = "نسخة YTLitePlus: %@";
"VERSION_CHECK" = "انقر للتحقق من وجود تحديث";
"COPY_SETTINGS" = "Copy Settings";
"COPY_SETTINGS_DESC" = "Copy all current settings to the clipboard";
"PASTE_SETTINGS" = "Paste Settings";
"PASTE_SETTINGS_DESC" = "Paste settings from clipboard and apply";
"PASTE_SETTINGS_ALERT" = "Apply settings from clipboard?";
"EXPORT_SETTINGS" = "Export Settings";
"EXPORT_SETTINGS_DESC" = "Exports all current settings into a .txt file";
"IMPORT_SETTINGS" = "Import Settings";
"IMPORT_SETTINGS_DESC" = "Press to import settings (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Enable Haptic Feedback";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "خيارات تراكب ضوابط الفيديو";
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
"HIDE_RIGHT_PANEL" = "إخفاء اللوحة اليمنى في وضع ملء الشاشة";
"HIDE_RIGHT_PANEL_DESC" = "مطلوب إعادة تشغيل التطبيق";
"HIDE_HEATWAVES" = "إخفاء موجات الحر";
"HIDE_HEATWAVES_DESC" = "يخفي موجات الحر في مشغل الفيديو. مطلوب إعادة تشغيل التطبيق.";
"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title";
"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player";
"FULLSCREEN_TO_THE_RIGHT" = "Fullscreen to the Right";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Always enter fullscreen with home button on the right side.";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek";
"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos.";
"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time";
"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar.";
"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time.";
"DISABLE_ENGAGEMENT_OVERLAY" = "Disable fullscreen engagement overlay";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Disable the swipe-up gesture and suggested videos list in fullscreen";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Hide Comment previews under player";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Hide comment spoiler in comments button";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Hide autoplay mini preview";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Hide the small suggested video box near the title in fullscreen";
"HIDE_HUD_MESSAGES" = "إخفاء رسائل المعلومات";
"HIDE_HUD_MESSAGES_DESC" = "مثلاً: تم إيقاف الترجمة...";
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
"HIDE_ACCOUNT_SECTION" = "Hide \"Account\" Section";
"HIDE_AUTOPLAY_SECTION" = "Hide \"Autoplay\" Section";
"HIDE_TRYNEWFEATURES_SECTION" = "Hide \"Try New Features\" Section";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide \"Video quality preferences\" Section";
"HIDE_NOTIFICATIONS_SECTION" = "Hide \"Notifications\" Section";
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide \"Manage all history\" Section";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide \"Your data in YouTube\" Section";
"HIDE_PRIVACY_SECTION" = "Hide \"Privacy\" Section";
"HIDE_LIVECHAT_SECTION" = "Hide \"Live Chat\" Section";
// Theme
"THEME_OPTIONS" = "Theme Options";
"OLED_DARK_THEME" = "مظهر OLED الداكن (تجريبي)";
"OLED_DARK_THEME_2" = "موضوع OLED الداكن";
"OLED_DARK_THEME_DESC" = "مظهر مظلم حقيقي. قد لا يعمل بشكل صحيح في بعض الحالات. يلزم إعادة تشغيل التطبيق بعد تمكين / تعطيل هذا الخيار";
"OLD_DARK_THEME" = "مظهر مظلم قديم";
"OLD_DARK_THEME_DESC" = "مظهر YouTube القديم الداكن (مظهر رمادي). مطلوب إعادة تشغيل التطبيق";
"DEFAULT_THEME" = "تقصير";
"DEFAULT_THEME_DESC" = "المظهر الافتراضي الداكن (إيه) لموقع YouTube. مطلوب إعادة تشغيل التطبيق";
"OLED_KEYBOARD" = "لوحة مفاتيح OLED (تجريبية)";
"OLED_KEYBOARD_DESC" = "قد لا يعمل بشكل صحيح في بعض الحالات. مطلوب إعادة تشغيل التطبيق";
"LOW_CONTRAST_MODE" = "وضع التباين المنخفض";
"LOW_CONTRAST_MODE_DESC" = "سيؤدي ذلك إلى ظهور نصوص وأزرار منخفضة التباين تمامًا مثل واجهة YouTube القديمة. مطلوب إعادة تشغيل التطبيق";
"LCM_SELECTOR" = "Low contrast mode selection";
"DEFAULT_LOWCONTRASTMODE" = "(Default) LowContrastMode";
"CUSTOM_LOWCONTRASTMODE" = "(Custom Color) LowContrastMode";
// Miscellaneous
"MISCELLANEOUS" = "متنوع";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
"HIDE_MODERN_INTERFACE" = "إخفاء الواجهة الحديثة (YTNoModernUI)";
"HIDE_MODERN_INTERFACE_DESC" = "قم بتبديل هذا الخيار لإخفاء أي عنصر حديث أضافه YouTube. يزيل الوضع المحيط والتصميم المستدير والمزيد. مطلوب إعادة تشغيل التطبيق";
"IPAD_LAYOUT" = "تخطيط iPad";
"IPAD_LAYOUT_DESC" = "استخدم هذا فقط إذا كنت ترغب في الحصول على iPad Layout على جهاز iPhone / iPod الحالي. مطلوب إعادة تشغيل التطبيق";
"IPHONE_LAYOUT" = "تخطيط iPhone";
"IPHONE_LAYOUT_DESC" = "استخدم هذا فقط إذا كنت ترغب في الحصول على iPhone Layout على جهاز iPad الحالي. مطلوب إعادة تشغيل التطبيق";
"CAST_CONFIRM" = "تأكيد التنبيه قبل الإرسال (YTCastConfirm)";
"CAST_CONFIRM_DESC" = "أظهر تنبيه تأكيد قبل الإرسال لمنع اختطاف التلفزيون عن طريق الخطأ";
"CASTING" = "المسبوكات";
"MSG_ARE_YOU_SURE" = "هل أنت متأكد أنك تريد بدء الإرسال؟";
"MSG_YES" = "نعم";
"MSG_CANCEL" = "يلغي";
"NEW_MINIPLAYER_STYLE" = "نمط شريط miniplayer جديد (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "مطلوب إعادة تشغيل التطبيق";
"HIDE_CAST_BUTTON" = "Hide Cast Button";
"HIDE_CAST_BUTTON_DESC" = "مطلوب إعادة تشغيل التطبيق";
"VIDEO_PLAYER_BUTTON" = "Video Player Button";
"VIDEO_PLAYER_BUTTON_DESC" = "Show a button in the navigation bar to open downloaded videos in the Apple player";
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "تمكين FLEX";
"ENABLE_FLEX_DESC" = "تمكين FLEX للتصحيح (غير مستحسن). اترك هذا إلا إذا كنت تعرف ما تفعله";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "Enable App Version Spoofer (Lite)";
"APP_VERSION_SPOOFER_LITE_DESC" = "Enable this to use the Version Spoofer (Lite) and select your perferred version below. App restart is required.";
"VERSION_SPOOFER_TITLE" = "Version Spoofer Picker";
// Other Localization
"APP_RESTART_DESC" = "App restart is required.";
"CHANGE_APP_ICON" = "Change App Icon";
// Newly added strings
"HIDE_CAST_BUTTON" = "HIDE_CAST_BUTTON";

View file

@ -1,190 +0,0 @@
// Settings
"VERSION" = "Версия на YTLitePlus: %@";
"VERSION_CHECK" = "Докоснете, за да проверите за актуализация!";
"COPY_SETTINGS" = "Копиране на настройки";
"COPY_SETTINGS_DESC" = "Копиране на всички текущи настройки в клипборда";
"PASTE_SETTINGS" = "Поставяне на настройки";
"PASTE_SETTINGS_DESC" = "Поставяне на настройки от клипборда и прилагане";
"PASTE_SETTINGS_ALERT" = "Apply settings from clipboard?";
"EXPORT_SETTINGS" = "Експортиране на настройки";
"EXPORT_SETTINGS_DESC" = "Експортиране на всички текущи настройки в .txt файл";
"IMPORT_SETTINGS" = "Импортиране на настройки";
"IMPORT_SETTINGS_DESC" = "Натиснете, за да импортирате настройки (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Заменете бутоните 'Копиране на настройки' и 'Поставяне на настройки'";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Заменете бутоните с 'Експортиране на настройки' и 'Импортиране на настройки'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Enable Haptic Feedback";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Опции за контрол на видеото";
"ENABLE_SHARE_BUTTON" = "Активирайте бутона за споделяне";
"ENABLE_SHARE_BUTTON_DESC" = "Активирайте бутона за споделяне в контролите на видеото.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Активирайте бутона 'Запази в плейлист'";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Активирайте бутона 'Запази в плейлист' в контролите на видеото.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Скрийте бутоните с сенчест слой";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Скрийте сенчестия слой на бутоните за възпроизвеждане/пауза, предишен, следващ, напред и въртене назад.";
"HIDE_RIGHT_PANEL" = "Скрийте дясната панел в режим на цял екран";
"HIDE_RIGHT_PANEL_DESC" = "Необходим е рестарт на приложението.";
"HIDE_HEATWAVES" = "Скрийте топлинните вълни";
"HIDE_HEATWAVES_DESC" = "Скрийте топлинните вълни в видеоплеъра. Необходим е рестарт на приложението.";
"DISABLE_AMBIENT_PORTRAIT" = "Деактивирайте Ambient Mode (Портрет)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Деактивирайте осветлението около заглавието на видеото";
"DISABLE_AMBIENT_FULLSCREEN" = "Деактивирайте Ambient Mode (Цял екран)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Деактивирайте осветлението около видеоплеъра";
"FULLSCREEN_TO_THE_RIGHT" = "Цял екран вдясно";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Винаги влизайте в режим на цял екран с бутона за начало от дясната страна.";
"SEEK_ANYWHERE" = "Търсене навсякъде жест";
"SEEK_ANYWHERE_DESC" = "Задръжте и плъзнете върху видеоплеъра, за да търсите. Трябва да деактивирате YTLite - Задръжте, за да увеличите скоростта";
"ENABLE_TAP_TO_SEEK" = "Активирайте докосване за търсене";
"ENABLE_TAP_TO_SEEK_DESC" = "Скочете навсякъде в видео, като докоснете един път лентата за търсене";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Деактивирайте жеста за плъзгане до цял екран";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Деактивирайте жеста за плъзгане, за да влезете в вертикален режим на цял екран. Приложимо само за видеа в ландшафтен режим.";
"ALWAYS_USE_REMAINING_TIME" = "Винаги използвайте оставащото време";
"ALWAYS_USE_REMAINING_TIME_DESC" = "Променете настройката по подразбиране да показва оставащото време в лентата на плейъра.";
"DISABLE_TOGGLE_TIME_REMAINING" = "Деактивирайте превключването на оставащото време";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Деактивирайте променянето на изминалото време на оставащото време. Използвайте с друга настройка, за да показвате винаги оставащото време.";
"DISABLE_ENGAGEMENT_OVERLAY" = "Деактивирайте ангажиращия слой в режим на цял екран";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Деактивирайте жеста за плъзгане нагоре и списъка с предложени видеа в режим на цял екран";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Скрийте прегледите на коментари под плейъра";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Скрийте спойлера на коментарите в бутона за коментари";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Скрийте мини прегледа за автоматично възпроизвеждане";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Скрийте малкия прозорец с предложени видеа близо до заглавието в режим на цял екран";
"HIDE_HUD_MESSAGES" = "Скрийте съобщенията на HUD";
"HIDE_HUD_MESSAGES_DESC" = "Скрийте съобщенията, които се показват за определени действия (напр. CC включен/изключен)";
"HIDE_COLLAPSE_BUTTON" = "Скрийте бутона за свиване";
"HIDE_COLLAPSE_BUTTON_DESC" = "Скрийте бутона за свиване на стрелка, който беше показан в горния ляв ъгъл на видеоплеъра.";
"HIDE_SPEED_TOAST" = "Скрийте съобщението за скорост";
"HIDE_SPEED_TOAST_DESC" = "Скрийте изскачащото съобщение за 2X скорост при задържане на плейъра";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Опции за настройки на приложението";
"HIDE_ACCOUNT_SECTION" = "Скрийте секцията \"Акаунт\"";
"HIDE_AUTOPLAY_SECTION" = "Скрийте секцията \"Автоматично възпроизвеждане\"";
"HIDE_TRYNEWFEATURES_SECTION" = "Скрийте секцията \"Опитайте нови функции\"";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Скрийте секцията \"Предпочитания за качество на видеото\"";
"HIDE_NOTIFICATIONS_SECTION" = "Скрийте секцията \"Уведомления\"";
"HIDE_MANAGEALLHISTORY_SECTION" = "Скрийте секцията \"Управление на цялата история\"";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Скрийте секцията \"Вашите данни в YouTube\"";
"HIDE_PRIVACY_SECTION" = "Скрийте секцията \"Поверителност\"";
"HIDE_LIVECHAT_SECTION" = "Скрийте секцията \"Жив чат\"";
// Theme
"THEME_OPTIONS" = "Опции за тема";
"OLED_DARK_THEME" = "OLED тъмен режим";
"OLED_DARK_THEME_2" = "OLED тъмен режим";
"OLED_DARK_THEME_DESC" = "Истински тъмен режим. Може да не работи правилно в някои случаи. Необходим е рестарт на приложението след включване/изключване на тази опция.";
"OLD_DARK_THEME" = "Стар тъмен режим";
"OLD_DARK_THEME_DESC" = "Старият тъмен режим на YouTube (сив режим). Необходим е рестарт на приложението.";
"DEFAULT_THEME" = "По подразбиране";
"DEFAULT_THEME_DESC" = "Тъмен(и) режим(и) по подразбиране на YouTube. Необходим е рестарт на приложението.";
"OLED_KEYBOARD" = "OLED клавиатура";
"OLED_KEYBOARD_DESC" = "Може да не работи правилно в някои случаи. Необходим е рестарт на приложението.";
"LOW_CONTRAST_MODE" = "Режим с нисък контраст";
"LOW_CONTRAST_MODE_DESC" = "Тази опция ще намали контраста на текстовете и бутоните, както беше в стария интерфейс на YouTube. Необходим е рестарт на приложението.";
"LCM_SELECTOR" = "Избор на режим с нисък контраст";
"DEFAULT_LOWCONTRASTMODE" = "(По подразбиране) Режим с нисък контраст";
"CUSTOM_LOWCONTRASTMODE" = "(Персонализиран цвят) Режим с нисък контраст";
// Miscellaneous
"MISCELLANEOUS" = "Разни";
"PLAYBACK_IN_FEEDS" = "Възпроизвеждане в новините";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Винаги включено";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Само Wi-Fi";
"PLAYBACK_IN_FEEDS_OFF" = "Изключено";
"NEW_SETTINGS_UI" = "Нов потребителски интерфейс на настройките";
"NEW_SETTINGS_UI_DESC" = "Използвайте новия групиран потребителски интерфейс за настройки. Може да скрие някои настройки";
"ENABLE_YT_STARTUP_ANIMATION" = "Активирайте анимацията при стартиране на YouTube";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
"HIDE_MODERN_INTERFACE" = "Скрийте съвременния интерфейс (YTNoModernUI)";
"HIDE_MODERN_INTERFACE_DESC" = "Включете това, за да скриете съвременните елементи, добавени от YouTube. Премахва Ambient Mode, закръглен дизайн и други. Необходим е рестарт на приложението.";
"IPAD_LAYOUT" = "Оформление за iPad";
"IPAD_LAYOUT_DESC" = "Използвайте това, само ако искате да имате оформлението за iPad на текущия си iPhone/iPod. Необходим е рестарт на приложението.";
"IPHONE_LAYOUT" = "Оформление за iPhone";
"IPHONE_LAYOUT_DESC" = "Използвайте това, само ако искате да имате оформлението за iPhone на текущия си iPad. Необходим е рестарт на приложението.";
"CAST_CONFIRM" = "Потвърдете предупреждението преди стрийминг (YTCastConfirm)";
"CAST_CONFIRM_DESC" = "Показвайте потвърдително предупреждение преди стрийминг, за да предотвратите случайно преекспониране на TV.";
"CASTING" = "Стрийминг";
"MSG_ARE_YOU_SURE" = "Сигурни ли сте, че искате да започнете стрийминг?";
"MSG_YES" = "Да";
"MSG_CANCEL" = "Отказ";
"NEW_MINIPLAYER_STYLE" = "Нов стил на мини плейъра (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "Необходим е рестарт на приложението.";
"HIDE_CAST_BUTTON" = "Скрийте бутона за стрийминг";
"HIDE_CAST_BUTTON_DESC" = "Необходим е рестарт на приложението.";
"VIDEO_PLAYER_BUTTON" = "Video Player Button";
"VIDEO_PLAYER_BUTTON_DESC" = "Show a button in the navigation bar to open downloaded videos in the Apple player";
"HIDE_SPONSORBLOCK_BUTTON" = "Скрийте бутона за iSponsorBlock в навигационната лента";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"HIDE_HOME_TAB" = "Скрийте таба \"Начало\"";
"HIDE_HOME_TAB_DESC" = "Бъдете внимателни при скриване на всички табове";
"FIX_CASTING" = "Поправете стрийминг";
"FIX_CASTING_DESC" = "Променя някои AB флагове, за да поправи стрийминг";
"ENABLE_FLEX" = "Активирайте FLEX";
"ENABLE_FLEX_DESC" = "Активирайте FLEX за отстраняване на проблеми (не се препоръчва). Оставете това изключено, освен ако не знаете какво правите.";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "Активирайте Промяна на версията на приложението (Lite)";
"APP_VERSION_SPOOFER_LITE_DESC" = "Активирайте това, за да използвате Промяната на версията (Lite) и изберете предпочитаната версия по-долу. Необходим е рестарт на приложението.";
"VERSION_SPOOFER_TITLE" = "Избор на Промяна на версията";
// Other Localization
"APP_RESTART_DESC" = "Необходим е рестарт на приложението.";
"CHANGE_APP_ICON" = "Промяна на иконата на приложението";

View file

@ -1,197 +0,0 @@
// Settings
"VERSION" = "YTLitePlus's version: %@";
"VERSION_CHECK" = "Tippe hier, um nach Updates zu suchen!";
"COPY_SETTINGS" = "Copy Settings";
"COPY_SETTINGS_DESC" = "Copy all current settings to the clipboard";
"PASTE_SETTINGS" = "Paste Settings";
"PASTE_SETTINGS_DESC" = "Paste settings from clipboard and apply";
"PASTE_SETTINGS_ALERT" = "Apply settings from clipboard?";
"EXPORT_SETTINGS" = "Export Settings";
"EXPORT_SETTINGS_DESC" = "Exports all current settings into a .txt file";
"IMPORT_SETTINGS" = "Import Settings";
"IMPORT_SETTINGS_DESC" = "Press to import settings (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Enable Haptic Feedback";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Overlay-Optionen für Videosteuerungen";
"ENABLE_SHARE_BUTTON" = "Schaltfläche \"Teilen\" aktivieren";
"ENABLE_SHARE_BUTTON_DESC" = "Die Schaltfläche \"Teilen\" im Overlay der Videosteuerung aktivieren.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Schaltfläche \"In Playlist speichern\" aktivieren";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Die Schaltfläche \"In Playlist speichern\" im Overlay der Videosteuerung aktivieren.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Schattenüberlagerung ausblenden";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Blende die Schattenüberlagerung auf den Schaltflächen \"Wiedergabe/Pause\", \"Zurück\", \"Weiter\", \"Vorwärts\" & \"Rücklauf\" aus.";
"HIDE_RIGHT_PANEL" = "Rechtes Bedienfeld im Vollbildmodus ausbleden";
"HIDE_RIGHT_PANEL_DESC" = "Blende das rechte Bedienfeld im Vollbildmodus aus. Ein Neustart der App ist erforderlich.";
"HIDE_HEATWAVES" = "Hitzewellen ausblenden";
"HIDE_HEATWAVES_DESC" = "Versteckt die Hitzewellen im Videoplayer. Ein Neustart der App ist erforderlich.";
"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title";
"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player";
"FULLSCREEN_TO_THE_RIGHT" = "Fullscreen to the Right";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Always enter fullscreen with home button on the right side.";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek";
"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos.";
"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time";
"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar.";
"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time.";
"DISABLE_ENGAGEMENT_OVERLAY" = "Disable fullscreen engagement overlay";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Disable the swipe-up gesture and suggested videos list in fullscreen";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Hide Comment previews under player";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Hide comment spoiler in comments button";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Hide autoplay mini preview";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Hide the small suggested video box near the title in fullscreen";
"HIDE_HUD_MESSAGES" = "HUD-Nachrichten ausblenden";
"HIDE_HUD_MESSAGES_DESC" = "z.B.: Untertitel sind aktiviert/deaktiviert, Videoschleife ist an, ...";
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Overlay-Optionen für App-Einstellungen";
"HIDE_ACCOUNT_SECTION" = "Verstecke \"Konto\"";
"HIDE_AUTOPLAY_SECTION" = "Verstecke \"Autoplay\"";
"HIDE_TRYNEWFEATURES_SECTION" = "Verstecke \"Neue Testfunktionen ausprobieren\"";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Verstecke \"Einstellungen für Videoqualität\"";
"HIDE_NOTIFICATIONS_SECTION" = "Verstecke \"Benachrichtigungen\"";
"HIDE_MANAGEALLHISTORY_SECTION" = "Verstecke \"Verlauf verwalten\"";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Verstecke \"Meine Daten auf YouTube\"";
"HIDE_PRIVACY_SECTION" = "Verstecke \"Datenschutz\"";
"HIDE_LIVECHAT_SECTION" = "Verstecke \"Livechat\"";
// Theme
"THEME_OPTIONS" = "Darstellungs Optionen";
"OLED_DARK_THEME" = "OLED dunkles Design";
"OLED_DARK_THEME_2" = "OLED dunkles Design";
"OLED_DARK_THEME_DESC" = "Wirklich dunkles Design. Funktioniert in manchen Fällen nicht richtig. Nachdem du diese Option aktiviert/deaktiviert hast, ist ein Neustart der App erforderlich.";
"OLD_DARK_THEME" = "Altes dunkles design";
"OLD_DARK_THEME_DESC" = "Das dunkle Design des alten YouTube's (graues Design). Ein Neustart der App ist erforderlich.";
"DEFAULT_THEME" = "Standard";
"DEFAULT_THEME_DESC" = "Dunkles Standardthema von YouTube. Ein Neustart der App ist erforderlich.";
"OLED_KEYBOARD" = "OLED Tastatur";
"OLED_KEYBOARD_DESC" = "Funktioniert in manchen Fällen nicht richtig. Ein Neustart der App ist erforderlich.";
"LOW_CONTRAST_MODE" = "Geringer Kontrast Modus";
"LOW_CONTRAST_MODE_DESC" = "Diese Option führt zu einem niedrigen Kontrast der Texte und Schaltflächen, genau wie bei der alten YouTube-Benutzeroberfläche. Ein Neustart der App ist erforderlich.";
"LCM_SELECTOR" = "Auswahl des Modus für niedrigen Kontrast";
"DEFAULT_LOWCONTRASTMODE" = "(Standard) LowContrastMode";
"CUSTOM_LOWCONTRASTMODE" = "(Benutzerdefinierte Farbe) LowContrastMode";
// Miscellaneous
"MISCELLANEOUS" = "Verschiedenes";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "YouTube-Startanimation aktivieren";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
"HIDE_MODERN_INTERFACE" = "Moderne Interfaces ausblenden";
"HIDE_MODERN_INTERFACE_DESC" = "(YTNoModernUI) Schalte diese Option ein, um alle von YouTube hinzugefügten modernen Elemente auszublenden. Entfernt den Umgebungsmodus, das abgerundete Design & mehr. Ein Neustart der App ist erforderlich.";
"IPAD_LAYOUT" = "iPad Layout";
"IPAD_LAYOUT_DESC" = "Verwende dies nur, wenn du das iPad-Layout auf deinem aktuellen iPhone/iPod haben möchtest. Ein Neustart der App ist erforderlich.";
"IPHONE_LAYOUT" = "iPhone Layout";
"IPHONE_LAYOUT_DESC" = "Verwende dies nur, wenn du das iPhone-Layout auf deinem aktuellen iPad haben möchtest. Ein Neustart der App ist erforderlich.";
"CAST_CONFIRM" = "Warnung vor dem Casting";
"CAST_CONFIRM_DESC" = "(YTCastConfirm) Zeige vor dem nutzen von Google-Cast eine Bestätigungswarnung an, um zu verhindern, dass versehentlich auf Fernsehgeräte gestreamt wird.";
"CASTING" = "Castings";
"MSG_ARE_YOU_SURE" = "Bist du dir sicher, dass du mit dem Casting beginnen möchtest?";
"MSG_YES" = "Ja";
"MSG_CANCEL" = "Abbrechen";
"NEW_MINIPLAYER_STYLE" = "Neuer Mini-Player-Leistenstil";
"NEW_MINIPLAYER_STYLE_DESC" = "(BigYTMiniPlayer) Ein Neustart der App ist erforderlich.";
"HIDE_CAST_BUTTON" = "Cast button verstecken";
"HIDE_CAST_BUTTON_DESC" = "Google-Cast Button verstecken. Ein Neustart der App ist erforderlich.";
"VIDEO_PLAYER_BUTTON" = "Video Player Button";
"VIDEO_PLAYER_BUTTON_DESC" = "Show a button in the navigation bar to open downloaded videos in the Apple player";
"HIDE_SPONSORBLOCK_BUTTON" = "iSponsorBlock ausblenden";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "Blende die iSponsorBlock-Schaltfläche in der Navigationsleiste aus";
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "FLEX aktivieren";
"ENABLE_FLEX_DESC" = "Aktiviere FLEX zum Debuggen (nicht empfohlen). Lass diese Option deaktiviert, es sei denn, du weißt, was du tust.";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "App-Version-Spoofer aktivieren (Lite)";
"APP_VERSION_SPOOFER_LITE_DESC" = "Aktiviere dies, um den Version-Spoofer (Lite) zu verwenden, und wähle unten deine bevorzugte Version aus. Ein Neustart der App ist erforderlich.";
"VERSION_SPOOFER_TITLE" = "Version-Spoofer-Auswahl";
// Other Localization
"APP_RESTART_DESC" = "Ein Neustart der App ist erforderlich.";
"CHANGE_APP_ICON" = "App-Symbol ändern";
// Newly added strings
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "HIDE_SHADOW_OVERLAY_BUTTONS_DESC";
"ENABLE_SHARE_BUTTON_DESC" = "ENABLE_SHARE_BUTTON_DESC";
"ENABLE_SHARE_BUTTON" = "ENABLE_SHARE_BUTTON";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "ENABLE_SAVE_TO_PLAYLIST_BUTTON";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC";

View file

@ -1,190 +0,0 @@
// Settings
"VERSION" = "YTLitePlus's version: %@";
"VERSION_CHECK" = "Tap to check for update!";
"COPY_SETTINGS" = "Copy settings";
"COPY_SETTINGS_DESC" = "Copy all current settings to the clipboard";
"PASTE_SETTINGS" = "Paste settings";
"PASTE_SETTINGS_DESC" = "Paste settings from clipboard and apply";
"PASTE_SETTINGS_ALERT" = "Apply settings from clipboard?";
"EXPORT_SETTINGS" = "Export settings";
"EXPORT_SETTINGS_DESC" = "Exports all current settings into a .txt file";
"IMPORT_SETTINGS" = "Import settings";
"IMPORT_SETTINGS_DESC" = "Press to import settings (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy settings' & 'Paste settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export settings' and 'Import settings'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Enable Haptic Feedback";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Controls Overlay Options";
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
"HIDE_HEATWAVES" = "Hide Heatwaves";
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title";
"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrounding video player";
"FULLSCREEN_TO_THE_RIGHT" = "Fullscreen to the Right";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Always enter fullscreen with home button on the right side.";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek";
"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos.";
"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time";
"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar.";
"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time.";
"DISABLE_ENGAGEMENT_OVERLAY" = "Disable fullscreen engagement overlay";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Disable the swipe-up gesture and suggested videos list in fullscreen";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Hide Comment previews under player";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Hide comment spoiler in comments button";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Hide autoplay mini preview";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Hide the small suggested video box near the title in fullscreen";
"HIDE_HUD_MESSAGES" = "Hide HUD messages";
"HIDE_HUD_MESSAGES_DESC" = "Hides snackbars that display for certain actions (e.g., CC turned on/off)";
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
"HIDE_ACCOUNT_SECTION" = "Hide \"Account\" Section";
"HIDE_AUTOPLAY_SECTION" = "Hide \"Autoplay\" Section";
"HIDE_TRYNEWFEATURES_SECTION" = "Hide \"Try New Features\" Section";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide \"Video quality preferences\" Section";
"HIDE_NOTIFICATIONS_SECTION" = "Hide \"Notifications\" Section";
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide \"Manage all history\" Section";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide \"Your data in YouTube\" Section";
"HIDE_PRIVACY_SECTION" = "Hide \"Privacy\" Section";
"HIDE_LIVECHAT_SECTION" = "Hide \"Live Chat\" Section";
// Theme
"THEME_OPTIONS" = "Theme Options";
"OLED_DARK_THEME" = "OLED dark theme";
"OLED_DARK_THEME_2" = "OLED dark theme";
"OLED_DARK_THEME_DESC" = "True dark theme. Might not work correctly in some cases. App restart is required after you enable/disable this option.";
"OLD_DARK_THEME" = "Old dark theme";
"OLD_DARK_THEME_DESC" = "Old YouTube's dark theme (grey theme). App restart is required.";
"DEFAULT_THEME" = "Default";
"DEFAULT_THEME_DESC" = "Default dark(er) theme of YouTube. App restart is required.";
"OLED_KEYBOARD" = "OLED Keyboard";
"OLED_KEYBOARD_DESC" = "Might not work correctly in some cases. App restart is required.";
"LOW_CONTRAST_MODE" = "Low Contrast Mode";
"LOW_CONTRAST_MODE_DESC" = "This option will lower the contrast of the texts and buttons just like how the old YouTube Interface was. App restart is required.";
"LCM_SELECTOR" = "Low contrast mode selection";
"DEFAULT_LOWCONTRASTMODE" = "(Default) LowContrastMode";
"CUSTOM_LOWCONTRASTMODE" = "(Custom Color) LowContrastMode";
// Miscellaneous
"MISCELLANEOUS" = "Miscellaneous";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
"HIDE_MODERN_INTERFACE" = "Disable Modern YouTube Interface (YTNoModernUI)";
"HIDE_MODERN_INTERFACE_DESC" = "This reverts the YouTube app to go back to a more traditional design from v17.38.10. This also removes some rounded elements, ambient mode, and other modern features. App restart is required.";
"IPAD_LAYOUT" = "iPad Layout";
"IPAD_LAYOUT_DESC" = "Only use this if you want to have the iPad Layout on your current iPhone/iPod. App restart is required.";
"IPHONE_LAYOUT" = "iPhone Layout";
"IPHONE_LAYOUT_DESC" = "Only use this if you want to have the iPhone Layout on your current iPad. App restart is required.";
"CAST_CONFIRM" = "Confirm alert before casting (YTCastConfirm)";
"CAST_CONFIRM_DESC" = "Show a confirm alert before casting to prevent accidentally hijacking TV.";
"CASTING" = "Casting";
"MSG_ARE_YOU_SURE" = "Are you sure you want to start casting?";
"MSG_YES" = "Yes";
"MSG_CANCEL" = "Cancel";
"NEW_MINIPLAYER_STYLE" = "New mini player bar style (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "App restart is required.";
"HIDE_CAST_BUTTON" = "Hide Cast button";
"HIDE_CAST_BUTTON_DESC" = "App restart is required.";
"VIDEO_PLAYER_BUTTON" = "Video Player Button";
"VIDEO_PLAYER_BUTTON_DESC" = "Show a button in the navigation bar to open downloaded videos in the Apple player";
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "Enable FLEX";
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "Enable App Version Spoofer (Lite)";
"APP_VERSION_SPOOFER_LITE_DESC" = "Enable this to use the Version Spoofer (Lite) and select your preferred version below. App restart is required.";
"VERSION_SPOOFER_TITLE" = "Version Spoofer Picker";
// Other Localization
"APP_RESTART_DESC" = "App restart is required.";
"CHANGE_APP_ICON" = "Change App Icon";

View file

@ -1,190 +0,0 @@
// Settings
"VERSION" = "Versión de YTLitePlus: %@";
"VERSION_CHECK" = "Pulse para comprobar si hay actualizaciones.";
"COPY_SETTINGS" = "Copiar Configuraciones";
"COPY_SETTINGS_DESC" = "Copiar todas las configuraciones actuales al portapapeles";
"PASTE_SETTINGS" = "Pegar Configuraciones";
"PASTE_SETTINGS_DESC" = "Pegar configuraciones desde el portapapeles y aplicar";
"PASTE_SETTINGS_ALERT" = "¿Aplicar configuraciones desde el portapapeles?";
"EXPORT_SETTINGS" = "Exportar Configuraciones";
"EXPORT_SETTINGS_DESC" = "Exportar todas las configuraciones actuales a un archivo .txt";
"IMPORT_SETTINGS" = "Importar Configuraciones";
"IMPORT_SETTINGS_DESC" = "Presiona para importar configuraciones (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Reemplazar Botones de 'Copiar Configuraciones' y 'Pegar Configuraciones'";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Reemplaza los botones con 'Exportar Configuraciones' e 'Importar Configuraciones'";
"VIDEO_PLAYER" = "Reproductor de vídeo (Beta)";
"VIDEO_PLAYER_DESC" = "Abrir un vídeo descargado en el reproductor de Apple";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Habilitar Gestos del Reproductor";
"VOLUME" = "Volumen";
"BRIGHTNESS" = "Brillo";
"SEEK" = "Buscar";
"DISABLED" = "Deshabilitado";
"DEADZONE" = "Zona Muerta";
"DEADZONE_DESC" = "Distancia mínima a mover antes de que se reconozca un gesto";
"SENSITIVITY" = "Sensibilidad";
"SENSITIVITY_DESC" = "Multiplicador en gestos de volumen y brillo";
"PLAYER_GESTURES_TITLE" = "Gestos del Reproductor";
"PLAYER_GESTURES_DESC" = "Configura los gestos de desplazamiento horizontal para el reproductor";
"TOP_SECTION" = "Sección Superior";
"MIDDLE_SECTION" = "Sección Media";
"BOTTOM_SECTION" = "Sección Inferior";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Habilitar Retroalimentación Háptica";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Opciones de superposición de controles de vídeo";
"ENABLE_SHARE_BUTTON" = "Habilitar botón de compartir";
"ENABLE_SHARE_BUTTON_DESC" = "Habilitar el botón de compartir en la superposición de controles de vídeo.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Habilitar botón 'guardar en lista de reproducción'";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Activa el botón 'guardar en lista de reproducción' en la superposición de controles de vídeo.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Ocultar botones de sombra superpuestos";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Ocultar la sombra superpuesta en los botones Reproducir/Pausa, Anterior, Siguiente, Adelante y Rebobinar.";
"HIDE_RIGHT_PANEL" = "Ocultar el panel derecho en modo pantalla completa";
"HIDE_RIGHT_PANEL_DESC" = "Es necesario reiniciar la aplicación.";
"HIDE_HEATWAVES" = "Ocultar Heatwaves";
"HIDE_HEATWAVES_DESC" = "Oculta las Heatwaves en el reproductor de vídeo. Es necesario reiniciar la aplicación.";
"DISABLE_AMBIENT_PORTRAIT" = "Desactivar el modo ambiente (Retrato)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Desactivar la iluminación alrededor del título del vídeo";
"DISABLE_AMBIENT_FULLSCREEN" = "Desactivar el modo ambiente (pantalla completa)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Desactivar la iluminación que rodea al reproductor de vídeo";
"FULLSCREEN_TO_THE_RIGHT" = "Pantalla completa a la derecha";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Entra siempre en pantalla completa con el botón de inicio a la derecha.";
"SEEK_ANYWHERE" = "Busca cualquier gesto";
"SEEK_ANYWHERE_DESC" = "Mantén pulsado y arrastra en el reproductor de vídeo para buscar. Debe desactivar YTLite - Mantener para acelerar";
"ENABLE_TAP_TO_SEEK" = "Activar el toque para buscar";
"ENABLE_TAP_TO_SEEK_DESC" = "Salta a cualquier parte de un vídeo pulsando una sola vez la barra de búsqueda";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Desactivar el gesto de pantalla completa";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Desactiva el gesto de arrastrar para entrar en pantalla completa vertical. Solo se aplica a los vídeos apaisados.";
"ALWAYS_USE_REMAINING_TIME" = "Utilizar siempre el tiempo restante";
"ALWAYS_USE_REMAINING_TIME_DESC" = "Cambia el valor predeterminado para mostrar el tiempo restante en la barra del reproductor.";
"DISABLE_TOGGLE_TIME_REMAINING" = "Desactivar alternar tiempo restante";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Desactiva el cambio de tiempo transcurrido a tiempo restante. Utilícelo con otro ajuste para mostrar siempre el tiempo restante.";
"DISABLE_ENGAGEMENT_OVERLAY" = "Desactivar la superposición de compromiso a pantalla completa";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Desactivar el gesto de deslizar hacia arriba y la lista de vídeos sugeridos en pantalla completa";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Ocultar vistas previas de comentarios debajo del reproductor";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Ocultar spoilers de comentarios en el botón de comentarios";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Ocultar mini vista previa de reproducción automática";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Ocultar la pequeña caja de vídeo sugerido cerca del título en pantalla completa";
"HIDE_HUD_MESSAGES" = "Ocultar mensajes HUD";
"HIDE_HUD_MESSAGES_DESC" = "Ejemplo: CC está activado/desactivado, vídeo en bucle está activado,...";
"HIDE_COLLAPSE_BUTTON" = "Ocultar botón de colapso";
"HIDE_COLLAPSE_BUTTON_DESC" = "Oculta el botón de colapso en forma de flecha que se mostraba en la parte superior izquierda del reproductor de vídeo.";
"HIDE_SPEED_TOAST" = "Ocultar notificación de velocidad";
"HIDE_SPEED_TOAST_DESC" = "Oculta la notificación de velocidad 2X cuando se mantiene presionado el reproductor";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Opciones de superposición de los ajustes de la aplicación";
"HIDE_ACCOUNT_SECTION" = "Ocultar la sección \"Cuenta\"";
"HIDE_AUTOPLAY_SECTION" = "Ocultar la sección \"Autoplay\"";
"HIDE_TRYNEWFEATURES_SECTION" = "Ocultar la sección \"Probar nuevas funciones\"";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Ocultar la sección \"Preferencias de calidad de vídeo\"";
"HIDE_NOTIFICATIONS_SECTION" = "Ocultar la sección \"Notificaciones\"";
"HIDE_MANAGEALLHISTORY_SECTION" = "Ocultar la sección \"Gestionar todo el historial\"";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Ocultar la sección \"Tus datos en YouTube\"";
"HIDE_PRIVACY_SECTION" = "Ocultar la sección \"Privacidad\"";
"HIDE_LIVECHAT_SECTION" = "Ocultar la sección de chat en directo";
// Theme
"THEME_OPTIONS" = "Opciones de tema";
"OLED_DARK_THEME" = "Tema oscuro OLED";
"OLED_DARK_THEME_2" = "Tema oscuro OLED";
"OLED_DARK_THEME_DESC" = "Tema oscuro real. Puede que no funcione correctamente en algunos casos. Es necesario reiniciar la aplicación después de activar/desactivar esta opción";
"OLD_DARK_THEME" = "Antiguo tema oscuro";
"OLD_DARK_THEME_DESC" = "Antiguo tema oscuro de YouTube (tema gris). Es necesario reiniciar la aplicación.";
"DEFAULT_THEME" = "Tema por defecto";
"DEFAULT_THEME_DESC" = "Tema oscuro predeterminado de YouTube. Es necesario reiniciar la aplicación.";
"OLED_KEYBOARD" = "Teclado OLED";
"OLED_KEYBOARD_DESC" = "Puede que no funcione correctamente en algunos casos. Es necesario reiniciar la aplicación.";
"LOW_CONTRAST_MODE" = "Modo de bajo contraste";
"LOW_CONTRAST_MODE_DESC" = "Esta opción bajará el contraste de los textos y botones como en la antigua interfaz de YouTube. Es necesario reiniciar la aplicación.";
"LCM_SELECTOR" = "Selección de modo de bajo contraste";
"DEFAULT_LOWCONTRASTMODE" = "(Por defecto) Modo de bajo contraste";
"CUSTOM_LOWCONTRASTMODE" = "(Color personalizado) Modo de bajo contraste";
// Miscellaneous
"MISCELLANEOUS" = "Misceláneos";
"PLAYBACK_IN_FEEDS" = "Reproducción en feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Siempre encendido";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Sólo Wi-Fi";
"PLAYBACK_IN_FEEDS_OFF" = "Desactivado";
"NEW_SETTINGS_UI" = "Nueva interfaz de configuración";
"NEW_SETTINGS_UI_DESC" = "Utiliza la nueva interfaz de configuración agrupada. Puede ocultar algunos ajustes";
"ENABLE_YT_STARTUP_ANIMATION" = "Activar la animación de inicio de YouTube";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
"HIDE_MODERN_INTERFACE" = "Ocultar interfaz moderna (YTNoModernUI)";
"HIDE_MODERN_INTERFACE_DESC" = "Activa esta opción para ocultar cualquier elemento moderno añadido por YouTube. Elimina el modo Ambiente, el diseño redondeado y mucho más. Es necesario reiniciar la aplicación.";
"IPAD_LAYOUT" = "Diseño iPad";
"IPAD_LAYOUT_DESC" = "Utilícelo sólo si desea tener el diseño del iPad en su iPhone/iPod actual. Es necesario reiniciar la aplicación.";
"IPHONE_LAYOUT" = "Diseño iPhone";
"IPHONE_LAYOUT_DESC" = "use esto sólo si desea tener el iPhone Layout en su iPad actual. Es necesario reiniciar la aplicación.";
"CAST_CONFIRM" = "Confirmar alerta antes de emitir (YTCastConfirm)";
"CAST_CONFIRM_DESC" = "Mostrar una alerta de confirmación antes de emitir para evitar el secuestro accidental de la TV";
"CASTING" = "Emitir";
"MSG_ARE_YOU_SURE" = "¿Seguro que quieres empezar la emisión?";
"MSG_YES" = "Sí";
"MSG_CANCEL" = "Cancelar";
"NEW_MINIPLAYER_STYLE" = "Nuevo estilo de barra de minirreproductores (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "Es necesario reiniciar la aplicación";
"HIDE_CAST_BUTTON" = "Ocultar botón Emitir";
"HIDE_CAST_BUTTON_DESC" = "Es necesario reiniciar la aplicación";
"VIDEO_PLAYER_BUTTON" = "Botón del reproductor de vídeo";
"VIDEO_PLAYER_BUTTON_DESC" = "Mostrar un botón en la barra de navegación para abrir vídeo descargados en el reproductor de Apple";
"HIDE_SPONSORBLOCK_BUTTON" = "Ocultar el botón iSponsorBlock en la barra de navegación";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"HIDE_HOME_TAB" = "Ocultar pestaña Inicio";
"HIDE_HOME_TAB_DESC" = "Cuidado al ocultar todas las pestañas";
"FIX_CASTING" = "Reparación de emisión";
"FIX_CASTING_DESC" = "Cambia algunas banderas AB para fijar la emisión";
"ENABLE_FLEX" = "Habilitar FLEX";
"ENABLE_FLEX_DESC" = "Habilitar FLEX para depuración (no recomendado). Déjelo desactivado a menos que sepa lo que está haciendo";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "Activar App Version Spoofer (Lite)";
"APP_VERSION_SPOOFER_LITE_DESC" = "Active esta opción para utilizar Version Spoofer (Lite) y seleccione su versión preferida a continuación. Es necesario reiniciar la aplicación.";
"VERSION_SPOOFER_TITLE" = "Selector de versión Spoofer";
// Other Localization
"APP_RESTART_DESC" = "Es necesario reiniciar la aplicación.";
"CHANGE_APP_ICON" = "Cambiar el icono de la aplicación";

View file

@ -1,199 +0,0 @@
// Settings
"VERSION" = "YTLitePlus version : %@";
"VERSION_CHECK" = "Appuyez pour vérifier les mises à jour !";
"COPY_SETTINGS" = "Copy Settings";
"COPY_SETTINGS_DESC" = "Copy all current settings to the clipboard";
"PASTE_SETTINGS" = "Paste Settings";
"PASTE_SETTINGS_DESC" = "Paste settings from clipboard and apply";
"PASTE_SETTINGS_ALERT" = "Apply settings from clipboard?";
"EXPORT_SETTINGS" = "Export Settings";
"EXPORT_SETTINGS_DESC" = "Exports all current settings into a .txt file";
"IMPORT_SETTINGS" = "Import Settings";
"IMPORT_SETTINGS_DESC" = "Press to import settings (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Enable Haptic Feedback";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Options de l'overlay des contrôles vidéo";
"ENABLE_SHARE_BUTTON" = "Activer le bouton Partager";
"ENABLE_SHARE_BUTTON_DESC" = "Activer le bouton Partager dans l'overlay des contrôles vidéo.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Activer le bouton 'Enregistrer dans la liste de lecture'";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Activer le bouton 'Enregistrer dans la liste de lecture' dans l'overlay des contrôles vidéo.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Masquer l'overlay sombre";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Masquer l'overlay sombre sur les boutons Lecture/Pause, Précédent, Suivant, Avancer et Retour en arrière.";
"HIDE_RIGHT_PANEL" = "Masquer le panneau de droite en mode plein écran";
"HIDE_RIGHT_PANEL_DESC" = "Le redémarrage de l'application est requis.";
"HIDE_HEATWAVES" = "Masquer les Heatwaves";
"HIDE_HEATWAVES_DESC" = "Masque les Heatwaves dans le lecteur vidéo. Le redémarrage de l'application est requis.";
"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title";
"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player";
"FULLSCREEN_TO_THE_RIGHT" = "Fullscreen to the Right";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Always enter fullscreen with home button on the right side.";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek";
"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos.";
"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time";
"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar.";
"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time.";
"DISABLE_ENGAGEMENT_OVERLAY" = "Disable fullscreen engagement overlay";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Disable the swipe-up gesture and suggested videos list in fullscreen";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Hide Comment previews under player";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Hide comment spoiler in comments button";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Hide autoplay mini preview";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Hide the small suggested video box near the title in fullscreen";
"HIDE_HUD_MESSAGES" = "Masquer les messages de l'ATH";
"HIDE_HUD_MESSAGES_DESC" = "Exemple : Les sous-titres sont activés/désactivés, la boucle vidéo est activée,...";
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Paramètres des options d'overlay de l'application";
"HIDE_ACCOUNT_SECTION" = "Masquer la section \"Compte\"";
"HIDE_DONTEATMYCONTENT_SECTION" = "Masquer la section \"DontEatMyContent\"";
"HIDE_YOUTUBERETURNDISLIKE_SECTION" = "Masquer la section \"YouTube Return Dislike\"";
"HIDE_YOUPIP_SECTION" = "Masquer la section \"YouPiP\"";
"HIDE_AUTOPLAY_SECTION" = "Masquer la section \"Autoplay\"";
"HIDE_TRYNEWFEATURES_SECTION" = "Masquer la section \"Essayer de nouvelles fonctionnalités\"";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Masquer la section \"Préférences de qualité vidéo\"";
"HIDE_NOTIFICATIONS_SECTION" = "Masquer la section \"Notifications\"";
"HIDE_MANAGEALLHISTORY_SECTION" = "Masquer la section \"Gérer tout l'historique\"";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Masquer la section \"Vos données dans YouTube\"";
"HIDE_PRIVACY_SECTION" = "Masquer la section \"Confidentialité\"";
"HIDE_LIVECHAT_SECTION" = "Masquer la section \"Chat en direct\"";
// Theme
"THEME_OPTIONS" = "Options de thème";
"OLED_DARK_THEME" = "Thème sombre OLED";
"OLED_DARK_THEME_2" = "Thème sombre OLED";
"OLED_DARK_THEME_DESC" = "Vrai thème sombre. Peut ne pas fonctionner correctement dans certains cas. Le redémarrage de l'application est requis après avoir activé/désactivé cette option.";
"OLD_DARK_THEME" = "Ancien thème sombre";
"OLD_DARK_THEME_DESC" = "Ancien thème sombre de YouTube (thème gris). Le redémarrage de l'application est requis.";
"DEFAULT_THEME" = "Par défaut";
"DEFAULT_THEME_DESC" = "Thème sombre (plus foncé) par défaut de YouTube. Le redémarrage de l'application est requis.";
"OLED_KEYBOARD" = "Clavier OLED";
"OLED_KEYBOARD_DESC" = "Peut ne pas fonctionner correctement dans certains cas. Le redémarrage de l'application est requis.";
"LOW_CONTRAST_MODE" = "Mode faible contraste";
"LOW_CONTRAST_MODE_DESC" = "Cette option réduira le contraste des textes et des boutons, comme l'ancienne interface YouTube. Le redémarrage de l'application est requis.";
"LCM_SELECTOR" = "Low contrast mode selection";
"DEFAULT_LOWCONTRASTMODE" = "(Default) LowContrastMode";
"CUSTOM_LOWCONTRASTMODE" = "(Custom Color) LowContrastMode";
// Miscellaneous
"MISCELLANEOUS" = "Divers";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "Activer l'animation de démarrage YouTube";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
"HIDE_MODERN_INTERFACE" = "Masquer l'interface moderne (YTNoModernUI)";
"HIDE_MODERN_INTERFACE_DESC" = "Activez cette option pour masquer tout élément moderne ajouté par YouTube. Supprime le mode Ambiant, le design arrondi et plus encore. Un redémarrage de l'application est requis.";
"IPAD_LAYOUT" = "Disposition iPad";
"IPAD_LAYOUT_DESC" = "Utilisez ceci uniquement si vous souhaitez avoir la disposition iPad sur votre iPhone/iPod actuel. Un redémarrage de l'application est requis.";
"IPHONE_LAYOUT" = "Disposition iPhone";
"IPHONE_LAYOUT_DESC" = "Utilisez ceci uniquement si vous souhaitez avoir la disposition iPhone sur votre iPad actuel. Un redémarrage de l'application est requis.";
"CAST_CONFIRM" = "Alerte de confirmation avant la diffusion (YTCastConfirm)";
"CAST_CONFIRM_DESC" = "Affiche une alerte de confirmation avant la diffusion pour éviter de prendre accidentellement le contrôle de la télévision.";
"CASTING" = "Casting";
"MSG_ARE_YOU_SURE" = "Êtes-vous sûr de vouloir commencer à diffuser ?";
"MSG_YES" = "Oui";
"MSG_CANCEL" = "Annuler";
"NEW_MINIPLAYER_STYLE" = "Nouveau style de mini-lecteur (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "Un redémarrage de l'application est requis.";
"HIDE_CAST_BUTTON" = "Masquer le bouton Cast";
"HIDE_CAST_BUTTON_DESC" = "Un redémarrage de l'application est requis.";
"VIDEO_PLAYER_BUTTON" = "Video Player Button";
"VIDEO_PLAYER_BUTTON_DESC" = "Show a button in the navigation bar to open downloaded videos in the Apple player";
"HIDE_SPONSORBLOCK_BUTTON" = "Masquer le bouton iSponsorBlock dans la barre de navigation";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "Activer FLEX";
"ENABLE_FLEX_DESC" = "Activez FLEX pour le débogage (non recommandé). Laissez cette option désactivée, sauf si vous savez ce que vous faites.";
"UN_SHORTS" = "Masquer les Shorts (YTUnShorts)" ;
"UN_SHORTS_DESC" = "Supprimer les Shorts du feed de YouTube" ;
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "Activer le Spoofer de Version de l'Application (Lite)";
"APP_VERSION_SPOOFER_LITE_DESC" = "Activez cette option pour utiliser le Spoofer de Version de l'Application (Lite) et sélectionnez votre version préférée ci-dessous. Un redémarrage de l'application est requis.";
"VERSION_SPOOFER_TITLE" = "Sélectionneur de Spoofer de Version";
// Other Localization
"APP_RESTART_DESC" = "Un redémarrage de l'application est requis.";
“CHANGE_APP_ICON" = “Changer l'icône de l'application";
// Newly added strings
"CHANGE_APP_ICON" = "CHANGE_APP_ICON";

View file

@ -1,191 +0,0 @@
// Settings
"VERSION" = "YTLitePlusのバージョン: %@";
"VERSION_CHECK" = "タップして更新をチェック!";
"COPY_SETTINGS" = "設定をコピー";
"COPY_SETTINGS_DESC" = "現在のすべての設定をクリップボードにコピーします";
"PASTE_SETTINGS" = "設定を貼り付け";
"PASTE_SETTINGS_DESC" = "クリップボードから設定を貼り付けて適用します";
"PASTE_SETTINGS_ALERT" = "クリップボードから設定を貼り付けますか?";
"EXPORT_SETTINGS" = "設定をエクスポート";
"EXPORT_SETTINGS_DESC" = "現在のすべての設定を.txtファイルにエクスポートします";
"IMPORT_SETTINGS" = "設定をインポート";
"IMPORT_SETTINGS_DESC" = "設定(.txt)をインポートするには押してください";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "「設定のコピー」と「設定の貼り付け」ボタンを置き換える";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "「設定のエクスポート」と「設定のインポート」のボタンを置き換えます";
"VIDEO_PLAYER" = "ビデオプレイヤー(ベータ版)";
"VIDEO_PLAYER_DESC" = "ダウンロードしたビデオをAppleプレイヤーで開く";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "プレイヤーのジェスチャーを有効にする";
"VOLUME" = "音量";
"BRIGHTNESS" = "明るさ";
"SEEK" = "シーク";
"DISABLED" = "無効";
"DEADZONE" = "デッドゾーン";
"DEADZONE_DESC" = "ジェスチャーが認識されるまでに移動する最小距離";
"SENSITIVITY" = "感度";
"SENSITIVITY_DESC" = "音量と明るさのジェスチャーの乗数";
"PLAYER_GESTURES_TITLE" = "プレイヤージェスチャー";
"PLAYER_GESTURES_DESC" = "プレイヤーの水平パンのジェスチャを設定する";
"TOP_SECTION" = "上部セクション";
"MIDDLE_SECTION" = "中間セクション";
"BOTTOM_SECTION" = "下部セクション";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "触覚フィードバックを有効化";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "動画コントロールオーバーレイの設定";
"ENABLE_SHARE_BUTTON" = "共有ボタンを有効化";
"ENABLE_SHARE_BUTTON_DESC" = "動画コントロールオーバーレイの共有ボタンを有効にします。";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "再生リストに保存ボタンを有効化";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "動画コントロールオーバーレイの「再生リストに保存」ボタンを有効にします。";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "シャドウオーバーレイボタンを非表示";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "再生/一時停止,前へ/次へ,早送り/巻き戻しボタンのシャドウオーバーレイを非表示にします。";
"HIDE_RIGHT_PANEL" = "フルスクリーンモードで右パネルを非表示";
"HIDE_RIGHT_PANEL_DESC" = "アプリの再起動が必要です。";
"HIDE_HEATWAVES" = "ヒートウェーブを非表示";
"HIDE_HEATWAVES_DESC" = "動画プレイヤーのヒートウェーブを非表示にします。アプリの再起動が必要です。";
"DISABLE_AMBIENT_PORTRAIT" = "アンビエントモードを無効化 (縦向き)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "動画タイトル周囲の照明を無効化";
"DISABLE_AMBIENT_FULLSCREEN" = "アンビエントモードを無効化 (全画面)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "動画プレイヤー周囲の照明を無効化";
"FULLSCREEN_TO_THE_RIGHT" = "全画面を右側に";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "ホームボタンが右側にある状態で全画面表示にする";
"SEEK_ANYWHERE" = "どこでもシークジェスチャー";
"SEEK_ANYWHERE_DESC" = "動画プレイヤー上で長押しドラッグでシーク。YTLite - 長押しで速度変更を無効にする必要があります";
"ENABLE_TAP_TO_SEEK" = "タップでシークを有効化";
"ENABLE_TAP_TO_SEEK_DESC" = "シークバーをタップして任意の位置に移動";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "引き下げで全画面化を無効化";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "縦向き全画面にするドラッグジェスチャーを無効化 (横向き動画にのみ適用)";
"ALWAYS_USE_REMAINING_TIME" = "常に残り時間を表示";
"ALWAYS_USE_REMAINING_TIME_DESC" = "プレイヤーバーのデフォルト表示を経過時間ではなく残り時間に変更";
"DISABLE_TOGGLE_TIME_REMAINING" = "残り時間の切り替えを無効化";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "経過時間と残り時間の切り替えを無効化。他の設定と併用して常に残り時間を表示";
"DISABLE_ENGAGEMENT_OVERLAY" = "全画面のエンゲージメントオーバーレイを無効化";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "スワイプアップジェスチャーや全画面時のおすすめ動画リストを無効化";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "プレイヤー下のコメントプレビューを隠す";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "コメントボタン内のコメントプレビューを非表示にします。";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "自動再生ミニプレビューを非表示";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "全画面時にタイトル付近に表示される小さなおすすめ動画ボックスを非表示";
"HIDE_HUD_MESSAGES" = "HUDメッセージを非表示";
"HIDE_HUD_MESSAGES_DESC" = "特定のアクション後に表示されるスナックバーを非表示にします。(例: 字幕がオン/オフになりました など)";
"HIDE_COLLAPSE_BUTTON" = "折りたたみボタンを隠す";
"HIDE_COLLAPSE_BUTTON_DESC" = "プレイヤー左上の折りたたみボタンを非表示にします。";
"HIDE_SPEED_TOAST" = "速度トーストを非表示";
"HIDE_SPEED_TOAST_DESC" = "プレイヤーを長押しした際に表示される2倍速のポップアップを非表示";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "アプリの設定オーバーレイの設定";
"HIDE_ACCOUNT_SECTION" = "「アカウント」を非表示にする";
"HIDE_AUTOPLAY_SECTION" = "「自動再生」を非表示にする";
"HIDE_TRYNEWFEATURES_SECTION" = "「試験運用版の新機能を試す」を非表示にする";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "「動画の画質設定」を非表示にする";
"HIDE_NOTIFICATIONS_SECTION" = "「通知」を非表示にする";
"HIDE_MANAGEALLHISTORY_SECTION" = "「すべての履歴を管理」を非表示にする";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "「YouTubeでのデータ」を非表示にする";
"HIDE_PRIVACY_SECTION" = "「プライバシー」を非表示にする";
"HIDE_LIVECHAT_SECTION" = "「チャット」を非表示にする";
// Theme
"THEME_OPTIONS" = "テーマの設定";
"OLED_DARK_THEME" = "OLEDダークテーマ(実験的)";
"OLED_DARK_THEME_2" = "OLEDダークテーマ";
"OLED_DARK_THEME_DESC" = "真のダークテーマです。\n正しく動作しない場合があります。アプリの再起動が必要です。";
"OLD_DARK_THEME" = "古いダークモード";
"OLD_DARK_THEME_DESC" = "以前のダークモードです(グレー) アプリの再起動が必要です。";
"DEFAULT_THEME" = "通常";
"DEFAULT_THEME_DESC" = "通常のダークモードです。アプリの再起動が必要です。";
"OLED_KEYBOARD" = "OLEDキーボード(実験的)";
"OLED_KEYBOARD_DESC" = "正しく動作しない場合があります。アプリの再起動が必要です。";
"LOW_CONTRAST_MODE" = "低コントラストモード";
"LOW_CONTRAST_MODE_DESC" = "このオプションは、テキストとボタンのコントラストを以前のYouTubeインターフェイスのように低くします。アプリの再起動が必要です。";
"LCM_SELECTOR" = "低コントラストモードの選択";
"DEFAULT_LOWCONTRASTMODE" = "低コントラストモード(デフォルト)";
"CUSTOM_LOWCONTRASTMODE" = "低コントラストモード(カスタムカラー)";
// Miscellaneous
"MISCELLANEOUS" = "その他";
"PLAYBACK_IN_FEEDS" = "フィード内再生";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "常にオン";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi接続時のみ";
"PLAYBACK_IN_FEEDS_OFF" = "オフ";
"NEW_SETTINGS_UI" = "新しい設定UI";
"NEW_SETTINGS_UI_DESC" = "新しいグループ化された設定UIを使用。一部の設定が非表示になる可能性があります";
"ENABLE_YT_STARTUP_ANIMATION" = "YouTube起動時のアニメーションを有効化";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
"HIDE_MODERN_INTERFACE" = "モダンインターフェイスを非表示 (YTNoModernUI)";
"HIDE_MODERN_INTERFACE_DESC" = "YouTubeによって追加されたモダンな要素を非表示にします。アンビエントモード,丸みを帯びたデザインなどを削除します。アプリの再起動が必要です。";
"IPAD_LAYOUT" = "iPadレイアウト";
"IPAD_LAYOUT_DESC" = "現在使用しているiPhone/iPodでiPadのレイアウトを使用したい場合にのみ使用して下さい。アプリの再起動が必要です。";
"IPHONE_LAYOUT" = "iPhoneレイアウト";
"IPHONE_LAYOUT_DESC" = "現在使用しているiPadでiPhoneのレイアウトを使用したい場合にのみ使用して下さい。アプリの再起動が必要です。";
"CAST_CONFIRM" = "キャストする前に確認する (YTCastConfirm)";
"CAST_CONFIRM_DESC" = "誤ってテレビにキャストしないように、確認の警告を表示します。";
"CASTING" = "キャスト";
"MSG_ARE_YOU_SURE" = "本当にキャストを開始しますか";
"MSG_YES" = "はい";
"MSG_CANCEL" = "いいえ";
"NEW_MINIPLAYER_STYLE" = "新しいミニプレイヤーバー (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "アプリの再起動が必要です。";
"HIDE_CAST_BUTTON" = "キャストボタンを非表示";
"HIDE_CAST_BUTTON_DESC" = "アプリの再起動が必要です。";
"VIDEO_PLAYER_BUTTON" = "ビデオプレイヤーボタン";
"VIDEO_PLAYER_BUTTON_DESC" = "ナビゲーションバーにボタンを表示し、ダウンロードした動画をAppleのプレイヤーで開く";
"HIDE_SPONSORBLOCK_BUTTON" = "ナビゲーションバーのiSponsorBlockボタンを非表示";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"HIDE_HOME_TAB" = "ホームタブを非表示";
"HIDE_HOME_TAB_DESC" = "すべてのタブを非表示にすると問題が発生する可能性があります。注意してください";
"FIX_CASTING" = "キャストの修正";
"FIX_CASTING_DESC" = "一部のABフラグを変更してキャスト機能を修正";
"ENABLE_FLEX" = "FLEXを有効化";
"ENABLE_FLEX_DESC" = "デバッグ用のFLEXを有効化します(推奨しません) \n何をやっているのか分からない場合はオフにしてください。";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "アプリのバージョン偽装(Lite)を有効にする";
"APP_VERSION_SPOOFER_LITE_DESC" = "バージョン偽装(Lite)を使用するにはこれを有効にし、以下でお好みのバージョンを選択してください。アプリの再起動が必要です。";
"VERSION_SPOOFER_TITLE" = "偽装バージョンの選択";
// Other Localization
"APP_RESTART_DESC" = "アプリの再起動が必要です。";
"CHANGE_APP_ICON" = "アプリアイコンを変更";

View file

@ -1,190 +0,0 @@
// Settings
"VERSION" = "YTLitePlus 버전: %@";
"VERSION_CHECK" = "업데이트를 확인하려면 탭하세요!";
"COPY_SETTINGS" = "설정 복사";
"COPY_SETTINGS_DESC" = "현재 설정을 모두 클립보드에 복사합니다";
"PASTE_SETTINGS" = "설정 붙여넣기";
"PASTE_SETTINGS_DESC" = "클립보드에서 설정을 붙여넣고 적용합니다";
"PASTE_SETTINGS_ALERT" = "클립보드에서 설정을 적용할까요?";
"EXPORT_SETTINGS" = "설정 내보내기";
"EXPORT_SETTINGS_DESC" = "현재 설정을 .txt 파일로 내보냅니다";
"IMPORT_SETTINGS" = "설정 가져오기";
"IMPORT_SETTINGS_DESC" = "설정(.txt)을 가져오려면 누르세요";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "'설정 복사' & '설정 붙여넣기' 버튼 교체";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "버튼을 '설정 내보내기'와 '설정 가져오기'로 교체합니다";
"VIDEO_PLAYER" = "동영상 플레이어 (베타)";
"VIDEO_PLAYER_DESC" = "다운로드한 동영상을 Apple 기본 플레이어에서 재생하기";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "플레이어 제스처 활성화";
"VOLUME" = "음량";
"BRIGHTNESS" = "밝기";
"SEEK" = "탐색";
"DISABLED" = "비활성화됨";
"DEADZONE" = "데드존";
"DEADZONE_DESC" = "제스처 인식을 위한 최소 이동 거리";
"SENSITIVITY" = "민감도";
"SENSITIVITY_DESC" = "음량 및 밝기 제스처의 민감도 조정";
"PLAYER_GESTURES_TITLE" = "플레이어 제스처";
"PLAYER_GESTURES_DESC" = "플레이어 좌우 스와이프 제스처 설정";
"TOP_SECTION" = "상단";
"MIDDLE_SECTION" = "중앙";
"BOTTOM_SECTION" = "하단";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "햅틱 피드백 활성화";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "동영상 컨트롤 오버레이";
"ENABLE_SHARE_BUTTON" = "공유 버튼 활성화";
"ENABLE_SHARE_BUTTON_DESC" = "동영상 컨트롤 오버레이에 공유 버튼 활성화";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "'저장' 버튼 활성화";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "동영상 컨트롤 오버레이에 '저장' 버튼 활성화";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "그림자 오버레이 버튼 숨기기";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "재생/일시정지, 이전, 다음, 앞으로/뒤로 버튼의 그림자 오버레이를 숨깁니다.";
"HIDE_RIGHT_PANEL" = "전체화면 모드에서 오른쪽 패널 숨기기";
"HIDE_RIGHT_PANEL_DESC" = "앱 재시작이 필요합니다.";
"HIDE_HEATWAVES" = "히트 웨이브 숨기기";
"HIDE_HEATWAVES_DESC" = "동영상 플레이어에서 히트 웨이브를 숨깁니다. 앱 재시작이 필요합니다.";
"DISABLE_AMBIENT_PORTRAIT" = "앰비언트 모드 비활성화 (세로)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "동영상 제목 주변의 조명 효과를 비활성화합니다.";
"DISABLE_AMBIENT_FULLSCREEN" = "앰비언트 모드 비활성화 (전체화면)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "동영상 주변의 조명 효과를 비활성화합니다.";
"FULLSCREEN_TO_THE_RIGHT" = "오른쪽으로 전체화면 전환";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "항상 기기 하단이 오른쪽에 있는 전체화면으로 전환합니다.";
"SEEK_ANYWHERE" = "아무 곳에서나 밀어서 탐색";
"SEEK_ANYWHERE_DESC" = "동영상에서 드래그하여 탐색합니다. You must disable YTLite - Hold to speed";
"ENABLE_TAP_TO_SEEK" = "탭해서 탐색 활성화";
"ENABLE_TAP_TO_SEEK_DESC" = "재생 바에서 한 번만 탭해서 원하는 위치로 이동합니다.";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "확대하여 전체화면 비활성화";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "확대하여 세로 전체화면으로 전환하는 제스처를 비활성화합니다. 가로 동영상에만 적용됩니다.";
"ALWAYS_USE_REMAINING_TIME" = "항상 남은 시간 표시";
"ALWAYS_USE_REMAINING_TIME_DESC" = "재생 바에서 남은 시간을 기본 설정으로 표시하도록 변경합니다.";
"DISABLE_TOGGLE_TIME_REMAINING" = "남은 시간 토글 비활성화";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "경과 시간과 남은 시간을 변경하는 기능을 비활성화합니다. 항상 남은 시간을 표시하는 다른 설정과 함께 사용하세요.";
"DISABLE_ENGAGEMENT_OVERLAY" = "전체화면 오버레이 비활성화";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "전체화면에서 위로 스와이프 제스처와 추천 동영상 목록을 비활성화합니다.";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "플레이어 하단 댓글 미리보기 숨기기";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "댓글 구역에서 댓글 미리보기를 숨깁니다.";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "자동 재생 미리보기 숨기기";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "전체화면에서 제목 근처의 추천 동영상 상자를 숨깁니다.";
"HIDE_HUD_MESSAGES" = "HUD 메세지 숨기기";
"HIDE_HUD_MESSAGES_DESC" = "특정 동작 시 표시되는 메시지를 숨깁니다. (예: 자막 켜짐/꺼짐)";
"HIDE_COLLAPSE_BUTTON" = "축소 버튼 숨기기";
"HIDE_COLLAPSE_BUTTON_DESC" = "동영상 플레이어 왼쪽 상단에 표시된 화살표 축소 버튼을 숨깁니다.";
"HIDE_SPEED_TOAST" = "재생 속도 팝업 숨기기";
"HIDE_SPEED_TOAST_DESC" = "플레이어를 홀드할 때 나타나는 2배속 팝업을 숨깁니다.";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "설정 오버레이";
"HIDE_ACCOUNT_SECTION" = "\"계정 전환\" 숨기기";
"HIDE_AUTOPLAY_SECTION" = "\"자동 재생\" 숨기기";
"HIDE_TRYNEWFEATURES_SECTION" = "\"새 실험 기능 사용해보기\" 숨기기";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "\"동영상 화질 환경설정\" 숨기기";
"HIDE_NOTIFICATIONS_SECTION" = "\"알림\" 숨기기";
"HIDE_MANAGEALLHISTORY_SECTION" = "\"전체 기록 관리\" 숨기기";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "\"YouTube의 내 데이터\" 숨기기";
"HIDE_PRIVACY_SECTION" = "\"공개 설정\" 숨기기";
"HIDE_LIVECHAT_SECTION" = "\"실시간 채팅\" 숨기기";
// Theme
"THEME_OPTIONS" = "어두운 테마 설정";
"OLED_DARK_THEME" = "OLED 다크 테마";
"OLED_DARK_THEME_2" = "OLED 다크 테마";
"OLED_DARK_THEME_DESC" = "진정한 다크 테마입니다. 일부 상황에서는 올바르게 작동하지 않을 수 있습니다. 이 옵션을 켜거나 끈 후에는 앱을 재시작해야 합니다.";
"OLD_DARK_THEME" = "구형 어두운 테마";
"OLD_DARK_THEME_DESC" = "예전 유튜브의 어두운 테마(회색 테마). 앱 재시작이 필요합니다.";
"DEFAULT_THEME" = "기본";
"DEFAULT_THEME_DESC" = "유튜브의 기본 어두운 테마입니다. 앱 재시작이 필요합니다.";
"OLED_KEYBOARD" = "OLED 키보드";
"OLED_KEYBOARD_DESC" = "일부 상황에서 올바르게 작동하지 않을 수 있습니다. 앱 재시작이 필요합니다.";
"LOW_CONTRAST_MODE" = "저대비 모드";
"LOW_CONTRAST_MODE_DESC" = "텍스트와 버튼의 대비를 낮춥니다. 예전 유튜브 인터페이스처럼 보일 수 있습니다. 앱 재시작이 필요합니다.";
"LCM_SELECTOR" = "저대비 모드 선택";
"DEFAULT_LOWCONTRASTMODE" = "(기본) 저대비 모드";
"CUSTOM_LOWCONTRASTMODE" = "(사용자 지정 색상) 저대비 모드";
// Miscellaneous
"MISCELLANEOUS" = "기타";
"PLAYBACK_IN_FEEDS" = "피드에서 재생";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "항상 사용";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi 전용";
"PLAYBACK_IN_FEEDS_OFF" = "사용 안함";
"NEW_SETTINGS_UI" = "새로운 설정 UI";
"NEW_SETTINGS_UI_DESC" = "새로운 그룹화된 설정 UI를 사용합니다. 일부 설정이 숨겨질 수 있습니다.";
"ENABLE_YT_STARTUP_ANIMATION" = "유튜브 시작 애니메이션 활성화";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
"HIDE_MODERN_INTERFACE" = "새로운 인터페이스 비활성화 (YTNoModernUI)";
"HIDE_MODERN_INTERFACE_DESC" = "17.38.10 이전의 전통적인 디자인으로 되돌립니다. 일부 둥근 요소, 앰비언트 모드 및 새로운 기능도 제거됩니다. 앱 재시작이 필요합니다.";
"IPAD_LAYOUT" = "iPad 레이아웃";
"IPAD_LAYOUT_DESC" = "iPhone/iPod에서 iPad 레이아웃을 사용하려면 이 옵션을 켜세요. 앱 재시작이 필요합니다.";
"IPHONE_LAYOUT" = "iPhone 레이아웃";
"IPHONE_LAYOUT_DESC" = "iPad에서 iPhone 레이아웃을 사용하려면 이 옵션을 켜세요. 앱 재시작이 필요합니다.";
"CAST_CONFIRM" = "TV로 시청하기 전 확인 (YTCastConfirm)";
"CAST_CONFIRM_DESC" = "실수로 TV에 영상을 띄우지 않도록 시청 전에 확인 메세지를 표시합니다.";
"CASTING" = "TV로 시청하기";
"MSG_ARE_YOU_SURE" = "TV로 시청하시겠습니까?";
"MSG_YES" = "확인";
"MSG_CANCEL" = "취소";
"NEW_MINIPLAYER_STYLE" = "새로운 미니 플레이어 스타일 (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "앱 재시작이 필요합니다.";
"HIDE_CAST_BUTTON" = "TV로 시청하기 버튼 숨기기";
"HIDE_CAST_BUTTON_DESC" = "앱 재시작이 필요합니다.";
"VIDEO_PLAYER_BUTTON" = "동영상 플레이어 버튼";
"VIDEO_PLAYER_BUTTON_DESC" = "다운로드한 동영상를 Apple 기본 플레이어에서 열 수 있는 버튼을 네비게이션 바에 표시합니다.";
"HIDE_SPONSORBLOCK_BUTTON" = "네비게이션 바에서 iSponsorBlock 버튼 숨기기";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"HIDE_HOME_TAB" = "홈 탭 숨기기";
"HIDE_HOME_TAB_DESC" = "모든 탭을 숨길 때는 주의하세요";
"FIX_CASTING" = "TV로 시청하기 수정";
"FIX_CASTING_DESC" = "일부 AB 플래그를 변경하여 TV로 시청하기 문제를 해결합니다.";
"ENABLE_FLEX" = "FLEX 활성화";
"ENABLE_FLEX_DESC" = "디버깅을 위해 FLEX를 활성화합니다(권장하지 않음). 이 동작에 대해 잘 아는 경우에만 사용하세요.";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "앱 버전 변조 활성화 (Lite)";
"APP_VERSION_SPOOFER_LITE_DESC" = "버전 변조(Lite)를 사용하려면 이 옵션을 켜고 아래에서 원하는 버전을 선택하세요. 앱 재시작이 필요합니다.";
"VERSION_SPOOFER_TITLE" = "버전 변조 선택";
// Other Localization
"APP_RESTART_DESC" = "앱 재시작이 필요합니다.";
"CHANGE_APP_ICON" = "앱 아이콘 변경";

View file

@ -1,191 +0,0 @@
// Settings
"VERSION" = "Versão do YTLitePlus: %@";
"VERSION_CHECK" = "Toque para verificar se há atualização!";
"COPY_SETTINGS" = "Copiar Configurações";
"COPY_SETTINGS_DESC" = "Copia todas as configurações atuais para a área de transferência";
"PASTE_SETTINGS" = "Colar Configurações";
"PASTE_SETTINGS_DESC" = "Cola as configurações da área de transferência e aplica";
"PASTE_SETTINGS_ALERT" = "Aplicar configurações da área de transferência?";
"EXPORT_SETTINGS" = "Exportar Configurações";
"EXPORT_SETTINGS_DESC" = "Exporta todas as configurações atuais para um arquivo .txt";
"IMPORT_SETTINGS" = "Importar Configurações";
"IMPORT_SETTINGS_DESC" = "Pressione para importar as configurações (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Substituir os Botões 'Copiar Configurações' e 'Colar Configurações'";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Substitui os Botões 'Exportar Configurações' e 'Importar Configurações'";
"VIDEO_PLAYER" = "Reprodutor de Vídeo (Beta)";
"VIDEO_PLAYER_DESC" = "Abra um vídeo baixado no Reprodutor de video da Apple";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Habilitar Gestos no Reprodutor de video";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brilho";
"SEEK" = "Busca";
"DISABLED" = "Desabilitado";
"DEADZONE" = "Zona morta";
"DEADZONE_DESC" = "Distância mínima a percorrer antes de um gesto ser reconhecido";
"SENSITIVITY" = "Sensibilidade";
"SENSITIVITY_DESC" = "Multiplicador em gestos de volume e brilho";
"PLAYER_GESTURES_TITLE" = "Gestos do Reprodutor de video";
"PLAYER_GESTURES_DESC" = "Configurar gestos panorâmicos horizontal para o player";
"TOP_SECTION" = "Seção Superior";
"MIDDLE_SECTION" = "Seção do Meio";
"BOTTOM_SECTION" = "Seção Inferior";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Habilitar Feedback Tátil";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Opções de Sobreposição de Controles de Vídeo";
"ENABLE_SHARE_BUTTON" = "Ativar o botão 'Compartilhar'";
"ENABLE_SHARE_BUTTON_DESC" = "Ativa o botão Compartilhar na sobreposição de controles de vídeo.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Ativar o botão 'Salvar'";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Ativa o botão 'Salvar' na sobreposição de controles de vídeo.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Ocultar Sombras nos Botões de Sobreposição";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Oculta as sombras nos botões de sobreposição Reproduzir/Pausar, Anterior, Próximo, Avançar e Retroceder.";
"HIDE_RIGHT_PANEL" = "Ocultar o painel direito no modo de tela cheia";
"HIDE_RIGHT_PANEL_DESC" = "A reinicialização do app é necessária.";
"HIDE_HEATWAVES" = "Ocultar Ondas de calor";
"HIDE_HEATWAVES_DESC" = "Oculta as Ondas de calor no player de vídeo. A reinicialização do app é necessária.";
"DISABLE_AMBIENT_PORTRAIT" = "Desativar Iluminação cinematográfica (Retrato)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Desativa a iluminação ao redor do título do vídeo";
"DISABLE_AMBIENT_FULLSCREEN" = "Desativar Iluminação cinematográfica (Tela cheia)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Desativa a iluminação ao redor do player de vídeo";
"FULLSCREEN_TO_THE_RIGHT" = "Tela cheia para a direita";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Sempre entre em tela cheia com o botão home no lado direito.";
"SEEK_ANYWHERE" = "Gesto de Busca em qualquer lugar";
"SEEK_ANYWHERE_DESC" = "Segure e arraste o player de vídeo para buscar. Você deve desativar o YTLite - Segurar para velocidade (Hold for speed)";
"ENABLE_TAP_TO_SEEK" = "Ativar Toque para Buscar";
"ENABLE_TAP_TO_SEEK_DESC" = "Vá para qualquer lugar em um vídeo tocando uma vez na barra de busca";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Desativar gesto de puxar para tela cheia";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Desativa o gesto de arrastar para entrar em tela cheia vertical. Aplica-se apenas a vídeos em paisagem.";
"ALWAYS_USE_REMAINING_TIME" = "Sempre usar o tempo restante";
"ALWAYS_USE_REMAINING_TIME_DESC" = "Altera o padrão para mostrar o tempo restante na barra do player.";
"DISABLE_TOGGLE_TIME_REMAINING" = "Desativar alternar tempo restante";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Desativa a alteração do tempo decorrido para o tempo restante. Use com outra configuração para mostrar sempre o tempo restante.";
"DISABLE_ENGAGEMENT_OVERLAY" = "Desativar sobreposição de engajamento em tela cheia";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Desativa o gesto de deslizar para cima e a lista de vídeos sugeridos em tela cheia";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Ocultar Visualizações de comentários sob o player";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Oculta a Prévia de comentário no botão de comentários";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Ocultar mini visualização de reprodução automática";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Oculta a pequena caixa de vídeo sugerida perto do título em tela cheia";
"HIDE_HUD_MESSAGES" = "Ocultar Mensagens do HUD";
"HIDE_HUD_MESSAGES_DESC" = "Exemplo: Legendas/CC ativadas/desativadas, A repetição do vídeo está ativada,...";
"HIDE_COLLAPSE_BUTTON" = "Ocultar Botão de Recolhimento";
"HIDE_COLLAPSE_BUTTON_DESC" = "Oculta o botão de seta para recolher que era exibido no canto superior esquerdo do player de vídeo.";
"HIDE_SPEED_TOAST" = "Ocultar Toast de Velocidade";
"HIDE_SPEED_TOAST_DESC" = "Ocultar o popup de Velocidade 2X ao segurar o player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Configurações do Aplicativo";
"HIDE_ACCOUNT_SECTION" = "Ocultar a sessão \"Conta\"";
"HIDE_AUTOPLAY_SECTION" = "Ocultar a sessão \"Reprodução automática\"";
"HIDE_TRYNEWFEATURES_SECTION" = "Ocultar a sessão \"Experimente novos recursos\"";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Ocultar a sessão \"Preferências de qualidade de vídeo\"";
"HIDE_NOTIFICATIONS_SECTION" = "Ocultar a sessão \"Notificações\"";
"HIDE_MANAGEALLHISTORY_SECTION" = "Ocultar a sessão \"Gerencie todo o histórico\"";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Ocultar a sessão \"Seus dados no YouTube\"";
"HIDE_PRIVACY_SECTION" = "Ocultar a sessão \"Privacidade\"";
"HIDE_LIVECHAT_SECTION" = "Ocultar a sessão \"Chat ao vivo\"";
// Theme
"THEME_OPTIONS" = "Opções de Temas";
"OLED_DARK_THEME" = "Modo escuro OLED";
"OLED_DARK_THEME_2" = "Modo escuro OLED";
"OLED_DARK_THEME_DESC" = "Verdadeiro tema escuro. Pode não funcionar corretamente em alguns casos. App restart is required after you enable/disable this option.";
"OLD_DARK_THEME" = "Antigo tema escuro";
"OLD_DARK_THEME_DESC" = "Tema escuro do YouTube antigo (tema cinza). A reinicialização do app é necessária.";
"DEFAULT_THEME" = "Padrão";
"DEFAULT_THEME_DESC" = "Tema escuro padrão do YouTube. A reinicialização do app é necessária.";
"OLED_KEYBOARD" = "Teclado OLED";
"OLED_KEYBOARD_DESC" = "Pode não funcionar corretamente em alguns casos. A reinicialização do app é necessária.";
"LOW_CONTRAST_MODE" = "Modo de Baixo Contraste";
"LOW_CONTRAST_MODE_DESC" = "Esta opção terá baixo contraste dos textos e botões, assim como era a antiga interface do YouTube. A reinicialização do app é necessária.";
"LCM_SELECTOR" = "Seleção do modo de baixo contraste";
"DEFAULT_LOWCONTRASTMODE" = "(Padrão) LowContrastMode";
"CUSTOM_LOWCONTRASTMODE" = "(Cor Personalizada) LowContrastMode";
// Miscellaneous
"MISCELLANEOUS" = "Diversos";
"PLAYBACK_IN_FEEDS" = "Reprodução nos feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Sempre ativada";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Somente Wi-Fi";
"PLAYBACK_IN_FEEDS_OFF" = "Desativada";
"NEW_SETTINGS_UI" = "Nova Interface de Configurações";
"NEW_SETTINGS_UI_DESC" = "Usa a nova Interface de configurações agrupadas. Pode ocultar algumas configurações";
"ENABLE_YT_STARTUP_ANIMATION" = "Ative a animação de inicialização do YouTube";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
"HIDE_MODERN_INTERFACE" = "Ocultar Interface Moderna (YTNoModernUI)";
"HIDE_MODERN_INTERFACE_DESC" = "Ative esta opção para ocultar qualquer elemento moderno adicionado pelo YouTube. Remove a iluminação cinematogrática, design arredondado e muito mais. A reinicialização do app é necessária.";
"IPAD_LAYOUT" = "Layout do iPad";
"IPAD_LAYOUT_DESC" = "Use isso apenas se quiser ter o layout do iPad no seu iPhone/iPod atual. A reinicialização do app é necessária.";
"IPHONE_LAYOUT" = "Layout do iPhone";
"IPHONE_LAYOUT_DESC" = "Use isso apenas se quiser ter o layout do iPhone no seu iPad atual. A reinicialização do app é necessária.";
"CAST_CONFIRM" = "Alerta de confirmação antes de transmitir (YTCastConfirm)";
"CAST_CONFIRM_DESC" = "Mostra um alerta de confirmação antes da transmissão para evitar o sequestro acidental da TV.";
"CASTING" = "Transmissão";
"MSG_ARE_YOU_SURE" = "Tem certeza de que deseja começar a transmitir?";
"MSG_YES" = "Sim";
"MSG_CANCEL" = "Cancelar";
"NEW_MINIPLAYER_STYLE" = "Novo estilo de barra de miniplayer (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "A reinicialização do app é necessária.";
"HIDE_CAST_BUTTON" = "Ocultar o botão Transmitir";
"HIDE_CAST_BUTTON_DESC" = "A reinicialização do app é necessária.";
"VIDEO_PLAYER_BUTTON" = "Botão do Reprodutor de Vídeo";
"VIDEO_PLAYER_BUTTON_DESC" = "Mostra um botão na barra de navegação para abrir vídeos baixados no Reprodutor de video da Apple";
"HIDE_SPONSORBLOCK_BUTTON" = "Ocultar o botão iSponsorBlock na barra de navegação";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"HIDE_HOME_TAB" = "Ocultar guia Início";
"HIDE_HOME_TAB_DESC" = "Tenha cuidado ao ocultar todas as guias";
"FIX_CASTING" = "Corrigir Transmissão";
"FIX_CASTING_DESC" = "Altera alguns sinalizadores AB para corrigir a transmissão";
"ENABLE_FLEX" = "Ativar FLEX";
"ENABLE_FLEX_DESC" = "Ativa o FLEX para depuração (não recomendado). Deixe isso desligado, a menos que você saiba o que está fazendo.";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "Ativar Falsificação da Versão do App (Lite)";
"APP_VERSION_SPOOFER_LITE_DESC" = "Ative isto para usar a Falsificação de Versão (Lite) e selecione sua versão preferida abaixo. A reinicialização do app é necessária.";
"VERSION_SPOOFER_TITLE" = "Selecionar Versão Falsa";
// Other Localization
"APP_RESTART_DESC" = "A reinicialização do app é necessária.";
"CHANGE_APP_ICON" = "Mudar o Ícone do Aplicativo";

View file

@ -1,190 +0,0 @@
// Settings
"VERSION" = "Versiune YTLitePlus: %@";
"VERSION_CHECK" = "Căutați actualizări";
"COPY_SETTINGS" = "Copiere setări";
"COPY_SETTINGS_DESC" = "Copie toate setările curente în clipboard";
"PASTE_SETTINGS" = "Lipire setări";
"PASTE_SETTINGS_DESC" = "Lipire și aplicare setări din clipboard";
"PASTE_SETTINGS_ALERT" = "Aplicați setările din clipboard?";
"EXPORT_SETTINGS" = "Exportă setări";
"EXPORT_SETTINGS_DESC" = "Exportă toate setările curente într-un fișier .txt";
"IMPORT_SETTINGS" = "Importă setări";
"IMPORT_SETTINGS_DESC" = "Apasă pentru a importa setările (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Înlocuire butoane 'Copiere setări' & 'Lipire setări'";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Înlocuiește butoanele cu 'Exportă setări' și 'Importă setări'";
"VIDEO_PLAYER" = "Player Video (Beta)";
"VIDEO_PLAYER_DESC" = "Deschide un video descărcat în player-ul Apple";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Activare gesturi Player";
"VOLUME" = "Volum";
"BRIGHTNESS" = "Luminozitate";
"SEEK" = "Derulare";
"DISABLED" = "Dezactivat";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Distanță minimă mișcare pentru recunoașterea gesturilor";
"SENSITIVITY" = "Sensibilitate";
"SENSITIVITY_DESC" = "Multiplicator gesturi volum și luminozitate";
"PLAYER_GESTURES_TITLE" = "Gesturi Player";
"PLAYER_GESTURES_DESC" = "Configurare gesturi orizontale pentru player";
"TOP_SECTION" = "Secțiune Sus";
"MIDDLE_SECTION" = "Secțiune Mijloc";
"BOTTOM_SECTION" = "Secțiune Jos";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Activare Feedback Haptic";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Opțiuni Overlay Controale Video";
"ENABLE_SHARE_BUTTON" = "Activare buton Partajare";
"ENABLE_SHARE_BUTTON_DESC" = "Activați pentru a adăuga butonul Partajare la controalele video.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Activare buton 'Salvează în Playlist'";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Activați pentru a adăuga butonul 'Salvează în Playlist' la controalele video.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Ascunde umbră butoane Overlay";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Ascunde umbra butoanelor Play/Pauză, Înapoi, Înainte și derulare Înainte/Înapoi.";
"HIDE_RIGHT_PANEL" = "Ascunde panoul lateral în modul ecran complet";
"HIDE_RIGHT_PANEL_DESC" = "Este necesară repornirea aplicației.";
"HIDE_HEATWAVES" = "Ascunde Heatwaves";
"HIDE_HEATWAVES_DESC" = "Ascundere Heatwaves în player-ul video. Este necesară repornirea aplicației.";
"DISABLE_AMBIENT_PORTRAIT" = "Dezactivare Mod Ambiental (Portret)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Dezactivare iluminare în jurul titlului";
"DISABLE_AMBIENT_FULLSCREEN" = "Dezactivare Mod Ambiental (Fullscreen)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Dezactivare iluminare în jurul player-ului";
"FULLSCREEN_TO_THE_RIGHT" = "Ecran complet la dreapta";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Ecran complet mereu cu butonul home în partea dreaptă";
"SEEK_ANYWHERE" = "Gest Derulare Oriunde";
"SEEK_ANYWHERE_DESC" = "Ține apăsat și glisează pe player pentru derulare. Trebuie dezactivată opțiunea YTLite - Hold to speed";
"ENABLE_TAP_TO_SEEK" = "Activare Apasă Pentru Derulare";
"ENABLE_TAP_TO_SEEK_DESC" = "Sari oriunde în video prin apăsarea bării de derulare";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Dezactivare gest intrare fullscreen";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Dezactivează gestul de tragere în jos pentru a intra în fullscreen. Se aplică doar videoclipurilor în mod landscape";
"ALWAYS_USE_REMAINING_TIME" = "Utilizează mereu timp rămas";
"ALWAYS_USE_REMAINING_TIME_DESC" = "Modifică setarea implicită pentru a arăta timpul rămas în bara player-ului";
"DISABLE_TOGGLE_TIME_REMAINING" = "Dezactivare comutator timp rămas";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Dezactivează schimbarea afișării timpului scurs la timp rămas. Utilizați cu setarea 'Utilizează mereu timp rămas' pentru a arăta mereu timpul rămas";
"DISABLE_ENGAGEMENT_OVERLAY" = "Dezactivare secțiune 'Mai multe videoclipuri'";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Dezactivare gestul de glisare în sus și clipurile sugerate în fullscreen";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Ascundere comentarii sub player";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Ascunde comentariile ce apar în butonul pentru secțiunea de comentarii";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Ascundere mini preview redare automată";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Ascunde secțiunea 'Urmează' din apropierea titlului în fullscreen";
"HIDE_HUD_MESSAGES" = "Ascundere Mesaje HUD";
"HIDE_HUD_MESSAGES_DESC" = "Exemplu: Subtitrările sunt activate/dezactivate, Redarea în buclă este activată,...";
"HIDE_COLLAPSE_BUTTON" = "Ascundere Buton Collapse";
"HIDE_COLLAPSE_BUTTON_DESC" = "Ascunde butonul de minimizare Player Video din colțul dreapta sus";
"HIDE_SPEED_TOAST" = "Ascundere Notificare Viteză";
"HIDE_SPEED_TOAST_DESC" = "Ascunde notificarea de viteză 2X la menținerea ecranului apăsat în timpul redării";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Opțiuni Overlay Setări Aplicație";
"HIDE_ACCOUNT_SECTION" = "Ascunde secțiunea \"Cont\"";
"HIDE_AUTOPLAY_SECTION" = "Ascunde secțiunea \"Redare automată\"";
"HIDE_TRYNEWFEATURES_SECTION" = "Ascunde secțiunea \"Încearcă funcții noi\"";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Ascunde secțiunea \"Preferințe privind calitatea video\"";
"HIDE_NOTIFICATIONS_SECTION" = "Ascunde secțiunea \"Notificări\"";
"HIDE_MANAGEALLHISTORY_SECTION" = "Ascunde secțiunea \"Gestionează întregul istoric\"";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Ascunde secțiunea \"Datele tale din YouTube\"";
"HIDE_PRIVACY_SECTION" = "Ascunde secțiunea \"Confidențialitate\"";
"HIDE_LIVECHAT_SECTION" = "Ascunde secțiunea \"Chat live\"";
// Theme
"THEME_OPTIONS" = "Opțiuni temă";
"OLED_DARK_THEME" = "Mod Întunecat OLED";
"OLED_DARK_THEME_2" = "Mod Întunecat OLED";
"OLED_DARK_THEME_DESC" = "Este posibil să nu funcționeze corect în anumite cazuri. Este necesară repornirea aplicației după ce această opțiune este activată/dezactivată.";
"OLD_DARK_THEME" = "Mod întunecat vechi";
"OLD_DARK_THEME_DESC" = "Tema întunecată veche (gri) a YouTube-ului. Este necesară repornirea aplicației.";
"DEFAULT_THEME" = "Temă implicită";
"DEFAULT_THEME_DESC" = "Tema întunecată implicită a YouTube-ului. Este necesară repornirea aplicației.";
"OLED_KEYBOARD" = "Tastatură OLED";
"OLED_KEYBOARD_DESC" = "Este posibil să nu funcționeze corect în anumite cazuri. Este necesară repornirea aplicației.";
"LOW_CONTRAST_MODE" = "Mod Contrast Scăzut";
"LOW_CONTRAST_MODE_DESC" = "Această opțiune va scădea contrastul textului și butoanelor, similar cu interfața veche YouTube. Este necesară repornirea aplicației.";
"LCM_SELECTOR" = "Selecție Mod Contrast Scăzut";
"DEFAULT_LOWCONTRASTMODE" = "(Implicit) LowContrastMode";
"CUSTOM_LOWCONTRASTMODE" = "(Culoare personalizată) LowContrastMode";
// Miscellaneous
"MISCELLANEOUS" = "Diverse";
"PLAYBACK_IN_FEEDS" = "Redare în feeduri";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Activat mereu";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Numai prin Wi-Fi";
"PLAYBACK_IN_FEEDS_OFF" = "Dezactivat";
"NEW_SETTINGS_UI" = "Interfață Nouă Setări";
"NEW_SETTINGS_UI_DESC" = "Utilizează noua interfață pentru setări. Este posibil ca unele setări să fie ascunse";
"ENABLE_YT_STARTUP_ANIMATION" = "Activare animație de pornire YouTube";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
"HIDE_MODERN_INTERFACE" = "Ascundere Interfață Modernă (YTNoModernUI)";
"HIDE_MODERN_INTERFACE_DESC" = "Activați pentru a ascunde orice Element Modern adăugat de YouTube. Șterge Mod Ambiental, Design Rotunjit, etc. Este necesară repornirea aplicației.";
"IPAD_LAYOUT" = "Aspect iPad";
"IPAD_LAYOUT_DESC" = "Activați doar dacă doriți să aveți aspectul de pe iPad pe iPhone/iPod-ul dvs. Este necesară repornirea aplicației.";
"IPHONE_LAYOUT" = "Aspect iPhone";
"IPHONE_LAYOUT_DESC" = "Activați doar dacă doriți să aveți aspectul de pe iPhone pe iPad-ul dvs. Este necesară repornirea aplicației.";
"CAST_CONFIRM" = "Alertă de confirmare înainte de proiectare (YTCastConfirm)";
"CAST_CONFIRM_DESC" = "Afișează o alertă de confirmare înainte de a proiecta, pentru a preveni deturnarea accidentală a TV-ului.";
"CASTING" = "Proiectare";
"MSG_ARE_YOU_SURE" = "Sunteți sigur că doriți să proiectați?";
"MSG_YES" = "Da";
"MSG_CANCEL" = "Anulare";
"NEW_MINIPLAYER_STYLE" = "Stil nou bară Miniplayer (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "Este necesară repornirea aplicației.";
"HIDE_CAST_BUTTON" = "Ascundere buton Proiectare";
"HIDE_CAST_BUTTON_DESC" = "Este necesară repornirea aplicației.";
"VIDEO_PLAYER_BUTTON" = "Buton Player Video";
"VIDEO_PLAYER_BUTTON_DESC" = "Arată un buton în bara de navigație pentru a deschide videoul descărcat în player-ul Apple";
"HIDE_SPONSORBLOCK_BUTTON" = "Ascundere buton iSponsorBlock în bara de navigație";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"HIDE_HOME_TAB" = "Ascunde Tabul Acasă";
"HIDE_HOME_TAB_DESC" = "Ai grijă să nu ascunzi toate taburile";
"FIX_CASTING" = "Repară Casting";
"FIX_CASTING_DESC" = "Modifică unii parametri A/B pentru a repara castingul";
"ENABLE_FLEX" = "Activare FLEX";
"ENABLE_FLEX_DESC" = "Activați FLEX pentru depanare (nerecomandat). Lăsați această opțiune dezactivată dacă nu știți ce faceți.";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "Activare Spoofer Versiune Aplicație (Lite)";
"APP_VERSION_SPOOFER_LITE_DESC" = "Activați pentru a utiliza Version Spoofer (Lite) și alegeți versiunea preferată. Este necesară repornirea aplicației.";
"VERSION_SPOOFER_TITLE" = "Version Spoofer Picker";
// Other Localization
"APP_RESTART_DESC" = "Este necesară repornirea aplicației.";
"CHANGE_APP_ICON" = "Schimbă iconița aplicației";

View file

@ -1,190 +0,0 @@
// Settings
"VERSION" = "YTLitePlus's version: %@";
"VERSION_CHECK" = "Tap to check for update!";
"COPY_SETTINGS" = "Copy Settings";
"COPY_SETTINGS_DESC" = "Copy all current settings to the clipboard";
"PASTE_SETTINGS" = "Paste Settings";
"PASTE_SETTINGS_DESC" = "Paste settings from clipboard and apply";
"PASTE_SETTINGS_ALERT" = "Apply settings from clipboard?";
"EXPORT_SETTINGS" = "Export Settings";
"EXPORT_SETTINGS_DESC" = "Exports all current settings into a .txt file";
"IMPORT_SETTINGS" = "Import Settings";
"IMPORT_SETTINGS_DESC" = "Press to import settings (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Enable Haptic Feedback";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Controls Overlay Options";
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
"HIDE_HEATWAVES" = "Hide Heatwaves";
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title";
"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player";
"FULLSCREEN_TO_THE_RIGHT" = "Fullscreen to the Right";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Always enter fullscreen with home button on the right side.";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek";
"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos.";
"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time";
"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar.";
"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time.";
"DISABLE_ENGAGEMENT_OVERLAY" = "Disable fullscreen engagement overlay";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Disable the swipe-up gesture and suggested videos list in fullscreen";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Hide Comment previews under player";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Hide comment spoiler in comments button";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Hide autoplay mini preview";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Hide the small suggested video box near the title in fullscreen";
"HIDE_HUD_MESSAGES" = "Скрыть сообщения плеера";
"HIDE_HUD_MESSAGES_DESC" = "Скрывает надписи YouTube, появляющиеся поверх видео.";
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
"HIDE_ACCOUNT_SECTION" = "Hide \"Account\" Section";
"HIDE_AUTOPLAY_SECTION" = "Hide \"Autoplay\" Section";
"HIDE_TRYNEWFEATURES_SECTION" = "Hide \"Try New Features\" Section";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide \"Video quality preferences\" Section";
"HIDE_NOTIFICATIONS_SECTION" = "Hide \"Notifications\" Section";
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide \"Manage all history\" Section";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide \"Your data in YouTube\" Section";
"HIDE_PRIVACY_SECTION" = "Hide \"Privacy\" Section";
"HIDE_LIVECHAT_SECTION" = "Hide \"Live Chat\" Section";
// Theme
"THEME_OPTIONS" = "Theme Options";
"OLED_DARK_THEME" = "OLED dark theme";
"OLED_DARK_THEME_2" = "OLED dark theme";
"OLED_DARK_THEME_DESC" = "True dark theme. Might not work correctly in some cases. App restart is required after you enable/disable this option.";
"OLD_DARK_THEME" = "Old dark theme";
"OLD_DARK_THEME_DESC" = "Old YouTube's dark theme (grey theme). App restart is required.";
"DEFAULT_THEME" = "Default";
"DEFAULT_THEME_DESC" = "Default dark(er) theme of YouTube. App restart is required.";
"OLED_KEYBOARD" = "OLED-клавиатура (Бета)";
"OLED_KEYBOARD_DESC" = "Возможно, на некоторых устройствах будет работать криво. Потребуется перезагрузка.";
"LOW_CONTRAST_MODE" = "Low Contrast Mode";
"LOW_CONTRAST_MODE_DESC" = "This option will Low Contrast of the texts and buttons just like how the old YouTube Interface was. App restart is required.";
"LCM_SELECTOR" = "Low contrast mode selection";
"DEFAULT_LOWCONTRASTMODE" = "(Default) LowContrastMode";
"CUSTOM_LOWCONTRASTMODE" = "(Custom Color) LowContrastMode";
// Miscellaneous
"MISCELLANEOUS" = "Miscellaneous";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
"HIDE_MODERN_INTERFACE" = "Hide Modern Interface (YTNoModernUI)";
"HIDE_MODERN_INTERFACE_DESC" = "Toggle this on to hide any Modern Element added by YouTube. Removes Ambient Mode, Rounded Design & More. App restart is required.";
"IPAD_LAYOUT" = "iPad Layout";
"IPAD_LAYOUT_DESC" = "only use this if you want to have the iPad Layout on your current iPhone/iPod. App restart is required.";
"IPHONE_LAYOUT" = "iPhone Layout";
"IPHONE_LAYOUT_DESC" = "only use this if you want to have the iPhone Layout on your current iPad. App restart is required.";
"CAST_CONFIRM" = "Confirm alert before casting (YTCastConfirm)";
"CAST_CONFIRM_DESC" = "Show a confirm alert before casting to prevent accidentally hijacking TV.";
"CASTING" = "Castings";
"MSG_ARE_YOU_SURE" = "Are you sure you want to start casting?";
"MSG_YES" = "Yes";
"MSG_CANCEL" = "Cancel";
"NEW_MINIPLAYER_STYLE" = "Мини-плеер в стиле iPad (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "Потребуется перезагрузка.";
"HIDE_CAST_BUTTON" = "Скрыть кнопку «Транслировать»";
"HIDE_CAST_BUTTON_DESC" = "Потребуется перезагрузка.";
"VIDEO_PLAYER_BUTTON" = "Video Player Button";
"VIDEO_PLAYER_BUTTON_DESC" = "Show a button in the navigation bar to open downloaded videos in the Apple player";
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "Enable FLEX";
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "Enable App Version Spoofer (Lite)";
"APP_VERSION_SPOOFER_LITE_DESC" = "Enable this to use the Version Spoofer (Lite) and select your perferred version below. App restart is required.";
"VERSION_SPOOFER_TITLE" = "Version Spoofer Picker";
// Other Localization
"APP_RESTART_DESC" = "App restart is required.";
"CHANGE_APP_ICON" = "Change App Icon";

View file

@ -1,205 +0,0 @@
/* Read me:
- How to translate YTLitePlus (if your language already exists then feel free to check it and/or improve it):
1. Fork YTLitePlus repo
2. Duplicate the template.lproj folder, and edit the duplicated folder's name to your <lang_code>.lproj id.
For example: <ru.lproj> for Russia. For more details, visit: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
3. Translate each line below after each =
4. Open a Pull Request
- You can also add your localization to YTABConfig, YouPiP, YTUHD, Return YouTube Dislike. The process is the same:
https://github.com/PoomSmart/YTABConfig/tree/main/layout/Library/Application%20Support/YTABC.bundle
https://github.com/PoomSmart/YouPiP/tree/main/layout/Library/Application%20Support/YouPiP.bundle
https://github.com/PoomSmart/YTUHD/tree/master/layout/Library/Application%20Support/YTUHD.bundle
https://github.com/PoomSmart/Return-YouTube-Dislikes/tree/main/layout/Library/Application%20Support/RYD.bundle
*/
// Settings
"VERSION" = "YTLitePlus's version: %@";
"VERSION_CHECK" = "Tap to check for update!";
"COPY_SETTINGS" = "Copy settings";
"COPY_SETTINGS_DESC" = "Copy all current settings to the clipboard";
"PASTE_SETTINGS" = "Paste settings";
"PASTE_SETTINGS_DESC" = "Paste settings from clipboard and apply";
"PASTE_SETTINGS_ALERT" = "Apply settings from clipboard?";
"EXPORT_SETTINGS" = "Export settings";
"EXPORT_SETTINGS_DESC" = "Exports all current settings into a .txt file";
"IMPORT_SETTINGS" = "Import settings";
"IMPORT_SETTINGS_DESC" = "Press to import settings (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy settings' & 'Paste settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export settings' and 'Import settings'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Enable Haptic Feedback";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Controls Overlay Options";
"ENABLE_SHARE_BUTTON" = "Enable Share Button";
"ENABLE_SHARE_BUTTON_DESC" = "Enable the Share Button in video controls overlay.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Enable 'Save To Playlist' Button";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Enable the 'Save To Playlist' Button in video controls overlay.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Hide Shadow Overlay Buttons";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Hide the Shadow Overlay on the Play/Pause, Previous, Next, Forward & Rewind Buttons.";
"HIDE_RIGHT_PANEL" = "Hide the right panel in fullscreen mode";
"HIDE_RIGHT_PANEL_DESC" = "App restart is required.";
"HIDE_HEATWAVES" = "Hide Heatwaves";
"HIDE_HEATWAVES_DESC" = "Hides the Heatwaves in the video player. App restart is required.";
"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title";
"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player";
"FULLSCREEN_TO_THE_RIGHT" = "Fullscreen to the Right";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Always enter fullscreen with home button on the right side.";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek";
"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos.";
"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time";
"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar.";
"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time.";
"DISABLE_ENGAGEMENT_OVERLAY" = "Disable fullscreen engagement overlay";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Disable the swipe-up gesture and suggested videos list in fullscreen";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Hide Comment previews under player";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Hide comment spoiler in comments button";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Hide autoplay mini preview";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Hide the small suggested video box near the title in fullscreen";
"HIDE_HUD_MESSAGES" = "Hide HUD messages";
"HIDE_HUD_MESSAGES_DESC" = "Hides snackbars that display for certain actions (e.g., CC turned on/off)";
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "App Settings Overlay Options";
"HIDE_ACCOUNT_SECTION" = "Hide \"Account\" Section";
"HIDE_AUTOPLAY_SECTION" = "Hide \"Autoplay\" Section";
"HIDE_TRYNEWFEATURES_SECTION" = "Hide \"Try New Features\" Section";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Hide \"Video quality preferences\" Section";
"HIDE_NOTIFICATIONS_SECTION" = "Hide \"Notifications\" Section";
"HIDE_MANAGEALLHISTORY_SECTION" = "Hide \"Manage all history\" Section";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Hide \"Your data in YouTube\" Section";
"HIDE_PRIVACY_SECTION" = "Hide \"Privacy\" Section";
"HIDE_LIVECHAT_SECTION" = "Hide \"Live Chat\" Section";
// Theme
"THEME_OPTIONS" = "Theme Options";
"OLED_DARK_THEME" = "OLED dark theme";
"OLED_DARK_THEME_2" = "OLED dark theme";
"OLED_DARK_THEME_DESC" = "True dark theme. Might not work correctly in some cases. App restart is required after you enable/disable this option.";
"OLD_DARK_THEME" = "Old dark theme";
"OLD_DARK_THEME_DESC" = "Old YouTube's dark theme (grey theme). App restart is required.";
"DEFAULT_THEME" = "Default";
"DEFAULT_THEME_DESC" = "Default dark(er) theme of YouTube. App restart is required.";
"OLED_KEYBOARD" = "OLED Keyboard";
"OLED_KEYBOARD_DESC" = "Might not work correctly in some cases. App restart is required.";
"LOW_CONTRAST_MODE" = "Low Contrast Mode";
"LOW_CONTRAST_MODE_DESC" = "This option will Low Contrast of the texts and buttons just like how the old YouTube Interface was. App restart is required.";
"LCM_SELECTOR" = "Low contrast mode selection";
"DEFAULT_LOWCONTRASTMODE" = "(Default) LowContrastMode";
"CUSTOM_LOWCONTRASTMODE" = "(Custom Color) LowContrastMode";
// Miscellaneous
"MISCELLANEOUS" = "Miscellaneous";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "Enable YouTube startup animation";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
"HIDE_MODERN_INTERFACE" = "Disable Modern YouTube Interface (YTNoModernUI)";
"HIDE_MODERN_INTERFACE_DESC" = "This reverts the YouTube app to go back to a more traditional design from v17.38.10. This also removes some rounded elements, ambient mode, and other modern features. App restart is required.";
"IPAD_LAYOUT" = "iPad Layout";
"IPAD_LAYOUT_DESC" = "only use this if you want to have the iPad Layout on your current iPhone/iPod. App restart is required.";
"IPHONE_LAYOUT" = "iPhone Layout";
"IPHONE_LAYOUT_DESC" = "only use this if you want to have the iPhone Layout on your current iPad. App restart is required.";
"CAST_CONFIRM" = "Confirm alert before casting (YTCastConfirm)";
"CAST_CONFIRM_DESC" = "Show a confirm alert before casting to prevent accidentally hijacking TV.";
"CASTING" = "Castings";
"MSG_ARE_YOU_SURE" = "Are you sure you want to start casting?";
"MSG_YES" = "Yes";
"MSG_CANCEL" = "Cancel";
"NEW_MINIPLAYER_STYLE" = "New mini player bar style (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "App restart is required.";
"HIDE_CAST_BUTTON" = "Hide Cast button";
"HIDE_CAST_BUTTON_DESC" = "App restart is required.";
"VIDEO_PLAYER_BUTTON" = "Video Player Button";
"VIDEO_PLAYER_BUTTON_DESC" = "Show a button in the navigation bar to open downloaded videos in the Apple player";
"HIDE_SPONSORBLOCK_BUTTON" = "Hide iSponsorBlock button in the Navigation bar";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "Enable FLEX";
"ENABLE_FLEX_DESC" = "Enable FLEX for debugging (not recommended). Leave this off unless you know what you are doing.";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "Enable App Version Spoofer (Lite)";
"APP_VERSION_SPOOFER_LITE_DESC" = "Enable this to use the Version Spoofer (Lite) and select your perferred version below. App restart is required.";
"VERSION_SPOOFER_TITLE" = "Version Spoofer Picker";
// Other Localization
"APP_RESTART_DESC" = "App restart is required.";
"CHANGE_APP_ICON" = "Change App Icon";

View file

@ -1,190 +0,0 @@
// Settings
"VERSION" = "YTLitePlus'ın sürümü: %@";
"VERSION_CHECK" = "Güncelleme kontrolü için dokun!";
"COPY_SETTINGS" = "Ayarları Kopyala";
"COPY_SETTINGS_DESC" = "Tüm mevcut ayarları panoya kopyala";
"PASTE_SETTINGS" = "Ayarları Yapıştır";
"PASTE_SETTINGS_DESC" = "Panodaki ayarları yapıştır ve uygula";
"PASTE_SETTINGS_ALERT" = "Panodan ayarları uygulamak istiyor musun?";
"EXPORT_SETTINGS" = "Ayarları Dışa Aktar";
"EXPORT_SETTINGS_DESC" = "Tüm mevcut ayarları bir .txt dosyasına dışa aktarır";
"IMPORT_SETTINGS" = "Ayarları İçe Aktar";
"IMPORT_SETTINGS_DESC" = "Ayarları içe aktarmak için basın (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "'Ayarları Kopyala' ve 'Ayarları Yapıştır' Düğmelerini Değiştir";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Düğmeleri 'Ayarları Dışa Aktar' ve 'Ayarları İçe Aktar' ile değiştirir";
"VIDEO_PLAYER" = "Video Oynatıcı (Beta)";
"VIDEO_PLAYER_DESC" = "İndirilen bir videoyu Apple oynatıcısında aç";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Oynatıcı Hareketlerini Etkinleştir";
"VOLUME" = "Ses";
"BRIGHTNESS" = "Parlaklık";
"SEEK" = "Arama";
"DISABLED" = "Devre Dışı";
"DEADZONE" = "Ölü Bölge";
"DEADZONE_DESC" = "Bir hareketin tanınması için minimum mesafe";
"SENSITIVITY" = "Hassasiyet";
"SENSITIVITY_DESC" = "Ses ve parlaklık hareketleri için çarpan";
"PLAYER_GESTURES_TITLE" = "Oynatıcı Hareketleri";
"PLAYER_GESTURES_DESC" = "Oynatıcı için yatay kaydırma hareketlerini yapılandır";
"TOP_SECTION" = "Üst Bölüm";
"MIDDLE_SECTION" = "Orta Bölüm";
"BOTTOM_SECTION" = "Alt Bölüm";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Haptik(titreşim) Geri Bildirimi Etkinleştir";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Video Kontrol Seç.";
"ENABLE_SHARE_BUTTON" = "Paylaş Butonunu Aç";
"ENABLE_SHARE_BUTTON_DESC" = "Video kontrolünde Paylaş Butonunu aç.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "'Listeye Kaydet' Butonunu Aç";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Video kontrolünde 'Listeye Kaydet' Butonunu aç.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Gölge Düğmelerini Gizle";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Oynat/Duraklat, Önceki, Sonraki, İleri/Geri Düğmelerindeki gölgeyi gizle.";
"HIDE_RIGHT_PANEL" = "Tam ekranda sağ paneli gizle";
"HIDE_RIGHT_PANEL_DESC" = "Uyg. yeniden başlatılmalı.";
"HIDE_HEATWAVES" = "Sıcak Dalgaları Gizle";
"HIDE_HEATWAVES_DESC" = "Sıcak Dalgaları gizler. Uyg. yeniden başlatılmalı.";
"DISABLE_AMBIENT_PORTRAIT" = "Ortam Modunu Kapat (Dikey)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Video başlığı çevresindeki aydınlatmayı kapat";
"DISABLE_AMBIENT_FULLSCREEN" = "Ortam Modunu Kapat (Tam Ekran)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Video oynatıcının çevresindeki aydınlatmayı kapat";
"FULLSCREEN_TO_THE_RIGHT" = "Tam Ekran Sağda";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Tam ekrana sağda ev düğmesi ile gir.";
"SEEK_ANYWHERE" = "Her Yerde Ara";
"SEEK_ANYWHERE_DESC" = "Video oynatıcıda basılı tutarak sürükleyin. YTLite - Hızlandırmak için basılı tutmayı kapatmanız gerek.";
"ENABLE_TAP_TO_SEEK" = "Dokunarak Ara";
"ENABLE_TAP_TO_SEEK_DESC" = "Arama çubuğuna tek dokunarak videonun herhangi bir yerine git";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Tam ekran çekme hareketini kapat";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Dikey tam ekrana geçmek için çekme hareketini kapat. Sadece yatay videolar için geçerli.";
"ALWAYS_USE_REMAINING_TIME" = "Her zaman kalan süreyi göster";
"ALWAYS_USE_REMAINING_TIME_DESC" = "Oynatıcı çubuğunda kalan süreyi gösterir.";
"DISABLE_TOGGLE_TIME_REMAINING" = "Kalan zamanı değiştirmeyi kapat";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Geçen zamanı kalan zamanla değiştirmeyi kapatır.";
"DISABLE_ENGAGEMENT_OVERLAY" = "Tam ekranda kaplamayı kapat";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Tam ekranda yukarı kaydırma hareketini ve önerilen videoları kapat";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Oynatıcının Altındaki Yorum Önizlemelerini Gizle";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Video oynatıcının altındaki yorum önizlemelerini gizler.";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Otomatik Oynatma Mini Önizlemesini Gizle";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Tam ekranda başlık yakınındaki küçük önerilen video kutusunu gizle";
"HIDE_HUD_MESSAGES" = "HUD mesajlarını gizle";
"HIDE_HUD_MESSAGES_DESC" = "Belirli işlemler için görüntülenen bildirim çubuklarını gizler (ör. CC açıldı/kapandı)";
"HIDE_COLLAPSE_BUTTON" = "Daraltma Düğmesini Gizle";
"HIDE_COLLAPSE_BUTTON_DESC" = "Video oynatıcıda sol üstte görünen ok ile daraltma düğmesini gizler.";
"HIDE_SPEED_TOAST" = "Hız Bildirimini Gizle";
"HIDE_SPEED_TOAST_DESC" = "Oynatıcıya basılı tutarken 2X Hız bildirimini gizle";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Uyg. Ayarları Kaplama Seç.";
"HIDE_ACCOUNT_SECTION" = "\"Hesap\" Bölümünü Gizle";
"HIDE_AUTOPLAY_SECTION" = "\"Otomatik Oynatma\" Bölümünü Gizle";
"HIDE_TRYNEWFEATURES_SECTION" = "\"Yeni Özellikler\" Bölümünü Gizle";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "\"Video Kalite\" Bölümünü Gizle";
"HIDE_NOTIFICATIONS_SECTION" = "\"Bildirimler\" Bölümünü Gizle";
"HIDE_MANAGEALLHISTORY_SECTION" = "\"Tüm Geçmişi Yönet\" Bölümünü Gizle";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "\"YouTube Verileriniz\" Bölümünü Gizle";
"HIDE_PRIVACY_SECTION" = "\"Gizlilik\" Bölümünü Gizle";
"HIDE_LIVECHAT_SECTION" = "\"Canlı Sohbet\" Bölümünü Gizle";
// Theme
"THEME_OPTIONS" = "Tema Seç";
"OLED_DARK_THEME" = "OLED koyu tema";
"OLED_DARK_THEME_2" = "OLED koyu tema";
"OLED_DARK_THEME_DESC" = "Gerçek koyu tema. Bazı durumlarda düzgün çalışmayabilir. Yeniden başlatılmalı.";
"OLD_DARK_THEME" = "Eski koyu tema";
"OLD_DARK_THEME_DESC" = "Eski YouTube koyu teması. Yeniden başlatılmalı.";
"DEFAULT_THEME" = "Varsayılan";
"DEFAULT_THEME_DESC" = "YouTube'un varsayılan koyu teması. Yeniden başlatılmalı.";
"OLED_KEYBOARD" = "OLED Klavye (Deneysel)";
"OLED_KEYBOARD_DESC" = "Bazı durumlarda düzgün çalışmayabilir. Yeniden başlatılmalı.";
"LOW_CONTRAST_MODE" = "Düşük Kontrast Modu";
"LOW_CONTRAST_MODE_DESC" = "Metinlerin ve düğmelerin kontrastını düşürür. Yeniden başlatılmalı.";
"LCM_SELECTOR" = "Düşük kontrast modu seçimi";
"DEFAULT_LOWCONTRASTMODE" = "(Varsayılan) DüşükKontrastModu";
"CUSTOM_LOWCONTRASTMODE" = "(Özel Renk) DüşükKontrastModu";
// Miscellaneous
"MISCELLANEOUS" = "Diğer";
"PLAYBACK_IN_FEEDS" = "Akışlarda Oto Oynatma";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Her zaman açık";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Yalnızca Wi-Fi";
"PLAYBACK_IN_FEEDS_OFF" = "Kapalı";
"NEW_SETTINGS_UI" = "Yeni Ayarlar Arayüzü";
"NEW_SETTINGS_UI_DESC" = "Yeni gruplandırılmış ayarlar arayüzünü kullan. Bazı ayarları gizleyebilir.";
"ENABLE_YT_STARTUP_ANIMATION" = "YouTube açılış animasyonunu aç";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
"HIDE_MODERN_INTERFACE" = "Modern Arayüzü Gizle (YTNoModernUI)";
"HIDE_MODERN_INTERFACE_DESC" = "YouTube'un eklediği Modern Öğeleri gizlemek için aç. Yeniden başlatılmalı.";
"IPAD_LAYOUT" = "iPad Düzeni";
"IPAD_LAYOUT_DESC" = "Mevcut iPhone/iPod'unuzda iPad Düzenini kullanmak için aç. Yeniden başlatılmalı.";
"IPHONE_LAYOUT" = "iPhone Düzeni";
"IPHONE_LAYOUT_DESC" = "Mevcut iPad'inizde iPhone Düzenini kullanmak için aç. Yeniden başlatılmalı.";
"CAST_CONFIRM" = "Yayın öncesi onay (YTCastConfirm)";
"CAST_CONFIRM_DESC" = "TV'yi yanlışlıkla kontrol etmeyi önlemek için yayın öncesi onay göster.";
"CASTING" = "Yayınlar";
"MSG_ARE_YOU_SURE" = "Yayın başlatmak istediğinizden emin misiniz?";
"MSG_YES" = "Evet";
"MSG_CANCEL" = "İptal";
"NEW_MINIPLAYER_STYLE" = "Yeni mini oynatıcı çubuğu (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "Yeniden başlatılmalı.";
"HIDE_CAST_BUTTON" = "Yayınla düğmesini gizle";
"HIDE_CAST_BUTTON_DESC" = "Yeniden başlatılmalı.";
"VIDEO_PLAYER_BUTTON" = "Video Oynatıcı Butonu";
"VIDEO_PLAYER_BUTTON_DESC" = "İndirilen videoları Apple oynatıcısında açmak için gezinme çubuğunda bir buton göster";
"HIDE_SPONSORBLOCK_BUTTON" = "Gezinme çubuğunda iSponsorBlock düğmesini gizle";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"HIDE_HOME_TAB" = "Ana Sekmeyi Gizle";
"HIDE_HOME_TAB_DESC" = "Tüm sekmeleri gizlerken dikkatli olun";
"FIX_CASTING" = "Yayınlamayı Düzelt";
"FIX_CASTING_DESC" = "Yayınlamayı düzeltmek için bazı ayarları değiştirir";
"ENABLE_FLEX" = "FLEX'i Aç";
"ENABLE_FLEX_DESC" = "Hata ayıklama için FLEX'i aç (tavsiye edilmez). Ne yaptığınızı bilmiyorsanız kapalı tutun.";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "Uyg. Sürüm Spoofer'ını Aç (Lite)";
"APP_VERSION_SPOOFER_LITE_DESC" = "Sürüm Spoofer (Lite) kullanmak için açın ve sürümü seçin. Yeniden başlatılmalı.";
"VERSION_SPOOFER_TITLE" = "Sürüm Seçici";
// Other Localization
"APP_RESTART_DESC" = "Uyg. yeniden başlatılmalı.";
"CHANGE_APP_ICON" = "Uyg. Simgesini Değiştir";

View file

@ -1,190 +0,0 @@
// Settings
"VERSION" = "Phiên bản YTLitePlus: %@";
"VERSION_CHECK" = "Nhấn để kiểm tra cập nhật!";
"COPY_SETTINGS" = "Sao chép cài đặt";
"COPY_SETTINGS_DESC" = "Sao chép cài đặt hiện tại vào bảng nhớ tạm";
"PASTE_SETTINGS" = "Dán cài đặt";
"PASTE_SETTINGS_DESC" = "Dán cài đặt từ bảng nhớ tạm và áp dụng";
"PASTE_SETTINGS_ALERT" = "Áp dụng các cài đặt?";
"EXPORT_SETTINGS" = "Xuất cài đặt";
"EXPORT_SETTINGS_DESC" = "Xuất tất cài đặt hiện tại vào tệp .txt";
"IMPORT_SETTINGS" = "Nhập cài đặt";
"IMPORT_SETTINGS_DESC" = "Nhấn để nhập cài đặt (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Thay thế nút 'Sao chép cài đặt' và 'Dán cài đặt'";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Thay thế các nút thành 'Xuất cài đặt' và 'Nhập cài đặt'";
"VIDEO_PLAYER" = "Trình phát video (Beta)";
"VIDEO_PLAYER_DESC" = "Mở video đã tải xuống trong trình phát Apple";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Bật cử chỉ trình phát";
"VOLUME" = "Âm lượng";
"BRIGHTNESS" = "Độ sáng";
"SEEK" = "Tua";
"DISABLED" = "Vô hiệu hóa";
"DEADZONE" = "Vùng chết";
"DEADZONE_DESC" = "Khoảng cách tối thiểu để nhận diện cử chỉ";
"SENSITIVITY" = "Độ nhạy";
"SENSITIVITY_DESC" = "Hệ số nhân cho cử chỉ âm lượng và độ sáng";
"PLAYER_GESTURES_TITLE" = "Cử chỉ trình phát";
"PLAYER_GESTURES_DESC" = "Cấu hình cử chỉ vuốt ngang cho trình phát";
"TOP_SECTION" = "Phần trên";
"MIDDLE_SECTION" = "Phần giữa";
"BOTTOM_SECTION" = "Phần dưới";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Bật phản hồi xúc giác";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "Lớp phủ video";
"ENABLE_SHARE_BUTTON" = "Bật nút chia sẻ";
"ENABLE_SHARE_BUTTON_DESC" = "Thêm nút chia sẻ trong trình phát video.";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "Bật nút 'Lưu vào danh sách phát'";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "Thêm nút 'Lưu vào danh sách phát' trong trình phát video.";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "Ẩn bóng các nút";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "Ẩn bóng các nút Phát/Tạm dừng, Trước/Tiếp theo, Tua tới/Tua lại.";
"HIDE_RIGHT_PANEL" = "Ẩn bảng bên phải ở chế độ toàn màn hình";
"HIDE_RIGHT_PANEL_DESC" = "Điều nãy sẽ khiến bạn không thể xem nội dung mô tả, bình luận, v.v ở chế độ toàn màn hình. Cần khởi động lại ứng dụng.";
"HIDE_HEATWAVES" = "Ẩn sóng nhiệt";
"HIDE_HEATWAVES_DESC" = "Ẩn sóng nhiệt khỏi trình phát video. Cần khởi động lại ứng dụng.";
"DISABLE_AMBIENT_PORTRAIT" = "Tắt chế độ môi trường (Chân dung)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Tắt ánh sáng xung quanh tiêu đề video";
"DISABLE_AMBIENT_FULLSCREEN" = "Tắt chế độ môi trường (Toàn màn hình)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Tắt ánh sáng xung quanh trình phát video";
"FULLSCREEN_TO_THE_RIGHT" = "Toàn màn hình bên phải";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Luôn vào chế độ toàn màn hình với nút home ở bên phải.";
"SEEK_ANYWHERE" = "Tua ở mọi nơi";
"SEEK_ANYWHERE_DESC" = "Giữ và kéo bất kỳ đâu trên trình phát video để tua. Bạn phải tắt tùy chỉnh YTLite - Giữ để tua";
"ENABLE_TAP_TO_SEEK" = "Nhấn để tua";
"ENABLE_TAP_TO_SEEK_DESC" = "Nhấn một lần vào thanh tua để tua đến bất kỳ vị trí nào trong video";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Tắt cử chỉ kéo để vào toàn màn hình";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Tắt cử chỉ kéo để vào toàn màn hình dọc. Chỉ áp dụng cho video ngang.";
"ALWAYS_USE_REMAINING_TIME" = "Hiển thị thời gian còn lại";
"ALWAYS_USE_REMAINING_TIME_DESC" = "Luôn hiển thị thời gian còn lại trên thanh trình phát video.";
"DISABLE_TOGGLE_TIME_REMAINING" = "Tắt chuyển đổi thời gian còn lại";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Tắt chức năng chuyển đổi từ thời gian đã phát sang thời gian còn lại. Sử dụng với cài đặt khác để luôn hiển thị thời gian còn lại.";
"DISABLE_ENGAGEMENT_OVERLAY" = "Tắt lớp phủ tương tác toàn màn hình";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Tắt cử chỉ vuốt lên để xem video gợi ý ở chế độ toàn màn hình";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Ẩn bản xem trước bình luận dưới trình phát";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Ngăn tiết lộ nội dung bình luận trong nút bình luận";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Ẩn bản xem trước tự động phát nhỏ";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Ẩn hộp gợi ý video nhỏ gần tiêu đề ở chế độ toàn màn hình";
"HIDE_HUD_MESSAGES" = "Ẩn thông báo HUD";
"HIDE_HUD_MESSAGES_DESC" = "Ẩn các thông báo xuất hiện khi thực hiện các hành động (ví dụ: bật/tắt CC)";
"HIDE_COLLAPSE_BUTTON" = "Ẩn nút thu gọn";
"HIDE_COLLAPSE_BUTTON_DESC" = "Ẩn nút thu gọn (mũi tên) xuất hiện ở góc trái trên của trình phát Video.";
"HIDE_SPEED_TOAST" = "Ẩn thông báo tốc độ";
"HIDE_SPEED_TOAST_DESC" = "Ẩn thông báo tốc độ 2X khi giữ trình phát video";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "Lớp phủ cài đặt";
"HIDE_ACCOUNT_SECTION" = "Ẩn cài đặt \"Chuyển đổi tài khoản\"";
"HIDE_AUTOPLAY_SECTION" = "Ẩn cài đặt \"Tự động phát\"";
"HIDE_TRYNEWFEATURES_SECTION" = "Ẩn cài đặt \"Thử các tính năng mới\"";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "Ẩn cài đặt \"Lựa chọn ưu tiên về chất lượng video\"";
"HIDE_NOTIFICATIONS_SECTION" = "Ẩn cài đặt \"Thông báo\"";
"HIDE_MANAGEALLHISTORY_SECTION" = "Ẩn cài đặt \"Quản lý toàn bộ nhật ký hoạt động\"";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "Ẩn cài đặt \"Dữ liệu của bạn trong YouTube\"";
"HIDE_PRIVACY_SECTION" = "Ẩn cài đặt \"Quyền riêng tư\"";
"HIDE_LIVECHAT_SECTION" = "Ẩn cài đặt \"Trò chuyện trực tiếp\"";
// Theme
"THEME_OPTIONS" = "Tùy chọn giao diện";
"OLED_DARK_THEME" = "Giao diện tối OLED";
"OLED_DARK_THEME_2" = "Giao diện tối OLED";
"OLED_DARK_THEME_DESC" = "Giao diện tối thực sự. Có thể không hoạt động đúng trong một số trường hợp. Cần khởi động lại ứng dụng sau khi bạn bật/tắt tùy chọn này.";
"OLD_DARK_THEME" = "Giao diện tối cũ";
"OLD_DARK_THEME_DESC" = "Giao diện tối cũ của YouTube (giao diện xám). Cần khởi động lại ứng dụng.";
"DEFAULT_THEME" = "Mặc định";
"DEFAULT_THEME_DESC" = "Giao diện mặc định của YouTube. Cần khởi động lại ứng dụng.";
"OLED_KEYBOARD" = "Bàn phím OLED";
"OLED_KEYBOARD_DESC" = "Có thể hoạt động không đúng trong một số trường hợp. Cần khởi động lại ứng dụng.";
"LOW_CONTRAST_MODE" = "Chế độ tương phản thấp";
"LOW_CONTRAST_MODE_DESC" = "Tùy chọn này sẽ giảm tương phản của văn bản và nút giống như giao diện YouTube cũ. Cần khởi động lại ứng dụng.";
"LCM_SELECTOR" = "Chọn chế độ tương phản thấp";
"DEFAULT_LOWCONTRASTMODE" = "(Mặc định) Chế độ tương phản thấp";
"CUSTOM_LOWCONTRASTMODE" = "(Màu tùy chỉnh) Chế độ tương phản thấp";
// Miscellaneous
"MISCELLANEOUS" = "Tùy chọn khác";
"PLAYBACK_IN_FEEDS" = "Phát trong các trang danh sách video";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Luôn bật";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Chỉ Wi-Fi";
"PLAYBACK_IN_FEEDS_OFF" = "Tắt";
"NEW_SETTINGS_UI" = "Giao diện cài đặt mới";
"NEW_SETTINGS_UI_DESC" = "Nhóm các giao diện cài đặt. Một số cài đặt có thể bị ẩn";
"ENABLE_YT_STARTUP_ANIMATION" = "Hoạt ảnh khởi động YouTube";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "Hiển thị hoạt ảnh khi mở YouTube";
"HIDE_MODERN_INTERFACE" = "Giao diện YouTube cũ";
"HIDE_MODERN_INTERFACE_DESC" = "Đưa giao diện cũ của YouTube trở lại từ phiên bản v17.38.10. Loại bỏ một số yếu tố bo tròn, chế độ môi trường, và các tính năng hiện đại khác. Cần khởi động lại ứng dụng.";
"IPAD_LAYOUT" = "Bố cục iPad";
"IPAD_LAYOUT_DESC" = "Chỉ sử dụng nếu muốn có bố cục iPad trên iPhone/iPod của mình. Cần khởi động lại ứng dụng.";
"IPHONE_LAYOUT" = "Bố cục iPhone";
"IPHONE_LAYOUT_DESC" = "Chỉ sử dụng nếu muốn có bố cục iPhone trên iPad của mình. Cần khởi động lại ứng dụng.";
"CAST_CONFIRM" = "Xác nhận trước khi truyền";
"CAST_CONFIRM_DESC" = "Hiển thị thông báo xác nhận trước khi truyền.";
"CASTING" = "Truyền";
"MSG_ARE_YOU_SURE" = "Bạn có chắc chắn muốn bắt đầu truyền không?";
"MSG_YES" = "Có";
"MSG_CANCEL" = "Không";
"NEW_MINIPLAYER_STYLE" = "Trình phát thu nhỏ kiểu mới";
"NEW_MINIPLAYER_STYLE_DESC" = "Thay thế trình phát thu nhỏ mặc định thành (BigYTMiniPlayer). Cần khởi động lại ứng dụng.";
"HIDE_CAST_BUTTON" = "Ẩn nút truyền";
"HIDE_CAST_BUTTON_DESC" = "Cần khởi động lại ứng dụng.";
"VIDEO_PLAYER_BUTTON" = "Nút Trình phát video";
"VIDEO_PLAYER_BUTTON_DESC" = "Hiển thị nút trong thanh điều hướng để mở video đã tải xuống trong trình phát Apple";
"HIDE_SPONSORBLOCK_BUTTON" = "Ẩn nút iSponsorBlock";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "Ẩn cài đặt iSponsorBlock trên thanh điều hướng";
"HIDE_HOME_TAB" = "Ẩn tab Trang chủ";
"HIDE_HOME_TAB_DESC" = "Hãy cẩn thận khi ẩn tất cả các tab";
"FIX_CASTING" = "Sửa truyền";
"FIX_CASTING_DESC" = "Thay đổi một số cờ AB để sửa truyền";
"ENABLE_FLEX" = "Bật FLEX";
"ENABLE_FLEX_DESC" = "Bật FLEX để gỡ lỗi (không khuyến khích). Để tùy chọn này tắt trừ khi bạn biết rõ bạn đang làm gì.";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "Giả mạo phiên bản ứng dụng (Lite)";
"APP_VERSION_SPOOFER_LITE_DESC" = "Bật tính năng này để làm giả phiên bản YouTube (Lite). Chọn phiên bản bạn ưa thích bên dưới. Cần khởi động lại ứng dụng.";
"VERSION_SPOOFER_TITLE" = "Chọn phiên bản giả mạo";
// Other Localization
"APP_RESTART_DESC" = "Cần khởi động lại ứng dụng.";
"CHANGE_APP_ICON" = "Đổi biểu tượng ứng dụng";

View file

@ -1,194 +0,0 @@
// Settings
"VERSION" = "YTLitePlus版本: %@";
"VERSION_CHECK" = "点击检查更新!";
"COPY_SETTINGS" = "复制设置";
"COPY_SETTINGS_DESC" = "将当前所有设置复制到剪贴板";
"PASTE_SETTINGS" = "粘贴设置";
"PASTE_SETTINGS_DESC" = "从剪贴板粘贴设置并应用";
"PASTE_SETTINGS_ALERT" = "应用剪贴板中的设置?";
"EXPORT_SETTINGS" = "导出设置";
"EXPORT_SETTINGS_DESC" = "将当前所有设置导出为txt文件";
"IMPORT_SETTINGS" = "导入设置";
"IMPORT_SETTINGS_DESC" = "从txt文件导入设置";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "替换「复制设置」和「粘贴设置」按钮";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "将按钮替换为「导出设置」和「导入设置」";
"VIDEO_PLAYER" = "视频播放器(测试版)";
"VIDEO_PLAYER_DESC" = "使用系统自带播放器打开下载的视频";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "启用播放器手势";
"VOLUME" = "音量";
"BRIGHTNESS" = "亮度";
"SEEK" = "快进";
"DISABLED" = "禁用";
"DEADZONE" = "盲区";
"DEADZONE_DESC" = "识别手势前需要移动的最小距离";
"SENSITIVITY" = "灵敏度";
"SENSITIVITY_DESC" = "对音量和亮度手势的倍数";
"PLAYER_GESTURES_TITLE" = "播放器手势";
"PLAYER_GESTURES_DESC" = "配置播放器的水平滑动手势";
"TOP_SECTION" = "顶部区域";
"MIDDLE_SECTION" = "中间区域";
"BOTTOM_SECTION" = "底部区域";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "启用触觉反馈";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "视频控件覆盖选项";
"ENABLE_SHARE_BUTTON" = "启用分享按钮";
"ENABLE_SHARE_BUTTON_DESC" = "在播放器覆盖按钮区域中启用分享按钮";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "启用「保存到播放列表」按钮";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "在播放器覆盖按钮区域中启用「保存到播放列表」按钮";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "隐藏按钮阴影效果";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "隐藏播放/暂停、上一个、下一个、前进和后退按钮上的阴影效果";
"HIDE_RIGHT_PANEL" = "隐藏全屏模式中的右侧面板";
"HIDE_RIGHT_PANEL_DESC" = "需要重启应用";
"HIDE_HEATWAVES" = "隐藏Heatwaves";
"HIDE_HEATWAVES_DESC" = "隐藏视频播放器中的Heatwaves需要重启应用";
"DISABLE_AMBIENT_PORTRAIT" = "禁用环境模式(纵向)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "禁用视频标题周围的光效";
"DISABLE_AMBIENT_FULLSCREEN" = "禁用环境模式(全屏)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "禁用视频播放器周围的光效";
"FULLSCREEN_TO_THE_RIGHT" = "全屏向右";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "进入全屏时始终使主页按钮在右侧";
"SEEK_ANYWHERE" = "任意位置快进手势";
"SEEK_ANYWHERE_DESC" = "按住并拖动视频播放器以快进您必须禁用YTLite的「Hold to speed按住加速」功能";
"ENABLE_TAP_TO_SEEK" = "启用点击快进";
"ENABLE_TAP_TO_SEEK_DESC" = "通过单击进度条跳转到视频的任意位置";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "禁用拉动全屏手势";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "禁用拖动手势进入垂直全屏,仅适用于横向视频";
"ALWAYS_USE_REMAINING_TIME" = "始终使用剩余时间";
"ALWAYS_USE_REMAINING_TIME_DESC" = "将默认设置为在播放器栏中显示剩余时间";
"DISABLE_TOGGLE_TIME_REMAINING" = "禁用切换剩余时间";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "禁用将已用时间更改为剩余时间,与其他设置一起使用以始终显示剩余时间";
"DISABLE_ENGAGEMENT_OVERLAY" = "禁用全屏参与覆盖";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "禁用上滑手势和全屏模式中的建议视频列表";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "隐藏播放器下方的评论预览";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "隐藏评论按钮中的评论预览";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "隐藏自动播放迷你预览";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "隐藏全屏模式下标题附近的小型建议视频框";
"HIDE_HUD_MESSAGES" = "隐藏HUD消息";
"HIDE_HUD_MESSAGES_DESC" = "隐藏某些操作(如开启/关闭字幕)时显示的通知";
"HIDE_COLLAPSE_BUTTON" = "隐藏折叠按钮";
"HIDE_COLLAPSE_BUTTON_DESC" = "隐藏显示在视频播放器左上角的箭头折叠按钮";
"HIDE_SPEED_TOAST" = "隐藏速度提示";
"HIDE_SPEED_TOAST_DESC" = "隐藏按住播放器时显示的2X速度弹窗";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "隐藏设置中的选项";
"HIDE_ACCOUNT_SECTION" = "隐藏「帐户」";
"HIDE_AUTOPLAY_SECTION" = "隐藏「自动播放」";
"HIDE_TRYNEWFEATURES_SECTION" = "隐藏「试用新功能」";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "隐藏「视频画质偏好」";
"HIDE_NOTIFICATIONS_SECTION" = "隐藏「通知」";
"HIDE_MANAGEALLHISTORY_SECTION" = "隐藏「管理所有历史记录」";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "隐藏「YouTube个人数据管理」";
"HIDE_PRIVACY_SECTION" = "隐藏「隐私设置」";
"HIDE_LIVECHAT_SECTION" = "隐藏「实时聊天」";
// Theme
"THEME_OPTIONS" = "主题选项";
"OLED_DARK_THEME" = "OLED暗色主题";
"OLED_DARK_THEME_2" = "OLED暗色主题";
"OLED_DARK_THEME_DESC" = "真正的暗色主题,在某些情况下可能无法正常工作,启用/禁用此选项后需要重启应用";
"OLD_DARK_THEME" = "旧暗色主题";
"OLD_DARK_THEME_DESC" = "旧版YouTube的暗色主题(灰色主题),启用后需要重启应用";
"DEFAULT_THEME" = "默认";
"DEFAULT_THEME_DESC" = "YouTube的默认深色主题启用后需要重启应用";
"OLED_KEYBOARD" = "OLED键盘";
"OLED_KEYBOARD_DESC" = "在某些情况下可能无法正常工作,启用后需要重启应用";
"LOW_CONTRAST_MODE" = "低对比度模式";
"LOW_CONTRAST_MODE_DESC" = "此选项将降低文本和按钮的对比度就像旧的YouTube界面一样启用后需要重启应用";
"LCM_SELECTOR" = "低对比度模式选择";
"DEFAULT_LOWCONTRASTMODE" = "(默认) 低对比度模式";
"CUSTOM_LOWCONTRASTMODE" = "(自定义颜色) 低对比度模式";
// Miscellaneous
"MISCELLANEOUS" = "其它";
"PLAYBACK_IN_FEEDS" = "Feeds后台播放";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "始终开启";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "仅限Wi-Fi";
"PLAYBACK_IN_FEEDS_OFF" = "关闭";
"NEW_SETTINGS_UI" = "新的设置界面";
"NEW_SETTINGS_UI_DESC" = "使用新的分组设置界面,可能会隐藏某些设置";
"ENABLE_YT_STARTUP_ANIMATION" = "启用YouTube启动动画";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
"HIDE_MODERN_INTERFACE" = "禁用现代YouTube界面(YTNoModernUI)";
"HIDE_MODERN_INTERFACE_DESC" = "这会将YouTube应用恢复到v17.38.10之前的传统设计,此操作还会移除某些圆角元素、环境模式和其他现代功能,启用后需要重启应用";
"IPAD_LAYOUT" = "iPad 布局";
"IPAD_LAYOUT_DESC" = "仅当您希望在当前的 iPhone/iPod 上使用 iPad 布局时使用,需要重新启动应用程序";
"IPHONE_LAYOUT" = "iPhone 布局";
"IPHONE_LAYOUT_DESC" = "仅当您希望在当前的 iPad 上使用 iPhone 布局时使用,需要重新启动应用程序";
"CAST_CONFIRM" = "投屏前确认警告 (YTCastConfirm)";
"CAST_CONFIRM_DESC" = "投屏前显示确认警告,以防止意外劫持电视";
"CASTING" = "投屏";
"MSG_ARE_YOU_SURE" = "您确定要开始投屏吗?";
"MSG_YES" = "确定";
"MSG_CANCEL" = "取消";
"NEW_MINIPLAYER_STYLE" = "新的迷你播放器样式 (BigYTMiniPlayer)";
"NEW_MINIPLAYER_STYLE_DESC" = "需要重新启动应用程序";
"HIDE_CAST_BUTTON" = "隐藏投屏按钮";
"HIDE_CAST_BUTTON_DESC" = "需要重新启动应用程序";
"VIDEO_PLAYER_BUTTON" = "视频播放器按钮";
"VIDEO_PLAYER_BUTTON_DESC" = "在导航栏中显示按钮,以便在系统自带播放器中打开已下载的视频";
"HIDE_SPONSORBLOCK_BUTTON" = "隐藏导航栏中的 iSponsorBlock 按钮";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"HIDE_HOME_TAB" = "隐藏首页标签栏";
"HIDE_HOME_TAB_DESC" = "隐藏所有标签栏时请小心";
"FIX_CASTING" = "修复投屏";
"FIX_CASTING_DESC" = "更改一些 AB 标志以修复投屏功能";
"ENABLE_FLEX" = "启用 FLEX";
"ENABLE_FLEX_DESC" = "启用 FLEX 进行调试(不推荐),除非您了解操作,否则请保持关闭状态";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "修改应用程序版本";
"APP_VERSION_SPOOFER_LITE_DESC" = "要修改YouTube版本请在下方选择您偏好的版本号重新启动应用程序生效";
"VERSION_SPOOFER_TITLE" = "版本选择器";
// Other Localization
"APP_RESTART_DESC" = "需要重新启动应用程序";
"CHANGE_APP_ICON" = "更改应用程序图标";

View file

@ -1,204 +0,0 @@
// Settings
"VERSION" = "YTLitePlus 版本:%@";
"VERSION_CHECK" = "檢查更新";
"COPY_SETTINGS" = "Copy Settings";
"COPY_SETTINGS_DESC" = "Copy all current settings to the clipboard";
"PASTE_SETTINGS" = "Paste Settings";
"PASTE_SETTINGS_DESC" = "Paste settings from clipboard and apply";
"PASTE_SETTINGS_ALERT" = "Apply settings from clipboard?";
"EXPORT_SETTINGS" = "Export Settings";
"EXPORT_SETTINGS_DESC" = "Exports all current settings into a .txt file";
"IMPORT_SETTINGS" = "Import Settings";
"IMPORT_SETTINGS_DESC" = "Press to import settings (.txt)";
"REPLACE_COPY_AND_PASTE_BUTTONS" = "Replace 'Copy Settings' & 'Paste Settings' Buttons";
"REPLACE_COPY_AND_PASTE_BUTTONS_DESC" = "Replaces the Buttons to 'Export Settings' and 'Import Settings'";
"VIDEO_PLAYER" = "Video Player (Beta)";
"VIDEO_PLAYER_DESC" = "Open a downloaded video in the Apple player";
// Player Gestures
"PLAYER_GESTURES_TOGGLE" = "Enable Player Gestures";
"VOLUME" = "Volume";
"BRIGHTNESS" = "Brightness";
"SEEK" = "Seek";
"DISABLED" = "Disabled";
"DEADZONE" = "Deadzone";
"DEADZONE_DESC" = "Minimum distance to move before a gesture is recognized";
"SENSITIVITY" = "Sensitivity";
"SENSITIVITY_DESC" = "Multiplier on volume and brightness gestures";
"PLAYER_GESTURES_TITLE" = "Player Gestures";
"PLAYER_GESTURES_DESC" = "Configure horizontal pan gestures for the player";
"TOP_SECTION" = "Top Section";
"MIDDLE_SECTION" = "Middle Section";
"BOTTOM_SECTION" = "Bottom Section";
"PLAYER_GESTURES_HAPTIC_FEEDBACK" = "Enable Haptic Feedback";
// Video controls overlay options
"VIDEO_CONTROLS_OVERLAY_OPTIONS" = "影片區覆蓋按鈕設定";
"ENABLE_SHARE_BUTTON" = "顯示分享按鈕";
"ENABLE_SHARE_BUTTON_DESC" = "在影片覆蓋按鈕區域中顯示分享按鈕";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON" = "顯示「儲存至播放清單」按鈕";
"ENABLE_SAVE_TO_PLAYLIST_BUTTON_DESC" = "在播放器覆蓋按鈕區域中顯示「儲存至播放清單」";
"HIDE_SHADOW_OVERLAY_BUTTONS" = "停用按鈕影子效果";
"HIDE_SHADOW_OVERLAY_BUTTONS_DESC" = "隱藏播放/暫停、上一首、下一首、快轉和倒轉按鈕影子。";
"HIDE_RIGHT_PANEL" = "在全螢幕中隱藏右面板";
"HIDE_RIGHT_PANEL_DESC" = "需要重新啟動應用程式";
"HIDE_HEATWAVES" = "隱藏熱浪";
"HIDE_HEATWAVES_DESC" = "在播放器中隱藏熱浪";
"DISABLE_AMBIENT_PORTRAIT" = "Disable Ambient Mode (Portrait)";
"DISABLE_AMBIENT_PORTRAIT_DESC" = "Disable lighting surrounding video title";
"DISABLE_AMBIENT_FULLSCREEN" = "Disable Ambient Mode (Fullscreen)";
"DISABLE_AMBIENT_FULLSCREEN_DESC" = "Disable lighting surrouding video player";
"FULLSCREEN_TO_THE_RIGHT" = "Fullscreen to the Right";
"FULLSCREEN_TO_THE_RIGHT_DESC" = "Always enter fullscreen with home button on the right side.";
"SEEK_ANYWHERE" = "Seek Anywhere Gesture";
"SEEK_ANYWHERE_DESC" = "Hold and drag on the video player to seek. You must disable YTLite - Hold to speed";
"ENABLE_TAP_TO_SEEK" = "Enable Tap To Seek";
"ENABLE_TAP_TO_SEEK_DESC" = "Jump to anywhere in a video by single-tapping the seek bar";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "Disable pull-to-fullscreen gesture";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "Disable the drag gesture to enter vertical fullscreen. Only applies to landscape videos.";
"ALWAYS_USE_REMAINING_TIME" = "Always use remaining time";
"ALWAYS_USE_REMAINING_TIME_DESC" = "Change the default to show time remaining in the player bar.";
"DISABLE_TOGGLE_TIME_REMAINING" = "Disable toggle time remaining";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "Disables changing time elapsed to time remaining. Use with other setting to always show remaining time.";
"DISABLE_ENGAGEMENT_OVERLAY" = "Disable fullscreen engagement overlay";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "Disable the swipe-up gesture and suggested videos list in fullscreen";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER" = "Hide Comment previews under player";
"HIDE_COMMENT_PREVIEWS_UNDER_PLAYER_DESC" = "Hide comment spoiler in comments button";
"HIDE_AUTOPLAY_MINI_PREVIEW" = "Hide autoplay mini preview";
"HIDE_AUTOPLAY_MINI_PREVIEW_DESC" = "Hide the small suggested video box near the title in fullscreen";
"HIDE_HUD_MESSAGES" = "隱藏 HUD 訊息";
"HIDE_HUD_MESSAGES_DESC" = "例如CC字幕、開啟/關閉、影片循環開啟等...";
"HIDE_COLLAPSE_BUTTON" = "Hide Collapse Button";
"HIDE_COLLAPSE_BUTTON_DESC" = "Hides the Arrow Collapse Button that was shown in the Top Left of the Video Player.";
"HIDE_SPEED_TOAST" = "Hide Speed Toast";
"HIDE_SPEED_TOAST_DESC" = "Hide the 2X Speed popup when holding the player";
// App settings overlay options
"APP_SETTINGS_OVERLAY_OPTIONS" = "應用程式設定隱藏項目";
"HIDE_ACCOUNT_SECTION" = "購買會員與會員資格";
"HIDE_AUTOPLAY_SECTION" = "自動播放";
"HIDE_TRYNEWFEATURES_SECTION" = "";
"HIDE_VIDEOQUALITYPREFERENCES_SECTION" = "影片畫質偏好設定";
"HIDE_NOTIFICATIONS_SECTION" = "通知";
"HIDE_MANAGEALLHISTORY_SECTION" = "管理所有紀錄";
"HIDE_YOURDATAINYOUTUBE_SECTION" = "已連結的應用程式";
"HIDE_PRIVACY_SECTION" = "隱私設定";
"HIDE_LIVECHAT_SECTION" = "聊天室";
// Theme
"THEME_OPTIONS" = "外觀";
"OLED_DARK_THEME" = "OLED 暗黑主題";
"OLED_DARK_THEME_2" = "OLED 暗黑主題";
"OLED_DARK_THEME_DESC" = "全黑主題。此功能不穩定。重新啟動應用程式以套用變更。";
"OLD_DARK_THEME" = "懷舊亮灰主題";
"OLD_DARK_THEME_DESC" = "YouTube 亮灰懷舊暗黑主題。重新啟動應用程式以套用變更。";
"DEFAULT_THEME" = "預設主題";
"DEFAULT_THEME_DESC" = "";
"OLED_KEYBOARD" = "OLED 鍵盤";
"OLED_KEYBOARD_DESC" = "此功能不穩定。重新啟動應用程式以套用變更。";
"LOW_CONTRAST_MODE" = "低對比模式";
"LOW_CONTRAST_MODE_DESC" = "模擬舊式 YouTube。重新啟動應用程式以套用變更。";
"LCM_SELECTOR" = "低對比模式樣是";
"DEFAULT_LOWCONTRASTMODE" = "預設LowContrastMode";
"CUSTOM_LOWCONTRASTMODE" = "自訂顏色LowContrastMode";
// Miscellaneous
"MISCELLANEOUS" = "更多";
"PLAYBACK_IN_FEEDS" = "Playback in feeds";
"PLAYBACK_IN_FEEDS_ALWAYS_ON" = "Always on";
"PLAYBACK_IN_FEEDS_WIFI_ONLY" = "Wi-Fi only";
"PLAYBACK_IN_FEEDS_OFF" = "Off";
"NEW_SETTINGS_UI" = "New Settings UI";
"NEW_SETTINGS_UI_DESC" = "Use new grouped settings UI. May hide some settings";
"ENABLE_YT_STARTUP_ANIMATION" = "啟用 Youtube 歡迎動畫";
"ENABLE_YT_STARTUP_ANIMATION_DESC" = "";
"HIDE_MODERN_INTERFACE" = "懷舊 YouTube 介面YTNoModernUI";
"HIDE_MODERN_INTERFACE_DESC" = "可移除微光效果、曲線按鈕邊緣等等。重新啟動應用程式以套用變更。";
"IPAD_LAYOUT" = "iPad 排版";
"IPAD_LAYOUT_DESC" = "重新啟動應用程式以套用變更";
"IPHONE_LAYOUT" = "iPhone 排版";
"IPHONE_LAYOUT_DESC" = "重新啟動應用程式以套用變更。";
"CAST_CONFIRM" = "在投放前確認YTCastConfirm";
"CAST_CONFIRM_DESC" = "再三確認以避免被家人訐譙";
"CASTING" = "投放";
"MSG_ARE_YOU_SURE" = "是否投放影片?";
"MSG_YES" = "確認";
"MSG_CANCEL" = "取消";
"NEW_MINIPLAYER_STYLE" = "啟用應用程式內的新迷你播放器BigYTMiniPlayer";
"NEW_MINIPLAYER_STYLE_DESC" = "重新啟動應用程式以套用變更。";
"HIDE_CAST_BUTTON" = "隱藏投放按鈕";
"HIDE_CAST_BUTTON_DESC" = "重新啟動應用程式以套用變更。";
"VIDEO_PLAYER_BUTTON" = "Video Player Button";
"VIDEO_PLAYER_BUTTON_DESC" = "Show a button in the navigation bar to open downloaded videos in the Apple player";
"HIDE_SPONSORBLOCK_BUTTON" = "隱藏 iSponsorBlock 按鈕";
"HIDE_SPONSORBLOCK_BUTTON_DESC" = "";
"HIDE_HOME_TAB" = "Hide Home Tab";
"HIDE_HOME_TAB_DESC" = "Be careful when hiding all tabs";
"FIX_CASTING" = "Fix Casting";
"FIX_CASTING_DESC" = "Changes some AB flags to fix casting";
"ENABLE_FLEX" = "啟用 FLEX不建議使用";
"ENABLE_FLEX_DESC" = "如果不知道這是什麼,請勿啟用";
// Version Spoofer
"APP_VERSION_SPOOFER_LITE" = "改變應用程式版本";
"APP_VERSION_SPOOFER_LITE_DESC" = "請在底下選擇版本。重新啟動應用程式以套用變更。";
"VERSION_SPOOFER_TITLE" = "版本選擇器";
// Other Localization
"APP_RESTART_DESC" = "重新啟動應用程式以套用變更。";
"CHANGE_APP_ICON" = "Change App Icon";
// Newly added strings
"ENABLE_TAP_TO_SEEK_DESC" = "ENABLE_TAP_TO_SEEK_DESC";
"ENABLE_TAP_TO_SEEK" = "ENABLE_TAP_TO_SEEK";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC" = "DISABLE_PULL_TO_FULLSCREEN_GESTURE_DESC";
"ALWAYS_USE_REMAINING_TIME" = "ALWAYS_USE_REMAINING_TIME";
"DISABLE_PULL_TO_FULLSCREEN_GESTURE" = "DISABLE_PULL_TO_FULLSCREEN_GESTURE";
"DISABLE_TOGGLE_TIME_REMAINING" = "DISABLE_TOGGLE_TIME_REMAINING";
"DISABLE_ENGAGEMENT_OVERLAY" = "DISABLE_ENGAGEMENT_OVERLAY";
"DISABLE_TOGGLE_TIME_REMAINING_DESC" = "DISABLE_TOGGLE_TIME_REMAINING_DESC";
"DISABLE_ENGAGEMENT_OVERLAY_DESC" = "DISABLE_ENGAGEMENT_OVERLAY_DESC";
"ALWAYS_USE_REMAINING_TIME_DESC" = "ALWAYS_USE_REMAINING_TIME_DESC";
"DEFAULT_THEME_DESC" = "DEFAULT_THEME_DESC";