Merge branch 'development' into 946-version-flag

This commit is contained in:
Svallinn 2021-03-14 18:58:15 +00:00 committed by GitHub
commit 998c5c767c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 344 additions and 115 deletions

View File

@ -308,7 +308,7 @@ function runApp() {
ipcMain.on('setBounds', (_e, data) => {
const value = {
...mainWindow.getBounds(),
...mainWindow.getNormalBounds(),
maximized: mainWindow.isMaximized()
}

View File

@ -73,6 +73,7 @@ export default Vue.extend({
useDash: false,
useHls: false,
selectedDefaultQuality: '',
selectedQuality: '',
maxFramerate: 0,
activeSourceList: [],
mouseTimeout: null,
@ -198,7 +199,8 @@ export default Vue.extend({
vhs: {
limitRenditionByPlayerDimensions: false,
smoothQualityChange: false,
allowSeeksWithinUnsafeLiveWindow: true
allowSeeksWithinUnsafeLiveWindow: true,
handlePartialData: true
}
}
})
@ -214,14 +216,12 @@ export default Vue.extend({
}
if (this.useDash) {
this.dataSetup.plugins.httpSourceSelector = {
default: 'auto'
}
// this.dataSetup.plugins.httpSourceSelector = {
// default: 'auto'
// }
this.player.httpSourceSelector()
setTimeout(() => {
this.determineDefaultQualityDash()
}, 400)
// this.player.httpSourceSelector()
this.createDashQualitySelector(this.player.qualityLevels())
}
if (this.autoplayVideos) {
@ -417,7 +417,7 @@ export default Vue.extend({
determineDefaultQualityDash: function () {
if (this.defaultQuality === 'auto') {
return
this.setDashQualityLevel('auto')
}
this.player.qualityLevels().levels_.sort((a, b) => {
@ -433,27 +433,62 @@ export default Vue.extend({
}
if (this.defaultQuality === quality) {
ql.enabled = true
this.setDashQualityLevel(height)
} else if (upperLevel !== null) {
const upperHeight = upperLevel.height
const upperWidth = upperLevel.width
const upperQuality = upperWidth < upperHeight ? upperWidth : upperHeight
if (this.defaultQuality >= quality && this.defaultQuality < upperQuality) {
ql.enabled = true
} else {
ql.enabled = false
this.setDashQualityLevel(height)
}
} else if (index === 0 && quality > this.defaultQuality) {
ql.enabled = true
this.setDashQualityLevel(height)
} else if (index === (arr.length - 1) && quality < this.defaultQuality) {
ql.enabled = true
} else {
ql.enabled = false
this.setDashQualityLevel(height)
}
})
},
setDashQualityLevel: function (qualityLevel) {
if (this.selectedQuality === qualityLevel) {
return
}
this.player.qualityLevels().levels_.sort((a, b) => {
return a.height - b.height
}).forEach((ql, index, arr) => {
if (qualityLevel === 'auto' || ql.height === qualityLevel) {
ql.enabled = true
ql.enabled_(true)
} else {
ql.enabled = false
ql.enabled_(false)
}
})
const selectedQuality = qualityLevel === 'auto' ? 'auto' : qualityLevel + 'p'
const qualityElement = document.getElementById('vjs-current-quality')
qualityElement.innerText = selectedQuality
this.selectedQuality = qualityLevel
const qualityItems = $('.quality-item').get()
$('.quality-item').removeClass('quality-selected')
qualityItems.forEach((item) => {
const qualityText = $(item).find('.vjs-menu-item-text').get(0)
if (qualityText.innerText === selectedQuality) {
$(item).addClass('quality-selected')
}
})
// const currentTime = this.player.currentTime()
// this.player.currentTime(0)
// this.player.currentTime(currentTime)
},
enableDashFormat: function () {
if (this.dashSrc === null) {
console.log('No dash format available.')
@ -629,6 +664,58 @@ export default Vue.extend({
videojs.registerComponent('fullWindowButton', fullWindowButton)
},
createDashQualitySelector: function (levels) {
const v = this
if (levels.levels_.length === 0) {
setTimeout(() => {
this.createDashQualitySelector(this.player.qualityLevels())
}, 200)
return
}
const VjsButton = videojs.getComponent('Button')
const dashQualitySelector = videojs.extend(VjsButton, {
constructor: function(player, options) {
VjsButton.call(this, player, options)
},
handleClick: function(event) {
const selectedQuality = event.target.innerText
const quality = selectedQuality === 'auto' ? 'auto' : parseInt(selectedQuality.replace('p', ''))
v.setDashQualityLevel(quality)
// console.log(this.player().qualityLevels())
},
createControlTextEl: function (button) {
const beginningHtml = `<div class="vjs-quality-level-value">
<span id="vjs-current-quality">1080p</span>
</div>
<div class="vjs-quality-level-menu vjs-menu">
<ul class="vjs-menu-content" role="menu">`
const endingHtml = '</ul></div>'
let qualityHtml = `<li class="vjs-menu-item quality-item" role="menuitemradio" tabindex="-1" aria-checked="false aria-disabled="false">
<span class="vjs-menu-item-text">Auto</span>
<span class="vjs-control-text" aria-live="polite"></span>
</li>`
levels.levels_.sort((a, b) => {
return b.height - a.height
}).forEach((quality) => {
qualityHtml = qualityHtml + `<li class="vjs-menu-item quality-item" role="menuitemradio" tabindex="-1" aria-checked="false aria-disabled="false">
<span class="vjs-menu-item-text">${quality.height}p</span>
<span class="vjs-control-text" aria-live="polite"></span>
</li>`
})
return $(button).html(
$(beginningHtml + qualityHtml + endingHtml).attr(
'title',
'Select Quality'
))
}
})
videojs.registerComponent('dashQualitySelector', dashQualitySelector)
this.player.controlBar.addChild('dashQualitySelector', {}, this.player.controlBar.children_.length - 1)
this.determineDefaultQualityDash()
},
toggleFullWindow: function() {
if (!this.player.isFullscreen_) {
if (this.player.isFullWindow) {

View File

@ -27,7 +27,7 @@ Vue.component('FontAwesomeIcon', FontAwesomeIcon)
Vue.use(VueI18n)
// List of locales approved for use
const activeLocales = ['en-US', 'en_GB', 'ar', 'bg', 'cs', 'da', 'de-DE', 'el', 'es', 'es-MX', 'fi', 'fr-FR', 'gl', 'he', 'hu', 'hr', 'id', 'it', 'ja', 'nl', 'pl', 'pt', 'pt-BR', 'pt-PT', 'ru', 'sk', 'sl', 'sv', 'tr', 'vi', 'zh-CN', 'zh-TW']
const activeLocales = ['en-US', 'en_GB', 'ar', 'bg', 'cs', 'da', 'de-DE', 'el', 'es', 'es-MX', 'fi', 'fr-FR', 'gl', 'he', 'hu', 'hr', 'id', 'it', 'ja', 'nb_NO', 'nl', 'pl', 'pt', 'pt-BR', 'pt-PT', 'ru', 'sk', 'sl', 'sv', 'tr', 'uk', 'vi', 'zh-CN', 'zh-TW']
const messages = {}
/* eslint-disable-next-line */
const fileLocation = isDev ? 'static/locales/' : `${__dirname}/static/locales/`

View File

@ -643,6 +643,46 @@ body.vjs-full-window {
display: none;
}
.vjs-quality-level-value {
width: 100%;
height: 100%;
}
.vjs-quality-level-value span {
line-height: 40px;
}
.vjs-quality-level-value:hover + .vjs-quality-level-menu {
display: block;
}
.vjs-quality-level-menu {
display: none;
position: absolute;
bottom: 30px;
left: -8px;
z-index: 5;
background-color: #151b17;
width: 50px;
}
.vjs-quality-level-menu:hover {
display: block;
}
.vjs-quality-level-menu .vjs-menu-item {
padding: 5px;
}
.quality-selected {
background-color: var(--primary-color);
color: var(--text-with-main-color);
}
.quality-selected:hover {
background-color: var(--primary-color-hover) !important;
}
.vjs-menu .vjs-menu-content {
display: block;
padding: 0;

View File

@ -30,10 +30,10 @@ Close: 'Затваряне'
Back: 'Назад'
Forward: 'Напред'
Version $ is now available! Click for more details: 'Версия $ е вече налична! Щракнете
Version $ is now available! Click for more details: 'Версия $ е вече налична! Кликнете
за повече детайли'
Download From Site: 'Сваляне от сайта'
A new blog is now available, $. Click to view more: 'Нова публикация в блога, $. Щракнете
A new blog is now available, $. Click to view more: 'Нова публикация в блога, $. Кликнете
за преглед'
# Search Bar
@ -90,7 +90,7 @@ Playlists: 'Плейлисти'
User Playlists:
Your Playlists: 'Вашите плейлисти'
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: Няма
запазени видеоклипове. За запазване щракнете в ъгъла на видеоклипа
запазени видеоклипове. За запазване кликнете в ъгъла на видеоклипа
Playlist Message: Тази страница не отразява напълно работещи плейлисти. В него са
изброени само видеоклипове, които сте запазили или избрали за любими. Когато работата
приключи, всички видеоклипове, които в момента са тук, ще бъдат мигрирани в плейлист
@ -305,7 +305,7 @@ Settings:
Ip: Ip
Your Info: Вашата информация
Test Proxy: Тестване на прокси
Clicking on Test Proxy will send a request to: Щракването върху "Тестване на прокси"
Clicking on Test Proxy will send a request to: Кликването върху "Тестване на прокси"
ще изпрати заявка до
Proxy Port Number: Номер на прокси порта
Proxy Host: Прокси хост
@ -583,7 +583,7 @@ Share:
Mini Player: 'Мини плейър'
Comments:
Comments: 'Коментари'
Click to View Comments: 'Щракнете, за да видите коментарите'
Click to View Comments: 'Кликнете, за да видите коментарите'
Getting comment replies, please wait: 'Получаване на отговори на коментара, моля
изчакайте'
There are no more comments for this video: 'Към това видео няма повече коментари'
@ -603,8 +603,8 @@ Comments:
Up Next: 'Следващ'
# Toast Messages
Local API Error (Click to copy): 'Грешка в локалния интерфейс (щракнете за копиране)'
Invidious API Error (Click to copy): 'Грешка в Invidious интерфейса (щракнете за копиране)'
Local API Error (Click to copy): 'Грешка в локалния интерфейс (кликни за копиране)'
Invidious API Error (Click to copy): 'Грешка в Invidious интерфейса (кликнете за копиране)'
Falling back to Invidious API: 'Връщане към Invidious интерфейса'
Falling back to the local API: 'Връщане към локалния интерфейс'
This video is unavailable because of missing formats. This can happen due to country unavailability.: 'Видеото
@ -658,6 +658,6 @@ Tooltips:
Локалният интерфейс има вградено извличане. Invidious интерфейсът изисква Invidious
сървър, към който да се свърже.
More: Още
Playing Next Video Interval: Пускане на следващото видео веднага. Щракнете за отказ.
| Пускане на следващото видео след {nextVideoInterval} секунда. Щракнете за отказl.
| Пускане на следващото видео след {nextVideoInterval} секунди. Щракнете за отказ.
Playing Next Video Interval: Пускане на следващото видео веднага. Кликнете за отказ.
| Пускане на следващото видео след {nextVideoInterval} секунда. Кликнете за отказl.
| Пускане на следващото видео след {nextVideoInterval} секунди. Кликнете за отказ.

View File

@ -192,7 +192,7 @@ Settings:
1440p: '1440p'
4k: '4k'
8k: '8k'
Playlist Next Video Interval: Interval dalšího seznamu videí
Playlist Next Video Interval: Interval pro další video na playlistu
Privacy Settings:
Privacy Settings: 'Nastavení soukromí'
Remember History: 'Zapamatovat historii'
@ -653,7 +653,7 @@ Canceled next video autoplay: 'Automatické přehrávání dalšího videa bylo
Yes: 'Ano'
No: 'Ne'
Playing Next Video Interval: Přehrávání dalšího videa v žádném čase. Kliknutím zrušíte.
Playing Next Video Interval: Přehrávání dalšího videa bez prodlevy Kliknutím zrušíte.
| Přehrávání dalšího videa za {nextVideoInterval} s. Kliknutím zrušíte. | Přehrávání
dalšího videa za {nextVideoInterval} s. Kliknutím zrušíte.
More: Více

View File

@ -190,6 +190,7 @@ Settings:
1440p: '1440p'
4k: '4k'
8k: '8k'
Playlist Next Video Interval: Παύση μεταξύ Βίντεο στη λίστα αναπαραγωγής
Privacy Settings:
Privacy Settings: 'Ρυθμίσεις απορρήτου'
Remember History: 'Διατήρηση ιστορικού'
@ -290,6 +291,7 @@ Settings:
Hide Channel Subscribers: Απόκρυψη συνδρομών καναλιού
Hide Video Views: Απόκρυψη προβολών βίντεο
Hide Active Subscriptions: Απόκρυψη ενεργών συνδρομών
Hide Playlists: Απόκρυψη λιστών αναπαραγωγής
The app needs to restart for changes to take effect. Restart and apply change?: Η
εφαρμογή πρέπει να κάνει επανεκκίνηση για να εφαρμοστούν οι αλλαγές. Επανεκκίνηση
και εφαρμογή αλλαγών;
@ -411,6 +413,7 @@ Profile:
βέβαιοι ότι θέλετε να διαγράψετε τα επιλεγμένα κανάλια; Αυτό δε θα διαγράψει
το κανάλι από οποιοδήποτε άλλο προφίλ.'
#On Channel Page
Profile Filter: Φίλτρο προφίλ
Channel:
Subscriber: 'Συνδρομητής'
Subscribers: 'Συνδρομητές'
@ -462,7 +465,7 @@ Video:
View: 'Προβολή'
Views: 'Προβολές'
Loop Playlist: 'Επανάληψη λίστας αναπαραγωγής'
Shuffle Playlist: 'Τυχαία αναπαραγωγή'
Shuffle Playlist: 'Τυχαία σειρά στη λίστα αναπαραγωγής'
Reverse Playlist: 'Αντιστροφή της λίστας αναπαραγωγής'
Play Next Video: 'Αναπαραγωγή επόμενου βίντεο'
Play Previous Video: 'Αναπαραγωγή προηγούμενου βίντεο'
@ -677,3 +680,8 @@ Tooltips:
Invidious Instance: Το στιγμιότυπο Invidious στο οποίο το FreeTube θα συνδεθεί
για κλήσεις διεπαφής. Καθαρίστε το παρόν στιγμιότυπο για να δείτε μια λίστα
δημόσιων στιγμιότυπων προς επιλογή
Playing Next Video Interval: Αναπαραγωγή επόμενου βίντεο άμεσα. Κάντε κλικ για ακύρωση.
| Αναπαραγωγή επόμενου βίντεο σε {nextVideoInterval} δευτερόλεπτο. Κάντε κλικ για
ακύρωση. | Αναπαραγωγή επόμενου βίντεο σε {nextVideoInterval} δευτερόλεπτα. Κάντε
κλικ για ακύρωση.
More: Περισσότερα

View File

@ -90,15 +90,24 @@ Most Popular: 'सबसे ज़्यादा देखा हुआ'
Playlists: 'प्लेलिस्टे (playlists)'
User Playlists:
Your Playlists: 'आपके प्लेलिस्टे'
Your saved videos are empty. Click on the save button on the corner of a video to have it listed here: आपके
पास बचाए गए वीडियोए नहीं हैं। एक वीडियो के कोने पर सेव बटन पर क्लिक (click) करें,
यहां लिस्ट पर वही आएगा
Playlist Message: यह पृष्ठ पूरी तरह से काम करने वाली प्लेलिस्ट को प्रतिबिंबित नहीं
करता है। यह केवल उन वीडियो को सूचीबद्ध करता है जिन्हें आपने सहेजा है या पसंदीदा
है। जब काम समाप्त हो जाता है, तो वर्तमान में यहां सभी वीडियो 'पसंदीदा' प्लेलिस्ट
में स्थानांतरित हो जाएंगे।
History:
# On History Page
History: ''
History: 'इतिहास'
Watch History: ''
Your history list is currently empty.: ''
Settings:
# On Settings Page
Settings: ''
The app needs to restart for changes to take effect. Restart and apply change?: ''
Settings: 'स्थापना'
The app needs to restart for changes to take effect. Restart and apply change?: 'ऐप
को प्रभावी होने वाले परिवर्तनों के लिए पुनः आरंभ करने की आवश्यकता है। Restart
और परिवर्तन लागू करें?'
General Settings:
General Settings: ''
Check for Updates: ''
@ -531,3 +540,4 @@ Canceled next video autoplay: ''
Yes: ''
No: ''
More: ज़्यादा

View File

@ -185,6 +185,7 @@ Settings:
1440p: '1440 p'
4k: '4 k'
8k: '8 k'
Playlist Next Video Interval: Interval sljedećeg videa zbirke
Privacy Settings:
Privacy Settings: 'Postavke privatnosti'
Remember History: 'Zapamti povijest'
@ -287,6 +288,7 @@ Settings:
Hide Video Views: Sakrij broj gledanja videa
Distraction Free Settings: Postavke za nesmetan rad
Hide Active Subscriptions: Sakrij aktivne pretplate
Hide Playlists: Sakrij zbirke
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:
@ -410,6 +412,7 @@ Profile:
$ selected: $ je odabran
Other Channels: Ostali kanali
Subscription List: Popis pretplata
Profile Filter: Filtar profila
Channel:
Subscriber: 'Pretplatnik'
Subscribers: 'Pretplatnici'
@ -660,3 +663,7 @@ Tooltips:
standardne metode za dohvaćanje podataka tvoje pretplate. RSS je brži i sprečava
blokiranje IP adresa, ali ne pruža određene podatke kao što su trajanje videa
ili stanja „uživo”
Playing Next Video Interval: Trenutna reprodukcija sljedećeg videa. Pritisni za prekid.
| Reprodukcija sljedećeg videa za {nextVideoInterval} sekunde. Pritisni za prekid.
| Reprodukcija sljedećeg videa za {nextVideoInterval} sekundi. Pritisni za prekid.
More: Još

View File

@ -126,6 +126,7 @@ Settings:
(기본설정은 https://invidious.snopyta.org)'
Region for Trending: '트렌드 국가'
#! List countries
View all Invidious instance information: Indivious 서버의 전체 목록 보기
Theme Settings:
Theme Settings: '테마 설정'
Match Top Bar with Main Color: '상단바를 메인컬러와 동기화'
@ -185,6 +186,7 @@ Settings:
1440p: '1440p'
4k: '4k'
8k: '8k'
Playlist Next Video Interval: 재생 목록 다음 비디오 간격
Privacy Settings:
Privacy Settings: '개인정보 설정'
Remember History: '기록 저장하기'
@ -213,36 +215,40 @@ Settings:
Hide Trending Videos: '현재 트렌딩 영상 숨기기'
Hide Popular Videos: '인기 영상 숨기기'
Hide Live Chat: '실시간 댓글 숨기기'
Hide Playlists: 재생 목록 숨기기
Hide Active Subscriptions: 활성 구독 숨기기
Data Settings:
Data Settings: '데이터 설정'
Select Import Type: '구독 및 재생 목록 가져오기 형식 고르기'
Select Export Type: '구독 및 재생 목록 내보내기 형식 고르기'
Select Import Type: '가져오기 유형 선택'
Select Export Type: '내보내기 유형 선택'
Import Subscriptions: '구독 목록 가져오기'
Import FreeTube: '구독 목록 가져오기: 형식 Freetube'
Import YouTube: '구독 목록 가져오기 형식: 유투브'
Import NewPipe: '구독 목록 가져오기 형식: NewPipe'
Check for Legacy Subscriptions: ''
Import FreeTube: 'FreeTube 가져오기'
Import YouTube: 'YouTube 가져오기'
Import NewPipe: 'NewPipe 가져오기'
Check for Legacy Subscriptions: '레거시 구독 확인'
Export Subscriptions: '구독 목록 내보내기'
Export FreeTube: '구독 목록 내보내기 형식: FreeTube'
Export YouTube: '구독 목록 내보내기 형식: 유투브'
Export NewPipe: '구독 목록 내보내기 형식: NewPipe'
Export FreeTube: 'FreeTube 내보내기'
Export YouTube: 'YouTube 내보내기'
Export NewPipe: 'NewPipe 내보내기'
Import History: '재생 기록 가져오기'
Export History: '재생 기록 내보내기'
Profile object has insufficient data, skipping item: ''
All subscriptions and profiles have been successfully imported: ''
All subscriptions have been successfully imported: ''
One or more subscriptions were unable to be imported: ''
Invalid subscriptions file: ''
This might take a while, please wait: ''
Invalid history file: ''
Subscriptions have been successfully exported: ''
History object has insufficient data, skipping item: ''
All watched history has been successfully imported: ''
All watched history has been successfully exported: ''
Unable to read file: ''
Unable to write file: ''
Unknown data key: ''
How do I import my subscriptions?: ''
Profile object has insufficient data, skipping item: '프로필 개체에 데이터가 부족하여 항목을 건너뜁니다'
All subscriptions and profiles have been successfully imported: '모든 구독 및 프로필을
성공적으로 가져왔습니다'
All subscriptions have been successfully imported: '모든 구독을 성공적으로 가져왔습니다'
One or more subscriptions were unable to be imported: '하나 이상의 구독을 가져올 수 없습니다'
Invalid subscriptions file: '잘못된 구독 파일입니다'
This might take a while, please wait: '시간이 좀 걸릴 수 있습니다. 잠시 기다려 주십시오'
Invalid history file: '잘못된 기록 파일입니다'
Subscriptions have been successfully exported: '구독을 성공적으로 내보냈습니다'
History object has insufficient data, skipping item: '기록 개체에 데이터가 부족하여 항목을 건너뜁니다'
All watched history has been successfully imported: '시청한 모든 기록을 성공적으로 가져왔습니다'
All watched history has been successfully exported: '시청한 모든 기록이 성공적으로 내보내졌습니다'
Unable to read file: '파일을 읽을 수 없습니다'
Unable to write file: '파일을 쓸 수 없습니다'
Unknown data key: '알 수 없는 데이터 키입니다'
How do I import my subscriptions?: '구독을 가져오려면 어떻게 해야 합니까?'
Manage Subscriptions: 구독 관리
Advanced Settings:
Advanced Settings: ''
Enable Debug Mode (Prints data to the console): ''
@ -265,9 +271,24 @@ Settings:
#& Yes
#& No
Proxy Settings:
Error getting network information. Is your proxy configured properly?: 네트워크 정보를
가져오는 중 오류가 발생했습니다. 프록시가 올바르게 구성되어 있습니까?
City: 도시
Region: 지역
Country: 국가
Ip: Ip
Your Info: 사용자 정보
Test Proxy: 프록시 테스트
Clicking on Test Proxy will send a request to: 프록시 테스트를 클릭하면 다음 주소로 요청이 전송됩니다
Proxy Port Number: 프록시 포트 번호
Proxy Host: 프록시 호스트
Proxy Protocol: 프록시 프로토콜
Enable Tor / Proxy: Tor / Proxy 사용
Proxy Settings: 프록시 설정
About:
#On About page
About: ''
About: '정보'
#& About
'This software is FOSS and released under the GNU Affero General Public License v3.0.': ''
@ -287,51 +308,78 @@ About:
Latest FreeTube News: ''
Donate: 기부
these people and projects: 이 사람들과 프로젝트
FreeTube is made possible by: FreeTube는 가능합니다
Credits: 제작
Translate: 번역
room rules: 방 규정
Please read the: 읽어주세요
Chat on Matrix: 매트릭스 채팅
Mastodon: Mastodon
Email: 이메일
Blog: 블로그
Website: 웹사이트
Please check for duplicates before posting: 게시하기 전에 중복 항목을 확인하십시오
GitHub issues: GitHub 이슈
Report a problem: 문제 보고
FAQ: FAQ
FreeTube Wiki: FreeTube Wiki
Help: 도움말
GitHub releases: GitHub 릴리스
Downloads / Changelog: 다운로드 / 변경 로그
View License: 라이센스 보기
Licensed under the AGPLv3: AGPLv3에 따라 라이센스가 부여됨
Source code: 소스 코드
Beta: 베타
Profile:
Profile Select: ''
All Channels: ''
Profile Manager: ''
Create New Profile: ''
Edit Profile: ''
Color Picker: ''
Custom Color: ''
Profile Preview: ''
Create Profile: ''
Update Profile: ''
Make Default Profile: ''
Delete Profile: ''
Are you sure you want to delete this profile?: ''
All subscriptions will also be deleted.: ''
Profile could not be found: ''
Your profile name cannot be empty: ''
Profile has been created: ''
Profile has been updated: ''
Your default profile has been set to $: ''
Removed $ from your profiles: ''
Your default profile has been changed to your primary profile: ''
$ is now the active profile: ''
Subscription List: ''
Other Channels: ''
$ selected: ''
Select All: ''
Select None: ''
Delete Selected: ''
Add Selected To Profile: ''
No channel(s) have been selected: ''
Profile Select: '프로필 선택'
All Channels: '모든 채널'
Profile Manager: '프로필 관리자'
Create New Profile: '새 프로파일 작성'
Edit Profile: '프로필 편집'
Color Picker: '색상 선택기'
Custom Color: '사용자 지정 색'
Profile Preview: '프로필 미리보기'
Create Profile: '프로필 작성'
Update Profile: '프로필 업데이트'
Make Default Profile: '기본 프로파일 만들기'
Delete Profile: '프로필 삭제'
Are you sure you want to delete this profile?: '이 프로필을 삭제하시겠습니까?'
All subscriptions will also be deleted.: '모든 구독도 삭제됩니다.'
Profile could not be found: '프로필을 찾을 수 없습니다'
Your profile name cannot be empty: '프로필 이름은 비워 둘 수 없습니다'
Profile has been created: '프로필이 생성되었습니다'
Profile has been updated: '프로필이 업데이트되었습니다'
Your default profile has been set to $: '기본 프로필이 $로 설정되었습니다'
Removed $ from your profiles: '프로필에서 $가 제거되었습니다'
Your default profile has been changed to your primary profile: '기본값 프로필이 기본 프로필로
변경되었습니다'
$ is now the active profile: '$가 현재 활성 프로필입니다'
Subscription List: '구독 목록'
Other Channels: '기타 채널'
$ selected: '$선택되었습니다'
Select All: '모두 선택'
Select None: '선택 안 함'
Delete Selected: '선택한 항목 삭제'
Add Selected To Profile: '프로필에 선택한 항목 추가'
No channel(s) have been selected: '선택된 채널이 없습니다'
? This is your primary profile. Are you sure you want to delete the selected channels? The
same channels will be deleted in any profile they are found in.
: ''
Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: ''
: '이것은 귀하의 기본 프로필입니다. 선택한 채널을 삭제하시겠습니까? 동일한 채널이 발견되는 모든 프로필에서 삭제됩니다.'
Are you sure you want to delete the selected channels? This will not delete the channel from any other profile.: '선택한
채널을 삭제하시겠습니까? 다른 프로파일에서는 채널이 삭제되지 않습니다.'
#On Channel Page
Profile Filter: 프로필 필터
Channel:
Subscriber: ''
Subscribers: ''
Subscribe: ''
Unsubscribe: ''
Channel has been removed from your subscriptions: ''
Removed subscription from $ other channel(s): ''
Added channel to your subscriptions: ''
Search Channel: ''
Subscriber: '구독자'
Subscribers: '구독자'
Subscribe: '구독'
Unsubscribe: '구독 취소'
Channel has been removed from your subscriptions: '채널이 구독에서 제거되었습니다'
Removed subscription from $ other channel(s): '$ 다른 채널에서 구독을 제거했습니다'
Added channel to your subscriptions: '구독에 채널을 추가했습니다'
Search Channel: '채널 검색'
Your search results have returned 0 results: ''
Sort By: ''
Videos:
@ -534,3 +582,4 @@ Canceled next video autoplay: ''
Yes: ''
No: ''
More: 더 보기

View File

@ -184,6 +184,7 @@ Settings:
1440p: '1440p'
4k: 'UHD'
8k: '8k UHD'
Playlist Next Video Interval: Intervall for avspilling av neste i spilleliste
Privacy Settings:
Privacy Settings: 'Personvernsinnstillinger'
Remember History: 'Husk historikk'
@ -300,6 +301,7 @@ Settings:
Hide Popular Videos: Skjul populære videoer
Hide Video Views: Skjul videovisninger
Hide Live Chat: Gjem direktechat
Hide Playlists: Skjul spillelister
The app needs to restart for changes to take effect. Restart and apply change?: Start
programmet på ny for å bruke de nye endringene?
About:
@ -607,6 +609,7 @@ Profile:
Subscription List: Abonnementsliste
Profile Preview: Profilforhåndsvisning
Custom Color: Egendefinert farge
Profile Filter: Profilfilter
This video is unavailable because of missing formats. This can happen due to country unavailability.: Denne
videoen er utilgjengelig grunnet manglende formater. Dette kan skyldes tilgangbegrensninger
i ditt land.
@ -645,3 +648,7 @@ The playlist has been reversed: Spillelisten har blitt snudd
Download From Site: Last ned fra nettsiden
Version $ is now available! Click for more details: Versjon $ er nå tilgjengelig.
Klikk for flere detaljer.
Playing Next Video Interval: Spiller neste video nå. Klikk for å avbryte. | Spiller
neste video om {nextVideoInterval} sekund. Klikk for å avbryte. | Spiller neste
video om {nextVideoInterval} sekunder. Klikk for å avbryte.
More: Mer

View File

@ -186,6 +186,7 @@ Settings:
1440p: '1440p'
4k: '4k'
8k: '8k'
Playlist Next Video Interval: Задержка перед автовоспроизведением
Subscription Settings:
Subscription Settings: 'Настройки подписки'
Hide Videos on Watch: 'Скрыть видео после просмотра'
@ -290,6 +291,7 @@ Settings:
Hide Video Likes And Dislikes: Скрыть лайки и дизлайки к видео
Hide Video Views: Скрыть просмотры видео
Hide Active Subscriptions: Скрыть активные подписки
Hide Playlists: Скрыть плейлисты
The app needs to restart for changes to take effect. Restart and apply change?: Чтобы
изменения вступили в силу, необходимо перезапустить приложение. Перезапустить
и применить изменения?
@ -297,7 +299,7 @@ Settings:
Error getting network information. Is your proxy configured properly?: Ошибка
при получении информации о сети. Вы уверены, что прокси настроен правильно?
Your Info: Ваша информация
Clicking on Test Proxy will send a request to: Нажмите на rкнопку "Протестировать
Clicking on Test Proxy will send a request to: Нажмите на кнопку "Протестировать
соединение", чтобы отправить запрос на
Test Proxy: Протестировать соединение
Proxy Port Number: Порт прокси-сервера
@ -570,8 +572,8 @@ Loop is now disabled: 'Цикл теперь отключён'
Loop is now enabled: 'Цикл теперь включён'
Shuffle is now disabled: 'Перемешивание теперь отключено'
Shuffle is now enabled: 'Перемешивание теперь включено'
Playing Next Video: 'Воспроизвести следующее видео'
Playing Previous Video: 'Воспроизвести предыдущее видео'
Playing Next Video: 'Воспроизведение следующего видео'
Playing Previous Video: 'Воспроизведение предыдущего видео'
Playing next video in 5 seconds. Click to cancel: 'Воспроизведение следующего видео
через 5 секунд. Нажмите, чтобы отменить.'
Canceled next video autoplay: 'Отменено автовоспроизведение следующего видео'
@ -622,6 +624,7 @@ Profile:
$ selected: $ выбрано
Other Channels: Другие каналы
Subscription List: Список подписок
Profile Filter: Фильтры профилей
The playlist has been reversed: Плейлист был перевёрнут
A new blog is now available, $. Click to view more: Теперь доступен новый блог $.
Нажмите, чтобы увидеть больше
@ -648,10 +651,10 @@ Tooltips:
из страны, которые вы хотите отображать. Не все отображаемые страны на самом
деле поддерживаются YouTube
Subscription Settings:
Fetch Feeds from RSS: Если этот параметр включен, FreeTube будет использовать
RSS вместо метода по умолчанию для получения вашего канала подписки. RSS работает
быстрее и предотвращает блокировку IP, но не предоставляет определенную информацию,
такую как продолжительность видео или статус в реальном времени
Fetch Feeds from RSS: Если этот параметр включен, FreeTube будет получать вашу
ленту подписок с помощью RSS, а не как обычно. RSS работает быстрее и предотвращает
блокировку IP, но не предоставляет определенную информацию, такую как продолжительность
видео или сведения о том, транслируется ли видео в реальном времени
Player Settings:
Default Video Format: Установите форматы, используемые при воспроизведении видео.
Формат dash может воспроизводить более высокое качество. Устаревшие форматы
@ -664,3 +667,8 @@ Tooltips:
устаревшие форматы, возвращаемые им, вместо форматов, возвращаемых Invidious.
Помогает, когда видео, возвращенные Invidious, не воспроизводятся из-за ограничений
страны
More: Больше
Playing Next Video Interval: Воспроизведение следующего видео без задержки. Нажмите
для отмены. | Воспроизведение следующего видео через {nextVideoInterval} сек. Нажмите
для отмены. | Воспроизведение следующего видео через {nextVideoInterval} сек. Нажмите
для отмены.

View File

@ -105,7 +105,7 @@ Settings:
Preferred API Backend:
Preferred API Backend: 'Preferované API Backend'
Local API: 'Lokálne API'
Invidious API: 'Invidious API'
Invidious API: 'API služby Invidious'
Video View Type:
Video View Type: 'Typ zobrazenia videa'
Grid: 'Mriežka'
@ -184,6 +184,7 @@ Settings:
1440p: '1440p'
4k: '4k'
8k: '8k'
Playlist Next Video Interval: Čas spustenia nasledujúceho videa v zozname videí
Subscription Settings:
Subscription Settings: 'Nastavenia Odberov'
Hide Videos on Watch: 'Skryť videá po zhliadnutí'
@ -272,6 +273,7 @@ Settings:
Hide Video Views: Skryť počet zhliadnutí
Distraction Free Settings: Nastavenia nerušenia
Hide Active Subscriptions: Skryť aktívne odbery
Hide Playlists: Skryť zoznamy videí
Privacy Settings:
Are you sure you want to remove all subscriptions and profiles? This cannot be undone.: Naozaj
chcete odstrániť všetky odbery a profily? Toto je nenávratná akcia.
@ -356,7 +358,7 @@ About:
room rules: pravidlá miestností
Please read the: Prečítajte si
Chat on Matrix: Napíšte nám na Matrix-e
Mastodon: Mastodon
Mastodon: Komunikačná platforma Mastodon
Email: Elektronická pošta
Blog: Blog
Website: Webstránka
@ -649,9 +651,14 @@ Profile:
Profile Manager: Správca profilov
All Channels: Všetky kanály
Profile Select: Vyberte profil
Profile Filter: Filter Profilov
A new blog is now available, $. Click to view more: Nový príspevok na blogu je k dispozícií,
$. Klikni pre viac informácií
Download From Site: Stiahnuť zo stránky
Version $ is now available! Click for more details: Je k dispozícií verzia $ ! Klikni
pre viac informácií
Locale Name: Slovenčina
Playing Next Video Interval: Prehrávanie ďalšieho videa za chvíľu. Kliknutím zrušíte.
| Prehráva sa ďalšie video o {nextVideoInterval} sekundu. Kliknutím zrušíte. | Prehráva
sa ďalšie video o {nextVideoInterval} sekúnd. Kliknutím zrušíte.
More: Viac

View File

@ -176,6 +176,7 @@ Settings:
1440p: '1440p'
4k: '4k'
8k: '8k'
Playlist Next Video Interval: 播放清單 下一個影片間隔時間
Subscription Settings:
Subscription Settings: '訂閱設定'
Hide Videos on Watch: '觀看時隱藏影片'
@ -265,6 +266,7 @@ Settings:
Hide Recommended Videos: 隱藏推薦影片
Hide Channel Subscribers: 隱藏頻道訂閱者
Hide Active Subscriptions: 隱藏作用中的訂閱
Hide Playlists: 隱藏播放清單
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?: 取得網路資訊時發生錯誤。您的代理伺服器設定正確嗎?
@ -328,7 +330,7 @@ About:
room rules: 聊天室規則
Please read the: 請閱讀
Chat on Matrix: 在 Matrix 上聊天
Mastodon: Mastodon
Mastodon: Mastodon(長毛象/萬象)
Please check for duplicates before posting: 提交前請檢查有無重複的問題
GitHub issues: GitHub 問題追蹤器
Report a problem: 回報問題
@ -363,7 +365,7 @@ Channel:
About:
About: '關於'
Channel Description: '頻道說明'
Featured Channels: '列出頻道'
Featured Channels: '推薦頻道'
Added channel to your subscriptions: 已新增頻道至您的訂閱
Removed subscription from $ other channel(s): 從$個其他頻道移除訂閱
Channel has been removed from your subscriptions: 頻道已從您的訂閱中移除
@ -420,7 +422,7 @@ Video:
Minute: 分鐘
Published on: '發布於'
# $ is replaced with the number and % with the unit (days, hours, minutes...)
Publicationtemplate: '$ %前'
Publicationtemplate: '$ % 前'
#& Videos
Video has been removed from your history: 影片已從您的歷史紀錄中移除
Video has been marked as watched: 影片標記為已觀看
@ -445,7 +447,7 @@ Video:
Open Channel in Invidious: 在Invidious開啟頻道
Copy YouTube Channel Link: 複製YouTube頻道連結
Open Channel in YouTube: 在YouTube開啟頻道
Started streaming on: '開始直播時間:'
Started streaming on: '開始直播時間'
Streamed on: 直播於
Video has been removed from your saved list: 影片已從您的播放清單移除
Video has been saved: 影片已儲存
@ -500,7 +502,7 @@ Mini Player: '迷你播放器'
Comments:
Comments: '留言'
Click to View Comments: '點擊查看留言'
Getting comment replies, please wait: '取留言中,請稍候...'
Getting comment replies, please wait: '取留言中,請稍候...'
Show Comments: '查看留言'
Hide Comments: '隱藏留言'
# Context: View 10 Replies, View 1 Reply
@ -572,6 +574,7 @@ Profile:
$ selected: $個選取的
Other Channels: 其他頻道
Subscription List: 訂閱清單
Profile Filter: 設定檔篩選器
The playlist has been reversed: 播放清單已反轉
A new blog is now available, $. Click to view more: 已有新的部落格文章,$。點擊以檢視更多
Download From Site: 從網站下載
@ -579,7 +582,7 @@ Version $ is now available! Click for more details: 版本更新囉! 最新版
This video is unavailable because of missing formats. This can happen due to country unavailability.: 沒有這個影片因為缺少格式。這個可能發生由於國家不可用。
Tooltips:
Subscription Settings:
Fetch Feeds from RSS: 啟用後FreeTube 將使用 RSS 而非預設方式來取得您的訂閱推送。RSS 更快而且可避免 IP 封鎖,但不提供某些訊息,如影片長度與即時狀態
Fetch Feeds from RSS: 啟用後FreeTube將使用RSS代替它的預設方法來抓取您的訂閱來源。RSS的速度較快而且可以防止IP封鎖但它可能不會提供某些資訊例如影片長度或是直播狀態。
Player Settings:
Default Video Format: 設定要用於影片播放的格式。Dash格式有更高的品質。傳統格式會限制在 720p但頻寬需求更低。音訊格式為僅有音訊的串流
Proxy Videos Through Invidious: 將連線到 Invidious而非直接連線到 YouTube 來提供影片。覆寫 API 偏好
@ -593,3 +596,6 @@ Tooltips:
Preferred API Backend: 選擇 FreeTube 要用於取得YouTube資料的伺服器。本地 API 是內建擷取器。Invidious
API 需要 Invidious 伺服器才能連線。
Region for Trending: 發燒影片區域可以讓您選擇想要顯示哪個國家的發燒影片。 注意:並非所有國家都被YouTube支援
Playing Next Video Interval: 馬上播放下一個影片。點擊取消。| 播放下一個影片的時間為{nextVideoInterval}秒。點擊取消。|
播放下一個影片的時間為{nextVideoInterval}秒。點擊取消。
More: 更多