mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2025-12-08 04:27:15 +03:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
55bd10087d | ||
|
|
97450f5936 | ||
|
|
6b37287e08 | ||
|
|
757d7e0a1e | ||
|
|
664d75e653 | ||
|
|
dffc70cc19 | ||
|
|
d294398f28 | ||
|
|
c17cf74389 | ||
|
|
b96cdbe40a | ||
|
|
7b86a93661 | ||
|
|
65e40e4d9c | ||
|
|
25cd5a346b |
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "__MSG_fullName__",
|
||||
"short_name": "SponsorBlock",
|
||||
"version": "5.0.3",
|
||||
"version": "5.0.4",
|
||||
"default_locale": "en",
|
||||
"description": "__MSG_Description__",
|
||||
"homepage_url": "https://sponsor.ajay.app",
|
||||
|
||||
@@ -1170,6 +1170,10 @@
|
||||
"message": "Poznámka: Oprávnění k odesílání kapitol je stále založené na vypočítané reputaci. Zakoupení licence vám pouze umožní zobrazit si kapitoly odeslané ostatními uživateli",
|
||||
"description": "On the chapters page for getting access to the paid chapters feature"
|
||||
},
|
||||
"chapterNewFeature": {
|
||||
"message": "Nová funkce: komunitní vlastní kapitoly. Jedná se o komunitou vytvořené sekce ve videích, které lze slučovat, aby byly stále přesnější. Zakupte si licenci pro zobrazení kapitol u tohoto videa, jako například: ",
|
||||
"description": "After the comma, a list of chapters for this video will appear"
|
||||
},
|
||||
"unsubmittedSegmentCounts": {
|
||||
"message": "Momentálně máte {0} na {1}",
|
||||
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
|
||||
|
||||
@@ -1174,6 +1174,9 @@
|
||||
"message": "New Feature: Crowd-sourced custom chapters. These are custom-named sections in videos that can be stacked to get more and more precise. Purchase a license to view the chapters submitted on this video such as: ",
|
||||
"description": "After the comma, a list of chapters for this video will appear"
|
||||
},
|
||||
"chapterNewFeature2": {
|
||||
"message": "New Feature: Crowd-sourced custom chapters. These are custom-named sections in videos that can be stacked to get more and more precise. You have access for free, enable in options."
|
||||
},
|
||||
"unsubmittedSegmentCounts": {
|
||||
"message": "You currently have {0} on {1}",
|
||||
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
|
||||
|
||||
@@ -246,6 +246,12 @@
|
||||
"whatRefetchWhenNotFound": {
|
||||
"message": "動画がまだ新しくセグメントが見つからない場合は、動画を視聴している間、数分おきにセグメントを検索し続けます。"
|
||||
},
|
||||
"enableShowCategoryWithoutPermission": {
|
||||
"message": "提出権限を持っていないカテゴリーも提出メニューに表示する"
|
||||
},
|
||||
"whatShowCategoryWithoutPermission": {
|
||||
"message": "一部のカテゴリーは提出に一定以上の評判が必要です"
|
||||
},
|
||||
"showNotice": {
|
||||
"message": "再度通知を表示する"
|
||||
},
|
||||
@@ -1160,6 +1166,14 @@
|
||||
"chaptersPage1": {
|
||||
"message": "SponsorBlockのクラウドソーシングによるチャプター機能は、ライセンス購入をされた方、もしくは過去の貢献により許可された方のみが利用できます"
|
||||
},
|
||||
"chaptersPage2": {
|
||||
"message": "注: チャプターの提出権限は算出された評判に基づいています。ライセンスを購入することで、他の人が提出したチャプターを閲覧できるようになります",
|
||||
"description": "On the chapters page for getting access to the paid chapters feature"
|
||||
},
|
||||
"chapterNewFeature": {
|
||||
"message": "新機能: クラウドソーシングによるカスタムチャプター。動画内のセクションを入れ子構造にできるので、より精密な区分けができます。この動画に登録されたチャプターを表示するにはライセンスをご購入ください。チャプターはこのように表示されます: ",
|
||||
"description": "After the comma, a list of chapters for this video will appear"
|
||||
},
|
||||
"unsubmittedSegmentCounts": {
|
||||
"message": "現在、{1} に {0} があります",
|
||||
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
|
||||
|
||||
@@ -11,10 +11,10 @@
|
||||
"message": "서버에서 유효하지 않은 요청이라고 응답했어요"
|
||||
},
|
||||
"429": {
|
||||
"message": "이 영상에 많은 스폰서 광고 구간을 제출했어요, 정말로 확실한가요?"
|
||||
"message": "이 영상에 많은 스폰서 광고 구간을 제출했어요. 정말로 확실하신가요?"
|
||||
},
|
||||
"409": {
|
||||
"message": "이 구간은 이미 제출된 적이 있어요."
|
||||
"message": "이전에 이미 제출된 적이 있어요"
|
||||
},
|
||||
"channelWhitelisted": {
|
||||
"message": "채널이 화이트리스트에 추가됐어요!"
|
||||
@@ -75,10 +75,10 @@
|
||||
"message": "구간의 길이를 수정하거나 삭제하고 싶다면, 정보 버튼을 클릭하거나 우측 상단에 있는 확장 프로그램 아이콘을 눌러 확장 프로그램 팝업을 열 수 있어요."
|
||||
},
|
||||
"clearThis": {
|
||||
"message": "정말로 삭제하시겠어요?\n\n"
|
||||
"message": "정말로 초기화하시겠어요?\n\n"
|
||||
},
|
||||
"Unknown": {
|
||||
"message": "스폰서 광고 구간을 제출하는 동안 오류가 발생했어요, 나중에 다시 시도해주세요."
|
||||
"message": "스폰서 광고 구간을 제출하는 동안 오류가 발생했어요. 나중에 다시 시도해주세요."
|
||||
},
|
||||
"sponsorFound": {
|
||||
"message": "이 동영상은 데이터베이스에 있는 구간을 포함해요!"
|
||||
@@ -114,7 +114,7 @@
|
||||
"message": "연결 오류가 발생했어요. 오류 코드: "
|
||||
},
|
||||
"clearTimes": {
|
||||
"message": "구간 삭제"
|
||||
"message": "구간 초기화"
|
||||
},
|
||||
"openPopup": {
|
||||
"message": "SponsorBlock 팝업 열기"
|
||||
@@ -129,7 +129,7 @@
|
||||
"message": "구간 정렬"
|
||||
},
|
||||
"submitCheck": {
|
||||
"message": "정말로 제출할까요?"
|
||||
"message": "정말로 이걸 제출하시겠어요?"
|
||||
},
|
||||
"whitelistChannel": {
|
||||
"message": "화이트리스트에 채널 추가"
|
||||
@@ -160,13 +160,13 @@
|
||||
"message": "도움말: 설정에서 제출 단축키를 설정하실 수 있어요"
|
||||
},
|
||||
"clearTimesButton": {
|
||||
"message": "구간 삭제"
|
||||
"message": "구간 초기화"
|
||||
},
|
||||
"submitTimesButton": {
|
||||
"message": "구간 제출"
|
||||
},
|
||||
"publicStats": {
|
||||
"message": "얼마나 구간 제출에 기여했는지 확인할 수 있는 정보 페이지로, 여기서 확인하실 수 있어요:"
|
||||
"message": "얼마나 기여했는지 확인할 수 있는 공개 통계 페이지로 다음에서 확인하실 수 있어요."
|
||||
},
|
||||
"Username": {
|
||||
"message": "사용자명"
|
||||
@@ -229,10 +229,10 @@
|
||||
"message": "비추천한 구간 저장"
|
||||
},
|
||||
"whatTrackDownvotes": {
|
||||
"message": "비추천한 구간을 새로고침 이후에도 계속 숨겨요."
|
||||
"message": "비추천한 구간을 새로고침 이후에도 계속 숨겨요"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "경고: 비활성화하면 이전에 저장된 비추천 구간이 삭제돼요."
|
||||
"message": "경고: 비활성화하면 이전에 저장된 비추천 구간이 삭제돼요"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "해시 접두사로 요청 전송"
|
||||
@@ -470,7 +470,7 @@
|
||||
"message": "설정한 값보다 작은 구간은 건너뛰지 않으며 탐색 바에 표시되지 않아요."
|
||||
},
|
||||
"enableManualSkipOnFullVideo": {
|
||||
"message": "동영상 전체 라벨이 존재하는 경우 수동 스킵 사용"
|
||||
"message": "동영상 전체 라벨이 존재하는 경우 수동 건너뛰기 사용"
|
||||
},
|
||||
"whatManualSkipOnFullVideo": {
|
||||
"message": "전반적인 동영상 내용이 협찬이거나 자체 홍보인 경우에도 동영상을 계속 시청하고자 하는 분을 위한 설정이에요."
|
||||
@@ -494,7 +494,7 @@
|
||||
"message": "SponsorBlock 서버 주소"
|
||||
},
|
||||
"customServerAddressDescription": {
|
||||
"message": "SponsorBlock이 서버에 연결을 보낼 주소에요.\n따로 구축한 서버 인스턴스가 없으면, 이 주소를 변경하지 않는 게 좋아요."
|
||||
"message": "SponsorBlock이 서버에 연결을 보낼 주소예요.\n따로 구축한 서버 인스턴스가 없으면, 이 주소를 변경하지 않는 게 좋아요."
|
||||
},
|
||||
"save": {
|
||||
"message": "저장"
|
||||
@@ -506,7 +506,7 @@
|
||||
"message": "올바르지 않은 주소예요. http:// 또는 https://로 시작해야 하고 마지막 문자에 빗금이 있지 않아야 해요."
|
||||
},
|
||||
"areYouSureReset": {
|
||||
"message": "이 제출 형식을 초기화하시겠어요?"
|
||||
"message": "이걸 정말로 초기화하시겠어요?"
|
||||
},
|
||||
"mobileUpdateInfo": {
|
||||
"message": "이제 m.youtube.com 링크를 지원해요."
|
||||
@@ -579,7 +579,7 @@
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
},
|
||||
"CopiedExclamation": {
|
||||
"message": "복사 완료!",
|
||||
"message": "복사했어요!",
|
||||
"description": "Used after something has been copied to the clipboard. Example: 'Copied!'"
|
||||
},
|
||||
"generic_guideline1": {
|
||||
@@ -632,7 +632,7 @@
|
||||
"message": "상호작용 알림 구간"
|
||||
},
|
||||
"category_interaction_description": {
|
||||
"message": "이 구간은 동영상 내 좋아요, 구독, 팔로우를 요청하는 내용이 포함됐어요. 특정 무언가에 관한 내용이라면, \"홍보 구간\" 카테고리로 지정해야 해요."
|
||||
"message": "이 구간은 동영상 속에 좋아요, 구독, 팔로우를 요청하는 내용이 포함됐어요. 특정 무언가에 관한 내용이라면, \"홍보 구간\" 카테고리로 지정해야 해요."
|
||||
},
|
||||
"category_interaction_guideline1": {
|
||||
"message": "좋아요, 구독, 팔로우 등을 요청하는 구간이어야 함"
|
||||
@@ -650,7 +650,7 @@
|
||||
"message": "인트로/무음 구간"
|
||||
},
|
||||
"category_intro_description": {
|
||||
"message": "이 구간은 동영상 내 반복되는 애니메이션이나 정적 프레임과 같은 내용이 포함됐어요. 전환 시 정보를 포함하는 구간은 여기에 해당하지 않아요."
|
||||
"message": "이 구간은 동영상 속에 반복되는 애니메이션이나 정적 프레임과 같은 내용이 포함됐어요. 전환 시 정보를 포함하는 구간은 여기에 해당하지 않아요."
|
||||
},
|
||||
"category_intro_short": {
|
||||
"message": "인트로/무음 구간"
|
||||
@@ -746,7 +746,7 @@
|
||||
"message": "일반적인 부분에서는 큰 챕터를 사용해야 함"
|
||||
},
|
||||
"category_chapter_guideline3": {
|
||||
"message": "큰 챕터 내 작은 챕터를 배치할 수 있음"
|
||||
"message": "큰 챕터 속에 작은 챕터를 배치할 수 있음"
|
||||
},
|
||||
"category_livestream_messages": {
|
||||
"message": "실시간: 후원자 메시지 구간"
|
||||
@@ -891,7 +891,7 @@
|
||||
"message": "카테고리를 변경해요"
|
||||
},
|
||||
"nonMusicCategoryOnMusic": {
|
||||
"message": "이 동영상은 음악 동영상으로 분류되어 있어요. 동영상에 스폰서 광고 구간이 있나요? \"음악이 아닌 구간\"으로 지정된 카테고리인 경우, 확장 프로그램 설정을 열어 이 카테고리를 활성화하세요. 그리고, 이 구간을 \"스폰서 광고 구간\" 대신 \"음악이 아닌 구간\"으로 지정하세요. 혼동될 때 가이드라인을 읽어보세요."
|
||||
"message": "이 동영상은 음악 동영상으로 분류되어 있어요. 동영상에 스폰서 광고 구간이 있나요? \"음악이 아닌 구간\"으로 지정된 카테고리인 경우, 확장 프로그램 설정을 열어 이 카테고리를 활성화하세요. 그리고, 이 구간을 \"스폰서 광고 구간\" 대신 \"음악이 아닌 구간\"으로 지정하세요. 혼동된다면 가이드라인을 읽어주세요."
|
||||
},
|
||||
"multipleSegments": {
|
||||
"message": "여러 구간"
|
||||
@@ -936,10 +936,10 @@
|
||||
"message": "악의적인 의도는 없었던 듯 보이지만 제출하신 구간 중에 일부 문제가 있는 것 같아요."
|
||||
},
|
||||
"warningTitle": {
|
||||
"message": "경고를 받으셨어요!"
|
||||
"message": "경고를 받으셨어요"
|
||||
},
|
||||
"questionButton": {
|
||||
"message": "경고 사유에 대해 질문이 있어요"
|
||||
"message": "아직 질문이 있어요"
|
||||
},
|
||||
"warningConfirmButton": {
|
||||
"message": "네, 이해했어요"
|
||||
@@ -1035,7 +1035,7 @@
|
||||
"message": "계속 투표"
|
||||
},
|
||||
"ChangeCategoryTooltip": {
|
||||
"message": "변경된 카테고리가 구간에 적용돼요"
|
||||
"message": "이게 내 구간에 바로 적용될 거예요"
|
||||
},
|
||||
"downvote": {
|
||||
"message": "비추천"
|
||||
@@ -1050,7 +1050,7 @@
|
||||
"message": "편집 상자 위에 마우스 커서를 올린 채 스크롤해서 시간을 빠르게 조정해 보세요. Ctrl이나 Shift 키를 누른 채로 스크롤하면 세밀하게 조정할 수 있어요."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "새로운 기능! 이제 동영상 전체가 광고거나 홍보면 표시할 수 있어요."
|
||||
"message": "새로운 기능! 이제 동영상 전체가 광고거나 자체 홍보인지 확인해 보세요"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "일",
|
||||
@@ -1120,28 +1120,28 @@
|
||||
"description": "Button to initiate importing segments. Appears under the textbox where they paste in the data"
|
||||
},
|
||||
"redeemSuccess": {
|
||||
"message": "요청 성공!"
|
||||
"message": "등록에 성공했어요!"
|
||||
},
|
||||
"redeemFailed": {
|
||||
"message": "라이선스 키가 잘못됐어요"
|
||||
"message": "라이선스 키가 유효하지 않아요"
|
||||
},
|
||||
"hideUpsells": {
|
||||
"message": "추가 결제 없이는 숨김 설정을 이용하실 수 없습니다"
|
||||
"message": "추가 결제 없이는 숨김 설정을 이용하실 수 없어요"
|
||||
},
|
||||
"chooseACountry": {
|
||||
"message": "국가 선택"
|
||||
},
|
||||
"noDiscount": {
|
||||
"message": "할인 조건에 해당하시지 않습니다"
|
||||
"message": "할인 조건에 해당하시지 않아요"
|
||||
},
|
||||
"discountLink": {
|
||||
"message": "할인 링크 (분홍색 가격 확인)"
|
||||
},
|
||||
"selectYourCountry": {
|
||||
"message": "국가 선택"
|
||||
"message": "국가를 선택하세요"
|
||||
},
|
||||
"alreadyDonated": {
|
||||
"message": "이전에 후원한 이력이 있다면, 메일을 보내 라이선스를 요청하실 수 있어요. 문의 주소:",
|
||||
"message": "이전에 후원한 이력이 있다면, 메일을 보내 라이선스를 등록하실 수 있어요. 문의 주소:",
|
||||
"description": "After the colon is an email address"
|
||||
},
|
||||
"cantAfford": {
|
||||
@@ -1152,7 +1152,7 @@
|
||||
"message": "Patreon으로 로그인"
|
||||
},
|
||||
"redeem": {
|
||||
"message": "요청"
|
||||
"message": "등록"
|
||||
},
|
||||
"joinOnPatreon": {
|
||||
"message": "Patreon에서 구독"
|
||||
@@ -1161,41 +1161,21 @@
|
||||
"message": "일회성 구매"
|
||||
},
|
||||
"enterLicenseKey": {
|
||||
"message": "라이선스 키 입력"
|
||||
"message": "라이선스 키를 입력하세요"
|
||||
},
|
||||
"chaptersPage1": {
|
||||
"message": "SponsorBlock 사용자 참여 챕터 기능은 라이선스 결제 사용자나 이전 기여를 통해 접근을 허가받은 사용자만 이용할 수 있어요"
|
||||
"message": "SponsorBlock 사용자 참여 챕터 기능은 라이선스 결제 사용자나, 이전 기여를 통해 접근을 허가받은 사용자만 이용할 수 있어요"
|
||||
},
|
||||
"chaptersPage2": {
|
||||
"message": "참고: 여전히 챕터 제출 권한은 산정된 평판만을 바탕으로 부여돼요. 요금을 결제하면 다른 사람들이 제출한 챕터를 확인하는 기능만 추가로 이용할 수 있어요",
|
||||
"message": "참고: 여전히 챕터 제출 권한은 산정된 평판만을 바탕으로 부여돼요. 라이선스를 결제하면 다른 분이 제출한 챕터를 확인하는 기능만 추가로 이용할 수 있어요",
|
||||
"description": "On the chapters page for getting access to the paid chapters feature"
|
||||
},
|
||||
"unsubmittedSegmentCounts": {
|
||||
"message": "현재 {1}개에 {0}이 있어요",
|
||||
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
|
||||
},
|
||||
"unsubmittedSegmentCountsZero": {
|
||||
"message": "미제출한 구간이 없어요",
|
||||
"description": "Replaces 'unsubmittedSegmentCounts' string when there are no unsubmitted segments"
|
||||
},
|
||||
"unsubmittedSegmentsSingular": {
|
||||
"message": "개의 미제출한 구간",
|
||||
"description": "Example: You currently have 1 *unsubmitted segment* on 1 video"
|
||||
},
|
||||
"unsubmittedSegmentsPlural": {
|
||||
"message": "개의 미제출한 구간",
|
||||
"description": "Example: You currently have 12 *unsubmitted segments* on 5 videos"
|
||||
},
|
||||
"videosSingular": {
|
||||
"message": "동영상",
|
||||
"description": "Example: You currently have 3 unsubmitted segments on 1 *video*"
|
||||
},
|
||||
"videosPlural": {
|
||||
"message": "동영상",
|
||||
"description": "Example: You currently have 12 unsubmitted segments on 5 *videos*"
|
||||
"chapterNewFeature": {
|
||||
"message": "새로운 기능: 사용자 참여 챕터 기능. 챕터는 사용자가 직접 이름을 지정할 수 있고 중첩시킬 수 있어 더욱 더 정확해요. 이 동영상에 제출된 챕터를 보려면 라이선스를 결제하세요. 챕터 목록 미리보기: ",
|
||||
"description": "After the comma, a list of chapters for this video will appear"
|
||||
},
|
||||
"clearUnsubmittedSegments": {
|
||||
"message": "모든 구간 지우기",
|
||||
"message": "모든 구간 초기화",
|
||||
"description": "Label for a button in settings"
|
||||
},
|
||||
"clearUnsubmittedSegmentsConfirm": {
|
||||
@@ -1223,6 +1203,6 @@
|
||||
"description": "Header of the unsubmitted segments list"
|
||||
},
|
||||
"exportSegmentsAsURL": {
|
||||
"message": "URL 공유"
|
||||
"message": "URL로 공유"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -246,6 +246,12 @@
|
||||
"whatRefetchWhenNotFound": {
|
||||
"message": "Als de video nieuw is en er geen segmenten worden gevonden, zal om de zoveel minuten opnieuw worden gecontroleerd terwijl u kijkt."
|
||||
},
|
||||
"enableShowCategoryWithoutPermission": {
|
||||
"message": "Categorieën in indieningsmenu weergeven, zelfs zonder toestemming voor indienen"
|
||||
},
|
||||
"whatShowCategoryWithoutPermission": {
|
||||
"message": "Voor sommige categorieën is toestemming nodig om in te dienen vanwege minimale reputatie-eisen"
|
||||
},
|
||||
"showNotice": {
|
||||
"message": "Melding opnieuw weergeven"
|
||||
},
|
||||
@@ -1160,6 +1166,14 @@
|
||||
"chaptersPage1": {
|
||||
"message": "De SponsorBlock-functie voor crowd-sourced hoofdstukken is alleen beschikbaar voor mensen die een licentie kopen of voor mensen die gratis toegang krijgen vanwege hun bijdragen in het verleden"
|
||||
},
|
||||
"chaptersPage2": {
|
||||
"message": "Opmerking: toestemming om hoofdstukken in te dienen is nog steeds gebaseerd op berekende reputatie. Door een licentie te kopen kunt u enkel hoofdstukken bekijken die door anderen zijn ingediend",
|
||||
"description": "On the chapters page for getting access to the paid chapters feature"
|
||||
},
|
||||
"chapterNewFeature": {
|
||||
"message": "Nieuwe functie: gecrowdsourcete aangepaste hoofdstukken. Dit zijn hoofdstukken met een eigen naam in video's die gestapeld kunnen worden om steeds preciezer te worden. Koop een licentie om de ingezonden hoofdstukken op deze video te bekijken, zoals: ",
|
||||
"description": "After the comma, a list of chapters for this video will appear"
|
||||
},
|
||||
"unsubmittedSegmentCounts": {
|
||||
"message": "U hebt momenteel {0} in {1}",
|
||||
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
|
||||
|
||||
@@ -1134,22 +1134,62 @@
|
||||
"enterLicenseKey": {
|
||||
"message": "Wprowadź klucz licencyjny"
|
||||
},
|
||||
"chapterNewFeature": {
|
||||
"message": "Nowa funkcja: niestandardowe rozdziały ze źródeł społecznościowych. Są to sekcje niestandardowo nazwane w filmach, które mogą być ustawione w sposób bardziej precyzyjny. Kup licencję, aby wyświetlić rozdziały przedstawione na tym filmie, takie jak: ",
|
||||
"description": "After the comma, a list of chapters for this video will appear"
|
||||
},
|
||||
"unsubmittedSegmentCounts": {
|
||||
"message": "Aktualnie masz {0} na {1}",
|
||||
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
|
||||
},
|
||||
"unsubmittedSegmentCountsZero": {
|
||||
"message": "Aktualnie nie masz żadnych nieprzesłanych segmentów",
|
||||
"description": "Replaces 'unsubmittedSegmentCounts' string when there are no unsubmitted segments"
|
||||
},
|
||||
"unsubmittedSegmentsSingular": {
|
||||
"message": "nieprzesłany segment",
|
||||
"description": "Example: You currently have 1 *unsubmitted segment* on 1 video"
|
||||
},
|
||||
"unsubmittedSegmentsPlural": {
|
||||
"message": "nieprzesłanych segmentów",
|
||||
"description": "Example: You currently have 12 *unsubmitted segments* on 5 videos"
|
||||
},
|
||||
"videosSingular": {
|
||||
"message": "film",
|
||||
"message": "filmie",
|
||||
"description": "Example: You currently have 3 unsubmitted segments on 1 *video*"
|
||||
},
|
||||
"videosPlural": {
|
||||
"message": "filmy",
|
||||
"message": "filmach",
|
||||
"description": "Example: You currently have 12 unsubmitted segments on 5 *videos*"
|
||||
},
|
||||
"clearUnsubmittedSegments": {
|
||||
"message": "Wyczyść wszystkie segmenty",
|
||||
"description": "Label for a button in settings"
|
||||
},
|
||||
"clearUnsubmittedSegmentsConfirm": {
|
||||
"message": "Czy na pewno chcesz wyczyścić wszystkie nieprzesłane segmenty?",
|
||||
"description": "Confirmation message for the Clear unsubmitted segments button"
|
||||
},
|
||||
"showUnsubmittedSegments": {
|
||||
"message": "Pokaż segmenty",
|
||||
"description": "Show/hide button for the unsubmitted segments list"
|
||||
},
|
||||
"hideUnsubmittedSegments": {
|
||||
"message": "Ukryj segmenty",
|
||||
"description": "Show/hide button for the unsubmitted segments list"
|
||||
},
|
||||
"videoID": {
|
||||
"message": "ID filmu",
|
||||
"description": "Header of the unsubmitted segments list"
|
||||
},
|
||||
"segmentCount": {
|
||||
"message": "Liczba segmentów",
|
||||
"description": "Header of the unsubmitted segments list"
|
||||
},
|
||||
"actions": {
|
||||
"message": "Akcje",
|
||||
"description": "Header of the unsubmitted segments list"
|
||||
},
|
||||
"exportSegmentsAsURL": {
|
||||
"message": "Udostępnij jako adres URL"
|
||||
}
|
||||
|
||||
@@ -1145,14 +1145,14 @@
|
||||
"description": "After the colon is an email address"
|
||||
},
|
||||
"cantAfford": {
|
||||
"message": "Если вы не можете позволить себе приобрести лицензию, нажмите {сюда}, чтобы увидеть, имеете ли вы право на скидку",
|
||||
"message": "Если вы не можете позволить себе приобрести лицензию, нажмите {сюда}, чтобы узнать, имеете ли вы право на скидку",
|
||||
"description": "Keep the curly braces. The word 'here' should be translated as well."
|
||||
},
|
||||
"patreonSignIn": {
|
||||
"message": "Войти через Patreon"
|
||||
},
|
||||
"redeem": {
|
||||
"message": "Использовать купон"
|
||||
"message": "Использовать"
|
||||
},
|
||||
"joinOnPatreon": {
|
||||
"message": "Подписаться на Patreon"
|
||||
@@ -1164,12 +1164,16 @@
|
||||
"message": "Введите лицензионный ключ"
|
||||
},
|
||||
"chaptersPage1": {
|
||||
"message": "Функция SponsorBlock \"эпизоды от сообщества\" доступна только для людей, которые приобрели лицензию, или для людей, которым предоставлен бесплатный доступ благодаря их прошлым вкладам"
|
||||
"message": "Функция SponsorBlock \"эпизоды от сообщества\" доступна только для тех, кто приобрёл лицензию, и тех, кому был предоставлен бесплатный доступ благодаря их прошлым вкладам"
|
||||
},
|
||||
"chaptersPage2": {
|
||||
"message": "Примечание: разрешение на отправку эпизодов все еще основано на рассчитываемой репутации. Приобретая лицензию, вы можете просматривать только те главы, которые представлены другими",
|
||||
"message": "Примечание: разрешение на отправку эпизодов все еще основывается на рассчитываемой репутации. Приобретая лицензию, вы можете просматривать только эпизоды, отправленные другими",
|
||||
"description": "On the chapters page for getting access to the paid chapters feature"
|
||||
},
|
||||
"chapterNewFeature": {
|
||||
"message": "Новая функция: эпизоды от сообщества. Это разделы видео с пользовательскими названиями, которые могут быть помещены внутри других эпизодов для более точной разметки. Приобретите лицензию, чтобы видеть названия эпизодов, как, например, эпизоды в этом видео: ",
|
||||
"description": "After the comma, a list of chapters for this video will appear"
|
||||
},
|
||||
"unsubmittedSegmentCounts": {
|
||||
"message": "Сейчас у вас есть {0} в {1}",
|
||||
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"
|
||||
|
||||
@@ -32,7 +32,7 @@
|
||||
"message": "章節"
|
||||
},
|
||||
"renderAsChapters": {
|
||||
"message": "以章節的方式渲染片段",
|
||||
"message": "以章節渲染片段",
|
||||
"description": "Refers to drawing segments on the YouTube seek bar as split up chapters, similar to the existing chapter system"
|
||||
},
|
||||
"upvoteButtonInfo": {
|
||||
@@ -63,7 +63,7 @@
|
||||
"message": "繼續跳過"
|
||||
},
|
||||
"unmute": {
|
||||
"message": "解除靜音"
|
||||
"message": "取消靜音"
|
||||
},
|
||||
"paused": {
|
||||
"message": "已暫停"
|
||||
@@ -178,7 +178,7 @@
|
||||
"message": "複製公開使用者ID"
|
||||
},
|
||||
"copySegmentID": {
|
||||
"message": "複製片段ID"
|
||||
"message": "複製片段 ID"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "快加入官方 Discord 伺服器來給予建議和反應!"
|
||||
@@ -232,7 +232,7 @@
|
||||
"message": "所有你按倒讚的片段在重新整理後仍會保留"
|
||||
},
|
||||
"trackDownvotesWarning": {
|
||||
"message": "警告:停用此將刪除所有之前儲存的倒讚"
|
||||
"message": "警告: 停用此項將全數刪除先前儲存的倒讚"
|
||||
},
|
||||
"enableQueryByHashPrefix": {
|
||||
"message": "使用雜湊前綴查詢"
|
||||
@@ -259,10 +259,10 @@
|
||||
"message": "完整大小的略過提醒"
|
||||
},
|
||||
"noticeVisibilityMode1": {
|
||||
"message": "小的自動略過提醒"
|
||||
"message": "較小大小的自動略過提醒"
|
||||
},
|
||||
"noticeVisibilityMode2": {
|
||||
"message": "所有小的略過提醒"
|
||||
"message": "所有大小為小的略過提醒"
|
||||
},
|
||||
"noticeVisibilityMode3": {
|
||||
"message": "消逝的自動跳過提醒"
|
||||
@@ -295,7 +295,7 @@
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setStartSponsorShortcut": {
|
||||
"message": "開始/停止片段",
|
||||
"message": "開始/停止片段",
|
||||
"description": "Keybind label"
|
||||
},
|
||||
"setSubmitKeybind": {
|
||||
|
||||
@@ -235,6 +235,10 @@ div:hover > .sponsorBlockChapterBar {
|
||||
min-width: 100%;
|
||||
}
|
||||
|
||||
.exportCopiedNotice .sponsorSkipNoticeTableContainer {
|
||||
background-color: transparent;
|
||||
}
|
||||
|
||||
.sponsorSkipNotice {
|
||||
transition: all 0.1s ease-out;
|
||||
}
|
||||
@@ -256,6 +260,10 @@ div:hover > .sponsorBlockChapterBar {
|
||||
animation: fadeIn 0.5s ease-out;
|
||||
}
|
||||
|
||||
.exportCopiedNotice .sponsorSkipNoticeFadeIn {
|
||||
animation: none;
|
||||
}
|
||||
|
||||
.sponsorSkipNoticeFaded {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
style="enable-background:new 0 0 67.671 67.671;"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="export.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
|
||||
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
@@ -23,17 +23,20 @@
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="9.309749"
|
||||
inkscape:cx="33.835499"
|
||||
inkscape:cy="16.649214"
|
||||
inkscape:window-width="1366"
|
||||
inkscape:window-height="731"
|
||||
inkscape:cx="33.889206"
|
||||
inkscape:cy="33.835499"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="983"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-y="768"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="Capa_1" />
|
||||
inkscape:current-layer="Capa_1"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<g
|
||||
id="g6"
|
||||
style="fill:#ffffff">
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(0.82363056,0,0,0.82363056,5.9675483,6)">
|
||||
<path
|
||||
d="M 52.946,23.348 H 42.834 v 6 h 10.112 c 3.007,0 5.34,1.536 5.34,2.858 v 26.606 c 0,1.322 -2.333,2.858 -5.34,2.858 H 14.724 c -3.007,0 -5.34,-1.536 -5.34,-2.858 V 32.207 c 0,-1.322 2.333,-2.858 5.34,-2.858 h 10.11 v -6 h -10.11 c -6.359,0 -11.34,3.891 -11.34,8.858 v 26.606 c 0,4.968 4.981,8.858 11.34,8.858 h 38.223 c 6.358,0 11.34,-3.891 11.34,-8.858 V 32.207 C 64.286,27.239 59.305,23.348 52.946,23.348 Z"
|
||||
id="path2"
|
||||
@@ -45,62 +48,77 @@
|
||||
</g>
|
||||
<g
|
||||
id="g8"
|
||||
style="fill:#ffffff">
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(0.82363056,0,0,0.82363056,5.9675483,5.9675483)">
|
||||
</g>
|
||||
<g
|
||||
id="g10"
|
||||
style="fill:#ffffff">
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(0.82363056,0,0,0.82363056,5.9675483,5.9675483)">
|
||||
</g>
|
||||
<g
|
||||
id="g12"
|
||||
style="fill:#ffffff">
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(0.82363056,0,0,0.82363056,5.9675483,5.9675483)">
|
||||
</g>
|
||||
<g
|
||||
id="g14"
|
||||
style="fill:#ffffff">
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(0.82363056,0,0,0.82363056,5.9675483,5.9675483)">
|
||||
</g>
|
||||
<g
|
||||
id="g16"
|
||||
style="fill:#ffffff">
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(0.82363056,0,0,0.82363056,5.9675483,5.9675483)">
|
||||
</g>
|
||||
<g
|
||||
id="g18"
|
||||
style="fill:#ffffff">
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(0.82363056,0,0,0.82363056,5.9675483,5.9675483)">
|
||||
</g>
|
||||
<g
|
||||
id="g20"
|
||||
style="fill:#ffffff">
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(0.82363056,0,0,0.82363056,5.9675483,5.9675483)">
|
||||
</g>
|
||||
<g
|
||||
id="g22"
|
||||
style="fill:#ffffff">
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(0.82363056,0,0,0.82363056,5.9675483,5.9675483)">
|
||||
</g>
|
||||
<g
|
||||
id="g24"
|
||||
style="fill:#ffffff">
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(0.82363056,0,0,0.82363056,5.9675483,5.9675483)">
|
||||
</g>
|
||||
<g
|
||||
id="g26"
|
||||
style="fill:#ffffff">
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(0.82363056,0,0,0.82363056,5.9675483,5.9675483)">
|
||||
</g>
|
||||
<g
|
||||
id="g28"
|
||||
style="fill:#ffffff">
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(0.82363056,0,0,0.82363056,5.9675483,5.9675483)">
|
||||
</g>
|
||||
<g
|
||||
id="g30"
|
||||
style="fill:#ffffff">
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(0.82363056,0,0,0.82363056,5.9675483,5.9675483)">
|
||||
</g>
|
||||
<g
|
||||
id="g32"
|
||||
style="fill:#ffffff">
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(0.82363056,0,0,0.82363056,5.9675483,5.9675483)">
|
||||
</g>
|
||||
<g
|
||||
id="g34"
|
||||
style="fill:#ffffff">
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(0.82363056,0,0,0.82363056,5.9675483,5.9675483)">
|
||||
</g>
|
||||
<g
|
||||
id="g36"
|
||||
style="fill:#ffffff">
|
||||
style="fill:#ffffff"
|
||||
transform="matrix(0.82363056,0,0,0.82363056,5.9675483,5.9675483)">
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 3.8 KiB |
@@ -8,7 +8,7 @@
|
||||
style="enable-background:new 0 0 67.671 67.671;"
|
||||
xml:space="preserve"
|
||||
sodipodi:docname="import.svg"
|
||||
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04, custom)"
|
||||
inkscape:version="1.2.1 (9c6d41e410, 2022-07-14, custom)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
@@ -23,25 +23,27 @@
|
||||
inkscape:pagecheckerboard="0"
|
||||
showgrid="false"
|
||||
inkscape:zoom="9.309749"
|
||||
inkscape:cx="33.835499"
|
||||
inkscape:cx="33.889206"
|
||||
inkscape:cy="33.835499"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="983"
|
||||
inkscape:window-x="482"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="768"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="g6" />
|
||||
inkscape:current-layer="g6"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:deskcolor="#d1d1d1" />
|
||||
<g
|
||||
id="g6">
|
||||
<path
|
||||
d="M52.946,23.348H42.834v6h10.112c3.007,0,5.34,1.536,5.34,2.858v26.606c0,1.322-2.333,2.858-5.34,2.858H14.724 c-3.007,0-5.34-1.536-5.34-2.858V32.207c0-1.322,2.333-2.858,5.34-2.858h10.11v-6h-10.11c-6.359,0-11.34,3.891-11.34,8.858v26.606 c0,4.968,4.981,8.858,11.34,8.858h38.223c6.358,0,11.34-3.891,11.34-8.858V32.207C64.286,27.239,59.305,23.348,52.946,23.348z"
|
||||
d="M 49.575492,25.197675 H 41.24694 v 4.941783 h 8.328552 c 2.476657,0 4.398187,1.265096 4.398187,2.353936 v 21.913515 c 0,1.088839 -1.92153,2.353936 -4.398187,2.353936 H 18.094685 c -2.476657,0 -4.398188,-1.265097 -4.398188,-2.353936 V 32.494218 c 0,-1.08884 1.921531,-2.353936 4.398188,-2.353936 h 8.326905 v -4.941784 h -8.326905 c -5.237467,0 -9.3399709,3.204747 -9.3399709,7.29572 v 21.913514 c 0,4.091797 4.1025039,7.29572 9.3399709,7.29572 h 31.48163 c 5.236643,0 9.339971,-3.204747 9.339971,-7.29572 V 32.494218 c -8.24e-4,-4.091797 -4.103328,-7.296543 -9.340794,-7.296543 z"
|
||||
id="path2"
|
||||
style="fill:#ffffff" />
|
||||
style="fill:#ffffff;stroke-width:0.823631" />
|
||||
<path
|
||||
d="m 42.913,34.887 c -0.768,0 -1.370265,0.528017 -2.121,0.879 l -3.756,3.756 v -19.028 -6 V 3 c 0,-1.657 -1.343,-3 -3,-3 -1.657,0 -3,1.343 -3,3 v 11.494 12 13.231 l -3.959,-3.959 c -0.586,-0.586 -1.354,-0.879 -2.121,-0.879 -0.767,0 -1.535,0.293 -2.121,0.879 -1.172,1.171 -1.172,3.071 0,4.242 l 8.957,8.957 c 0.586,0.586 1.353,0.877 2.12,0.877 h 0.023 0.023 c 0.767,0 1.534,-0.291 2.12,-0.877 l 8.957,-8.957 c 1.172,-1.171 1.172,-3.071 0,-4.242 -0.587,-0.586 -1.354,-0.879 -2.122,-0.879 z"
|
||||
d="m 41.312006,34.701548 c -0.632548,0 -1.128592,0.43489 -1.74692,0.723971 L 36.47153,38.519075 V 22.847033 17.90525 8.4384399 c 0,-1.3647558 -1.106136,-2.4708916 -2.470892,-2.4708916 -1.364756,0 -2.470892,1.1061358 -2.470892,2.4708916 v 9.4668101 9.883566 10.897456 l -3.260753,-3.260753 c -0.482648,-0.482648 -1.115196,-0.723971 -1.746921,-0.723971 -0.631724,0 -1.264272,0.241323 -1.74692,0.723971 -0.965295,0.964471 -0.965295,2.529369 0,3.493841 l 7.377259,7.377259 c 0.482647,0.482647 1.114372,0.722324 1.746097,0.722324 h 0.01894 0.01894 c 0.631724,0 1.263449,-0.239677 1.746097,-0.722324 L 43.05975,38.91936 c 0.965295,-0.964472 0.965295,-2.52937 0,-3.493841 -0.483471,-0.482648 -1.115195,-0.723971 -1.747744,-0.723971 z"
|
||||
id="path4"
|
||||
sodipodi:nodetypes="sscccssscccssccsscssccs"
|
||||
style="fill:#ffffff" />
|
||||
style="fill:#ffffff;stroke-width:0.823631" />
|
||||
</g>
|
||||
<g
|
||||
id="g8">
|
||||
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.9 KiB |
@@ -224,6 +224,10 @@
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.segmentSummary::-webkit-details-marker {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.segmentActive {
|
||||
color: #bdfffb;
|
||||
}
|
||||
@@ -299,7 +303,7 @@
|
||||
border: none;
|
||||
flex: 1;
|
||||
padding: 10px 15px;
|
||||
trasition: background-color 0.2s ease-in-out;
|
||||
transition: background-color 0.2s ease-in-out;
|
||||
}
|
||||
.sbControlsMenu-item:hover {
|
||||
background-color: #444;
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<div id="issueReporterTimeButtons"></div>
|
||||
<div id="issueReporterImportExport">
|
||||
<div id="issueReporterImportExport" class="hidden">
|
||||
<div id="importExportButtons">
|
||||
<button id="importSegmentsButton" title="__MSG_importSegments__">
|
||||
<img src="/icons/import.svg" alt="Refresh icon" id="importSegments" />
|
||||
|
||||
@@ -19,7 +19,7 @@ export interface NoticeProps {
|
||||
|
||||
fadeIn?: boolean,
|
||||
startFaded?: boolean,
|
||||
firstColumn?: React.ReactElement,
|
||||
firstColumn?: React.ReactElement[] | React.ReactElement,
|
||||
firstRow?: React.ReactElement,
|
||||
bottomRow?: React.ReactElement[],
|
||||
|
||||
|
||||
@@ -230,7 +230,7 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
|
||||
{/* Chapter Name */}
|
||||
{sponsorTime.actionType === ActionType.Chapter ? (
|
||||
<div onMouseLeave={() => this.setState({chapterNameSelectorOpen: false})}>
|
||||
<div>
|
||||
<input id={"chapterName" + this.idSuffix}
|
||||
className="sponsorTimeEdit sponsorTimeEditInput sponsorChapterNameInput"
|
||||
style={{color: "inherit", backgroundColor: "inherit"}}
|
||||
@@ -239,6 +239,7 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
|
||||
value={this.state.description}
|
||||
onContextMenu={(e) => e.stopPropagation()}
|
||||
onChange={(e) => this.descriptionUpdate(e.target.value)}
|
||||
onBlur={() => this.setState({chapterNameSelectorOpen: false})}
|
||||
onFocus={() => this.setState({chapterNameSelectorOpen: true})}>
|
||||
</input>
|
||||
{this.state.chapterNameSelectorOpen && this.state.description &&
|
||||
|
||||
@@ -8,6 +8,7 @@ import NoticeComponent from "./NoticeComponent";
|
||||
import NoticeTextSelectionComponent from "./NoticeTextSectionComponent";
|
||||
import SponsorTimeEditComponent from "./SponsorTimeEditComponent";
|
||||
import { getGuidelineInfo } from "../utils/constants";
|
||||
import { exportTimes } from "../utils/exporter";
|
||||
|
||||
export interface SubmissionNoticeProps {
|
||||
// Contains functions and variables from the content script needed by the skip notice
|
||||
@@ -78,15 +79,24 @@ class SubmissionNoticeComponent extends React.Component<SubmissionNoticeProps, S
|
||||
className="sponsorSkipObject sponsorSkipNoticeButton sponsorSkipSmallButton"
|
||||
onClick={() => this.sortSegments()}
|
||||
title={chrome.i18n.getMessage("sortSegments")}
|
||||
key="sortButton"
|
||||
src={chrome.extension.getURL("icons/sort.svg")}>
|
||||
</img>;
|
||||
const exportButton =
|
||||
<img id={"sponsorSkipExportButton" + this.state.idSuffix}
|
||||
className="sponsorSkipObject sponsorSkipNoticeButton sponsorSkipSmallButton"
|
||||
onClick={() => this.exportSegments()}
|
||||
title={chrome.i18n.getMessage("exportSegments")}
|
||||
key="exportButton"
|
||||
src={chrome.extension.getURL("icons/export.svg")}>
|
||||
</img>;
|
||||
return (
|
||||
<NoticeComponent noticeTitle={this.state.noticeTitle}
|
||||
idSuffix={this.state.idSuffix}
|
||||
ref={this.noticeRef}
|
||||
closeListener={this.cancel.bind(this)}
|
||||
zIndex={5000}
|
||||
firstColumn={sortButton}>
|
||||
firstColumn={[sortButton, exportButton]}>
|
||||
|
||||
{/* Text Boxes */}
|
||||
{this.getMessageBoxes()}
|
||||
@@ -216,6 +226,30 @@ class SubmissionNoticeComponent extends React.Component<SubmissionNoticeProps, S
|
||||
this.forceUpdate();
|
||||
}
|
||||
|
||||
exportSegments() {
|
||||
const sponsorTimesSubmitting = this.props.contentContainer()
|
||||
.sponsorTimesSubmitting.sort((a, b) => a.segment[0] - b.segment[0]);
|
||||
window.navigator.clipboard.writeText(exportTimes(sponsorTimesSubmitting));
|
||||
|
||||
new GenericNotice(null, "exportCopied", {
|
||||
title: chrome.i18n.getMessage(`CopiedExclamation`),
|
||||
timed: true,
|
||||
maxCountdownTime: () => 0.6,
|
||||
referenceNode: document.querySelector(".noticeLeftIcon"),
|
||||
dontPauseCountdown: true,
|
||||
style: {
|
||||
top: 0,
|
||||
bottom: 0,
|
||||
minWidth: 0,
|
||||
right: "30px",
|
||||
margin: "auto"
|
||||
},
|
||||
hideLogo: true,
|
||||
hideRightInfo: true,
|
||||
extraClass: "exportCopiedNotice"
|
||||
});
|
||||
}
|
||||
|
||||
categoryChangeListener(index: number, category: Category): void {
|
||||
const dialogWidth = this.noticeRef?.current?.getElement()?.current?.offsetWidth;
|
||||
if (category !== "chooseACategory" && Config.config.showCategoryGuidelines
|
||||
|
||||
@@ -210,8 +210,8 @@ const Config: SBObject = {
|
||||
skipKeybind: {key: "Enter"},
|
||||
startSponsorKeybind: {key: ";"},
|
||||
submitKeybind: {key: "'"},
|
||||
nextChapterKeybind: {key: "]"},
|
||||
previousChapterKeybind: {key: "["},
|
||||
nextChapterKeybind: {key: "]", ctrl: true},
|
||||
previousChapterKeybind: {key: "[", ctrl: true},
|
||||
|
||||
categorySelections: [{
|
||||
name: "sponsor" as Category,
|
||||
|
||||
@@ -950,6 +950,26 @@ async function sponsorsLookup(keepOldSubmissions = true) {
|
||||
&& Config.config.skipCount > 200
|
||||
&& Math.random() > 0.8;
|
||||
|
||||
if (!showChapterMessage
|
||||
&& Config.config.showChapterInfoMessage
|
||||
&& Config.config.payments.freeAccess
|
||||
&& !utils.getCategorySelection("chapter")) {
|
||||
Config.config.showChapterInfoMessage = false;
|
||||
const prependElement = document.querySelector(".ytp-chrome-bottom") as HTMLElement;
|
||||
if (prependElement) {
|
||||
Config.config.showChapterInfoMessage = false;
|
||||
new Tooltip({
|
||||
text: chrome.i18n.getMessage("chapterNewFeature2"),
|
||||
linkOnClick: () => void chrome.runtime.sendMessage({ "message": "openConfig" }),
|
||||
referenceNode: prependElement.parentElement,
|
||||
prependElement,
|
||||
timeout: 1500,
|
||||
leftOffset: "20px",
|
||||
positionRealtive: false
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
const categories: string[] = Config.config.categorySelections.map((category) => category.name);
|
||||
if (showChapterMessage && !categories.includes("chapter")) categories.push("chapter");
|
||||
|
||||
@@ -999,7 +1019,6 @@ async function sponsorsLookup(keepOldSubmissions = true) {
|
||||
positionRealtive: false
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
recievedSegments = recievedSegments.filter((s) => s.actionType !== ActionType.Chapter);
|
||||
|
||||
@@ -234,19 +234,24 @@ class PreviewBar {
|
||||
const allProgressBars = document.querySelectorAll('.ytp-progress-bar') as NodeListOf<HTMLElement>;
|
||||
this.progressBar = findValidElement(allProgressBars) ?? allProgressBars?.[0];
|
||||
|
||||
const newChapterBar = this.progressBar.querySelector(".ytp-chapters-container:not(.sponsorBlockChapterBar)") as HTMLElement;
|
||||
if (this.originalChapterBar !== newChapterBar) {
|
||||
// Make sure changes are undone on old bar
|
||||
this.originalChapterBar?.style?.removeProperty("display");
|
||||
if (this.progressBar) {
|
||||
const newChapterBar = this.progressBar.querySelector(".ytp-chapters-container:not(.sponsorBlockChapterBar)") as HTMLElement;
|
||||
if (this.originalChapterBar !== newChapterBar) {
|
||||
// Make sure changes are undone on old bar
|
||||
this.originalChapterBar?.style?.removeProperty("display");
|
||||
|
||||
this.originalChapterBar = newChapterBar;
|
||||
this.originalChapterBar = newChapterBar;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private update(): void {
|
||||
this.clear();
|
||||
if (!this.segments) return;
|
||||
const chapterChevron = this.getChapterChevron();
|
||||
|
||||
if (!this.segments) {
|
||||
chapterChevron?.style?.removeProperty("display");
|
||||
}
|
||||
|
||||
this.chapterMargin = 2;
|
||||
if (this.originalChapterBar) {
|
||||
@@ -271,10 +276,8 @@ class PreviewBar {
|
||||
|
||||
this.createChaptersBar(this.segments.sort((a, b) => a.segment[0] - b.segment[0]));
|
||||
|
||||
const chapterChevron = this.getChapterChevron();
|
||||
if (chapterChevron) {
|
||||
if (this.segments.some((segment) => segment.actionType !== ActionType.Chapter
|
||||
&& segment.source === SponsorSourceType.YouTube)) {
|
||||
if (this.segments.some((segment) => segment.source === SponsorSourceType.YouTube)) {
|
||||
chapterChevron.style.removeProperty("display");
|
||||
} else {
|
||||
chapterChevron.style.display = "none";
|
||||
|
||||
@@ -421,13 +421,16 @@ async function runThePopup(messageListener?: MessageListener): Promise<void> {
|
||||
if (request.found) {
|
||||
PageElements.videoFound.innerHTML = chrome.i18n.getMessage("sponsorFound");
|
||||
|
||||
PageElements.issueReporterImportExport.classList.remove("hidden");
|
||||
if (request.sponsorTimes) {
|
||||
displayDownloadedSponsorTimes(request.sponsorTimes, request.time);
|
||||
}
|
||||
} else if (request.status == 404 || request.status == 200) {
|
||||
PageElements.videoFound.innerHTML = chrome.i18n.getMessage("sponsor404");
|
||||
PageElements.issueReporterImportExport.classList.add("hidden");
|
||||
} else {
|
||||
PageElements.videoFound.innerHTML = chrome.i18n.getMessage("connectionError") + request.status;
|
||||
PageElements.issueReporterImportExport.classList.add("hidden");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -67,25 +67,31 @@ export default class GenericNotice {
|
||||
hideLogo={options.hideLogo}
|
||||
hideRightInfo={options.hideRightInfo}
|
||||
closeListener={() => this.close()} >
|
||||
|
||||
<tr id={"sponsorSkipNoticeMiddleRow" + this.idSuffix}
|
||||
className="sponsorTimeMessagesRow"
|
||||
style={{maxHeight: this.contentContainer ? (this.contentContainer().v.offsetHeight - 200) + "px" : null}}>
|
||||
<td style={{width: "100%"}}>
|
||||
{this.getMessageBoxes(this.idSuffix, options.textBoxes)}
|
||||
</td>
|
||||
</tr>
|
||||
{options.textBoxes?.length > 0 ?
|
||||
<tr id={"sponsorSkipNoticeMiddleRow" + this.idSuffix}
|
||||
className="sponsorTimeMessagesRow"
|
||||
style={{maxHeight: this.contentContainer ? (this.contentContainer().v.offsetHeight - 200) + "px" : null}}>
|
||||
<td style={{width: "100%"}}>
|
||||
{this.getMessageBoxes(this.idSuffix, options.textBoxes)}
|
||||
</td>
|
||||
</tr>
|
||||
: null}
|
||||
|
||||
<tr id={"sponsorSkipNoticeSpacer" + this.idSuffix}
|
||||
className="sponsorBlockSpacer">
|
||||
</tr>
|
||||
{!options.hideLogo ?
|
||||
<>
|
||||
<tr id={"sponsorSkipNoticeSpacer" + this.idSuffix}
|
||||
className="sponsorBlockSpacer">
|
||||
</tr>
|
||||
|
||||
<tr className="sponsorSkipNoticeRightSection"
|
||||
style={{position: "relative"}}>
|
||||
<td>
|
||||
{this.getButtons(options.buttons)}
|
||||
</td>
|
||||
</tr>
|
||||
</>
|
||||
: null}
|
||||
|
||||
<tr className="sponsorSkipNoticeRightSection"
|
||||
style={{position: "relative"}}>
|
||||
<td>
|
||||
{this.getButtons(options.buttons)}
|
||||
</td>
|
||||
</tr>
|
||||
</NoticeComponent>,
|
||||
this.noticeElement
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user