Compare commits
54
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8c33f16412 | ||
|
|
37660b827a | ||
|
|
eedc78fc25 | ||
|
|
752ccb32af | ||
|
|
1a56b6b79c | ||
|
|
736ff260ab | ||
|
|
e1a3109198 | ||
|
|
2e03ab7f12 | ||
|
|
9ff0fee0f9 | ||
|
|
c108b65a4a | ||
|
|
2258342567 | ||
|
|
dcf89e1c73 | ||
|
|
8c66b4b226 | ||
|
|
b7af74d69a | ||
|
|
bb04cee149 | ||
|
|
c59e0fa972 | ||
|
|
bbe6f241ea | ||
|
|
5ffbf4c7d8 | ||
|
|
35374f568d | ||
|
|
ceb5d322ee | ||
|
|
b64f26cdf9 | ||
|
|
76db5ee967 | ||
|
|
20c0f2a823 | ||
|
|
47c5c4d500 | ||
|
|
bcb6c7dba8 | ||
|
|
5fff111ec1 | ||
|
|
be89c488ac | ||
|
|
3878539f00 | ||
|
|
c541484ce2 | ||
|
|
5049198ba7 | ||
|
|
4f04f393a7 | ||
|
|
fcc87f1270 | ||
|
|
7b5afd5a84 | ||
|
|
6a3cca85f7 | ||
|
|
93f6645b5a | ||
|
|
50129ee7d8 | ||
|
|
e887df0fdd | ||
|
|
b144fabb0f | ||
|
|
9a04cbfdf7 | ||
|
|
88860c2d59 | ||
|
|
e9309603ef | ||
|
|
4fada5292d | ||
|
|
6db78f0335 | ||
|
|
71d91ed69d | ||
|
|
36d229343d | ||
|
|
8f8e141831 | ||
|
|
3cb579b705 | ||
|
|
729b6d8885 | ||
|
|
91b9a78876 | ||
|
|
8e38fa2f45 | ||
|
|
72e4f51770 | ||
|
|
b8cd1e5111 | ||
|
|
0d03ee6888 | ||
|
|
31242ef146 |
@@ -0,0 +1,223 @@
|
||||
name: Build Tweaks (Helper)
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
enable_youpip:
|
||||
type: boolean
|
||||
required: true
|
||||
default: false
|
||||
|
||||
enable_ytuhd:
|
||||
type: boolean
|
||||
required: true
|
||||
default: false
|
||||
|
||||
enable_yq:
|
||||
type: boolean
|
||||
required: true
|
||||
default: false
|
||||
|
||||
enable_ryd:
|
||||
type: boolean
|
||||
required: true
|
||||
default: false
|
||||
|
||||
enable_ytabc:
|
||||
type: boolean
|
||||
required: true
|
||||
default: false
|
||||
|
||||
enable_demc:
|
||||
type: boolean
|
||||
required: true
|
||||
default: false
|
||||
|
||||
tweak_version:
|
||||
type: string
|
||||
required: false
|
||||
default: ""
|
||||
|
||||
tweak_url:
|
||||
type: string
|
||||
required: false
|
||||
default: ""
|
||||
|
||||
jobs:
|
||||
build-tweaks:
|
||||
name: Build Tweaks
|
||||
runs-on: macos-latest
|
||||
|
||||
steps:
|
||||
- name: Install Dependencies
|
||||
run: brew install make ldid dpkg
|
||||
|
||||
- name: Set PATH environment variable
|
||||
run: |
|
||||
echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH
|
||||
echo "THEOS=${{ github.workspace }}/theos" >> $GITHUB_ENV
|
||||
|
||||
- name: Cache Theos
|
||||
if: ${{ inputs.enable_youpip || inputs.enable_ytuhd || inputs.enable_yq || inputs.enable_ryd || inputs.enable_ytabc || inputs.enable_demc }}
|
||||
id: theos
|
||||
uses: actions/cache@v5
|
||||
env:
|
||||
cache-name: theos_cache_13c2237
|
||||
with:
|
||||
path: theos/
|
||||
key: ${{ env.cache-name }}
|
||||
restore-keys: ${{ env.cache-name }}
|
||||
|
||||
- name: Setup Theos
|
||||
if: ${{ (inputs.enable_youpip || inputs.enable_ytuhd || inputs.enable_yq || inputs.enable_ryd || inputs.enable_ytabc || inputs.enable_demc) && steps.theos.outputs.cache-hit != 'true' }}
|
||||
uses: actions/checkout@v6
|
||||
with:
|
||||
repository: theos/theos
|
||||
ref: 13c22376b5d83ff759c1993de0a861e673aa522b
|
||||
path: theos
|
||||
submodules: recursive
|
||||
|
||||
- name: Download iOS SDK
|
||||
if: ${{ (inputs.enable_youpip || inputs.enable_ytuhd || inputs.enable_yq || inputs.enable_ryd || inputs.enable_ytabc || inputs.enable_demc) && steps.theos.outputs.cache-hit != 'true' }}
|
||||
run: |
|
||||
git clone --quiet -n --depth=1 --filter=tree:0 https://github.com/theos/sdks/
|
||||
cd sdks
|
||||
git sparse-checkout set --no-cone iPhoneOS16.5.sdk
|
||||
git checkout
|
||||
mv *.sdk $THEOS/sdks
|
||||
|
||||
- name: Download YouTube Plus (by version)
|
||||
if: ${{ inputs.tweak_version != '' }}
|
||||
run: |
|
||||
deb_url="https://github.com/dayanch96/YTLite/releases/download/v${{ inputs.tweak_version }}/com.dvntm.ytlite_${{ inputs.tweak_version }}_iphoneos-arm.deb"
|
||||
wget "$deb_url" --no-verbose -O ytplus.deb
|
||||
|
||||
- name: Download YouTube Plus (by URL)
|
||||
if: ${{ inputs.tweak_url != '' }}
|
||||
run: |
|
||||
wget "${{ inputs.tweak_url }}" --no-verbose -O ytplus.deb
|
||||
file_type=$(file --mime-type -b ytplus.deb)
|
||||
if [[ "$file_type" != "application/vnd.debian.binary-package" ]]; then
|
||||
echo "::error::Validation failed: The file is not a valid DEB file. Detected type: $file_type."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Clone YouTubeHeader
|
||||
if: ${{ inputs.enable_youpip || inputs.enable_ytuhd || inputs.enable_yq || inputs.enable_ryd || inputs.enable_ytabc || inputs.enable_demc }}
|
||||
run: |
|
||||
if [ -d "$THEOS/include/YouTubeHeader" ]; then
|
||||
cd $THEOS/include/YouTubeHeader && git pull
|
||||
else
|
||||
cd $THEOS/include && git clone --quiet --depth=1 https://github.com/PoomSmart/YouTubeHeader.git
|
||||
fi
|
||||
if [ "${{ inputs.enable_demc }}" = "true" ]; then
|
||||
rm -rf "$THEOS/include/YTHeaders"
|
||||
cp -r "$THEOS/include/YouTubeHeader" "$THEOS/include/YTHeaders"
|
||||
fi
|
||||
|
||||
- name: Clone PSHeader
|
||||
if: ${{ inputs.enable_youpip || inputs.enable_ytuhd || inputs.enable_yq || inputs.enable_ryd || inputs.enable_ytabc || inputs.enable_demc }}
|
||||
run: |
|
||||
if [ -d "$THEOS/include/PSHeader" ]; then
|
||||
cd $THEOS/include/PSHeader && git pull
|
||||
else
|
||||
cd $THEOS/include && git clone --quiet --depth=1 https://github.com/PoomSmart/PSHeader.git
|
||||
fi
|
||||
|
||||
- name: Clone YouPiP
|
||||
if: ${{ inputs.enable_youpip }}
|
||||
run: git clone --quiet --depth=1 https://github.com/PoomSmart/YouPiP.git
|
||||
|
||||
- name: Clone YTUHD
|
||||
if: ${{ inputs.enable_ytuhd }}
|
||||
run: git clone --quiet --depth=1 https://github.com/Tonwalter888/YTUHD.git
|
||||
|
||||
- name: Clone Return-YouTube-Dislikes
|
||||
if: ${{ inputs.enable_ryd }}
|
||||
run: git clone --quiet --depth=1 https://github.com/PoomSmart/Return-YouTube-Dislikes.git
|
||||
|
||||
- name: Clone YTABConfig
|
||||
if: ${{ inputs.enable_ytabc }}
|
||||
run: git clone --quiet --depth=1 https://github.com/PoomSmart/YTABConfig.git
|
||||
|
||||
- name: Clone YouGroupSettings
|
||||
if: ${{ inputs.enable_youpip || inputs.enable_ytuhd || inputs.enable_yq || inputs.enable_ryd || inputs.enable_demc }}
|
||||
run: git clone --quiet --depth=1 https://github.com/PoomSmart/YouGroupSettings.git
|
||||
|
||||
- name: Clone YouQuality
|
||||
if: ${{ inputs.enable_yq }}
|
||||
run: git clone --quiet --depth=1 https://github.com/PoomSmart/YouQuality.git
|
||||
|
||||
- name: Clone YTVideoOverlay
|
||||
if: ${{ inputs.enable_yq || inputs.enable_youpip }}
|
||||
run: git clone --quiet --depth=1 https://github.com/PoomSmart/YTVideoOverlay.git
|
||||
|
||||
- name: Clone DontEatMyContent
|
||||
if: ${{ inputs.enable_demc }}
|
||||
run: git clone --quiet --depth=1 https://github.com/therealFoxster/DontEatMyContent.git
|
||||
|
||||
- name: Build YouPiP
|
||||
if: ${{ inputs.enable_youpip }}
|
||||
run: |
|
||||
cd YouPiP && make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ../youpip.deb
|
||||
|
||||
- name: Build YTUHD
|
||||
if: ${{ inputs.enable_ytuhd }}
|
||||
run: |
|
||||
cd YTUHD && make clean package DEBUG=0 FINALPACKAGE=1 ARCHS=arm64
|
||||
mv packages/*.deb ../ytuhd.deb
|
||||
|
||||
- name: Build Return-YouTube-Dislikes
|
||||
if: ${{ inputs.enable_ryd }}
|
||||
run: |
|
||||
cd Return-YouTube-Dislikes && make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ../ryd.deb
|
||||
|
||||
- name: Build YTABConfig
|
||||
if: ${{ inputs.enable_ytabc }}
|
||||
run: |
|
||||
cd YTABConfig && make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ../ytabc.deb
|
||||
|
||||
- name: Build YouGroupSettings
|
||||
if: ${{ inputs.enable_youpip || inputs.enable_ytuhd || inputs.enable_yq || inputs.enable_ryd || inputs.enable_demc }}
|
||||
run: |
|
||||
cd YouGroupSettings && make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ../ygs.deb
|
||||
|
||||
- name: Build YouQuality
|
||||
if: ${{ inputs.enable_yq }}
|
||||
run: |
|
||||
cd YouQuality && make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ../yq.deb
|
||||
|
||||
- name: Build YTVideoOverlay
|
||||
if: ${{ inputs.enable_yq || inputs.enable_youpip }}
|
||||
run: |
|
||||
cd YTVideoOverlay && make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ../ytvo.deb
|
||||
|
||||
- name: Build DontEatMyContent
|
||||
if: ${{ inputs.enable_demc }}
|
||||
run: |
|
||||
cd DontEatMyContent && make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ../demc.deb
|
||||
|
||||
- name: Clone Open in YouTube (Safari extension)
|
||||
run: |
|
||||
git clone --quiet -n --depth=1 --filter=tree:0 https://github.com/BillyCurtis/OpenYouTubeSafariExtension
|
||||
cd OpenYoutubeSafariExtension
|
||||
git sparse-checkout set --no-cone OpenYoutubeSafariExtension.appex
|
||||
git checkout
|
||||
mv *.appex ..
|
||||
|
||||
- name: Upload built debs as artifacts
|
||||
uses: actions/upload-artifact@v6
|
||||
with:
|
||||
name: built-debs
|
||||
path: |
|
||||
*.deb
|
||||
*.appex
|
||||
if-no-files-found: ignore
|
||||
retention-days: 1
|
||||
@@ -0,0 +1,162 @@
|
||||
name: Generate TrollFools/Cyan files
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
create_cyan:
|
||||
description: "Generate .cyan file"
|
||||
type: boolean
|
||||
required: true
|
||||
default: true
|
||||
|
||||
create_tf:
|
||||
description: "Generate .zip for TrollFools"
|
||||
type: boolean
|
||||
required: true
|
||||
default: true
|
||||
|
||||
enable_youpip:
|
||||
description: "Integrate YouPiP"
|
||||
type: boolean
|
||||
required: true
|
||||
default: false
|
||||
|
||||
enable_ytuhd:
|
||||
description: "Integrate YTUHD"
|
||||
type: boolean
|
||||
required: true
|
||||
default: false
|
||||
|
||||
enable_yq:
|
||||
description: "Integrate YouQuality"
|
||||
type: boolean
|
||||
required: true
|
||||
default: false
|
||||
|
||||
enable_ryd:
|
||||
description: "Integrate Return YouTube Dislikes"
|
||||
type: boolean
|
||||
required: true
|
||||
default: false
|
||||
|
||||
enable_ytabc:
|
||||
description: "Integrate YTABConfig"
|
||||
type: boolean
|
||||
required: true
|
||||
default: false
|
||||
|
||||
enable_demc:
|
||||
description: "Integrate DontEatMyContent"
|
||||
type: boolean
|
||||
required: true
|
||||
default: false
|
||||
|
||||
tweak_version:
|
||||
description: "The version of the tweak to use. Enter the version manually from dayanch96/YTLite/releases or leave default"
|
||||
default: "5.2b4"
|
||||
required: true
|
||||
type: string
|
||||
|
||||
display_name:
|
||||
description: "App Name (Optional)"
|
||||
default: "YouTube"
|
||||
required: true
|
||||
type: string
|
||||
|
||||
bundle_id:
|
||||
description: "BundleID (Optional)"
|
||||
default: "com.google.ios.youtube"
|
||||
required: true
|
||||
type: string
|
||||
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build-tweaks:
|
||||
uses: ./.github/workflows/_build_tweaks.yml
|
||||
with:
|
||||
enable_youpip: ${{ inputs.enable_youpip }}
|
||||
enable_ytuhd: ${{ inputs.enable_ytuhd }}
|
||||
enable_yq: ${{ inputs.enable_yq }}
|
||||
enable_ryd: ${{ inputs.enable_ryd }}
|
||||
enable_ytabc: ${{ inputs.enable_ytabc }}
|
||||
enable_demc: ${{ inputs.enable_demc }}
|
||||
tweak_version: ${{ inputs.tweak_version }}
|
||||
|
||||
package:
|
||||
name: Generate Cyan/TrollFools
|
||||
runs-on: macos-latest
|
||||
needs: build-tweaks
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
steps:
|
||||
- name: Download built debs
|
||||
uses: actions/download-artifact@v7
|
||||
with:
|
||||
name: built-debs
|
||||
path: ${{ github.workspace }}
|
||||
|
||||
- name: Check Inputs
|
||||
if: ${{ !inputs.create_cyan && !inputs.create_tf }}
|
||||
run: |
|
||||
echo "No output format selected."
|
||||
exit 0
|
||||
|
||||
- name: Install Dependencies
|
||||
run: brew install dpkg
|
||||
|
||||
- name: Install cyan
|
||||
if: ${{ github.event.inputs.create_cyan }}
|
||||
run: pipx install --force https://github.com/asdfzxcvbn/pyzule-rw/archive/main.zip
|
||||
|
||||
- name: Generate .cyan file
|
||||
if: ${{ github.event.inputs.create_cyan }}
|
||||
run: |
|
||||
tweaks="ytplus.deb OpenYoutubeSafariExtension.appex"
|
||||
for f in *.deb; do
|
||||
[ -f "$f" ] && tweaks="$tweaks $f"
|
||||
done
|
||||
cgen -uwef $tweaks -n "${{ github.event.inputs.display_name }}" -b ${{ github.event.inputs.bundle_id }} -o cyan_YouTubePlus_${{ github.event.inputs.tweak_version }}.cyan
|
||||
|
||||
- name: Generate .zip file for TrollFools
|
||||
if: ${{ github.event.inputs.create_tf }}
|
||||
run: |
|
||||
mkdir -p ytp_tf
|
||||
for f in *.deb; do
|
||||
if [ -f "$f" ]; then
|
||||
mkdir -p tmp_deb
|
||||
dpkg-deb -x "$f" tmp_deb
|
||||
find tmp_deb -type f -name "*.dylib" -exec cp -R {} ytp_tf/ \;
|
||||
find tmp_deb -type d -name "*.bundle" -exec cp -R {} ytp_tf/ \;
|
||||
rm -rf tmp_deb
|
||||
fi
|
||||
done
|
||||
cd ytp_tf
|
||||
zip -r "../TrollFools_YouTubePlus_${{ github.event.inputs.tweak_version }}.zip" .
|
||||
cd ..
|
||||
rm -rf ytp_tf
|
||||
|
||||
- name: Set output file list
|
||||
id: filelist
|
||||
run: |
|
||||
files=""
|
||||
[ "${{ github.event.inputs.create_cyan }}" = "true" ] && files="${files}cyan_YouTubePlus_${{ github.event.inputs.tweak_version }}.cyan"$'\n'
|
||||
[ "${{ github.event.inputs.create_tf }}" = "true" ] && files="${files}TrollFools_YouTubePlus_${{ github.event.inputs.tweak_version }}.zip"$'\n'
|
||||
echo -e "files<<EOF" >> $GITHUB_OUTPUT
|
||||
echo -e "$files" >> $GITHUB_OUTPUT
|
||||
echo "EOF" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Upload to GitHub Releases
|
||||
uses: softprops/action-gh-release@v2.5.0
|
||||
with:
|
||||
tag_name: ytp-${{ github.run_number }}
|
||||
name: YouTubePlus v${{ github.event.inputs.tweak_version }}_cyan_trollfools (${{ github.run_number }})
|
||||
files: ${{ steps.filelist.outputs.files }}
|
||||
draft: true
|
||||
|
||||
- name: Output Release URL
|
||||
run: |
|
||||
echo "::notice::Release available at: https://github.com/${{ github.repository }}/releases"
|
||||
+34
-211
@@ -3,7 +3,6 @@ name: Create YouTube Plus app
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
|
||||
enable_youpip:
|
||||
description: "Integrate YouPiP"
|
||||
type: boolean
|
||||
@@ -28,6 +27,12 @@ on:
|
||||
required: true
|
||||
default: false
|
||||
|
||||
enable_ytabc:
|
||||
description: "Integrate YTABConfig"
|
||||
type: boolean
|
||||
required: true
|
||||
default: false
|
||||
|
||||
enable_demc:
|
||||
description: "Integrate DontEatMyContent"
|
||||
type: boolean
|
||||
@@ -42,7 +47,7 @@ on:
|
||||
|
||||
tweak_version:
|
||||
description: "The version of the tweak to use. Enter the version manually from dayanch96/YTLite/releases or leave default"
|
||||
default: "5.2b2"
|
||||
default: "5.2b4"
|
||||
required: true
|
||||
type: string
|
||||
|
||||
@@ -69,245 +74,63 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name:
|
||||
build-tweaks:
|
||||
uses: ./.github/workflows/_build_tweaks.yml
|
||||
with:
|
||||
enable_youpip: ${{ inputs.enable_youpip }}
|
||||
enable_ytuhd: ${{ inputs.enable_ytuhd }}
|
||||
enable_yq: ${{ inputs.enable_yq }}
|
||||
enable_ryd: ${{ inputs.enable_ryd }}
|
||||
enable_ytabc: ${{ inputs.enable_ytabc }}
|
||||
enable_demc: ${{ inputs.enable_demc }}
|
||||
tweak_version: ${{ inputs.tweak_version }}
|
||||
|
||||
package:
|
||||
name: Package IPA
|
||||
runs-on: macos-latest
|
||||
needs: build-tweaks
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
steps:
|
||||
- name: Checkout Main
|
||||
uses: actions/checkout@v4.1.1
|
||||
- name: Download built debs
|
||||
uses: actions/download-artifact@v7
|
||||
with:
|
||||
path: main
|
||||
submodules: recursive
|
||||
name: built-debs
|
||||
path: ${{ github.workspace }}
|
||||
|
||||
- name: Hide sensitive inputs
|
||||
uses: levibostian/action-hide-sensitive-inputs@v1
|
||||
with:
|
||||
exclude_inputs: bundle_id,display_name,enable_demc,enable_ryd,enable_youpip,enable_yq,enable_ytuhd,info_note,tweak_version
|
||||
exclude_inputs: bundle_id,display_name,enable_demc,enable_ryd,enable_ytabc,enable_youpip,enable_yq,enable_ytuhd,info_note,tweak_version
|
||||
|
||||
- name: Download and validate IPA
|
||||
run: |
|
||||
wget "${{ inputs.ipa_url }}" --no-verbose -O ${{ github.workspace }}/youtube.ipa
|
||||
|
||||
file_type=$(file --mime-type -b ${{ github.workspace }}/youtube.ipa)
|
||||
|
||||
wget "${{ github.event.inputs.ipa_url }}" --no-verbose -O youtube.ipa
|
||||
file_type=$(file --mime-type -b youtube.ipa)
|
||||
if [[ "$file_type" != "application/x-ios-app" && "$file_type" != "application/zip" ]]; then
|
||||
echo "::error::Validation failed: The downloaded file is not a valid IPA. Detected type: $file_type."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Install Dependencies
|
||||
run: brew install make ldid
|
||||
|
||||
- name: Set PATH environment variable
|
||||
run: echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH
|
||||
|
||||
- name: Cache Theos
|
||||
id: theos
|
||||
uses: actions/cache@v4
|
||||
env:
|
||||
cache-name: theos_cache_67db2ab
|
||||
with:
|
||||
path: theos/
|
||||
key: ${{ env.cache-name }}
|
||||
restore-keys: ${{ env.cache-name }}
|
||||
|
||||
- name: Setup Theos
|
||||
if: steps.theos.outputs.cache-hit != 'true'
|
||||
uses: actions/checkout@v4.1.7
|
||||
with:
|
||||
repository: theos/theos
|
||||
ref: 67db2ab8d950910161730de77c322658ea3e6b44
|
||||
path: ${{ github.workspace }}/theos
|
||||
submodules: recursive
|
||||
|
||||
- name: Download iOS SDK
|
||||
if: steps.theos.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet -n --depth=1 --filter=tree:0 https://github.com/theos/sdks/
|
||||
cd sdks
|
||||
git sparse-checkout set --no-cone iPhoneOS16.5.sdk
|
||||
git checkout
|
||||
mv *.sdk $THEOS/sdks
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Install cyan
|
||||
run: pipx install --force https://github.com/asdfzxcvbn/pyzule-rw/archive/main.zip
|
||||
|
||||
- name: Download YouTube Plus
|
||||
id: download_ytp
|
||||
run: |
|
||||
deb_url="https://github.com/dayanch96/YTLite/releases/download/v${{ inputs.tweak_version }}/com.dvntm.ytlite_${{ inputs.tweak_version }}_iphoneos-arm.deb"
|
||||
wget "$deb_url" --no-verbose -O ${{ github.workspace }}/ytplus.deb
|
||||
|
||||
- name: Clone Open in YouTube (Safari extension)
|
||||
run: |
|
||||
git clone --quiet -n --depth=1 --filter=tree:0 https://github.com/CokePokes/YoutubeExtensions/
|
||||
cd YoutubeExtensions
|
||||
git sparse-checkout set --no-cone OpenYoutubeSafariExtension.appex
|
||||
git checkout
|
||||
mv *.appex ${{ github.workspace }}
|
||||
|
||||
- name: Clone YouTubeHeader
|
||||
run: |
|
||||
if [ -d "$THEOS/include/YouTubeHeader" ]; then
|
||||
echo "YouTubeHeader exists. Pulling latest changes..."
|
||||
cd $THEOS/include/YouTubeHeader
|
||||
git pull
|
||||
else
|
||||
echo "YouTubeHeader does not exist. Cloning repository..."
|
||||
cd $THEOS/include
|
||||
git clone --quiet --depth=1 https://github.com/PoomSmart/YouTubeHeader.git
|
||||
fi
|
||||
|
||||
if [ "${{ inputs.enable_demc }}" = "true" ]; then
|
||||
echo "Copying YouTubeHeader to YTHeaders..."
|
||||
rm -rf "$THEOS/include/YTHeaders"
|
||||
cp -r "$THEOS/include/YouTubeHeader" "$THEOS/include/YTHeaders"
|
||||
fi
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Clone PSHeader
|
||||
run: |
|
||||
if [ -d "$THEOS/include/PSHeader" ]; then
|
||||
echo "PSHeader exists. Pulling latest changes..."
|
||||
cd $THEOS/include/PSHeader
|
||||
git pull
|
||||
else
|
||||
echo "PSHeader does not exist. Cloning repository..."
|
||||
cd $THEOS/include
|
||||
git clone --quiet --depth=1 https://github.com/PoomSmart/PSHeader.git
|
||||
fi
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Clone YouPiP
|
||||
if: ${{ inputs.enable_youpip }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
git clone --quiet --depth=1 https://github.com/PoomSmart/YouPiP.git
|
||||
|
||||
- name: Clone YTUHD
|
||||
if: ${{ inputs.enable_ytuhd }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
git clone --quiet --depth=1 https://github.com/PoomSmart/YTUHD.git
|
||||
|
||||
- name: Clone Return-YouTube-Dislikes
|
||||
if: ${{ inputs.enable_ryd }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
git clone --quiet --depth=1 https://github.com/PoomSmart/Return-YouTube-Dislikes.git
|
||||
|
||||
- name: Clone YouGroupSettings
|
||||
if: ${{ inputs.enable_demc }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
git clone --quiet --depth=1 https://github.com/PoomSmart/YouGroupSettings.git
|
||||
|
||||
- name: Clone YouQuality
|
||||
if: ${{ inputs.enable_yq }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
git clone --quiet --depth=1 https://github.com/PoomSmart/YouQuality.git
|
||||
|
||||
- name: Clone YTVideoOverlay
|
||||
if: ${{ inputs.enable_yq || inputs.enable_youpip }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
git clone --quiet --depth=1 https://github.com/PoomSmart/YTVideoOverlay.git
|
||||
|
||||
- name: Clone DontEatMyContent
|
||||
if: ${{ inputs.enable_demc }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
git clone --quiet --depth=1 --recurse-submodules https://github.com/therealFoxster/DontEatMyContent.git
|
||||
|
||||
- name: Build YouPiP
|
||||
if: ${{ inputs.enable_youpip }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}/YouPiP
|
||||
make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ${{ github.workspace }}/youpip.deb
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Build YTUHD
|
||||
if: ${{ inputs.enable_ytuhd }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}/YTUHD
|
||||
make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ${{ github.workspace }}/ytuhd.deb
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Build Return-YouTube-Dislikes
|
||||
if: ${{ inputs.enable_ryd }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}/Return-YouTube-Dislikes
|
||||
make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ${{ github.workspace }}/ryd.deb
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Build YouGroupSettings
|
||||
if: ${{ inputs.enable_demc }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}/YouGroupSettings
|
||||
make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ${{ github.workspace }}/ygs.deb
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Build YouQuality
|
||||
if: ${{ inputs.enable_yq }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}/YouQuality
|
||||
make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ${{ github.workspace }}/yq.deb
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Build YTVideoOverlay
|
||||
if: ${{ inputs.enable_yq || inputs.enable_youpip }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}/YTVideoOverlay
|
||||
make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ${{ github.workspace }}/ytvo.deb
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Build DontEatMyContent
|
||||
if: ${{ inputs.enable_demc }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}/DontEatMyContent
|
||||
make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ${{ github.workspace }}/demc.deb
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Inject tweaks into IPA
|
||||
run: |
|
||||
tweaks="ytplus.deb OpenYoutubeSafariExtension.appex"
|
||||
|
||||
for deb in youpip.deb ytuhd.deb ryd.deb ygs.deb yq.deb ytvo.deb demc.deb; do
|
||||
if [ -f "$deb" ]; then
|
||||
tweaks="$tweaks $deb"
|
||||
fi
|
||||
for f in *.deb; do
|
||||
[ -f "$f" ] && tweaks="$tweaks $f"
|
||||
done
|
||||
|
||||
cyan -i youtube.ipa -o YouTubePlus_${{ inputs.tweak_version }}.ipa -uwef $tweaks -n "${{ inputs.display_name }}" -b ${{ inputs.bundle_id }}
|
||||
cyan -i youtube.ipa -o YouTubePlus_${{ github.event.inputs.tweak_version }}.ipa -uwef $tweaks -n "${{ github.event.inputs.display_name }}" -b ${{ github.event.inputs.bundle_id }}
|
||||
|
||||
- name: Upload to GitHub Releases
|
||||
uses: softprops/action-gh-release@v2.0.1
|
||||
uses: softprops/action-gh-release@v2.5.0
|
||||
with:
|
||||
tag_name: ytp-${{ github.run_number }}
|
||||
name: YouTubePlus v${{ inputs.tweak_version }} (${{ github.run_number }})
|
||||
files: YouTubePlus_${{ inputs.tweak_version }}.ipa
|
||||
name: YouTubePlus v${{ github.event.inputs.tweak_version }} (${{ github.run_number }})
|
||||
files: YouTubePlus_${{ github.event.inputs.tweak_version }}.ipa
|
||||
draft: true
|
||||
|
||||
- name: Output Release URL
|
||||
|
||||
+31
-213
@@ -3,7 +3,6 @@ name: '[BETA] Create YouTube Plus app'
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
|
||||
enable_youpip:
|
||||
description: "Integrate YouPiP"
|
||||
type: boolean
|
||||
@@ -28,6 +27,12 @@ on:
|
||||
required: true
|
||||
default: false
|
||||
|
||||
enable_ytabc:
|
||||
description: "Integrate YTABConfig"
|
||||
type: boolean
|
||||
required: true
|
||||
default: false
|
||||
|
||||
enable_demc:
|
||||
description: "Integrate DontEatMyContent"
|
||||
type: boolean
|
||||
@@ -69,246 +74,59 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
build:
|
||||
name:
|
||||
build-tweaks:
|
||||
uses: ./.github/workflows/_build_tweaks.yml
|
||||
with:
|
||||
enable_youpip: ${{ inputs.enable_youpip }}
|
||||
enable_ytuhd: ${{ inputs.enable_ytuhd }}
|
||||
enable_yq: ${{ inputs.enable_yq }}
|
||||
enable_ryd: ${{ inputs.enable_ryd }}
|
||||
enable_ytabc: ${{ inputs.enable_ytabc }}
|
||||
enable_demc: ${{ inputs.enable_demc }}
|
||||
tweak_url: ${{ inputs.tweak_url }}
|
||||
|
||||
package:
|
||||
name: Package IPA (Beta)
|
||||
runs-on: macos-latest
|
||||
needs: build-tweaks
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
steps:
|
||||
- name: Checkout Main
|
||||
uses: actions/checkout@v4.1.1
|
||||
- name: Download built debs
|
||||
uses: actions/download-artifact@v7
|
||||
with:
|
||||
path: main
|
||||
submodules: recursive
|
||||
name: built-debs
|
||||
path: ${{ github.workspace }}
|
||||
|
||||
- name: Hide sensitive inputs
|
||||
uses: levibostian/action-hide-sensitive-inputs@v1
|
||||
with:
|
||||
exclude_inputs: bundle_id,display_name,enable_demc,enable_ryd,enable_youpip,enable_yq,enable_ytuhd,info_note
|
||||
exclude_inputs: bundle_id,display_name,enable_demc,enable_ryd,enable_ytabc,enable_youpip,enable_yq,enable_ytuhd,info_note
|
||||
|
||||
- name: Download and validate IPA
|
||||
run: |
|
||||
wget "${{ inputs.ipa_url }}" --no-verbose -O ${{ github.workspace }}/youtube.ipa
|
||||
|
||||
file_type=$(file --mime-type -b ${{ github.workspace }}/youtube.ipa)
|
||||
|
||||
wget "${{ github.event.inputs.ipa_url }}" --no-verbose -O youtube.ipa
|
||||
file_type=$(file --mime-type -b youtube.ipa)
|
||||
if [[ "$file_type" != "application/x-ios-app" && "$file_type" != "application/zip" ]]; then
|
||||
echo "::error::Validation failed: The downloaded file is not a valid IPA. Detected type: $file_type."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Download and validate tweak
|
||||
run: |
|
||||
wget "${{ inputs.tweak_url }}" --no-verbose -O ${{ github.workspace }}/ytplus.deb
|
||||
|
||||
file_type=$(file --mime-type -b ${{ github.workspace }}/ytplus.deb)
|
||||
|
||||
if [[ "$file_type" != "application/vnd.debian.binary-package" ]]; then
|
||||
echo "::error::Validation failed: The file is not a valid DEB file. Detected type: $file_type."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Install Dependencies
|
||||
run: brew install make ldid
|
||||
|
||||
- name: Set PATH environment variable
|
||||
run: echo "$(brew --prefix make)/libexec/gnubin" >> $GITHUB_PATH
|
||||
|
||||
- name: Cache Theos
|
||||
id: theos
|
||||
uses: actions/cache@v4
|
||||
env:
|
||||
cache-name: theos_cache_67db2ab
|
||||
with:
|
||||
path: theos/
|
||||
key: ${{ env.cache-name }}
|
||||
restore-keys: ${{ env.cache-name }}
|
||||
|
||||
- name: Setup Theos
|
||||
if: steps.theos.outputs.cache-hit != 'true'
|
||||
uses: actions/checkout@v4.1.7
|
||||
with:
|
||||
repository: theos/theos
|
||||
ref: 67db2ab8d950910161730de77c322658ea3e6b44
|
||||
path: ${{ github.workspace }}/theos
|
||||
submodules: recursive
|
||||
|
||||
- name: Download iOS SDK
|
||||
if: steps.theos.outputs.cache-hit != 'true'
|
||||
run: |
|
||||
git clone --quiet -n --depth=1 --filter=tree:0 https://github.com/theos/sdks/
|
||||
cd sdks
|
||||
git sparse-checkout set --no-cone iPhoneOS16.5.sdk
|
||||
git checkout
|
||||
mv *.sdk $THEOS/sdks
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Install cyan
|
||||
run: pipx install --force https://github.com/asdfzxcvbn/pyzule-rw/archive/main.zip
|
||||
|
||||
- name: Clone Open in YouTube (Safari extension)
|
||||
run: |
|
||||
git clone --quiet -n --depth=1 --filter=tree:0 https://github.com/CokePokes/YoutubeExtensions/
|
||||
cd YoutubeExtensions
|
||||
git sparse-checkout set --no-cone OpenYoutubeSafariExtension.appex
|
||||
git checkout
|
||||
mv *.appex ${{ github.workspace }}
|
||||
|
||||
- name: Clone YouTubeHeader
|
||||
run: |
|
||||
if [ -d "$THEOS/include/YouTubeHeader" ]; then
|
||||
echo "YouTubeHeader exists. Pulling latest changes..."
|
||||
cd $THEOS/include/YouTubeHeader
|
||||
git pull
|
||||
else
|
||||
echo "YouTubeHeader does not exist. Cloning repository..."
|
||||
cd $THEOS/include
|
||||
git clone --quiet --depth=1 https://github.com/PoomSmart/YouTubeHeader.git
|
||||
fi
|
||||
|
||||
if [ "${{ inputs.enable_demc }}" = "true" ]; then
|
||||
echo "Copying YouTubeHeader to YTHeaders..."
|
||||
rm -rf "$THEOS/include/YTHeaders"
|
||||
cp -r "$THEOS/include/YouTubeHeader" "$THEOS/include/YTHeaders"
|
||||
fi
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Clone PSHeader
|
||||
run: |
|
||||
if [ -d "$THEOS/include/PSHeader" ]; then
|
||||
echo "PSHeader exists. Pulling latest changes..."
|
||||
cd $THEOS/include/PSHeader
|
||||
git pull
|
||||
else
|
||||
echo "PSHeader does not exist. Cloning repository..."
|
||||
cd $THEOS/include
|
||||
git clone --quiet --depth=1 https://github.com/PoomSmart/PSHeader.git
|
||||
fi
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Clone YouPiP
|
||||
if: ${{ inputs.enable_youpip }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
git clone --quiet --depth=1 https://github.com/PoomSmart/YouPiP.git
|
||||
|
||||
- name: Clone YTUHD
|
||||
if: ${{ inputs.enable_ytuhd }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
git clone --quiet --depth=1 https://github.com/PoomSmart/YTUHD.git
|
||||
|
||||
- name: Clone Return-YouTube-Dislikes
|
||||
if: ${{ inputs.enable_ryd }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
git clone --quiet --depth=1 https://github.com/PoomSmart/Return-YouTube-Dislikes.git
|
||||
|
||||
- name: Clone YouGroupSettings
|
||||
if: ${{ inputs.enable_demc }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
git clone --quiet --depth=1 https://github.com/PoomSmart/YouGroupSettings.git
|
||||
|
||||
- name: Clone YouQuality
|
||||
if: ${{ inputs.enable_yq }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
git clone --quiet --depth=1 https://github.com/PoomSmart/YouQuality.git
|
||||
|
||||
- name: Clone YTVideoOverlay
|
||||
if: ${{ inputs.enable_yq || inputs.enable_youpip }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
git clone --quiet --depth=1 https://github.com/PoomSmart/YTVideoOverlay.git
|
||||
|
||||
- name: Clone DontEatMyContent
|
||||
if: ${{ inputs.enable_demc }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}
|
||||
git clone --quiet --depth=1 --recurse-submodules https://github.com/therealFoxster/DontEatMyContent.git
|
||||
|
||||
- name: Build YouPiP
|
||||
if: ${{ inputs.enable_youpip }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}/YouPiP
|
||||
make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ${{ github.workspace }}/youpip.deb
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Build YTUHD
|
||||
if: ${{ inputs.enable_ytuhd }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}/YTUHD
|
||||
make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ${{ github.workspace }}/ytuhd.deb
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Build Return-YouTube-Dislikes
|
||||
if: ${{ inputs.enable_ryd }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}/Return-YouTube-Dislikes
|
||||
make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ${{ github.workspace }}/ryd.deb
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Build YouGroupSettings
|
||||
if: ${{ inputs.enable_demc }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}/YouGroupSettings
|
||||
make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ${{ github.workspace }}/ygs.deb
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Build YouQuality
|
||||
if: ${{ inputs.enable_yq }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}/YouQuality
|
||||
make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ${{ github.workspace }}/yq.deb
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Build YTVideoOverlay
|
||||
if: ${{ inputs.enable_yq || inputs.enable_youpip }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}/YTVideoOverlay
|
||||
make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ${{ github.workspace }}/ytvo.deb
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Build DontEatMyContent
|
||||
if: ${{ inputs.enable_demc }}
|
||||
run: |
|
||||
cd ${{ github.workspace }}/DontEatMyContent
|
||||
make clean package DEBUG=0 FINALPACKAGE=1
|
||||
mv packages/*.deb ${{ github.workspace }}/demc.deb
|
||||
env:
|
||||
THEOS: ${{ github.workspace }}/theos
|
||||
|
||||
- name: Inject tweaks into IPA
|
||||
run: |
|
||||
tweaks="ytplus.deb OpenYoutubeSafariExtension.appex"
|
||||
|
||||
for deb in youpip.deb ytuhd.deb ryd.deb ygs.deb yq.deb ytvo.deb demc.deb; do
|
||||
if [ -f "$deb" ]; then
|
||||
tweaks="$tweaks $deb"
|
||||
fi
|
||||
for f in *.deb; do
|
||||
[ -f "$f" ] && tweaks="$tweaks $f"
|
||||
done
|
||||
|
||||
cyan -i youtube.ipa -o YouTubePlus_Beta.ipa -uwef $tweaks -n "${{ inputs.display_name }}" -b ${{ inputs.bundle_id }}
|
||||
cyan -i youtube.ipa -o YouTubePlus_Beta.ipa -uwef $tweaks -n "${{ github.event.inputs.display_name }}" -b ${{ github.event.inputs.bundle_id }}
|
||||
|
||||
- name: Upload to GitHub Releases
|
||||
uses: softprops/action-gh-release@v2.0.1
|
||||
uses: softprops/action-gh-release@v2.5.0
|
||||
with:
|
||||
tag_name: ytp-beta-${{ github.run_number }}
|
||||
name: YouTubePlus Beta (${{ github.run_number }})
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
# FAQ (Frequently Asked Questions)
|
||||
|
||||
[✓] 🇺🇸 English FAQ | [🇷🇺 ЧаВо на Русском](FAQ_RU.md) | [🇮🇹 FAQ in Italiano](FAQ_IT.md) | [🇵🇱 FAQ po Polsku](FAQ_PL.md)
|
||||
|
||||
<details>
|
||||
<summary>What iOS versions does YouTube Plus support?</summary>
|
||||
<p>YouTube Plus supports iOS 14 and above. <strong>However</strong>, if you're sideloading it on a non-jailbroken device, you must also consider the YouTube app's compatibility with your iOS version. Below is a list of the latest supported YouTube versions per iOS:</p>
|
||||
<li><strong>iOS 14</strong>: YouTube v19.20.2</li>
|
||||
<li><strong>iOS 15</strong>: YouTube v20.21.6</li>
|
||||
<li><strong>iOS 16+</strong>: Any version, as supported by YouTube</li>
|
||||
</details>
|
||||
<br>
|
||||
<details>
|
||||
<summary>My iOS version is no longer supported by the latest YouTube app. What can I do?</summary>
|
||||
<p>Here are some possible options:</p>
|
||||
<li><a href="https://ios.cfw.guide/get-started/">Jailbreak your device</a>, install the latest supported YouTube version from the App Store, and <a href="http://dvntm0.github.io/#jb">install YouTube Plus as a tweak</a></li>
|
||||
<li><a href="https://ios.cfw.guide/installing-trollstore/">Install TrollStore</a>, then <a href="https://github.com/Lessica/TrollFools/releases/">TrollFools</a>, install the latest supported YouTube version from the App Store, and inject <a href="https://github.com/dayanch96/YTLite/releases/">YouTube Plus</a> using TrollFools</li>
|
||||
<li>Find a compatible IPA version online and <a href="../README.md#how-to-build-a-youtube-plus-app-using-github-actions">build a YouTube Plus app using Github actions</a></li>
|
||||
</details>
|
||||
<br>
|
||||
<details>
|
||||
<summary>Cast stopped working on sideloaded YouTube Plus. What should I do?</summary>
|
||||
<p>Until this issue is resolved, it is recommended to use YouTube version 20.14.1 or below.</p>
|
||||
</details>
|
||||
<br>
|
||||
<details>
|
||||
<summary>When I try to play a video, I get <strong><em>Something went wrong. Refresh and try again later.</em></strong></summary>
|
||||
<p>Before jumping to conclusions, let’s clarify a few things:</p>
|
||||
<ol>
|
||||
<li><strong>This is NOT</strong> caused by ad blocking</li>
|
||||
<li><strong>This is NOT</strong> because your account was magically flagged</li>
|
||||
<li><strong>This is NOT</strong> due to your account being secretly blacklisted</li>
|
||||
</ol>
|
||||
<br>
|
||||
<p>The issue seems to lie somewhere in the sideloading process itself, even without any tweaks applied. It might be related to an invalid or missing VisitorID or VisitorData, as suggested <a href="https://github.com/pepeloni-away/userscripts/issues/6#issuecomment-2860641610">here</a>. This error has become more frequent due to YouTube’s stricter anti-download measures.</p>
|
||||
<br>
|
||||
<p><strong>Possible temporary workaround:</strong></p>
|
||||
<ol>
|
||||
<li>Sign out of your current account (or all accounts) completely: Go to the <em>You tab → Switch account → Manage accounts on this device → Remove from this device</em></li>
|
||||
<li>Watch a few full-length videos without being signed in. Stay signed out for a few hours.</li>
|
||||
<li>Sign back into the account that was having issues</li>
|
||||
</ol>
|
||||
</details>
|
||||
@@ -0,0 +1,43 @@
|
||||
# FAQ (Frequently Asked Questions)
|
||||
|
||||
[🇺🇸 English FAQ](FAQ_EN.md) | [🇷🇺 ЧаВо на Русском](FAQ_RU.md) | [✓] 🇮🇹 FAQ in Italiano | [🇵🇱 FAQ po Polsku](FAQ_PL.md)
|
||||
|
||||
<details>
|
||||
<summary>Che versioni di iOS supporta YouTube Plus?</summary>
|
||||
<p>YouTube Plus supporta iOS 14 e superiori. <strong>Però</strong>, se stai eseguendo il sideload su un dispositivo senza jailbreak, devi tenere conto della compatibilità dell'app di YouTube con la tua versione di iOS. Sotto trovi una lista delle ultime versioni di YouTube supportate per ogni iOS:</p>
|
||||
<li><strong>iOS 14</strong>: YouTube v19.20.2</li>
|
||||
<li><strong>iOS 15</strong>: YouTube v20.21.6</li>
|
||||
<li><strong>iOS 16+</strong>: Qualsiasi versione</li>
|
||||
</details>
|
||||
<br>
|
||||
<details>
|
||||
<summary>La mia versione di iOS non è più supportata dall'app YouTube. Cosa posso fare?</summary>
|
||||
<p>Ecco delle possibili opzioni:</p>
|
||||
<li><a href="https://ios.cfw.guide/get-started/">Esegui il jailbreak sul tuo dispositivo</a>, installa l'ultima versione di YouTube supportata nell'App Store, poi <a href="http://dvntm0.github.io/#jb">installa il tweak di YouTube Plus</a></li>
|
||||
<li><a href="https://ios.cfw.guide/installing-trollstore/">Installa TrollStore</a>, poi <a href="https://github.com/Lessica/TrollFools/releases/">TrollFools</a>, installa l'ultima versione di YouTube supportata nell'App Store, e installa <a href="https://github.com/dayanch96/YTLite/releases/">YouTube Plus</a> utilizzando TrollFools</li>
|
||||
<li>Trova un'IPA compatibile online e <a href="../README.md#how-to-build-a-youtube-plus-app-using-github-actions">builda YouTube Plus utilizzando Github actions</a></li>
|
||||
</details>
|
||||
<br>
|
||||
<details>
|
||||
<summary>Il Cast non funziona più su YouTube Plus sideloaded. Cosa dovrei fare?</summary>
|
||||
<p>Finché non si risolve il problema, è consigliato usare YouTube 20.14.1 o inferiori.</p>
|
||||
</details>
|
||||
<br>
|
||||
<details>
|
||||
<summary>Quando provo a riprodurre un video, mi esce <strong><em>Qualcosa è andato storto. Aggiorna e riprova più tardi.</em></strong></summary>
|
||||
<p>Prima di giungere a conclusioni affrettate, chiariamo un paio di cose:</p>
|
||||
<ol>
|
||||
<li><strong>Non è</strong> causato dall'ad blocking</li>
|
||||
<li><strong>Non è</strong> causato dal fatto che il tuo account è stato magicamente segnalato</li>
|
||||
<li><strong>Non è</strong> causato dal fatto che il tuo account è stato inserito in blacklist</li>
|
||||
</ol>
|
||||
<br>
|
||||
<p>Questo problema risiede nel processo del sideloading stesso, anche senza nessun tweak applicato. Potrebbe essere causato da VisitorID o VisitorData invalidi o mancanti, come suggerito <a href="https://github.com/pepeloni-away/userscripts/issues/6#issuecomment-2860641610">qui</a>. Questo errore è diventato più frequente a causa delle contromisure anti-download di YouTube.</p>
|
||||
<br>
|
||||
<p><strong>Possibili workaround temporanei:</strong></p>
|
||||
<ol>
|
||||
<li>Esci dal tuo account completamente: Vai su <em>Tab Tu → Cambia account → Gestisci account su questo dispositivo → Rimuovi da questo dispositivo</em></li>
|
||||
<li>Guarda un paio di video fino alla fine senza eseguire il login. Non eseguire il login per un paio d'ore.</li>
|
||||
<li>Riesegui il login nell'account con cui stavi avendo problemi</li>
|
||||
</ol>
|
||||
</details>
|
||||
@@ -0,0 +1,43 @@
|
||||
# FAQ (Najczęściej Zadawane Pytania)
|
||||
|
||||
[🇺🇸 English FAQ](FAQ_EN.md) | [🇷🇺 ЧаВо на Русском](FAQ_RU.md) | [🇮🇹 FAQ in Italiano](FAQ_IT.md) | [✓] 🇵🇱 FAQ po Polsku
|
||||
|
||||
<details>
|
||||
<summary>Jakie wersje iOS obsługuje YouTube Plus?</summary>
|
||||
<p>YouTube Plus obsługuje iOS 14 i nowsze. <strong>Jednakże</strong>, jeśli instalujesz go metodą sideload na urządzeniu bez jailbreaka, musisz również wziąć pod uwagę kompatybilność aplikacji YouTube z Twoją wersją iOS. Poniżej znajduje się lista ostatnich obsługiwanych wersji YouTube dla poszczególnych wersji iOS:</p>
|
||||
<li><strong>iOS 14</strong>: YouTube v19.20.2</li>
|
||||
<li><strong>iOS 15</strong>: YouTube v20.21.6</li>
|
||||
<li><strong>iOS 16+</strong>: Dowolna wersja, zgodna z obsługą przez YouTube</li>
|
||||
</details>
|
||||
<br>
|
||||
<details>
|
||||
<summary>Moja wersja iOS nie jest już obsługiwana przez najnowszą aplikację YouTube. Co mogę zrobić?</summary>
|
||||
<p>Oto kilka możliwych opcji:</p>
|
||||
<li><a href="https://ios.cfw.guide/get-started/">Zrób jailbreak urządzenia</a>, zainstaluj ostatnią obsługiwaną wersję YouTube ze sklepu App Store i <a href="http://dvntm0.github.io/#jb">zainstaluj YouTube Plus jako tweak</a></li>
|
||||
<li><a href="https://ios.cfw.guide/installing-trollstore/">Zainstaluj TrollStore</a>, następnie <a href="https://github.com/Lessica/TrollFools/releases/">TrollFools</a>, zainstaluj ostatnią obsługiwaną wersję YouTube ze sklepu App Store i wstrzyknij <a href="https://github.com/dayanch96/YTLite/releases/">YouTube Plus</a> przy użyciu TrollFools</li>
|
||||
<li>Znajdź kompatybilną wersję IPA w internecie i <a href="../README.md#how-to-build-a-youtube-plus-app-using-github-actions">zbuduj aplikację YouTube Plus przy użyciu GitHub Actions</a></li>
|
||||
</details>
|
||||
<br>
|
||||
<details>
|
||||
<summary>Przestało działać przesyłanie (Cast) w zainstalowanym metodą sideload YouTube Plus. Co powinienem zrobić?</summary>
|
||||
<p>Do czasu rozwiązania problemu zaleca się korzystanie z wersji YouTube 20.14.1 lub starszej.</p>
|
||||
</details>
|
||||
<br>
|
||||
<details>
|
||||
<summary>Podczas próby odtworzenia filmu pojawia się komunikat <strong><em>Coś poszło nie tak. Odśwież i spróbuj ponownie później.</em></strong></summary>
|
||||
<p>Zanim wyciągniesz wnioski, wyjaśnijmy kilka rzeczy:</p>
|
||||
<ol>
|
||||
<li><strong>To NIE jest</strong> spowodowane blokowaniem reklam</li>
|
||||
<li><strong>To NIE jest</strong> spowodowane rzekomym oznaczeniem Twojego konta</li>
|
||||
<li><strong>To NIE jest</strong> spowodowane ukrytym umieszczeniem Twojego konta na czarnej liście</li>
|
||||
</ol>
|
||||
<br>
|
||||
<p>Problem wydaje się tkwić w samym procesie sideloadingu, nawet bez zastosowania jakichkolwiek tweaków. Może być on związany z nieprawidłowym lub brakującym VisitorID lub VisitorData, jak zasugerowano <a href="https://github.com/pepeloni-away/userscripts/issues/6#issuecomment-2860641610">tutaj</a>. Błąd ten występuje częściej z powodu zaostrzenia zabezpieczeń anty-pobieraniowych przez YouTube.</p>
|
||||
<br>
|
||||
<p><strong>Możliwe tymczasowe obejście:</strong></p>
|
||||
<ol>
|
||||
<li>Całkowicie wyloguj się z obecnego konta (lub wszystkich kont): Przejdź do zakładki <em>Ty → Zmień konto → Zarządzaj kontami na tym urządzeniu → Usuń z tego urządzenia</em></li>
|
||||
<li>Obejrzyj kilka pełnometrażowych filmów bez logowania się. Pozostań wylogowany przez kilka godzin.</li>
|
||||
<li>Zaloguj się ponownie na konto, na którym występował problem</li>
|
||||
</ol>
|
||||
</details>
|
||||
@@ -0,0 +1,42 @@
|
||||
# ЧаВо (Часто задаваемые вопросы)
|
||||
|
||||
[🇺🇸 English FAQ](FAQ_EN.md) | [✓] 🇷🇺 ЧаВо на Русском | [🇮🇹 FAQ in Italiano](FAQ_IT.md) | [🇵🇱 FAQ po polsku](FAQ_PL.md)
|
||||
|
||||
<details>
|
||||
<summary>Какие версии iOS поддерживает YouTube Plus?</summary>
|
||||
<p>YouTube Plus поддерживает iOS 14 и выше. <strong>Однако</strong>, если вы устанавливаете его сертификатом разработчика, нужно учитывать совместимость самой YouTube с вашей iOS. Вот список последних поддерживаемых версий YouTube для каждой iOS:</p>
|
||||
<li><strong>iOS 14</strong>: YouTube v19.20.2</li>
|
||||
<li><strong>iOS 15</strong>: YouTube v20.21.6</li>
|
||||
<li><strong>iOS 16+</strong>: Любая версия, поддерживаемая YouTube</li>
|
||||
</details>
|
||||
<br>
|
||||
<details>
|
||||
<summary>Моя версия iOS более не поддерживается последним YouTube-ом. Что делать?</summary>
|
||||
<p>Вот возможные варианты:</p>
|
||||
<li><a href="https://ios.cfw.guide/get-started/">Установить джейлбрейк</a>, установить поддерживаемую версию YouTube из App Store, затем <a href="http://dvntm0.github.io/#jb">установить YouTube Plus как твик</a></li>
|
||||
<li><a href="https://ios.cfw.guide/installing-trollstore/">Установить TrollStore</a>, установить <a href="https://github.com/Lessica/TrollFools/releases/">TrollFools</a> через TrollStore, установить подходящую версию YouTube из App Store, затем «инжектнуть» <a href="https://github.com/dayanch96/YTLite/releases/">YouTube Plus</a> через TrollFools</li>
|
||||
<li>Найти и скачать совместимую IPA-версию в интернете, затем <a href="../README.md#how-to-build-a-youtube-plus-app-using-github-actions">собрать YouTube Plus через GitHub Actions</a></li>
|
||||
</details>
|
||||
<br>
|
||||
<details>
|
||||
<summary>Перестала работать функция трансляции на ТВ на сертификате разработчика. Что делать?</summary>
|
||||
<p>Пока проблема не будет решена, рекомендуется использовать версию YouTube 20.14.1 или ниже.</p>
|
||||
</details>
|
||||
<br>
|
||||
<details>
|
||||
<summary>При попытке воспроизведения видео появляется <strong><em>Произошла ошибка. Обновите страницу и попробуйте снова.</em></strong></summary>
|
||||
<p>Прежде чем делать выводы, уточним несколько моментов:</p>
|
||||
<ol>
|
||||
<li><strong>Это НЕ</strong> из-за блокировщика рекламы</li>
|
||||
<li><strong>Это НЕ</strong> потому что ваш аккаунт каким-то образом был помечен</li>
|
||||
<li><strong>Это НЕ</strong> из-за того, что ваш аккаунт добавлен в загадочный чёрный список</li>
|
||||
</ol>
|
||||
<br>
|
||||
<p>Проблема, скорее, кроется в самом процессе сайдлоадинга, даже «чистом» YouTube без твиков. <a href="https://github.com/pepeloni-away/userscripts/issues/6#issuecomment-2860641610">Тут</a> пишут, что причина в некорректных или отсутствующих VisitorID/VisitorData. Такая ошибка стала встречаться чаще из-за новых механизмов YouTube по борьбе с загрузчиками.</p>
|
||||
<p><strong>Возможные временные решения:</strong></p>
|
||||
<ol>
|
||||
<li>Полностью выйдите из аккаунта (или всех аккаунтов): <em>Перейдите во вкладку «Вы» → Сменить аккаунт → Управление аккаунтами на этом устройстве → Удалить</em></li>
|
||||
<li>Просмотрите несколько длинных видео без входа в аккаунт. Оставайтесь в разлогиненном состоянии несколько часов.</li>
|
||||
<li>Заново войдите в аккаунт, на котором возникала проблема</li>
|
||||
</ol>
|
||||
</details>
|
||||
@@ -1,6 +1,15 @@
|
||||
# YouTube Plus (ex. YTLite)
|
||||
A flexible enhancer for YouTube on iOS, featuring over hundred customizable options.
|
||||
|
||||
## Table of Contents
|
||||
- [Screenshots](#screenshots)
|
||||
- [Main Features](#main-features)
|
||||
- [FAQ](#faq)
|
||||
- [Reviews](#reviews)
|
||||
- [How to build a YouTube Plus app using GitHub Actions](#how-to-build-a-youtube-plus-app-using-github-actions)
|
||||
- [Supported YouTube Version](#supported-youtube-version)
|
||||
- [Tweak Integration Details](#tweak-integration-details)
|
||||
|
||||
## Screenshots
|
||||
<table>
|
||||
<tr>
|
||||
@@ -40,9 +49,13 @@ A flexible enhancer for YouTube on iOS, featuring over hundred customizable opti
|
||||
**YouTube Plus preferences can be found in the YouTube Settings**
|
||||
|
||||
**All contributors are listed in the Contributors section**
|
||||
|
||||
**Used open-source libraries are listed in the Open Source Libraries section**
|
||||
|
||||
## FAQ
|
||||
- [🇺🇸 English FAQ](FAQs/FAQ_EN.md)
|
||||
- [🇷🇺 ЧаВо на Русском](FAQs/FAQ_RU.md)
|
||||
- [🇮🇹 FAQ in Italiano](FAQs/FAQ_IT.md)
|
||||
- [🇵🇱 FAQ po polsku](FAQs/FAQ_PL.md)
|
||||
|
||||
## Reviews
|
||||
Review by [@qbap](https://github.com/qbap) on ONE Jailbreak: https://onejailbreak.com/blog/youtube-plus/
|
||||
@@ -58,7 +71,7 @@ Review by [@qbap](https://github.com/qbap) on ONE Jailbreak: https://onejailbrea
|
||||
<summary>How to build the YouTube Plus app</summary>
|
||||
<ol>
|
||||
<li>Click on <strong>Sync fork</strong>, and if your branch is out-of-date, click on <strong>Update branch</strong>.</li>
|
||||
<li>Navigate to the <strong>Actions tab</strong> in your forked repository and select <strong>Build YouTube Plus app</strong>.</li>
|
||||
<li>Navigate to the <strong>Actions tab</strong> in your forked repository and select <strong>Create YouTube Plus app</strong>.</li>
|
||||
<li>Click the <strong>Run workflow</strong> button located on the right side.</li>
|
||||
<li>Mark or unmark the tweaks you want to integrate. Learn more about them in the <a href="#tweak-integration-details">Tweak Integration Details</a> section.</li>
|
||||
<li>Prepare a decrypted .ipa file <em>(we cannot provide this due to legal reasons)</em>, then upload it to a file provider (e.g., filebin.net, filemail.com, or Dropbox is recommended). Paste the URL of the decrypted IPA file in the provided field.</li>
|
||||
@@ -89,9 +102,11 @@ Review by [@qbap](https://github.com/qbap) on ONE Jailbreak: https://onejailbrea
|
||||
</details>
|
||||
|
||||
## Supported YouTube Version
|
||||
<li><strong>Latest confirmed:</strong> <em>20.29.3</em></li>
|
||||
<li><strong>Date tested:</strong> <em>July 25, 2025</em></li>
|
||||
<li><strong>YouTube Plus:</strong> <em>5.2 beta 2</em></li>
|
||||
<ul>
|
||||
<li><strong>Latest confirmed:</strong> <em>20.42.3</em></li>
|
||||
<li><strong>Date tested:</strong> <em>Nov 5, 2025</em></li>
|
||||
<li><strong>YouTube Plus:</strong> <em>5.2 beta 4</em></li>
|
||||
</ul>
|
||||
|
||||
## Tweak Integration Details
|
||||
<details>
|
||||
@@ -127,4 +142,4 @@ Review by [@qbap](https://github.com/qbap) on ONE Jailbreak: https://onejailbrea
|
||||
<p>DontEatMyContent is a tweak developed by <a href="https://github.com/therealFoxster">therealFoxster</a> that prevents the Notch/Dynamic Island from munching on 2:1 video content in the iOS YouTube app.</p>
|
||||
<p><strong>DontEatMyContent preferences</strong> are available in the <strong>YouTube settings</strong>.</p>
|
||||
<p>Source code and additional information are available <a href="https://github.com/therealFoxster/DontEatMyContent">in therealFoxster's GitHub repository</a>.</p>
|
||||
</details>
|
||||
</details>
|
||||
|
||||
@@ -90,6 +90,22 @@
|
||||
],
|
||||
"class": "DepictionStackView",
|
||||
"tabname": "Details"
|
||||
},
|
||||
{
|
||||
"views": [
|
||||
{
|
||||
"class": "DepictionTableButtonView",
|
||||
"title": "My Patreon",
|
||||
"action": "https://patreon.com/dayanch96"
|
||||
},
|
||||
{
|
||||
"class": "DepictionTableButtonView",
|
||||
"title": "Buy me a coffee",
|
||||
"action": "https://buymeacoffee.com/dayanch96"
|
||||
}
|
||||
],
|
||||
"class": "DepictionStackView",
|
||||
"tabname": "Support"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -337,8 +337,8 @@
|
||||
"Interface" = "واجهة المستخدم";
|
||||
"OledTheme" = "ثيم OLED";
|
||||
"OledThemeDesc" = "يحول جميع الألوان الداكنة إلى الأسود.";
|
||||
"OledKeyboard" = "لوحة مفاتيح Oled";
|
||||
"OledKeyboardDesc" = "يطبق سمة oled السوداء على لوحة المفاتيح المظلمة";
|
||||
"OledKeyboard" = "لوحة مفاتيح OLED";
|
||||
"OledKeyboardDesc" = "يطبق سمة OLED السوداء على لوحة المفاتيح المظلمة";
|
||||
"NoSearchHistory" = "إخفاء سجل البحث";
|
||||
"NoSearchHistoryDesc" = "يخفي سجل البحث والاقتراحات بصريًا. ملاحظة: سيظل سجل البحث الخاص بك متاحًا في عملاء YouTube الآخرين.";
|
||||
"StickSortComments" = "تثبيت رأس التعليقات";
|
||||
|
||||
@@ -335,10 +335,10 @@
|
||||
|
||||
/* Interface options */
|
||||
"Interface" = "Interface";
|
||||
"OledTheme" = "Oled theme";
|
||||
"OledTheme" = "OLED theme";
|
||||
"OledThemeDesc" = "Turns all dark colors to black";
|
||||
"OledKeyboard" = "Oled keyboard";
|
||||
"OledKeyboardDesc" = "Applies oled black theme for dark keyboard";
|
||||
"OledKeyboard" = "OLED keyboard";
|
||||
"OledKeyboardDesc" = "Applies OLED black theme for dark keyboard";
|
||||
"NoSearchHistory" = "Hide search history";
|
||||
"NoSearchHistoryDesc" = "Visually hides search history and suggestions. Note: Your search history will still be accessible in your other YouTube clients.";
|
||||
"StickSortComments" = "Stick comments header";
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
"PostDownloadDesc" = "La acción seleccionada se ejecutará al completar con éxito la descarga del vídeo.";
|
||||
"SaveToPhotos" = "Guardar en fotos";
|
||||
"Share" = "Compartir";
|
||||
"Copy" = "Copy";
|
||||
"Copy" = "Copiar";
|
||||
"Ask" = "Preguntar";
|
||||
"DownloadCompleted" = "Descarga completada";
|
||||
|
||||
@@ -92,17 +92,17 @@
|
||||
/* Player options */
|
||||
"Player" = "Reproductor";
|
||||
"PlaybackQualityOnWiFi" = "Calidad de reproducción en WiFi";
|
||||
"PlaybackQualityOnWiFiDesc" = "Automatically applies the selected quality when streaming over Wi-Fi";
|
||||
"PlaybackQualityOnWiFiDesc" = "Aplica automáticamente la calidad de transmisión seleccionada en red WIFI";
|
||||
"PlaybackQualityOnCellular" = "Calidad de reproducción en red móvil";
|
||||
"PlaybackQualityOnCellularDesc" = "Automatically applies the selected quality when streaming over mobile data";
|
||||
"PlaybackQualityOnCellularDesc" = "Aplica automáticamente la calidad de transmisión seleccionada en red de datos móviles";
|
||||
|
||||
"PreferredCaptions" = "Subtítulos preferidos";
|
||||
"Original" = "Original";
|
||||
"Custom" = "Seleccionar manualmente";
|
||||
"CustomAudioTrack" = "Pista de audio seleccionada";
|
||||
"CustomAudioTrackDesc" = "Specifies the preferred audio track language to use for playback, if available";
|
||||
"CustomAudioTrackDesc" = "Especifica la pista de audio del idioma seleccionado para la reproducción, si está disponible";
|
||||
"CustomCaptions" = "Subtítulos seleccionados";
|
||||
"CustomCaptionsDesc" = "Specifies the preferred captions language to display, if available";
|
||||
"CustomCaptionsDesc" = "Especifica los subtítulos del idoma seleccionado a mostrar, si etá disponible";
|
||||
"AutoGenCaps" = "Subtítulos autogenerados";
|
||||
"AutoGenCapsDesc" = "Si no se encuentran los subtítulos seleccionados, YouTube Plus intentará seleccionar una traducción de los subtítulos originales o una traducción de los subtítulos autogenerados.";
|
||||
|
||||
@@ -187,7 +187,7 @@
|
||||
|
||||
"Player.Actions" = "Acciones";
|
||||
"DefaultPlaybackRate" = "Velocidad de reproducción predeterminada";
|
||||
"DefaultPlaybackRateDesc" = "Overrides the default playback speed";
|
||||
"DefaultPlaybackRateDesc" = "Anula la velocidad de reproducción predeterminada";
|
||||
"BackgroundPlayback" = "Reproducción en segundo plano";
|
||||
"BackgroundPlaybackDesc" = "Permite la reproducción en segundo plano.";
|
||||
"Miniplayer" = "Activar mini reproductor";
|
||||
@@ -206,20 +206,20 @@
|
||||
"ExitFullscreenDesc" = "Sale del modo de pantalla completa al finalizar la reproducción del vídeo.";
|
||||
|
||||
"Player.Gestures" = "Gestos";
|
||||
"CompactToast" = "Compact toast";
|
||||
"CompactToastDesc" = "Displays a compact-style toast for player gestures";
|
||||
"CompactToast" = "Aviso compacto";
|
||||
"CompactToastDesc" = "Muestra un aviso de tipo compacto para los gestos del reproductor";
|
||||
"LeftSideGesture" = "Gesto para el lado izquierdo";
|
||||
"LeftSideGestureDesc" = "Adjusts the selected setting by swiping vertically on the left side of the screen";
|
||||
"LeftSideGestureDesc" = "Ajusta la configuración seleccionada deslizando verticalmente en el lado izquierdo de la pantalla";
|
||||
"RightSideGesture" = "Gesto para el lado derecho";
|
||||
"RightSideGestureDesc" = "Adjusts the selected setting by swiping vertically on the right side of the screen";
|
||||
"RightSideGestureDesc" = "Ajusta la configuración seleccionada deslizando verticalmente en el lado derecho de la pantalla";
|
||||
"ActivationAreaWidth" = "Anchura de activación del gesto";
|
||||
"ActivationAreaWidthDesc" = "Este valor determina la zona de reconocimiento de gestos en píxeles para los lados izquierdo y derecho de la pantalla.\n\nEl valor máximo permitido es un tercio del ancho de la pantalla.\n\nAjustar esta configuración es útil para evitar la activación accidental al intentar minimizar o expandir el reproductor.";
|
||||
"HoldToSpeed" = "Mantener para velocidad";
|
||||
"HoldToSpeedDesc" = "Sets the playback speed triggered by a long press on the player";
|
||||
"HoldToSpeedDesc" = "Aumenta la velocidad de reproducción con una pulsación larga en el reproductor";
|
||||
"AdjustWithFinger" = "Ajusta la velocidad mediante gestos";
|
||||
"AdjustWithFingerDesc" = "Permite ajustar la velocidad de reproducción presionando durante mucho tiempo el reproductor y moviendo el dedo hacia arriba y hacia abajo";
|
||||
"PreserveSpeed" = "Lock speed";
|
||||
"PreserveSpeedDesc" = "Locks at adjusted speed after gesture completion.";
|
||||
"PreserveSpeed" = "Bloquear velocidad";
|
||||
"PreserveSpeedDesc" = "Bloquea a la velocidad elegida después de completar un gesto.";
|
||||
"SeekAnywhere" = "Deslizar para buscar";
|
||||
"SeekAnywhereDesc" = "Permite controlar la búsqueda de la reproducción deslizando hacia la izquierda y la derecha.";
|
||||
"SeekMethod" = "Método de búsqueda";
|
||||
@@ -330,15 +330,15 @@
|
||||
"InactiveTabs" = "Pestañas inactivas";
|
||||
"HideLibraryFooter" = "La pestaña de la biblioteca se puede ocultar o mostrar manteniendo presionada la primera pestaña de la barra de pestañas.";
|
||||
"Warning" = "Advertencia";
|
||||
"AtLeastOneTab" = "At least one tab must remain active";
|
||||
"AtLeastOneTab" = "Al menos una pestaña debe permanecer activa";
|
||||
"TabsCountRestricted" = "Solo puedes tener hasta seis pestañas activas";
|
||||
|
||||
/* Interface options */
|
||||
"Interface" = "Interfaz";
|
||||
"OledTheme" = "Tema Oled";
|
||||
"OledTheme" = "Tema OLED";
|
||||
"OledThemeDesc" = "Convierte todos los colores oscuros en negro";
|
||||
"OledKeyboard" = "Teclado Oled";
|
||||
"OledKeyboardDesc" = "Aplica el tema negro oled al teclado oscuro";
|
||||
"OledKeyboard" = "Teclado OLED";
|
||||
"OledKeyboardDesc" = "Aplica el tema negro OLED al teclado oscuro";
|
||||
"NoSearchHistory" = "Ocultar el historial de búsqueda";
|
||||
"NoSearchHistoryDesc" = "Oculta visualmente el historial de búsqueda y las sugerencias. Nota: El historial de búsqueda seguirá siendo accesible en otros clientes de YouTube.";
|
||||
"StickSortComments" = "Pegar cabecera de comentarios";
|
||||
@@ -364,8 +364,8 @@
|
||||
"Other" = "Other";
|
||||
"NoShareChunk" = "Eliminar identificador de compartición";
|
||||
"NoShareChunkDesc" = "Elimina el parámetro \"si=identificador\" de los enlaces compartidos. Una buena alternativa a la opción \"Hoja de compartir nativa\" mientras YouTube sigue mejorando su menú de compartición.";
|
||||
"AutoCheckLinks" = "Auto-check clipboard";
|
||||
"AutoCheckLinksDesc" = "Check clipboard for YouTube-related links each time the app is opened.\nFor proper functionality, go to iOS Settings → YouTube → Paste from other apps and select \"Allow\"";
|
||||
"AutoCheckLinks" = "Auto chequeo de portapapeles";
|
||||
"AutoCheckLinksDesc" = "Chequea los enlaces relaccionados con YouTube en el portapapeles cada vez que se abre la app.\nPara un funcionamiento apropiado, ir a Ajustes de iOS → YouTube → Pegar desde otras apps y selecciona \"Permitir\"";
|
||||
|
||||
"ContextMenu" = "Menú contextual";
|
||||
"NativeShare" = "Hoja de acciones nativas";
|
||||
@@ -388,16 +388,16 @@
|
||||
"RemoveDontRecommendMenuDesc" = "Elimina la opción \"No recomendar canal\" del menú.";
|
||||
"RemoveReportMenu" = "Eliminar \"Reportar\"";
|
||||
"RemoveReportMenuDesc" = "Elimina la opción \"Reportar\" del menú.";
|
||||
"RemoveRemixMenu" = "Remove \"Remix\"";
|
||||
"RemoveRemixMenuDesc" = "Removes \"Remix\" option from menu.";
|
||||
"RemoveYTMMenu" = "Remove \"YouTube Music\"";
|
||||
"RemoveYTMMenuDesc" = "Removes \"Listen with YouTube Music\" option from menu.";
|
||||
"RemoveRemixMenu" = "Eliminar \"Remix\"";
|
||||
"RemoveRemixMenuDesc" = "Elimina la opción \"Remix\" del menú.";
|
||||
"RemoveYTMMenu" = "Eliminar \"YouTube Music\"";
|
||||
"RemoveYTMMenuDesc" = "Elimina la opción \"Escuchar con YouTube Music\" del menú.";
|
||||
|
||||
/* SponsorBlock settings */
|
||||
"EnableSponsorBlock" = "Habilitar";
|
||||
"EnableSponsorBlockDesc" = "Activa la extensión SponsorBlock.";
|
||||
"SbPlayerButton" = "Display button in overlay";
|
||||
"SbPlayerButtonDesc" = "Adds SponsorBlock button in players overlay.";
|
||||
"SbPlayerButton" = "Muestra el botón en superposición";
|
||||
"SbPlayerButtonDesc" = "Añade un botón de SponsorBlock en la superposición del reproductor.";
|
||||
"ShowNotifications" = "Mostrar notificaciones";
|
||||
"ShowNotificationsDesc" = "Muestra notificaciones para los segmentos omitidos automáticamente. Las notificaciones para las categorías que requieren omisión manual siempre se muestran.";
|
||||
"SegmentsInFeedPlayer" = "Mostrar segmentos en el feed";
|
||||
@@ -447,12 +447,12 @@
|
||||
"Sb.Ask" = "Preguntar";
|
||||
"Sb.Display" = "Mostrar en el reproductor";
|
||||
|
||||
"PublicUserID" = "Public UserID";
|
||||
"PrivateUserID" = "Private UserID";
|
||||
"TapToReveal" = "Tap to reveal";
|
||||
"Save" = "Save";
|
||||
"Error.SbPublicID" = "The public user ID must contain exactly 64 characters";
|
||||
"Error.SbPrivateID" = "The private (local) user ID must contain at least 32 characters";
|
||||
"PublicUserID" = "ID de usuario pública";
|
||||
"PrivateUserID" = "ID de usuario privada";
|
||||
"TapToReveal" = "Tocar para revelar";
|
||||
"Save" = "Guardar";
|
||||
"Error.SbPublicID" = "La ID de usuario pública debe contener exactamente 64 caracteres";
|
||||
"Error.SbPrivateID" = "La ID de usuario privada (local) debe contener al menos 32 caracteres";
|
||||
|
||||
"sb_sponsor" = "Segmento de patrocinador";
|
||||
"sb_intro" = "Segmento de intro";
|
||||
@@ -461,14 +461,14 @@
|
||||
"sb_selfpromo" = "Segmento de auto-promoción";
|
||||
"sb_music_offtopic" = "Segmento fuera de tema";
|
||||
"sb_preview" = "Segmento de avance";
|
||||
"sb_poi_highlight" = "Highlight";
|
||||
"sb_poi_highlight" = "Destacado";
|
||||
"sb_filler" = "Segmento de relleno";
|
||||
|
||||
"SegmentDetected" = "%@ detected.\n%@";
|
||||
"SegmentSkipped" = "%@ has been skipped";
|
||||
"SkippedToSegment" = "Jumped to %@";
|
||||
"SkipSegment" = "Would you like to skip the segment?";
|
||||
"SkipToSegment" = "Would you like to jump to the highlight?";
|
||||
"SegmentDetected" = "%@ detectado.\n%@";
|
||||
"SegmentSkipped" = "%@ se ha saltado";
|
||||
"SkippedToSegment" = "Sltado a %@";
|
||||
"SkipSegment" = "¿Quieres omitir el segmento?";
|
||||
"SkipToSegment" = "¿ Quieres saltar a lo destacado?";
|
||||
"Unskip" = "Deshacer omisión";
|
||||
|
||||
/* Developer section */
|
||||
@@ -540,7 +540,7 @@
|
||||
"Disable" = "Desactivar";
|
||||
"Disabled" = "Desactivado";
|
||||
"PlaybackSpeed" = "Velocidad de reproducción";
|
||||
"SpeedPreserved" = "Speed locked at %@";
|
||||
"SpeedPreserved" = "Velocidad fijada a %@";
|
||||
"ResetSpeed" = "Restablecer";
|
||||
|
||||
"Toast.Brightness" = "Brillo";
|
||||
@@ -599,21 +599,21 @@
|
||||
"RetryLogin" = "Solución alternativa activada.\n\nPor favor, inténtelo de nuevo.";
|
||||
"LoginInfo" = "Se requiere reiniciar la aplicación después de iniciar sesión con éxito en la cuenta de Google";
|
||||
|
||||
"OpenLink" = "Open link";
|
||||
"LinkDetected" = "A YouTube-related link was detected. Would you like to open it in YouTube?";
|
||||
"OpenLink" = "Abrir enlace";
|
||||
"LinkDetected" = "Se ha detectado un enlace relaccionado con YouTube. ¿Quieres abrirlo en YouTube?";
|
||||
|
||||
"SbWhitelist" = "Whitelist";
|
||||
"SbAddToWhitelist" = "Add to the whitelist";
|
||||
"Sb.Whitelisted" = "Added to the whitelist";
|
||||
"SbRemoveFromWhitelist" = "Remove from the whitelist";
|
||||
"Sb.Whitelist" = "Whitelisted channels";
|
||||
"Sb.Channels" = "Channels";
|
||||
"Sb.ChannelsHere" = "Whitelisted channels appear here";
|
||||
"SortType" = "Sort type";
|
||||
"Sb.Newest" = "Newest first";
|
||||
"Sb.Oldest" = "Oldest first";
|
||||
"Sb.Alphabetical" = "Alphabetical (A-Z)";
|
||||
"Sb.AlphabeticalRev" = "Reverse (Z-A)";
|
||||
"SbWhitelist" = "Lista blanca";
|
||||
"SbAddToWhitelist" = "Añadir a la lista blanca";
|
||||
"Sb.Whitelisted" = "Añadido a la lista blanca";
|
||||
"SbRemoveFromWhitelist" = "Eliminar de la lista blanca";
|
||||
"Sb.Whitelist" = "Canales de la lista blanca";
|
||||
"Sb.Channels" = "Canales";
|
||||
"Sb.ChannelsHere" = "Los canales de la lista blanca aparecen aquí";
|
||||
"SortType" = "Tipo de clasificación";
|
||||
"Sb.Newest" = "El más nuevo primero";
|
||||
"Sb.Oldest" = "El más antiguo primero";
|
||||
"Sb.Alphabetical" = "Orden alfabético (A-Z)";
|
||||
"Sb.AlphabeticalRev" = "Inverso (Z-A)";
|
||||
|
||||
"Welcome.Download" = "Descarga multimedia";
|
||||
"Welcome.DownloadDesc" = "Descarga tu contenido favorito, ya sean vídeos, shorts, audio o fotos de perfil. Copia publicaciones y comentarios interesantes o guárdalos como imágenes.";
|
||||
@@ -645,4 +645,4 @@
|
||||
"SkippedToSegment" = "Saltado al %@";
|
||||
"SkipSegment" = "Omitir";
|
||||
"SkipToSegment" = "Para destacar";
|
||||
"SpeedPreserved" = "Velocidad conservada";
|
||||
"SpeedPreserved" = "Velocidad conservada";
|
||||
|
||||
@@ -337,8 +337,8 @@
|
||||
"Interface" = "Interface";
|
||||
"OledTheme" = "Thème OLED";
|
||||
"OledThemeDesc" = "Change toutes les couleurs sombres en noir OLED";
|
||||
"OledKeyboard" = "Oled keyboard";
|
||||
"OledKeyboardDesc" = "Applies oled black theme for dark keyboard";
|
||||
"OledKeyboard" = "OLED keyboard";
|
||||
"OledKeyboardDesc" = "Applies OLED black theme for dark keyboard";
|
||||
"NoSearchHistory" = "Masquer l'historique de recherche";
|
||||
"NoSearchHistoryDesc" = "Masque visuellement l'historique de recherche et les suggestions. Note : Votre historique de recherche sera toujours accessible dans vos autres clients YouTube.";
|
||||
"StickSortComments" = "Épingler l'en-tête des commentaires";
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
/* Downloading options */
|
||||
"Downloading" = "Scaricamento";
|
||||
"DownloadManager" = "Gestore dei download";
|
||||
"DownloadManagerDesc" = "Sostituisce il bottone 'Download' sotto al player con un Gestore dei Download, che consente lo scaricamento di Video, Audio, Immagine di Copertina, e copiare le informazioni del video.";
|
||||
"DownloadManagerDesc" = "Sostituisce il bottone 'Download' sotto al player con un Gestore dei Download, che consente lo scaricamento di Video, Audio, Immagine di Copertina e di copiare le informazioni del video.";
|
||||
"PostManager" = "Salva le informazioni di un post";
|
||||
"PostManagerDesc" = "Permette di copiare il testo dei post e salvare il post come immagine tenendo premuto.";
|
||||
"SaveProfilePhoto" = "Salva l'immagine di profilo";
|
||||
@@ -21,7 +21,7 @@
|
||||
"PostDownloadDesc" = "L'azione selezionata verrà eseguita una volta completato il download di un video.";
|
||||
"SaveToPhotos" = "Salva nella galleria";
|
||||
"Share" = "Condividi";
|
||||
"Copy" = "Copy";
|
||||
"Copy" = "Copia";
|
||||
"Ask" = "Chiedi";
|
||||
"DownloadCompleted" = "Download completato";
|
||||
|
||||
@@ -92,17 +92,17 @@
|
||||
/* Player options */
|
||||
"Player" = "Player";
|
||||
"PlaybackQualityOnWiFi" = "Qualità di riproduzione su WiFi";
|
||||
"PlaybackQualityOnWiFiDesc" = "Automatically applies the selected quality when streaming over Wi-Fi";
|
||||
"PlaybackQualityOnWiFiDesc" = "Applica automaticamente la qualità selezionata durante la riproduzione con il Wi-Fi";
|
||||
"PlaybackQualityOnCellular" = "Qualità di riproduzione su cellulare";
|
||||
"PlaybackQualityOnCellularDesc" = "Automatically applies the selected quality when streaming over mobile data";
|
||||
"PlaybackQualityOnCellularDesc" = "Applica automaticamente la qualità selezionata durante la riproduzione con i Dati Cellulare";
|
||||
|
||||
"PreferredCaptions" = "Sottotitoli preferiti";
|
||||
"Original" = "Originale";
|
||||
"Custom" = "Seleziona manualmente";
|
||||
"CustomAudioTrack" = "Traccia audio selezionata";
|
||||
"CustomAudioTrackDesc" = "Specifies the preferred audio track language to use for playback, if available";
|
||||
"CustomAudioTrackDesc" = "Seleziona la traccia audio preferita per utilizzarla nella riproduzione, se disponibile";
|
||||
"CustomCaptions" = "Sottotitoli selezionati";
|
||||
"CustomCaptionsDesc" = "Specifies the preferred captions language to display, if available";
|
||||
"CustomCaptionsDesc" = "Seleziona i sottotitoli preferiti da mostrare, se disponibili";
|
||||
"AutoGenCaps" = "Sottotitoli generati automaticamente";
|
||||
"AutoGenCapsDesc" = "Se i sottotitoli selezionati non sono disponibili, YouTube Plus cercherà di selezionare una traduzione dei sottotitoli originali o una traduzione dei sottotitoli generati automaticamente.";
|
||||
|
||||
@@ -187,7 +187,7 @@
|
||||
|
||||
"Player.Actions" = "Azioni";
|
||||
"DefaultPlaybackRate" = "Velocità di riproduzione predefinita";
|
||||
"DefaultPlaybackRateDesc" = "Overrides the default playback speed";
|
||||
"DefaultPlaybackRateDesc" = "Sovrascrive la velocità di riproduzione di default";
|
||||
"BackgroundPlayback" = "Riproduzione in background";
|
||||
"BackgroundPlaybackDesc" = "Abilita la riproduzione in background.";
|
||||
"Miniplayer" = "Abilita mini lettore";
|
||||
@@ -207,19 +207,19 @@
|
||||
|
||||
"Player.Gestures" = "Gestures";
|
||||
"CompactToast" = "Compact toast";
|
||||
"CompactToastDesc" = "Displays a compact-style toast for player gestures";
|
||||
"CompactToastDesc" = "Mostra un compact-toast per le gestures";
|
||||
"LeftSideGesture" = "Gesture per il lato sinistro";
|
||||
"LeftSideGestureDesc" = "Adjusts the selected setting by swiping vertically on the left side of the screen";
|
||||
"LeftSideGestureDesc" = "Regola l'impostazione selezionata scorrendo verticalmente nel lato sinistro dello schermo";
|
||||
"RightSideGesture" = "Gesture per il lato destro";
|
||||
"RightSideGestureDesc" = "Adjusts the selected setting by swiping vertically on the right side of the screen";
|
||||
"RightSideGestureDesc" = "Regola l'impostazione selezionata scorrendo verticalmente nel lato destro dello schermo";
|
||||
"ActivationAreaWidth" = "Larghezza area di attivazione della gesture";
|
||||
"ActivationAreaWidthDesc" = "Questo valore determina la zona di riconoscimento della gesture in pixel per i lati sinistro e destro dello schermo.\n\nIl valore massimo consentito è un terzo della larghezza dello schermo.\n\nRegolare questa impostazione è utile per prevenire attivazioni accidentali quando si tenta di ridurre o espandere il lettore.";
|
||||
"HoldToSpeed" = "Tieni premuto per aumentare la velocità";
|
||||
"HoldToSpeedDesc" = "Sets the playback speed triggered by a long press on the player";
|
||||
"HoldToSpeedDesc" = "Imposta la velocità di riproduzione attivata da una pressione lunga sul player";
|
||||
"AdjustWithFinger" = "Regola la velocità con gesture";
|
||||
"AdjustWithFingerDesc" = "Consente di regolare la velocità di riproduzione con una lunga pressione sul player e muovendo il dito su e giù.";
|
||||
"PreserveSpeed" = "Lock speed";
|
||||
"PreserveSpeedDesc" = "Locks at adjusted speed after gesture completion.";
|
||||
"PreserveSpeed" = "Blocca velocità";
|
||||
"PreserveSpeedDesc" = "Imposta una velocità prefissata dopo una gesture";
|
||||
"SeekAnywhere" = "Scorri per cercare";
|
||||
"SeekAnywhereDesc" = "Consente di controllare la ricerca della riproduzione scorrendo a sinistra e a destra.";
|
||||
"SeekMethod" = "Metodo di ricerca";
|
||||
@@ -330,7 +330,7 @@
|
||||
"InactiveTabs" = "Tab inattive";
|
||||
"HideLibraryFooter" = "La tab Libreria può essere nascosta o mostrata premendo a lungo sulla prima tab della Tab bar.";
|
||||
"Warning" = "Attenzione";
|
||||
"AtLeastOneTab" = "At least one tab must remain active";
|
||||
"AtLeastOneTab" = "Almeno una tab deve rimanere attiva";
|
||||
"TabsCountRestricted" = "Puoi avere fino a sei tab attive";
|
||||
|
||||
/* Interface options */
|
||||
@@ -361,11 +361,11 @@
|
||||
"MiniplayerStyleDesc" = "Cambiare da/a modalità floating richiede il riavvio dell'app.";
|
||||
"Floating" = "Floating";
|
||||
|
||||
"Other" = "Other";
|
||||
"Other" = "Altro";
|
||||
"NoShareChunk" = "Rimuovi share identifier";
|
||||
"NoShareChunkDesc" = "Rimuove il parametro \"si=identifier\" dai link condivisi. Una buona alternativa all'opzione \"Share sheet nativo\" visto che YouTube continua a migliorare il suo menu condivisione.";
|
||||
"AutoCheckLinks" = "Auto-check clipboard";
|
||||
"AutoCheckLinksDesc" = "Check clipboard for YouTube-related links each time the app is opened.\nFor proper functionality, go to iOS Settings → YouTube → Paste from other apps and select \"Allow\"";
|
||||
"AutoCheckLinks" = "Controlla automaticamente gli appunti";
|
||||
"AutoCheckLinksDesc" = "Controlla gli appunti per trovare link relativi a YouTube ogni volta che l'app viene aperta.\nPer un'esperienza migliore, vai nelle impostazioni di iOS → YouTube → Incolla da altre app e seleziona \"Consenti\"";
|
||||
|
||||
"ContextMenu" = "Menu contestuale";
|
||||
"NativeShare" = "Share sheet nativo";
|
||||
@@ -388,16 +388,16 @@
|
||||
"RemoveDontRecommendMenuDesc" = "Rimuove l'opzione \"Non raccomandare il canale\" dal menu.";
|
||||
"RemoveReportMenu" = "Rimuovi \"Segnala\"";
|
||||
"RemoveReportMenuDesc" = "Rimuove l'opzione \"Segnala\" dal menu.";
|
||||
"RemoveRemixMenu" = "Remove \"Remix\"";
|
||||
"RemoveRemixMenuDesc" = "Removes \"Remix\" option from menu.";
|
||||
"RemoveYTMMenu" = "Remove \"YouTube Music\"";
|
||||
"RemoveYTMMenuDesc" = "Removes \"Listen with YouTube Music\" option from menu.";
|
||||
"RemoveRemixMenu" = "Rimuovi \"Remix\"";
|
||||
"RemoveRemixMenuDesc" = "Rimuove l'opzione \"Remix\" dal menu.";
|
||||
"RemoveYTMMenu" = "Rimuovi \"YouTube Music\"";
|
||||
"RemoveYTMMenuDesc" = "Rimuove l'opzione \"Ascolta con YouTube Music\" dal menu.";
|
||||
|
||||
/* SponsorBlock settings */
|
||||
"EnableSponsorBlock" = "Abilita";
|
||||
"EnableSponsorBlockDesc" = "Attiva l'estensione SponsorBlock.";
|
||||
"SbPlayerButton" = "Display button in overlay";
|
||||
"SbPlayerButtonDesc" = "Adds SponsorBlock button in players overlay.";
|
||||
"SbPlayerButton" = "Mostra il tasto nell'overlay";
|
||||
"SbPlayerButtonDesc" = "Aggiunge il bottone SponsorBlock nell'overlay.";
|
||||
"ShowNotifications" = "Mostra notifiche";
|
||||
"ShowNotificationsDesc" = "Mostra le notifiche per i segmenti skippati automaticamente. Le notifiche per le categorie che richiedono uno skipping manuale sono sempre mostrate.";
|
||||
"SegmentsInFeedPlayer" = "Mostra segmenti nel feed";
|
||||
@@ -447,12 +447,12 @@
|
||||
"Sb.Ask" = "Chiedi";
|
||||
"Sb.Display" = "Mostra nel player";
|
||||
|
||||
"PublicUserID" = "Public UserID";
|
||||
"PrivateUserID" = "Private UserID";
|
||||
"TapToReveal" = "Tap to reveal";
|
||||
"Save" = "Save";
|
||||
"Error.SbPublicID" = "The public user ID must contain exactly 64 characters";
|
||||
"Error.SbPrivateID" = "The private (local) user ID must contain at least 32 characters";
|
||||
"PublicUserID" = "UserID pubblico";
|
||||
"PrivateUserID" = "UserID privato";
|
||||
"TapToReveal" = "Tocca per mostrare";
|
||||
"Save" = "Salva";
|
||||
"Error.SbPublicID" = "L'UserID pubblico deve contenere esattamente 64 caratteri";
|
||||
"Error.SbPrivateID" = "L'user ID privato (locale) deve contenere almeno 32 caratteri";
|
||||
|
||||
"sb_sponsor" = "Segmento Sponsor";
|
||||
"sb_intro" = "Segmento Intro";
|
||||
@@ -464,11 +464,11 @@
|
||||
"sb_poi_highlight" = "Highlight";
|
||||
"sb_filler" = "Segmento Filler";
|
||||
|
||||
"SegmentDetected" = "%@ detected.\n%@";
|
||||
"SegmentSkipped" = "%@ has been skipped";
|
||||
"SkippedToSegment" = "Jumped to %@";
|
||||
"SkipSegment" = "Would you like to skip the segment?";
|
||||
"SkipToSegment" = "Would you like to jump to the highlight?";
|
||||
"SegmentDetected" = "%@ rilevato.\n%@";
|
||||
"SegmentSkipped" = "%@ skippato";
|
||||
"SkippedToSegment" = "Passato a %@";
|
||||
"SkipSegment" = "Vuoi skippare il segmento?";
|
||||
"SkipToSegment" = "Vuoi passare all'highlight?";
|
||||
"Unskip" = "Unskip";
|
||||
|
||||
/* Developer section */
|
||||
@@ -540,7 +540,7 @@
|
||||
"Disable" = "Disattiva";
|
||||
"Disabled" = "Disattivato";
|
||||
"PlaybackSpeed" = "Velocità di riproduzione";
|
||||
"SpeedPreserved" = "Speed locked at %@";
|
||||
"SpeedPreserved" = "Velocità bloccata a %@";
|
||||
"ResetSpeed" = "Reset";
|
||||
|
||||
"Toast.Brightness" = "Luminosità";
|
||||
@@ -599,21 +599,21 @@
|
||||
"RetryLogin" = "Alternativa attivata.\n\nRiprova più tardi.";
|
||||
"LoginInfo" = "Il restart dell'app è necessario dopo essere loggati nell'account Google";
|
||||
|
||||
"OpenLink" = "Open link";
|
||||
"LinkDetected" = "A YouTube-related link was detected. Would you like to open it in YouTube?";
|
||||
"OpenLink" = "Apri link";
|
||||
"LinkDetected" = "Un link relativo a YouTube è stato rilevato. Vuoi aprirlo in YouTube?";
|
||||
|
||||
"SbWhitelist" = "Whitelist";
|
||||
"SbAddToWhitelist" = "Add to the whitelist";
|
||||
"Sb.Whitelisted" = "Added to the whitelist";
|
||||
"SbRemoveFromWhitelist" = "Remove from the whitelist";
|
||||
"Sb.Whitelist" = "Whitelisted channels";
|
||||
"Sb.Channels" = "Channels";
|
||||
"Sb.ChannelsHere" = "Whitelisted channels appear here";
|
||||
"SortType" = "Sort type";
|
||||
"Sb.Newest" = "Newest first";
|
||||
"Sb.Oldest" = "Oldest first";
|
||||
"Sb.Alphabetical" = "Alphabetical (A-Z)";
|
||||
"Sb.AlphabeticalRev" = "Reverse (Z-A)";
|
||||
"SbAddToWhitelist" = "Aggiungi alla whitelist";
|
||||
"Sb.Whitelisted" = "Aggiunto alla whitelist";
|
||||
"SbRemoveFromWhitelist" = "Rimuovi dalla whitelist";
|
||||
"Sb.Whitelist" = "Canali in whitelist";
|
||||
"Sb.Channels" = "Canali";
|
||||
"Sb.ChannelsHere" = "I canali in whitelist appariranno qua";
|
||||
"SortType" = "Modalità di ordinamento";
|
||||
"Sb.Newest" = "Più recenti prima";
|
||||
"Sb.Oldest" = "Meno recenti prima";
|
||||
"Sb.Alphabetical" = "Alfabetico (A-Z)";
|
||||
"Sb.AlphabeticalRev" = "Inverso (Z-A)";
|
||||
|
||||
"Welcome.Download" = "Download Media";
|
||||
"Welcome.DownloadDesc" = "Scarica il tuo contenuto preferito, sia esso un Video, Short, Audio o una foto profilo. Copia post/commenti interessanti o salvali come immagine";
|
||||
@@ -645,4 +645,4 @@
|
||||
"SkippedToSegment" = "Skippato a %@";
|
||||
"SkipSegment" = "Skip";
|
||||
"SkipToSegment" = "Da evidenziare";
|
||||
"SpeedPreserved" = "Velocità mantenuta";
|
||||
"SpeedPreserved" = "Velocità mantenuta";
|
||||
|
||||
@@ -19,9 +19,9 @@
|
||||
|
||||
"PostDownloadAction" = "ダウンロード後の動作";
|
||||
"PostDownloadDesc" = "選択した動作は、動画のダウンロードが正常に完了すると実行されます。";
|
||||
"SaveToPhotos" = "「写真」アプリに保存";
|
||||
"SaveToPhotos" = "[写真] アプリに保存";
|
||||
"Share" = "共有";
|
||||
"Copy" = "Copy";
|
||||
"Copy" = "コピー";
|
||||
"Ask" = "確認";
|
||||
"DownloadCompleted" = "ダウンロード完了";
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
"EmbedThumbnailsToVideos" = "サムネイルを埋め込む";
|
||||
"EmbedThumbnailsToVideosDesc" = "動画のサムネイルをメタデータのサムネイルとして埋め込みます。";
|
||||
"EmbedCapsToVideos" = "字幕を埋め込む";
|
||||
"EmbedCapsToVideosDesc" = "選択した字幕/キャプションを動画に埋め込みます。";
|
||||
"EmbedCapsToVideosDesc" = "選択したキャプション/字幕を動画に埋め込みます。";
|
||||
"EmbedAutoGenCaps" = "自動生成の字幕";
|
||||
"EmbedAutoGenCapsDesc" = "自動生成、翻訳、および自動翻訳された字幕を字幕リストに追加します。";
|
||||
"DownloadCaptions" = "字幕をダウンロード";
|
||||
@@ -49,11 +49,11 @@
|
||||
|
||||
/* Nav bar options */
|
||||
"Navbar" = "ナビゲーションバー(上部のボタン類)";
|
||||
"RemoveCast" = "キャストボタンを非表示";
|
||||
"RemoveCast" = "[キャスト] ボタンを非表示";
|
||||
"RemoveCastDesc" = "ナビゲーションバーから [キャスト] ボタンを非表示にします。";
|
||||
"RemoveNotifications" = "通知ボタンを非表示";
|
||||
"RemoveNotifications" = "[通知] ボタンを非表示";
|
||||
"RemoveNotificationsDesc" = "ナビゲーションバーから [通知] ボタンを非表示にします。";
|
||||
"RemoveSearch" = "検索ボタンを非表示";
|
||||
"RemoveSearch" = "[検索] ボタンを非表示";
|
||||
"RemoveSearchDesc" = "ナビゲーションバーから [検索] ボタンを非表示にします。";
|
||||
"RemoveVoiceSearch" = "音声検索ボタンを非表示";
|
||||
"RemoveVoiceSearchDesc" = "ナビゲーションバーから音声検索のボタンを非表示にします。";
|
||||
@@ -92,17 +92,17 @@
|
||||
/* Player options */
|
||||
"Player" = "プレーヤー";
|
||||
"PlaybackQualityOnWiFi" = "WiFi での再生画質";
|
||||
"PlaybackQualityOnWiFiDesc" = "Automatically applies the selected quality when streaming over Wi-Fi";
|
||||
"PlaybackQualityOnWiFiDesc" = "Wi-Fi経由でストリーミングする際に選択した画質を自動的に適用します。";
|
||||
"PlaybackQualityOnCellular" = "モバイルデータ通信での再生画質";
|
||||
"PlaybackQualityOnCellularDesc" = "Automatically applies the selected quality when streaming over mobile data";
|
||||
"PlaybackQualityOnCellularDesc" = "モバイルデータ通信でストリーミングする際に選択した画質を自動的に適用します。";
|
||||
|
||||
"PreferredCaptions" = "優先する字幕";
|
||||
"Original" = "オリジナル";
|
||||
"Custom" = "手動で選択";
|
||||
"CustomAudioTrack" = "音声トラックを選択";
|
||||
"CustomAudioTrackDesc" = "Specifies the preferred audio track language to use for playback, if available";
|
||||
"CustomAudioTrackDesc" = "再生時に使用する優先オーディオトラック言語を指定します (利用可能な場合)。";
|
||||
"CustomCaptions" = "字幕を選択";
|
||||
"CustomCaptionsDesc" = "Specifies the preferred captions language to display, if available";
|
||||
"CustomCaptionsDesc" = "利用可能な場合は、表示する字幕の言語を指定します。";
|
||||
"AutoGenCaps" = "自動生成の字幕";
|
||||
"AutoGenCapsDesc" = "選択した字幕が見つからない場合、YouTube Plus はオリジナル字幕の翻訳または自動生成字幕の翻訳を選択します。";
|
||||
|
||||
@@ -187,7 +187,7 @@
|
||||
|
||||
"Player.Actions" = "動作";
|
||||
"DefaultPlaybackRate" = "デフォルトの再生速度";
|
||||
"DefaultPlaybackRateDesc" = "Overrides the default playback speed";
|
||||
"DefaultPlaybackRateDesc" = "デフォルトの再生速度を上書きします。";
|
||||
"BackgroundPlayback" = "バックグラウンド再生";
|
||||
"BackgroundPlaybackDesc" = "バックグラウンド再生を有効にします。";
|
||||
"Miniplayer" = "ミニプレーヤーを有効化";
|
||||
@@ -206,20 +206,20 @@
|
||||
"ExitFullscreenDesc" = "動画が終了した際に全画面表示を終了します。";
|
||||
|
||||
"Player.Gestures" = "ジェスチャー";
|
||||
"CompactToast" = "Compact toast";
|
||||
"CompactToastDesc" = "Displays a compact-style toast for player gestures";
|
||||
"CompactToast" = "コンパクトなトーストを使用";
|
||||
"CompactToastDesc" = "プレイヤーのジェスチャー用のコンパクトなスタイルのトーストを表示します。";
|
||||
"LeftSideGesture" = "左側のジェスチャー";
|
||||
"LeftSideGestureDesc" = "Adjusts the selected setting by swiping vertically on the left side of the screen";
|
||||
"LeftSideGestureDesc" = "画面の左側を縦にスワイプして選択した設定を調整します。";
|
||||
"RightSideGesture" = "右側のジェスチャー";
|
||||
"RightSideGestureDesc" = "Adjusts the selected setting by swiping vertically on the right side of the screen";
|
||||
"RightSideGestureDesc" = "画面の右側を縦にスワイプして選択した設定を調整します。";
|
||||
"ActivationAreaWidth" = "ジェスチャー有効化幅";
|
||||
"ActivationAreaWidthDesc" = "この値は、画面左右のジェスチャー認識領域をピクセル単位で決定します。\n\n許可される最大値は画面幅の 3 分の 1 です。\n\nプレーヤーの最小化や拡大を試みる際の誤作動を防ぐために、この設定を調整すると便利です。";
|
||||
"HoldToSpeed" = "長押しで再生速度を変更";
|
||||
"HoldToSpeedDesc" = "Sets the playback speed triggered by a long press on the player";
|
||||
"HoldToSpeedDesc" = "プレーヤーを長押しすることで再生速度を設定します。";
|
||||
"AdjustWithFinger" = "ジェスチャーで再生速度を調整";
|
||||
"AdjustWithFingerDesc" = "プレーヤーを長押ししながら指を上下に動かすことで再生速度を調整できます。";
|
||||
"PreserveSpeed" = "Lock speed";
|
||||
"PreserveSpeedDesc" = "Locks at adjusted speed after gesture completion.";
|
||||
"PreserveSpeed" = "再生速度を維持";
|
||||
"PreserveSpeedDesc" = "ジェスチャー終了後も調整された再生速度を維持します。";
|
||||
"SeekAnywhere" = "スワイプでシーク";
|
||||
"SeekAnywhereDesc" = "左右にスワイプして再生シークを制御できるようにします。";
|
||||
"SeekMethod" = "シーク方法";
|
||||
@@ -328,10 +328,10 @@
|
||||
|
||||
"ActiveTabs" = "有効なタブ";
|
||||
"InactiveTabs" = "無効なタブ";
|
||||
"HideLibraryFooter" = "ライブラリタブは、タブバーの最初のタブを長押しすることで表示/非表示を切り替えられます。";
|
||||
"HideLibraryFooter" = "タブバーの最初のタブを長押しすることで、タブ設定にアクセスすることもできます。";
|
||||
"Warning" = "警告";
|
||||
"AtLeastOneTab" = "At least one tab must remain active";
|
||||
"TabsCountRestricted" = "有効なタブは最大 6 つまでです。";
|
||||
"AtLeastOneTab" = "少なくとも 1 つのタブが有効になっている必要があります。";
|
||||
"TabsCountRestricted" = "有効にできるタブは最大 6 つまでです。";
|
||||
|
||||
/* Interface options */
|
||||
"Interface" = "インターフェース";
|
||||
@@ -361,11 +361,11 @@
|
||||
"MiniplayerStyleDesc" = "フローティングモードへの切り替え/終了にはアプリの再起動が必要です。";
|
||||
"Floating" = "フローティング";
|
||||
|
||||
"Other" = "Other";
|
||||
"Other" = "その他";
|
||||
"NoShareChunk" = "共有識別子を削除";
|
||||
"NoShareChunkDesc" = "共有リンクから「si=identifier」パラメータを削除します。YouTube が共有メニューを継続的に改善しているため、「システムの共有シートに置換」オプションの優れた代替手段となります。";
|
||||
"AutoCheckLinks" = "Auto-check clipboard";
|
||||
"AutoCheckLinksDesc" = "Check clipboard for YouTube-related links each time the app is opened.\nFor proper functionality, go to iOS Settings → YouTube → Paste from other apps and select \"Allow\"";
|
||||
"AutoCheckLinks" = "クリップボードの自動確認";
|
||||
"AutoCheckLinksDesc" = "アプリを開くたびに、クリップボードに YouTube 関連のリンクが保存されているか確認します。\n正しく機能させるには、iOS の設定 → YouTube → 他のアプリからの貼り付けで「許可」を選択してください。";
|
||||
|
||||
"ContextMenu" = "コンテキストメニュー";
|
||||
"NativeShare" = "システムの共有シートに置換";
|
||||
@@ -388,16 +388,16 @@
|
||||
"RemoveDontRecommendMenuDesc" = "メニューから [チャンネルをおすすめに表示しない] オプションを削除します。";
|
||||
"RemoveReportMenu" = "[報告] を削除";
|
||||
"RemoveReportMenuDesc" = "メニューから [報告] オプションを削除します。";
|
||||
"RemoveRemixMenu" = "Remove \"Remix\"";
|
||||
"RemoveRemixMenuDesc" = "Removes \"Remix\" option from menu.";
|
||||
"RemoveYTMMenu" = "Remove \"YouTube Music\"";
|
||||
"RemoveYTMMenuDesc" = "Removes \"Listen with YouTube Music\" option from menu.";
|
||||
"RemoveRemixMenu" = "[リミックス] を削除";
|
||||
"RemoveRemixMenuDesc" = "メニューから [リミックス] オプションを削除します。";
|
||||
"RemoveYTMMenu" = "[YouTube Music] を非表示";
|
||||
"RemoveYTMMenuDesc" = "メニューから [YouTube Music で聴く] オプションをを非表示にします。";
|
||||
|
||||
/* SponsorBlock settings */
|
||||
"EnableSponsorBlock" = "有効化";
|
||||
"EnableSponsorBlockDesc" = "SponsorBlock 拡張機能を有効にします。";
|
||||
"SbPlayerButton" = "Display button in overlay";
|
||||
"SbPlayerButtonDesc" = "Adds SponsorBlock button in players overlay.";
|
||||
"SbPlayerButton" = "オーバーレイでボタンを表示";
|
||||
"SbPlayerButtonDesc" = "プレーヤーオーバーレイに SponsorBlock のボタンを追加します。";
|
||||
"ShowNotifications" = "通知を表示";
|
||||
"ShowNotificationsDesc" = "自動的にスキップされたセグメントの通知を表示します。手動でスキップする必要があるカテゴリの通知は常に表示されます。";
|
||||
"SegmentsInFeedPlayer" = "フィードにセグメントを表示";
|
||||
@@ -447,12 +447,12 @@
|
||||
"Sb.Ask" = "スキップするか確認";
|
||||
"Sb.Display" = "プレーヤーに表示";
|
||||
|
||||
"PublicUserID" = "Public UserID";
|
||||
"PrivateUserID" = "Private UserID";
|
||||
"TapToReveal" = "Tap to reveal";
|
||||
"Save" = "Save";
|
||||
"Error.SbPublicID" = "The public user ID must contain exactly 64 characters";
|
||||
"Error.SbPrivateID" = "The private (local) user ID must contain at least 32 characters";
|
||||
"PublicUserID" = "公開ユーザ ID";
|
||||
"PrivateUserID" = "プライベートユーザー ID";
|
||||
"TapToReveal" = "タップして表示";
|
||||
"Save" = "保存";
|
||||
"Error.SbPublicID" = "パブリックユーザー ID は 64 文字でなければなりません。";
|
||||
"Error.SbPrivateID" = "プライベート (またはローカル) ユーザー ID は少なくとも 32 文字でなければなりません";
|
||||
|
||||
"sb_sponsor" = "スポンサーセグメント";
|
||||
"sb_intro" = "イントロセグメント";
|
||||
@@ -461,14 +461,14 @@
|
||||
"sb_selfpromo" = "自己プロモーションセグメント";
|
||||
"sb_music_offtopic" = "余談セグメント";
|
||||
"sb_preview" = "プレビューセグメント";
|
||||
"sb_poi_highlight" = "Highlight";
|
||||
"sb_poi_highlight" = "ハイライト";
|
||||
"sb_filler" = "フィラーセグメント";
|
||||
|
||||
"SegmentDetected" = "%@ detected.\n%@";
|
||||
"SegmentSkipped" = "%@ has been skipped";
|
||||
"SkippedToSegment" = "Jumped to %@";
|
||||
"SkipSegment" = "Would you like to skip the segment?";
|
||||
"SkipToSegment" = "Would you like to jump to the highlight?";
|
||||
"SegmentDetected" = "%@ を検出しました。\n%@";
|
||||
"SegmentSkipped" = "%@ はスキップされました";
|
||||
"SkippedToSegment" = "%@ にジャンプしました。";
|
||||
"SkipSegment" = "セグメントをスキップしますか?";
|
||||
"SkipToSegment" = "ハイライトにジャンプしますか?";
|
||||
"Unskip" = "スキップしない";
|
||||
|
||||
/* Developer section */
|
||||
@@ -540,7 +540,7 @@
|
||||
"Disable" = "無効化";
|
||||
"Disabled" = "無効";
|
||||
"PlaybackSpeed" = "再生速度";
|
||||
"SpeedPreserved" = "Speed locked at %@";
|
||||
"SpeedPreserved" = "再生速度が%@にロックされました。";
|
||||
"ResetSpeed" = "リセット";
|
||||
|
||||
"Toast.Brightness" = "明るさ";
|
||||
@@ -599,21 +599,21 @@
|
||||
"RetryLogin" = "回避策が有効になりました。\n\nもう一度お試しください。";
|
||||
"LoginInfo" = "Google アカウントへのログインに成功した後、アプリの再起動が必要です。";
|
||||
|
||||
"OpenLink" = "Open link";
|
||||
"LinkDetected" = "A YouTube-related link was detected. Would you like to open it in YouTube?";
|
||||
"OpenLink" = "リンクを開く";
|
||||
"LinkDetected" = "YouTube 関連のリンクが検出されました。YouTube で開きますか?";
|
||||
|
||||
"SbWhitelist" = "Whitelist";
|
||||
"SbAddToWhitelist" = "Add to the whitelist";
|
||||
"Sb.Whitelisted" = "Added to the whitelist";
|
||||
"SbRemoveFromWhitelist" = "Remove from the whitelist";
|
||||
"Sb.Whitelist" = "Whitelisted channels";
|
||||
"Sb.Channels" = "Channels";
|
||||
"Sb.ChannelsHere" = "Whitelisted channels appear here";
|
||||
"SortType" = "Sort type";
|
||||
"Sb.Newest" = "Newest first";
|
||||
"Sb.Oldest" = "Oldest first";
|
||||
"Sb.Alphabetical" = "Alphabetical (A-Z)";
|
||||
"Sb.AlphabeticalRev" = "Reverse (Z-A)";
|
||||
"SbWhitelist" = "ホワイトリスト";
|
||||
"SbAddToWhitelist" = "ホワイトリストに登録";
|
||||
"Sb.Whitelisted" = "ホワイトリストに登録しました。";
|
||||
"SbRemoveFromWhitelist" = "ホワイトリストから削除";
|
||||
"Sb.Whitelist" = "ホワイトリストに登録されたチャンネル";
|
||||
"Sb.Channels" = "チャンネル";
|
||||
"Sb.ChannelsHere" = "ホワイトリストに登録されたチャンネルがここに表示されます。";
|
||||
"SortType" = "並べ替えの種類";
|
||||
"Sb.Newest" = "新しい順";
|
||||
"Sb.Oldest" = "古い順";
|
||||
"Sb.Alphabetical" = "アルファベット順 (A ~ Z)";
|
||||
"Sb.AlphabeticalRev" = "アルファベット順 (逆順)";
|
||||
|
||||
"Welcome.Download" = "メディアのダウンロード";
|
||||
"Welcome.DownloadDesc" = "動画、ショート、オーディオ、プロフィール画像など、お気に入りのコンテンツをダウンロードできます。興味深い投稿やコメントをコピーしたり、画像として保存したりできます。";
|
||||
@@ -633,16 +633,3 @@
|
||||
"Conflicts.CloseYT" = "YouTube を閉じる";
|
||||
|
||||
"DonationReminder" = "皆さんのご支援が YouTube Plus の更なる改善に繋がります。\n\n寄付を行うか、YouTube Plus 設定でこれらの通知を無効にすることもできます。ご支援ありがとうございます💜";
|
||||
|
||||
/* Old localizations (commented out for reference)
|
||||
"TabIsHidden" = "非表示のタブはアプリ起動時のページとして選択できません。";
|
||||
"TabIsStartupTab" = "アプリ起動時のページとして選択されたタブは非表示にできません。";
|
||||
"PreserveSpeed" = "再生速度を維持";
|
||||
"PreserveSpeedDesc" = "ジェスチャー終了後も調整された再生速度を維持します。";
|
||||
"sb_poi_highlight" = "ハイライトセグメント";
|
||||
"SegmentDetected" = "%@ が検出されました";
|
||||
"SegmentSkipped" = "%@ はスキップされました";
|
||||
"SkippedToSegment" = "%@ にスキップしました";
|
||||
"SkipSegment" = "スキップ";
|
||||
"SkipToSegment" = "ハイライトに";
|
||||
"SpeedPreserved" = "再生速度を保存しました";
|
||||
@@ -337,8 +337,8 @@
|
||||
"Interface" = "Interfejs";
|
||||
"OledTheme" = "Motyw OLED";
|
||||
"OledThemeDesc" = "Zamienia wszystkie ciemne kolory na czarne";
|
||||
"OledKeyboard" = "Klawiatura oled";
|
||||
"OledKeyboardDesc" = "Stosuje czarny motyw oled dla ciemnej klawiatury";
|
||||
"OledKeyboard" = "Klawiatura OLED";
|
||||
"OledKeyboardDesc" = "Stosuje czarny motyw OLED dla ciemnej klawiatury";
|
||||
"NoSearchHistory" = "Ukryj historię wyszukiwania";
|
||||
"NoSearchHistoryDesc" = "Wizualnie ukrywa historię wyszukiwania i sugestie. Uwaga: Twoja historia wyszukiwania będzie nadal dostępna w innych klientach YouTube.";
|
||||
"StickSortComments" = "Przypnij nagłówek komentarzy";
|
||||
|
||||
@@ -335,9 +335,9 @@
|
||||
|
||||
/* Interface options */
|
||||
"Interface" = "Интерфейс";
|
||||
"OledTheme" = "Oled режим";
|
||||
"OledTheme" = "OLED режим";
|
||||
"OledThemeDesc" = "Заменяет темные цвета черным";
|
||||
"OledKeyboard" = "Oled клавиатура";
|
||||
"OledKeyboard" = "OLED клавиатура";
|
||||
"OledKeyboardDesc" = "Применяет черную тему для темной клавиатуры";
|
||||
"NoSearchHistory" = "Скрыть историю поиска";
|
||||
"NoSearchHistoryDesc" = "Визуально скрывает историю поиска и подсказок. Данная опция не отменяет трекинг вашей истории поиска.";
|
||||
|
||||
@@ -335,10 +335,10 @@
|
||||
|
||||
/* Interface options */
|
||||
"Interface" = "Arayüz";
|
||||
"OledTheme" = "Oled teması";
|
||||
"OledTheme" = "OLED teması";
|
||||
"OledThemeDesc" = "Tüm koyu renkleri siyaha çevirir";
|
||||
"OledKeyboard" = "Oled klavye";
|
||||
"OledKeyboardDesc" = "Koyu klavye için oled temayı uygular";
|
||||
"OledKeyboard" = "OLED klavye";
|
||||
"OledKeyboardDesc" = "Koyu klavye için OLED temayı uygular";
|
||||
"NoSearchHistory" = "Arama geçmişini gizle";
|
||||
"NoSearchHistoryDesc" = "Arama geçmişini ve önerileri görsel olarak gizler. Not: Arama geçmişiniz diğer YouTube istemcilerinizde hala erişilebilir olacaktır.";
|
||||
"StickSortComments" = "Yorum başlığını sabitle";
|
||||
|
||||
@@ -92,17 +92,17 @@
|
||||
/* Player options */
|
||||
"Player" = "Trình phát";
|
||||
"PlaybackQualityOnWiFi" = "Chất lượng video qua Wi-Fi";
|
||||
"PlaybackQualityOnWiFiDesc" = "Tự động áp dụng chất lượng phát đã chọn khi sử dụng Wi-Fi";
|
||||
"PlaybackQualityOnWiFiDesc" = "Tự động áp dụng chất lượng phát đã chọn khi sử dụng Wi-Fi.";
|
||||
"PlaybackQualityOnCellular" = "Chất lượng video qua mạng di động";
|
||||
"PlaybackQualityOnCellularDesc" = "Tự động áp dụng chất lượng phát đã chọn khi sử dụng dữ liệu di động";
|
||||
"PlaybackQualityOnCellularDesc" = "Tự động áp dụng chất lượng phát đã chọn khi sử dụng dữ liệu di động.";
|
||||
|
||||
"PreferredCaptions" = "Lựa chọn phụ đề";
|
||||
"Original" = "Nguyên bản";
|
||||
"Custom" = "Tự chọn";
|
||||
"CustomAudioTrack" = "Bản âm thanh đã chọn";
|
||||
"CustomAudioTrackDesc" = "Ưu tiên sử dụng ngôn ngữ bản âm thanh đã chọn nếu khả dụng";
|
||||
"CustomAudioTrackDesc" = "Ưu tiên sử dụng ngôn ngữ bản âm thanh đã chọn nếu khả dụng.";
|
||||
"CustomCaptions" = "Phụ đề đã chọn";
|
||||
"CustomCaptionsDesc" = "Ưu tiên sử dụng ngôn ngữ phụ đề đã chọn nếu khả dụng";
|
||||
"CustomCaptionsDesc" = "Ưu tiên sử dụng ngôn ngữ phụ đề đã chọn nếu khả dụng.";
|
||||
"AutoGenCaps" = "Cho phép phụ đề tự động";
|
||||
"AutoGenCapsDesc" = "Nếu không tìm thấy phụ đề đã chọn, YouTube Plus sẽ chuyển sang bản dịch của phụ đề gốc hoặc phụ đề tự động.";
|
||||
|
||||
@@ -187,7 +187,7 @@
|
||||
|
||||
"Player.Actions" = "Hành động";
|
||||
"DefaultPlaybackRate" = "Tốc độ phát mặc định";
|
||||
"DefaultPlaybackRateDesc" = "Thay thế tốc độ phát mặc định";
|
||||
"DefaultPlaybackRateDesc" = "Thay thế tốc độ phát mặc định.";
|
||||
"BackgroundPlayback" = "Phát trong nền";
|
||||
"BackgroundPlaybackDesc" = "Tiếp tục phát khi thoát ứng dụng.";
|
||||
"Miniplayer" = "Dùng trình phát thu nhỏ với mọi video";
|
||||
@@ -207,15 +207,15 @@
|
||||
|
||||
"Player.Gestures" = "Cử chỉ";
|
||||
"CompactToast" = "Thu gọn biểu thị";
|
||||
"CompactToastDesc" = "Thu gọn biểu thị độ sáng và âm lượng khi sử dụng tính năng cử chỉ";
|
||||
"CompactToastDesc" = "Thu gọn biểu thị độ sáng và âm lượng khi sử dụng tính năng cử chỉ.";
|
||||
"LeftSideGesture" = "Cử chỉ bên trái";
|
||||
"LeftSideGestureDesc" = "Điều chỉnh giá trị bằng cách vuốt lên xuống ở phần bên trái màn hình";
|
||||
"LeftSideGestureDesc" = "Điều chỉnh giá trị bằng cách vuốt lên xuống ở phần bên trái màn hình.";
|
||||
"RightSideGesture" = "Cử chỉ bên phải";
|
||||
"RightSideGestureDesc" = "Điều chỉnh giá trị bằng cách vuốt lên xuống ở phần bên phải màn hình";
|
||||
"RightSideGestureDesc" = "Điều chỉnh giá trị bằng cách vuốt lên xuống ở phần bên phải màn hình.";
|
||||
"ActivationAreaWidth" = "Độ rộng khu vực thao tác";
|
||||
"ActivationAreaWidthDesc" = "Giá trị này là độ rộng khu vực thao tác của phần bên trái và bên phải màn hình tính theo đơn vị điểm ảnh.\n\nGiá trị tối đa cho phép bằng một phần ba chiều rộng màn hình.\n\nĐiều chỉnh cài đặt này nếu bạn thường xuyên gặp tình trạng thao tác nhầm khi thực hiện vuốt lên hoặc xuống để đóng mở chế độ toàn màn hình.";
|
||||
"HoldToSpeed" = "Nhấn giữ để chỉnh tốc độ thành";
|
||||
"HoldToSpeedDesc" = "Điều chỉnh tốc độ phát khi nhấn giữ vào màn hình";
|
||||
"HoldToSpeedDesc" = "Điều chỉnh tốc độ phát khi nhấn giữ vào màn hình.";
|
||||
"AdjustWithFinger" = "Chỉnh tốc độ bằng cử chỉ";
|
||||
"AdjustWithFingerDesc" = "Điều chỉnh tốc độ bằng cách nhấn giữ vào video và di chuyển ngón tay lên xuống.";
|
||||
"PreserveSpeed" = "Giữ tốc độ đã điều chỉnh";
|
||||
@@ -240,9 +240,9 @@
|
||||
"NoTwoFingerSnapToChapter" = "Tắt chạm hai lần bằng hai ngón tay";
|
||||
"NoTwoFingerSnapToChapterDesc" = "Tắt thao tác chạm hai lần bằng hai ngón tay để chuyển phân cảnh.";
|
||||
"NoFreeZoom" = "Tắt cử chỉ thu phóng";
|
||||
"NoFreeZoomDesc" = "Tắt cử chỉ thu phóng video";
|
||||
"NoFreeZoomDesc" = "Tắt cử chỉ thu phóng video.";
|
||||
"NoDoubleTap2Seek" = "Tắt chạm hai lần để tua";
|
||||
"NoDoubleTap2SeekDesc" = "Tắt thao tác chạm hai lần để tua";
|
||||
"NoDoubleTap2SeekDesc" = "Tắt thao tác chạm hai lần để tua.";
|
||||
|
||||
/* Shorts options */
|
||||
"Shorts" = "Video ngắn (Shorts)";
|
||||
@@ -311,7 +311,7 @@
|
||||
|
||||
/* Tab bar options */
|
||||
"Tabbar" = "Thanh tab";
|
||||
"Startup" = "Trang khởi động";
|
||||
"Startup" = "Tab khởi động";
|
||||
"FEwhat_to_watch" = "Trang chủ";
|
||||
"FEexplore" = "Khám phá";
|
||||
"FEshorts" = "Shorts";
|
||||
@@ -323,7 +323,7 @@
|
||||
"VLWL" = "Xem sau";
|
||||
|
||||
"TranslucentBar" = "Thanh tab trong suốt";
|
||||
"RemoveLabels" = "Ẩn tiêu đề tab";
|
||||
"RemoveLabels" = "Ẩn tên tab";
|
||||
"RemoveIndicators" = "Ẩn biểu thị hiện hoạt";
|
||||
|
||||
"ActiveTabs" = "Tab đang hiển thị";
|
||||
@@ -338,7 +338,7 @@
|
||||
"OledTheme" = "Chủ đề OLED";
|
||||
"OledThemeDesc" = "Chuyển tất cả màu tối thành màu đen tuyền.";
|
||||
"OledKeyboard" = "Bàn phím OLED";
|
||||
"OledKeyboardDesc" = "Chuyển màu bàn phím thành màu đen tuyền";
|
||||
"OledKeyboardDesc" = "Chuyển màu bàn phím thành màu đen tuyền.";
|
||||
"NoSearchHistory" = "Ẩn lịch sử tìm kiếm";
|
||||
"NoSearchHistoryDesc" = "Ẩn lịch sử tìm kiếm và đề xuất. Lưu ý: Bạn vẫn có thể truy cập lịch sử tìm kiếm của mình trong các ứng dụng hoặc thiết bị khác.";
|
||||
"StickSortComments" = "Thanh tùy chọn sắp xếp bình luận cố định";
|
||||
@@ -353,7 +353,7 @@
|
||||
"DisableRTLDesc" = "Buộc hiển thị tất cả văn bản theo định dạng từ trái sang phải (LTR), kể cả các ngôn ngữ sử dụng định dạng từ phải sang trái (RTL).";
|
||||
|
||||
"StartupAnimation" = "Hoạt ảnh khởi động";
|
||||
"StartupAnimationDesc" = "Hiển thị hoạt ảnh khởi động YouTube";
|
||||
"StartupAnimationDesc" = "Hiển thị hoạt ảnh khởi động YouTube.";
|
||||
|
||||
"InterfaceStyle" = "Kiểu giao diện";
|
||||
|
||||
@@ -365,7 +365,7 @@
|
||||
"NoShareChunk" = "Bỏ tham số theo dõi";
|
||||
"NoShareChunkDesc" = "Loại bỏ tham số \"si=identifier\" khỏi liên kết chia sẻ. Có thể sử dụng thay cho tùy chọn \"Bảng chia sẻ hệ thống\", bởi YouTube đang ngày một cải thiện bảng chia sẻ của ứng dụng.";
|
||||
"AutoCheckLinks" = "Tự động kiểm tra bộ nhớ tạm";
|
||||
"AutoCheckLinksDesc" = "Kiểm tra liên kết YouTube trong bộ nhớ tạm mỗi lần khởi động ứng dụng.\nĐể tính năng hoạt động đúng, mở ứng dụng Cài đặt → YouTube → Dán từ ứng dụng khác và chọn \"Cho phép\"";
|
||||
"AutoCheckLinksDesc" = "Kiểm tra liên kết YouTube trong bộ nhớ tạm mỗi lần khởi động ứng dụng.\nĐể tính năng hoạt động đúng, mở ứng dụng Cài đặt → YouTube → Dán từ ứng dụng khác và chọn \"Cho phép\".";
|
||||
|
||||
"ContextMenu" = "Menu ngữ cảnh";
|
||||
"NativeShare" = "Bảng chia sẻ hệ thống";
|
||||
@@ -390,8 +390,8 @@
|
||||
"RemoveReportMenuDesc" = "Ẩn tùy chọn báo vi phạm nội dung khỏi menu.";
|
||||
"RemoveRemixMenu" = "Ẩn \"Phối lại\"";
|
||||
"RemoveRemixMenuDesc" = "Ẩn tùy chọn phối lại video khỏi menu.";
|
||||
"RemoveYTMMenu" = "Ẩn \"YouTube Music\"";
|
||||
"RemoveYTMMenuDesc" = "Ẩn tùy chọn \"Nghe nhạc trên YouTube Music\" khỏi menu.";
|
||||
"RemoveYTMMenu" = "Ẩn \"Nghe nhạc trên YouTube Music\"";
|
||||
"RemoveYTMMenuDesc" = "Ẩn tùy chọn mở nội dung trong YouTube Music khỏi menu.";
|
||||
|
||||
/* SponsorBlock settings */
|
||||
"EnableSponsorBlock" = "Bật";
|
||||
@@ -401,7 +401,7 @@
|
||||
"ShowNotifications" = "Hiện thông báo";
|
||||
"ShowNotificationsDesc" = "Hiển thị thông báo khi phân đoạn được bỏ qua tự động. Không ảnh hưởng đến thông báo khi bỏ qua thủ công.";
|
||||
"SegmentsInFeedPlayer" = "Hiện phân đoạn trong trang xem";
|
||||
"SegmentsInFeedPlayerDesc" = "Hiển thị các phân đoạn trên thanh tiến trình của video được phát khi chưa nhấn xem.";
|
||||
"SegmentsInFeedPlayerDesc" = "Hiển thị các phân đoạn trên thanh tiến trình của video được phát ngay trong trang xem.";
|
||||
"SegmentsInMiniPlayer" = "Hiện phân đoạn trong trình phát thu nhỏ";
|
||||
"SegmentsInMiniPlayerDesc" = "Hiển thị các phân đoạn trên thanh tiến trình của trình phát thu nhỏ.";
|
||||
"SegmentSkipAudio" = "Thông báo âm thanh";
|
||||
@@ -448,11 +448,11 @@
|
||||
"Sb.Display" = "Chỉ hiển thị";
|
||||
|
||||
"PublicUserID" = "ID người dùng công khai";
|
||||
"PrivateUserID" = "ID người dùng cá nhân";
|
||||
"PrivateUserID" = "ID người dùng riêng tư";
|
||||
"TapToReveal" = "Nhấn để hiển thị";
|
||||
"Save" = "Lưu";
|
||||
"Error.SbPublicID" = "ID người dùng công khai phải chứa đúng 64 ký tự";
|
||||
"Error.SbPrivateID" = "ID người dùng cá nhân (hay cục bộ) phải chứa ít nhất 32 ký tự";
|
||||
"Error.SbPrivateID" = "ID người dùng riêng tư (hay cục bộ) phải chứa ít nhất 32 ký tự";
|
||||
|
||||
"sb_sponsor" = "phân đoạn tài trợ";
|
||||
"sb_intro" = "phân đoạn giới thiệu";
|
||||
@@ -478,7 +478,7 @@
|
||||
"DonateDesc" = "Mọi hỗ trợ của bạn đều có ý nghĩa rất lớn";
|
||||
"SupportDevelopmentDesc" = "Nếu bạn thích YTPlus và muốn đóng góp đôi chút vào quá trình phát triển, bạn có thể thực hiện bằng một trong các cách dưới đây.\nXin cảm ơn ❤";
|
||||
"VisitGithub" = "Kho lưu trữ Github";
|
||||
"VisitGithubDesc" = "Gắn sao repo, yêu cầu tính năng hoặc báo lỗi";
|
||||
"VisitGithubDesc" = "Thêm sao repo, gửi yêu cầu tính năng hoặc báo lỗi";
|
||||
"VisitTelegram" = "Kênh Telegram của tôi";
|
||||
"VisitTelegramDesc" = "Nhận thông tin về các bản cập nhật mới nhất";
|
||||
|
||||
@@ -488,7 +488,7 @@
|
||||
"Contributors" = "Người đóng góp";
|
||||
"DevContribution" = "Đóng góp phát triển";
|
||||
"SpecialThanks" = "Đặc biệt cảm ơn";
|
||||
"SpecialThanks.Test" = "Đóng góp quý giá cho việc kiểm tra tinh chỉnh";
|
||||
"SpecialThanks.Test" = "Đóng góp giá trị trong việc tra kiểm tweak";
|
||||
|
||||
"Localizations" = "Tác giả các bản dịch";
|
||||
"ChineseSimplified" = "Tiếng Trung (giản thể)";
|
||||
@@ -519,8 +519,8 @@
|
||||
"ClearCacheAtStartDesc" = "Tự động xóa bộ nhớ đệm khi khởi động ứng dụng.";
|
||||
"ClearCache" = "Xóa bộ nhớ đệm";
|
||||
|
||||
"NoDonationReminder" = "Tắt nhắc nhở quyên góp";
|
||||
"NoDonationReminderDesc" = "Tắt lời nhắc quyên góp, thông báo này hiếm khi được hiển thị.";
|
||||
"NoDonationReminder" = "Tắt nhắc nhở ủng hộ";
|
||||
"NoDonationReminderDesc" = "Tắt lời nhắc ủng hộ, thông báo này hiếm khi được hiển thị.";
|
||||
|
||||
"ShortsOnlyWarning" = "Bạn có chắc chắn muốn bật chế độ video ngắn?\n\nTrong chế độ này, bạn chỉ có thể xem video ngắn và không thể làm gì khác.\n\nBạn có thể tắt chế độ này bằng cách nhấn giữ hai ngón tay lên màn hình.";
|
||||
"ShortsModeTurnedOff" = "Đã tắt chế độ video ngắn";
|
||||
@@ -548,8 +548,8 @@
|
||||
"Toast.Volume" = "Âm lượng";
|
||||
|
||||
"SelectAction" = "Chọn tác vụ";
|
||||
"DownloadVideo" = "Tải xuống video";
|
||||
"DownloadAudio" = "Tải xuống âm thanh";
|
||||
"DownloadVideo" = "Tải video xuống";
|
||||
"DownloadAudio" = "Tải âm thanh xuống";
|
||||
"SaveImage" = "Lưu hình ảnh";
|
||||
"CopyInformation" = "Sao chép thông tin";
|
||||
"CopyChannelName" = "Sao chép tên kênh";
|
||||
@@ -596,7 +596,7 @@
|
||||
"ParsingCaptions" = "Đang phân giải phụ đề";
|
||||
"ParsingTranscript" = "Đang phân giải bản chép lời";
|
||||
"Converting" = "Đang chuyển đổi";
|
||||
"RetryLogin" = "Đã sử dụng giải pháp thay thế.\n\nVui lòng thử lại.";
|
||||
"RetryLogin" = "Đã áp dụng phương thức thay thế.\n\nVui lòng thử lại.";
|
||||
"LoginInfo" = "Yêu cầu khởi động lại ứng dụng sau khi đăng nhập thành công vào tài khoản Google";
|
||||
|
||||
"OpenLink" = "Mở liên kết";
|
||||
@@ -610,8 +610,8 @@
|
||||
"Sb.Channels" = "Kênh";
|
||||
"Sb.ChannelsHere" = "Kênh đã thêm vào danh sách trắng sẽ hiển thị tại đây";
|
||||
"SortType" = "Sắp xếp theo";
|
||||
"Sb.Newest" = "Mới nhất lên đầu";
|
||||
"Sb.Oldest" = "Cũ nhất lên đầu";
|
||||
"Sb.Newest" = "Mới nhất";
|
||||
"Sb.Oldest" = "Cũ nhất";
|
||||
"Sb.Alphabetical" = "Bảng chữ cái (A-Z)";
|
||||
"Sb.AlphabeticalRev" = "Đảo ngược (Z-A)";
|
||||
|
||||
@@ -632,17 +632,4 @@
|
||||
"Conflicts.AcceptRisks" = "Tôi chấp nhận mọi rủi ro";
|
||||
"Conflicts.CloseYT" = "Thoát YouTube";
|
||||
|
||||
"DonationReminder" = "Sự hỗ trợ của bạn sẽ giúp YouTube Plus ngày một tốt hơn.\n\nBạn có thể chọn quyên góp ngay hoặc tắt thông báo này trong cài đặt YouTube Plus. Cảm ơn bạn💜";
|
||||
|
||||
/* Old localizations (commented out for reference)
|
||||
"TabIsHidden" = "Không thể chọn tab đã ẩn làm trang khởi động";
|
||||
"TabIsStartupTab" = "Không thể ẩn tab đã chọn làm trang khởi động";
|
||||
"PreserveSpeed" = "Giữ tốc độ đã điều chỉnh";
|
||||
"PreserveSpeedDesc" = "Duy trì tốc độ đã điều chỉnh sau khi thực hiện cử chỉ.";
|
||||
"sb_poi_highlight" = "phân đoạn nổi bật";
|
||||
"SegmentDetected" = "Đã phát hiện %@";
|
||||
"SegmentSkipped" = "Đã bỏ qua %@";
|
||||
"SkippedToSegment" = "Đã chuyển đến %@";
|
||||
"SkipSegment" = "Bỏ qua";
|
||||
"SkipToSegment" = "Đến phần nổi bật";
|
||||
"SpeedPreserved" = "Đã giữ tốc độ";
|
||||
"DonationReminder" = "Sự hỗ trợ của bạn sẽ giúp YouTube Plus ngày một tốt hơn.\n\nBạn có thể chọn ủng hộ ngay hoặc tắt thông báo này trong phần cài đặt YouTube Plus. Cảm ơn bạn 💜";
|
||||
|
||||
@@ -372,8 +372,8 @@
|
||||
"NativeShareDesc" = "使用系统原生分享菜单来分享媒体。";
|
||||
"RemoveCommentGuidelines" = "删除指南";
|
||||
"RemoveCommentGuidelinesDesc" = "从评论板块删除固定指南。";
|
||||
"RemovePlayNext" = "删除“播放队列中的下一个”";
|
||||
"RemovePlayNextDesc" = "从菜单中删除“播放队列中的下一个”选项。";
|
||||
"RemovePlayNext" = "删除“加入队列,接下来就播放”";
|
||||
"RemovePlayNextDesc" = "从菜单中删除“加入队列,接下来就播放”选项。";
|
||||
"RemoveDownloadMenu" = "删除“下载”";
|
||||
"RemoveDownloadMenuDesc" = "从菜单中删除“下载”选项。";
|
||||
"RemoveWatchLaterMenu" = "删除“保存到稍后观看”";
|
||||
@@ -386,8 +386,8 @@
|
||||
"RemoveNotInterestedMenuDesc" = "从菜单中删除“不感兴趣”选项。";
|
||||
"RemoveDontRecommendMenu" = "删除“不推荐此频道”";
|
||||
"RemoveDontRecommendMenuDesc" = "从菜单中删除“不推荐此频道”选项。";
|
||||
"RemoveFeedbackMenu" = "删除“反馈”";
|
||||
"RemoveFeedbackMenuDesc" = "从菜单中删除“反馈”选项。";
|
||||
"RemoveFeedbackMenu" = "删除“发送反馈”";
|
||||
"RemoveFeedbackMenuDesc" = "从菜单中删除“发送反馈”选项。";
|
||||
"RemoveReportMenu" = "删除“举报”";
|
||||
"RemoveReportMenuDesc" = "从菜单中删除“举报”选项。";
|
||||
"RemoveRemixMenu" = "删除“混剪”";
|
||||
|
||||
+68
-66
@@ -21,7 +21,7 @@
|
||||
"PostDownloadDesc" = "影片成功下載完成後,執行選定的動作";
|
||||
"SaveToPhotos" = "儲存至照片App";
|
||||
"Share" = "分享";
|
||||
"Copy" = "Copy";
|
||||
"Copy" = "複製";
|
||||
"Ask" = "詢問";
|
||||
"DownloadCompleted" = "下載完成";
|
||||
|
||||
@@ -91,18 +91,18 @@
|
||||
|
||||
/* Player options */
|
||||
"Player" = "播放器";
|
||||
"PlaybackQualityOnWiFi" = "使用Wi-Fi時的影片畫質";
|
||||
"PlaybackQualityOnWiFiDesc" = "Automatically applies the selected quality when streaming over Wi-Fi";
|
||||
"PlaybackQualityOnWiFi" = "使用 Wi-Fi 時的影片畫質";
|
||||
"PlaybackQualityOnWiFiDesc" = "透過 Wi-Fi 連線時自動套用所選畫質";
|
||||
"PlaybackQualityOnCellular" = "使用行動網路時的影片畫質";
|
||||
"PlaybackQualityOnCellularDesc" = "Automatically applies the selected quality when streaming over mobile data";
|
||||
"PlaybackQualityOnCellularDesc" = "透過行動網路連線時自動套用所選畫質";
|
||||
|
||||
"PreferredCaptions" = "偏好字幕";
|
||||
"Original" = "原始";
|
||||
"Custom" = "手動選擇";
|
||||
"CustomAudioTrack" = "選擇音軌";
|
||||
"CustomAudioTrackDesc" = "Specifies the preferred audio track language to use for playback, if available";
|
||||
"CustomAudioTrackDesc" = "指定播放時優先使用的音軌語言(如果可用)";
|
||||
"CustomCaptions" = "選擇字幕";
|
||||
"CustomCaptionsDesc" = "Specifies the preferred captions language to display, if available";
|
||||
"CustomCaptionsDesc" = "指定播放時優先顯示的字幕語言(如果可用)";
|
||||
"AutoGenCaps" = "自動產生字幕";
|
||||
"AutoGenCapsDesc" = "若找不到選定的字幕,YouTube Plus會嘗試選擇原始字幕的翻譯或自動產生字幕的翻譯版本";
|
||||
|
||||
@@ -187,7 +187,7 @@
|
||||
|
||||
"Player.Actions" = "操作";
|
||||
"DefaultPlaybackRate" = "預設播放速度";
|
||||
"DefaultPlaybackRateDesc" = "Overrides the default playback speed";
|
||||
"DefaultPlaybackRateDesc" = "修改預設播放速度";
|
||||
"BackgroundPlayback" = "背景播放";
|
||||
"BackgroundPlaybackDesc" = "啟用背景播放";
|
||||
"Miniplayer" = "啟用迷你播放器";
|
||||
@@ -206,20 +206,20 @@
|
||||
"ExitFullscreenDesc" = "影片播放結束時退出全螢幕模式";
|
||||
|
||||
"Player.Gestures" = "手勢";
|
||||
"CompactToast" = "Compact toast";
|
||||
"CompactToastDesc" = "Displays a compact-style toast for player gestures";
|
||||
"CompactToast" = "簡潔提示";
|
||||
"CompactToastDesc" = "為播放器操作顯示簡潔風格的提示";
|
||||
"LeftSideGesture" = "左邊手勢";
|
||||
"LeftSideGestureDesc" = "Adjusts the selected setting by swiping vertically on the left side of the screen";
|
||||
"LeftSideGestureDesc" = "透過在螢幕左邊垂直滑動來調整選擇的設定";
|
||||
"RightSideGesture" = "右邊手勢";
|
||||
"RightSideGestureDesc" = "Adjusts the selected setting by swiping vertically on the right side of the screen";
|
||||
"RightSideGestureDesc" = "透過在螢幕右邊垂直滑動來調整選擇的設定";
|
||||
"ActivationAreaWidth" = "手勢啟動寬度";
|
||||
"ActivationAreaWidthDesc" = "此值決定螢幕左右兩側的手勢識別區域(單位:像素)\n\n最大值允許為螢幕寬度的三分之一\n\n調整此設定有助於防止在嘗試最小化或展開播放器時意外啟動";
|
||||
"HoldToSpeed" = "按住加速";
|
||||
"HoldToSpeedDesc" = "Sets the playback speed triggered by a long press on the player";
|
||||
"HoldToSpeedDesc" = "設定長按播放器時觸發的播放速度";
|
||||
"AdjustWithFinger" = "調整速度";
|
||||
"AdjustWithFingerDesc" = "透過在播放器上長按並上下滑動手指來調整播放速度";
|
||||
"PreserveSpeed" = "Lock speed";
|
||||
"PreserveSpeedDesc" = "Locks at adjusted speed after gesture completion.";
|
||||
"PreserveSpeed" = "鎖定速度";
|
||||
"PreserveSpeedDesc" = "在手勢完成後鎖定調整後的速度";
|
||||
"SeekAnywhere" = "滑動快轉/倒轉";
|
||||
"SeekAnywhereDesc" = "允許透過左右滑動來控制播放進度";
|
||||
"SeekMethod" = "快轉/倒轉方式";
|
||||
@@ -330,7 +330,7 @@
|
||||
"InactiveTabs" = "隱藏標籤頁";
|
||||
"HideLibraryFooter" = "長按首頁標籤可以顯示或隱藏\"個人中心\"";
|
||||
"Warning" = "警告";
|
||||
"AtLeastOneTab" = "At least one tab must remain active";
|
||||
"AtLeastOneTab" = "必須至少保持一個標籤頁為啟用狀態";
|
||||
"TabsCountRestricted" = "最多只能設定顯示六個標籤頁";
|
||||
|
||||
/* Interface options */
|
||||
@@ -364,40 +364,42 @@
|
||||
"Other" = "Other";
|
||||
"NoShareChunk" = "移除分享識別碼";
|
||||
"NoShareChunkDesc" = "從分享連結中移除\"si=identifier\"參數。這是一個替代「原生分享選單」的好選擇,因為YouTube不斷改善其分享選單。";
|
||||
"AutoCheckLinks" = "Auto-check clipboard";
|
||||
"AutoCheckLinksDesc" = "Check clipboard for YouTube-related links each time the app is opened.\nFor proper functionality, go to iOS Settings → YouTube → Paste from other apps and select \"Allow\"";
|
||||
"AutoCheckLinks" = "自動檢查剪貼簿";
|
||||
"AutoCheckLinksDesc" = "每次開啟應用程式時,檢查剪貼簿中的 YouTube 相關連結。\n為確保正常運作,請前往 iOS 設定 → YouTube → 從其他App貼上,並選擇「允許」";
|
||||
|
||||
"ContextMenu" = "上下文選單";
|
||||
"NativeShare" = "原生分享選單";
|
||||
"NativeShareDesc" = "使用系統分享選單分享媒體";
|
||||
"RemoveCommentGuidelines" = "移除社群規範";
|
||||
"RemoveCommentGuidelinesDesc" = "移除留言區置頂的社群規範";
|
||||
"RemovePlayNext" = "移除「播放下一個」";
|
||||
"RemovePlayNextDesc" = "從選單移除「播放下一個」";
|
||||
"RemoveDownloadMenu" = "移除「下載影片」";
|
||||
"RemoveDownloadMenuDesc" = "從選單移除「下載影片」選項";
|
||||
"RemoveWatchLaterMenu" = "移除「儲存至稍後觀看清單」";
|
||||
"RemoveWatchLaterMenuDesc" = "從選單移除「儲存至稍後觀看清單」選項";
|
||||
"RemoveSaveToPlaylistMenu" = "移除「儲存至播放清單」";
|
||||
"RemoveSaveToPlaylistMenuDesc" = "從選單移除「儲存至播放清單」選項";
|
||||
"RemoveShareMenu" = "移除「分享」";
|
||||
"RemoveShareMenuDesc" = "從選單移除「分享」選項";
|
||||
"RemoveNotInterestedMenu" = "移除「不感興趣」";
|
||||
"RemoveNotInterestedMenuDesc" = "從選單移除「不感興趣」選項";
|
||||
"RemoveDontRecommendMenu" = "移除「不要推薦這個頻道」";
|
||||
"RemoveDontRecommendMenuDesc" = "從選單移除「不要推薦這個頻道」選項";
|
||||
"RemoveReportMenu" = "移除「檢舉」";
|
||||
"RemoveReportMenuDesc" = "從選單移除「檢舉」選項";
|
||||
"RemoveRemixMenu" = "Remove \"Remix\"";
|
||||
"RemoveRemixMenuDesc" = "Removes \"Remix\" option from menu.";
|
||||
"RemoveYTMMenu" = "Remove \"YouTube Music\"";
|
||||
"RemoveYTMMenuDesc" = "Removes \"Listen with YouTube Music\" option from menu.";
|
||||
"RemovePlayNext" = "移除\"加入待播清單接著播放\"";
|
||||
"RemovePlayNextDesc" = "從選單移除\"加入待播清單接著播放\"";
|
||||
"RemoveDownloadMenu" = "移除\"下載影片\"";
|
||||
"RemoveDownloadMenuDesc" = "從選單移除\"下載影片\"選項";
|
||||
"RemoveWatchLaterMenu" = "移除\"儲存至「稍後觀看」清單\"";
|
||||
"RemoveWatchLaterMenuDesc" = "從選單移除\"儲存至「稍後觀看」清單\"選項";
|
||||
"RemoveSaveToPlaylistMenu" = "移除\"儲存至播放清單\"";
|
||||
"RemoveSaveToPlaylistMenuDesc" = "從選單移除\"儲存至播放清單\"選項";
|
||||
"RemoveShareMenu" = "移除\"分享\"";
|
||||
"RemoveShareMenuDesc" = "從選單移除\"分享\"選項";
|
||||
"RemoveNotInterestedMenu" = "移除\"不感興趣\"";
|
||||
"RemoveNotInterestedMenuDesc" = "從選單移除\"不感興趣\"選項";
|
||||
"RemoveDontRecommendMenu" = "移除\"不要推薦這個頻道\"";
|
||||
"RemoveDontRecommendMenuDesc" = "從選單移除\"不要推薦這個頻道\"選項";
|
||||
"RemoveFeedbackMenu" = "移除\"提供意見\"";
|
||||
"RemoveFeedbackMenuDesc" = "從選單移除\"提供意見\"選項";
|
||||
"RemoveReportMenu" = "移除\"檢舉\"";
|
||||
"RemoveReportMenuDesc" = "從選單移除\"檢舉\"選項";
|
||||
"RemoveRemixMenu" = "移除\"Remix\"";
|
||||
"RemoveRemixMenuDesc" = "從選單移除\"Remix\"選項";
|
||||
"RemoveYTMMenu" = "移除\"YouTube Music\"";
|
||||
"RemoveYTMMenuDesc" = "從選單移除\"用 YouTube Music 聽音樂\"選項";
|
||||
|
||||
/* SponsorBlock settings */
|
||||
"EnableSponsorBlock" = "啟用";
|
||||
"EnableSponsorBlockDesc" = "SponsorBlock擴充功能";
|
||||
"SbPlayerButton" = "Display button in overlay";
|
||||
"SbPlayerButtonDesc" = "Adds SponsorBlock button in players overlay.";
|
||||
"SbPlayerButton" = "顯示按鈕";
|
||||
"SbPlayerButtonDesc" = "在播放器中新增 SponsorBlock 按鈕";
|
||||
"ShowNotifications" = "顯示通知";
|
||||
"ShowNotificationsDesc" = "顯示自動跳過片段的通知。需要手動跳過的類別通知會始終顯示。";
|
||||
"SegmentsInFeedPlayer" = "播放器中顯示片段";
|
||||
@@ -447,12 +449,12 @@
|
||||
"Sb.Ask" = "詢問";
|
||||
"Sb.Display" = "在播放器中顯示";
|
||||
|
||||
"PublicUserID" = "Public UserID";
|
||||
"PrivateUserID" = "Private UserID";
|
||||
"TapToReveal" = "Tap to reveal";
|
||||
"Save" = "Save";
|
||||
"Error.SbPublicID" = "The public user ID must contain exactly 64 characters";
|
||||
"Error.SbPrivateID" = "The private (local) user ID must contain at least 32 characters";
|
||||
"PublicUserID" = "公開使用者 ID";
|
||||
"PrivateUserID" = "私人使用者 ID";
|
||||
"TapToReveal" = "點擊顯示";
|
||||
"Save" = "儲存";
|
||||
"Error.SbPublicID" = "公開使用者 ID 必須正好包含 64 個字元";
|
||||
"Error.SbPrivateID" = "私人(本機)使用者 ID 必須至少包含 32 個字元";
|
||||
|
||||
"sb_sponsor" = "贊助片段";
|
||||
"sb_intro" = "開場片段";
|
||||
@@ -461,14 +463,14 @@
|
||||
"sb_selfpromo" = "自我推廣片段";
|
||||
"sb_music_offtopic" = "非音樂片段";
|
||||
"sb_preview" = "預覽片段";
|
||||
"sb_poi_highlight" = "Highlight";
|
||||
"sb_poi_highlight" = "精彩片段";
|
||||
"sb_filler" = "填充片段";
|
||||
|
||||
"SegmentDetected" = "%@ detected.\n%@";
|
||||
"SegmentSkipped" = "%@ has been skipped";
|
||||
"SkippedToSegment" = "Jumped to %@";
|
||||
"SkipSegment" = "Would you like to skip the segment?";
|
||||
"SkipToSegment" = "Would you like to jump to the highlight?";
|
||||
"SegmentDetected" = "%@ 偵測到\n%@";
|
||||
"SegmentSkipped" = "%@ 已被跳過";
|
||||
"SkippedToSegment" = "已跳到 %@";
|
||||
"SkipSegment" = "您想跳過這個片段嗎?";
|
||||
"SkipToSegment" = "您想跳轉到精彩片段嗎?";
|
||||
"Unskip" = "取消跳過";
|
||||
|
||||
/* Developer section */
|
||||
@@ -540,7 +542,7 @@
|
||||
"Disable" = "停用";
|
||||
"Disabled" = "已停用";
|
||||
"PlaybackSpeed" = "播放速度";
|
||||
"SpeedPreserved" = "Speed locked at %@";
|
||||
"SpeedPreserved" = "速度鎖定在 %@";
|
||||
"ResetSpeed" = "重置播放速度";
|
||||
|
||||
"Toast.Brightness" = "亮度";
|
||||
@@ -599,21 +601,21 @@
|
||||
"RetryLogin" = "已啟用登入權限修復\n\n請再次登入";
|
||||
"LoginInfo" = "成功登錄Google帳戶後需要重新啟動應用程式";
|
||||
|
||||
"OpenLink" = "Open link";
|
||||
"LinkDetected" = "A YouTube-related link was detected. Would you like to open it in YouTube?";
|
||||
"OpenLink" = "開啟連結";
|
||||
"LinkDetected" = "偵測到 YouTube 相關連結。是否要在 YouTube 中開啟?";
|
||||
|
||||
"SbWhitelist" = "Whitelist";
|
||||
"SbAddToWhitelist" = "Add to the whitelist";
|
||||
"Sb.Whitelisted" = "Added to the whitelist";
|
||||
"SbRemoveFromWhitelist" = "Remove from the whitelist";
|
||||
"Sb.Whitelist" = "Whitelisted channels";
|
||||
"Sb.Channels" = "Channels";
|
||||
"Sb.ChannelsHere" = "Whitelisted channels appear here";
|
||||
"SortType" = "Sort type";
|
||||
"Sb.Newest" = "Newest first";
|
||||
"Sb.Oldest" = "Oldest first";
|
||||
"Sb.Alphabetical" = "Alphabetical (A-Z)";
|
||||
"Sb.AlphabeticalRev" = "Reverse (Z-A)";
|
||||
"SbWhitelist" = "白名單";
|
||||
"SbAddToWhitelist" = "新增至白名單";
|
||||
"Sb.Whitelisted" = "已新增至白名單";
|
||||
"SbRemoveFromWhitelist" = "從白名單中移除";
|
||||
"Sb.Whitelist" = "白名單頻道";
|
||||
"Sb.Channels" = "頻道";
|
||||
"Sb.ChannelsHere" = "白名單頻道將在此顯示";
|
||||
"SortType" = "排序方式";
|
||||
"Sb.Newest" = "最新優先";
|
||||
"Sb.Oldest" = "最舊優先";
|
||||
"Sb.Alphabetical" = "依字母順序 (A-Z)";
|
||||
"Sb.AlphabeticalRev" = "依字母倒序 (Z-A)";
|
||||
|
||||
"Welcome.Download" = "下載媒體";
|
||||
"Welcome.DownloadDesc" = "下載您喜愛的內容,不論是影片、Shorts、音訊或個人檔案照片。複製有趣的貼文和留言,或將它們儲存為圖片。";
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user