From 852e77127b580c4c81838bcd2da64a3aa6ac83a9 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 3 Nov 2023 01:59:27 +0530 Subject: [PATCH] =?UTF-8?q?Added=20a=20selector=20for=20codecs,=20fixed=20?= =?UTF-8?q?a=20lot=20of=20=E0=A6=AC=E0=A6=BE=E0=A6=82=E0=A6=B2=E0=A6=BE=20?= =?UTF-8?q?translations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/Player.vue | 7 +++-- src/routes/Preferences.vue | 25 ++++++++++++++-- src/store/prefs-store.js | 5 ++-- src/translations/bn-IN.json | 58 ++++++++++++++++++++----------------- src/translations/en.json | 6 ++++ 5 files changed, 67 insertions(+), 34 deletions(-) diff --git a/src/components/Player.vue b/src/components/Player.vue index c65458936e..95f94df428 100644 --- a/src/components/Player.vue +++ b/src/components/Player.vue @@ -59,10 +59,11 @@ export default { }, preferredVideoCodecs () { + const enabledCodecs = new Set(this.$store.getters['prefs/getPreference']('codecs')) const preferredVideoCodecs = [] - if (this.$refs.videoEl.canPlayType('video/mp4; codecs="av01.0.08M.08"') !== '') { preferredVideoCodecs.push('av01') } - if (this.$refs.videoEl.canPlayType('video/webm; codecs="vp9"') !== '') preferredVideoCodecs.push('vp9') - if (this.$refs.videoEl.canPlayType('video/mp4; codecs="avc1.4d401f"') !== '') { preferredVideoCodecs.push('avc1') } + if (this.$refs.videoEl.canPlayType('video/mp4; codecs="av01.0.08M.08"') !== '' && enabledCodecs.has('av01')) { preferredVideoCodecs.push('av01') } + if (this.$refs.videoEl.canPlayType('video/webm; codecs="vp9"') !== '' && enabledCodecs.has('vp9')) preferredVideoCodecs.push('vp9') + if (this.$refs.videoEl.canPlayType('video/mp4; codecs="avc1.4d401f"') !== '' && enabledCodecs.has('avc1')) { preferredVideoCodecs.push('avc1') } return preferredVideoCodecs }, diff --git a/src/routes/Preferences.vue b/src/routes/Preferences.vue index f9bcedacb3..33e5a692cc 100644 --- a/src/routes/Preferences.vue +++ b/src/routes/Preferences.vue @@ -129,7 +129,6 @@ export default { { id: 'homepage', type: 'select', - label: 'Default Homepage', default: 'trending', options: [ { @@ -145,7 +144,6 @@ export default { { id: 'feedColumns', type: 'select', - label: 'Amount of Columns on Feed Pages', default: 4, options: [ { @@ -210,7 +208,6 @@ export default { { id: 'selectedSkip', type: 'select', - label: 'Selected Segments to Skip', multi: true, options: [ { @@ -253,6 +250,28 @@ export default { o.text = this.$i18n.t(o.text) return o }) + }, + { + id: 'codecs', + type: 'select', + multi: true, + options: [ + { + text: 'preferences.codec_options.av01', + value: 'av01' + }, + { + text: 'preferences.codec_options.avc1', + value: 'avc1' + }, + { + text: 'preferences.codec_options.vp9', + value: 'vp9' + } + ].map(o => { + o.text = this.$i18n.t(o.text) + return o + }) } ] diff --git a/src/store/prefs-store.js b/src/store/prefs-store.js index 2182ab2bee..ff138c1339 100644 --- a/src/store/prefs-store.js +++ b/src/store/prefs-store.js @@ -29,7 +29,8 @@ const PrefsStore = { proxyLBRY: true, homepageButton: false, - selectedSkip: [] + selectedSkip: [], + codecs: ['av01', 'avc1', 'vp9'] } }), mutations: { @@ -47,7 +48,7 @@ const PrefsStore = { }, replacePrefs (state, nextPrefs) { - state.prefs = nextPrefs + state.prefs = Object.assign({}, state.prefs, nextPrefs) } }, actions: { diff --git a/src/translations/bn-IN.json b/src/translations/bn-IN.json index 319ef53f66..0bb8f2b3d1 100644 --- a/src/translations/bn-IN.json +++ b/src/translations/bn-IN.json @@ -2,7 +2,7 @@ "titles": { "homepage": "Homepage", "trending": "জনপ্রিয় video", - "register": "একাউন্ট বানাবেন?", + "register": "নতুন নথি বানাবেন?", "feed": "আপনার feed", "preferences": "পছন্দ অনুযায়ী মানিয়ে নিন", "history": "দেখার ইতিহাস", @@ -12,25 +12,25 @@ "unlisted": "অপ্রচারিত" }, "counts": { - "subscribers": "কেউ এই channel এর সদস্যতা নায়নি | একজন মাত্র এই channel এর সদস্যতা নিয়েছেন | {n} জন সদস্যতা নিয়েছেন", + "subscribers": "কেউ এই channel এর সদস্যতা নেয়নি | একজন মাত্র এই channel এর সদস্যতা নিয়েছেন | {n} জন সদস্যতা নিয়েছেন", "videos": "কোনো video নেই | একটি video | {n}টি video প্রকাশন করা হয়েছে", - "views": "কেউ দেখে নি এখন পর্যন্ত | একবার মাত্র দেখা হয়েছে এই videoটি কে | {n} বার দেখা হয়েছে এই videoটি কে" + "views": "কেউ দেখেনি এখন পর্যন্ত | একবার মাত্র দেখা হয়েছে এই videoটি কে | {n} বার দেখা হয়েছে এই videoটি কে" }, "errors": { "trendingFetchError": "জনপ্রিয় video খুঁজে পাওয়া যায়নি। দেখুন আপনার নির্বাচিত দেশ কে YouTube support করে কি না।" }, "playlists": { - "add_to_playlist": "video টি কি তালিকা তে যোগ করবেন?", + "add_to_playlist": "videoটি কি তালিকাতে যোগ করবেন?", "confirm_addition": "ঠিক তো?", "create_playlist": "নতুন তালিকা বানাবেন?", "playlist_field_name": "তালিকার নাম", "remove_video": "আপনি কি এই videoটি এই তালিকা থেকে বাদ দিতে চান?", - "delete_self": "আপনি কি এই তালিকা কে মুছে দিতে চান?", + "delete_self": "আপনি কি এই তালিকা কে মুছে ফেলতে চান?", "rename_self": "আপনি কি এই তালিকা কে নতুন নাম দিতে চান?", - "new_name_msg": "তালিকার নতুন নাম কি হবে?" + "new_name_msg": "তালিকার নতুন নাম কী হবে?" }, "misc": { - "searchBarLabel": "আপনি কী সন্ধান করছেন?", + "searchBarLabel": "আপনার কী সন্ধান?", "lastWatchedTill": "আপনি {t} পর্যন্ত দেখেছিলেন", "watchedAgo": "{t} দেখেছিলেন এই videoটি {p} অব্দি" }, @@ -58,11 +58,11 @@ }, "actions": { "loadComments": "মন্তব্য খুঁজে আনব?", - "logInSignUp": "বর্তমান account (নথি) এর ব্যবহার করবেন বা নতুন নথি খুলবেন?", + "logInSignUp": "বিদ্যমান নথি এর ব্যবহার করবেন বা নতুন নথি খুলবেন?", "logOut": "নথি থেকে প্রস্থান করবেন?", - "loadReplies": "মন্তব্য - খুঁজে আনবো?", - "hideReplies": "মন্তব্য - লোকাবো?", - "showReplies": "মন্তব্য - দেখাবো?", + "loadReplies": "মন্তব্য – খুঁজে আনবো?", + "hideReplies": "মন্তব্য – লোকাবো?", + "showReplies": "মন্তব্য – দেখাবো?", "subscribe": "সদস্যতা নেবেন?", "unsubscribe": "সদস্যতা পরিত্যাগ করবেন?", "view_subscriptions": "channel এ সদস্যতার তালিকা", @@ -70,8 +70,8 @@ "sort_by": "কোন ক্রমানুযায়ী video গুলো আসবে ", "most_recent": "সবচেয়ে নতুন আগে", "least_recent": "সবচেয়ে পুরোনো আগে", - "channel_name_asc": "চ্যানেলের নাম অনুসারে (A-Z)", - "channel_name_desc": "চ্যানেলের নাম অনুসারে (Z-A)", + "channel_name_asc": "channelএর নাম অনুসারে (A-Z)", + "channel_name_desc": "channelএর নাম অনুসারে (Z-A)", "back": "ফেরত যাবেন?", "uses_api_from": "এই পরিষেবাটি ব্যবহার করে : ", "enable_sponsorblock": "আপনি কি SponsorBlock সক্রিয় করতে চান ?", @@ -93,8 +93,8 @@ "language_selection": "আপনি কোন ভাষায় দেখতে চান ?", "instances_list": "এই প্রতিনিধির তালিকা", "enabled_codecs": "Enabled Codecs (Multiple)", - "accounts": "আপনার account (নথি)", - "delAccountMessage": "আপনি কি আপনার account (নথি) কে মুছে ফেলতে চান?", + "accounts": "আপনার নথি (account)", + "delAccountMessage": "আপনি কি আপনার নথি (account) কে মুছে ফেলতে চান?", "logOutFromAllDevices": "সব যন্ত্র থেকে কি আপনি প্রস্থান করতে চান?", "confirmPWToDelAcc": "আপনার account মোছার জন্যে আপনার গোপনশব্দটি আরেকবার দিন", "related_videos": "অন্য সম্পর্কিত video", @@ -105,26 +105,26 @@ "enable_dark_mode": "কৃষ্ণাভ রূপে দেখবেন?" }, "preferences": { - "colorScheme": "কি রঙে আপনি দেখতে চান", + "colorScheme": "কী রঙে আপনি দেখতে চান", "feedColumns": "কোনো পাতা এ কটি করে স্তম্ভ দেখতে চান আপনি", "sponsorblock": "আপনি কি SponsorBlock সক্রিয় করতে চান ?", "selectedSkip": "কি কি ধরনের videoর অংশ এড়িয়ে যেতে চান আপনি ?", "skipToLastPoint": "পুরোনো video দেখার সময় আগে যতটি অব্দি দেখেছিলেন সেখানে চলে যাওয়া উচিত?", "disableLBRY": "যে video গুলি LBRY তে আছে সেগুলো কি সেখান থেকেই সরাসরি চালানো উচিত নয় ?", - "proxyLBRY": "LBRY থেকে যে video গুলি কে চালানো হচ্ছে সেগুলো কি আমাদের প্রতিনিধি দ্বারা চালানো হবে ?", + "proxyLBRY": "LBRY থেকে যে videoগুলি কে চালানো হচ্ছে সেগুলো কি আমাদের প্রতিনিধি দ্বারা চালানো হবে ?", "playerAutoplay": "video নিজে থেকে চলবে কি না", "listen": "শুধু আওয়াজ শুনবেন কি না", - "quality": "এই উৎকর্ষের videoটি লোড করা হবে যদি না আপনি অন্য কোনো পছন্দ করেন । ", - "region": "ইউটিউব ভাববে যে আপনি এই জায়গা তে আছেন", + "quality": "এই উৎকর্ষের videoটি কর্ষণ করা হবে যদি না আপনি অন্য কোনো পছন্দ করেন । ", + "region": "YouTube ভাববে যে আপনি এই জায়গা তে আছেন", "homepage": "website খোলার পর গতানুগতিক কী দেখবেন", - "homepageButton": "আপনি কী গোড়া তে ফিরে যাওয়ার জন্য আরেকটি বোতাম চান?", - "instance": "আমাদের প্রতিনিধি যে ইউটিউব এর সঙ্গে সব যোগাযোগ এর নিয়ন্ত্রণ আর দেখাশোনা করবে", + "homepageButton": "আপনি কী গোড়াতে ফিরে যাওয়ার জন্য আরেকটি বোতাম চান?", + "instance": "আমাদের প্রতিনিধি যে YouTube এর সঙ্গে সব যোগাযোগ এর নিয়ন্ত্রণ আর দেখাশোনা করবে", "clickbaitThumbnailAvoidance": "videoএর যে thumbnail আছে সেটি কি একতা স্বয়ংক্রিয়ভাবে বানানো thumbnail দিয়ে প্রতিস্থাপন করে দেব?", "showRelatedVideos": "আপনি কি videoর সঙ্গে অন্য সম্পর্কিত বা প্রস্তাবিত video দেখতে চান?", "showMarkers": "আপনি কি বিজ্ঞাপনের (ও অন্য বিভ্রান্তিকর জিনিসের) চিহ্নিতকারী দেখতে চান?", - "bufferGoal": "কত সেকেন্ড এর data এনে রাখব যাতে আপানাকে অপেক্ষা না করতে হয়?", - "disableCommentsByDefault": "মন্তব্য দেখানোর জন্য আপনার অনুমতি কি চাওয়া উচিত?", - "disableDuplicateHistoryEntries": "আপনি যদি একটা video অতীতে দেখে থাকেন তাহলে কি আর ইতিহাস এ অনুলিপি যোগ করব না, শুধু মাত্র কতটা আর কখন দেখেছেন সেটা নবীকরণ করব?", + "bufferGoal": "কত সেকেণ্ডের data এনে রাখব যাতে আপানাকে অপেক্ষা না করতে হয়?", + "disableCommentsByDefault": "মন্তব্য দেখানোর জন্য আপনার অনুমতি কি চাওয়া হবে?", + "disableDuplicateHistoryEntries": "আপনি যদি একটি video অতীতে দেখে থাকেন তাহলে কি আর ইতিহাস এ অনুলিপি যোগ করব না, শুধু মাত্র কতটা আর কখন দেখেছেন সেটা নবীকরণ করব?", "quality_opts": { "auto": "আপনার অন্তর্জালের গতি অনুযায়ী", "144p": "১৪৪ বিন্দু আরোহ", @@ -138,15 +138,21 @@ "4320p": "৪৩২০ বিন্দু আরোহ (এটি কে সাধারণ ভাবে 8K বলা হয়, ৭৬৮০×৪৩২০)" }, "column_opts": { - "4": "৪টে করে স্তম্ভ", + "4": "৪টি করে স্তম্ভ", "5": "৫টি করে স্তম্ভ", "6": "৬টি করে স্তম্ভ" + }, + "codecs": "কী কী ধরণের codec ব্যবহারিত করা উচিত", + "codec_options": { + "av01": "AV1 (AOMedia Video 1)", + "avc1": "AVC (H.264/Advanced Video Coding)", + "vp9": "VP9" } }, "search_results": { "filterLabel": "ফলাফলগুলিকে পরিস্রুত করার জন্য উপলব্ধ বিকল্প", "result_types": { - "all": "সব ধরনের ফলাফল", + "all": "সব ধরণের ফলাফল", "videos": "সাধারণ video", "channels": "সুধু channel", "playlists": "সুধু videoএর তালিকা", diff --git a/src/translations/en.json b/src/translations/en.json index 6df6215184..8ae788d8b4 100644 --- a/src/translations/en.json +++ b/src/translations/en.json @@ -164,6 +164,12 @@ "4": "4 columns", "5": "5 columns", "6": "6 columns" + }, + "codecs": "Codecs", + "codec_options": { + "av01": "AV1 (AOMedia Video 1)", + "avc1": "AVC (H.264/Advanced Video Coding)", + "vp9": "VP9" } }, "footer": {