Compare commits

...
54 Commits
Author SHA1 Message Date
Dan 8c33f16412 Merge pull request #705 from Akczht/main
YouGroupSettings is required for all those tweaks but wasn't getting cloned
2026-03-17 14:29:55 +03:00
Akshat 37660b827a YouGroupSettings is required for all those tweaks but wasn't getting cloned 2026-03-16 18:42:02 +05:30
Dan eedc78fc25 reusable workflow, ytab, extension 2026-03-15 10:59:51 +03:00
Dan 752ccb32af Merge pull request #701 from RamenFighter03/main
Updated build actions
2026-03-15 08:35:23 +03:00
RamenFighter03 1a56b6b79c chore: update GitHub Actions to latest versions 2026-03-12 22:33:13 -04:00
RamenFighter03 736ff260ab chore: update GitHub Actions to latest versions 2026-03-12 22:33:12 -04:00
RamenFighter03 e1a3109198 chore: update GitHub Actions to latest versions 2026-03-12 22:33:11 -04:00
Dan 2e03ab7f12 Merge pull request #656 from Akczht/main
Fix OLED Capitalization
2026-01-10 01:48:56 +03:00
Akshat 9ff0fee0f9 Fix OLED Capitalization 2026-01-05 00:44:53 +05:30
Dan c108b65a4a Merge pull request #606 from Tonwalter888/ytuhd
Change YTUHD repo
2025-11-22 04:27:47 +03:00
Tonwalter888 2258342567 Revert 2025-11-15 13:03:42 +07:00
Tonwalter888 dcf89e1c73 Revert 2025-11-15 13:03:15 +07:00
Tonwalter888 8c66b4b226 Fix error building for YTUHD 2025-11-15 12:57:34 +07:00
Tonwalter888 b7af74d69a Fix building error for YTUHD 2025-11-15 12:55:47 +07:00
Tonwalter888 bb04cee149 Forgot to change 2025-11-13 11:46:47 +07:00
Tonwalter888 c59e0fa972 Change YTUHD repo 2025-11-13 11:39:07 +07:00
Dan bbe6f241ea 5.2b4 2025-11-05 06:30:40 +03:00
Dan 5ffbf4c7d8 Merge pull request #577 from basketshoe/patch-1
Update FAQ_IT.md
2025-10-24 00:58:34 +03:00
basketshoe 35374f568d Update FAQ_IT.md 2025-10-19 13:37:34 +00:00
Dan ceb5d322ee Merge pull request #531 from riolove1/main
feat(Translations): Update `Japanese`
2025-10-08 19:12:18 +03:00
Dan b64f26cdf9 Merge pull request #554 from davidrittri/main
Update README.md
2025-10-01 05:03:22 +03:00
davidrittri 76db5ee967 Update README.md 2025-09-30 10:10:20 +02:00
りお 20c0f2a823 Add files via upload 2025-09-04 12:18:26 +09:00
Dan 47c5c4d500 Merge pull request #497 from d0nh3art/main
Update Localizable.strings
2025-08-11 16:39:43 +03:00
d0nh3art bcb6c7dba8 Update Localizable.strings
Just one outdated line to translate
2025-08-11 04:21:31 +02:00
Dan 5fff111ec1 5.2b3 2025-08-11 04:29:09 +03:00
Dan be89c488ac Merge pull request #494 from marcinmajsc/add-polish-faq
Add Polish FAQ
2025-08-10 01:24:18 +03:00
Marcin Maj 3878539f00 Add Polish FAQ 2025-08-08 02:59:03 +02:00
Dan c541484ce2 Update README.md 2025-08-07 17:17:22 +03:00
Dan 5049198ba7 Merge pull request #491 from basketshoe/main
Add IT FAQ
2025-08-04 20:16:48 +03:00
basketshoe 4f04f393a7 Add IT FAQ 2025-08-04 13:19:37 +02:00
Dan fcc87f1270 Merge pull request #479 from hungyn04/vi_vn
Update Vietnamese translations
2025-07-29 19:06:32 +03:00
HungNguyen 7b5afd5a84 Update Vietnamese translations 2025-07-29 22:56:08 +07:00
Dan 6a3cca85f7 Merge pull request #473 from d0nh3art/d0nh3art-patch-1
Spanish localization
2025-07-28 19:39:29 +03:00
Dan 93f6645b5a Merge pull request #476 from basketshoe/main
Update IT localization
2025-07-28 19:37:58 +03:00
Dan 50129ee7d8 revert ytuhd to 0f59b38, check inputs for theos 2025-07-28 19:35:57 +03:00
basketshoe e887df0fdd Update IT localization 2025-07-28 11:57:58 +00:00
d0nh3art b144fabb0f Update Localizable.strings
Added missing spanis localization
2025-07-28 05:28:07 +02:00
d0nh3art 9a04cbfdf7 Update Localizable.strings
Addes missing Spanish localization
2025-07-28 05:25:52 +02:00
Dan 88860c2d59 Merge pull request #471 from xiangfeidexiaohuo/main
update cn
2025-07-27 15:21:32 +03:00
Dan e9309603ef Merge pull request #470 from mumuisdog/main
zh-Hant
2025-07-27 15:21:13 +03:00
刀刀 4fada5292d update cn
Signed-off-by: 刀刀 <jsjson@163.com>
2025-07-27 01:13:05 +08:00
MūmüìśDõg 6db78f0335 Update Localizable.strings 2025-07-26 22:32:29 +08:00
MūmüìśDõg 71d91ed69d Merge branch 'dayanch96:main' into main 2025-07-26 17:23:39 +08:00
MūmüìśDõg 36d229343d Update Localizable.strings 2025-07-26 17:08:45 +08:00
Dan 8f8e141831 Merge pull request #468 from mumuisdog/main
zh-Hant
2025-07-26 11:37:48 +03:00
MūmüìśDõg 3cb579b705 Update Localizable.strings 2025-07-26 08:56:38 +08:00
MūmüìśDõg 729b6d8885 Merge branch 'main' of https://github.com/mumuisdog/YTLite 2025-07-26 08:20:33 +08:00
MūmüìśDõg 91b9a78876 Update Localizable.strings 2025-07-26 08:20:31 +08:00
Dan 8e38fa2f45 generates cyan, trollfools files 2025-07-25 22:03:00 +03:00
Dan 72e4f51770 FAQ 2025-07-25 17:19:18 +03:00
MūmüìśDõg b8cd1e5111 Update Localizable.strings 2025-07-25 17:41:04 +08:00
Dan 0d03ee6888 oops 2025-07-25 00:55:23 +03:00
Dan 31242ef146 Update README.md 2025-07-25 00:54:52 +03:00
54 changed files with 934 additions and 730 deletions
+223
View File
@@ -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
+162
View File
@@ -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
View File
@@ -3,7 +3,6 @@ name: Create YouTube Plus app
on: on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
enable_youpip: enable_youpip:
description: "Integrate YouPiP" description: "Integrate YouPiP"
type: boolean type: boolean
@@ -28,6 +27,12 @@ on:
required: true required: true
default: false default: false
enable_ytabc:
description: "Integrate YTABConfig"
type: boolean
required: true
default: false
enable_demc: enable_demc:
description: "Integrate DontEatMyContent" description: "Integrate DontEatMyContent"
type: boolean type: boolean
@@ -42,7 +47,7 @@ on:
tweak_version: tweak_version:
description: "The version of the tweak to use. Enter the version manually from dayanch96/YTLite/releases or leave default" 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 required: true
type: string type: string
@@ -69,245 +74,63 @@ concurrency:
cancel-in-progress: true cancel-in-progress: true
jobs: jobs:
build: build-tweaks:
name: 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 runs-on: macos-latest
needs: build-tweaks
permissions: permissions:
contents: write contents: write
steps: steps:
- name: Checkout Main - name: Download built debs
uses: actions/checkout@v4.1.1 uses: actions/download-artifact@v7
with: with:
path: main name: built-debs
submodules: recursive path: ${{ github.workspace }}
- name: Hide sensitive inputs - name: Hide sensitive inputs
uses: levibostian/action-hide-sensitive-inputs@v1 uses: levibostian/action-hide-sensitive-inputs@v1
with: 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 - name: Download and validate IPA
run: | run: |
wget "${{ inputs.ipa_url }}" --no-verbose -O ${{ github.workspace }}/youtube.ipa wget "${{ github.event.inputs.ipa_url }}" --no-verbose -O youtube.ipa
file_type=$(file --mime-type -b youtube.ipa)
file_type=$(file --mime-type -b ${{ github.workspace }}/youtube.ipa)
if [[ "$file_type" != "application/x-ios-app" && "$file_type" != "application/zip" ]]; then 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." echo "::error::Validation failed: The downloaded file is not a valid IPA. Detected type: $file_type."
exit 1 exit 1
fi 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 - name: Install cyan
run: pipx install --force https://github.com/asdfzxcvbn/pyzule-rw/archive/main.zip 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 - name: Inject tweaks into IPA
run: | run: |
tweaks="ytplus.deb OpenYoutubeSafariExtension.appex" tweaks="ytplus.deb OpenYoutubeSafariExtension.appex"
for f in *.deb; do
for deb in youpip.deb ytuhd.deb ryd.deb ygs.deb yq.deb ytvo.deb demc.deb; do [ -f "$f" ] && tweaks="$tweaks $f"
if [ -f "$deb" ]; then
tweaks="$tweaks $deb"
fi
done done
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 }}
cyan -i youtube.ipa -o YouTubePlus_${{ inputs.tweak_version }}.ipa -uwef $tweaks -n "${{ inputs.display_name }}" -b ${{ inputs.bundle_id }}
- name: Upload to GitHub Releases - name: Upload to GitHub Releases
uses: softprops/action-gh-release@v2.0.1 uses: softprops/action-gh-release@v2.5.0
with: with:
tag_name: ytp-${{ github.run_number }} tag_name: ytp-${{ github.run_number }}
name: YouTubePlus v${{ inputs.tweak_version }} (${{ github.run_number }}) name: YouTubePlus v${{ github.event.inputs.tweak_version }} (${{ github.run_number }})
files: YouTubePlus_${{ inputs.tweak_version }}.ipa files: YouTubePlus_${{ github.event.inputs.tweak_version }}.ipa
draft: true draft: true
- name: Output Release URL - name: Output Release URL
+31 -213
View File
@@ -3,7 +3,6 @@ name: '[BETA] Create YouTube Plus app'
on: on:
workflow_dispatch: workflow_dispatch:
inputs: inputs:
enable_youpip: enable_youpip:
description: "Integrate YouPiP" description: "Integrate YouPiP"
type: boolean type: boolean
@@ -28,6 +27,12 @@ on:
required: true required: true
default: false default: false
enable_ytabc:
description: "Integrate YTABConfig"
type: boolean
required: true
default: false
enable_demc: enable_demc:
description: "Integrate DontEatMyContent" description: "Integrate DontEatMyContent"
type: boolean type: boolean
@@ -69,246 +74,59 @@ concurrency:
cancel-in-progress: true cancel-in-progress: true
jobs: jobs:
build: build-tweaks:
name: 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 runs-on: macos-latest
needs: build-tweaks
permissions: permissions:
contents: write contents: write
steps: steps:
- name: Checkout Main - name: Download built debs
uses: actions/checkout@v4.1.1 uses: actions/download-artifact@v7
with: with:
path: main name: built-debs
submodules: recursive path: ${{ github.workspace }}
- name: Hide sensitive inputs - name: Hide sensitive inputs
uses: levibostian/action-hide-sensitive-inputs@v1 uses: levibostian/action-hide-sensitive-inputs@v1
with: 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 - name: Download and validate IPA
run: | run: |
wget "${{ inputs.ipa_url }}" --no-verbose -O ${{ github.workspace }}/youtube.ipa wget "${{ github.event.inputs.ipa_url }}" --no-verbose -O youtube.ipa
file_type=$(file --mime-type -b youtube.ipa)
file_type=$(file --mime-type -b ${{ github.workspace }}/youtube.ipa)
if [[ "$file_type" != "application/x-ios-app" && "$file_type" != "application/zip" ]]; then 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." echo "::error::Validation failed: The downloaded file is not a valid IPA. Detected type: $file_type."
exit 1 exit 1
fi 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 - name: Install cyan
run: pipx install --force https://github.com/asdfzxcvbn/pyzule-rw/archive/main.zip 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 - name: Inject tweaks into IPA
run: | run: |
tweaks="ytplus.deb OpenYoutubeSafariExtension.appex" tweaks="ytplus.deb OpenYoutubeSafariExtension.appex"
for f in *.deb; do
for deb in youpip.deb ytuhd.deb ryd.deb ygs.deb yq.deb ytvo.deb demc.deb; do [ -f "$f" ] && tweaks="$tweaks $f"
if [ -f "$deb" ]; then
tweaks="$tweaks $deb"
fi
done done
cyan -i youtube.ipa -o YouTubePlus_Beta.ipa -uwef $tweaks -n "${{ github.event.inputs.display_name }}" -b ${{ github.event.inputs.bundle_id }}
cyan -i youtube.ipa -o YouTubePlus_Beta.ipa -uwef $tweaks -n "${{ inputs.display_name }}" -b ${{ inputs.bundle_id }}
- name: Upload to GitHub Releases - name: Upload to GitHub Releases
uses: softprops/action-gh-release@v2.0.1 uses: softprops/action-gh-release@v2.5.0
with: with:
tag_name: ytp-beta-${{ github.run_number }} tag_name: ytp-beta-${{ github.run_number }}
name: YouTubePlus Beta (${{ github.run_number }}) name: YouTubePlus Beta (${{ github.run_number }})
+43
View File
@@ -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, lets 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 YouTubes 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>
+43
View File
@@ -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>
+43
View File
@@ -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>
+42
View File
@@ -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>
+21 -6
View File
@@ -1,6 +1,15 @@
# YouTube Plus (ex. YTLite) # YouTube Plus (ex. YTLite)
A flexible enhancer for YouTube on iOS, featuring over hundred customizable options. 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 ## Screenshots
<table> <table>
<tr> <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** **YouTube Plus preferences can be found in the YouTube Settings**
**All contributors are listed in the Contributors section** **All contributors are listed in the Contributors section**
**Used open-source libraries are listed in the Open Source Libraries 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 ## Reviews
Review by [@qbap](https://github.com/qbap) on ONE Jailbreak: https://onejailbreak.com/blog/youtube-plus/ 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> <summary>How to build the YouTube Plus app</summary>
<ol> <ol>
<li>Click on <strong>Sync fork</strong>, and if your branch is out-of-date, click on <strong>Update branch</strong>.</li> <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>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>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> <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> </details>
## Supported YouTube Version ## Supported YouTube Version
<li><strong>Latest confirmed:</strong> <em>20.29.3</em></li> <ul>
<li><strong>Date tested:</strong> <em>July 25, 2025</em></li> <li><strong>Latest confirmed:</strong> <em>20.42.3</em></li>
<li><strong>YouTube Plus:</strong> <em>5.2 beta 2</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 ## Tweak Integration Details
<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>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><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> <p>Source code and additional information are available <a href="https://github.com/therealFoxster/DontEatMyContent">in therealFoxster's GitHub repository</a>.</p>
</details> </details>
+16
View File
@@ -90,6 +90,22 @@
], ],
"class": "DepictionStackView", "class": "DepictionStackView",
"tabname": "Details" "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" = "واجهة المستخدم"; "Interface" = "واجهة المستخدم";
"OledTheme" = "ثيم OLED"; "OledTheme" = "ثيم OLED";
"OledThemeDesc" = "يحول جميع الألوان الداكنة إلى الأسود."; "OledThemeDesc" = "يحول جميع الألوان الداكنة إلى الأسود.";
"OledKeyboard" = "لوحة مفاتيح Oled"; "OledKeyboard" = "لوحة مفاتيح OLED";
"OledKeyboardDesc" = "يطبق سمة oled السوداء على لوحة المفاتيح المظلمة"; "OledKeyboardDesc" = "يطبق سمة OLED السوداء على لوحة المفاتيح المظلمة";
"NoSearchHistory" = "إخفاء سجل البحث"; "NoSearchHistory" = "إخفاء سجل البحث";
"NoSearchHistoryDesc" = "يخفي سجل البحث والاقتراحات بصريًا. ملاحظة: سيظل سجل البحث الخاص بك متاحًا في عملاء YouTube الآخرين."; "NoSearchHistoryDesc" = "يخفي سجل البحث والاقتراحات بصريًا. ملاحظة: سيظل سجل البحث الخاص بك متاحًا في عملاء YouTube الآخرين.";
"StickSortComments" = "تثبيت رأس التعليقات"; "StickSortComments" = "تثبيت رأس التعليقات";
@@ -335,10 +335,10 @@
/* Interface options */ /* Interface options */
"Interface" = "Interface"; "Interface" = "Interface";
"OledTheme" = "Oled theme"; "OledTheme" = "OLED theme";
"OledThemeDesc" = "Turns all dark colors to black"; "OledThemeDesc" = "Turns all dark colors to black";
"OledKeyboard" = "Oled keyboard"; "OledKeyboard" = "OLED keyboard";
"OledKeyboardDesc" = "Applies oled black theme for dark keyboard"; "OledKeyboardDesc" = "Applies OLED black theme for dark keyboard";
"NoSearchHistory" = "Hide search history"; "NoSearchHistory" = "Hide search history";
"NoSearchHistoryDesc" = "Visually hides search history and suggestions. Note: Your search history will still be accessible in your other YouTube clients."; "NoSearchHistoryDesc" = "Visually hides search history and suggestions. Note: Your search history will still be accessible in your other YouTube clients.";
"StickSortComments" = "Stick comments header"; "StickSortComments" = "Stick comments header";
@@ -21,7 +21,7 @@
"PostDownloadDesc" = "La acción seleccionada se ejecutará al completar con éxito la descarga del vídeo."; "PostDownloadDesc" = "La acción seleccionada se ejecutará al completar con éxito la descarga del vídeo.";
"SaveToPhotos" = "Guardar en fotos"; "SaveToPhotos" = "Guardar en fotos";
"Share" = "Compartir"; "Share" = "Compartir";
"Copy" = "Copy"; "Copy" = "Copiar";
"Ask" = "Preguntar"; "Ask" = "Preguntar";
"DownloadCompleted" = "Descarga completada"; "DownloadCompleted" = "Descarga completada";
@@ -92,17 +92,17 @@
/* Player options */ /* Player options */
"Player" = "Reproductor"; "Player" = "Reproductor";
"PlaybackQualityOnWiFi" = "Calidad de reproducción en WiFi"; "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"; "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"; "PreferredCaptions" = "Subtítulos preferidos";
"Original" = "Original"; "Original" = "Original";
"Custom" = "Seleccionar manualmente"; "Custom" = "Seleccionar manualmente";
"CustomAudioTrack" = "Pista de audio seleccionada"; "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"; "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"; "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."; "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"; "Player.Actions" = "Acciones";
"DefaultPlaybackRate" = "Velocidad de reproducción predeterminada"; "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"; "BackgroundPlayback" = "Reproducción en segundo plano";
"BackgroundPlaybackDesc" = "Permite la reproducción en segundo plano."; "BackgroundPlaybackDesc" = "Permite la reproducción en segundo plano.";
"Miniplayer" = "Activar mini reproductor"; "Miniplayer" = "Activar mini reproductor";
@@ -206,20 +206,20 @@
"ExitFullscreenDesc" = "Sale del modo de pantalla completa al finalizar la reproducción del vídeo."; "ExitFullscreenDesc" = "Sale del modo de pantalla completa al finalizar la reproducción del vídeo.";
"Player.Gestures" = "Gestos"; "Player.Gestures" = "Gestos";
"CompactToast" = "Compact toast"; "CompactToast" = "Aviso compacto";
"CompactToastDesc" = "Displays a compact-style toast for player gestures"; "CompactToastDesc" = "Muestra un aviso de tipo compacto para los gestos del reproductor";
"LeftSideGesture" = "Gesto para el lado izquierdo"; "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"; "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"; "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."; "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"; "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"; "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"; "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"; "PreserveSpeed" = "Bloquear velocidad";
"PreserveSpeedDesc" = "Locks at adjusted speed after gesture completion."; "PreserveSpeedDesc" = "Bloquea a la velocidad elegida después de completar un gesto.";
"SeekAnywhere" = "Deslizar para buscar"; "SeekAnywhere" = "Deslizar para buscar";
"SeekAnywhereDesc" = "Permite controlar la búsqueda de la reproducción deslizando hacia la izquierda y la derecha."; "SeekAnywhereDesc" = "Permite controlar la búsqueda de la reproducción deslizando hacia la izquierda y la derecha.";
"SeekMethod" = "Método de búsqueda"; "SeekMethod" = "Método de búsqueda";
@@ -330,15 +330,15 @@
"InactiveTabs" = "Pestañas inactivas"; "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."; "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"; "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"; "TabsCountRestricted" = "Solo puedes tener hasta seis pestañas activas";
/* Interface options */ /* Interface options */
"Interface" = "Interfaz"; "Interface" = "Interfaz";
"OledTheme" = "Tema Oled"; "OledTheme" = "Tema OLED";
"OledThemeDesc" = "Convierte todos los colores oscuros en negro"; "OledThemeDesc" = "Convierte todos los colores oscuros en negro";
"OledKeyboard" = "Teclado Oled"; "OledKeyboard" = "Teclado OLED";
"OledKeyboardDesc" = "Aplica el tema negro oled al teclado oscuro"; "OledKeyboardDesc" = "Aplica el tema negro OLED al teclado oscuro";
"NoSearchHistory" = "Ocultar el historial de búsqueda"; "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."; "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"; "StickSortComments" = "Pegar cabecera de comentarios";
@@ -364,8 +364,8 @@
"Other" = "Other"; "Other" = "Other";
"NoShareChunk" = "Eliminar identificador de compartición"; "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."; "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"; "AutoCheckLinks" = "Auto chequeo de portapapeles";
"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\""; "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"; "ContextMenu" = "Menú contextual";
"NativeShare" = "Hoja de acciones nativas"; "NativeShare" = "Hoja de acciones nativas";
@@ -388,16 +388,16 @@
"RemoveDontRecommendMenuDesc" = "Elimina la opción \"No recomendar canal\" del menú."; "RemoveDontRecommendMenuDesc" = "Elimina la opción \"No recomendar canal\" del menú.";
"RemoveReportMenu" = "Eliminar \"Reportar\""; "RemoveReportMenu" = "Eliminar \"Reportar\"";
"RemoveReportMenuDesc" = "Elimina la opción \"Reportar\" del menú."; "RemoveReportMenuDesc" = "Elimina la opción \"Reportar\" del menú.";
"RemoveRemixMenu" = "Remove \"Remix\""; "RemoveRemixMenu" = "Eliminar \"Remix\"";
"RemoveRemixMenuDesc" = "Removes \"Remix\" option from menu."; "RemoveRemixMenuDesc" = "Elimina la opción \"Remix\" del menú.";
"RemoveYTMMenu" = "Remove \"YouTube Music\""; "RemoveYTMMenu" = "Eliminar \"YouTube Music\"";
"RemoveYTMMenuDesc" = "Removes \"Listen with YouTube Music\" option from menu."; "RemoveYTMMenuDesc" = "Elimina la opción \"Escuchar con YouTube Music\" del menú.";
/* SponsorBlock settings */ /* SponsorBlock settings */
"EnableSponsorBlock" = "Habilitar"; "EnableSponsorBlock" = "Habilitar";
"EnableSponsorBlockDesc" = "Activa la extensión SponsorBlock."; "EnableSponsorBlockDesc" = "Activa la extensión SponsorBlock.";
"SbPlayerButton" = "Display button in overlay"; "SbPlayerButton" = "Muestra el botón en superposición";
"SbPlayerButtonDesc" = "Adds SponsorBlock button in players overlay."; "SbPlayerButtonDesc" = "Añade un botón de SponsorBlock en la superposición del reproductor.";
"ShowNotifications" = "Mostrar notificaciones"; "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."; "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"; "SegmentsInFeedPlayer" = "Mostrar segmentos en el feed";
@@ -447,12 +447,12 @@
"Sb.Ask" = "Preguntar"; "Sb.Ask" = "Preguntar";
"Sb.Display" = "Mostrar en el reproductor"; "Sb.Display" = "Mostrar en el reproductor";
"PublicUserID" = "Public UserID"; "PublicUserID" = "ID de usuario pública";
"PrivateUserID" = "Private UserID"; "PrivateUserID" = "ID de usuario privada";
"TapToReveal" = "Tap to reveal"; "TapToReveal" = "Tocar para revelar";
"Save" = "Save"; "Save" = "Guardar";
"Error.SbPublicID" = "The public user ID must contain exactly 64 characters"; "Error.SbPublicID" = "La ID de usuario pública debe contener exactamente 64 caracteres";
"Error.SbPrivateID" = "The private (local) user ID must contain at least 32 characters"; "Error.SbPrivateID" = "La ID de usuario privada (local) debe contener al menos 32 caracteres";
"sb_sponsor" = "Segmento de patrocinador"; "sb_sponsor" = "Segmento de patrocinador";
"sb_intro" = "Segmento de intro"; "sb_intro" = "Segmento de intro";
@@ -461,14 +461,14 @@
"sb_selfpromo" = "Segmento de auto-promoción"; "sb_selfpromo" = "Segmento de auto-promoción";
"sb_music_offtopic" = "Segmento fuera de tema"; "sb_music_offtopic" = "Segmento fuera de tema";
"sb_preview" = "Segmento de avance"; "sb_preview" = "Segmento de avance";
"sb_poi_highlight" = "Highlight"; "sb_poi_highlight" = "Destacado";
"sb_filler" = "Segmento de relleno"; "sb_filler" = "Segmento de relleno";
"SegmentDetected" = "%@ detected.\n%@"; "SegmentDetected" = "%@ detectado.\n%@";
"SegmentSkipped" = "%@ has been skipped"; "SegmentSkipped" = "%@ se ha saltado";
"SkippedToSegment" = "Jumped to %@"; "SkippedToSegment" = "Sltado a %@";
"SkipSegment" = "Would you like to skip the segment?"; "SkipSegment" = "¿Quieres omitir el segmento?";
"SkipToSegment" = "Would you like to jump to the highlight?"; "SkipToSegment" = "¿ Quieres saltar a lo destacado?";
"Unskip" = "Deshacer omisión"; "Unskip" = "Deshacer omisión";
/* Developer section */ /* Developer section */
@@ -540,7 +540,7 @@
"Disable" = "Desactivar"; "Disable" = "Desactivar";
"Disabled" = "Desactivado"; "Disabled" = "Desactivado";
"PlaybackSpeed" = "Velocidad de reproducción"; "PlaybackSpeed" = "Velocidad de reproducción";
"SpeedPreserved" = "Speed locked at %@"; "SpeedPreserved" = "Velocidad fijada a %@";
"ResetSpeed" = "Restablecer"; "ResetSpeed" = "Restablecer";
"Toast.Brightness" = "Brillo"; "Toast.Brightness" = "Brillo";
@@ -599,21 +599,21 @@
"RetryLogin" = "Solución alternativa activada.\n\nPor favor, inténtelo de nuevo."; "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"; "LoginInfo" = "Se requiere reiniciar la aplicación después de iniciar sesión con éxito en la cuenta de Google";
"OpenLink" = "Open link"; "OpenLink" = "Abrir enlace";
"LinkDetected" = "A YouTube-related link was detected. Would you like to open it in YouTube?"; "LinkDetected" = "Se ha detectado un enlace relaccionado con YouTube. ¿Quieres abrirlo en YouTube?";
"SbWhitelist" = "Whitelist"; "SbWhitelist" = "Lista blanca";
"SbAddToWhitelist" = "Add to the whitelist"; "SbAddToWhitelist" = "Añadir a la lista blanca";
"Sb.Whitelisted" = "Added to the whitelist"; "Sb.Whitelisted" = "Añadido a la lista blanca";
"SbRemoveFromWhitelist" = "Remove from the whitelist"; "SbRemoveFromWhitelist" = "Eliminar de la lista blanca";
"Sb.Whitelist" = "Whitelisted channels"; "Sb.Whitelist" = "Canales de la lista blanca";
"Sb.Channels" = "Channels"; "Sb.Channels" = "Canales";
"Sb.ChannelsHere" = "Whitelisted channels appear here"; "Sb.ChannelsHere" = "Los canales de la lista blanca aparecen aquí";
"SortType" = "Sort type"; "SortType" = "Tipo de clasificación";
"Sb.Newest" = "Newest first"; "Sb.Newest" = "El más nuevo primero";
"Sb.Oldest" = "Oldest first"; "Sb.Oldest" = "El más antiguo primero";
"Sb.Alphabetical" = "Alphabetical (A-Z)"; "Sb.Alphabetical" = "Orden alfabético (A-Z)";
"Sb.AlphabeticalRev" = "Reverse (Z-A)"; "Sb.AlphabeticalRev" = "Inverso (Z-A)";
"Welcome.Download" = "Descarga multimedia"; "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."; "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 %@"; "SkippedToSegment" = "Saltado al %@";
"SkipSegment" = "Omitir"; "SkipSegment" = "Omitir";
"SkipToSegment" = "Para destacar"; "SkipToSegment" = "Para destacar";
"SpeedPreserved" = "Velocidad conservada"; "SpeedPreserved" = "Velocidad conservada";
@@ -337,8 +337,8 @@
"Interface" = "Interface"; "Interface" = "Interface";
"OledTheme" = "Thème OLED"; "OledTheme" = "Thème OLED";
"OledThemeDesc" = "Change toutes les couleurs sombres en noir OLED"; "OledThemeDesc" = "Change toutes les couleurs sombres en noir OLED";
"OledKeyboard" = "Oled keyboard"; "OledKeyboard" = "OLED keyboard";
"OledKeyboardDesc" = "Applies oled black theme for dark keyboard"; "OledKeyboardDesc" = "Applies OLED black theme for dark keyboard";
"NoSearchHistory" = "Masquer l'historique de recherche"; "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."; "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"; "StickSortComments" = "Épingler l'en-tête des commentaires";
@@ -4,7 +4,7 @@
/* Downloading options */ /* Downloading options */
"Downloading" = "Scaricamento"; "Downloading" = "Scaricamento";
"DownloadManager" = "Gestore dei download"; "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"; "PostManager" = "Salva le informazioni di un post";
"PostManagerDesc" = "Permette di copiare il testo dei post e salvare il post come immagine tenendo premuto."; "PostManagerDesc" = "Permette di copiare il testo dei post e salvare il post come immagine tenendo premuto.";
"SaveProfilePhoto" = "Salva l'immagine di profilo"; "SaveProfilePhoto" = "Salva l'immagine di profilo";
@@ -21,7 +21,7 @@
"PostDownloadDesc" = "L'azione selezionata verrà eseguita una volta completato il download di un video."; "PostDownloadDesc" = "L'azione selezionata verrà eseguita una volta completato il download di un video.";
"SaveToPhotos" = "Salva nella galleria"; "SaveToPhotos" = "Salva nella galleria";
"Share" = "Condividi"; "Share" = "Condividi";
"Copy" = "Copy"; "Copy" = "Copia";
"Ask" = "Chiedi"; "Ask" = "Chiedi";
"DownloadCompleted" = "Download completato"; "DownloadCompleted" = "Download completato";
@@ -92,17 +92,17 @@
/* Player options */ /* Player options */
"Player" = "Player"; "Player" = "Player";
"PlaybackQualityOnWiFi" = "Qualità di riproduzione su WiFi"; "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"; "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"; "PreferredCaptions" = "Sottotitoli preferiti";
"Original" = "Originale"; "Original" = "Originale";
"Custom" = "Seleziona manualmente"; "Custom" = "Seleziona manualmente";
"CustomAudioTrack" = "Traccia audio selezionata"; "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"; "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"; "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."; "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"; "Player.Actions" = "Azioni";
"DefaultPlaybackRate" = "Velocità di riproduzione predefinita"; "DefaultPlaybackRate" = "Velocità di riproduzione predefinita";
"DefaultPlaybackRateDesc" = "Overrides the default playback speed"; "DefaultPlaybackRateDesc" = "Sovrascrive la velocità di riproduzione di default";
"BackgroundPlayback" = "Riproduzione in background"; "BackgroundPlayback" = "Riproduzione in background";
"BackgroundPlaybackDesc" = "Abilita la riproduzione in background."; "BackgroundPlaybackDesc" = "Abilita la riproduzione in background.";
"Miniplayer" = "Abilita mini lettore"; "Miniplayer" = "Abilita mini lettore";
@@ -207,19 +207,19 @@
"Player.Gestures" = "Gestures"; "Player.Gestures" = "Gestures";
"CompactToast" = "Compact toast"; "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"; "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"; "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"; "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."; "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à"; "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"; "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ù."; "AdjustWithFingerDesc" = "Consente di regolare la velocità di riproduzione con una lunga pressione sul player e muovendo il dito su e giù.";
"PreserveSpeed" = "Lock speed"; "PreserveSpeed" = "Blocca velocità";
"PreserveSpeedDesc" = "Locks at adjusted speed after gesture completion."; "PreserveSpeedDesc" = "Imposta una velocità prefissata dopo una gesture";
"SeekAnywhere" = "Scorri per cercare"; "SeekAnywhere" = "Scorri per cercare";
"SeekAnywhereDesc" = "Consente di controllare la ricerca della riproduzione scorrendo a sinistra e a destra."; "SeekAnywhereDesc" = "Consente di controllare la ricerca della riproduzione scorrendo a sinistra e a destra.";
"SeekMethod" = "Metodo di ricerca"; "SeekMethod" = "Metodo di ricerca";
@@ -330,7 +330,7 @@
"InactiveTabs" = "Tab inattive"; "InactiveTabs" = "Tab inattive";
"HideLibraryFooter" = "La tab Libreria può essere nascosta o mostrata premendo a lungo sulla prima tab della Tab bar."; "HideLibraryFooter" = "La tab Libreria può essere nascosta o mostrata premendo a lungo sulla prima tab della Tab bar.";
"Warning" = "Attenzione"; "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"; "TabsCountRestricted" = "Puoi avere fino a sei tab attive";
/* Interface options */ /* Interface options */
@@ -361,11 +361,11 @@
"MiniplayerStyleDesc" = "Cambiare da/a modalità floating richiede il riavvio dell'app."; "MiniplayerStyleDesc" = "Cambiare da/a modalità floating richiede il riavvio dell'app.";
"Floating" = "Floating"; "Floating" = "Floating";
"Other" = "Other"; "Other" = "Altro";
"NoShareChunk" = "Rimuovi share identifier"; "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."; "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"; "AutoCheckLinks" = "Controlla automaticamente gli appunti";
"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\""; "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"; "ContextMenu" = "Menu contestuale";
"NativeShare" = "Share sheet nativo"; "NativeShare" = "Share sheet nativo";
@@ -388,16 +388,16 @@
"RemoveDontRecommendMenuDesc" = "Rimuove l'opzione \"Non raccomandare il canale\" dal menu."; "RemoveDontRecommendMenuDesc" = "Rimuove l'opzione \"Non raccomandare il canale\" dal menu.";
"RemoveReportMenu" = "Rimuovi \"Segnala\""; "RemoveReportMenu" = "Rimuovi \"Segnala\"";
"RemoveReportMenuDesc" = "Rimuove l'opzione \"Segnala\" dal menu."; "RemoveReportMenuDesc" = "Rimuove l'opzione \"Segnala\" dal menu.";
"RemoveRemixMenu" = "Remove \"Remix\""; "RemoveRemixMenu" = "Rimuovi \"Remix\"";
"RemoveRemixMenuDesc" = "Removes \"Remix\" option from menu."; "RemoveRemixMenuDesc" = "Rimuove l'opzione \"Remix\" dal menu.";
"RemoveYTMMenu" = "Remove \"YouTube Music\""; "RemoveYTMMenu" = "Rimuovi \"YouTube Music\"";
"RemoveYTMMenuDesc" = "Removes \"Listen with YouTube Music\" option from menu."; "RemoveYTMMenuDesc" = "Rimuove l'opzione \"Ascolta con YouTube Music\" dal menu.";
/* SponsorBlock settings */ /* SponsorBlock settings */
"EnableSponsorBlock" = "Abilita"; "EnableSponsorBlock" = "Abilita";
"EnableSponsorBlockDesc" = "Attiva l'estensione SponsorBlock."; "EnableSponsorBlockDesc" = "Attiva l'estensione SponsorBlock.";
"SbPlayerButton" = "Display button in overlay"; "SbPlayerButton" = "Mostra il tasto nell'overlay";
"SbPlayerButtonDesc" = "Adds SponsorBlock button in players overlay."; "SbPlayerButtonDesc" = "Aggiunge il bottone SponsorBlock nell'overlay.";
"ShowNotifications" = "Mostra notifiche"; "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."; "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"; "SegmentsInFeedPlayer" = "Mostra segmenti nel feed";
@@ -447,12 +447,12 @@
"Sb.Ask" = "Chiedi"; "Sb.Ask" = "Chiedi";
"Sb.Display" = "Mostra nel player"; "Sb.Display" = "Mostra nel player";
"PublicUserID" = "Public UserID"; "PublicUserID" = "UserID pubblico";
"PrivateUserID" = "Private UserID"; "PrivateUserID" = "UserID privato";
"TapToReveal" = "Tap to reveal"; "TapToReveal" = "Tocca per mostrare";
"Save" = "Save"; "Save" = "Salva";
"Error.SbPublicID" = "The public user ID must contain exactly 64 characters"; "Error.SbPublicID" = "L'UserID pubblico deve contenere esattamente 64 caratteri";
"Error.SbPrivateID" = "The private (local) user ID must contain at least 32 characters"; "Error.SbPrivateID" = "L'user ID privato (locale) deve contenere almeno 32 caratteri";
"sb_sponsor" = "Segmento Sponsor"; "sb_sponsor" = "Segmento Sponsor";
"sb_intro" = "Segmento Intro"; "sb_intro" = "Segmento Intro";
@@ -464,11 +464,11 @@
"sb_poi_highlight" = "Highlight"; "sb_poi_highlight" = "Highlight";
"sb_filler" = "Segmento Filler"; "sb_filler" = "Segmento Filler";
"SegmentDetected" = "%@ detected.\n%@"; "SegmentDetected" = "%@ rilevato.\n%@";
"SegmentSkipped" = "%@ has been skipped"; "SegmentSkipped" = "%@ skippato";
"SkippedToSegment" = "Jumped to %@"; "SkippedToSegment" = "Passato a %@";
"SkipSegment" = "Would you like to skip the segment?"; "SkipSegment" = "Vuoi skippare il segmento?";
"SkipToSegment" = "Would you like to jump to the highlight?"; "SkipToSegment" = "Vuoi passare all'highlight?";
"Unskip" = "Unskip"; "Unskip" = "Unskip";
/* Developer section */ /* Developer section */
@@ -540,7 +540,7 @@
"Disable" = "Disattiva"; "Disable" = "Disattiva";
"Disabled" = "Disattivato"; "Disabled" = "Disattivato";
"PlaybackSpeed" = "Velocità di riproduzione"; "PlaybackSpeed" = "Velocità di riproduzione";
"SpeedPreserved" = "Speed locked at %@"; "SpeedPreserved" = "Velocità bloccata a %@";
"ResetSpeed" = "Reset"; "ResetSpeed" = "Reset";
"Toast.Brightness" = "Luminosità"; "Toast.Brightness" = "Luminosità";
@@ -599,21 +599,21 @@
"RetryLogin" = "Alternativa attivata.\n\nRiprova più tardi."; "RetryLogin" = "Alternativa attivata.\n\nRiprova più tardi.";
"LoginInfo" = "Il restart dell'app è necessario dopo essere loggati nell'account Google"; "LoginInfo" = "Il restart dell'app è necessario dopo essere loggati nell'account Google";
"OpenLink" = "Open link"; "OpenLink" = "Apri link";
"LinkDetected" = "A YouTube-related link was detected. Would you like to open it in YouTube?"; "LinkDetected" = "Un link relativo a YouTube è stato rilevato. Vuoi aprirlo in YouTube?";
"SbWhitelist" = "Whitelist"; "SbWhitelist" = "Whitelist";
"SbAddToWhitelist" = "Add to the whitelist"; "SbAddToWhitelist" = "Aggiungi alla whitelist";
"Sb.Whitelisted" = "Added to the whitelist"; "Sb.Whitelisted" = "Aggiunto alla whitelist";
"SbRemoveFromWhitelist" = "Remove from the whitelist"; "SbRemoveFromWhitelist" = "Rimuovi dalla whitelist";
"Sb.Whitelist" = "Whitelisted channels"; "Sb.Whitelist" = "Canali in whitelist";
"Sb.Channels" = "Channels"; "Sb.Channels" = "Canali";
"Sb.ChannelsHere" = "Whitelisted channels appear here"; "Sb.ChannelsHere" = "I canali in whitelist appariranno qua";
"SortType" = "Sort type"; "SortType" = "Modalità di ordinamento";
"Sb.Newest" = "Newest first"; "Sb.Newest" = "Più recenti prima";
"Sb.Oldest" = "Oldest first"; "Sb.Oldest" = "Meno recenti prima";
"Sb.Alphabetical" = "Alphabetical (A-Z)"; "Sb.Alphabetical" = "Alfabetico (A-Z)";
"Sb.AlphabeticalRev" = "Reverse (Z-A)"; "Sb.AlphabeticalRev" = "Inverso (Z-A)";
"Welcome.Download" = "Download Media"; "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"; "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 %@"; "SkippedToSegment" = "Skippato a %@";
"SkipSegment" = "Skip"; "SkipSegment" = "Skip";
"SkipToSegment" = "Da evidenziare"; "SkipToSegment" = "Da evidenziare";
"SpeedPreserved" = "Velocità mantenuta"; "SpeedPreserved" = "Velocità mantenuta";
@@ -19,9 +19,9 @@
"PostDownloadAction" = "ダウンロード後の動作"; "PostDownloadAction" = "ダウンロード後の動作";
"PostDownloadDesc" = "選択した動作は、動画のダウンロードが正常に完了すると実行されます。"; "PostDownloadDesc" = "選択した動作は、動画のダウンロードが正常に完了すると実行されます。";
"SaveToPhotos" = "写真アプリに保存"; "SaveToPhotos" = "[写真] アプリに保存";
"Share" = "共有"; "Share" = "共有";
"Copy" = "Copy"; "Copy" = "コピー";
"Ask" = "確認"; "Ask" = "確認";
"DownloadCompleted" = "ダウンロード完了"; "DownloadCompleted" = "ダウンロード完了";
@@ -39,7 +39,7 @@
"EmbedThumbnailsToVideos" = "サムネイルを埋め込む"; "EmbedThumbnailsToVideos" = "サムネイルを埋め込む";
"EmbedThumbnailsToVideosDesc" = "動画のサムネイルをメタデータのサムネイルとして埋め込みます。"; "EmbedThumbnailsToVideosDesc" = "動画のサムネイルをメタデータのサムネイルとして埋め込みます。";
"EmbedCapsToVideos" = "字幕を埋め込む"; "EmbedCapsToVideos" = "字幕を埋め込む";
"EmbedCapsToVideosDesc" = "選択した字幕/キャプションを動画に埋め込みます。"; "EmbedCapsToVideosDesc" = "選択したキャプション/字幕を動画に埋め込みます。";
"EmbedAutoGenCaps" = "自動生成の字幕"; "EmbedAutoGenCaps" = "自動生成の字幕";
"EmbedAutoGenCapsDesc" = "自動生成、翻訳、および自動翻訳された字幕を字幕リストに追加します。"; "EmbedAutoGenCapsDesc" = "自動生成、翻訳、および自動翻訳された字幕を字幕リストに追加します。";
"DownloadCaptions" = "字幕をダウンロード"; "DownloadCaptions" = "字幕をダウンロード";
@@ -49,11 +49,11 @@
/* Nav bar options */ /* Nav bar options */
"Navbar" = "ナビゲーションバー(上部のボタン類)"; "Navbar" = "ナビゲーションバー(上部のボタン類)";
"RemoveCast" = "キャストボタンを非表示"; "RemoveCast" = "[キャスト] ボタンを非表示";
"RemoveCastDesc" = "ナビゲーションバーから [キャスト] ボタンを非表示にします。"; "RemoveCastDesc" = "ナビゲーションバーから [キャスト] ボタンを非表示にします。";
"RemoveNotifications" = "通知ボタンを非表示"; "RemoveNotifications" = "[通知] ボタンを非表示";
"RemoveNotificationsDesc" = "ナビゲーションバーから [通知] ボタンを非表示にします。"; "RemoveNotificationsDesc" = "ナビゲーションバーから [通知] ボタンを非表示にします。";
"RemoveSearch" = "検索ボタンを非表示"; "RemoveSearch" = "[検索] ボタンを非表示";
"RemoveSearchDesc" = "ナビゲーションバーから [検索] ボタンを非表示にします。"; "RemoveSearchDesc" = "ナビゲーションバーから [検索] ボタンを非表示にします。";
"RemoveVoiceSearch" = "音声検索ボタンを非表示"; "RemoveVoiceSearch" = "音声検索ボタンを非表示";
"RemoveVoiceSearchDesc" = "ナビゲーションバーから音声検索のボタンを非表示にします。"; "RemoveVoiceSearchDesc" = "ナビゲーションバーから音声検索のボタンを非表示にします。";
@@ -92,17 +92,17 @@
/* Player options */ /* Player options */
"Player" = "プレーヤー"; "Player" = "プレーヤー";
"PlaybackQualityOnWiFi" = "WiFi での再生画質"; "PlaybackQualityOnWiFi" = "WiFi での再生画質";
"PlaybackQualityOnWiFiDesc" = "Automatically applies the selected quality when streaming over Wi-Fi"; "PlaybackQualityOnWiFiDesc" = "Wi-Fi経由でストリーミングする際に選択した画質を自動的に適用します。";
"PlaybackQualityOnCellular" = "モバイルデータ通信での再生画質"; "PlaybackQualityOnCellular" = "モバイルデータ通信での再生画質";
"PlaybackQualityOnCellularDesc" = "Automatically applies the selected quality when streaming over mobile data"; "PlaybackQualityOnCellularDesc" = "モバイルデータ通信でストリーミングする際に選択した画質を自動的に適用します。";
"PreferredCaptions" = "優先する字幕"; "PreferredCaptions" = "優先する字幕";
"Original" = "オリジナル"; "Original" = "オリジナル";
"Custom" = "手動で選択"; "Custom" = "手動で選択";
"CustomAudioTrack" = "音声トラックを選択"; "CustomAudioTrack" = "音声トラックを選択";
"CustomAudioTrackDesc" = "Specifies the preferred audio track language to use for playback, if available"; "CustomAudioTrackDesc" = "再生時に使用する優先オーディオトラック言語を指定します (利用可能な場合)。";
"CustomCaptions" = "字幕を選択"; "CustomCaptions" = "字幕を選択";
"CustomCaptionsDesc" = "Specifies the preferred captions language to display, if available"; "CustomCaptionsDesc" = "利用可能な場合は、表示する字幕の言語を指定します。";
"AutoGenCaps" = "自動生成の字幕"; "AutoGenCaps" = "自動生成の字幕";
"AutoGenCapsDesc" = "選択した字幕が見つからない場合、YouTube Plus はオリジナル字幕の翻訳または自動生成字幕の翻訳を選択します。"; "AutoGenCapsDesc" = "選択した字幕が見つからない場合、YouTube Plus はオリジナル字幕の翻訳または自動生成字幕の翻訳を選択します。";
@@ -187,7 +187,7 @@
"Player.Actions" = "動作"; "Player.Actions" = "動作";
"DefaultPlaybackRate" = "デフォルトの再生速度"; "DefaultPlaybackRate" = "デフォルトの再生速度";
"DefaultPlaybackRateDesc" = "Overrides the default playback speed"; "DefaultPlaybackRateDesc" = "デフォルトの再生速度を上書きします。";
"BackgroundPlayback" = "バックグラウンド再生"; "BackgroundPlayback" = "バックグラウンド再生";
"BackgroundPlaybackDesc" = "バックグラウンド再生を有効にします。"; "BackgroundPlaybackDesc" = "バックグラウンド再生を有効にします。";
"Miniplayer" = "ミニプレーヤーを有効化"; "Miniplayer" = "ミニプレーヤーを有効化";
@@ -206,20 +206,20 @@
"ExitFullscreenDesc" = "動画が終了した際に全画面表示を終了します。"; "ExitFullscreenDesc" = "動画が終了した際に全画面表示を終了します。";
"Player.Gestures" = "ジェスチャー"; "Player.Gestures" = "ジェスチャー";
"CompactToast" = "Compact toast"; "CompactToast" = "コンパクトなトーストを使用";
"CompactToastDesc" = "Displays a compact-style toast for player gestures"; "CompactToastDesc" = "プレイヤーのジェスチャー用のコンパクトなスタイルのトーストを表示します。";
"LeftSideGesture" = "左側のジェスチャー"; "LeftSideGesture" = "左側のジェスチャー";
"LeftSideGestureDesc" = "Adjusts the selected setting by swiping vertically on the left side of the screen"; "LeftSideGestureDesc" = "画面の左側を縦にスワイプして選択した設定を調整します。";
"RightSideGesture" = "右側のジェスチャー"; "RightSideGesture" = "右側のジェスチャー";
"RightSideGestureDesc" = "Adjusts the selected setting by swiping vertically on the right side of the screen"; "RightSideGestureDesc" = "画面の右側を縦にスワイプして選択した設定を調整します。";
"ActivationAreaWidth" = "ジェスチャー有効化幅"; "ActivationAreaWidth" = "ジェスチャー有効化幅";
"ActivationAreaWidthDesc" = "この値は、画面左右のジェスチャー認識領域をピクセル単位で決定します。\n\n許可される最大値は画面幅の 3 分の 1 です。\n\nプレーヤーの最小化や拡大を試みる際の誤作動を防ぐために、この設定を調整すると便利です。"; "ActivationAreaWidthDesc" = "この値は、画面左右のジェスチャー認識領域をピクセル単位で決定します。\n\n許可される最大値は画面幅の 3 分の 1 です。\n\nプレーヤーの最小化や拡大を試みる際の誤作動を防ぐために、この設定を調整すると便利です。";
"HoldToSpeed" = "長押しで再生速度を変更"; "HoldToSpeed" = "長押しで再生速度を変更";
"HoldToSpeedDesc" = "Sets the playback speed triggered by a long press on the player"; "HoldToSpeedDesc" = "プレーヤーを長押しすることで再生速度を設定します。";
"AdjustWithFinger" = "ジェスチャーで再生速度を調整"; "AdjustWithFinger" = "ジェスチャーで再生速度を調整";
"AdjustWithFingerDesc" = "プレーヤーを長押ししながら指を上下に動かすことで再生速度を調整できます。"; "AdjustWithFingerDesc" = "プレーヤーを長押ししながら指を上下に動かすことで再生速度を調整できます。";
"PreserveSpeed" = "Lock speed"; "PreserveSpeed" = "再生速度を維持";
"PreserveSpeedDesc" = "Locks at adjusted speed after gesture completion."; "PreserveSpeedDesc" = "ジェスチャー終了後も調整された再生速度を維持します。";
"SeekAnywhere" = "スワイプでシーク"; "SeekAnywhere" = "スワイプでシーク";
"SeekAnywhereDesc" = "左右にスワイプして再生シークを制御できるようにします。"; "SeekAnywhereDesc" = "左右にスワイプして再生シークを制御できるようにします。";
"SeekMethod" = "シーク方法"; "SeekMethod" = "シーク方法";
@@ -328,10 +328,10 @@
"ActiveTabs" = "有効なタブ"; "ActiveTabs" = "有効なタブ";
"InactiveTabs" = "無効なタブ"; "InactiveTabs" = "無効なタブ";
"HideLibraryFooter" = "ライブラリタブは、タブバーの最初のタブを長押しすることで表示/非表示を切り替えられます。"; "HideLibraryFooter" = "タブバーの最初のタブを長押しすることで、タブ設定にアクセスすることもできます。";
"Warning" = "警告"; "Warning" = "警告";
"AtLeastOneTab" = "At least one tab must remain active"; "AtLeastOneTab" = "少なくとも 1 つのタブが有効になっている必要があります。";
"TabsCountRestricted" = "有効タブは最大 6 つまでです。"; "TabsCountRestricted" = "有効にできるタブは最大 6 つまでです。";
/* Interface options */ /* Interface options */
"Interface" = "インターフェース"; "Interface" = "インターフェース";
@@ -361,11 +361,11 @@
"MiniplayerStyleDesc" = "フローティングモードへの切り替え/終了にはアプリの再起動が必要です。"; "MiniplayerStyleDesc" = "フローティングモードへの切り替え/終了にはアプリの再起動が必要です。";
"Floating" = "フローティング"; "Floating" = "フローティング";
"Other" = "Other"; "Other" = "その他";
"NoShareChunk" = "共有識別子を削除"; "NoShareChunk" = "共有識別子を削除";
"NoShareChunkDesc" = "共有リンクから「si=identifier」パラメータを削除します。YouTube が共有メニューを継続的に改善しているため、「システムの共有シートに置換」オプションの優れた代替手段となります。"; "NoShareChunkDesc" = "共有リンクから「si=identifier」パラメータを削除します。YouTube が共有メニューを継続的に改善しているため、「システムの共有シートに置換」オプションの優れた代替手段となります。";
"AutoCheckLinks" = "Auto-check clipboard"; "AutoCheckLinks" = "クリップボードの自動確認";
"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\""; "AutoCheckLinksDesc" = "アプリを開くたびに、クリップボードに YouTube 関連のリンクが保存されているか確認します。\n正しく機能させるには、iOS の設定 → YouTube → 他のアプリからの貼り付けで「許可」を選択してください。";
"ContextMenu" = "コンテキストメニュー"; "ContextMenu" = "コンテキストメニュー";
"NativeShare" = "システムの共有シートに置換"; "NativeShare" = "システムの共有シートに置換";
@@ -388,16 +388,16 @@
"RemoveDontRecommendMenuDesc" = "メニューから [チャンネルをおすすめに表示しない] オプションを削除します。"; "RemoveDontRecommendMenuDesc" = "メニューから [チャンネルをおすすめに表示しない] オプションを削除します。";
"RemoveReportMenu" = "[報告] を削除"; "RemoveReportMenu" = "[報告] を削除";
"RemoveReportMenuDesc" = "メニューから [報告] オプションを削除します。"; "RemoveReportMenuDesc" = "メニューから [報告] オプションを削除します。";
"RemoveRemixMenu" = "Remove \"Remix\""; "RemoveRemixMenu" = "[リミックス] を削除";
"RemoveRemixMenuDesc" = "Removes \"Remix\" option from menu."; "RemoveRemixMenuDesc" = "メニューから [リミックス] オプションを削除します。";
"RemoveYTMMenu" = "Remove \"YouTube Music\""; "RemoveYTMMenu" = "[YouTube Music] を非表示";
"RemoveYTMMenuDesc" = "Removes \"Listen with YouTube Music\" option from menu."; "RemoveYTMMenuDesc" = "メニューから [YouTube Music で聴く] オプションをを非表示にします。";
/* SponsorBlock settings */ /* SponsorBlock settings */
"EnableSponsorBlock" = "有効化"; "EnableSponsorBlock" = "有効化";
"EnableSponsorBlockDesc" = "SponsorBlock 拡張機能を有効にします。"; "EnableSponsorBlockDesc" = "SponsorBlock 拡張機能を有効にします。";
"SbPlayerButton" = "Display button in overlay"; "SbPlayerButton" = "オーバーレイでボタンを表示";
"SbPlayerButtonDesc" = "Adds SponsorBlock button in players overlay."; "SbPlayerButtonDesc" = "プレーヤーオーバーレイに SponsorBlock のボタンを追加します。";
"ShowNotifications" = "通知を表示"; "ShowNotifications" = "通知を表示";
"ShowNotificationsDesc" = "自動的にスキップされたセグメントの通知を表示します。手動でスキップする必要があるカテゴリの通知は常に表示されます。"; "ShowNotificationsDesc" = "自動的にスキップされたセグメントの通知を表示します。手動でスキップする必要があるカテゴリの通知は常に表示されます。";
"SegmentsInFeedPlayer" = "フィードにセグメントを表示"; "SegmentsInFeedPlayer" = "フィードにセグメントを表示";
@@ -447,12 +447,12 @@
"Sb.Ask" = "スキップするか確認"; "Sb.Ask" = "スキップするか確認";
"Sb.Display" = "プレーヤーに表示"; "Sb.Display" = "プレーヤーに表示";
"PublicUserID" = "Public UserID"; "PublicUserID" = "公開ユーザ ID";
"PrivateUserID" = "Private UserID"; "PrivateUserID" = "プライベートユーザー ID";
"TapToReveal" = "Tap to reveal"; "TapToReveal" = "タップして表示";
"Save" = "Save"; "Save" = "保存";
"Error.SbPublicID" = "The public user ID must contain exactly 64 characters"; "Error.SbPublicID" = "パブリックユーザー ID は 64 文字でなければなりません。";
"Error.SbPrivateID" = "The private (local) user ID must contain at least 32 characters"; "Error.SbPrivateID" = "プライベート (またはローカル) ユーザー ID は少なくとも 32 文字でなければなりません";
"sb_sponsor" = "スポンサーセグメント"; "sb_sponsor" = "スポンサーセグメント";
"sb_intro" = "イントロセグメント"; "sb_intro" = "イントロセグメント";
@@ -461,14 +461,14 @@
"sb_selfpromo" = "自己プロモーションセグメント"; "sb_selfpromo" = "自己プロモーションセグメント";
"sb_music_offtopic" = "余談セグメント"; "sb_music_offtopic" = "余談セグメント";
"sb_preview" = "プレビューセグメント"; "sb_preview" = "プレビューセグメント";
"sb_poi_highlight" = "Highlight"; "sb_poi_highlight" = "ハイライト";
"sb_filler" = "フィラーセグメント"; "sb_filler" = "フィラーセグメント";
"SegmentDetected" = "%@ detected.\n%@"; "SegmentDetected" = "%@ を検出しました。\n%@";
"SegmentSkipped" = "%@ has been skipped"; "SegmentSkipped" = "%@ はスキップされました";
"SkippedToSegment" = "Jumped to %@"; "SkippedToSegment" = "%@ にジャンプしました。";
"SkipSegment" = "Would you like to skip the segment?"; "SkipSegment" = "セグメントをスキップしますか?";
"SkipToSegment" = "Would you like to jump to the highlight?"; "SkipToSegment" = "ハイライトにジャンプしますか?";
"Unskip" = "スキップしない"; "Unskip" = "スキップしない";
/* Developer section */ /* Developer section */
@@ -540,7 +540,7 @@
"Disable" = "無効化"; "Disable" = "無効化";
"Disabled" = "無効"; "Disabled" = "無効";
"PlaybackSpeed" = "再生速度"; "PlaybackSpeed" = "再生速度";
"SpeedPreserved" = "Speed locked at %@"; "SpeedPreserved" = "再生速度が%@にロックされました。";
"ResetSpeed" = "リセット"; "ResetSpeed" = "リセット";
"Toast.Brightness" = "明るさ"; "Toast.Brightness" = "明るさ";
@@ -599,21 +599,21 @@
"RetryLogin" = "回避策が有効になりました。\n\nもう一度お試しください。"; "RetryLogin" = "回避策が有効になりました。\n\nもう一度お試しください。";
"LoginInfo" = "Google アカウントへのログインに成功した後、アプリの再起動が必要です。"; "LoginInfo" = "Google アカウントへのログインに成功した後、アプリの再起動が必要です。";
"OpenLink" = "Open link"; "OpenLink" = "リンクを開く";
"LinkDetected" = "A YouTube-related link was detected. Would you like to open it in YouTube?"; "LinkDetected" = "YouTube 関連のリンクが検出されました。YouTube で開きますか?";
"SbWhitelist" = "Whitelist"; "SbWhitelist" = "ホワイトリスト";
"SbAddToWhitelist" = "Add to the whitelist"; "SbAddToWhitelist" = "ホワイトリストに登録";
"Sb.Whitelisted" = "Added to the whitelist"; "Sb.Whitelisted" = "ホワイトリストに登録しました。";
"SbRemoveFromWhitelist" = "Remove from the whitelist"; "SbRemoveFromWhitelist" = "ホワイトリストから削除";
"Sb.Whitelist" = "Whitelisted channels"; "Sb.Whitelist" = "ホワイトリストに登録されたチャンネル";
"Sb.Channels" = "Channels"; "Sb.Channels" = "チャンネル";
"Sb.ChannelsHere" = "Whitelisted channels appear here"; "Sb.ChannelsHere" = "ホワイトリストに登録されたチャンネルがここに表示されます。";
"SortType" = "Sort type"; "SortType" = "並べ替えの種類";
"Sb.Newest" = "Newest first"; "Sb.Newest" = "新しい順";
"Sb.Oldest" = "Oldest first"; "Sb.Oldest" = "古い順";
"Sb.Alphabetical" = "Alphabetical (A-Z)"; "Sb.Alphabetical" = "アルファベット順 (A ~ Z)";
"Sb.AlphabeticalRev" = "Reverse (Z-A)"; "Sb.AlphabeticalRev" = "アルファベット順 (逆順)";
"Welcome.Download" = "メディアのダウンロード"; "Welcome.Download" = "メディアのダウンロード";
"Welcome.DownloadDesc" = "動画、ショート、オーディオ、プロフィール画像など、お気に入りのコンテンツをダウンロードできます。興味深い投稿やコメントをコピーしたり、画像として保存したりできます。"; "Welcome.DownloadDesc" = "動画、ショート、オーディオ、プロフィール画像など、お気に入りのコンテンツをダウンロードできます。興味深い投稿やコメントをコピーしたり、画像として保存したりできます。";
@@ -633,16 +633,3 @@
"Conflicts.CloseYT" = "YouTube を閉じる"; "Conflicts.CloseYT" = "YouTube を閉じる";
"DonationReminder" = "皆さんのご支援が YouTube Plus の更なる改善に繋がります。\n\n寄付を行うか、YouTube Plus 設定でこれらの通知を無効にすることもできます。ご支援ありがとうございます💜"; "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"; "Interface" = "Interfejs";
"OledTheme" = "Motyw OLED"; "OledTheme" = "Motyw OLED";
"OledThemeDesc" = "Zamienia wszystkie ciemne kolory na czarne"; "OledThemeDesc" = "Zamienia wszystkie ciemne kolory na czarne";
"OledKeyboard" = "Klawiatura oled"; "OledKeyboard" = "Klawiatura OLED";
"OledKeyboardDesc" = "Stosuje czarny motyw oled dla ciemnej klawiatury"; "OledKeyboardDesc" = "Stosuje czarny motyw OLED dla ciemnej klawiatury";
"NoSearchHistory" = "Ukryj historię wyszukiwania"; "NoSearchHistory" = "Ukryj historię wyszukiwania";
"NoSearchHistoryDesc" = "Wizualnie ukrywa historię wyszukiwania i sugestie. Uwaga: Twoja historia wyszukiwania będzie nadal dostępna w innych klientach YouTube."; "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"; "StickSortComments" = "Przypnij nagłówek komentarzy";
@@ -335,9 +335,9 @@
/* Interface options */ /* Interface options */
"Interface" = "Интерфейс"; "Interface" = "Интерфейс";
"OledTheme" = "Oled режим"; "OledTheme" = "OLED режим";
"OledThemeDesc" = "Заменяет темные цвета черным"; "OledThemeDesc" = "Заменяет темные цвета черным";
"OledKeyboard" = "Oled клавиатура"; "OledKeyboard" = "OLED клавиатура";
"OledKeyboardDesc" = "Применяет черную тему для темной клавиатуры"; "OledKeyboardDesc" = "Применяет черную тему для темной клавиатуры";
"NoSearchHistory" = "Скрыть историю поиска"; "NoSearchHistory" = "Скрыть историю поиска";
"NoSearchHistoryDesc" = "Визуально скрывает историю поиска и подсказок. Данная опция не отменяет трекинг вашей истории поиска."; "NoSearchHistoryDesc" = "Визуально скрывает историю поиска и подсказок. Данная опция не отменяет трекинг вашей истории поиска.";
@@ -335,10 +335,10 @@
/* Interface options */ /* Interface options */
"Interface" = "Arayüz"; "Interface" = "Arayüz";
"OledTheme" = "Oled teması"; "OledTheme" = "OLED teması";
"OledThemeDesc" = "Tüm koyu renkleri siyaha çevirir"; "OledThemeDesc" = "Tüm koyu renkleri siyaha çevirir";
"OledKeyboard" = "Oled klavye"; "OledKeyboard" = "OLED klavye";
"OledKeyboardDesc" = "Koyu klavye için oled temayı uygular"; "OledKeyboardDesc" = "Koyu klavye için OLED temayı uygular";
"NoSearchHistory" = "Arama geçmişini gizle"; "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."; "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"; "StickSortComments" = "Yorum başlığını sabitle";
@@ -92,17 +92,17 @@
/* Player options */ /* Player options */
"Player" = "Trình phát"; "Player" = "Trình phát";
"PlaybackQualityOnWiFi" = "Chất lượng video qua Wi-Fi"; "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"; "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ụ đề"; "PreferredCaptions" = "Lựa chọn phụ đề";
"Original" = "Nguyên bản"; "Original" = "Nguyên bản";
"Custom" = "Tự chọn"; "Custom" = "Tự chọn";
"CustomAudioTrack" = "Bản âm thanh đã 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"; "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"; "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."; "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"; "Player.Actions" = "Hành động";
"DefaultPlaybackRate" = "Tốc độ phát mặc định"; "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"; "BackgroundPlayback" = "Phát trong nền";
"BackgroundPlaybackDesc" = "Tiếp tục phát khi thoát ứng dụng."; "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"; "Miniplayer" = "Dùng trình phát thu nhỏ với mọi video";
@@ -207,15 +207,15 @@
"Player.Gestures" = "Cử chỉ"; "Player.Gestures" = "Cử chỉ";
"CompactToast" = "Thu gọn biểu thị"; "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"; "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"; "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"; "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."; "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"; "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ỉ"; "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."; "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"; "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"; "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."; "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"; "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"; "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 options */
"Shorts" = "Video ngắn (Shorts)"; "Shorts" = "Video ngắn (Shorts)";
@@ -311,7 +311,7 @@
/* Tab bar options */ /* Tab bar options */
"Tabbar" = "Thanh tab"; "Tabbar" = "Thanh tab";
"Startup" = "Trang khởi động"; "Startup" = "Tab khởi động";
"FEwhat_to_watch" = "Trang chủ"; "FEwhat_to_watch" = "Trang chủ";
"FEexplore" = "Khám phá"; "FEexplore" = "Khám phá";
"FEshorts" = "Shorts"; "FEshorts" = "Shorts";
@@ -323,7 +323,7 @@
"VLWL" = "Xem sau"; "VLWL" = "Xem sau";
"TranslucentBar" = "Thanh tab trong suốt"; "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"; "RemoveIndicators" = "Ẩn biểu thị hiện hoạt";
"ActiveTabs" = "Tab đang hiển thị"; "ActiveTabs" = "Tab đang hiển thị";
@@ -338,7 +338,7 @@
"OledTheme" = "Chủ đề OLED"; "OledTheme" = "Chủ đề OLED";
"OledThemeDesc" = "Chuyển tất cả màu tối thành màu đen tuyền."; "OledThemeDesc" = "Chuyển tất cả màu tối thành màu đen tuyền.";
"OledKeyboard" = "Bàn phím OLED"; "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"; "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."; "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"; "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)."; "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"; "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"; "InterfaceStyle" = "Kiểu giao diện";
@@ -365,7 +365,7 @@
"NoShareChunk" = "Bỏ tham số theo dõi"; "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."; "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"; "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"; "ContextMenu" = "Menu ngữ cảnh";
"NativeShare" = "Bảng chia sẻ hệ thống"; "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."; "RemoveReportMenuDesc" = "Ẩn tùy chọn báo vi phạm nội dung khỏi menu.";
"RemoveRemixMenu" = "Ẩn \"Phối lại\""; "RemoveRemixMenu" = "Ẩn \"Phối lại\"";
"RemoveRemixMenuDesc" = "Ẩn tùy chọn phối lại video khỏi menu."; "RemoveRemixMenuDesc" = "Ẩn tùy chọn phối lại video khỏi menu.";
"RemoveYTMMenu" = "Ẩn \"YouTube Music\""; "RemoveYTMMenu" = "Ẩn \"Nghe nhạc trên YouTube Music\"";
"RemoveYTMMenuDesc" = "Ẩn tùy chọn \"Nghe nhạc trên YouTube Music\" khỏi menu."; "RemoveYTMMenuDesc" = "Ẩn tùy chọn mở nội dung trong YouTube Music khỏi menu.";
/* SponsorBlock settings */ /* SponsorBlock settings */
"EnableSponsorBlock" = "Bật"; "EnableSponsorBlock" = "Bật";
@@ -401,7 +401,7 @@
"ShowNotifications" = "Hiện thông báo"; "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."; "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"; "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ỏ"; "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ỏ."; "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"; "SegmentSkipAudio" = "Thông báo âm thanh";
@@ -448,11 +448,11 @@
"Sb.Display" = "Chỉ hiển thị"; "Sb.Display" = "Chỉ hiển thị";
"PublicUserID" = "ID người dùng công khai"; "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ị"; "TapToReveal" = "Nhấn để hiển thị";
"Save" = "Lưu"; "Save" = "Lưu";
"Error.SbPublicID" = "ID người dùng công khai phải chứa đúng 64 ký tự"; "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_sponsor" = "phân đoạn tài trợ";
"sb_intro" = "phân đoạn giới thiệu"; "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"; "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 ❤"; "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"; "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"; "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"; "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"; "Contributors" = "Người đóng góp";
"DevContribution" = "Đóng góp phát triển"; "DevContribution" = "Đóng góp phát triển";
"SpecialThanks" = "Đặc biệt cảm ơ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"; "Localizations" = "Tác giả các bản dịch";
"ChineseSimplified" = "Tiếng Trung (giản thể)"; "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."; "ClearCacheAtStartDesc" = "Tự động xóa bộ nhớ đệm khi khởi động ứng dụng.";
"ClearCache" = "Xóa bộ nhớ đệm"; "ClearCache" = "Xóa bộ nhớ đệm";
"NoDonationReminder" = "Tắt nhắc nhở quyên góp"; "NoDonationReminder" = "Tắt nhắc nhở ủng hộ";
"NoDonationReminderDesc" = "Tắt lời nhắc quyên góp, thông báo này hiếm khi được hiển thị."; "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."; "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"; "ShortsModeTurnedOff" = "Đã tắt chế độ video ngắn";
@@ -548,8 +548,8 @@
"Toast.Volume" = "Âm lượng"; "Toast.Volume" = "Âm lượng";
"SelectAction" = "Chọn tác vụ"; "SelectAction" = "Chọn tác vụ";
"DownloadVideo" = "Tải xuống video"; "DownloadVideo" = "Tải video xuống";
"DownloadAudio" = "Tải xuống âm thanh"; "DownloadAudio" = "Tải âm thanh xuống";
"SaveImage" = "Lưu hình ảnh"; "SaveImage" = "Lưu hình ảnh";
"CopyInformation" = "Sao chép thông tin"; "CopyInformation" = "Sao chép thông tin";
"CopyChannelName" = "Sao chép tên kênh"; "CopyChannelName" = "Sao chép tên kênh";
@@ -596,7 +596,7 @@
"ParsingCaptions" = "Đang phân giải phụ đề"; "ParsingCaptions" = "Đang phân giải phụ đề";
"ParsingTranscript" = "Đang phân giải bản chép lời"; "ParsingTranscript" = "Đang phân giải bản chép lời";
"Converting" = "Đang chuyển đổ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"; "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"; "OpenLink" = "Mở liên kết";
@@ -610,8 +610,8 @@
"Sb.Channels" = "Kênh"; "Sb.Channels" = "Kênh";
"Sb.ChannelsHere" = "Kênh đã thêm vào danh sách trắng sẽ hiển thị tại đây"; "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"; "SortType" = "Sắp xếp theo";
"Sb.Newest" = "Mới nhất lên đầu"; "Sb.Newest" = "Mới nhất";
"Sb.Oldest" = "Cũ nhất lên đầu"; "Sb.Oldest" = "Cũ nhất";
"Sb.Alphabetical" = "Bảng chữ cái (A-Z)"; "Sb.Alphabetical" = "Bảng chữ cái (A-Z)";
"Sb.AlphabeticalRev" = "Đảo ngược (Z-A)"; "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.AcceptRisks" = "Tôi chấp nhận mọi rủi ro";
"Conflicts.CloseYT" = "Thoát YouTube"; "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💜"; "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 💜";
/* 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 độ";
@@ -372,8 +372,8 @@
"NativeShareDesc" = "使用系统原生分享菜单来分享媒体。"; "NativeShareDesc" = "使用系统原生分享菜单来分享媒体。";
"RemoveCommentGuidelines" = "删除指南"; "RemoveCommentGuidelines" = "删除指南";
"RemoveCommentGuidelinesDesc" = "从评论板块删除固定指南。"; "RemoveCommentGuidelinesDesc" = "从评论板块删除固定指南。";
"RemovePlayNext" = "删除“播放队列中的下一个”"; "RemovePlayNext" = "删除“加入队列,接下来就播放”";
"RemovePlayNextDesc" = "从菜单中删除“播放队列中的下一个”选项。"; "RemovePlayNextDesc" = "从菜单中删除“加入队列,接下来就播放”选项。";
"RemoveDownloadMenu" = "删除“下载”"; "RemoveDownloadMenu" = "删除“下载”";
"RemoveDownloadMenuDesc" = "从菜单中删除“下载”选项。"; "RemoveDownloadMenuDesc" = "从菜单中删除“下载”选项。";
"RemoveWatchLaterMenu" = "删除“保存到稍后观看”"; "RemoveWatchLaterMenu" = "删除“保存到稍后观看”";
@@ -386,8 +386,8 @@
"RemoveNotInterestedMenuDesc" = "从菜单中删除“不感兴趣”选项。"; "RemoveNotInterestedMenuDesc" = "从菜单中删除“不感兴趣”选项。";
"RemoveDontRecommendMenu" = "删除“不推荐此频道”"; "RemoveDontRecommendMenu" = "删除“不推荐此频道”";
"RemoveDontRecommendMenuDesc" = "从菜单中删除“不推荐此频道”选项。"; "RemoveDontRecommendMenuDesc" = "从菜单中删除“不推荐此频道”选项。";
"RemoveFeedbackMenu" = "删除“反馈”"; "RemoveFeedbackMenu" = "删除“发送反馈”";
"RemoveFeedbackMenuDesc" = "从菜单中删除“反馈”选项。"; "RemoveFeedbackMenuDesc" = "从菜单中删除“发送反馈”选项。";
"RemoveReportMenu" = "删除“举报”"; "RemoveReportMenu" = "删除“举报”";
"RemoveReportMenuDesc" = "从菜单中删除“举报”选项。"; "RemoveReportMenuDesc" = "从菜单中删除“举报”选项。";
"RemoveRemixMenu" = "删除“混剪”"; "RemoveRemixMenu" = "删除“混剪”";
@@ -21,7 +21,7 @@
"PostDownloadDesc" = "影片成功下載完成後,執行選定的動作"; "PostDownloadDesc" = "影片成功下載完成後,執行選定的動作";
"SaveToPhotos" = "儲存至照片App"; "SaveToPhotos" = "儲存至照片App";
"Share" = "分享"; "Share" = "分享";
"Copy" = "Copy"; "Copy" = "複製";
"Ask" = "詢問"; "Ask" = "詢問";
"DownloadCompleted" = "下載完成"; "DownloadCompleted" = "下載完成";
@@ -91,18 +91,18 @@
/* Player options */ /* Player options */
"Player" = "播放器"; "Player" = "播放器";
"PlaybackQualityOnWiFi" = "使用Wi-Fi時的影片畫質"; "PlaybackQualityOnWiFi" = "使用 Wi-Fi 時的影片畫質";
"PlaybackQualityOnWiFiDesc" = "Automatically applies the selected quality when streaming over Wi-Fi"; "PlaybackQualityOnWiFiDesc" = "透過 Wi-Fi 連線時自動套用所選畫質";
"PlaybackQualityOnCellular" = "使用行動網路時的影片畫質"; "PlaybackQualityOnCellular" = "使用行動網路時的影片畫質";
"PlaybackQualityOnCellularDesc" = "Automatically applies the selected quality when streaming over mobile data"; "PlaybackQualityOnCellularDesc" = "透過行動網路連線時自動套用所選畫質";
"PreferredCaptions" = "偏好字幕"; "PreferredCaptions" = "偏好字幕";
"Original" = "原始"; "Original" = "原始";
"Custom" = "手動選擇"; "Custom" = "手動選擇";
"CustomAudioTrack" = "選擇音軌"; "CustomAudioTrack" = "選擇音軌";
"CustomAudioTrackDesc" = "Specifies the preferred audio track language to use for playback, if available"; "CustomAudioTrackDesc" = "指定播放時優先使用的音軌語言(如果可用)";
"CustomCaptions" = "選擇字幕"; "CustomCaptions" = "選擇字幕";
"CustomCaptionsDesc" = "Specifies the preferred captions language to display, if available"; "CustomCaptionsDesc" = "指定播放時優先顯示的字幕語言(如果可用)";
"AutoGenCaps" = "自動產生字幕"; "AutoGenCaps" = "自動產生字幕";
"AutoGenCapsDesc" = "若找不到選定的字幕,YouTube Plus會嘗試選擇原始字幕的翻譯或自動產生字幕的翻譯版本"; "AutoGenCapsDesc" = "若找不到選定的字幕,YouTube Plus會嘗試選擇原始字幕的翻譯或自動產生字幕的翻譯版本";
@@ -187,7 +187,7 @@
"Player.Actions" = "操作"; "Player.Actions" = "操作";
"DefaultPlaybackRate" = "預設播放速度"; "DefaultPlaybackRate" = "預設播放速度";
"DefaultPlaybackRateDesc" = "Overrides the default playback speed"; "DefaultPlaybackRateDesc" = "修改預設播放速度";
"BackgroundPlayback" = "背景播放"; "BackgroundPlayback" = "背景播放";
"BackgroundPlaybackDesc" = "啟用背景播放"; "BackgroundPlaybackDesc" = "啟用背景播放";
"Miniplayer" = "啟用迷你播放器"; "Miniplayer" = "啟用迷你播放器";
@@ -206,20 +206,20 @@
"ExitFullscreenDesc" = "影片播放結束時退出全螢幕模式"; "ExitFullscreenDesc" = "影片播放結束時退出全螢幕模式";
"Player.Gestures" = "手勢"; "Player.Gestures" = "手勢";
"CompactToast" = "Compact toast"; "CompactToast" = "簡潔提示";
"CompactToastDesc" = "Displays a compact-style toast for player gestures"; "CompactToastDesc" = "為播放器操作顯示簡潔風格的提示";
"LeftSideGesture" = "左邊手勢"; "LeftSideGesture" = "左邊手勢";
"LeftSideGestureDesc" = "Adjusts the selected setting by swiping vertically on the left side of the screen"; "LeftSideGestureDesc" = "透過在螢幕左邊垂直滑動來調整選擇的設定";
"RightSideGesture" = "右邊手勢"; "RightSideGesture" = "右邊手勢";
"RightSideGestureDesc" = "Adjusts the selected setting by swiping vertically on the right side of the screen"; "RightSideGestureDesc" = "透過在螢幕右邊垂直滑動來調整選擇的設定";
"ActivationAreaWidth" = "手勢啟動寬度"; "ActivationAreaWidth" = "手勢啟動寬度";
"ActivationAreaWidthDesc" = "此值決定螢幕左右兩側的手勢識別區域(單位:像素)\n\n最大值允許為螢幕寬度的三分之一\n\n調整此設定有助於防止在嘗試最小化或展開播放器時意外啟動"; "ActivationAreaWidthDesc" = "此值決定螢幕左右兩側的手勢識別區域(單位:像素)\n\n最大值允許為螢幕寬度的三分之一\n\n調整此設定有助於防止在嘗試最小化或展開播放器時意外啟動";
"HoldToSpeed" = "按住加速"; "HoldToSpeed" = "按住加速";
"HoldToSpeedDesc" = "Sets the playback speed triggered by a long press on the player"; "HoldToSpeedDesc" = "設定長按播放器時觸發的播放速度";
"AdjustWithFinger" = "調整速度"; "AdjustWithFinger" = "調整速度";
"AdjustWithFingerDesc" = "透過在播放器上長按並上下滑動手指來調整播放速度"; "AdjustWithFingerDesc" = "透過在播放器上長按並上下滑動手指來調整播放速度";
"PreserveSpeed" = "Lock speed"; "PreserveSpeed" = "鎖定速度";
"PreserveSpeedDesc" = "Locks at adjusted speed after gesture completion."; "PreserveSpeedDesc" = "在手勢完成後鎖定調整後的速度";
"SeekAnywhere" = "滑動快轉/倒轉"; "SeekAnywhere" = "滑動快轉/倒轉";
"SeekAnywhereDesc" = "允許透過左右滑動來控制播放進度"; "SeekAnywhereDesc" = "允許透過左右滑動來控制播放進度";
"SeekMethod" = "快轉/倒轉方式"; "SeekMethod" = "快轉/倒轉方式";
@@ -330,7 +330,7 @@
"InactiveTabs" = "隱藏標籤頁"; "InactiveTabs" = "隱藏標籤頁";
"HideLibraryFooter" = "長按首頁標籤可以顯示或隱藏\"個人中心\""; "HideLibraryFooter" = "長按首頁標籤可以顯示或隱藏\"個人中心\"";
"Warning" = "警告"; "Warning" = "警告";
"AtLeastOneTab" = "At least one tab must remain active"; "AtLeastOneTab" = "必須至少保持一個標籤頁為啟用狀態";
"TabsCountRestricted" = "最多只能設定顯示六個標籤頁"; "TabsCountRestricted" = "最多只能設定顯示六個標籤頁";
/* Interface options */ /* Interface options */
@@ -364,40 +364,42 @@
"Other" = "Other"; "Other" = "Other";
"NoShareChunk" = "移除分享識別碼"; "NoShareChunk" = "移除分享識別碼";
"NoShareChunkDesc" = "從分享連結中移除\"si=identifier\"參數。這是一個替代「原生分享選單」的好選擇,因為YouTube不斷改善其分享選單。"; "NoShareChunkDesc" = "從分享連結中移除\"si=identifier\"參數。這是一個替代「原生分享選單」的好選擇,因為YouTube不斷改善其分享選單。";
"AutoCheckLinks" = "Auto-check clipboard"; "AutoCheckLinks" = "自動檢查剪貼簿";
"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\""; "AutoCheckLinksDesc" = "每次開啟應用程式時,檢查剪貼簿中的 YouTube 相關連結。\n為確保正常運作,請前往 iOS 設定 → YouTube → 從其他App貼上,並選擇「允許」";
"ContextMenu" = "上下文選單"; "ContextMenu" = "上下文選單";
"NativeShare" = "原生分享選單"; "NativeShare" = "原生分享選單";
"NativeShareDesc" = "使用系統分享選單分享媒體"; "NativeShareDesc" = "使用系統分享選單分享媒體";
"RemoveCommentGuidelines" = "移除社群規範"; "RemoveCommentGuidelines" = "移除社群規範";
"RemoveCommentGuidelinesDesc" = "移除留言區置頂的社群規範"; "RemoveCommentGuidelinesDesc" = "移除留言區置頂的社群規範";
"RemovePlayNext" = "移除「播放下一個」"; "RemovePlayNext" = "移除\"加入待播清單接著播放\"";
"RemovePlayNextDesc" = "從選單移除「播放下一個」"; "RemovePlayNextDesc" = "從選單移除\"加入待播清單接著播放\"";
"RemoveDownloadMenu" = "移除下載影片"; "RemoveDownloadMenu" = "移除\"下載影片\"";
"RemoveDownloadMenuDesc" = "從選單移除下載影片選項"; "RemoveDownloadMenuDesc" = "從選單移除\"下載影片\"選項";
"RemoveWatchLaterMenu" = "移除儲存至稍後觀看清單"; "RemoveWatchLaterMenu" = "移除\"儲存至稍後觀看清單\"";
"RemoveWatchLaterMenuDesc" = "從選單移除儲存至稍後觀看清單選項"; "RemoveWatchLaterMenuDesc" = "從選單移除\"儲存至稍後觀看清單\"選項";
"RemoveSaveToPlaylistMenu" = "移除儲存至播放清單"; "RemoveSaveToPlaylistMenu" = "移除\"儲存至播放清單\"";
"RemoveSaveToPlaylistMenuDesc" = "從選單移除儲存至播放清單選項"; "RemoveSaveToPlaylistMenuDesc" = "從選單移除\"儲存至播放清單\"選項";
"RemoveShareMenu" = "移除「分享」"; "RemoveShareMenu" = "移除\"分享\"";
"RemoveShareMenuDesc" = "從選單移除「分享」選項"; "RemoveShareMenuDesc" = "從選單移除\"分享\"選項";
"RemoveNotInterestedMenu" = "移除不感興趣"; "RemoveNotInterestedMenu" = "移除\"不感興趣\"";
"RemoveNotInterestedMenuDesc" = "從選單移除不感興趣選項"; "RemoveNotInterestedMenuDesc" = "從選單移除\"不感興趣\"選項";
"RemoveDontRecommendMenu" = "移除不要推薦這個頻道"; "RemoveDontRecommendMenu" = "移除\"不要推薦這個頻道\"";
"RemoveDontRecommendMenuDesc" = "從選單移除不要推薦這個頻道選項"; "RemoveDontRecommendMenuDesc" = "從選單移除\"不要推薦這個頻道\"選項";
"RemoveReportMenu" = "移除「檢舉」"; "RemoveFeedbackMenu" = "移除\"提供意見\"";
"RemoveReportMenuDesc" = "從選單移除「檢舉」選項"; "RemoveFeedbackMenuDesc" = "從選單移除\"提供意見\"選項";
"RemoveRemixMenu" = "Remove \"Remix\""; "RemoveReportMenu" = "移除\"檢舉\"";
"RemoveRemixMenuDesc" = "Removes \"Remix\" option from menu."; "RemoveReportMenuDesc" = "從選單移除\"檢舉\"選項";
"RemoveYTMMenu" = "Remove \"YouTube Music\""; "RemoveRemixMenu" = "移除\"Remix\"";
"RemoveYTMMenuDesc" = "Removes \"Listen with YouTube Music\" option from menu."; "RemoveRemixMenuDesc" = "從選單移除\"Remix\"選項";
"RemoveYTMMenu" = "移除\"YouTube Music\"";
"RemoveYTMMenuDesc" = "從選單移除\"用 YouTube Music 聽音樂\"選項";
/* SponsorBlock settings */ /* SponsorBlock settings */
"EnableSponsorBlock" = "啟用"; "EnableSponsorBlock" = "啟用";
"EnableSponsorBlockDesc" = "SponsorBlock擴充功能"; "EnableSponsorBlockDesc" = "SponsorBlock擴充功能";
"SbPlayerButton" = "Display button in overlay"; "SbPlayerButton" = "顯示按鈕";
"SbPlayerButtonDesc" = "Adds SponsorBlock button in players overlay."; "SbPlayerButtonDesc" = "在播放器中新增 SponsorBlock 按鈕";
"ShowNotifications" = "顯示通知"; "ShowNotifications" = "顯示通知";
"ShowNotificationsDesc" = "顯示自動跳過片段的通知。需要手動跳過的類別通知會始終顯示。"; "ShowNotificationsDesc" = "顯示自動跳過片段的通知。需要手動跳過的類別通知會始終顯示。";
"SegmentsInFeedPlayer" = "播放器中顯示片段"; "SegmentsInFeedPlayer" = "播放器中顯示片段";
@@ -447,12 +449,12 @@
"Sb.Ask" = "詢問"; "Sb.Ask" = "詢問";
"Sb.Display" = "在播放器中顯示"; "Sb.Display" = "在播放器中顯示";
"PublicUserID" = "Public UserID"; "PublicUserID" = "公開使用者 ID";
"PrivateUserID" = "Private UserID"; "PrivateUserID" = "私人使用者 ID";
"TapToReveal" = "Tap to reveal"; "TapToReveal" = "點擊顯示";
"Save" = "Save"; "Save" = "儲存";
"Error.SbPublicID" = "The public user ID must contain exactly 64 characters"; "Error.SbPublicID" = "公開使用者 ID 必須正好包含 64 個字元";
"Error.SbPrivateID" = "The private (local) user ID must contain at least 32 characters"; "Error.SbPrivateID" = "私人(本機)使用者 ID 必須至少包含 32 個字元";
"sb_sponsor" = "贊助片段"; "sb_sponsor" = "贊助片段";
"sb_intro" = "開場片段"; "sb_intro" = "開場片段";
@@ -461,14 +463,14 @@
"sb_selfpromo" = "自我推廣片段"; "sb_selfpromo" = "自我推廣片段";
"sb_music_offtopic" = "非音樂片段"; "sb_music_offtopic" = "非音樂片段";
"sb_preview" = "預覽片段"; "sb_preview" = "預覽片段";
"sb_poi_highlight" = "Highlight"; "sb_poi_highlight" = "精彩片段";
"sb_filler" = "填充片段"; "sb_filler" = "填充片段";
"SegmentDetected" = "%@ detected.\n%@"; "SegmentDetected" = "%@ 偵測到\n%@";
"SegmentSkipped" = "%@ has been skipped"; "SegmentSkipped" = "%@ 已被跳過";
"SkippedToSegment" = "Jumped to %@"; "SkippedToSegment" = "已跳到 %@";
"SkipSegment" = "Would you like to skip the segment?"; "SkipSegment" = "您想跳過這個片段嗎?";
"SkipToSegment" = "Would you like to jump to the highlight?"; "SkipToSegment" = "您想跳轉到精彩片段嗎?";
"Unskip" = "取消跳過"; "Unskip" = "取消跳過";
/* Developer section */ /* Developer section */
@@ -540,7 +542,7 @@
"Disable" = "停用"; "Disable" = "停用";
"Disabled" = "已停用"; "Disabled" = "已停用";
"PlaybackSpeed" = "播放速度"; "PlaybackSpeed" = "播放速度";
"SpeedPreserved" = "Speed locked at %@"; "SpeedPreserved" = "速度鎖定在 %@";
"ResetSpeed" = "重置播放速度"; "ResetSpeed" = "重置播放速度";
"Toast.Brightness" = "亮度"; "Toast.Brightness" = "亮度";
@@ -599,21 +601,21 @@
"RetryLogin" = "已啟用登入權限修復\n\n請再次登入"; "RetryLogin" = "已啟用登入權限修復\n\n請再次登入";
"LoginInfo" = "成功登錄Google帳戶後需要重新啟動應用程式"; "LoginInfo" = "成功登錄Google帳戶後需要重新啟動應用程式";
"OpenLink" = "Open link"; "OpenLink" = "開啟連結";
"LinkDetected" = "A YouTube-related link was detected. Would you like to open it in YouTube?"; "LinkDetected" = "偵測到 YouTube 相關連結。是否要在 YouTube 中開啟?";
"SbWhitelist" = "Whitelist"; "SbWhitelist" = "白名單";
"SbAddToWhitelist" = "Add to the whitelist"; "SbAddToWhitelist" = "新增至白名單";
"Sb.Whitelisted" = "Added to the whitelist"; "Sb.Whitelisted" = "已新增至白名單";
"SbRemoveFromWhitelist" = "Remove from the whitelist"; "SbRemoveFromWhitelist" = "從白名單中移除";
"Sb.Whitelist" = "Whitelisted channels"; "Sb.Whitelist" = "白名單頻道";
"Sb.Channels" = "Channels"; "Sb.Channels" = "頻道";
"Sb.ChannelsHere" = "Whitelisted channels appear here"; "Sb.ChannelsHere" = "白名單頻道將在此顯示";
"SortType" = "Sort type"; "SortType" = "排序方式";
"Sb.Newest" = "Newest first"; "Sb.Newest" = "最新優先";
"Sb.Oldest" = "Oldest first"; "Sb.Oldest" = "最舊優先";
"Sb.Alphabetical" = "Alphabetical (A-Z)"; "Sb.Alphabetical" = "依字母順序 (A-Z)";
"Sb.AlphabeticalRev" = "Reverse (Z-A)"; "Sb.AlphabeticalRev" = "依字母倒序 (Z-A)";
"Welcome.Download" = "下載媒體"; "Welcome.Download" = "下載媒體";
"Welcome.DownloadDesc" = "下載您喜愛的內容,不論是影片、Shorts、音訊或個人檔案照片。複製有趣的貼文和留言,或將它們儲存為圖片。"; "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.