From 2860431abed104c76ef06ebff4944c83ad064830 Mon Sep 17 00:00:00 2001 From: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> Date: Wed, 17 May 2023 10:24:15 -0400 Subject: [PATCH 01/36] fix live chat error (#3558) --- .../components/watch-video-live-chat/watch-video-live-chat.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/renderer/components/watch-video-live-chat/watch-video-live-chat.js b/src/renderer/components/watch-video-live-chat/watch-video-live-chat.js index 987920a3b..5eec0c10e 100644 --- a/src/renderer/components/watch-video-live-chat/watch-video-live-chat.js +++ b/src/renderer/components/watch-video-live-chat/watch-video-live-chat.js @@ -212,7 +212,7 @@ export default defineComponent({ const parsedComment = { message: autolinker.link(parseLocalTextRuns(comment.message.runs, 20)), author: { - name: comment.author.name.text, + name: comment.author.name, thumbnailUrl: comment.author.thumbnails.at(-1).url, isOwner: comment.author.id === this.channelId, isModerator: comment.author.is_moderator, @@ -222,7 +222,7 @@ export default defineComponent({ if (badge) { parsedComment.badge = { - url: badge.custom_thumbnail.at(-1).url, + url: badge.custom_thumbnail.at(-1)?.url, tooltip: badge.tooltip ?? '' } } From adaa830ea6cbb6ded5a1e3e66b00202881e54434 Mon Sep 17 00:00:00 2001 From: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> Date: Wed, 17 May 2023 10:25:13 -0400 Subject: [PATCH 02/36] Remove empty `Videos` in locale files (#3546) --- static/locales/as.yaml | 3 --- static/locales/hi.yaml | 3 --- static/locales/ku.yaml | 3 --- static/locales/or.yaml | 3 --- static/locales/sat.yaml | 3 --- 5 files changed, 15 deletions(-) diff --git a/static/locales/as.yaml b/static/locales/as.yaml index cf7de7984..66d09d3b9 100644 --- a/static/locales/as.yaml +++ b/static/locales/as.yaml @@ -48,9 +48,6 @@ Video: Published: Jun: '' Months: '' -Videos: - #& Sort By -{} Change Format: Use Dash Formats: '' Comments: diff --git a/static/locales/hi.yaml b/static/locales/hi.yaml index ccbaf516d..5d694e8b9 100644 --- a/static/locales/hi.yaml +++ b/static/locales/hi.yaml @@ -204,9 +204,6 @@ Video: Published: Sep: '' Year: '' -Videos: - #& Sort By -{} Change Format: Change Media Formats: '' Share: diff --git a/static/locales/ku.yaml b/static/locales/ku.yaml index 1d821ed09..41c9858d7 100644 --- a/static/locales/ku.yaml +++ b/static/locales/ku.yaml @@ -194,8 +194,5 @@ Channel: Playlists: {} Video: 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': '' -Videos: - #& Sort By -{} Comments: Replies: '' diff --git a/static/locales/or.yaml b/static/locales/or.yaml index 27d98b786..d474c4ee3 100644 --- a/static/locales/or.yaml +++ b/static/locales/or.yaml @@ -138,9 +138,6 @@ Video: External Player: {} Stats: Resolution: '' -Videos: - #& Sort By -{} Toggle Theatre Mode: '' Share: YouTube URL copied to clipboard: '' diff --git a/static/locales/sat.yaml b/static/locales/sat.yaml index 730a87b79..1021da308 100644 --- a/static/locales/sat.yaml +++ b/static/locales/sat.yaml @@ -61,9 +61,6 @@ Video: Published: Oct: '' Years: '' -Videos: - #& Sort By -{} Change Format: Use Dash Formats: '' Share: From ed1367ce9b73b52fdcf17f9db5c3904e48e6db53 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Wed, 17 May 2023 16:25:50 +0200 Subject: [PATCH 03/36] Update translation files Updated by "Remove blank strings" hook in Weblate. Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ --- static/locales/as.yaml | 19 +------------------ static/locales/az.yaml | 22 +--------------------- static/locales/bs.yaml | 5 ----- static/locales/ca.yaml | 1 - static/locales/eo.yaml | 13 ------------- static/locales/hi.yaml | 21 ++------------------- static/locales/ku.yaml | 6 +----- static/locales/la.yaml | 20 ++------------------ static/locales/ne.yaml | 27 +++------------------------ static/locales/or.yaml | 22 +--------------------- static/locales/sat.yaml | 20 +------------------- static/locales/si.yaml | 18 ------------------ static/locales/sr.yaml | 10 ---------- static/locales/tok.yaml | 11 +---------- 14 files changed, 13 insertions(+), 202 deletions(-) diff --git a/static/locales/as.yaml b/static/locales/as.yaml index 66d09d3b9..e362d3bcf 100644 --- a/static/locales/as.yaml +++ b/static/locales/as.yaml @@ -13,44 +13,27 @@ Select all: 'সকলোক বাছক' Reload: 'সতেজ কৰক' Force Reload: 'বলেৰে সতেজ কৰক' Search Filters: - Sort By: - Upload Date: '' Duration: Long (> 20 minutes): '' # On Search Page Settings: # On Settings Page General Settings: - General Settings: '' 'Invidious Instance (Default is https://invidious.snopyta.org)': '' - Theme Settings: - Main Color Theme: - Cyan: '' + Theme Settings: {} Player Settings: Proxy Videos Through Invidious: '' - Default Quality: - 1080p: '' Subscription Settings: {} Advanced Settings: 'Clicking "TEST PROXY" button will send a request to https://ipinfo.io/json': '' -About: - #On About page - Latest FreeTube News: '' - -#On Channel Page Channel: Playlists: Sort Types: Newest: '' Video: - Views: '' - # Context is "X People Watching" Published: Jun: '' - Months: '' Change Format: Use Dash Formats: '' -Comments: - Show Comments: '' Shuffle is now disabled: '' Locale Name: অসমীয়া diff --git a/static/locales/az.yaml b/static/locales/az.yaml index 6943474b5..88b24e054 100644 --- a/static/locales/az.yaml +++ b/static/locales/az.yaml @@ -163,58 +163,38 @@ Settings: Open Link: 'Linki Açın' Theme Settings: Main Color Theme: - Red: '' Dracula Cyan: '' Player Settings: - Scroll Volume Over Video Player: '' Default Quality: 240p: '' - Screenshot: - Error: - Forbidden Characters: '' + Screenshot: {} Privacy Settings: Watch history has been cleared: '' - Distraction Free Settings: - Hide Live Chat: '' Data Settings: Import Playlists: '' - Unable to read file: '' Proxy Settings: City: '' SponsorBlock Settings: {} About: #On About page - Beta: '' Chat on Matrix: '' Profile: - Custom Color: '' Subscription List: '' Channel: - Added channel to your subscriptions: '' Videos: {} Playlists: {} About: Featured Channels: '' Video: - Open Channel in Invidious: '' Live Chat: '' Published: - Apr: '' Days: '' - Sponsor Block category: - intro: '' External Player: Unsupported Actions: reversing playlists: '' -Playlist: - #& About - View Full Playlist: '' Share: Copy Embed: '' -Comments: - Top comments: '' Tooltips: General Settings: Fallback to Non-Preferred Backend on Failure: '' -Local API Error (Click to copy): '' Canceled next video autoplay: '' diff --git a/static/locales/bs.yaml b/static/locales/bs.yaml index 3d2e8ad76..b9d33e07d 100644 --- a/static/locales/bs.yaml +++ b/static/locales/bs.yaml @@ -130,18 +130,13 @@ Settings: Theme Settings: Theme Settings: 'Postavke teme' Match Top Bar with Main Color: 'Koristi glavnu boju u gornjoj traci' - Subscription Settings: - Fetch Feeds from RSS: '' Advanced Settings: {} Profile: Edit Profile: '' Channel: Videos: {} -Video: - Copy Invidious Channel Link: '' Playlist: #& About Views: '' Tooltips: {} -Yes: '' No: 'Ne' diff --git a/static/locales/ca.yaml b/static/locales/ca.yaml index c311347d6..744036b56 100644 --- a/static/locales/ca.yaml +++ b/static/locales/ca.yaml @@ -613,7 +613,6 @@ Share: YouTube URL copied to clipboard: 'URL de YouTube copiada al porta-retalls' YouTube Embed URL copied to clipboard: 'URL d''Incrustació de YouTube copiada al porta-retalls' -Falling back to Invidious API: '' Yes: 'Sí' No: 'No' More: Més diff --git a/static/locales/eo.yaml b/static/locales/eo.yaml index e1a5b6ffd..7e5bc6225 100644 --- a/static/locales/eo.yaml +++ b/static/locales/eo.yaml @@ -95,16 +95,11 @@ Settings: Base Theme: Dark: 'Malluma' Light: 'Luma' - Main Color Theme: - Orange: '' Player Settings: Default Video Format: Audio Formats: '' - Privacy Settings: - Are you sure you want to clear out your search cache?: '' Data Settings: Import YouTube: '' - History object has insufficient data, skipping item: '' Advanced Settings: Clear Subscriptions: Clear Subscriptions: '' @@ -115,28 +110,20 @@ About: Website: Retejo Email: Retpoŝto Profile: - Your profile name cannot be empty: '' Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: '' #On Channel Page Channel: - Playlists: - Playlists: '' About: Details: Detaloj Community: Community: Komunumo Video: - Play Next Video: '' Published: Apr: '' - Days: '' Playlist: #& About Views: '' -Share: - Invidious Embed URL copied to clipboard: '' Local API Error (Click to copy): '' -No: '' More: Pli Search Bar: Clear Input: Klarigi enigon diff --git a/static/locales/hi.yaml b/static/locales/hi.yaml index 5d694e8b9..f93f8bf55 100644 --- a/static/locales/hi.yaml +++ b/static/locales/hi.yaml @@ -167,53 +167,36 @@ Settings: Theme Settings: Theme Settings: 'थीम सेटिंग्स' Match Top Bar with Main Color: 'टॉप बार को मेन कलर से मैच करें' - Main Color Theme: - Cyan: '' Player Settings: Proxy Videos Through Invidious: 'इनविडियस के माध्यम से प्रॉक्सी वीडियो' - Default Quality: - 1080p: '' Subscription Settings: Hide Videos on Watch: '' Data Settings: - Import FreeTube: '' Invalid history file: '' - Advanced Settings: - Clear History: - Clear History: '' - # On Click + Advanced Settings: {} About: #On About page Email: ईमेल करें Profile: - Your profile name cannot be empty: '' Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: '' #On Channel Page -Channel: - Playlists: - Playlists: '' +Channel: {} Video: Open in Invidious: 'इनविडियस में खोलें' Copy Invidious Link: 'इनविडियस लिंक को कॉपी करें' Open Channel in Invidious: 'इनविडियस में चैनल खोलें' Copy Invidious Channel Link: 'इनवीडियस चैनल लिंक कॉपी करें' - Live Chat is currently not supported in this build.: '' 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'लाइव चैट वर्तमान में Invidious API के साथ समर्थित नहीं है। YouTube से सीधा कनेक्शन आवश्यक है।' Published: - Sep: '' Year: '' -Change Format: - Change Media Formats: '' Share: Invidious URL copied to clipboard: 'इनवीडियस URL क्लिपबोर्ड पर कापी किया गया' Invidious Embed URL copied to clipboard: 'इनवीडियस एम्बेड URL क्लिपबोर्ड पर कापी किया गया' Invidious Channel URL copied to clipboard: 'इनविडियस चैनल URL क्लिपबोर्ड पर कॉपी किया गया' -Comments: - Replies: '' Tooltips: General Settings: Preferred API Backend: 'वह बैकएंड चुनें जिसका उपयोग FreeTube डेटा प्राप्त करने diff --git a/static/locales/ku.yaml b/static/locales/ku.yaml index 41c9858d7..47428b305 100644 --- a/static/locales/ku.yaml +++ b/static/locales/ku.yaml @@ -111,9 +111,7 @@ Settings: لەکاتی فەشەلدا' Enable Search Suggestions: 'پێشنیارکردن بەکاربخە لەکاتی گەڕاندا' Theme Settings: {} - Player Settings: - Default Quality: - 8k: '' + Player Settings: {} Data Settings: Unable to read file: 'ناتواندرێت فایلەکە بخوێندرێتەوە' Unable to write file: 'ناتواندریت فایلەکە بنوسرێت' @@ -192,7 +190,5 @@ Profile: Removed {profile} from your profiles: 'سڕاوەتەوە لە پرۆفایلەکانت {profile}' Channel: Playlists: {} -Video: - 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': '' Comments: Replies: '' diff --git a/static/locales/la.yaml b/static/locales/la.yaml index 12ff16d6c..f2bc36cfb 100644 --- a/static/locales/la.yaml +++ b/static/locales/la.yaml @@ -155,40 +155,24 @@ Settings: Dracula Purple: 'Dracula Purpura' Dracula Red: 'Dracula Ruber' Dracula Yellow: 'Dracula Flavum' - Player Settings: - Default Quality: - Default Quality: '' + Player Settings: {} Privacy Settings: Search cache has been cleared: '' Data Settings: - Import NewPipe: '' All watched history has been successfully imported: '' - Advanced Settings: - Clear Subscriptions: - Are you sure you want to remove all subscriptions?: '' - #& Yes - #& No - + Advanced Settings: {} Profile: Custom Color: '' - Subscription List: '' Channel: Added channel to your subscriptions: '' Videos: {} Playlists: {} - About: - Featured Channels: '' Video: Play Next Video: '' Published: - Apr: '' Days: '' -Playlist: - #& About - Views: '' Share: Invidious Embed URL copied to clipboard: '' -Local API Error (Click to copy): '' No: 'nullum' More: plus Open New Window: aperiere fenestram novum diff --git a/static/locales/ne.yaml b/static/locales/ne.yaml index 005561154..c8e5c0be0 100644 --- a/static/locales/ne.yaml +++ b/static/locales/ne.yaml @@ -103,53 +103,32 @@ User Playlists: Settings: # On Settings Page General Settings: - Preferred API Backend: - Local API: '' View all Invidious instance information: '' - Theme Settings: - Main Color Theme: - Indigo: '' + Theme Settings: {} Player Settings: Turn on Subtitles by Default: '' - Default Quality: - Auto: '' Privacy Settings: Remember History: '' - Distraction Free Settings: - Hide Video Views: '' Data Settings: Import NewPipe: '' - History object has insufficient data, skipping item: '' Proxy Settings: Ip: '' About: #On About page - Help: '' these people and projects: '' Profile: - Are you sure you want to delete this profile?: '' Add Selected To Profile: '' Channel: - Videos: - Sort Types: - Newest: '' + Videos: {} Video: Video has been saved: '' - Reverse Playlist: '' video only: '' Published: - Nov: '' Ago: '' - External Player: - playlist: '' Playlist: #& About Views: '' -Share: - Invidious Embed URL copied to clipboard: '' Comments: Hide: '' -Tooltips: - External Player Settings: - External Player: '' +Tooltips: {} Shuffle is now disabled: '' diff --git a/static/locales/or.yaml b/static/locales/or.yaml index d474c4ee3..fc4c1348a 100644 --- a/static/locales/or.yaml +++ b/static/locales/or.yaml @@ -4,7 +4,6 @@ File: 'ଫାଇଲ୍' Edit: 'ସମ୍ପାଦନା' Undo: 'ପୂର୍ଵଵତ୍' Redo: 'ପୁନଃକରଣ' -Back: '' Search Filters: Sort By: Sort By: 'ଏହା ଅନୁଯାୟୀ ସଜାଅ' @@ -47,7 +46,6 @@ User Playlists: Settings: # On Settings Page General Settings: - Enable Search Suggestions: '' Thumbnail Preference: Default: 'ଡିଫଲ୍ଟ' External Link Handling: @@ -72,7 +70,6 @@ Settings: Yellow: 'ହଳଦିଆ' Orange: 'କମଳା' Deep Orange: 'ଗାଢ଼ କମଳା' - Catppuccin Mocha Green: '' Player Settings: Player Settings: 'ଚାଳକ ସେଟିଂ' Autoplay Videos: 'ଵିଡ଼ିଓ ସ୍ୱତଃଚାଳନ' @@ -106,48 +103,31 @@ Settings: Display Titles Without Excessive Capitalisation: ଅତ୍ୟଧିକ ବଡ଼ ଅକ୍ଷର ବିନା ଆଖ୍ୟା ପ୍ରଦର୍ଶନ କରିବା Data Settings: - Export Playlists: '' Unable to write file: '' - Proxy Settings: - Error getting network information. Is your proxy configured properly?: '' SponsorBlock Settings: {} Download Settings: Ask Download Path: '' About: #On About page - FreeTube Wiki: '' Donate: '' Profile: - All subscriptions will also be deleted.: '' No channel(s) have been selected: '' Channel: - Videos: - Sort Types: - Oldest: '' + Videos: {} Playlists: {} Video: Video has been removed from your saved list: '' - Play Next Video: '' Download Video: '' Published: - Oct: '' Years: '' - Sponsor Block category: - recap: '' External Player: {} Stats: Resolution: '' -Toggle Theatre Mode: '' Share: YouTube URL copied to clipboard: '' -Comments: - Top comments: '' Tooltips: General Settings: Fallback to Non-Preferred Backend on Failure: '' - Privacy Settings: - Remove Video Meta Files: '' Playing Previous Video: '' Age Restricted: {} -No: '' diff --git a/static/locales/sat.yaml b/static/locales/sat.yaml index 1021da308..e0ca24730 100644 --- a/static/locales/sat.yaml +++ b/static/locales/sat.yaml @@ -19,54 +19,36 @@ Select all: 'ᱡᱷᱚᱛᱚ ᱪᱚᱭᱚᱱ ᱢᱮᱸ' Reload: 'ᱨᱤᱞᱚᱰ' Force Reload: 'ᱡᱚᱵᱚᱨ ᱨᱤᱞᱚᱰ' Search Filters: - Sort By: - Sort By: '' Duration: Duration: '' -Playlists: '' Settings: # On Settings Page General Settings: Preferred API Backend: Invidious API: '' Theme Settings: - Base Theme: - Base Theme: '' Main Color Theme: Lime: '' - Player Settings: - Default Video Format: - Default Video Format: '' + Player Settings: {} Privacy Settings: Remember History: '' - Distraction Free Settings: - Hide Video Likes And Dislikes: '' Data Settings: Export FreeTube: '' - Unable to read file: '' About: #On About page 'This software is FOSS and released under the GNU Affero General Public License v3.0.': '' Profile: - Create Profile: '' '{number} selected': '' Channel: - Your search results have returned 0 results: '' Videos: {} Video: Remove From History: '' - Shuffle Playlist: '' Download Video: '' Published: - Oct: '' Years: '' -Change Format: - Use Dash Formats: '' Share: YouTube Channel URL copied to clipboard: '' -Comments: - Load More Comments: '' Tooltips: {} This video is unavailable because of missing formats. This can happen due to country unavailability.: '' diff --git a/static/locales/si.yaml b/static/locales/si.yaml index e66f6ef58..2bbd0bdb4 100644 --- a/static/locales/si.yaml +++ b/static/locales/si.yaml @@ -71,47 +71,29 @@ Settings: Invidious API: 'ඉන්වීඩියස් යෙ.ක්‍ර. අ.මු. (API)' Theme Settings: Base Theme: - Base Theme: '' Black: 'කළු' Dark: 'අඳුරු' - Main Color Theme: - Amber: '' Player Settings: Default Video Format: Legacy Formats: '' - Privacy Settings: - Clear Search Cache: '' Distraction Free Settings: Hide Comment Likes: '' Data Settings: - Import History: '' How do I import my subscriptions?: '' Advanced Settings: {} -About: - #On About page - 'Want to chat? Join our Element / Matrix Server . Please check the rules before joining.': '' - Profile: Delete Profile: '' - Delete Selected: '' Channel: Videos: This channel does not currently have any videos: '' Playlists: {} Video: - Open in YouTube: '' Starting soon, please refresh the page to check again: '' # As in a Live Video Published: - Apr: '' Days: '' -Playlist: - #& About - Views: '' Share: Invidious Embed URL copied to clipboard: '' -Comments: - Reply: '' Playing Next Video: '' More: තව Open New Window: නව කවුළුව විවෘත කරන්න diff --git a/static/locales/sr.yaml b/static/locales/sr.yaml index d530fa2b5..8a89b67fd 100644 --- a/static/locales/sr.yaml +++ b/static/locales/sr.yaml @@ -433,19 +433,9 @@ Video: 'Chat is disabled or the Live Stream has ended.': 'Ћаскање је угашено или директан пренос је завршен.' Published: - Jul: '' Month: '' -Playlist: - #& About - Last Updated On: '' - -# On Video Watch Page -#* Published -#& Views Share: Invidious Channel URL copied to clipboard: '' -Comments: - Replies: '' Tooltips: Subscription Settings: Fetch Feeds from RSS: 'Када је омогућено, FreeTube ће користити РСС уместо свог diff --git a/static/locales/tok.yaml b/static/locales/tok.yaml index e733af602..6daa6d9e4 100644 --- a/static/locales/tok.yaml +++ b/static/locales/tok.yaml @@ -48,27 +48,18 @@ Search Filters: Rating: 'pona' Settings: # On Settings Page - General Settings: - Video View Type: - List: '' + General Settings: {} Theme Settings: {} Player Settings: Scroll Playback Rate Over Video Player: '' Screenshot: {} - Distraction Free Settings: - Hide Active Subscriptions: '' SponsorBlock Settings: {} About: #On About page Source code: '' -Channel: - Search Channel: '' Video: Published: May: '' External Player: {} -Playlist: - #& About - Videos: '' Tooltips: {} Invidious API Error (Click to copy): '' From 0e925276d1e0c9c622892b95d255608b6e84d185 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Wed, 17 May 2023 16:26:14 +0200 Subject: [PATCH 04/36] Update translation files Updated by "Remove blank strings" hook in Weblate. Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ --- static/locales/as.yaml | 13 ++----------- static/locales/az.yaml | 19 +++---------------- static/locales/bs.yaml | 2 -- static/locales/eo.yaml | 17 +++-------------- static/locales/hi.yaml | 7 ------- static/locales/ku.yaml | 2 -- static/locales/la.yaml | 7 ------- static/locales/ne.yaml | 13 ------------- static/locales/or.yaml | 12 ------------ static/locales/sat.yaml | 16 ++-------------- static/locales/si.yaml | 11 +---------- static/locales/sr.yaml | 2 -- static/locales/tok.yaml | 3 --- 13 files changed, 11 insertions(+), 113 deletions(-) diff --git a/static/locales/as.yaml b/static/locales/as.yaml index e362d3bcf..e737cbeeb 100644 --- a/static/locales/as.yaml +++ b/static/locales/as.yaml @@ -12,28 +12,19 @@ Delete: 'বিলোপ কৰক' Select all: 'সকলোক বাছক' Reload: 'সতেজ কৰক' Force Reload: 'বলেৰে সতেজ কৰক' -Search Filters: - Duration: - Long (> 20 minutes): '' - # On Search Page +Search Filters: {} Settings: # On Settings Page General Settings: 'Invidious Instance (Default is https://invidious.snopyta.org)': '' Theme Settings: {} - Player Settings: - Proxy Videos Through Invidious: '' Subscription Settings: {} Advanced Settings: 'Clicking "TEST PROXY" button will send a request to https://ipinfo.io/json': '' Channel: - Playlists: - Sort Types: - Newest: '' + Playlists: {} Video: Published: Jun: '' -Change Format: - Use Dash Formats: '' Shuffle is now disabled: '' Locale Name: অসমীয়া diff --git a/static/locales/az.yaml b/static/locales/az.yaml index 88b24e054..2b7147d83 100644 --- a/static/locales/az.yaml +++ b/static/locales/az.yaml @@ -161,40 +161,27 @@ Settings: External Link Handling: External Link Handling: 'Xarici Keçid Hazırlama' Open Link: 'Linki Açın' - Theme Settings: - Main Color Theme: - Dracula Cyan: '' + Theme Settings: {} Player Settings: Default Quality: 240p: '' Screenshot: {} - Privacy Settings: - Watch history has been cleared: '' Data Settings: Import Playlists: '' - Proxy Settings: - City: '' SponsorBlock Settings: {} About: #On About page Chat on Matrix: '' -Profile: - Subscription List: '' Channel: Videos: {} Playlists: {} About: Featured Channels: '' Video: - Live Chat: '' Published: Days: '' - External Player: - Unsupported Actions: - reversing playlists: '' + External Player: {} Share: Copy Embed: '' -Tooltips: - General Settings: - Fallback to Non-Preferred Backend on Failure: '' +Tooltips: {} Canceled next video autoplay: '' diff --git a/static/locales/bs.yaml b/static/locales/bs.yaml index b9d33e07d..3f0bd75bc 100644 --- a/static/locales/bs.yaml +++ b/static/locales/bs.yaml @@ -131,8 +131,6 @@ Settings: Theme Settings: 'Postavke teme' Match Top Bar with Main Color: 'Koristi glavnu boju u gornjoj traci' Advanced Settings: {} -Profile: - Edit Profile: '' Channel: Videos: {} Playlist: diff --git a/static/locales/eo.yaml b/static/locales/eo.yaml index 7e5bc6225..741fa49a9 100644 --- a/static/locales/eo.yaml +++ b/static/locales/eo.yaml @@ -95,35 +95,24 @@ Settings: Base Theme: Dark: 'Malluma' Light: 'Luma' - Player Settings: - Default Video Format: - Audio Formats: '' + Player Settings: {} Data Settings: Import YouTube: '' - Advanced Settings: - Clear Subscriptions: - Clear Subscriptions: '' - # On Click + Advanced Settings: {} About: #On About page Blog: Blogo Website: Retejo Email: Retpoŝto -Profile: - Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: '' -#On Channel Page Channel: About: Details: Detaloj Community: Community: Komunumo -Video: - Published: - Apr: '' +Video: {} Playlist: #& About Views: '' -Local API Error (Click to copy): '' More: Pli Search Bar: Clear Input: Klarigi enigon diff --git a/static/locales/hi.yaml b/static/locales/hi.yaml index f93f8bf55..fae98030a 100644 --- a/static/locales/hi.yaml +++ b/static/locales/hi.yaml @@ -169,17 +169,12 @@ Settings: Match Top Bar with Main Color: 'टॉप बार को मेन कलर से मैच करें' Player Settings: Proxy Videos Through Invidious: 'इनविडियस के माध्यम से प्रॉक्सी वीडियो' - Subscription Settings: - Hide Videos on Watch: '' Data Settings: Invalid history file: '' Advanced Settings: {} About: #On About page Email: ईमेल करें -Profile: - Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: '' -#On Channel Page Channel: {} Video: Open in Invidious: 'इनविडियस में खोलें' @@ -189,8 +184,6 @@ Video: 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'लाइव चैट वर्तमान में Invidious API के साथ समर्थित नहीं है। YouTube से सीधा कनेक्शन आवश्यक है।' - Published: - Year: '' Share: Invidious URL copied to clipboard: 'इनवीडियस URL क्लिपबोर्ड पर कापी किया गया' Invidious Embed URL copied to clipboard: 'इनवीडियस एम्बेड URL क्लिपबोर्ड पर कापी diff --git a/static/locales/ku.yaml b/static/locales/ku.yaml index 47428b305..51fdcd612 100644 --- a/static/locales/ku.yaml +++ b/static/locales/ku.yaml @@ -190,5 +190,3 @@ Profile: Removed {profile} from your profiles: 'سڕاوەتەوە لە پرۆفایلەکانت {profile}' Channel: Playlists: {} -Comments: - Replies: '' diff --git a/static/locales/la.yaml b/static/locales/la.yaml index f2bc36cfb..63042bbb0 100644 --- a/static/locales/la.yaml +++ b/static/locales/la.yaml @@ -156,23 +156,16 @@ Settings: Dracula Red: 'Dracula Ruber' Dracula Yellow: 'Dracula Flavum' Player Settings: {} - Privacy Settings: - Search cache has been cleared: '' Data Settings: All watched history has been successfully imported: '' Advanced Settings: {} -Profile: - Custom Color: '' Channel: Added channel to your subscriptions: '' Videos: {} Playlists: {} Video: - Play Next Video: '' Published: Days: '' -Share: - Invidious Embed URL copied to clipboard: '' No: 'nullum' More: plus Open New Window: aperiere fenestram novum diff --git a/static/locales/ne.yaml b/static/locales/ne.yaml index c8e5c0be0..fc580ebb1 100644 --- a/static/locales/ne.yaml +++ b/static/locales/ne.yaml @@ -102,33 +102,20 @@ User Playlists: सकिएपछि हाल यहाँ रहेका सबै भिडियोहरू ''मन पराइएका'' प्लेसूचीमा स्थानान्तरण गरिनेछ।' Settings: # On Settings Page - General Settings: - View all Invidious instance information: '' Theme Settings: {} Player Settings: Turn on Subtitles by Default: '' - Privacy Settings: - Remember History: '' Data Settings: Import NewPipe: '' - Proxy Settings: - Ip: '' About: #On About page these people and projects: '' -Profile: - Add Selected To Profile: '' Channel: Videos: {} Video: Video has been saved: '' - video only: '' Published: Ago: '' -Playlist: - #& About - Views: '' Comments: Hide: '' Tooltips: {} -Shuffle is now disabled: '' diff --git a/static/locales/or.yaml b/static/locales/or.yaml index fc4c1348a..d70064a5a 100644 --- a/static/locales/or.yaml +++ b/static/locales/or.yaml @@ -102,32 +102,20 @@ Settings: Hide Comments: 'ମନ୍ତଵ୍ୟ ଲୁଚାଇବା' Display Titles Without Excessive Capitalisation: ଅତ୍ୟଧିକ ବଡ଼ ଅକ୍ଷର ବିନା ଆଖ୍ୟା ପ୍ରଦର୍ଶନ କରିବା - Data Settings: - Unable to write file: '' SponsorBlock Settings: {} Download Settings: Ask Download Path: '' -About: - #On About page - Donate: '' - Profile: No channel(s) have been selected: '' Channel: Videos: {} Playlists: {} Video: - Video has been removed from your saved list: '' Download Video: '' - Published: - Years: '' External Player: {} Stats: Resolution: '' -Share: - YouTube URL copied to clipboard: '' Tooltips: General Settings: Fallback to Non-Preferred Backend on Failure: '' -Playing Previous Video: '' Age Restricted: {} diff --git a/static/locales/sat.yaml b/static/locales/sat.yaml index e0ca24730..1e3171f07 100644 --- a/static/locales/sat.yaml +++ b/static/locales/sat.yaml @@ -18,37 +18,25 @@ Delete: 'ᱢᱮᱴᱟᱣ' Select all: 'ᱡᱷᱚᱛᱚ ᱪᱚᱭᱚᱱ ᱢᱮᱸ' Reload: 'ᱨᱤᱞᱚᱰ' Force Reload: 'ᱡᱚᱵᱚᱨ ᱨᱤᱞᱚᱰ' -Search Filters: - Duration: - Duration: '' +Search Filters: {} Settings: # On Settings Page General Settings: Preferred API Backend: Invidious API: '' - Theme Settings: - Main Color Theme: - Lime: '' + Theme Settings: {} Player Settings: {} Privacy Settings: Remember History: '' - Data Settings: - Export FreeTube: '' About: #On About page 'This software is FOSS and released under the GNU Affero General Public License v3.0.': '' -Profile: - '{number} selected': '' Channel: Videos: {} Video: Remove From History: '' - Download Video: '' Published: Years: '' -Share: - YouTube Channel URL copied to clipboard: '' - Tooltips: {} This video is unavailable because of missing formats. This can happen due to country unavailability.: '' diff --git a/static/locales/si.yaml b/static/locales/si.yaml index 2bbd0bdb4..6c18e2e43 100644 --- a/static/locales/si.yaml +++ b/static/locales/si.yaml @@ -73,27 +73,18 @@ Settings: Base Theme: Black: 'කළු' Dark: 'අඳුරු' - Player Settings: - Default Video Format: - Legacy Formats: '' + Player Settings: {} Distraction Free Settings: Hide Comment Likes: '' - Data Settings: - How do I import my subscriptions?: '' Advanced Settings: {} Profile: Delete Profile: '' Channel: - Videos: - This channel does not currently have any videos: '' Playlists: {} Video: Starting soon, please refresh the page to check again: '' # As in a Live Video - Published: - Days: '' Share: Invidious Embed URL copied to clipboard: '' -Playing Next Video: '' More: තව Open New Window: නව කවුළුව විවෘත කරන්න diff --git a/static/locales/sr.yaml b/static/locales/sr.yaml index 8a89b67fd..4e2f2e50e 100644 --- a/static/locales/sr.yaml +++ b/static/locales/sr.yaml @@ -432,8 +432,6 @@ Video: није подржан у овој изградњи.' 'Chat is disabled or the Live Stream has ended.': 'Ћаскање је угашено или директан пренос је завршен.' - Published: - Month: '' Share: Invidious Channel URL copied to clipboard: '' Tooltips: diff --git a/static/locales/tok.yaml b/static/locales/tok.yaml index 6daa6d9e4..c603bdbb8 100644 --- a/static/locales/tok.yaml +++ b/static/locales/tok.yaml @@ -51,15 +51,12 @@ Settings: General Settings: {} Theme Settings: {} Player Settings: - Scroll Playback Rate Over Video Player: '' Screenshot: {} SponsorBlock Settings: {} About: #On About page Source code: '' Video: - Published: - May: '' External Player: {} Tooltips: {} Invidious API Error (Click to copy): '' From 5372653a8c1c4d7d5c3a8875573f79f4a06b1035 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Wed, 17 May 2023 16:26:38 +0200 Subject: [PATCH 05/36] Update translation files Updated by "Remove blank strings" hook in Weblate. Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ --- static/locales/as.yaml | 6 +----- static/locales/az.yaml | 8 -------- static/locales/bs.yaml | 3 --- static/locales/eo.yaml | 5 ----- static/locales/hi.yaml | 2 -- static/locales/la.yaml | 6 +----- static/locales/ne.yaml | 7 ------- static/locales/or.yaml | 7 +------ static/locales/sat.yaml | 10 +--------- static/locales/si.yaml | 5 ----- static/locales/sr.yaml | 2 -- static/locales/tok.yaml | 3 --- 12 files changed, 4 insertions(+), 60 deletions(-) diff --git a/static/locales/as.yaml b/static/locales/as.yaml index e737cbeeb..3e6e04422 100644 --- a/static/locales/as.yaml +++ b/static/locales/as.yaml @@ -15,16 +15,12 @@ Force Reload: 'বলেৰে সতেজ কৰক' Search Filters: {} Settings: # On Settings Page - General Settings: - 'Invidious Instance (Default is https://invidious.snopyta.org)': '' Theme Settings: {} Subscription Settings: {} Advanced Settings: 'Clicking "TEST PROXY" button will send a request to https://ipinfo.io/json': '' Channel: Playlists: {} -Video: - Published: - Jun: '' +Video: {} Shuffle is now disabled: '' Locale Name: অসমীয়া diff --git a/static/locales/az.yaml b/static/locales/az.yaml index 2b7147d83..47514cd33 100644 --- a/static/locales/az.yaml +++ b/static/locales/az.yaml @@ -163,25 +163,17 @@ Settings: Open Link: 'Linki Açın' Theme Settings: {} Player Settings: - Default Quality: - 240p: '' Screenshot: {} Data Settings: Import Playlists: '' SponsorBlock Settings: {} -About: - #On About page - Chat on Matrix: '' Channel: Videos: {} Playlists: {} About: Featured Channels: '' Video: - Published: - Days: '' External Player: {} Share: Copy Embed: '' Tooltips: {} -Canceled next video autoplay: '' diff --git a/static/locales/bs.yaml b/static/locales/bs.yaml index 3f0bd75bc..5104e2b0c 100644 --- a/static/locales/bs.yaml +++ b/static/locales/bs.yaml @@ -133,8 +133,5 @@ Settings: Advanced Settings: {} Channel: Videos: {} -Playlist: - #& About - Views: '' Tooltips: {} No: 'Ne' diff --git a/static/locales/eo.yaml b/static/locales/eo.yaml index 741fa49a9..1da4af459 100644 --- a/static/locales/eo.yaml +++ b/static/locales/eo.yaml @@ -96,8 +96,6 @@ Settings: Dark: 'Malluma' Light: 'Luma' Player Settings: {} - Data Settings: - Import YouTube: '' Advanced Settings: {} About: #On About page @@ -110,9 +108,6 @@ Channel: Community: Community: Komunumo Video: {} -Playlist: - #& About - Views: '' More: Pli Search Bar: Clear Input: Klarigi enigon diff --git a/static/locales/hi.yaml b/static/locales/hi.yaml index fae98030a..240dbb83f 100644 --- a/static/locales/hi.yaml +++ b/static/locales/hi.yaml @@ -169,8 +169,6 @@ Settings: Match Top Bar with Main Color: 'टॉप बार को मेन कलर से मैच करें' Player Settings: Proxy Videos Through Invidious: 'इनविडियस के माध्यम से प्रॉक्सी वीडियो' - Data Settings: - Invalid history file: '' Advanced Settings: {} About: #On About page diff --git a/static/locales/la.yaml b/static/locales/la.yaml index 63042bbb0..5aa8dcc46 100644 --- a/static/locales/la.yaml +++ b/static/locales/la.yaml @@ -156,16 +156,12 @@ Settings: Dracula Red: 'Dracula Ruber' Dracula Yellow: 'Dracula Flavum' Player Settings: {} - Data Settings: - All watched history has been successfully imported: '' Advanced Settings: {} Channel: Added channel to your subscriptions: '' Videos: {} Playlists: {} -Video: - Published: - Days: '' +Video: {} No: 'nullum' More: plus Open New Window: aperiere fenestram novum diff --git a/static/locales/ne.yaml b/static/locales/ne.yaml index fc580ebb1..8ae6de230 100644 --- a/static/locales/ne.yaml +++ b/static/locales/ne.yaml @@ -103,19 +103,12 @@ User Playlists: Settings: # On Settings Page Theme Settings: {} - Player Settings: - Turn on Subtitles by Default: '' Data Settings: Import NewPipe: '' -About: - #On About page - these people and projects: '' Channel: Videos: {} Video: Video has been saved: '' - Published: - Ago: '' Comments: Hide: '' Tooltips: {} diff --git a/static/locales/or.yaml b/static/locales/or.yaml index d70064a5a..7887106cb 100644 --- a/static/locales/or.yaml +++ b/static/locales/or.yaml @@ -103,19 +103,14 @@ Settings: Display Titles Without Excessive Capitalisation: ଅତ୍ୟଧିକ ବଡ଼ ଅକ୍ଷର ବିନା ଆଖ୍ୟା ପ୍ରଦର୍ଶନ କରିବା SponsorBlock Settings: {} - Download Settings: - Ask Download Path: '' Profile: No channel(s) have been selected: '' Channel: Videos: {} Playlists: {} Video: - Download Video: '' External Player: {} Stats: Resolution: '' -Tooltips: - General Settings: - Fallback to Non-Preferred Backend on Failure: '' +Tooltips: {} Age Restricted: {} diff --git a/static/locales/sat.yaml b/static/locales/sat.yaml index 1e3171f07..21252656b 100644 --- a/static/locales/sat.yaml +++ b/static/locales/sat.yaml @@ -21,22 +21,14 @@ Force Reload: 'ᱡᱚᱵᱚᱨ ᱨᱤᱞᱚᱰ' Search Filters: {} Settings: # On Settings Page - General Settings: - Preferred API Backend: - Invidious API: '' + General Settings: {} Theme Settings: {} Player Settings: {} Privacy Settings: Remember History: '' -About: - #On About page - 'This software is FOSS and released under the GNU Affero General Public License v3.0.': '' - Channel: Videos: {} Video: Remove From History: '' - Published: - Years: '' Tooltips: {} This video is unavailable because of missing formats. This can happen due to country unavailability.: '' diff --git a/static/locales/si.yaml b/static/locales/si.yaml index 6c18e2e43..d573981a8 100644 --- a/static/locales/si.yaml +++ b/static/locales/si.yaml @@ -74,16 +74,11 @@ Settings: Black: 'කළු' Dark: 'අඳුරු' Player Settings: {} - Distraction Free Settings: - Hide Comment Likes: '' Advanced Settings: {} Profile: Delete Profile: '' Channel: Playlists: {} -Video: - Starting soon, please refresh the page to check again: '' - # As in a Live Video Share: Invidious Embed URL copied to clipboard: '' More: තව diff --git a/static/locales/sr.yaml b/static/locales/sr.yaml index 4e2f2e50e..e8ad1eded 100644 --- a/static/locales/sr.yaml +++ b/static/locales/sr.yaml @@ -432,8 +432,6 @@ Video: није подржан у овој изградњи.' 'Chat is disabled or the Live Stream has ended.': 'Ћаскање је угашено или директан пренос је завршен.' -Share: - Invidious Channel URL copied to clipboard: '' Tooltips: Subscription Settings: Fetch Feeds from RSS: 'Када је омогућено, FreeTube ће користити РСС уместо свог diff --git a/static/locales/tok.yaml b/static/locales/tok.yaml index c603bdbb8..f69d35817 100644 --- a/static/locales/tok.yaml +++ b/static/locales/tok.yaml @@ -53,9 +53,6 @@ Settings: Player Settings: Screenshot: {} SponsorBlock Settings: {} -About: - #On About page - Source code: '' Video: External Player: {} Tooltips: {} From 7c6a63e23b513563db3bdc517c845ceea791b66c Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Wed, 17 May 2023 16:27:01 +0200 Subject: [PATCH 06/36] Update translation files Updated by "Remove blank strings" hook in Weblate. Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ --- static/locales/as.yaml | 2 -- static/locales/az.yaml | 4 ---- static/locales/la.yaml | 1 - static/locales/ne.yaml | 4 ---- static/locales/or.yaml | 2 -- static/locales/sat.yaml | 3 --- static/locales/si.yaml | 2 -- static/locales/tok.yaml | 1 - 8 files changed, 19 deletions(-) diff --git a/static/locales/as.yaml b/static/locales/as.yaml index 3e6e04422..1ca5b2bb1 100644 --- a/static/locales/as.yaml +++ b/static/locales/as.yaml @@ -17,8 +17,6 @@ Settings: # On Settings Page Theme Settings: {} Subscription Settings: {} - Advanced Settings: - 'Clicking "TEST PROXY" button will send a request to https://ipinfo.io/json': '' Channel: Playlists: {} Video: {} diff --git a/static/locales/az.yaml b/static/locales/az.yaml index 47514cd33..1f2be5984 100644 --- a/static/locales/az.yaml +++ b/static/locales/az.yaml @@ -164,8 +164,6 @@ Settings: Theme Settings: {} Player Settings: Screenshot: {} - Data Settings: - Import Playlists: '' SponsorBlock Settings: {} Channel: Videos: {} @@ -174,6 +172,4 @@ Channel: Featured Channels: '' Video: External Player: {} -Share: - Copy Embed: '' Tooltips: {} diff --git a/static/locales/la.yaml b/static/locales/la.yaml index 5aa8dcc46..ae7803694 100644 --- a/static/locales/la.yaml +++ b/static/locales/la.yaml @@ -158,7 +158,6 @@ Settings: Player Settings: {} Advanced Settings: {} Channel: - Added channel to your subscriptions: '' Videos: {} Playlists: {} Video: {} diff --git a/static/locales/ne.yaml b/static/locales/ne.yaml index 8ae6de230..276c6572d 100644 --- a/static/locales/ne.yaml +++ b/static/locales/ne.yaml @@ -103,12 +103,8 @@ User Playlists: Settings: # On Settings Page Theme Settings: {} - Data Settings: - Import NewPipe: '' Channel: Videos: {} Video: Video has been saved: '' -Comments: - Hide: '' Tooltips: {} diff --git a/static/locales/or.yaml b/static/locales/or.yaml index 7887106cb..acf93c5bd 100644 --- a/static/locales/or.yaml +++ b/static/locales/or.yaml @@ -103,8 +103,6 @@ Settings: Display Titles Without Excessive Capitalisation: ଅତ୍ୟଧିକ ବଡ଼ ଅକ୍ଷର ବିନା ଆଖ୍ୟା ପ୍ରଦର୍ଶନ କରିବା SponsorBlock Settings: {} -Profile: - No channel(s) have been selected: '' Channel: Videos: {} Playlists: {} diff --git a/static/locales/sat.yaml b/static/locales/sat.yaml index 21252656b..871e91b2b 100644 --- a/static/locales/sat.yaml +++ b/static/locales/sat.yaml @@ -24,11 +24,8 @@ Settings: General Settings: {} Theme Settings: {} Player Settings: {} - Privacy Settings: - Remember History: '' Channel: Videos: {} Video: Remove From History: '' Tooltips: {} -This video is unavailable because of missing formats. This can happen due to country unavailability.: '' diff --git a/static/locales/si.yaml b/static/locales/si.yaml index d573981a8..37b6b8eb9 100644 --- a/static/locales/si.yaml +++ b/static/locales/si.yaml @@ -75,8 +75,6 @@ Settings: Dark: 'අඳුරු' Player Settings: {} Advanced Settings: {} -Profile: - Delete Profile: '' Channel: Playlists: {} Share: diff --git a/static/locales/tok.yaml b/static/locales/tok.yaml index f69d35817..b9d4d445d 100644 --- a/static/locales/tok.yaml +++ b/static/locales/tok.yaml @@ -56,4 +56,3 @@ Settings: Video: External Player: {} Tooltips: {} -Invidious API Error (Click to copy): '' From d98a66c5c2186835c821e6ae1950dd7ef814ebe7 Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Wed, 17 May 2023 16:27:24 +0200 Subject: [PATCH 07/36] Update translation files Updated by "Remove blank strings" hook in Weblate. Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ --- static/locales/as.yaml | 1 - static/locales/az.yaml | 2 -- static/locales/ne.yaml | 2 -- static/locales/or.yaml | 2 -- static/locales/sat.yaml | 2 -- static/locales/si.yaml | 2 -- 6 files changed, 11 deletions(-) diff --git a/static/locales/as.yaml b/static/locales/as.yaml index 1ca5b2bb1..41018236f 100644 --- a/static/locales/as.yaml +++ b/static/locales/as.yaml @@ -20,5 +20,4 @@ Settings: Channel: Playlists: {} Video: {} -Shuffle is now disabled: '' Locale Name: অসমীয়া diff --git a/static/locales/az.yaml b/static/locales/az.yaml index 1f2be5984..82262d2d2 100644 --- a/static/locales/az.yaml +++ b/static/locales/az.yaml @@ -168,8 +168,6 @@ Settings: Channel: Videos: {} Playlists: {} - About: - Featured Channels: '' Video: External Player: {} Tooltips: {} diff --git a/static/locales/ne.yaml b/static/locales/ne.yaml index 276c6572d..9a8ad74bd 100644 --- a/static/locales/ne.yaml +++ b/static/locales/ne.yaml @@ -105,6 +105,4 @@ Settings: Theme Settings: {} Channel: Videos: {} -Video: - Video has been saved: '' Tooltips: {} diff --git a/static/locales/or.yaml b/static/locales/or.yaml index acf93c5bd..516c71bc3 100644 --- a/static/locales/or.yaml +++ b/static/locales/or.yaml @@ -108,7 +108,5 @@ Channel: Playlists: {} Video: External Player: {} - Stats: - Resolution: '' Tooltips: {} Age Restricted: {} diff --git a/static/locales/sat.yaml b/static/locales/sat.yaml index 871e91b2b..22219df44 100644 --- a/static/locales/sat.yaml +++ b/static/locales/sat.yaml @@ -26,6 +26,4 @@ Settings: Player Settings: {} Channel: Videos: {} -Video: - Remove From History: '' Tooltips: {} diff --git a/static/locales/si.yaml b/static/locales/si.yaml index 37b6b8eb9..71756bfc0 100644 --- a/static/locales/si.yaml +++ b/static/locales/si.yaml @@ -77,7 +77,5 @@ Settings: Advanced Settings: {} Channel: Playlists: {} -Share: - Invidious Embed URL copied to clipboard: '' More: තව Open New Window: නව කවුළුව විවෘත කරන්න From 45e50c4440f2fb1a9a61c81deb3b97262766a6b3 Mon Sep 17 00:00:00 2001 From: Ettore Atalan Date: Wed, 17 May 2023 18:32:28 +0000 Subject: [PATCH 08/36] Translated using Weblate (German) Currently translated at 98.6% (675 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/de/ --- static/locales/de-DE.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/static/locales/de-DE.yaml b/static/locales/de-DE.yaml index 594b5241e..24aca9b2d 100644 --- a/static/locales/de-DE.yaml +++ b/static/locales/de-DE.yaml @@ -405,6 +405,7 @@ Settings: Hide Channels Placeholder: Kanalname oder Kanal-ID Display Titles Without Excessive Capitalisation: Titel ohne übermäßige Großschreibung anzeigen + Hide Channel Playlists: Kanal-Wiedergabelisten ausblenden The app needs to restart for changes to take effect. Restart and apply change?: Um die Änderungen anzuwenden muss die Anwendung neustarten. Jetzt neustarten und Änderungen aktivieren? @@ -618,8 +619,8 @@ Video: Version nicht unterstützt. 'Chat is disabled or the Live Stream has ended.': Der Chat ist deaktiviert oder der Livestream ist beendet. - Live chat is enabled. Chat messages will appear here once sent.: Der Live-Chat - ist aktiviert. Chatnachrichten tauchen hier auf, wenn sie abgesendet wurden. + Live chat is enabled. Chat messages will appear here once sent.: Der Live-Chat ist + aktiviert. Chatnachrichten tauchen hier auf, wenn sie abgesendet wurden. 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': Live-Chat ist in der aktuellen Invidious-API nicht unterstützt. Eine direkte Verbindung zu YouTube wird benötigt. @@ -905,9 +906,9 @@ Tooltips: Region for Trending: Die Trendregion erlaubt es dir auszuwählen, aus welchem Land die Trends angezeigt werden sollen. Nicht alle Optionen werden auch von YouTube unterstützt. - External Link Handling: "Wähle das Standardverhalten, wenn ein Link angeklickt\ - \ wird, der nicht in FreeTube geöffnet werden kann.\nStandardmäßig wird FreeTube\ - \ den angeklickten Link in deinem Standardbrowser öffnen.\n" + External Link Handling: "Wähle das Standardverhalten, wenn ein Link angeklickt + wird, der nicht in FreeTube geöffnet werden kann.\nStandardmäßig wird FreeTube + den angeklickten Link in deinem Standardbrowser öffnen.\n" Subscription Settings: Fetch Feeds from RSS: Sobald aktiviert wird FreeTube RSS anstatt der Standardmethode nutzen, um deine Abos zu aktualisieren. RSS ist schneller und verhindert das From 540126b29438c012237c46dd415d2f23be446271 Mon Sep 17 00:00:00 2001 From: Goku Date: Wed, 17 May 2023 16:29:19 +0000 Subject: [PATCH 09/36] Translated using Weblate (Dutch) Currently translated at 90.4% (619 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/nl/ --- static/locales/nl.yaml | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/static/locales/nl.yaml b/static/locales/nl.yaml index e7d83defd..571803a1d 100644 --- a/static/locales/nl.yaml +++ b/static/locales/nl.yaml @@ -269,6 +269,9 @@ Settings: %s tweecijferige seconde in de video; %t driecijferige milliseconde in de video; %i ID van de video. U kunt ook "\" of "/" gebruiken om deelmappen aan te maken.' + Comment Auto Load: + Comment Auto Load: Commentaar Automatisch Laden + Skip by Scrolling Over Video Player: Overslaan door over de videospeler te scrollen Privacy Settings: Privacy Settings: 'Privacy-instellingen' Remember History: 'Kijkgeschiedenis onthouden' @@ -422,6 +425,9 @@ Settings: negeren External Player: Externe videospeler External Player Settings: Instellingen externe mediaspeler + Players: + None: + Name: Geen Download Settings: Choose Path: Pad kiezen Download Settings: Downloadinstellingen @@ -843,9 +849,9 @@ Tooltips: Region for Trending: Met trend regio kan je instellen uit welk land je trending video's je wil zien. Niet alle weergegeven landen worden ook daadwerkelijk ondersteund door YouTube. - External Link Handling: "Kies het standaard gedrag voor wanneer een link dat niet\ - \ kan worden geopend in FreeTube is aangeklikt.\nStandaard zal FreeTube de aangeklikte\ - \ link openen in je standaardbrowser.\n" + External Link Handling: "Kies het standaard gedrag voor wanneer een link dat niet + kan worden geopend in FreeTube is aangeklikt.\nStandaard zal FreeTube de aangeklikte + link openen in je standaardbrowser.\n" Privacy Settings: Remove Video Meta Files: Wanneer ingeschakeld zal FreeTube automatisch meta bestanden die worden gecreëerd tijdens het afspelen van video's verwijderen zodra de pagina From b52bb09e5f3bb74e4bedf112d6863dabb316f7cd Mon Sep 17 00:00:00 2001 From: Massimo Pissarello Date: Wed, 17 May 2023 14:49:00 +0000 Subject: [PATCH 10/36] Translated using Weblate (Italian) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/it/ --- static/locales/it.yaml | 70 ++++++++++++++++++++++++++---------------- 1 file changed, 43 insertions(+), 27 deletions(-) diff --git a/static/locales/it.yaml b/static/locales/it.yaml index 7a74f3f3d..7ce4325f3 100644 --- a/static/locales/it.yaml +++ b/static/locales/it.yaml @@ -86,7 +86,7 @@ Subscriptions: Error Channels: Canali con errori Disabled Automatic Fetching: Hai disabilitato il recupero automatico dell'abbonamento. Aggiorna gli abbonamenti per vederli qui. - Empty Channels: I tuoi canali a cui sei iscritto attualmente non hanno video. + Empty Channels: I canali a cui sei iscritto attualmente non hanno alcun video. Trending: Trending: 'Tendenze' Music: Musica @@ -111,7 +111,7 @@ History: # On History Page History: 'Cronologia' Watch History: 'Cronologia delle visualizzazioni' - Your history list is currently empty.: 'La tua cronologia al momento è vuota.' + Your history list is currently empty.: 'La tua cronologia è attualmente vuota.' Search bar placeholder: Cerca nella Cronologia Empty Search Message: Non ci sono video nella tua cronologia che corrispondono alla tua ricerca @@ -152,8 +152,8 @@ Settings: Current instance will be randomized on startup: L'istanza attuale sarà sostituita all'avvio da una generata casualmente No default instance has been set: Non è stata impostata alcuna istanza predefinita - The currently set default instance is {instance}: L'attuale istanza predefinita - è {instance} + The currently set default instance is {instance}: L'istanza predefinita attualmente + impostata è {instance} Current Invidious Instance: Istanza attuale di Invidious System Default: Predefinito del sistema External Link Handling: @@ -275,6 +275,8 @@ Settings: Enter Fullscreen on Display Rotate: Entra a schermo intero su Ruota schermo Skip by Scrolling Over Video Player: Salta scorrendo il lettore video Allow DASH AV1 formats: Consenti formati DASH AV1 + Comment Auto Load: + Comment Auto Load: Carica automaticamente i commenti Privacy Settings: Privacy Settings: 'Impostazioni della privacy' Remember History: 'Salva la cronologia' @@ -393,12 +395,12 @@ Settings: Hide Channel Subscribers: Nascondi il numero di iscritti Hide Video Views: Nascondi le visualizzazioni dei video Distraction Free Settings: Impostazioni della modalità senza distrazioni - Hide Live Chat: Nascondi la chat live + Hide Live Chat: Nascondi la chat dal vivo Hide Video Likes And Dislikes: Nascondi Mi piace e Non mi piace Hide Active Subscriptions: Nascondi le iscrizioni attive Hide Playlists: Nascondi le playlist Hide Comments: Nascondi i commenti - Hide Live Streams: Nascondi i video Live + Hide Live Streams: Nascondi i video dal vivo Hide Sharing Actions: Nascondi le azioni di condivisione Hide Video Description: Nascondi la descrizione del video Hide Chapters: Nascondi i capitoli @@ -407,6 +409,10 @@ Settings: Hide Channels Placeholder: Nome o ID del canale Display Titles Without Excessive Capitalisation: Visualizza i titoli senza maiuscole eccessive + Hide Featured Channels: Nascondi i canali in evidenza + Hide Channel Playlists: Nascondi le playlist dei canali + Hide Channel Community: Nascondi la community del canale + Hide Channel Shorts: Nascondi i video brevi del canale The app needs to restart for changes to take effect. Restart and apply change?: L'applicazione deve essere riavviata per applicare i cambiamenti. Riavvio e applico i cambiamenti subito? @@ -452,7 +458,7 @@ Settings: None: Name: Nessuno Download Settings: - Download Settings: Impostazioni download + Download Settings: Impostazioni dei download Ask Download Path: Chiedi il percorso di download Choose Path: Scegli percorso Download Behavior: Comportamento download @@ -460,7 +466,7 @@ Settings: Download in app: Download nell'app Parental Control Settings: Hide Unsubscribe Button: Nascondi il pulsante Annulla iscrizione - Parental Control Settings: Impostazioni di controllo parentale + Parental Control Settings: Impostazioni del controllo parentale Show Family Friendly Only: Mostra Solo per famiglie Hide Search Bar: Nascondi la barra di ricerca Experimental Settings: @@ -518,7 +524,7 @@ About: FAQ: Domande frequenti FreeTube Wiki: Wiki FreeTube Help: Aiuto - Downloads / Changelog: Download / Changelog + Downloads / Changelog: Download / Registro delle modifiche GitHub releases: Versioni pubblicate su GitHub these people and projects: queste persone e questi progetti FreeTube is made possible by: FreeTube è reso possibile grazie a @@ -563,7 +569,7 @@ Channel: About: About: 'Informazioni' Channel Description: 'Descrizione canale' - Featured Channels: 'Canali suggeriti' + Featured Channels: 'Canali in evidenza' Tags: Search for: Cerca «{tag}» Tags: Etichette @@ -582,13 +588,17 @@ Channel: canale è soggetto a limiti di età e al momento non può essere visualizzato su FreeTube. Community: - This channel currently does not have any posts: Questo canale al momento non ha - post + This channel currently does not have any posts: Questo canale attualmente non + ha alcun post Community: Comunità Live: - Live: Live + Live: Dal vivo This channel does not currently have any live streams: Questo canale attualmente - non ha alcun video Live + non ha alcun video dal vivo + Shorts: + Shorts: Video brevi + This channel does not currently have any shorts: Questo canale attualmente non + ha video brevi Video: Mark As Watched: 'Segna come già visto' Remove From History: 'Rimuovi dalla cronologia' @@ -606,19 +616,19 @@ Video: Watching: 'Sto guardando' Watched: 'Visto' # As in a Live Video - Live: 'Live' - Live Now: 'Live ora' - Live Chat: 'Live Chat' - Enable Live Chat: 'Abilita Live Chat' - Live Chat is currently not supported in this build.: 'La Live Chat al momento non - è supportata in questa versione.' + Live: 'Dal vivo' + Live Now: 'Dal vivo ora' + Live Chat: 'Chat dal vivo' + Enable Live Chat: 'Abilita chat dal vivo' + Live Chat is currently not supported in this build.: 'La chat dal vivo non è attualmente + supportata in questa versione.' 'Chat is disabled or the Live Stream has ended.': 'La chat è disabilitata o la diretta è terminata.' - Live chat is enabled. Chat messages will appear here once sent.: 'La Live Chat + Live chat is enabled. Chat messages will appear here once sent.: 'La chat dal vivo è abilitata. I messaggi appariranno qui una volta inviati.' 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'La - Live Chat non è supportata attualmente con le API di Invidious. È necessaria una - connessione diretta a YouTube.' + chat dal vivo non è attualmente supportata con le API di Invidious. È necessaria + una connessione diretta a YouTube.' Published: Jan: 'Gen' Feb: 'Feb' @@ -732,7 +742,7 @@ Video: Show Super Chat Comment: Mostra commento Super Chat Upcoming: In arrivo 'Live Chat is unavailable for this stream. It may have been disabled by the uploader.': La - Live Chat non è disponibile per questo video. Potrebbe essere stata disattivata + chat dal vivo non è disponibile per questo video. Potrebbe essere stata disattivata dall'autore del caricamento. Videos: #& Sort By @@ -928,9 +938,9 @@ Tooltips: Region for Trending: La regione delle tendenze permette di scegliere la nazione di cui si vogliono vedere i video di tendenza. Non tutte le nazioni mostrate sono ufficialmente supportate da YouTube. - External Link Handling: "Scegli il comportamento predefinito quando si clicca\ - \ su un link che non può essere aperto in FreeTube.\nPer impostazione predefinita\ - \ FreeTube aprirà il link nel browser predefinito.\n" + External Link Handling: "Scegli il comportamento predefinito quando si clicca + su un link che non può essere aperto in FreeTube.\nPer impostazione predefinita + FreeTube aprirà il link nel browser predefinito.\n" External Player Settings: Ignore Warnings: Non notifica gli avvisi quando il lettore esterno selezionato non supporta l'azione richiesta (ad esempio invertire la playlist, etc.). @@ -1009,3 +1019,9 @@ Chapters: capitolo corrente: {chapterName}' Preferences: Preferenze Ok: OK +Hashtag: + This hashtag does not currently have any videos: Questo hashtag attualmente non + ha alcun video + Hashtag: Hashtag + You can only view hashtag pages through the Local API: Puoi visualizzare le pagine + hashtag solo tramite l'API locale From 776c65d910d4b915a4c222ad39205cb805399454 Mon Sep 17 00:00:00 2001 From: Milo Ivir Date: Wed, 17 May 2023 18:13:57 +0000 Subject: [PATCH 11/36] Translated using Weblate (Croatian) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/hr/ --- static/locales/hr.yaml | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/static/locales/hr.yaml b/static/locales/hr.yaml index ac0735365..55aa25b44 100644 --- a/static/locales/hr.yaml +++ b/static/locales/hr.yaml @@ -270,6 +270,8 @@ Settings: ekrana Skip by Scrolling Over Video Player: Preskoči pomicanjem preko video playera Allow DASH AV1 formats: Dozvoli DASH AV1 formate + Comment Auto Load: + Comment Auto Load: Automatski učitaj komentare Privacy Settings: Privacy Settings: 'Postavke privatnosti' Remember History: 'Zapamti povijest' @@ -397,6 +399,10 @@ Settings: Hide Channels Placeholder: Ime kanala ili ID Display Titles Without Excessive Capitalisation: Prikaži naslove bez pretjeranog korištenja velikih slova + Hide Featured Channels: Sakrij istaknute kanale + Hide Channel Playlists: Sakrij kanal zbirki + Hide Channel Community: Sakrij kanal zajednice + Hide Channel Shorts: Sakrij kanal kratkih videa The app needs to restart for changes to take effect. Restart and apply change?: Promjene će se primijeniti nakon ponovnog pokeretanja programa. Ponovo pokrenuti program? Proxy Settings: @@ -621,6 +627,10 @@ Channel: Community: This channel currently does not have any posts: Ovaj kanal trenutačno nema objava Community: Zajednica + Shorts: + This channel does not currently have any shorts: Ovaj kanal trenutačno nema kratka + videa + Shorts: Kratka videa Video: Mark As Watched: 'Označi kao pogledano' Remove From History: 'Ukloni iz povijesti' @@ -902,9 +912,9 @@ Tooltips: poslužitelja na koji će se povezati. Region for Trending: 'Regija trendova omogućuje biranje prikaza videa u trendu za određenu zemlju. YouTube zapravo ne podržava sve prikazane zemlje.' - External Link Handling: "Odaberi standardno ponašanje kad se pritisne poveznica\ - \ koja se ne može otvoriti u FreeTubeu.\nFreeTube takve poveznice otvara u tvom\ - \ standardnom pregledniku.\n" + External Link Handling: "Odaberi standardno ponašanje kad se pritisne poveznica + koja se ne može otvoriti u FreeTubeu.\nFreeTube takve poveznice otvara u tvom + standardnom pregledniku.\n" Subscription Settings: Fetch Feeds from RSS: Kad je aktivirano, FreeTube će koristiti RSS umjesto vlastite standardne metode za dohvaćanje podataka tvoje pretplate. RSS je brži i sprečava @@ -984,3 +994,8 @@ Chapters: aktualno poglavlje: {chapterName}' Preferences: Korisničke postavke Ok: U redu +Hashtag: + This hashtag does not currently have any videos: Ovaj hashtag trenutačno nema videa + You can only view hashtag pages through the Local API: Stranice s hashtagovima možeš + gledati samo putem lokalnog API-ja + Hashtag: Hashtag From fda11a09befabeb5ac02670b6dfc65194d7f5520 Mon Sep 17 00:00:00 2001 From: Rusi Dimitrov Date: Wed, 17 May 2023 17:05:32 +0000 Subject: [PATCH 12/36] Translated using Weblate (Bulgarian) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/bg/ --- static/locales/bg.yaml | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/static/locales/bg.yaml b/static/locales/bg.yaml index 092f1cb72..462b133de 100644 --- a/static/locales/bg.yaml +++ b/static/locales/bg.yaml @@ -279,6 +279,8 @@ Settings: Enter Fullscreen on Display Rotate: Режим на цял екран при завъртане на дисплея Skip by Scrolling Over Video Player: Превъртане над видео плейъра Allow DASH AV1 formats: Разрешаване на форматите DASH AV1 + Comment Auto Load: + Comment Auto Load: Атоматично зареждане на коментари Privacy Settings: Privacy Settings: 'Настройки за поверителност' Remember History: 'Запазване на историята' @@ -401,6 +403,10 @@ Settings: Hide Channels Placeholder: Име или идентификатор на канала Display Titles Without Excessive Capitalisation: Показване на заглавията без излишни главни букви + Hide Featured Channels: Скриване на препоръчаните канали + Hide Channel Playlists: Скриване на плейлистите на каналите + Hide Channel Community: Скриване на общността на каналите + Hide Channel Shorts: Скриване на късите видеа на канала The app needs to restart for changes to take effect. Restart and apply change?: Приложението трябва да се рестартира за да се приложат промените. Рестартиране? Proxy Settings: @@ -624,6 +630,10 @@ Channel: Live: На живо This channel does not currently have any live streams: В момента този канал няма никакви потоци на живо + Shorts: + This channel does not currently have any shorts: В момента този канал няма никакви + къси видеа + Shorts: Къси видеа Video: Mark As Watched: 'Отбелязване като гледано' Remove From History: 'Премахване от историята' @@ -765,7 +775,7 @@ Video: Premieres: Премиерa Show Super Chat Comment: Показване на Super Chat коментар Scroll to Bottom: Превъртане в долната част - Upcoming: Предстоящи + Upcoming: Предстои 'Live Chat is unavailable for this stream. It may have been disabled by the uploader.': Чатът на живо не е наличен за този поток. Възможно е да е бил деактивиран от качващия. Videos: @@ -908,9 +918,9 @@ Tooltips: Preferred API Backend: Избиране на начина, по който FreeTube получава данните. Локалният интерфейс има вградено извличане. Invidious интерфейсът изисква Invidious сървър, към който да се свърже. - External Link Handling: "Избор на поведението по подразбиране, когато щракнете\ - \ върху връзка, която не може да бъде отворена във FreeTube.\nПо подразбиране\ - \ FreeTube ще отвори връзката в браузъра по подразбиране.\n" + External Link Handling: "Избор на поведението по подразбиране, когато щракнете + върху връзка, която не може да бъде отворена във FreeTube.\nПо подразбиране + FreeTube ще отвори връзката в браузъра по подразбиране.\n" Privacy Settings: Remove Video Meta Files: Когато страницата за гледане бъде затворена, FreeTube автоматично ще изтрива метафайловете, създадени по време на възпроизвеждане @@ -989,3 +999,8 @@ Chapters: текуща глава: {chapterName}' Preferences: Предпочитания Ok: Добре +Hashtag: + Hashtag: Хаштаг + This hashtag does not currently have any videos: В момента този хаштаг няма видеа + You can only view hashtag pages through the Local API: Можете да разглеждате страници + с хаштагове само чрез локалния вътрешен интерфейс From 02510090518d417ac3dff98402417c96d3a7a705 Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Wed, 17 May 2023 16:45:30 +0000 Subject: [PATCH 13/36] Translated using Weblate (Hebrew) Currently translated at 99.5% (681 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/he/ --- static/locales/he.yaml | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/static/locales/he.yaml b/static/locales/he.yaml index c42f194d9..27bbf5473 100644 --- a/static/locales/he.yaml +++ b/static/locales/he.yaml @@ -268,6 +268,8 @@ Settings: Enter Fullscreen on Display Rotate: מעבר למסך מלא עם סיבוב התצוגה Skip by Scrolling Over Video Player: אפשר לדלג על ידי גלילה על נגן הווידאו Allow DASH AV1 formats: לאפשר תצורות DASH AV1 + Comment Auto Load: + Comment Auto Load: טעינת תגובות אוטומטית Privacy Settings: Privacy Settings: 'הגדרות פרטיות' Remember History: 'זכור את היסטוריית הצפייה' @@ -387,6 +389,9 @@ Settings: Hide Channels Placeholder: שם או מזהה ערוץ Display Titles Without Excessive Capitalisation: להציג כותרות בלי הגזמה באותיות גדולות + Hide Featured Channels: הסתרת ערוצים מומלצים + Hide Channel Playlists: הסתרת רשימת נגינה של ערוץ + Hide Channel Community: הסתרת קהילת הערוץ The app needs to restart for changes to take effect. Restart and apply change?: צריך להפעיל את היישומון מחדש כדי שהשינויים ייכנסו לתוקף. להפעיל מחדש ולהחיל את השינוי? Proxy Settings: @@ -638,8 +643,8 @@ Video: Enable Live Chat: 'הפעלת צ׳אט' Live Chat is currently not supported in this build.: 'הצ׳אט כרגע לא נתמך בגרסה זו.' 'Chat is disabled or the Live Stream has ended.': 'הצ׳אט נחסם או שהשידור החי נגמר.' - Live chat is enabled. Chat messages will appear here once sent.: 'הצ׳אט מופעל. - ההודעות תופענה פה כאשר תישלחנה.' + Live chat is enabled. Chat messages will appear here once sent.: 'הצ׳אט מופעל. ההודעות + תופענה פה כאשר תישלחנה.' 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'מנגנון הצ׳אט כרגע לא נתמך ע״י ה־API של Invidious. דרוש חיבור ישיר ל־YouTube.' Published: @@ -850,9 +855,9 @@ Tooltips: Invidious Instance: העותק של Invidious שאליו FreeTube יתחבר לקבלת פניות API. Thumbnail Preference: כל התמונות הממוזערות ברחבי FreeTube יוחלפו בפריים מתוך הסרטון במקום התמונה הממוזערת כברירת המחדל. - External Link Handling: "נא לבחור את התנהגות ברירת המחדל כשנלחץ קישור שלא ניתן\ - \ לפתוח ב־FreeTube.\nכברירת מחדל FreeTube יפתח את הקישור שנלחץ בדפדפן ברירת\ - \ המחדל שלך.\n" + External Link Handling: "נא לבחור את התנהגות ברירת המחדל כשנלחץ קישור שלא ניתן + לפתוח ב־FreeTube.\nכברירת מחדל FreeTube יפתח את הקישור שנלחץ בדפדפן ברירת המחדל + שלך.\n" Player Settings: Force Local Backend for Legacy Formats: עובד רק כאשר ה־API של Invidious הוא ברירת המחדל שלך. כאשר האפשרות פעילה, ה־API המקומי יופעל וישתמש בתצורות המיושנות שהוחזרו @@ -949,3 +954,8 @@ Clipboard: חיבור מאובטח Preferences: העדפות Ok: אישור +Hashtag: + This hashtag does not currently have any videos: לתגית ההקבץ הזו אין סרטונים כרגע + You can only view hashtag pages through the Local API: אפשר לצפות בעמודי תגית הקבץ + דרך ה־API המקומי בלבד + Hashtag: תגית הקבץ From 8d7c29991198862bcac4772b5adb9eacb436bc68 Mon Sep 17 00:00:00 2001 From: Fjuro Date: Wed, 17 May 2023 19:01:17 +0000 Subject: [PATCH 14/36] Translated using Weblate (Czech) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/cs/ --- static/locales/cs.yaml | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/static/locales/cs.yaml b/static/locales/cs.yaml index cca62526d..c8ba335cb 100644 --- a/static/locales/cs.yaml +++ b/static/locales/cs.yaml @@ -277,6 +277,8 @@ Settings: Enter Fullscreen on Display Rotate: Při otočení displeje přejít na celou obrazovku Skip by Scrolling Over Video Player: Přeskočení posouváním na přehrávači videa Allow DASH AV1 formats: Povolit formáty DASH AV1 + Comment Auto Load: + Comment Auto Load: Automatické načtení komentářů Privacy Settings: Privacy Settings: 'Nastavení soukromí' Remember History: 'Zapamatovat historii' @@ -323,6 +325,10 @@ Settings: Hide Channels Placeholder: Název nebo ID kanálu Display Titles Without Excessive Capitalisation: Zobrazit názvy bez nadměrného použití velkých písmen + Hide Featured Channels: Skrýt doporučené kanály + Hide Channel Playlists: Skrýt playlisty kanálu + Hide Channel Community: Skrýt komunitu kanálu + Hide Channel Shorts: Skrýt Shorts kanálu Data Settings: Data Settings: 'Nastavení dat' Select Import Type: 'Vybrat typ importu' @@ -609,6 +615,9 @@ Channel: Live: Živě This channel does not currently have any live streams: Tento kanál v současné době nemá žádné živé přenosy + Shorts: + This channel does not currently have any shorts: Tento kanál nemá žádné shorts + Shorts: Shorts Video: Mark As Watched: 'Označit jako zhlédnuto' Remove From History: 'Odstranit z historie' @@ -646,8 +655,8 @@ Video: programu podporován.' 'Chat is disabled or the Live Stream has ended.': 'Chat je zakázán nebo živý přenos byl ukončen.' - Live chat is enabled. Chat messages will appear here once sent.: 'Živý chat je - povolen. Po odeslání se zde zobrazí zprávy chatu.' + Live chat is enabled. Chat messages will appear here once sent.: 'Živý chat je povolen. Po + odeslání se zde zobrazí zprávy chatu.' 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'Živý chat momentálně není podporován s Invidious API. Je vyžadováno přímé připojení k YouTube.' @@ -840,9 +849,9 @@ Tooltips: Region for Trending: 'Oblast pro trendy vám umožní vybrat si zemi, ze které si přejete zobrazovat videa v trendech. Ne všechny zobrazené země jsou ale službou YouTube opravdu podporovány.' - External Link Handling: "Zvolte výchozí chování při kliknutí na odkaz, který nelze\ - \ otevřít ve FreeTube.\nVe výchozím nastavení otevře FreeTube odkaz ve vašem\ - \ výchozím prohlížeči.\n" + External Link Handling: "Zvolte výchozí chování při kliknutí na odkaz, který nelze + otevřít ve FreeTube.\nVe výchozím nastavení otevře FreeTube odkaz ve vašem výchozím + prohlížeči.\n" Player Settings: Force Local Backend for Legacy Formats: 'Funguje pouze v případě, že je výchozím nastavením API Invidious. Je-li povoleno, spustí se místní API a použije starší @@ -964,3 +973,8 @@ Chapters: Chapters: Kapitoly Preferences: Předvolby Ok: Ok +Hashtag: + You can only view hashtag pages through the Local API: Stránky hashtagů lze momentálně + procházet pouze s lokálním API + Hashtag: Hashtag + This hashtag does not currently have any videos: Tento hashtag nemá žádná videa From 3a053361feaecc1da2e0acd50145f82269926177 Mon Sep 17 00:00:00 2001 From: jonnysemon Date: Wed, 17 May 2023 23:36:14 +0000 Subject: [PATCH 15/36] Translated using Weblate (Arabic) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ar/ --- static/locales/ar.yaml | 30 +++++++++++++++++++++++------- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/static/locales/ar.yaml b/static/locales/ar.yaml index 9cd326bfd..d5d8dae70 100644 --- a/static/locales/ar.yaml +++ b/static/locales/ar.yaml @@ -264,6 +264,8 @@ Settings: Enter Fullscreen on Display Rotate: وضع ملء الشاشة عند تدوير الشاشة Skip by Scrolling Over Video Player: تخطي بالتمرير فوق مشغل الفيديو Allow DASH AV1 formats: السماح بتنسيقات DASH AV1 + Comment Auto Load: + Comment Auto Load: تعليق تحميل تلقائي Privacy Settings: Privacy Settings: 'إعدادات الخصوصية' Remember History: 'تذّكر سجلّ المشاهدة' @@ -391,6 +393,10 @@ Settings: Hide Channels Placeholder: اسم القناة أو معرفها Display Titles Without Excessive Capitalisation: عرض العناوين بدون احرف كبيرة بشكل مفرط + Hide Featured Channels: إخفاء القنوات المميزة + Hide Channel Playlists: إخفاء قوائم تشغيل القناة + Hide Channel Community: إخفاء مجتمع القناة + Hide Channel Shorts: إخفاء Shorts القناة The app needs to restart for changes to take effect. Restart and apply change?: البرنامج يحتاج لإعادة التشغيل كي يسري مفعول التغييرات. هل تريد إعادة التشغيل و تطبيق التغييرات؟ Proxy Settings: @@ -598,8 +604,8 @@ Channel: Channel Tabs: علامات تبويب القنوات This channel does not exist: هذه القناة غير موجودة This channel does not allow searching: هذه القناة لا تسمح بالبحث - This channel is age-restricted and currently cannot be viewed in FreeTube.: هذه القناة - مصنفة حسب العمر ولا يمكن عرضها حاليا في FreeTube. + This channel is age-restricted and currently cannot be viewed in FreeTube.: هذه + القناة مصنفة حسب العمر ولا يمكن عرضها حاليا في FreeTube. Community: Community: المجتمع This channel currently does not have any posts: لا تحتوي هذه القناة حاليا على @@ -608,6 +614,10 @@ Channel: Live: مباشر This channel does not currently have any live streams: لا يوجد حاليا أي بث مباشر على هذه القناة + Shorts: + Shorts: Shorts + This channel does not currently have any shorts: هذه القناة ليس لديها حاليا أي + أفلام قصيرة (shorts) Video: Mark As Watched: 'علّمه كفيديو تمت مشاهدته' Remove From History: 'إزالة من سجلّ المشاهدة' @@ -834,8 +844,8 @@ Shuffle is now enabled: 'تم تمكين التبديل العشوائي' Playing Next Video: 'جاري تشغيل الفيديو التالي' Playing Previous Video: 'جاري تشغيل الفيديو السابق' Canceled next video autoplay: 'تم إلغاء التشغيل التلقائي للفيديو التالي' -'The playlist has ended. Enable loop to continue playing': 'انتهت قائمة التشغيل. - قم بتمكن التكرار لمواصلة التشغيل' +'The playlist has ended. Enable loop to continue playing': 'انتهت قائمة التشغيل. قم + بتمكن التكرار لمواصلة التشغيل' Yes: 'نعم' No: 'لا' @@ -858,9 +868,9 @@ Tooltips: التراجع. Region for Trending: الانتشار المحلي (Trend) يسمح لك بأن تشاهد الفيديوهات الأكثر انتشارا حسب الدولة. ليست كل الدول المعروضة في هذه القائمة مدعومة من طرف يوتيوب. - External Link Handling: "اختر السلوك الافتراضي عند النقر فوق رابط، لا يمكن فتحه\ - \ في FreeTube.\nبشكل افتراضي، سيفتح FreeTube الرابط الذي تم النقر عليه في المتصفح\ - \ الافتراضي.\n" + External Link Handling: "اختر السلوك الافتراضي عند النقر فوق رابط، لا يمكن فتحه + في FreeTube.\nبشكل افتراضي، سيفتح FreeTube الرابط الذي تم النقر عليه في المتصفح + الافتراضي.\n" Player Settings: Proxy Videos Through Invidious: سيتم الاتصال ب Invidious لتقديم مقاطع الفيديو بدلاً من إجراء اتصال مباشر مع يوتيوب. يلغي تفضيل الواجهة البرمجية. @@ -963,3 +973,9 @@ Chapters: الفصل الحالي: {sectionName}' Preferences: التفضيلات Ok: موافق +Hashtag: + This hashtag does not currently have any videos: هذا الهاشتاج ليس لديه حاليا أي + مقاطع فيديو + Hashtag: هاشتاج + You can only view hashtag pages through the Local API: يمكنك فقط عرض صفحات الهاشتاج + من خلال واجهة برمجة التطبيقات (API) المحلية From 3c7638822841c40cb8f78e41b840c84001085d4e Mon Sep 17 00:00:00 2001 From: Rex_sa Date: Wed, 17 May 2023 23:39:44 +0000 Subject: [PATCH 16/36] Translated using Weblate (Arabic) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ar/ --- static/locales/ar.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/ar.yaml b/static/locales/ar.yaml index d5d8dae70..d1ddd8b6e 100644 --- a/static/locales/ar.yaml +++ b/static/locales/ar.yaml @@ -265,7 +265,7 @@ Settings: Skip by Scrolling Over Video Player: تخطي بالتمرير فوق مشغل الفيديو Allow DASH AV1 formats: السماح بتنسيقات DASH AV1 Comment Auto Load: - Comment Auto Load: تعليق تحميل تلقائي + Comment Auto Load: تحميل التلقائي للتعليقات Privacy Settings: Privacy Settings: 'إعدادات الخصوصية' Remember History: 'تذّكر سجلّ المشاهدة' From b894dc58a45bfb16d2bc2ec08588b9fdafbf611f Mon Sep 17 00:00:00 2001 From: Massimo Pissarello Date: Thu, 18 May 2023 01:17:09 +0000 Subject: [PATCH 17/36] Translated using Weblate (Italian) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/it/ --- static/locales/it.yaml | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/static/locales/it.yaml b/static/locales/it.yaml index 7ce4325f3..8f84eb0f1 100644 --- a/static/locales/it.yaml +++ b/static/locales/it.yaml @@ -112,7 +112,7 @@ History: History: 'Cronologia' Watch History: 'Cronologia delle visualizzazioni' Your history list is currently empty.: 'La tua cronologia è attualmente vuota.' - Search bar placeholder: Cerca nella Cronologia + Search bar placeholder: Cerca nella cronologia Empty Search Message: Non ci sono video nella tua cronologia che corrispondono alla tua ricerca Settings: @@ -120,13 +120,13 @@ Settings: Settings: 'Impostazioni' General Settings: General Settings: 'Impostazioni generali' - Fallback to Non-Preferred Backend on Failure: 'Ritorna al riproduttore non preferito + Fallback to Non-Preferred Backend on Failure: 'Ritorna al backend non preferito in caso di errore' Enable Search Suggestions: 'Abilita suggerimenti di ricerca' Default Landing Page: 'Pagina iniziale predefinita' Locale Preference: 'Lingua predefinita' Preferred API Backend: - Preferred API Backend: 'Riproduttore API preferito' + Preferred API Backend: 'Backend API preferito' Local API: 'API locali' Invidious API: 'API di Invidious' Video View Type: @@ -220,8 +220,7 @@ Settings: Hide FreeTube Header Logo: Nascondi il logo dell'intestazione di FreeTube Player Settings: Player Settings: 'Impostazioni del riproduttore video' - Force Local Backend for Legacy Formats: 'Forza riproduttore locale per formati - compatibili' + Force Local Backend for Legacy Formats: 'Forza backend locale per formati compatibili' Play Next Video: 'Riproduci il prossimo video' Turn on Subtitles by Default: 'Abilita i sottotitoli per impostazione predefinita' Autoplay Videos: 'Riproduci i video automaticamente' @@ -343,7 +342,7 @@ Settings: Unable to read file: Impossibile leggere il file All watched history has been successfully exported: La cronologia delle visualizzazioni è stata esportata con successo - All watched history has been successfully imported: La cronologia di visualizzazione + All watched history has been successfully imported: La cronologia delle visualizzazioni è stata importata con successo History object has insufficient data, skipping item: La cronologia ha dati insufficienti, non verrà elaborata @@ -932,8 +931,8 @@ Tooltips: Fallback to Non-Preferred Backend on Failure: Quando le API preferite hanno un problema, FreeTube userà automaticamente le API secondarie come riserva (se abilitate). - Preferred API Backend: Scegli il riproduttore utilizzato da FreeTube per ottenere - i dati. Le API locali sono integrate nel programma. Le API Invidious richiedono + Preferred API Backend: Scegli il backend utilizzato da FreeTube per ottenere i + dati. Le API locali sono integrate nel programma. Le API Invidious richiedono un server Invidious al quale connettersi. Region for Trending: La regione delle tendenze permette di scegliere la nazione di cui si vogliono vedere i video di tendenza. Non tutte le nazioni mostrate From 5fed5dc16d38654c4ff57a7cb640550c65debd23 Mon Sep 17 00:00:00 2001 From: Eric Date: Thu, 18 May 2023 02:37:11 +0000 Subject: [PATCH 18/36] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/zh_Hans/ --- static/locales/zh-CN.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/static/locales/zh-CN.yaml b/static/locales/zh-CN.yaml index bc6df9d99..17431597b 100644 --- a/static/locales/zh-CN.yaml +++ b/static/locales/zh-CN.yaml @@ -252,6 +252,8 @@ Settings: Enter Fullscreen on Display Rotate: 屏幕旋转时进入全屏 Skip by Scrolling Over Video Player: 从视频播放器一侧滚动到另一侧来跳过视频 Allow DASH AV1 formats: 允许 DASH AV1 格式 + Comment Auto Load: + Comment Auto Load: 自动加载评论 Subscription Settings: Subscription Settings: '订阅设置' Hide Videos on Watch: '观看时隐藏视频' @@ -362,6 +364,10 @@ Settings: Hide Channels: 隐藏频道中的视频 Hide Channels Placeholder: 频道名称或 ID Display Titles Without Excessive Capitalisation: 不用过度大写字母的方式显示标题名称 + Hide Featured Channels: 隐藏精选频道 + Hide Channel Playlists: 隐藏频道播放列表 + Hide Channel Community: 隐藏频道社区 + Hide Channel Shorts: 隐藏频道短视频 The app needs to restart for changes to take effect. Restart and apply change?: 应用需要重启让修改生效。重启以应用修改? Proxy Settings: Proxy Protocol: 代理协议 @@ -520,6 +526,9 @@ Channel: Live: Live: 直播 This channel does not currently have any live streams: 此频道当前没有任何直播流 + Shorts: + This channel does not currently have any shorts: 此频道目前没有任何短视频 + Shorts: 短视频 Video: Open in YouTube: '在YouTube中打开' Copy YouTube Link: '复制YouTube链接' @@ -867,3 +876,7 @@ Chapters: 'Chapters list hidden, current chapter: {chapterName}': 章节列表隐藏,当前章节:{chapterName} Preferences: 选项 Ok: 好 +Hashtag: + Hashtag: 标签 + You can only view hashtag pages through the Local API: 你只能通过本地 API 浏览标签页面 + This hashtag does not currently have any videos: 此标签下当前没有任何短视频 From d7e71bb01cd50d1af64666675248094f2a748a63 Mon Sep 17 00:00:00 2001 From: Jeff Huang Date: Thu, 18 May 2023 03:10:53 +0000 Subject: [PATCH 19/36] Translated using Weblate (Chinese (Traditional)) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/zh_Hant/ --- static/locales/zh-TW.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/static/locales/zh-TW.yaml b/static/locales/zh-TW.yaml index 940a35562..1c9afada3 100644 --- a/static/locales/zh-TW.yaml +++ b/static/locales/zh-TW.yaml @@ -254,6 +254,8 @@ Settings: Enter Fullscreen on Display Rotate: 在顯示旋轉時進入全螢幕 Skip by Scrolling Over Video Player: 捲動影片播放器跳過 Allow DASH AV1 formats: 允許 DASH AV1 格式 + Comment Auto Load: + Comment Auto Load: 留言自動載入 Subscription Settings: Subscription Settings: '訂閱設定' Hide Videos on Watch: '觀看時隱藏影片' @@ -364,6 +366,10 @@ Settings: Hide Channels Placeholder: 頻道名稱或 ID Hide Channels: 隱藏頻道中的影片 Display Titles Without Excessive Capitalisation: 顯示沒有過多大寫的標題 + Hide Featured Channels: 隱藏精選頻道 + Hide Channel Playlists: 隱藏頻道播放清單 + Hide Channel Community: 隱藏頻道社群 + Hide Channel Shorts: 隱藏頻道短片 The app needs to restart for changes to take effect. Restart and apply change?: 此變更需要重啟讓修改生效。重啟並且套用變更? Proxy Settings: Error getting network information. Is your proxy configured properly?: 取得網路資訊時發生錯誤。您的代理伺服器設定正確嗎? @@ -531,6 +537,9 @@ Channel: Live: Live: 直播 This channel does not currently have any live streams: 此頻道目前沒有任何直播 + Shorts: + Shorts: 短片 + This channel does not currently have any shorts: 此頻道目前沒有任何短片 Video: Open in YouTube: '在YouTube中開啟' Copy YouTube Link: '複製YouTube連結' @@ -878,3 +887,7 @@ Chapters: 'Chapters list hidden, current chapter: {chapterName}': 章節清單已隱藏,目前章節:{chapterName} Preferences: 偏好設定 Ok: 確定 +Hashtag: + Hashtag: 主題標籤 + This hashtag does not currently have any videos: 此標籤目前沒有任何影片 + You can only view hashtag pages through the Local API: 您僅能透過本機 API 檢視主題標籤頁面 From 18debafc33f184476554e2ec2aa8d102612e4b84 Mon Sep 17 00:00:00 2001 From: Massimo Pissarello Date: Thu, 18 May 2023 02:19:35 +0000 Subject: [PATCH 20/36] Translated using Weblate (Italian) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/it/ --- static/locales/it.yaml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/static/locales/it.yaml b/static/locales/it.yaml index 8f84eb0f1..e2797107d 100644 --- a/static/locales/it.yaml +++ b/static/locales/it.yaml @@ -250,22 +250,22 @@ Settings: Fast-Forward / Rewind Interval: Avanzamento veloce o riavvolgimento video Next Video Interval: Prossimo intervallo video Display Play Button In Video Player: Visualizza il pulsante di riproduzione nel - lettore + lettore video Scroll Volume Over Video Player: Controlla il volume scorrendo sul lettore video Scroll Playback Rate Over Video Player: Scorri la velocità di riproduzione sul lettore video Video Playback Rate Interval: Intervallo di riproduzione video Max Video Playback Rate: Velocità massima di riproduzione video Screenshot: - Folder Label: Cartella cattura schermata + Folder Label: Cartella screenshot Folder Button: Seleziona cartella File Name Label: Modello nome del file Error: Forbidden Characters: Caratteri non accettati Empty File Name: Nome file vuoto - Quality Label: Qualità cattura schermata - Enable: Abilita cattura schermata - Format Label: Formato cattura schermata + Quality Label: Qualità screenshot + Enable: Abilita screenshot + Format Label: Formato screenshot Ask Path: Chiedi cartella di salvataggio File Name Tooltip: Puoi usare le seguenti variabili. %Y Anno 4 cifre. %M Mese 2 cifre. %D Giorno 2 cifre. %H Ora 2 cifre. %N Minuto 2 cifre. %S Secondo @@ -377,7 +377,7 @@ Settings: Manage Subscriptions: Gestisci i profili Import Playlists: Importa playlist Export Playlists: Esporta playlist - Playlist insufficient data: Dati insufficienti per la playlist «{playlist}», elemento + Playlist insufficient data: Dati insufficienti per la playlist "{playlist}", elemento saltato All playlists has been successfully imported: Tutte le playlist sono state importate con successo @@ -410,7 +410,7 @@ Settings: eccessive Hide Featured Channels: Nascondi i canali in evidenza Hide Channel Playlists: Nascondi le playlist dei canali - Hide Channel Community: Nascondi la community del canale + Hide Channel Community: Nascondi la comunità del canale Hide Channel Shorts: Nascondi i video brevi del canale The app needs to restart for changes to take effect. Restart and apply change?: L'applicazione deve essere riavviata per applicare i cambiamenti. Riavvio e applico i cambiamenti @@ -570,7 +570,7 @@ Channel: Channel Description: 'Descrizione canale' Featured Channels: 'Canali in evidenza' Tags: - Search for: Cerca «{tag}» + Search for: Cerca "{tag}" Tags: Etichette Details: Dettagli Joined: Iscrizione @@ -605,7 +605,7 @@ Video: Video has been removed from your history: 'Il video è stato rimosso dalla cronologia' Open in YouTube: 'Apri con YouTube' Copy YouTube Link: 'Copia link YouTube' - Open YouTube Embedded Player: 'Apri con lettore YouTube incorporato' + Open YouTube Embedded Player: 'Apri il player incorporato di YouTube' Copy YouTube Embedded Player Link: 'Copia link del lettore YouTube incorporato' Open in Invidious: 'Apri con Invidious' Copy Invidious Link: 'Copia link Invidious' @@ -786,7 +786,7 @@ Share: YouTube URL copied to clipboard: 'Collegamento a YouTube copiato negli appunti' YouTube Embed URL copied to clipboard: 'Collegamento a YouTube da incorporare copiato negli appunti' - Include Timestamp: Includi marca temporale + Include Timestamp: Includi indicazione temporale YouTube Channel URL copied to clipboard: Collegamento al canale YouTube copiato negli appunti Invidious Channel URL copied to clipboard: Collegamento al canale Invidous copiato @@ -921,7 +921,7 @@ Tooltips: Fetch Feeds from RSS: Se abilitato, FreeTube userà gli RSS invece del metodo standard per leggere la tua lista iscrizioni. Gli RSS sono più veloci e impediscono il blocco dell'IP, ma non forniscono determinate informazioni come la durata del - video o lo stato della diretta + video o lo stato della diretta dal vivo Fetch Automatically: Se abilitato, FreeTube recupererà automaticamente il feed dell'abbonamento quando viene aperta una nuova finestra e quando si cambia profilo. General Settings: @@ -987,8 +987,8 @@ Are you sure you want to open this link?: Sei sicuro di voler aprire questo link Downloading has completed: 'Il download di "{videoTitle}" è terminato' Starting download: Avvio del download di "{videoTitle}" Downloading failed: Si è verificato un problema durante il download di "{videoTitle}" -Screenshot Success: Cattura schermata salvato come «{filePath}» -Screenshot Error: Cattura schermata fallito. {error} +Screenshot Success: Screenshot salvato come "{filePath}" +Screenshot Error: Screenshot non riuscito. {error} Age Restricted: The currently set default instance is {instance}: Questo {instance} è limitato dall'età Type: @@ -1004,7 +1004,7 @@ Channels: Search bar placeholder: Cerca canali Count: '{number} canale/i trovato/i.' Empty: L'elenco dei tuoi canali è attualmente vuoto. - Unsubscribe Prompt: Sei sicuro/sicura di voler annullare l'iscrizione a «{channelName}»? + Unsubscribe Prompt: Sei sicuro di voler annullare l'iscrizione a "{channelName}"? Unsubscribe: Annulla l'iscrizione Clipboard: Cannot access clipboard without a secure connection: Impossibile accedere agli appunti From 2098666641bbd06da3ba2e7c20ed0d6f219b6086 Mon Sep 17 00:00:00 2001 From: Massimo Pissarello Date: Thu, 18 May 2023 08:56:21 +0000 Subject: [PATCH 21/36] Translated using Weblate (Italian) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/it/ --- static/locales/it.yaml | 70 +++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/static/locales/it.yaml b/static/locales/it.yaml index e2797107d..29c30a789 100644 --- a/static/locales/it.yaml +++ b/static/locales/it.yaml @@ -148,13 +148,13 @@ Settings: View all Invidious instance information: Visualizza tutti i dati dell'istanza Invidious Clear Default Instance: Cancella istanza predefinita - Set Current Instance as Default: Imposta l'istanza attuale come predefinita - Current instance will be randomized on startup: L'istanza attuale sarà sostituita + Set Current Instance as Default: Imposta l'attuale istanza come predefinita + Current instance will be randomized on startup: L'attuale istanza sarà sostituita all'avvio da una generata casualmente No default instance has been set: Non è stata impostata alcuna istanza predefinita - The currently set default instance is {instance}: L'istanza predefinita attualmente - impostata è {instance} - Current Invidious Instance: Istanza attuale di Invidious + The currently set default instance is {instance}: Attualmente l'istanza impostata + come predefinita è {instance} + Current Invidious Instance: Attuale istanza di Invidious System Default: Predefinito del sistema External Link Handling: No Action: Nessuna azione @@ -219,8 +219,8 @@ Settings: Hide Side Bar Labels: Nascondi le etichette della barra laterale Hide FreeTube Header Logo: Nascondi il logo dell'intestazione di FreeTube Player Settings: - Player Settings: 'Impostazioni del riproduttore video' - Force Local Backend for Legacy Formats: 'Forza backend locale per formati compatibili' + Player Settings: 'Impostazioni del lettore' + Force Local Backend for Legacy Formats: 'Forza backend locale per formati obsoleti' Play Next Video: 'Riproduci il prossimo video' Turn on Subtitles by Default: 'Abilita i sottotitoli per impostazione predefinita' Autoplay Videos: 'Riproduci i video automaticamente' @@ -232,7 +232,7 @@ Settings: Default Video Format: Default Video Format: 'Formato video predefinito' Dash Formats: 'Formati DASH' - Legacy Formats: 'Formati compatibili' + Legacy Formats: 'Formati obsoleti' Audio Formats: 'Formati audio' Default Quality: Default Quality: 'Qualità predefinita' @@ -272,7 +272,7 @@ Settings: 2 cifre. %T Millisecondo 3 cifre. %s Durata in secondi del video. %t Millisecondi del video 3 cifre. %i ID video. Puoi anche usare \ o / per creare sottocartelle. Enter Fullscreen on Display Rotate: Entra a schermo intero su Ruota schermo - Skip by Scrolling Over Video Player: Salta scorrendo il lettore video + Skip by Scrolling Over Video Player: Salta tramite scorrimento sul lettore video Allow DASH AV1 formats: Consenti formati DASH AV1 Comment Auto Load: Comment Auto Load: Carica automaticamente i commenti @@ -280,14 +280,14 @@ Settings: Privacy Settings: 'Impostazioni della privacy' Remember History: 'Salva la cronologia' Save Watched Progress: 'Salva i progressi raggiunti' - Clear Search Cache: 'Cancella la cronologia della ricerca' - Are you sure you want to clear out your search cache?: 'Sei sicuro di voler cancellare - la cronologia della ricerca?' - Search cache has been cleared: 'La cronologia della ricerca è stata cancellata' - Remove Watch History: 'Cancella la cronologia delle visualizzazioni' + Clear Search Cache: 'Svuota la cache della ricerca' + Are you sure you want to clear out your search cache?: 'Sei sicuro di voler svuotare + la cache della ricerca?' + Search cache has been cleared: 'La cache della ricerca è stata svuotata' + Remove Watch History: 'Rimuovi la cronologia delle visualizzazioni' Are you sure you want to remove your entire watch history?: 'Sei sicuro di voler - cancellare la cronologia delle visualizzazioni?' - Watch history has been cleared: 'La cronologia delle visualizzazioni è stata cancellata' + rimuovere l''intera cronologia delle visualizzazioni?' + Watch history has been cleared: 'La cronologia delle visualizzazioni è stata svuotata' Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Sei sicuro di volere eliminare tutte le iscrizioni e i profili? L'operazione non può essere annullata. @@ -373,7 +373,7 @@ Settings: Select Export Type: Seleziona il tipo di esportazione Select Import Type: Seleziona il tipo di importazione Data Settings: Impostazioni dei dati - Check for Legacy Subscriptions: Controlla le iscrizioni compatibili + Check for Legacy Subscriptions: Controlla le iscrizioni obsolete Manage Subscriptions: Gestisci i profili Import Playlists: Importa playlist Export Playlists: Esporta playlist @@ -406,8 +406,8 @@ Settings: Hide Upcoming Premieres: Nascondi le prossime Première Hide Channels: Nascondi i video dai canali Hide Channels Placeholder: Nome o ID del canale - Display Titles Without Excessive Capitalisation: Visualizza i titoli senza maiuscole - eccessive + Display Titles Without Excessive Capitalisation: Visualizza i titoli senza un + uso eccessivo di maiuscole Hide Featured Channels: Nascondi i canali in evidenza Hide Channel Playlists: Nascondi le playlist dei canali Hide Channel Community: Nascondi la comunità del canale @@ -447,9 +447,8 @@ Settings: Do Nothing: Non fare nulla Category Color: Colore della categoria External Player Settings: - Custom External Player Arguments: Impostazioni personalizzate del lettore esterno - Custom External Player Executable: File eseguibile del lettore personalizzato - esterno + Custom External Player Arguments: Argomenti del lettore esterno personalizzato + Custom External Player Executable: File eseguibile del lettore esterno personalizzato Ignore Unsupported Action Warnings: Ignora avvisi per azioni non supportate External Player: Lettore esterno External Player Settings: Impostazioni del lettore esterno @@ -690,16 +689,17 @@ Video: Save Video: Salva il video External Player: Unsupported Actions: - looping playlists: ripetendo la playlist - shuffling playlists: mescolando l'ordine della playlist - reversing playlists: invertendo l'ordine della playlist - opening specific video in a playlist (falling back to opening the video): aprendo - un video specifico in una playlist (tornando all'apertura del video) - setting a playback rate: impostando la velocità di riproduzione - opening playlists: aprendo la playlist - starting video at offset: avviando il video con uno sfasamento + looping playlists: riproduzione continua delle playlist + shuffling playlists: riproduzione casuale delle playlist + reversing playlists: invertire le playlist + opening specific video in a playlist (falling back to opening the video): apertura + di un video specifico in una playlist (in caso di errore vai all'apertura + del video) + setting a playback rate: impostare una velocità di riproduzione + opening playlists: apertura delle playlist + starting video at offset: avviare il video da un determinato punto UnsupportedActionTemplate: '{externalPlayer} non supporta: {action}' - OpeningTemplate: Apertura del {videoOrPlaylist} con {externalPlayer}… + OpeningTemplate: Apertura di {videoOrPlaylist} con {externalPlayer}... playlist: playlist video: video OpenInTemplate: Apri con {externalPlayer} @@ -725,7 +725,7 @@ Video: video id: ID video (YouTube) player resolution: Finestra di visualizzazione Video statistics are not available for legacy videos: Le statistiche sui video - non sono disponibili per i video compatibili + non sono disponibili per i video obsoleti Video ID: ID video Resolution: Risoluzione Player Dimensions: Dimensioni del lettore @@ -766,7 +766,7 @@ Toggle Theatre Mode: 'Attiva modalità cinema' Change Format: Change Media Formats: 'Cambia formato video' Use Dash Formats: 'Usa i formati DASH' - Use Legacy Formats: 'Usa i formati compatibili' + Use Legacy Formats: 'Usa i formati obsoleti' Use Audio Formats: 'Usa i formati audio' Audio formats are not available for this video: I formati audio non sono disponibili per questo video @@ -896,11 +896,11 @@ This video is unavailable because of missing formats. This can happen due to cou Tooltips: Player Settings: Force Local Backend for Legacy Formats: Funziona solo quando Invidious è l'API - predefinita. Se abilitate, le API locali useranno i formati compatibili al posto + predefinita. Se abilitate, le API locali useranno i formati obsoleti al posto di quelli di Invidious. Utile quando i video di Invidious non vengono riprodotti a causa di restrizioni geografiche. Default Video Format: Imposta i formati usati quando un video viene riprodotto. - I formati DASH possono riprodurre qualità maggiore. I formati compatibili sono + I formati DASH possono riprodurre qualità maggiore. I formati obsoleti sono limitati ad un massimo di 720p ma usano meno banda. I formati audio riproducono solo l'audio. Proxy Videos Through Invidious: Connessione a Invidious per riprodurre i video From cff786182e943ed5c5bdfd33f98005e1f6fb1f18 Mon Sep 17 00:00:00 2001 From: ovari Date: Thu, 18 May 2023 08:10:43 +0000 Subject: [PATCH 22/36] Translated using Weblate (Hungarian) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/hu/ --- static/locales/hu.yaml | 47 +++++++++++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 5 deletions(-) diff --git a/static/locales/hu.yaml b/static/locales/hu.yaml index 0d78daa78..91451fccc 100644 --- a/static/locales/hu.yaml +++ b/static/locales/hu.yaml @@ -282,6 +282,8 @@ Settings: Enter Fullscreen on Display Rotate: Teljes képernyős mód a kijelzőn forgatáshoz Skip by Scrolling Over Video Player: Kihagyás a Videolejátszó felett görgetve Allow DASH AV1 formats: DASH AV1 formátumok engedélyezése + Comment Auto Load: + Comment Auto Load: Megjegyzés automatikus betöltése Privacy Settings: Privacy Settings: 'Adatvédelmi beállítások' Remember History: 'Előzmények megjegyzése' @@ -405,6 +407,10 @@ Settings: Hide Channels Placeholder: Csatorna neve vagy azonosítója Display Titles Without Excessive Capitalisation: Címek megjelenítése túlzott nagybetűk nélkül + Hide Featured Channels: Kiemelt csatornák elrejtése + Hide Channel Playlists: Csatorna lejátszási listák elrejtése + Hide Channel Community: Csatornaközösség elrejtése + Hide Channel Shorts: Csatorna rövidfilmek elrejtése The app needs to restart for changes to take effect. Restart and apply change?: Az alkalmazásnak újra kell indulnia, hogy a változtatások életbe lépjenek. Indítsa újra és alkalmazza a módosítást? @@ -608,6 +614,29 @@ Channel: About: 'Névjegy' Channel Description: 'Csatorna leírása' Featured Channels: 'Kiemelt csatornák' + Location: Hely + Details: Részletek + Joined: Csatlakozott + Tags: + Tags: Címkék + Search for: „{tag}” címke keresése + This channel is age-restricted and currently cannot be viewed in FreeTube.: Ez a + csatorna korhatáros, és jelenleg nem tekinthető meg a FreeTube alkalmazásban. + Channel Tabs: Csatornalapok + Live: + This channel does not currently have any live streams: Jelenleg nincs élő közvetítés + ezen a csatornán + Live: Élő + Community: + This channel currently does not have any posts: Ezen a csatornán jelenleg nincsenek + bejegyzések + Community: Közösség + Shorts: + Shorts: Rövidfilmek + This channel does not currently have any shorts: Ezen a csatornán jelenleg nincsenek + rövidfilmek + This channel does not exist: Nem létezik ez a csatorna + This channel does not allow searching: Keresés nem engedélyezett ezen a csatornán Video: Mark As Watched: 'Megjelölés megtekintettként' Remove From History: 'Eltávolítás az előzményekből' @@ -641,8 +670,8 @@ Video: támogatott ebben az összeállításban.' 'Chat is disabled or the Live Stream has ended.': 'Csevegés letiltva vagy az élő adatfolyam véget ért.' - Live chat is enabled. Chat messages will appear here once sent.: 'Élő csevegés - engedélyezve. A csevegőüzenetek itt jelennek meg, miután elküldték.' + Live chat is enabled. Chat messages will appear here once sent.: 'Élő csevegés engedélyezve. + A csevegőüzenetek itt jelennek meg, miután elküldték.' 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': 'Az élő csevegést jelenleg nem támogatja az Invidious API. Közvetlen kapcsolat szükséges a YouTube-hoz.' @@ -741,6 +770,8 @@ Video: Show Super Chat Comment: Haladó csevegési megjegyzés megjelenítése Scroll to Bottom: Görgetés legalulra Upcoming: Közelgő + 'Live Chat is unavailable for this stream. It may have been disabled by the uploader.': Az + élő csevegés nem érhető el ehhez az adatfolyamhoz. Lehet, hogy a feltöltő letiltotta. Videos: #& Sort By Sort By: @@ -857,9 +888,9 @@ Tooltips: Fallback to Non-Preferred Backend on Failure: Ha az Ön által előnyben részesített API-val hibába merül fel, a SzabadCső önműködően megpróbálja a nem előnyben API-t tartalékként használni, ha engedélyezve van. - External Link Handling: "Válassza ki az alapértelmezett viselkedést, ha egy hivatkozásra\ - \ kattintanak, amely nem nyitható meg a SzabadCsőben.\nA SzabadCső alapértelmezés\ - \ szerint megnyitja a kattintott hivatkozást az alapértelmezett böngészőben.\n" + External Link Handling: "Válassza ki az alapértelmezett viselkedést, ha egy hivatkozásra + kattintanak, amely nem nyitható meg a SzabadCsőben.\nA SzabadCső alapértelmezés + szerint megnyitja a kattintott hivatkozást az alapértelmezett böngészőben.\n" Subscription Settings: Fetch Feeds from RSS: Ha engedélyezve van, a SzabadCső az alapértelmezett módszer helyett RSS-t fog használni a feliratkozás hírcsatornájának megragadásához. @@ -967,3 +998,9 @@ Clipboard: Screenshot Error: A képernyőkép nem sikerült. {error} Preferences: Beállítások Ok: Rendben +Hashtag: + Hashtag: Kettőskereszt + This hashtag does not currently have any videos: Ez a kettőskereszt jelenleg nem + rendelkezik videókkal + You can only view hashtag pages through the Local API: Kettőskereszt oldalait csak + a helyi API felületen keresztül tudja megtekinteni From 07e6c6f4e2ee600334eda2a16945067ca0069f6d Mon Sep 17 00:00:00 2001 From: Massimo Pissarello Date: Thu, 18 May 2023 14:49:34 +0000 Subject: [PATCH 23/36] Translated using Weblate (Italian) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/it/ --- static/locales/it.yaml | 43 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/static/locales/it.yaml b/static/locales/it.yaml index 29c30a789..a23a6d0f7 100644 --- a/static/locales/it.yaml +++ b/static/locales/it.yaml @@ -160,7 +160,7 @@ Settings: No Action: Nessuna azione Ask Before Opening Link: Chiedi prima di aprire il link Open Link: Apri link - External Link Handling: Gestione dei collegamenti esterni + External Link Handling: Gestione dei link esterni Theme Settings: Theme Settings: 'Impostazioni del tema' Match Top Bar with Main Color: 'Abbina la barra superiore al colore principale' @@ -412,9 +412,9 @@ Settings: Hide Channel Playlists: Nascondi le playlist dei canali Hide Channel Community: Nascondi la comunità del canale Hide Channel Shorts: Nascondi i video brevi del canale - The app needs to restart for changes to take effect. Restart and apply change?: L'applicazione - deve essere riavviata per applicare i cambiamenti. Riavvio e applico i cambiamenti - subito? + The app needs to restart for changes to take effect. Restart and apply change?: L'app + deve essere riavviata affinché le modifiche abbiano effetto. Riavviare e applicare + la modifica? Proxy Settings: Proxy Protocol: Protocollo Proxy Enable Tor / Proxy: Attiva Tor o Proxy @@ -435,8 +435,8 @@ Settings: SponsorBlock Settings: Notify when sponsor segment is skipped: Notifica quando un segmento sponsor viene saltato - 'SponsorBlock API Url (Default is https://sponsor.ajay.app)': Collegamento alle - API di SponsorBlock (l'impostazione predefinita è https://sponsor.ajay.app) + 'SponsorBlock API Url (Default is https://sponsor.ajay.app)': URL dell'API di + SponsorBlock (l'impostazione predefinita è https://sponsor.ajay.app) Enable SponsorBlock: Abilita SponsorBlock SponsorBlock Settings: Impostazioni di SponsorBlock Skip Options: @@ -605,7 +605,7 @@ Video: Open in YouTube: 'Apri con YouTube' Copy YouTube Link: 'Copia link YouTube' Open YouTube Embedded Player: 'Apri il player incorporato di YouTube' - Copy YouTube Embedded Player Link: 'Copia link del lettore YouTube incorporato' + Copy YouTube Embedded Player Link: 'Copia link del lettore incorporato di YouTube' Open in Invidious: 'Apri con Invidious' Copy Invidious Link: 'Copia link Invidious' View: 'Vista' @@ -780,17 +780,16 @@ Share: Copy Embed: 'Copia codice da incorporare' Open Embed: 'Apri codice da incorporare' # On Click - Invidious URL copied to clipboard: 'Collegamento a Invidious copiato negli appunti' - Invidious Embed URL copied to clipboard: 'Collegamento a Invidious da incorporare - copiato negli appunti' - YouTube URL copied to clipboard: 'Collegamento a YouTube copiato negli appunti' - YouTube Embed URL copied to clipboard: 'Collegamento a YouTube da incorporare copiato + Invidious URL copied to clipboard: 'URL di Invidious copiato negli appunti' + Invidious Embed URL copied to clipboard: 'URL di incorporamento di Invidious copiato + negli appunti' + YouTube URL copied to clipboard: 'URL di YouTube copiato negli appunti' + YouTube Embed URL copied to clipboard: 'URL di incorporamento di YouTube copiato negli appunti' Include Timestamp: Includi indicazione temporale - YouTube Channel URL copied to clipboard: Collegamento al canale YouTube copiato - negli appunti - Invidious Channel URL copied to clipboard: Collegamento al canale Invidous copiato - negli appunti + YouTube Channel URL copied to clipboard: URL del canale YouTube copiato negli appunti + Invidious Channel URL copied to clipboard: URL del canale Invidious copiato negli + appunti Share Channel: Condividi canale Mini Player: 'Mini visualizzatore' Comments: @@ -937,9 +936,9 @@ Tooltips: Region for Trending: La regione delle tendenze permette di scegliere la nazione di cui si vogliono vedere i video di tendenza. Non tutte le nazioni mostrate sono ufficialmente supportate da YouTube. - External Link Handling: "Scegli il comportamento predefinito quando si clicca - su un link che non può essere aperto in FreeTube.\nPer impostazione predefinita - FreeTube aprirà il link nel browser predefinito.\n" + External Link Handling: "Scegli il comportamento predefinito quando si fa clic + su un link che non può essere aperto in FreeTube.\nPer impostazione predefinita, + FreeTube aprirà il link cliccato nel browser predefinito.\n" External Player Settings: Ignore Warnings: Non notifica gli avvisi quando il lettore esterno selezionato non supporta l'azione richiesta (ad esempio invertire la playlist, etc.). @@ -977,11 +976,11 @@ Default Invidious instance has been set to {instance}: L'istanza predefinita di è stata impostata a {instance} Hashtags have not yet been implemented, try again later: Gli hashtag non sono ancora stati implementati, riprova più tardi -Unknown YouTube url type, cannot be opened in app: Tipo di link YouTube sconosciuto, - non può essere aperto nell'applicazione +Unknown YouTube url type, cannot be opened in app: Tipo di URL di YouTube sconosciuto, + non può essere aperto nell'app Search Bar: Clear Input: Pulisci ricerca -External link opening has been disabled in the general settings: L'apertura dei collegamenti +External link opening has been disabled in the general settings: L'apertura dei link esterni è stata disabilitata nelle impostazioni generali Are you sure you want to open this link?: Sei sicuro di voler aprire questo link? Downloading has completed: 'Il download di "{videoTitle}" è terminato' From 440d5718b9c7af8a385892fac483645e53ef69f7 Mon Sep 17 00:00:00 2001 From: Ihor Hordiichuk Date: Thu, 18 May 2023 15:37:41 +0000 Subject: [PATCH 24/36] Translated using Weblate (Ukrainian) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/uk/ --- static/locales/uk.yaml | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/static/locales/uk.yaml b/static/locales/uk.yaml index 127048789..569c016c5 100644 --- a/static/locales/uk.yaml +++ b/static/locales/uk.yaml @@ -280,6 +280,8 @@ Settings: екрана Skip by Scrolling Over Video Player: Пропустити гортанням відеопрогравача Allow DASH AV1 formats: Дозволити формат DASH AV1 + Comment Auto Load: + Comment Auto Load: Автозавантаження коментарів Privacy Settings: Privacy Settings: 'Налаштування приватності' Remember History: 'Збрігати історію' @@ -326,6 +328,10 @@ Settings: Hide Channels Placeholder: Назва або ID каналу Display Titles Without Excessive Capitalisation: Показувати заголовки без надмірно великих літер + Hide Featured Channels: Сховати пропоновані канали + Hide Channel Playlists: Сховати добірки з каналів + Hide Channel Community: Сховати спільноту каналу + Hide Channel Shorts: Сховати Shorts каналу Data Settings: Data Settings: 'Налаштування даних' Select Import Type: 'Оберіть тип імпорту' @@ -558,6 +564,9 @@ Channel: This channel does not currently have any live streams: Наразі на цьому каналі немає прямих трансляцій Live: Наживо + Shorts: + Shorts: Shorts + This channel does not currently have any shorts: На цьому каналі немає Shorts Video: Mark As Watched: 'Позначити переглянутим' Remove From History: 'Прибрати з історії' @@ -795,9 +804,9 @@ Tooltips: Region for Trending: 'Регіон популярного дозволяє вам вибрати популярні відео країни, які ви хочете бачити. Не всі показані країни насправді підтримуються YouTube.' - External Link Handling: "Визначте типову поведінку, коли натиснено на посилання,\ - \ яке не можна відкрити у FreeTube.\nТипово FreeTube відкриває натиснуте посилання\ - \ у вашому типовому переглядачі.\n" + External Link Handling: "Визначте типову поведінку, коли натиснено на посилання, + яке не можна відкрити у FreeTube.\nТипово FreeTube відкриває натиснуте посилання + у вашому типовому переглядачі.\n" Player Settings: Force Local Backend for Legacy Formats: 'Працює, лише якщо API Invidious використовується типовим. Якщо увімкнено, локальний API буде запущено і використовуватиме застарілі @@ -929,3 +938,8 @@ Chapters: поточний розділ: {chapterName}' Preferences: Налаштування Ok: Гаразд +Hashtag: + Hashtag: Хештег + You can only view hashtag pages through the Local API: Ви можете переглядати сторінки + з хештегами лише через локальний API + This hashtag does not currently have any videos: За цим хештегом наразі немає відео From 8842e4f022c9c276b305ff1531f3eb5fcc3b79a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=82=D1=91=D0=BC=20=D0=9A=D0=BE=D1=82=D0=BB?= =?UTF-8?q?=D1=83=D0=B1=D0=B0=D0=B9?= Date: Thu, 18 May 2023 17:12:31 +0000 Subject: [PATCH 25/36] Translated using Weblate (Russian) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ru/ --- static/locales/ru.yaml | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/static/locales/ru.yaml b/static/locales/ru.yaml index e4a56a936..a91bfa0a0 100644 --- a/static/locales/ru.yaml +++ b/static/locales/ru.yaml @@ -271,6 +271,8 @@ Settings: дисплея Skip by Scrolling Over Video Player: Пропустить, прокручивая видеопроигрыватель Allow DASH AV1 formats: Разрешить форматы DASH AV1 + Comment Auto Load: + Comment Auto Load: Самозагрузка комментариев Subscription Settings: Subscription Settings: 'Подписки' Hide Videos on Watch: 'Скрывать видео после просмотра' @@ -398,6 +400,10 @@ Settings: Hide Channels: Скрыть видео с каналов Display Titles Without Excessive Capitalisation: Отображать заголовки без чрезмерного использования заглавных букв + Hide Featured Channels: Скрыть избранные каналы + Hide Channel Playlists: Скрыть подборки канала + Hide Channel Community: Скрыть сообщество канала + Hide Channel Shorts: Скрыть короткие видео канала The app needs to restart for changes to take effect. Restart and apply change?: Чтобы изменения вступили в силу, необходимо перезапустить приложение. Перезапустить и применить изменения? @@ -576,6 +582,10 @@ Channel: Live: Прямой показ This channel does not currently have any live streams: На этом канале в настоящее время нет прямых показов + Shorts: + Shorts: Короткие видео + This channel does not currently have any shorts: На этом канале пока что нет коротких + видео Video: Mark As Watched: 'Отметить как просмотренное' Remove From History: 'Удалить из истории' @@ -884,9 +894,9 @@ Tooltips: функций Invidious требует подключения к серверу Invidious. Region for Trending: Регион трендов позволяет выбрать, в какой стране будут отображаться трендовые видео. Не все отображаемые страны поддерживаются YouTube. - External Link Handling: "Выберите действие при нажатии на ссылку, которая не может\ - \ быть открыта во FreeTube.\nПо умолчанию FreeTube откроет ссылку в вашем браузере\ - \ по умолчанию.\n" + External Link Handling: "Выберите действие при нажатии на ссылку, которая не может + быть открыта во FreeTube.\nПо умолчанию FreeTube откроет ссылку в вашем браузере + по умолчанию.\n" Subscription Settings: Fetch Feeds from RSS: Если эта настройка включена, FreeTube будет получать вашу ленту подписок с помощью RSS, а не как обычно. RSS работает быстрее и предотвращает @@ -993,3 +1003,9 @@ Chapters: текущий раздел: {chapterName}' Preferences: Настройки Ok: Хорошо +Hashtag: + Hashtag: Распределительная метка + This hashtag does not currently have any videos: Этой распределительной метки пока + нет ни у одного видео + You can only view hashtag pages through the Local API: Ты можешь видеть страницы + с распределительными метками только через локальный набор функций From 680cc73b824f3ab731bdeae4b7725fab8a69dba6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D1=80=D1=82=D1=91=D0=BC=20=D0=9A=D0=BE=D1=82=D0=BB?= =?UTF-8?q?=D1=83=D0=B1=D0=B0=D0=B9?= Date: Thu, 18 May 2023 17:26:27 +0000 Subject: [PATCH 26/36] Translated using Weblate (Bengali) Currently translated at 8.7% (60 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/bn/ --- static/locales/bn.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/static/locales/bn.yaml b/static/locales/bn.yaml index 760975720..0b2782000 100644 --- a/static/locales/bn.yaml +++ b/static/locales/bn.yaml @@ -85,6 +85,8 @@ Settings: General Settings: {} Theme Settings: {} Player Settings: {} + Distraction Free Settings: + Hide Channel Shorts: '' About: #On About page Email: 'ই-মেইল' From e76c1077ed077b1ec9e4524583ffcb300aedf19b Mon Sep 17 00:00:00 2001 From: Hosted Weblate Date: Thu, 18 May 2023 20:52:02 +0200 Subject: [PATCH 27/36] Update translation files Updated by "Remove blank strings" hook in Weblate. Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ --- static/locales/bn.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/static/locales/bn.yaml b/static/locales/bn.yaml index 0b2782000..760975720 100644 --- a/static/locales/bn.yaml +++ b/static/locales/bn.yaml @@ -85,8 +85,6 @@ Settings: General Settings: {} Theme Settings: {} Player Settings: {} - Distraction Free Settings: - Hide Channel Shorts: '' About: #On About page Email: 'ই-মেইল' From d3b3be7794039d67e81bbc113f6c3ab415a941d6 Mon Sep 17 00:00:00 2001 From: PikachuEXE Date: Fri, 19 May 2023 10:13:42 +0800 Subject: [PATCH 28/36] Update watch view playlist component to auto scroll to current video (#3399) * * Update watch view playlist component to auto scroll to current video * ! Fix window being scrolled when playlist is out of initial view * * Use `nextTick` instead of `setTimeout` * Revert "* Use `nextTick` instead of `setTimeout`" This reverts commit 9215b0fe54ddbff24a2f95641c996d57c540d82c. * * Remove setTimeout, fix issue when Invidious API used --- .../ft-list-video-lazy/ft-list-video-lazy.js | 9 +++- .../watch-video-playlist.js | 41 ++++++++++++++++--- .../watch-video-playlist.vue | 3 ++ src/renderer/views/Watch/Watch.vue | 1 + 4 files changed, 48 insertions(+), 6 deletions(-) diff --git a/src/renderer/components/ft-list-video-lazy/ft-list-video-lazy.js b/src/renderer/components/ft-list-video-lazy/ft-list-video-lazy.js index a2e9391ce..2ac01ba81 100644 --- a/src/renderer/components/ft-list-video-lazy/ft-list-video-lazy.js +++ b/src/renderer/components/ft-list-video-lazy/ft-list-video-lazy.js @@ -38,13 +38,20 @@ export default defineComponent({ appearance: { type: String, required: true - } + }, + initialVisibleState: { + type: Boolean, + default: false, + }, }, data: function () { return { visible: false } }, + created() { + this.visible = this.initialVisibleState + }, methods: { onVisibilityChanged: function (visible) { if (visible) { diff --git a/src/renderer/components/watch-video-playlist/watch-video-playlist.js b/src/renderer/components/watch-video-playlist/watch-video-playlist.js index 1efc73ebe..7b1eb811f 100644 --- a/src/renderer/components/watch-video-playlist/watch-video-playlist.js +++ b/src/renderer/components/watch-video-playlist/watch-video-playlist.js @@ -1,4 +1,4 @@ -import { defineComponent } from 'vue' +import { defineComponent, nextTick } from 'vue' import { mapMutations } from 'vuex' import FtLoader from '../ft-loader/ft-loader.vue' import FtCard from '../ft-card/ft-card.vue' @@ -12,7 +12,7 @@ export default defineComponent({ components: { 'ft-loader': FtLoader, 'ft-card': FtCard, - 'ft-list-video-lazy': FtListVideoLazy + 'ft-list-video-lazy': FtListVideoLazy, }, props: { playlistId: { @@ -22,7 +22,11 @@ export default defineComponent({ videoId: { type: String, required: true - } + }, + watchViewLoading: { + type: Boolean, + required: true + }, }, data: function () { return { @@ -34,7 +38,7 @@ export default defineComponent({ channelId: '', playlistTitle: '', playlistItems: [], - randomizedPlaylistItems: [] + randomizedPlaylistItems: [], } }, computed: { @@ -106,7 +110,25 @@ export default defineComponent({ this.shufflePlaylistItems() } } - } + }, + watchViewLoading: function(newVal, oldVal) { + // This component is loaded/rendered before watch view loaded + if (oldVal && !newVal) { + // Scroll after watch view loaded, otherwise doesn't work + // Mainly for Local API + // nextTick(() => this.scrollToCurrentVideo()) + this.scrollToCurrentVideo() + } + }, + isLoading: function(newVal, oldVal) { + // This component is loaded/rendered before watch view loaded + if (oldVal && !newVal) { + // Scroll after this component loaded, otherwise doesn't work + // Mainly for Invidious API + // `nextTick` is required (tested via reloading) + nextTick(() => this.scrollToCurrentVideo()) + } + }, }, mounted: function () { const cachedPlaylist = this.$store.getters.getCachedPlaylist @@ -388,6 +410,15 @@ export default defineComponent({ this.randomizedPlaylistItems = items }, + scrollToCurrentVideo: function () { + const container = this.$refs.playlistItems + const currentVideoItem = (this.$refs.currentVideoItem || [])[0] + if (container != null && currentVideoItem != null) { + // Watch view can be ready sooner than this component + container.scrollTop = currentVideoItem.offsetTop - container.offsetTop + } + }, + ...mapMutations([ 'setCachedPlaylist' ]) diff --git a/src/renderer/components/watch-video-playlist/watch-video-playlist.vue b/src/renderer/components/watch-video-playlist/watch-video-playlist.vue index 489cb7a35..4c2e23db8 100644 --- a/src/renderer/components/watch-video-playlist/watch-video-playlist.vue +++ b/src/renderer/components/watch-video-playlist/watch-video-playlist.vue @@ -88,11 +88,13 @@

@@ -117,6 +119,7 @@ :playlist-loop="loopEnabled" appearance="watchPlaylistItem" force-list-type="list" + :initial-visible-state="index < ((currentVideoIndex - 1) + 4) && index > ((currentVideoIndex - 1) - 4)" @pause-player="$emit('pause-player')" />
diff --git a/src/renderer/views/Watch/Watch.vue b/src/renderer/views/Watch/Watch.vue index ceb0086ac..7c27cc4b5 100644 --- a/src/renderer/views/Watch/Watch.vue +++ b/src/renderer/views/Watch/Watch.vue @@ -162,6 +162,7 @@ v-if="watchingPlaylist" v-show="!isLoading" ref="watchVideoPlaylist" + :watch-view-loading="isLoading" :playlist-id="playlistId" :video-id="videoId" class="watchVideoSideBar watchVideoPlaylist" From da4f9c9b980f6669939e1d2f438d69ce18af7ff6 Mon Sep 17 00:00:00 2001 From: efb4f5ff-1298-471a-8973-3d47447115dc <73130443+efb4f5ff-1298-471a-8973-3d47447115dc@users.noreply.github.com> Date: Fri, 19 May 2023 02:14:02 +0000 Subject: [PATCH 29/36] Interpunction README.md (#3562) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c674179d2..c68c42719 100644 --- a/README.md +++ b/README.md @@ -129,7 +129,7 @@ If you enjoy using FreeTube, you're welcome to leave a donation using the follow * Monero Address: `48WyAPdjwc6VokeXACxSZCFeKEXBiYPV6GjfvBsfg4CrUJ95LLCQSfpM9pvNKy5GE5H4hNaw99P8RZyzmaU9kb1pD7kzhCB` -While your donations are much appreciated, only donate if you really want to. Donations are used for keeping the website up and running and eventual code signing costs. If you are using the Invidious API then we recommend that you donate to the instance that you use. You can also donate to the [Invidious team](https://invidious.io/donate/) or the [Local API developer](https://github.com/sponsors/LuanRT) +While your donations are much appreciated, only donate if you really want to. Donations are used for keeping the website up and running and eventual code signing costs. If you are using the Invidious API then we recommend that you donate to the instance that you use. You can also donate to the [Invidious team](https://invidious.io/donate/) or the [Local API developer](https://github.com/sponsors/LuanRT). ## License [![GNU AGPLv3 Image](https://www.gnu.org/graphics/agplv3-155x51.png)](https://www.gnu.org/licenses/agpl-3.0.html) From 4b4724b8a0c80fbf22589cbc9b2105b5d6f83b9d Mon Sep 17 00:00:00 2001 From: Yaron Shahrabani Date: Fri, 19 May 2023 07:08:11 +0000 Subject: [PATCH 30/36] Translated using Weblate (Hebrew) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/he/ --- static/locales/he.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/static/locales/he.yaml b/static/locales/he.yaml index 27bbf5473..5d91593eb 100644 --- a/static/locales/he.yaml +++ b/static/locales/he.yaml @@ -392,6 +392,7 @@ Settings: Hide Featured Channels: הסתרת ערוצים מומלצים Hide Channel Playlists: הסתרת רשימת נגינה של ערוץ Hide Channel Community: הסתרת קהילת הערוץ + Hide Channel Shorts: הסתרת ה־Shorts של הערוץ The app needs to restart for changes to take effect. Restart and apply change?: צריך להפעיל את היישומון מחדש כדי שהשינויים ייכנסו לתוקף. להפעיל מחדש ולהחיל את השינוי? Proxy Settings: @@ -612,6 +613,9 @@ Channel: Live: חי This channel does not currently have any live streams: לערוץ הזה אין שידורים חיים כרגע + Shorts: + Shorts: Shorts + This channel does not currently have any shorts: אין כרגע Shorts בערוץ הזה Video: Mark As Watched: 'סמנו כנצפה' Remove From History: 'מחקו מהיסטוריית הצפייה' From 025bd30bb9d79d147cc47f48efcc4940e852c47b Mon Sep 17 00:00:00 2001 From: gallegonovato Date: Fri, 19 May 2023 12:25:21 +0000 Subject: [PATCH 31/36] Translated using Weblate (Spanish) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/es/ --- static/locales/es.yaml | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/static/locales/es.yaml b/static/locales/es.yaml index 3219880ad..bf92ac4dc 100644 --- a/static/locales/es.yaml +++ b/static/locales/es.yaml @@ -273,6 +273,8 @@ Settings: Skip by Scrolling Over Video Player: Omitir al desplazarse sobre el reproductor de vídeo Allow DASH AV1 formats: Permitir formatos DASH AV1 + Comment Auto Load: + Comment Auto Load: Cargar los comentarios automáticamente Privacy Settings: Privacy Settings: 'Privacidad' Remember History: 'Recordar historial' @@ -397,6 +399,10 @@ Settings: Hide Channels Placeholder: Nombre o ID del canal Display Titles Without Excessive Capitalisation: Mostrar títulos sin demasiadas mayúsculas + Hide Featured Channels: Ocultar los canales recomendados + Hide Channel Playlists: Ocultar las listas de reproducción de los canales + Hide Channel Community: Ocultar los canal de la comunidad + Hide Channel Shorts: Ocultar los canales de vídeos cortos The app needs to restart for changes to take effect. Restart and apply change?: ¿Quieres reiniciar FreeTube ahora para aplicar los cambios? Proxy Settings: @@ -619,6 +625,10 @@ Channel: Live: En directo This channel does not currently have any live streams: Este canal no tiene actualmente ninguna retransmisión en directo + Shorts: + Shorts: Cortos + This channel does not currently have any shorts: Este canal no tiene actualmente + ningún vídeo corto Video: Mark As Watched: 'Marcar como visto' Remove From History: 'Borrar del historial' @@ -914,9 +924,9 @@ Tooltips: Preferred API Backend: Elija el motor que debe utilizar FreeTube para obtener datos. La API local es un extractor incorporado. La API de Invidious requiere de un servidor Invidious al cual conectarse. - External Link Handling: "Elija el comportamiento por defecto cuando se hace clic\ - \ en un enlace que no se pueda abrirse en FreeTube. \nPor defecto, FreeTube\ - \ abrirá el enlace en el que se hizo clic en su navegador predeterminado.\n" + External Link Handling: "Elija el comportamiento por defecto cuando se hace clic + en un enlace que no se pueda abrirse en FreeTube. \nPor defecto, FreeTube abrirá + el enlace en el que se hizo clic en su navegador predeterminado.\n" Privacy Settings: Remove Video Meta Files: Cuando se active, FreeTube eliminará automáticamente meta-archivos creados durante la reproducción del vídeo una vez se cierre la @@ -996,3 +1006,9 @@ Chapters: Chapters: Capítulos Preferences: Preferencias Ok: De acuerdo +Hashtag: + Hashtag: Hashtag + This hashtag does not currently have any videos: Este hashtag no tiene actualmente + ningún vídeo + You can only view hashtag pages through the Local API: Sólo puedes ver las páginas + de los hashtags a través de la API local From 5445800ff361ca3423b62fbefb6c6e2845fda199 Mon Sep 17 00:00:00 2001 From: Rex_sa Date: Fri, 19 May 2023 17:50:49 +0000 Subject: [PATCH 32/36] Translated using Weblate (Arabic) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/ar/ --- static/locales/ar.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/static/locales/ar.yaml b/static/locales/ar.yaml index d1ddd8b6e..27ccf6998 100644 --- a/static/locales/ar.yaml +++ b/static/locales/ar.yaml @@ -615,7 +615,7 @@ Channel: This channel does not currently have any live streams: لا يوجد حاليا أي بث مباشر على هذه القناة Shorts: - Shorts: Shorts + Shorts: القصيرة This channel does not currently have any shorts: هذه القناة ليس لديها حاليا أي أفلام قصيرة (shorts) Video: From d1b35a8658d1a4f35879d11892a5720ad1665444 Mon Sep 17 00:00:00 2001 From: Alexthegib Date: Fri, 19 May 2023 20:37:40 +0000 Subject: [PATCH 33/36] Translated using Weblate (Portuguese (Portugal)) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pt_PT/ --- static/locales/pt-PT.yaml | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/static/locales/pt-PT.yaml b/static/locales/pt-PT.yaml index 40a76918c..c972fc26e 100644 --- a/static/locales/pt-PT.yaml +++ b/static/locales/pt-PT.yaml @@ -277,6 +277,8 @@ Settings: Enter Fullscreen on Display Rotate: Ativar modo de ecrã completo ao rodar o ecrã Skip by Scrolling Over Video Player: Saltar por percorrer o leitor de vídeo Allow DASH AV1 formats: Permitir formatos DASH AV1 + Comment Auto Load: + Comment Auto Load: Comentário Carga automática Privacy Settings: Privacy Settings: Definições de privacidade Remember History: Memorizar histórico @@ -330,6 +332,10 @@ Settings: Hide Channels Placeholder: Nome ou identificação do canal Display Titles Without Excessive Capitalisation: Mostrar Títulos sem Capitalização Excessiva + Hide Featured Channels: Ocultar canais em destaque + Hide Channel Playlists: Ocultar listas de reprodução de canais + Hide Channel Community: Ocultar canal Comunidade + Hide Channel Shorts: Esconder as curtas do canal Data Settings: Data Settings: Definições de dados Select Import Type: Escolher tipo de importação @@ -572,6 +578,10 @@ Channel: Live: Em directo This channel does not currently have any live streams: Este canal não tem atualmente nenhuma transmissão ao vivo + Shorts: + Shorts: Curtas + This channel does not currently have any shorts: Este canal não tem atualmente + nenhum canal curto Video: Mark As Watched: Marcar como visto Remove From History: Remover do histórico @@ -607,8 +617,8 @@ Video: permitida nesta versão. 'Chat is disabled or the Live Stream has ended.': A conversa ou a emissão em direto já terminou. - Live chat is enabled. Chat messages will appear here once sent.: A conversa em - direto está ativada. As mensagens vão aparecer aqui. + Live chat is enabled. Chat messages will appear here once sent.: A conversa em direto + está ativada. As mensagens vão aparecer aqui. 'Live Chat is currently not supported with the Invidious API. A direct connection to YouTube is required.': A conversação em direto não se encontra a funcionar com a API Invividious. É necessária uma ligação direta ao YouTube. @@ -801,9 +811,9 @@ Tooltips: Region for Trending: A região de tendências permite-lhe escolher de que país virão os vídeos na secção das tendências. Nem todos os países mostrados funcionam corretamente. - External Link Handling: "Escolha o comportamento padrão quando uma ligação, que\ - \ não pode ser aberta no FreeTube, é clicada.\nPor definição, o FreeTube abrirá\ - \ a ligação no seu navegador de Internet.\n" + External Link Handling: "Escolha o comportamento padrão quando uma ligação, que + não pode ser aberta no FreeTube, é clicada.\nPor definição, o FreeTube abrirá + a ligação no seu navegador de Internet.\n" Player Settings: Force Local Backend for Legacy Formats: Apenas funciona quando a API Invidious é o seu sistema usado. Quando ativada, a API local será executada para usar @@ -935,3 +945,9 @@ Clipboard: Cannot access clipboard without a secure connection: Não é possível aceder à área de transferência sem uma ligação segura Ok: Ok +Hashtag: + Hashtag: Marcador + You can only view hashtag pages through the Local API: Só é possível ver páginas + de hashtag através da API local + This hashtag does not currently have any videos: Esta hashtag não tem atualmente + quaisquer vídeos From 5be29042fbecaff050259438e42871bb7c7e61e0 Mon Sep 17 00:00:00 2001 From: Alexthegib Date: Fri, 19 May 2023 20:38:49 +0000 Subject: [PATCH 34/36] Translated using Weblate (Portuguese) Currently translated at 100.0% (684 of 684 strings) Translation: FreeTube/Translations Translate-URL: https://hosted.weblate.org/projects/free-tube/translations/pt/ --- static/locales/pt.yaml | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/static/locales/pt.yaml b/static/locales/pt.yaml index b3a7c6f8e..c1c1f3398 100644 --- a/static/locales/pt.yaml +++ b/static/locales/pt.yaml @@ -273,6 +273,8 @@ Settings: Enter Fullscreen on Display Rotate: Ativar modo de ecrã completo ao rodar o ecrã Skip by Scrolling Over Video Player: Saltar ao rolar por cima do leitor de vídeo Allow DASH AV1 formats: Permitir formatos DASH AV1 + Comment Auto Load: + Comment Auto Load: Comentário Carga automática Privacy Settings: Privacy Settings: 'Definições de privacidade' Remember History: 'Memorizar histórico' @@ -427,6 +429,10 @@ Settings: Hide Channels Placeholder: Nome ou ID do canal Display Titles Without Excessive Capitalisation: Mostrar títulos sem maiúsculas em excesso + Hide Featured Channels: Ocultar canais em destaque + Hide Channel Playlists: Ocultar listas de reprodução de canais + Hide Channel Community: Ocultar canal Comunidade + Hide Channel Shorts: Esconder as curtas do canal External Player Settings: Custom External Player Arguments: Argumentos do reprodutor externo personalizado Custom External Player Executable: Executável de reprodutor externo personalizado @@ -619,6 +625,10 @@ Channel: Live: Em directo This channel does not currently have any live streams: Este canal não tem atualmente nenhuma transmissão ao vivo + Shorts: + Shorts: Curtas + This channel does not currently have any shorts: Este canal não tem atualmente + nenhum canal curto Video: Mark As Watched: 'Marcar como visto' Remove From History: 'Remover do histórico' @@ -937,9 +947,9 @@ Tooltips: Preferred API Backend: Escolha o sistema que o FreeTube usa para se ligar ao YouTube. A API local é um extrator incorporado. A API Invidious requer um servidor Invidious para fazer a ligação. - External Link Handling: "Escolha o comportamento padrão quando uma ligação, que\ - \ não pode ser aberta no FreeTube, é clicada.\nPor definição, o FreeTube abrirá\ - \ a ligação no seu navegador de Internet.\n" + External Link Handling: "Escolha o comportamento padrão quando uma ligação, que + não pode ser aberta no FreeTube, é clicada.\nPor definição, o FreeTube abrirá + a ligação no seu navegador de Internet.\n" Experimental Settings: Replace HTTP Cache: Desativa a cache HTTP Electron e ativa uma cache de imagem na memória personalizada. Levará ao aumento da utilização de RAM. @@ -987,3 +997,9 @@ Clipboard: de transferência sem uma ligação segura Preferences: Preferências Ok: Ok +Hashtag: + Hashtag: Marcador + This hashtag does not currently have any videos: Esta hashtag não tem atualmente + quaisquer vídeos + You can only view hashtag pages through the Local API: Só é possível ver páginas + de hashtag através da API local From d34cf0dd5cffd5f5e0b5e18d2f98a24d219b0e66 Mon Sep 17 00:00:00 2001 From: absidue <48293849+absidue@users.noreply.github.com> Date: Sat, 20 May 2023 14:48:15 +0200 Subject: [PATCH 35/36] local API: Support multiple audio tracks (#3563) * local API: Support multiple audio tracks * Simplify resume logic Co-authored-by: PikachuEXE * Change track selector position --------- Co-authored-by: PikachuEXE --- .../ft-video-player/ft-video-player.js | 102 +++++++++++-- src/renderer/views/Watch/Watch.js | 141 +++++++++++++++--- src/renderer/views/Watch/Watch.vue | 1 + 3 files changed, 212 insertions(+), 32 deletions(-) diff --git a/src/renderer/components/ft-video-player/ft-video-player.js b/src/renderer/components/ft-video-player/ft-video-player.js index 6185f87e8..f285e312a 100644 --- a/src/renderer/components/ft-video-player/ft-video-player.js +++ b/src/renderer/components/ft-video-player/ft-video-player.js @@ -82,6 +82,10 @@ export default defineComponent({ chapters: { type: Array, default: () => { return [] } + }, + audioTracks: { + type: Array, + default: () => ([]) } }, data: function () { @@ -89,6 +93,7 @@ export default defineComponent({ powerSaveBlocker: null, volume: 1, muted: false, + /** @type {(import('video.js').VideoJsPlayer|null)} */ player: null, useDash: false, useHls: false, @@ -129,6 +134,7 @@ export default defineComponent({ 'screenshotButton', 'playbackRateMenuButton', 'loopButton', + 'audioTrackButton', 'chaptersButton', 'descriptionsButton', 'subsCapsButton', @@ -309,6 +315,24 @@ export default defineComponent({ this.toggleScreenshotButton() } }, + created: function () { + this.dataSetup.playbackRates = this.playbackRates + + if (this.format === 'audio') { + // hide the PIP button for the audio formats + const controlBarItems = this.dataSetup.controlBar.children + const index = controlBarItems.indexOf('pictureInPictureToggle') + controlBarItems.splice(index, 1) + } + + if (this.format === 'legacy' || this.audioTracks.length === 0) { + // hide the audio track selector for the legacy formats + // and Invidious(it doesn't give us the information for multiple audio tracks yet) + const controlBarItems = this.dataSetup.controlBar.children + const index = controlBarItems.indexOf('audioTrackButton') + controlBarItems.splice(index, 1) + } + }, mounted: function () { const volume = sessionStorage.getItem('volume') const muted = sessionStorage.getItem('muted') @@ -323,8 +347,6 @@ export default defineComponent({ this.muted = (muted === 'true') } - this.dataSetup.playbackRates = this.playbackRates - if (this.format === 'dash') { this.determineDefaultQualityDash() } @@ -370,13 +392,6 @@ export default defineComponent({ await this.determineDefaultQualityLegacy() } - if (this.format === 'audio') { - // hide the PIP button for the audio formats - const controlBarItems = this.dataSetup.controlBar.children - const index = controlBarItems.indexOf('pictureInPictureToggle') - controlBarItems.splice(index, 1) - } - // regardless of what DASH qualities you enable or disable in the qualityLevels plugin // the first segments videojs-http-streaming requests are chosen based on the available bandwidth, which is set to 0.5MB/s by default // overriding that to be the same as the quality we requested, makes videojs-http-streamming pick the correct quality @@ -427,6 +442,36 @@ export default defineComponent({ }) } + // for the DASH formats, videojs-http-streaming takes care of the audio track management for us, + // thanks to the values in the DASH manifest + // so we only need a custom implementation for the audio only formats + if (this.format === 'audio' && this.audioTracks.length > 0) { + /** @type {import('../../views/Watch/Watch.js').AudioTrack[]} */ + const audioTracks = this.audioTracks + + const audioTrackList = this.player.audioTracks() + audioTracks.forEach(({ id, kind, label, language, isDefault: enabled }) => { + audioTrackList.addTrack(new videojs.AudioTrack({ + id, kind, label, language, enabled, + })) + }) + + audioTrackList.on('change', () => { + let trackId + // doesn't support foreach so we need to use an indexed for loop here + for (let i = 0; i < audioTrackList.length; i++) { + const track = audioTrackList[i] + + if (track.enabled) { + trackId = track.id + break + } + } + + this.changeAudioTrack(trackId) + }) + } + this.player.volume(this.volume) this.player.muted(this.muted) this.player.playbackRate(this.defaultPlayback) @@ -835,6 +880,45 @@ export default defineComponent({ } }, + /** + * @param {string} trackId + */ + changeAudioTrack: function (trackId) { + // changing the player sources resets it, so we need to store the values that get reset, + // before we change the sources and restore them afterwards + const isPaused = this.player.paused() + const currentTime = this.player.currentTime() + const playbackRate = this.player.playbackRate() + const selectedQualityIndex = this.player.currentSources().findIndex(quality => quality.selected) + + const newSourceList = this.audioTracks.find(audioTrack => audioTrack.id === trackId).sourceList + + // video.js doesn't pick up changes to the sources in the HTML after it's initial load + // updating the sources of an existing player requires calling player.src() instead + // which accepts a different object that what use for the html sources + + const newSources = newSourceList.map((source, index) => { + return { + src: source.url, + type: source.type, + label: source.qualityLabel, + selected: index === selectedQualityIndex + } + }) + + this.player.one('canplay', () => { + this.player.currentTime(currentTime) + this.player.playbackRate(playbackRate) + + // need to call play to restore the player state, even if we want to pause afterwards + this.player.play().then(() => { + if (isPaused) { this.player.pause() } + }) + }) + + this.player.src(newSources) + }, + determineFormatType: function () { if (this.format === 'dash') { this.enableDashFormat() diff --git a/src/renderer/views/Watch/Watch.js b/src/renderer/views/Watch/Watch.js index f816c4d9c..8844c9fda 100644 --- a/src/renderer/views/Watch/Watch.js +++ b/src/renderer/views/Watch/Watch.js @@ -31,6 +31,22 @@ import { } from '../../helpers/api/local' import { filterInvidiousFormats, invidiousGetVideoInformation, youtubeImageUrlToInvidious } from '../../helpers/api/invidious' +/** + * @typedef {object} AudioSource + * @property {string} url + * @property {string} type + * @property {string} label + * @property {string} qualityLabel + * + * @typedef {object} AudioTrack + * @property {string} id + * @property {('main'|'translation'|'descriptions'|'alternative')} kind - https://videojs.com/guides/audio-tracks/#kind + * @property {string} label + * @property {string} language + * @property {boolean} isDefault + * @property {AudioSource[]} sourceList + */ + export default defineComponent({ name: 'Watch', components: { @@ -88,6 +104,10 @@ export default defineComponent({ activeSourceList: [], videoSourceList: [], audioSourceList: [], + /** + * @type {AudioTrack[]} + */ + audioTracks: [], adaptiveFormats: [], captionHybridList: [], // [] -> Promise[] -> string[] (URIs) recommendedVideos: [], @@ -196,6 +216,7 @@ export default defineComponent({ this.captionHybridList = [] this.downloadLinks = [] this.videoCurrentChapterIndex = 0 + this.audioTracks = [] this.checkIfPlaylist() this.checkIfTimestamp() @@ -557,32 +578,68 @@ export default defineComponent({ } if (result.streaming_data?.adaptive_formats.length > 0) { - this.audioSourceList = result.streaming_data.adaptive_formats.filter((format) => { + const audioFormats = result.streaming_data.adaptive_formats.filter((format) => { return format.has_audio - }).sort((a, b) => { - return a.bitrate - b.bitrate - }).map((format, index) => { - const label = (x) => { - switch (x) { - case 0: - return this.$t('Video.Audio.Low') - case 1: - return this.$t('Video.Audio.Medium') - case 2: - return this.$t('Video.Audio.High') - case 3: - return this.$t('Video.Audio.Best') - default: - return format.bitrate + }) + + const hasMultipleAudioTracks = audioFormats.some(format => format.audio_track) + + if (hasMultipleAudioTracks) { + /** @type {string[]} */ + const ids = [] + + /** @type {AudioTrack[]} */ + const audioTracks = [] + + /** @type {import('youtubei.js').Misc.Format[][]} */ + const sourceLists = [] + + audioFormats.forEach(format => { + const index = ids.indexOf(format.audio_track.id) + if (index === -1) { + ids.push(format.audio_track.id) + + let kind + + if (format.audio_track.audio_is_default) { + kind = 'main' + } else if (format.is_dubbed) { + kind = 'translation' + } else if (format.is_descriptive) { + kind = 'descriptions' + } else { + kind = 'alternative' + } + + audioTracks.push({ + id: format.audio_track.id, + kind, + label: format.audio_track.display_name, + language: format.language, + isDefault: format.audio_track.audio_is_default, + sourceList: [] + }) + + sourceLists.push([ + format + ]) + } else { + sourceLists[index].push(format) } + }) + + for (let i = 0; i < audioTracks.length; i++) { + audioTracks[i].sourceList = this.createLocalAudioSourceList(sourceLists[i]) } - return { - url: format.url, - type: format.mime_type, - label: 'Audio', - qualityLabel: label(index) - } - }).reverse() + + this.audioTracks = audioTracks + + this.audioSourceList = this.audioTracks.find(track => track.isDefault).sourceList + } else { + this.audioTracks = [] + + this.audioSourceList = this.createLocalAudioSourceList(audioFormats) + } // we need to alter the result object so the toDash function uses the filtered formats too result.streaming_data.adaptive_formats = filterLocalFormats(result.streaming_data.adaptive_formats, this.allowDashAv1Formats) @@ -626,6 +683,8 @@ export default defineComponent({ console.error(err) if (this.backendPreference === 'local' && this.backendFallback && !err.toString().includes('private')) { showToast(this.$t('Falling back to Invidious API')) + // Invidious doesn't support multiple audio tracks, so we need to clear this to prevent the player getting confused + this.audioTracks = [] this.getVideoInformationInvidious() } else { this.isLoading = false @@ -881,6 +940,42 @@ export default defineComponent({ } }, + /** + * @param {import('youtubei.js').Misc.Format[]} audioFormats + * @returns {AudioSource[]} + */ + createLocalAudioSourceList: function (audioFormats) { + return audioFormats.sort((a, b) => { + return a.bitrate - b.bitrate + }).map((format, index) => { + let label + + switch (index) { + case 0: + label = this.$t('Video.Audio.Low') + break + case 1: + label = this.$t('Video.Audio.Medium') + break + case 2: + label = this.$t('Video.Audio.High') + break + case 3: + label = this.$t('Video.Audio.Best') + break + default: + label = format.bitrate.toString() + } + + return { + url: format.url, + type: format.mime_type, + label: 'Audio', + qualityLabel: label + } + }).reverse() + }, + addToHistory: function (watchProgress) { const videoData = { videoId: this.videoId, diff --git a/src/renderer/views/Watch/Watch.vue b/src/renderer/views/Watch/Watch.vue index 7c27cc4b5..3b9ba3d18 100644 --- a/src/renderer/views/Watch/Watch.vue +++ b/src/renderer/views/Watch/Watch.vue @@ -21,6 +21,7 @@ ref="videoPlayer" :dash-src="dashSrc" :source-list="activeSourceList" + :audio-tracks="audioTracks" :adaptive-formats="adaptiveFormats" :caption-hybrid-list="captionHybridList" :storyboard-src="videoStoryboardSrc" From ccbf7e21551bc03ca92746530e70acb2c6535551 Mon Sep 17 00:00:00 2001 From: ChunkyProgrammer <78101139+ChunkyProgrammer@users.noreply.github.com> Date: Sat, 20 May 2023 09:07:04 -0400 Subject: [PATCH 36/36] Use script to create Invidious instance list file (#3545) * Use script to create static instance list * save cors, filter out cors when not electron --- _scripts/getInstances.js | 16 ++++ package.json | 1 + src/renderer/store/modules/invidious.js | 6 +- static/invidious-instances.json | 121 +++++++++++++++++++----- 4 files changed, 118 insertions(+), 26 deletions(-) create mode 100644 _scripts/getInstances.js diff --git a/_scripts/getInstances.js b/_scripts/getInstances.js new file mode 100644 index 000000000..d1b5bdb9b --- /dev/null +++ b/_scripts/getInstances.js @@ -0,0 +1,16 @@ +const fs = require('fs/promises') +const invidiousApiUrl = 'https://api.invidious.io/instances.json' + +fetch(invidiousApiUrl).then(e => e.json()).then(res => { + const data = res.filter((instance) => { + return !(instance[0].includes('.onion') || + instance[0].includes('.i2p') || + !instance[1].api) + }).map((instance) => { + return { + url: instance[1].uri.replace(/\/$/, ''), + cors: instance[1].cors + } + }) + fs.writeFile('././static/invidious-instances.json', JSON.stringify(data, null, 2)) +}) diff --git a/package.json b/package.json index 31205e985..aa28d89b8 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "dev": "run-s rebuild:electron dev-runner", "dev:web": "node _scripts/dev-runner.js --web", "dev-runner": "node _scripts/dev-runner.js", + "get-instances": "node _scripts/getInstances.js", "lint-all": "run-p lint lint-json lint-style", "lint-fix": "eslint --fix --ext .js,.vue ./", "lint": "eslint --ext .js,.vue ./", diff --git a/src/renderer/store/modules/invidious.js b/src/renderer/store/modules/invidious.js index c188b90cc..f6a456366 100644 --- a/src/renderer/store/modules/invidious.js +++ b/src/renderer/store/modules/invidious.js @@ -44,8 +44,10 @@ const actions = { if (await pathExists(`${fileLocation}${fileName}`)) { console.warn('reading static file for invidious instances') const fileData = await fs.readFile(`${fileLocation}${fileName}`) - instances = JSON.parse(fileData).map((entry) => { - return entry.url + instances = JSON.parse(fileData).filter(e => { + return process.env.IS_ELECTRON || e.cors + }).map(e => { + return e.url }) } } diff --git a/static/invidious-instances.json b/static/invidious-instances.json index c1803061c..f5c1792ec 100644 --- a/static/invidious-instances.json +++ b/static/invidious-instances.json @@ -1,25 +1,98 @@ [ - { "url": "https://vid.puffyan.us" }, - { "url": "https://inv.riverside.rocks" }, - { "url": "https://watch.thekitty.zone" }, - { "url": "https://y.com.sb" }, - { "url": "https://invidious.nerdvpn.de" }, - { "url": "https://invidious.tiekoetter.com" }, - { "url": "https://yt.artemislena.eu" }, - { "url": "https://invidious.flokinet.to" }, - { "url": "https://inv.bp.projectsegfau.lt" }, - { "url": "https://inv.odyssey346.dev" }, - { "url": "https://invidious.sethforprivacy.com" }, - { "url": "https://invidious.projectsegfau.lt" }, - { "url": "https://invidious.baczek.me" }, - { "url": "https://yt.funami.tech" }, - { "url": "https://iv.ggtyler.dev" }, - { "url": "https://invidious.lunar.icu" }, - { "url": "https://invidious.privacydev.net" }, - { "url": "https://vid.priv.au" }, - { "url": "https://invidious.0011.lt" }, - { "url": "https://iv.melmac.space" }, - { "url": "https://invidious.esmailelbob.xyz" }, - { "url": "https://invidious.vpsburti.com" }, - { "url": "https://invidious.snopyta.org" } -] + { + "url": "https://vid.puffyan.us", + "cors": true + }, + { + "url": "https://inv.riverside.rocks", + "cors": true + }, + { + "url": "https://invidious.nerdvpn.de", + "cors": true + }, + { + "url": "https://invidious.tiekoetter.com", + "cors": true + }, + { + "url": "https://inv.bp.projectsegfau.lt", + "cors": true + }, + { + "url": "https://invidious.flokinet.to", + "cors": true + }, + { + "url": "https://yt.artemislena.eu", + "cors": true + }, + { + "url": "https://inv.pistasjis.net", + "cors": true + }, + { + "url": "https://invidious.sethforprivacy.com", + "cors": true + }, + { + "url": "https://invidious.projectsegfau.lt", + "cors": true + }, + { + "url": "https://invidious.baczek.me", + "cors": true + }, + { + "url": "https://yt.funami.tech", + "cors": true + }, + { + "url": "https://iv.ggtyler.dev", + "cors": true + }, + { + "url": "https://invidious.lunar.icu", + "cors": true + }, + { + "url": "https://invidious.privacydev.net", + "cors": true + }, + { + "url": "https://vid.priv.au", + "cors": true + }, + { + "url": "https://invidious.0011.lt", + "cors": true + }, + { + "url": "https://inv.zzls.xyz", + "cors": true + }, + { + "url": "https://invidious.slipfox.xyz", + "cors": true + }, + { + "url": "https://yt.floss.media", + "cors": false + }, + { + "url": "https://invidious.nogafa.org", + "cors": true + }, + { + "url": "https://iv.melmac.space", + "cors": true + }, + { + "url": "https://invidious.esmailelbob.xyz", + "cors": true + }, + { + "url": "https://invidious.snopyta.org", + "cors": true + } +] \ No newline at end of file