Compare commits

..

38 Commits
5.0.3 ... 5.0.5

Author SHA1 Message Date
Ajay
3337fa04b9 bump version 2022-09-24 22:48:08 -04:00
Ajay Ramachandran
1a0dd19cf0 Merge pull request #1450 from AlecRust/refine-popup
Tidy/simplify popup
2022-09-24 22:46:40 -04:00
Ajay
b45434b374 i18n 2022-09-24 22:46:10 -04:00
Ajay Ramachandran
a214fd416e Merge pull request #1483 from mchangrh/x-overflow
wrap popup in #secondary-inner
2022-09-24 22:42:34 -04:00
Ajay Ramachandran
38266be174 New Crowdin updates (#1489) 2022-09-24 22:41:08 -04:00
FlorianZahn
f96419d14c popup votebuttons disappear fix (#1493)
Co-authored-by: Ajay <dev@ajay.app>
2022-09-24 22:40:56 -04:00
Ajay
280127c9af Add tooltip to skip segment button 2022-09-24 22:33:12 -04:00
Ajay
da35e889f2 Add option to disable segment names beside timestamp in video player 2022-09-24 22:29:07 -04:00
Ajay
bb8975e93a Swap preview and inspect 2022-09-24 21:17:57 -04:00
Ajay
36e8300427 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock 2022-09-24 00:39:30 -04:00
Ajay
fc160e1d09 Fix chapter suggestions disappearing on click 2022-09-24 00:39:28 -04:00
Ajay Ramachandran
1ace5ea50c fix broken funding file 2022-09-23 17:13:28 -04:00
Ajay Ramachandran
911ff9b784 update links 2022-09-23 17:11:56 -04:00
Ajay
e1688c3f58 reset custom chapters bar to null when deleting 2022-09-23 11:04:55 -04:00
Ajay
e11a320c3f Merge branch 'master' of https://github.com/ajayyy/SponsorBlock 2022-09-23 11:01:03 -04:00
Ajay
0d6a40b9fc Fix custom chapter bar sometimes sticking around 2022-09-23 11:01:01 -04:00
Alec Rust
bbab712a79 Revert 50/50 columns, improve width when editing username 2022-09-23 09:32:49 +01:00
Alec Rust
d9f03a62ee Tidy/simplify popup 2022-09-23 09:32:49 +01:00
Ajay Ramachandran
577994cc95 Merge pull request #1490 from mchangrh/private-userid
update UserID to be Private UserID
2022-09-23 01:57:28 -04:00
Michael C
d573dabf15 update UserID to be Private UserID 2022-09-23 01:42:00 -04:00
Ajay
4c903456ff Merge branch 'master' of https://github.com/ajayyy/SponsorBlock 2022-09-23 01:24:28 -04:00
Ajay
6d1a29019b Default to chapters tab if no normal segments 2022-09-23 01:24:27 -04:00
Ajay Ramachandran
a91025ac23 Merge pull request #1454 from AlecRust/start-stop-segment-copy
Improve copy of start/end segment button
2022-09-23 01:17:50 -04:00
Ajay
ca931f18f6 Warning on filler description 2022-09-23 01:13:12 -04:00
Ajay
55bd10087d bump version 2022-09-23 01:01:51 -04:00
Ajay Ramachandran
97450f5936 New Crowdin updates (#1484) 2022-09-23 00:54:00 -04:00
Ajay
6b37287e08 Fix chapter chevron sometimes not appearing 2022-09-23 00:53:08 -04:00
Ajay
757d7e0a1e Only hide chapter name selector when focus lost 2022-09-22 23:30:04 -04:00
Ajay
664d75e653 Add notice about chapters for free users 2022-09-22 23:27:10 -04:00
Ajay
dffc70cc19 Hide import button when no video found 2022-09-22 22:03:28 -04:00
Ajay
d294398f28 Add export to unsubmitted segments 2022-09-22 21:58:03 -04:00
Ajay
c17cf74389 Fix preview bar on mobile 2022-09-22 16:34:17 -04:00
Ajay
b96cdbe40a Change next keybind button for better compatibility 2022-09-20 00:16:01 -04:00
Ajay
7b86a93661 Fix wrong css property name 2022-09-19 10:40:32 -04:00
Michael C
1d2122c2df wrap popup in #secondary-inner 2022-09-19 02:18:56 -04:00
Ajay
65e40e4d9c Merge branch 'master' of https://github.com/ajayyy/SponsorBlock 2022-09-18 23:44:15 -04:00
Ajay
25cd5a346b Fix popup layout on safari 2022-09-18 23:44:14 -04:00
Alec Rust
5b080874f2 Improve copy of start/end segment button 2022-08-22 10:51:02 +01:00
55 changed files with 554 additions and 608 deletions

2
.github/FUNDING.yml vendored
View File

@@ -1,3 +1,3 @@
github: ajayyy-org
patreon: ajayyy
custom: [sponsor.ajay.app/donate]
custom: [buy.ajay.app/l/sponsorblock, sponsor.ajay.app/donate]

View File

@@ -1,7 +1,7 @@
{
"name": "__MSG_fullName__",
"short_name": "SponsorBlock",
"version": "5.0.3",
"version": "5.0.5",
"default_locale": "en",
"description": "__MSG_Description__",
"homepage_url": "https://sponsor.ajay.app",

View File

@@ -415,16 +415,16 @@
"message": "Проверете status.sponsor.ajay.app за състоянието на сървъра."
},
"changeUserID": {
"message": "Импортиране/експортиране на вашия UserID"
"message": "Импортиране/експортиране на вашия личен UserID"
},
"whatChangeUserID": {
"message": "Това трябва да се пази в тайна. То е като парола и не трябва да се споделя с никого. Ако някой го има, може да се представи за вас. Ако търсите своя публичен потребителски идентификатор, щракнете върху иконата на клипборда в изскачащия прозорец."
},
"setUserID": {
"message": "Задаване на UserID"
"message": "Задаване на личен UserID"
},
"userIDChangeWarning": {
"message": "Внимание: Промяната на UserID е постоянна. Наистина ли искате да направите това? Не забравяйте да архивирате стария си за всеки случай."
"message": "Внимание: Промяната на личния UserID е постоянна. Наистина ли искате да направите това? Не забравяйте да архивирате стария си за всеки случай."
},
"createdBy": {
"message": "Създаден от"
@@ -524,7 +524,7 @@
"message": "Зареждане от файл"
},
"whatExportOptions": {
"message": "Това е цялата ви конфигурация в JSON. Това включва вашия userID, така че се уверете, че споделяте това разумно."
"message": "Това е цялата ви конфигурация в JSON. Това включва вашия личен userID, така че се уверете, че споделяте това разумно."
},
"setOptions": {
"message": "Задаване на опции"
@@ -689,7 +689,7 @@
"message": "Пълнеж/Шеги"
},
"category_filler_description": {
"message": "Съпътстващи сцени, добавени само за пълнеж или хумор, които не са необходими за разбирането на основното съдържание на видеоклипа. Това не трябва да включва сегменти, предоставящи контекст или справочни данни."
"message": "Съпътстващи сцени, добавени само за пълнеж или хумор, които не са необходими за разбирането на основното съдържание на видеоклипа. Това не трябва да включва сегменти, предоставящи контекст или справочни данни. Това е много агресивна категория, предназначена за случаите, когато не сте в настроение за „забавление“."
},
"category_filler_short": {
"message": "Пълнеж"
@@ -1174,6 +1174,9 @@
"message": "Нова функция: Персонализирани глави с краудсорсинг. Това са секции с персонализирани имена във видеоклипове, които могат да бъдат подредени, за да станат все по-прецизни. Закупете лиценз, за ​​да видите главите, изпратени в това видео, като например: ",
"description": "After the comma, a list of chapters for this video will appear"
},
"chapterNewFeature2": {
"message": "Нова функция: Персонализирани глави с краудсорсинг. Това са секции с персонализирани имена във видеоклипове, които могат да бъдат подредени, за да станат все по-прецизни. Имате безплатен достъп, активирайте в опциите."
},
"unsubmittedSegmentCounts": {
"message": "В момента имате {0} в {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"

View File

@@ -25,6 +25,16 @@
"Segments": {
"message": "অংশগুলো"
},
"SegmentsCap": {
"message": "অংশগুলো"
},
"Chapters": {
"message": "অধ্যায়সমূহ"
},
"renderAsChapters": {
"message": "অংশসমূহকে অধ্যায়সমূহতে পরিণত করুন",
"description": "Refers to drawing segments on the YouTube seek bar as split up chapters, similar to the existing chapter system"
},
"upvoteButtonInfo": {
"message": "এই জমাটিকে সমর্থন করুন"
},
@@ -115,6 +125,9 @@
"SubmitTimes": {
"message": "সেগমেন্ট জমা দিন"
},
"sortSegments": {
"message": "সংক্ষিপ্ত অংশ"
},
"submitCheck": {
"message": "আপনি কি এটি জমা দেওয়ার বিষয়ে নিশ্চিত?"
},
@@ -233,12 +246,21 @@
"whatRefetchWhenNotFound": {
"message": "যদি ভিডিওটি নতুন হয়, এবং কোন অংশ পাওয়া না যায়, আপনার দেখার সময় কয়েক মিনিট পর পরই এটি তথ্য আনতে থাকবে।"
},
"enableShowCategoryWithoutPermission": {
"message": "জমার অনুমতি ছাড়াই বিভাগসমূহকে জমা মেনুতে দেখান"
},
"whatShowCategoryWithoutPermission": {
"message": "নূন্যতম খ্যাতি প্রয়োজনীয়তার কারণে কিছু বিভাগ জমা দিতে অনুমতি প্রয়োজন"
},
"showNotice": {
"message": "নোটিশ পুনরায় প্রদর্শন করুন"
},
"showSkipNotice": {
"message": "একটি অংশ এড়ানোর পরে নোটিস প্রদর্শন করুন"
},
"showCategoryGuidelines": {
"message": "বিভাগের সাহায্য দেখান"
},
"noticeVisibilityMode0": {
"message": "পূর্ণ আকারের স্কিপ নোটিস"
},
@@ -286,6 +308,14 @@
"message": "সেগমেন্ট জমা দিন",
"description": "Keybind label"
},
"nextChapterKeybind": {
"message": "পরবর্তী অধ্যায়",
"description": "Keybind label"
},
"previousChapterKeybind": {
"message": "পূর্ববর্তী অধ্যায়",
"description": "Keybind label"
},
"keybindDescription": {
"message": "এটি টাইপ করে একটি কী নির্বাচন করুন এবং আপনি যে কোনও সংশোধক কীগুলি ব্যবহার করতে চান তা চয়ন করুন।"
},
@@ -384,18 +414,9 @@
"statusReminder": {
"message": "সার্ভারের স্ট্যাটাস এর জন্য status.sponsor.ajay.app দেখুন করুন।"
},
"changeUserID": {
"message": "আপনার ইউজার আইডি ইম্পোর্ট/এক্সপোর্ট করুন"
},
"whatChangeUserID": {
"message": "এটি ব্যক্তিগত রাখা উচিত। এটি একটি পাসওয়ার্ডের মতো এবং কারও সাথে ভাগ করা উচিত নয়। কারও যদি এটি থাকে তবে তারা আপনার ছদ্মবেশ ধারণ করতে পারে। আপনি যদি আপনার পাবলিক ইউজারআইডি খুঁজছেন তবে পপআপে ক্লিপবোর্ড আইকনটি ক্লিক করুন।"
},
"setUserID": {
"message": "ইউজার আইডি দিন"
},
"userIDChangeWarning": {
"message": "সতর্কতা: ইউজারআইডি পরিবর্তন করা চিরস্থায়ী। আপনি কি নিশ্চিত যে আপনি এটি করতে চান? আপনার পুরানোটিকে সাবধানতার সার্থে ব্যাকআপ করার বিষয়টি নিশ্চিত করুন।"
},
"createdBy": {
"message": "সৃষ্টি করেছেন"
},
@@ -439,6 +460,9 @@
"minDurationDescription": {
"message": "সেট করা মান (সেকেন্ডে) থেকে ছোট সেগমেন্টগুলি প্লেয়ারে এড়িয়ে যাওয়া হবে বা দেখানো হবে না"
},
"enableManualSkipOnFullVideo": {
"message": "সম্পূর্ণ ভিডিওর লেবেল যুক্ত থাকলে ম্যানুয়াল স্কিপ দেখান"
},
"skipNoticeDuration": {
"message": "নোটিশ প্রদর্শন করার দৈর্ঘ্য (সেকেন্ড):"
},
@@ -487,9 +511,6 @@
"exportOptionsUpload": {
"message": "ফাইল থেকে লোড করুন"
},
"whatExportOptions": {
"message": "এটি আপনার সম্পূর্ণ কনফিগারেশন এতে আপনার ইউজারআইডি অন্তর্ভুক্ত রয়েছে, তাই বিজ্ঞতার সাথে শেয়ার করতে ভুলবেন না।."
},
"setOptions": {
"message": "অপশন সেট করুন"
},
@@ -594,9 +615,6 @@
"category_filler": {
"message": "ফিলার ট্যানজেন্ট/জোকস"
},
"category_filler_description": {
"message": "স্পর্শকাতর দৃশ্য যেগুলি কেবল ফিলার বা হাস্যরসের জন্য যুক্ত হয়েছে যা ভিডিওর মূল বিষয়বস্তু বোঝার জন্য প্রয়োজন হয় না। এর মধ্যে প্রসঙ্গ বা পটভূমির বিশদ সরবরাহকারী বিভাগগুলি অন্তর্ভুক্ত করা উচিত নয়।"
},
"category_filler_short": {
"message": "ফিলার"
},

View File

@@ -217,9 +217,6 @@
"statusReminder": {
"message": "Visiteu status.sponsor.ajay.app per conèixer l'estat del servidor."
},
"changeUserID": {
"message": "Importa/exporta la vostra identificació d'usuari"
},
"whatChangeUserID": {
"message": "Això hauria de romandre privat: és semblant a una contrasenya i no s'hauria de compartir amb cap persona. Si algú hi té accés, poden suplantar-vos. Si esteu cercant el vostre identificador d'usuari públic, premeu la icona del portanotes a la finestra."
},

View File

@@ -415,16 +415,16 @@
"message": "Podívejte se na status.sponsor.ajay.app pro stav serverů."
},
"changeUserID": {
"message": "Importovat / exportovat vaše UserID"
"message": "Importovat / exportovat vaše soukromé UserID"
},
"whatChangeUserID": {
"message": "Toto by mělo být ponecháno v soukromí. Je to jako heslo a nemělo by být s nikým sdíleno. Pokud to někdo má, může se za vás vydávat. Pokud hledáte vaše veřejné uživatelské ID, klikněte na ikonu schránky ve vyskakovacím okně."
},
"setUserID": {
"message": "Nastavit UserID"
"message": "Nastavit soukromé UserID"
},
"userIDChangeWarning": {
"message": "Varování: Změna UserID je nevratná. Opravdu to chcete udělat? Pro jistotu si zálohujte vaše staré ID, jen kdyby něco."
"message": "Varování: Změna soukromého UserID je nevratná. Opravdu to chcete udělat? Pro jistotu si zálohujte vaše staré ID, jen kdyby něco."
},
"createdBy": {
"message": "Vytvořil"
@@ -524,7 +524,7 @@
"message": "Načíst ze souboru"
},
"whatExportOptions": {
"message": "Toto je celá vaše konfigurace ve formátu JSON. Zahrnuje vaše userID, takže s ní nakládejte opatrně."
"message": "Toto je celá vaše konfigurace ve formátu JSON. Zahrnuje vaše soukromé UserID, takže s ní nakládejte opatrně."
},
"setOptions": {
"message": "Nastavit možnosti"
@@ -689,7 +689,7 @@
"message": "Výplň / vtipy"
},
"category_filler_description": {
"message": "Výplňové scény přidané jen jako přídavek nebo humor, které nejsou vyžadovány pro pochopení hlavního obsahu videa. Toto by nemělo zahrnovat segmenty poskytující kontext nebo podrobnosti na pozadí."
"message": "Scény přidané pouze jako výplň nebo humor, které nejsou nutné k pochopení hlavního obsahu videa. Kategorie by neměla zahrnovat segmenty poskytující podrobnosti o kontextu nebo pozadí. Jedná se o velmi agresivní kategorii myšlenou pro chvíle, kdy nemáte náladu na „zábavu“."
},
"category_filler_short": {
"message": "Výplň"
@@ -1170,6 +1170,13 @@
"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"
},
"chapterNewFeature2": {
"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ší. Přístup máte zdarma, povolte jej v možnostech."
},
"unsubmittedSegmentCounts": {
"message": "Momentálně máte {0} na {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"

View File

@@ -414,18 +414,9 @@
"statusReminder": {
"message": "Tjek status.sponsor.ajay.app for serverstatus."
},
"changeUserID": {
"message": "Importer/Eksporter Dit Bruger-ID"
},
"whatChangeUserID": {
"message": "Dette bør holdes privat. Det er ligesom en adgangskode og bør ikke deles med nogen. Hvis nogen har dette, kan de udgive sig for at være dig. Hvis du leder efter dit offentlige bruger-ID, skal du klikke på udklipsholderikonet i popup-vinduet."
},
"setUserID": {
"message": "Indstil Bruger-ID"
},
"userIDChangeWarning": {
"message": "Advarsel: Ændring af Bruger-IDet er permanent. Er du sikker på, at du vil gøre det? Sørg for at sikkerhedskopiere din gamle for en sikkerheds skyld."
},
"createdBy": {
"message": "Oprettet Af"
},
@@ -523,9 +514,6 @@
"exportOptionsUpload": {
"message": "Indlæs fra fil"
},
"whatExportOptions": {
"message": "Dette er hele din konfiguration i JSON. Dette inkluderer dit bruger-ID, så sørg for at dele dette med omtanke."
},
"setOptions": {
"message": "Indstil Indstillinger"
},
@@ -689,7 +677,7 @@
"message": "Fyldningstangent/Jokes"
},
"category_filler_description": {
"message": "Tangential scener kun tilføjet for fyldstof eller humor, som ikke er nødvendige for at forstå videoens hovedindhold. Dette bør ikke omfatte segmenter, der gtiver kontekst eller bagrundsoplysninger."
"message": "Tangential scener kun tilføjet for fyldstof eller humor, som ikke er nødvendige for at forstå videoens hovedindhold. Dette bør ikke omfatte segmenter, der gtiver kontekst eller bagrundsoplysninger\"."
},
"category_filler_short": {
"message": "Fyldstof"
@@ -1166,6 +1154,14 @@
"chaptersPage1": {
"message": "SponsorBlock crowd-sourced kapitler funktion er kun tilgængelig for personer, der køber en licens, eller for personer, der har fået gratis adgang på grund af deres tidligere bidrag"
},
"chaptersPage2": {
"message": "Bemærk: Tilladelse til at indsende kapitler er stadig baseret på beregnet omdømme. Indkøb af en licens giver dig kun mulighed for at se kapitler indsendt af andre",
"description": "On the chapters page for getting access to the paid chapters feature"
},
"chapterNewFeature": {
"message": "Ny funktion: Crowd-sourced brugerdefinerede kapitler. Disse er brugerdefinerede sektioner i videoer, der kan stables for at få mere og mere præcise. Køb en licens til at se kapitlerne indsendt på denne video såsom: ",
"description": "After the comma, a list of chapters for this video will appear"
},
"unsubmittedSegmentCounts": {
"message": "Du har lige nu {0} på {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"

View File

@@ -414,18 +414,9 @@
"statusReminder": {
"message": "Prüfe status.sponsor.ajay.app für den Serverstatus."
},
"changeUserID": {
"message": "Benutzer-ID importieren/exportieren"
},
"whatChangeUserID": {
"message": "Dies sollte geheim gehalten und wie ein Passwort behandelt, also mit niemandem geteilt werden. Andere könnten sich damit als dich ausgeben. Wenn du nach deiner öffentlichen Profilkennung suchst, klicke auf das „Kopieren“-Symbol neben deinem Anmeldenamen im Pop-up."
},
"setUserID": {
"message": "Interne Benutzer-ID festlegen"
},
"userIDChangeWarning": {
"message": "Warnung: Das Ändern der Benutzer-ID ist permanent. Bist du dir sicher, dass du das tun möchtest? Lege dir zur Sicherheit erst eine Sicherheitskopie deiner alten ID an."
},
"createdBy": {
"message": "Erstellt von"
},
@@ -523,9 +514,6 @@
"exportOptionsUpload": {
"message": "Aus Datei laden"
},
"whatExportOptions": {
"message": "Dies ist deine gesamte Konfiguration im JSON-Format. Da diese auch deine Benutzer-ID enthält, solltest du dir genau überlegen, mit wem du diese teilen möchtest."
},
"setOptions": {
"message": "Optionen ändern"
},
@@ -688,9 +676,6 @@
"category_filler": {
"message": "Füller/Witze"
},
"category_filler_description": {
"message": "Nebensächliche Szenen, die nur als Füller oder Witz dienen und nicht benötigt sind um den Hauptinhalt des Videos zu verstehen. Dies bezieht sich nicht auf Segmente, die Kontext oder Hintergrunddetails liefern."
},
"category_filler_short": {
"message": "Füller"
},

View File

@@ -400,18 +400,9 @@
"statusReminder": {
"message": "Ελέγξτε το status.sponsor.ajay.app για την κατάσταση διακομιστή."
},
"changeUserID": {
"message": "Εισαγωγή/Εξαγωγή της Ταυτότητας Χρήστη σας"
},
"whatChangeUserID": {
"message": "Κρατείστε το μυστικό. Αυτό είναι σαν ένα κωδικό πρόσβασης όπου δε θα έπρεπε να μοιράζεστε με κανένα. Εάν το αποκτήσει κάποιος, μπορεί να σας υποδυθεί. Εάν ψάχνετε για τη δημόσια ταυτότητα χρήστη σας, πατήστε πάνω στο αναδυόμενο εικονίδιο πρόχειρου."
},
"setUserID": {
"message": "Ορισμός Ταυτότητας Χρήστη"
},
"userIDChangeWarning": {
"message": "Προσοχή: Η αλλαγή της Ταυτότητας Χρήστη είναι μόνιμη. Είστε βέβαιοι ότι θέλετε να το κάνετε; Βεβαιωθείτε ότι έχετε δημιουργήσει αντίγραφο ασφαλείας του παλιού σας για παν ενδεχόμενο."
},
"createdBy": {
"message": "Δημιουργήθηκε από"
},
@@ -503,9 +494,6 @@
"exportOptionsUpload": {
"message": "Φόρτωση από αρχείο"
},
"whatExportOptions": {
"message": "Αυτές είναι όλες σας οι ρυθμίσεις σε αρχείο JSON. Αυτό περιλαμβάνει και την Ταυτότητα Χρήστη, οπότε μοιραστείτε το με προσοχή."
},
"setOptions": {
"message": "Ορισμός Επιλογών"
},
@@ -661,9 +649,6 @@
"category_filler": {
"message": "Σπατάλη Χρόνου/Περιττό σχόλιο"
},
"category_filler_description": {
"message": "Σκηνές εκτός θέματος προστίθενται μόνο για σπατάλη χρόνου και περιττά σχόλια τα οποία δεν απαιτούνται για να κατανοήσετε το κύριο περιεχόμενο του βίντεο. Δεν πρέπει να περιλαμβάνονται τμήματα που συμβάλουν στην κατανόηση του θέματος του βίντεο ή επιπλέον πληροφορίες."
},
"category_filler_short": {
"message": "Περιττό"
},

View File

@@ -35,6 +35,9 @@
"message": "Render segments as chapters",
"description": "Refers to drawing segments on the YouTube seek bar as split up chapters, similar to the existing chapter system"
},
"showSegmentNameInChapterBar": {
"message": "Show Current Segment Beside Video Time"
},
"upvoteButtonInfo": {
"message": "Upvote this submission"
},
@@ -87,10 +90,10 @@
"message": "No segments found"
},
"sponsorStart": {
"message": "Segment Starts Now"
"message": "Start Segment Now"
},
"sponsorEnd": {
"message": "Segment Ends Now"
"message": "End Segment Now"
},
"sponsorCancel": {
"message": "Cancel Creating Segment"
@@ -122,6 +125,9 @@
"closePopup": {
"message": "Close Popup"
},
"closeIcon": {
"message": "Close Icon"
},
"SubmitTimes": {
"message": "Submit Segments"
},
@@ -415,16 +421,16 @@
"message": "Check status.sponsor.ajay.app for server status."
},
"changeUserID": {
"message": "Import/Export Your UserID"
"message": "Import/Export Your Private UserID"
},
"whatChangeUserID": {
"message": "This should be kept private. This is like a password and should not be shared with anyone. If someone has this, they can impersonate you. If you are looking for your public userID, click the clipboard icon in the popup."
},
"setUserID": {
"message": "Set UserID"
"message": "Set Private UserID"
},
"userIDChangeWarning": {
"message": "Warning: Changing the UserID is permanent. Are you sure you would like to do this? Make sure to backup your old one just in case."
"message": "Warning: Changing the Private UserID is permanent. Are you sure you would like to do this? Make sure to backup your old one just in case."
},
"createdBy": {
"message": "Created By"
@@ -524,7 +530,7 @@
"message": "Load from file"
},
"whatExportOptions": {
"message": "This is your entire configuration in JSON. This includes your userID, so be sure to share this wisely."
"message": "This is your entire configuration in JSON. This includes your Private UserID, so be sure to share this wisely."
},
"setOptions": {
"message": "Set Options"
@@ -689,7 +695,7 @@
"message": "Filler Tangent/Jokes"
},
"category_filler_description": {
"message": "Tangential scenes added only for filler or humor that are not required to understand the main content of the video. This should not include segments providing context or background details."
"message": "Tangential scenes added only for filler or humor that are not required to understand the main content of the video. This should not include segments providing context or background details. This is a very aggressive category meant for when you aren't in the mood for \"fun\"."
},
"category_filler_short": {
"message": "Filler"
@@ -1046,6 +1052,12 @@
"hideSegment": {
"message": "Hide segment"
},
"skipSegment": {
"message": "Skip segment"
},
"playChapter": {
"message": "Play chapter"
},
"SponsorTimeEditScrollNewFeature": {
"message": "Use your mousewheel while hovering over the edit box to quickly adjust the time. Combinations of the ctrl or shift key can be used to fine tune the changes."
},
@@ -1174,6 +1186,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"

View File

@@ -414,18 +414,9 @@
"statusReminder": {
"message": "Comprueba status.sponsor.ajay.app para ver el estado del servidor."
},
"changeUserID": {
"message": "Importar/Exportar tu ID de usuario"
},
"whatChangeUserID": {
"message": "Esto se debería mantener privado. Esto es como una contraseña y no debe ser compartido con nadie. Si alguien tiene esto, puede suplantarte. Si estás buscando tu ID de usuario público, haz clic en el icono de portapapeles en la ventana emergente."
},
"setUserID": {
"message": "Establecer el ID de usuario"
},
"userIDChangeWarning": {
"message": "Advertencia: El cambio del ID de usuario es irreversible. ¿Está seguro de que le desea hacerlo? Asegúrese de hacer una copia de respaldo de la anterior por si acaso."
},
"createdBy": {
"message": "Creado Por"
},
@@ -523,9 +514,6 @@
"exportOptionsUpload": {
"message": "Cargar desde archivo"
},
"whatExportOptions": {
"message": "Esta es toda su configuración en JSON. Esto incluye tu ID de usuario, así que asegúrate de compartir esto sabiamente."
},
"setOptions": {
"message": "Configurar opciones"
},
@@ -688,9 +676,6 @@
"category_filler": {
"message": "Tangentes de Relleno/Chistes"
},
"category_filler_description": {
"message": "Escenas tangenciales añadidas solo para relleno o humor que no son necesarias para entender el contenido principal del video. Esto no debe incluir segmentos que proporcionen contexto o detalles de fondo."
},
"category_filler_short": {
"message": "Relleno"
},

View File

@@ -405,18 +405,9 @@
"statusReminder": {
"message": "Serveri oleku saamiseks vaata status.sponsor.ajay.app"
},
"changeUserID": {
"message": "Impordi/ekspordi oma UserID"
},
"whatChangeUserID": {
"message": "Seda tuleks privaatsena hoida. See on nagu parool ning seda ei tohiks kellegagi jagada. Kui kellelgi see on, saavad nad sinuna esineda.\nKui otsid avalikku UserID'd, klõpsa hüpikus olevat lõikelaua ikooni."
},
"setUserID": {
"message": "Seadista UserID"
},
"userIDChangeWarning": {
"message": "Hoiatus: UserID muutmine on püsiv. Kas soovid kindlasti seda teha? Igaks juhuks soovitame eelmise UserID varundada."
},
"createdBy": {
"message": "Autor"
},
@@ -505,9 +496,6 @@
"exportOptionsUpload": {
"message": "Laadi failist"
},
"whatExportOptions": {
"message": "See on sinu kogu seadistus JSON-formaadis. Selle hulgas on ka UserID, seega jaga seda targalt."
},
"setOptions": {
"message": "Määra valikud"
},
@@ -667,9 +655,6 @@
"category_filler": {
"message": "Täitesisu/naljad"
},
"category_filler_description": {
"message": "Video täiteks või huumori eesmärgil lisatud sisu, mis ei ole vajalik video põhieesmärgi mõistmiseks. Selle alla ei kuulu segmendid, mis annavad kontekstiteavet või taustainfot."
},
"category_filler_short": {
"message": "Täide"
},

View File

@@ -175,7 +175,7 @@
"message": "Aseta käyttäjänimi"
},
"copyPublicID": {
"message": "Kopio julkinen UserID"
"message": "Kopioi julkinen UserID"
},
"copySegmentID": {
"message": "Kopioi osion ID"
@@ -415,16 +415,16 @@
"message": "Tarkista palvelimen tila osoitteessa status.sponsor.ajay.app."
},
"changeUserID": {
"message": "Tuo/vie UserID:si"
"message": "Tuo/vie yksityinen UserID"
},
"whatChangeUserID": {
"message": "Tämä pitäisi pitää yksityisenä. Tämä on kuin salasana, eikä sitä pitäisi jakaa kenenkään kanssa. Jos jollakulla on tämä, he voivat esiintyä sinuna. Jos etsit julkista userID:täsi, napsauta leikepöydän kuvaketta ponnahdusikkunassa."
},
"setUserID": {
"message": "Aseta UserID"
"message": "Määritä yksityinen UserID"
},
"userIDChangeWarning": {
"message": "Varoitus: UserID:n vaihtaminen on pysyvää. Oletko varma, että haluat tehdä tämän? Varmuuskopioi vanha UserID:si varmuuden vuoksi."
"message": "Varoitus: Yksityisen UserID:n vaihto on pysyvää. Haluatko varmasti tehdä tämän? Varmuuskopioi vanha UserID varmuuden vuoksi."
},
"createdBy": {
"message": "Luonut"
@@ -524,7 +524,7 @@
"message": "Lataa tiedostosta"
},
"whatExportOptions": {
"message": "Tämä on koko konfiguraatiosi JSON-tiedostona. Tämä sisältää userID:si, joten jaa sitä viisaasti."
"message": "Tässä ovat kaikki määrityksesi JSON-muodossa. Myös yksityinen UserID sisältyy näihin tietoihin, joten jaa teidostoa harkiten."
},
"setOptions": {
"message": "Käytä asetuksia"
@@ -689,7 +689,7 @@
"message": "Epäolennainen täytesisältö/Vitsit"
},
"category_filler_description": {
"message": "Täytteeksi tai huumoriksi lisättyjä toissijaisia kohtauksia, joita videon pääsisällön ymmärrys ei edellytä. Tämän ei tulisi sisältää aiheeseen liittyviä tai taustatietoja tarjoavia osioita."
"message": "Täytteeksi tai huumoriksi lisättyjä toissijaisia kohtauksia, joita videon pääsisällön ymmärrys ei edellytä. Tämän ei tulisi sisältää aiheeseen liittyviä tai taustatietoja tarjoavia osioita. Tämä on erittäin aggressiivinen kategoria niihin hetkiin, kun et välitä \"huvituksista\"."
},
"category_filler_short": {
"message": "Täytesisältö"

View File

@@ -408,18 +408,9 @@
"statusReminder": {
"message": "Vérifiez status.sponsor.ajay.app pour le status du serveur."
},
"changeUserID": {
"message": "Importer/Exporter Votre ID d'Utilisateur"
},
"whatChangeUserID": {
"message": "Il doit rester privé. 0 l'instar d'un mot de passe, il ne doit être partagé avec personne. Si une autre personne est en possession de cette information, elle peut usurper votre identité SponsorBlock. Si vous cherchez votre UserID public, cliquez sur l'icône du presse-papiers dans l'encart."
},
"setUserID": {
"message": "Définir \"UserID\""
},
"userIDChangeWarning": {
"message": "Avertissement : La modification de \"UserID\" est permanente. Êtes-vous sûr de vouloir faire ça ? Assurez-vous de sauvegarder votre ancien au cas où."
},
"createdBy": {
"message": "Créé par"
},
@@ -517,9 +508,6 @@
"exportOptionsUpload": {
"message": "Charger à partir du fichier"
},
"whatExportOptions": {
"message": "Contient toute votre configuration au format JSON. Inclut votre UserID privé, donc ne partagez pas ce fichier."
},
"setOptions": {
"message": "Définir les options"
},
@@ -682,9 +670,6 @@
"category_filler": {
"message": "Digressions/Blagues"
},
"category_filler_description": {
"message": "Digressions ajoutées uniquement dans un but de remplissage ou de l'humour non requis pour comprendre le sujet principal de la vidéo. Ne doit pas inclure des segments fournissant du contexte ou des détails de fond."
},
"category_filler_short": {
"message": "Remplissage"
},

View File

@@ -383,15 +383,6 @@
"statusReminder": {
"message": "Provjerite status.sponsor.ajay.app za status poslužitelja."
},
"changeUserID": {
"message": "Uvezi/Izvezi svoj korisnički ID"
},
"setUserID": {
"message": "Postavi UserID"
},
"userIDChangeWarning": {
"message": "Oprez: Promjena UserID-a je trajna. Jesi li siguran da želiš ovo napraviti? Napravi kopiju starog UserID-a za svaki slučaj."
},
"createdBy": {
"message": "Izradio"
},

View File

@@ -415,16 +415,16 @@
"message": "A szerver állapotához tekintsd meg a status.sponsor.ajay.app oldalt."
},
"changeUserID": {
"message": "UserID importálása / exportálása"
"message": "Titkos UserID importálása / exportálása"
},
"whatChangeUserID": {
"message": "Ez privát információnak minősül. Ez olyan, mint egy jelszó, így nem ajánlott megosztani senkivel. Ha valakinek birtokában van, megszemélyesíthet téged. Ha a nyilvános userID-dat keresed, kattints a vágólap ikonra a felugró ablakban."
},
"setUserID": {
"message": "UserID beállítása"
"message": "Titkos UserID beállítása"
},
"userIDChangeWarning": {
"message": "Figyelem: A UserID megváltoztatása végleges. Biztosan szeretnéd megtenni? Minden esetben készíts biztonsági másolatot a régiről!"
"message": "Figyelem: A Titkos UserID megváltoztatása végleges. Biztosan szeretnéd megtenni? Minden esetben készíts biztonsági másolatot a régiről!"
},
"createdBy": {
"message": "Készítette"
@@ -524,7 +524,7 @@
"message": "Betöltés fájlból"
},
"whatExportOptions": {
"message": "Ez az összes beállításod JSON formátumban. Ebbe bele tartozik a userID-d is, úgyhogy csak elővigyázatosan oszd meg."
"message": "Ez az összes beállításod JSON formátumban. Ebbe bele tartozik a Titkos UserID-d is, úgyhogy csak elővigyázatosan oszd meg."
},
"setOptions": {
"message": "Beállítások módosítása"
@@ -689,7 +689,7 @@
"message": "Témától eltérő töltelék/viccek"
},
"category_filler_description": {
"message": "Csak töltelékként, vagy humornak hozzáadott részek, amik nem szükségesek a videó fő tartalmának megértéséhez. Ne tartalmazzon olyan szegmenseket, amik kontextust, vagy alapvető információkat szolgáltatnak."
"message": "Csak töltelékként, vagy humornak hozzáadott részek, amik nem szükségesek a videó fő tartalmának megértéséhez. Ne tartalmazzon olyan szegmenseket, amik kontextust, vagy alapvető információkat szolgáltatnak\". Ez egy nagyon agresszív kategória arra, amikor nincs kedved a \"szórakozáshoz\"."
},
"category_filler_short": {
"message": "Töltelék"
@@ -1174,6 +1174,9 @@
"message": "Új funkció: Közösség által karbantartott fejezetek. Ezek egyedileg elnevezett részei a videóknak, amiket egymásba is lehet ágyazni, hogy egyre pontosabbak lehessenek. Vásárolj licencet, hogy láthasd az ezen a videón beküldött fejezeteket, mint: ",
"description": "After the comma, a list of chapters for this video will appear"
},
"chapterNewFeature2": {
"message": "Új funkció: Közösség által karbantartott fejezetek. Ezek egyedileg elnevezett részei a videóknak, amiket egymásba is lehet ágyazni, hogy egyre pontosabbak lehessenek. Neked van igyenes hozzáférésed, engedélyezd a beállításokban."
},
"unsubmittedSegmentCounts": {
"message": "Jelenleg {0} van {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"

View File

@@ -387,18 +387,9 @@
"statusReminder": {
"message": "Cek status.sponsor.ajay.app untuk status server."
},
"changeUserID": {
"message": "Impor/Ekspor UserID"
},
"whatChangeUserID": {
"message": "Ini harus dirahasiakan. Ini seperti kata sandi dan tidak boleh dibagikan kepada siapa pun. Jika seseorang mempunyai ini, mereka bisa menyamar jadi anda. Jika anda mencari UserID publik anda, klik ikon papan tulis di popup."
},
"setUserID": {
"message": "Atur UserID"
},
"userIDChangeWarning": {
"message": "Peringatan: Pengubahan UserID bersifat permanen. Apakah anda yakin ingin melakukan ini? Pastikan kamu sudah mencadangkan yang lama untuk berjaga."
},
"createdBy": {
"message": "Dibuat Oleh"
},
@@ -493,9 +484,6 @@
"exportOptionsUpload": {
"message": "Muat dari file"
},
"whatExportOptions": {
"message": "Ini adalah seluruh konfigurasi anda di JSON. Ini mencakup userID anda, maka pastikan anda membagikan ini dengan bijak."
},
"setOptions": {
"message": "Atur Opsi"
},
@@ -651,9 +639,6 @@
"category_filler": {
"message": "Pengisi Tak berkaitan/Lawakan"
},
"category_filler_description": {
"message": "Adegan tangensial ditambahkan hanya untuk pengisi atau humor yang tidak diperlukan untuk memahami isi utama video. Ini tidak boleh mencakup segmen yang memberikan detail konteks atau latar belakang."
},
"category_filler_short": {
"message": "Isian"
},

View File

@@ -414,18 +414,9 @@
"statusReminder": {
"message": "Controlla status.sponsor.ajay.app per lo stato del server."
},
"changeUserID": {
"message": "Importa/Esporta Il Tuo ID Utente"
},
"whatChangeUserID": {
"message": "Questo dovrebbe esser mantenuto privato. È come una password e non dovrebbe esser condiviso con nessuno. Se qualcuno lo possiede, può impersonarti. Se stai cercando il tuo userID pubblico, clicca l'icona degli appunti nel popup."
},
"setUserID": {
"message": "Imposta ID utente"
},
"userIDChangeWarning": {
"message": "Attenzione: cambiare l'ID utente è permanente. Sei sicuro di volerlo fare? Assicurati di eseguire il backup del tuo vecchio nel caso."
},
"createdBy": {
"message": "Creato da"
},
@@ -523,9 +514,6 @@
"exportOptionsUpload": {
"message": "Carica da file"
},
"whatExportOptions": {
"message": "Questa è la tua intera configurazione in formaro JSON. Questo include il tuo ID utente, quindi presta attenzione se vuoi condividerlo."
},
"setOptions": {
"message": "Imposta Opzioni"
},
@@ -688,9 +676,6 @@
"category_filler": {
"message": "Riempitivi irrilevanti/Battute"
},
"category_filler_description": {
"message": "Le scene riempitive sono aggiunte solo per riempire o per umorismo che non sono richieste per comprendere il contenuto principale del video. Questo non dovrebbe includere segmenti che forniscono contesto o dettagli di sfondo."
},
"category_filler_short": {
"message": "Filler"
},

View File

@@ -246,6 +246,12 @@
"whatRefetchWhenNotFound": {
"message": "動画がまだ新しくセグメントが見つからない場合は、動画を視聴している間、数分おきにセグメントを検索し続けます。"
},
"enableShowCategoryWithoutPermission": {
"message": "提出権限を持っていないカテゴリーも提出メニューに表示する"
},
"whatShowCategoryWithoutPermission": {
"message": "一部のカテゴリーは提出に一定以上の評判が必要です"
},
"showNotice": {
"message": "再度通知を表示する"
},
@@ -409,16 +415,16 @@
"message": "サーバーの状態についてはstatus.sponsor.ajay.appを確認してください。"
},
"changeUserID": {
"message": "ユーザーIDインポート/エクスポート"
"message": "プライベートユーザーIDインポート/エクスポート"
},
"whatChangeUserID": {
"message": "これは厳重に保管してください。これはパスワードのようなもので、誰とも共有すべきではありません。 他の誰かがこれを使って、あなたになりすますことができてしまいます。なおパブリックユーザーIDを探している場合は、ポップアップ内のクリップボードアイコンをクリックしてください。"
},
"setUserID": {
"message": "ユーザーIDを設定"
"message": "プライベートユーザーIDを設定"
},
"userIDChangeWarning": {
"message": "警告: ユーザーIDの変更は恒久的です。本当に実行しますか? 念のため以前のユーザーIDは控えておいてください。"
"message": "警告: プライベートユーザーIDの変更は恒久的です。本当に実行しますか? 念のため以前のユーザーIDは控えておいてください。"
},
"createdBy": {
"message": "作成者:"
@@ -518,7 +524,7 @@
"message": "ファイルから読み込み"
},
"whatExportOptions": {
"message": "JSON形式のすべての個人設定です。これにはあなたのユーザーIDが含まれているので、共有するときは注意してください。"
"message": "これがJSON形式の設定項目全体になります。これにはあなたのプライベートユーザーIDが含まれているので、共有するときは注意してください。"
},
"setOptions": {
"message": "オプション設定"
@@ -683,7 +689,7 @@
"message": "繋ぎの話/冗談"
},
"category_filler_description": {
"message": "動画の本編を理解するのに必要のない、繋ぎの話やユーモアによって脱線したシーン。これには、文脈や背景の詳細を提供しているセグメントを含めないでください。"
"message": "動画の本編を理解するのに必要のない、繋ぎの話やユーモアによって脱線したシーン。これには、文脈や背景にある情報を含むセグメントを含めないでください。これは、あなたが楽しい気分になれないときなどのための、非常にアグレッシブなカテゴリーです。"
},
"category_filler_short": {
"message": "繋ぎの話"
@@ -1160,6 +1166,17 @@
"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"
},
"chapterNewFeature2": {
"message": "新機能: クラウドソーシングによるカスタムチャプター。動画内のセクションを入れ子構造にできるので、より精密な区分けができます。あなたはこの機能に無料でアクセスできます。オプションより有効化してください。"
},
"unsubmittedSegmentCounts": {
"message": "現在、{1} に {0} があります",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"

View File

@@ -8,13 +8,13 @@
"description": "Description of the extension."
},
"400": {
"message": "서버에서 유효하지 않은 요청이라고 응답했어요"
"message": "서버에서 잘못된 요청이라고 응답했어요"
},
"429": {
"message": "이 영상에 많은 스폰서 광고 구간을 제출했어요, 정말로 확실가요?"
"message": "이 영상에 많은 스폰서 광고 구간을 제출했어요. 정말로 확실하신가요?"
},
"409": {
"message": "이 구간은 이미 제출된 적이 있어요."
"message": "이전에 이미 제출된 적이 있어요"
},
"channelWhitelisted": {
"message": "채널이 화이트리스트에 추가됐어요!"
@@ -42,7 +42,7 @@
"message": "신고"
},
"reportButtonInfo": {
"message": "이 제출을 잘못된 제출로 신고해요"
"message": "잘못된 제출로 신고해요"
},
"Dismiss": {
"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": "해시 접두사로 요청 전송"
@@ -317,10 +317,10 @@
"description": "Keybind label"
},
"keybindDescription": {
"message": "등록하고 싶은 키를 눌러주세요. 필요하다면 Ctrl/Alt/Shift 키를 선택하실 수도 있어요."
"message": "등록하고 싶은 키를 눌러주세요. 필요하다면 보조 키를 선택하실 수도 있어요."
},
"0": {
"message": "연결에 오류가 발생했어요. 인터넷 연결을 확인하세요. 인터넷 연결이 되어 있는 경우, 서버가 과부화됐거나 다운된 것일 수도 있어요."
"message": "연결에 실패했어요. 인터넷 연결을 확인하세요. 인터넷 연결이 되어 있는 경우, 서버가 과부화됐거나 다운된 것일 수도 있어요."
},
"disableSkipping": {
"message": "건너뛰기 켜짐"
@@ -367,7 +367,7 @@
"description": "Example: Sponsor Muted"
},
"skipped_to_category": {
"message": "{0}로 이동했어요",
"message": "{0}로 건너뛰었어요",
"description": "Used for skipping to things (Skipped to Highlight)"
},
"disableAutoSkip": {
@@ -415,16 +415,16 @@
"message": "Status.sponsor.ajay.app 사이트를 확인하여 서버 상태를 확인하세요."
},
"changeUserID": {
"message": "사용자 ID 가져오기/내보내기"
"message": "비공개 사용자 ID 가져오기/내보내기"
},
"whatChangeUserID": {
"message": "이 정보를 다른 분께 공개하지 마세요. 비밀번호처럼 알려주면 위험한 정보랍니다. 다른 분이 이 정보를 가지고 나를 사칭할 수도 있어요. 공개 사용자 ID를 찾고 있다면, 팝업 내 클립보드 아이콘을 눌러주세요."
},
"setUserID": {
"message": "사용자 ID 설정"
"message": "비공개 사용자 ID 설정"
},
"userIDChangeWarning": {
"message": "경고: 사용자 ID를 변경하면 되돌릴 수 없어요. 정말로 확실한가요? 혹시 모르니 예전 사용자 ID를 백업해두는 걸 권장해요."
"message": "경고: 비공개 사용자 ID를 변경하면 되돌릴 수 없어요. 정말로 확실한가요? 혹시 모르니 예전 사용자 ID를 백업해두는 걸 권장해요."
},
"createdBy": {
"message": "개발자: "
@@ -452,7 +452,7 @@
"message": "추가"
},
"addInvidiousInstanceError": {
"message": "유효하지 않은 도메인이에요. 도메인 형식으로 되어있어야 해요. 예: invious.ajay.app"
"message": "잘못된 도메인이에요. 도메인 부분만 포함해야 해요. 예: invious.ajay.app"
},
"resetInvidiousInstance": {
"message": "Invidious 인스턴스 목록 초기화"
@@ -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 링크를 지원해요."
@@ -524,7 +524,7 @@
"message": "파일에서 불러오기"
},
"whatExportOptions": {
"message": "JSON의 전체 구성 파일이에요. 사용자 ID가 포함되어 있으니, 공유할 때 주의하세요."
"message": "JSON의 전체 구성 파일이에요. 나의 비공개 사용자 ID가 포함되어 있으니, 공유할 때 주의하세요."
},
"setOptions": {
"message": "옵션 저장"
@@ -539,7 +539,7 @@
"message": "구간 제출"
},
"submit": {
"message": "제출"
"message": "제출하기"
},
"cancel": {
"message": "취소"
@@ -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": "인트로/무음 구간"
@@ -689,7 +689,7 @@
"message": "주제와 관련 없는 구간"
},
"category_filler_description": {
"message": "이 구간은 전반적인 동영상의 주제를 이해하는 데 필요 없는 내용이 포함됐어요. 상세한 배경지식이나 맥락을 설명하는 구간은 여기에 해당하지 않아요."
"message": "이 구간은 전반적인 동영상의 주제를 이해하는 데 필요 없는 내용이 포함됐어요. 상세한 배경지식이나 맥락을 설명하는 구간은 여기에 해당하지 않아요. \"재미\"가 없다는 걸 의미하는 적극적인 카테고리예요."
},
"category_filler_short": {
"message": "주제와 관련 없는 구간"
@@ -746,7 +746,7 @@
"message": "일반적인 부분에서는 큰 챕터를 사용해야 함"
},
"category_chapter_guideline3": {
"message": "큰 챕터 작은 챕터를 배치할 수 있음"
"message": "큰 챕터 속에 작은 챕터를 배치할 수 있음"
},
"category_livestream_messages": {
"message": "실시간: 후원자 메시지 구간"
@@ -815,10 +815,10 @@
"message": "제출과 투표가 테스트 서버에 연결하는 동안은 메인 서버에 반영되지 않을 거예요. 실제 제출을 원하시면 비활성화하는 걸 잊지 마세요."
},
"bracketNow": {
"message": "(지금)"
"message": "(현재)"
},
"moreCategories": {
"message": "많은 카테고리"
"message": "추가 카테고리"
},
"chooseACategory": {
"message": "카테고리 선택"
@@ -888,10 +888,10 @@
"description": "Used for chapter segments when the text is harmful/offensive to remove it faster"
},
"incorrectCategory": {
"message": "카테고리 변경해요"
"message": "카테고리 변경"
},
"nonMusicCategoryOnMusic": {
"message": "이 동영상은 음악 동영상으로 분류되어 있어요. 동영상에 스폰서 광고 구간이 있나요? \"음악이 아닌 구간\"으로 지정된 카테고리인 경우, 확장 프로그램 설정을 열어 이 카테고리를 활성화하세요. 그리고, 이 구간을 \"스폰서 광고 구간\" 대신 \"음악이 아닌 구간\"으로 지정하세요. 혼동될 때 가이드라인을 읽어세요."
"message": "이 동영상은 음악 동영상으로 분류되어 있어요. 동영상에 스폰서 광고 구간이 있나요? \"음악이 아닌 구간\"으로 지정된 카테고리인 경우, 확장 프로그램 설정을 열어 이 카테고리를 활성화하세요. 그리고, 이 구간을 \"스폰서 광고 구간\" 대신 \"음악이 아닌 구간\"으로 지정하세요. 혼동된다면 가이드라인을 읽어세요."
},
"multipleSegments": {
"message": "여러 구간"
@@ -920,7 +920,7 @@
"message": "제출될 구간이 길어요. 전반적인 동영상의 내용이 한 주제에 대한 것이라면, \"건너뛰기\"를 \"동영상 전체\"로 변경해주세요. 자세한 정보는 가이드라인을 확인하세요."
},
"categoryPillTitleText": {
"message": "동영상 전체가 해당 카테고리로 지정됐고 부분적으로 나누기 어려워요."
"message": "동영상 전체가 해당 카테고리로 지정됐고 부분적으로 나누기 어려워요"
},
"chapterNameTooltipWarning": {
"message": "챕터의 이름 중 하나가 카테고리와 유사해요. 가능한 경우 카테고리를 대신 사용해 주세요."
@@ -936,13 +936,13 @@
"message": "악의적인 의도는 없었던 듯 보이지만 제출하신 구간 중에 일부 문제가 있는 것 같아요."
},
"warningTitle": {
"message": "경고를 받으셨어요!"
"message": "경고를 받으셨어요"
},
"questionButton": {
"message": "경고 사유에 대해 질문이 있어요"
"message": "질문이 있어요"
},
"warningConfirmButton": {
"message": "네, 이해했어요"
"message": "사유를 이해했어요"
},
"warningError": {
"message": "경고를 확인하던 도중 오류가 발생했어요:"
@@ -1035,7 +1035,7 @@
"message": "계속 투표"
},
"ChangeCategoryTooltip": {
"message": "변경된 카테고리가 구간에 적용돼요"
"message": "이게 내 구간에 바로 적용될 거예요"
},
"downvote": {
"message": "비추천"
@@ -1050,7 +1050,7 @@
"message": "편집 상자 위에 마우스 커서를 올린 채 스크롤해서 시간을 빠르게 조정해 보세요. Ctrl이나 Shift 키를 누른 채로 스크롤하면 세밀하게 조정할 수 있어요."
},
"categoryPillNewFeature": {
"message": "새로운 기능! 이제 동영상 전체가 광고거나 홍보면 표시할 수 있어요."
"message": "새로운 기능! 이제 동영상 전체가 광고거나 자체 홍보인지 확인해 보세요"
},
"dayAbbreviation": {
"message": "일",
@@ -1107,7 +1107,7 @@
"message": "기본 설정으로 초기화"
},
"confirmResetToDefault": {
"message": "모든 설정을 기본값으로 초기화할까요? 되돌릴 수 없어요!"
"message": "모든 설정을 기본값으로 초기화하시겠어요? 되돌릴 수 없어요!"
},
"exportSegments": {
"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,24 @@
"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"
"chapterNewFeature": {
"message": "새로운 기능: 사용자 참여 챕터 기능. 챕터는 사용자가 직접 이름을 지정할 수 있고 중첩시킬 수 있어 더욱 더 정확해요. 이 동영상에 제출된 챕터를 보려면 라이선스를 결제하세요. 챕터 목록 미리보기: ",
"description": "After the comma, a list of chapters for this video will appear"
},
"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*"
"chapterNewFeature2": {
"message": "새로운 기능: 사용자 참여 챕터 기능. 챕터는 사용자가 직접 이름을 지정할 수 있고 중첩시킬 수 있어 더욱 더 정확해요. 지금 설정에서 활성화해서 무료로 사용하세요."
},
"clearUnsubmittedSegments": {
"message": "모든 구간 지우기",
"message": "모든 구간 초기화",
"description": "Label for a button in settings"
},
"clearUnsubmittedSegmentsConfirm": {
@@ -1223,6 +1206,6 @@
"description": "Header of the unsubmitted segments list"
},
"exportSegmentsAsURL": {
"message": "URL 공유"
"message": "URL 공유"
}
}

View File

@@ -295,15 +295,6 @@
"statusReminder": {
"message": "സെർവർ നിലയ്ക്കായി status.sponsor.ajay.app പരിശോധിക്കുക."
},
"changeUserID": {
"message": "നിങ്ങളുടെ യൂസർ ഐഡി ഇറക്കുമതി ചെയ്യുക / കയറ്റുമതി ചെയ്യുക"
},
"setUserID": {
"message": "യൂസർ ഐഡി സജ്ജമാക്കുക"
},
"userIDChangeWarning": {
"message": "മുന്നറിയിപ്പ്: യൂസർ ഐഡി മാറ്റുന്നത് ശാശ്വതമാണ്. ഇത് ചെയ്യാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നുവെന്ന് ഉറപ്പാണോ? നിങ്ങളുടെ പഴയത് ബാക്കപ്പ് ചെയ്യുന്നത് ഉറപ്പാക്കുക."
},
"createdBy": {
"message": "ഉണ്ടാക്കിയത്"
},
@@ -361,9 +352,6 @@
"exportOptions": {
"message": "എല്ലാ ഓപ്ഷനുകളും ഇറക്കുമതി ചെയ്യുക / കയറ്റുമതി ചെയ്യുക"
},
"whatExportOptions": {
"message": "JSON ലെ നിങ്ങളുടെ മുഴുവൻ കോൺഫിഗറേഷനും ഇതാണ്. ഇതിൽ നിങ്ങളുടെ യൂസർ ഐഡി ഉൾപ്പെടുന്നു, അതിനാൽ ഇത് വിവേകത്തോടെ പങ്കിടുന്നത് ഉറപ്പാക്കുക."
},
"setOptions": {
"message": "ഓപ്ഷനുകൾ സജ്ജമാക്കുക"
},

View File

@@ -295,15 +295,6 @@
"statusReminder": {
"message": "Periksa status.sponsor.ajay.app untuk status pelayan."
},
"changeUserID": {
"message": "Import / Eksport Id Pengguna Anda"
},
"setUserID": {
"message": "Tetapkan Id Pengguna"
},
"userIDChangeWarning": {
"message": "Amaran: Mengubah UserID adalah kekal. Adakah anda pasti mahu melakukan ini? Pastikan untuk membuat sandaran lama anda sekiranya berlaku."
},
"createdBy": {
"message": "Dicipta oleh"
},
@@ -361,9 +352,6 @@
"exportOptions": {
"message": "Import / Eksport Semua Pilihan"
},
"whatExportOptions": {
"message": "Ini adalah keseluruhan konfigurasi anda di JSON. Ini termasuk ID pengguna anda, jadi pastikan untuk membagikannya dengan bijak."
},
"setOptions": {
"message": "Tetapkan Pilihan"
},

View File

@@ -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"
},
@@ -409,16 +415,16 @@
"message": "Controleer status.sponsor.ajay.app voor de serverstatus."
},
"changeUserID": {
"message": "Uw gebruikers-ID importeren/exporteren"
"message": "Uw privé-gebruikers-ID importeren/exporteren"
},
"whatChangeUserID": {
"message": "Dit moet privé gehouden worden. Dit is als een wachtwoord en mag met niemand gedeeld worden. Als iemand dit heeft, kan hij zich voordoen als u. Klik op het klembordpictogram in de pop-up als u op zoek bent naar uw publieke gebruikers-ID."
},
"setUserID": {
"message": "Gebruikers-ID instellen"
"message": "Privé-gebruikers-ID instellen"
},
"userIDChangeWarning": {
"message": "Waarschuwing: wijzigen van de gebruikers-ID is permanent. Weet u zeker dat u dit wilt doen? Zorg ervoor dat u een back-up maakt van uw oude ID, voor het geval dat."
"message": "Waarschuwing: wijzigen van de privé-gebruikers-ID is permanent. Weet u zeker dat u dit wilt doen? Zorg ervoor dat u een back-up maakt van uw oude ID, voor het geval dat."
},
"createdBy": {
"message": "Gemaakt door"
@@ -518,7 +524,7 @@
"message": "Laden uit bestand"
},
"whatExportOptions": {
"message": "Dit is uw volledige configuratie in JSON. Dit is inclusief uw gebruikers-ID, dus zorg ervoor dat u dit verstandig deelt."
"message": "Dit is uw volledige configuratie in JSON. Dit is inclusief uw privé-gebruikers-ID, dus zorg ervoor dat u dit verstandig deelt."
},
"setOptions": {
"message": "Opties instellen"
@@ -683,7 +689,7 @@
"message": "Opvulling zijspoor/humor"
},
"category_filler_description": {
"message": "Zijspoor-scènes die alleen ter opvulling of als humor worden toegevoegd en niet noodzakelijk zijn om de hoofdinhoud van de video te begrijpen. Segmenten die context of achtergrondinformatie verschaffen, mogen hier niet onder vallen."
"message": "Zijspoor-scènes die alleen ter opvulling of als humor worden toegevoegd en niet noodzakelijk zijn om de hoofdinhoud van de video te begrijpen. Segmenten die context of achtergrondinformatie verschaffen, mogen hier niet onder vallen. Dit is een zeer agressieve categorie, bedoeld voor als u niet in de stemming bent voor \"plezier\"."
},
"category_filler_short": {
"message": "Opvulling"
@@ -1160,6 +1166,17 @@
"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"
},
"chapterNewFeature2": {
"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. U heeft gratis toegang. In te schakelen via de opties."
},
"unsubmittedSegmentCounts": {
"message": "U hebt momenteel {0} in {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"

View File

@@ -372,18 +372,9 @@
"statusReminder": {
"message": "Sjekk status.sponsor.ajay.app for tjenerstatus."
},
"changeUserID": {
"message": "Importer/Eksporter din bruker-ID"
},
"whatChangeUserID": {
"message": "Dette bør holdes privat. Det er som et passord og bør ikke deles med noen. Hvis noen har dette kan de utgi seg som deg. Hvis du leter etter din offentlige bruker-ID, klikker du på utklippstavlen i oppsprettsvinduet."
},
"setUserID": {
"message": "Angi bruker-ID"
},
"userIDChangeWarning": {
"message": "Advarsel: Å endre bruker-ID-en din er permanent. Er du sikker på at du vil gjøre dette? Sørg for å ta sikkerhetskopi av din gamle for sikkerhets skyld."
},
"createdBy": {
"message": "Opprettet av"
},
@@ -475,9 +466,6 @@
"exportOptionsUpload": {
"message": "Last fra fil"
},
"whatExportOptions": {
"message": "Dette er hele oppsettet ditt i JSON. Det inkluderer bruker-ID-en din, så sørg for å være beskjeden med å dele det."
},
"setOptions": {
"message": "Angi innstillinger"
},
@@ -579,9 +567,6 @@
"category_preview": {
"message": "Forhåndsvisning/Oppsummering"
},
"category_filler_description": {
"message": "Intetsigende segmenter kun lagt til som fyllstoff eller humor som ikke er nødvendig for å forstå hovedinnholdet i videoen. Dette bør ikke inkludere segmenter som gir kontekst eller bakgrunnsdetaljer."
},
"category_filler_short": {
"message": "Fyllstoff"
},

View File

@@ -408,18 +408,9 @@
"statusReminder": {
"message": "Sprawdź status serwera na status.sponsor.ajay.app"
},
"changeUserID": {
"message": "Importuj/Eksportuj swój identyfikator użytkownika"
},
"whatChangeUserID": {
"message": "To powinno pozostać prywatne. Jest to niczym hasło i nie powinno zostać nikomu udostępnione. Przy jego użyciu ktoś może się pod ciebie podszywać. Jeśli szukasz publicznego ID użytkownika, kliknij ikonę schowka w wyskakującym oknie."
},
"setUserID": {
"message": "Ustaw identyfikator użytkownika"
},
"userIDChangeWarning": {
"message": "Uwaga: Zmiana identyfikatora użytkownika jest trwała. Czy na pewno chcesz to zrobić? Na wszelki wypadek skopiuj swój poprzedni."
},
"createdBy": {
"message": "Stworzony przez"
},
@@ -511,9 +502,6 @@
"exportOptionsUpload": {
"message": "Wczytaj z pliku"
},
"whatExportOptions": {
"message": "Jest to cała twoja konfiguracja w formacie JSON. Zawarty jest w niej twój identyfikator użytkownika, więc uważaj, komu ją udostępniasz."
},
"setOptions": {
"message": "Zapisz ustawienia"
},
@@ -676,9 +664,6 @@
"category_filler": {
"message": "Wypełniacz nietematyczny/żart"
},
"category_filler_description": {
"message": "Sceny nietematyczne dodawane tylko jako wypełniacz lub dla humoru, które nie są wymagane do zrozumienia głównej treści filmu. Nie powinno to obejmować segmentów zawierających informacje kontekstowe lub szczegółowe."
},
"category_filler_short": {
"message": "Wypełniacz"
},
@@ -1134,22 +1119,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"
}

View File

@@ -408,18 +408,9 @@
"statusReminder": {
"message": "Verifique status.sponsor.ajay.app para o status do servidor."
},
"changeUserID": {
"message": "Importar/Exportar seu ID de usuário"
},
"whatChangeUserID": {
"message": "Esta informação deve se mantida privada. Ela é como uma senha e não deve ser compartilhada. Outras pessoas poderão se passar por você caso obtenham acesso. Se estiver procurando por sua ID Pública de Usuário, clique no ícone de prancheta no popup."
},
"setUserID": {
"message": "Definir ID de usuário"
},
"userIDChangeWarning": {
"message": "Atenção: A alteração do ID de usuário é permanente. Você tem certeza que deseja fazer isso? Certifique-se de fazer backup de seu ID antigo por precaução."
},
"createdBy": {
"message": "Criado por"
},
@@ -511,9 +502,6 @@
"exportOptionsUpload": {
"message": "Importar de um arquivo"
},
"whatExportOptions": {
"message": "Essas são suas preferências no formato JSON. Isso inclui seu ID de usuário, então lembre-se de compartilhar com cuidado."
},
"setOptions": {
"message": "Definir Opções"
},
@@ -676,9 +664,6 @@
"category_filler": {
"message": "Enrolação/Piadas"
},
"category_filler_description": {
"message": "Cenas tangenciais inseridas apenas por enrolação ou humor que não são necessárias para compreender o tópico principal do vídeo. Isto não deve incluir segmentos que fornecem contexto ou detalhes de segundo plano."
},
"category_filler_short": {
"message": "Enrolação"
},

View File

@@ -307,12 +307,6 @@
"message": " das suas vidas",
"description": "You've saved people from 887,362 segments (236d 15h 5.3 minutes of their lives)."
},
"setUserID": {
"message": "Definir ID de utilizador"
},
"userIDChangeWarning": {
"message": "Atenção: A alteração do ID de utilizador é permanente. Tem certeza que a deseja? Certifique-se de fazer uma cópia de segurança do seu ID antigo por precaução."
},
"areYouSureReset": {
"message": "Tem certeza que deseja redefinir?"
},

View File

@@ -387,18 +387,9 @@
"statusReminder": {
"message": "Verificați status.sponsor.ajay.app pentru starea serverului."
},
"changeUserID": {
"message": "Importă/Exportă Id-ul Tău De Utilizator"
},
"whatChangeUserID": {
"message": "Aceste informații sunt private și nu ar trebui să fie dezvăluite nimănui. Dacă cineva are aceste informații, pot fi folosite pentru a vă imita. În cazul în care vă căutați ID-ul public de utilizator, dați click pe icoana de clipboard din popup."
},
"setUserID": {
"message": "Setează Id-ul Utilizatorului"
},
"userIDChangeWarning": {
"message": "Atenție: Schimbarea Id-ului Utilizatorului este permanentă. Sunteți sigur că doriți să faceți asta? Asigurați-vă că ați făcut o copie de rezervă."
},
"createdBy": {
"message": "Creat De"
},
@@ -481,9 +472,6 @@
"exportOptionsUpload": {
"message": "Încarcă din fișier"
},
"whatExportOptions": {
"message": "Aceasta este întreaga configurație în format JSON. Asta include si ID-ul tău de utilizator, așa că fi sigur să împărtășești asta cu înțelepciune."
},
"setOptions": {
"message": "Setează Opțiuni"
},

View File

@@ -415,16 +415,16 @@
"message": "Смотрите состояние сервера на status.sponsor.ajay.app."
},
"changeUserID": {
"message": "Импорт/Экспорт Вашего идентификатора пользователя"
"message": "Импорт/Экспорт приватного UserID"
},
"whatChangeUserID": {
"message": "Держите его в тайне. Относитесь к нему как к паролю и не передавайте никому. Если кто-то им завладеет, то сможет выдать себя за вас. Если вы ищете публичный ID пользователя, нажмите значок буфера обмена во всплывающем окне."
},
"setUserID": {
"message": "Установить идентификатор пользователя"
"message": "Установить приватный UserID"
},
"userIDChangeWarning": {
"message": "Внимание: изменение идентификатора пользователя необратимо. Вы действительно хотите это сделать? Сделайте резервную копию на всякий случай."
"message": "Внимание: изменение приватного UserID необратимо. Вы действительно хотите это сделать? Сделайте резервную копию на всякий случай."
},
"createdBy": {
"message": "Создано"
@@ -524,7 +524,7 @@
"message": "Загрузить из файла"
},
"whatExportOptions": {
"message": "Все настройки в формате JSON. Этот файл содержит Ваш идентификатор пользователя, будьте осторожны когда делитесь этими данными."
"message": "Все настройки в формате JSON. Этот файл содержит Ваш приватный UserID, будьте осторожны когда делитесь этими данными."
},
"setOptions": {
"message": "Параметры установки"
@@ -689,7 +689,7 @@
"message": "Заполнение отвлечёнными темами/шутками"
},
"category_filler_description": {
"message": "Сегменты, которые увеличивают длительность видео за счёт отвлечённых тем или шуток, но не требуются для понимания основного содержания. Не должно иметь сегментов, объясняющие контекст или предысторию."
"message": "Сегменты, которые увеличивают длительность видео за счёт отвлечённых тем или шуток, но не требуются для понимания основного содержания. Не должно иметь сегментов, объясняющих контекст или предысторию. Это очень агрессивная категория, используется тогда, когда вам не до \"веселья\"."
},
"category_filler_short": {
"message": "Заполнитель"
@@ -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,19 @@
"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"
},
"chapterNewFeature2": {
"message": "Новая функция: эпизоды от сообщества. Это разделы видео с пользовательскими названиями, которые могут быть помещены внутри других эпизодов для более точной разметки. У вас есть бесплатный доступ к этой функции, включите её в настройках."
},
"unsubmittedSegmentCounts": {
"message": "Сейчас у вас есть {0} в {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"

View File

@@ -387,18 +387,9 @@
"statusReminder": {
"message": "Stav servera skontrolujete na status.sponsor.ajay.app."
},
"changeUserID": {
"message": "Import/export vášho ID používateľa"
},
"whatChangeUserID": {
"message": "Toto si starostlivo uchovajte. Podobne ako heslo by ste to nemali s nikým zdieľať. Ak by to získal niekto ďalší, mohol by vám uškodiť. Ak hľadáte vaše verejné ID používateľa, stlačte ikonu schránky v podokne."
},
"setUserID": {
"message": "Nastaviť Používateľove ID"
},
"userIDChangeWarning": {
"message": "Varovanie: Zmena ID používateľa je nezvratná. Naozaj to chcete spraviť? Pre istotu si staré ID používateľa zazálohujte."
},
"createdBy": {
"message": "Vytvoril"
},
@@ -481,9 +472,6 @@
"exportOptions": {
"message": "Import/export všetkých nastavení"
},
"whatExportOptions": {
"message": "Toto sú vaše kompletné nastavenia vo formáte JSON. Obsahuje aj vaše Používateľské ID, takže s ním narábajte opatrne."
},
"setOptions": {
"message": "Nastaviť Nastavenia"
},
@@ -640,9 +628,6 @@
"category_preview_guideline3": {
"message": "Nie pre sekcie, ktoré majú dodatočný obsah"
},
"category_filler_description": {
"message": "Odbočky mimo tému pridané len pre zábavu, nepotrebné pre pochopenie hlavného obsahu videa. Nemalo by zahŕňať segmenty, ktoré vysvetľujú kontext alebo vedľajšie detaily."
},
"category_filler_short": {
"message": "Odbočka"
},

View File

@@ -415,16 +415,16 @@
"message": "Gå till status.sponsor.ajay.app för serverstatus."
},
"changeUserID": {
"message": "Importera/Exportera ditt Användar-ID"
"message": "Importera/Exportera ditt privata Användar-ID"
},
"whatChangeUserID": {
"message": "Detta ska hållas privat. Detta är som ett lösenord och ska inte delas med någon. Om andra får tag i det kan de utge sig för att vara dig. Om du letar efter ditt offentliga Användar-ID kan du klicka på urklippsikonen i popupen."
},
"setUserID": {
"message": "Ange Användar-ID"
"message": "Ange privat Användar-ID"
},
"userIDChangeWarning": {
"message": "Varning: Ändring av Användar-ID är permanent. Är du säker att du vill göra detta? Se till att ta en säkerhetskopia av ditt gamla för säkerhets skull."
"message": "Varning: Ändring av ditt Användar-ID är permanent. Är du säker att du vill göra detta? Se till att ta en säkerhetskopia av ditt gamla för säkerhets skull."
},
"createdBy": {
"message": "Skapad av"
@@ -524,7 +524,7 @@
"message": "Ladda från fil"
},
"whatExportOptions": {
"message": "Detta är alla dina alternativ i JSON-format. Det inkluderar ditt Användar-ID, så var noga med hur du hanterar informationen."
"message": "Detta är hela din konfiguration i JSON-format. Det inkluderar ditt Användar-ID, så var noga med hur du hanterar informationen."
},
"setOptions": {
"message": "Ange alternativ"
@@ -689,7 +689,7 @@
"message": "Ämnesavvikelse/Skämt"
},
"category_filler_description": {
"message": "Tangentiella scener endast tillagda för utfyllnad eller humor som inte krävs för att förstå det huvudsakliga innehållet i videon. Detta bör inte omfatta segment som tillhandahåller innehåll eller bakgrundsdetaljer."
"message": "Tangentiella scener endast för utfyllnad eller humor som inte krävs för att förstå det huvudsakliga innehållet i videon. Detta bör inte omfatta segment som tillhandahåller kontext eller bakgrundsdetaljer. Detta är en mycket aggressiv kategori avsedd för när du inte är på humör för \"kul\"."
},
"category_filler_short": {
"message": "Utfyllnad"
@@ -1174,6 +1174,9 @@
"message": "Ny funktion: Crowd-sourced anpassade kapitel. Dessa är anpassade namngivna avsnitt i videor som kan staplas för att få mer och mer exakt. Köp en licens för att se de kapitel som lämnats på denna video såsom: ",
"description": "After the comma, a list of chapters for this video will appear"
},
"chapterNewFeature2": {
"message": "Ny funktion: Crowd-sourced anpassade kapitel. Dessa är anpassade namngivna avsnitt i videor som kan staplas för att få mer och mer exakt. För dig är det gratis, aktivera det i alternativen."
},
"unsubmittedSegmentCounts": {
"message": "Du har för närvarande {0} på {1}",
"description": "Example: You currently have 12 unsubmitted segments on 5 videos"

View File

@@ -381,18 +381,9 @@
"statusReminder": {
"message": "சேவையக நிலைக்கு status.sponsor.ajay.app ஐச் சரிபார்க்கவும்."
},
"changeUserID": {
"message": "உங்கள் பயனர் ஐடியை இறக்குமதி / ஏற்றுமதி செய்யுங்கள்"
},
"whatChangeUserID": {
"message": "இதை தனிப்பட்டதாக வைத்திருக்க வேண்டும். இது கடவுச்சொல் போன்றது, அதை யாருடனும் பகிரக்கூடாது. யாரிடமாவது இது இருந்தால், அவர் உங்களைப் போல் ஆள்மாறாட்டம் செய்யலாம். உங்கள் பொது பயனர் IDயை நீங்கள் தேடுகிறீர்களானால், பாப்அப்பில் உள்ள கிளிப்போர்டு ஐகானைக் கிளிக் செய்யவும்."
},
"setUserID": {
"message": "UserID ஐ அமைக்கவும்"
},
"userIDChangeWarning": {
"message": "எச்சரிக்கை: பயனர் ஐடியை மாற்றுவது நிரந்தரமானது. இதை நிச்சயமாக செய்ய விரும்புகிறீர்களா? உங்கள் பழையதை காப்புப்பிரதி எடுக்க உறுதிசெய்க."
},
"createdBy": {
"message": "உருவாக்கியது"
},
@@ -481,9 +472,6 @@
"exportOptionsUpload": {
"message": "கோப்பிலிருந்து ஏற்று"
},
"whatExportOptions": {
"message": "இது JSON இல் உங்கள் முழு உள்ளமைவு. இது உங்கள் பயனர் ஐடியை உள்ளடக்கியது, எனவே இதை புத்திசாலித்தனமாக பகிர்ந்து கொள்ளுங்கள்."
},
"setOptions": {
"message": "விருப்பங்களை அமைக்கவும்"
},

View File

@@ -295,15 +295,6 @@
"statusReminder": {
"message": "సర్వర్ స్థితి కోసం status.sponsor.ajay.app ని తనిఖీ చేయండి."
},
"changeUserID": {
"message": "మీ యూజర్‌ఐడిని దిగుమతి / ఎగుమతి చేయండి"
},
"setUserID": {
"message": "UserID ని సెట్ చేయండి"
},
"userIDChangeWarning": {
"message": "హెచ్చరిక: యూజర్‌ఐడిని మార్చడం శాశ్వతం. మీరు దీన్ని ఖచ్చితంగా చేయాలనుకుంటున్నారా? ఒకవేళ మీ పాతదాన్ని బ్యాకప్ చేయాలని నిర్ధారించుకోండి."
},
"createdBy": {
"message": "సృష్టికర్త"
},
@@ -361,9 +352,6 @@
"exportOptions": {
"message": "అన్ని ఎంపికలను దిగుమతి / ఎగుమతి చేయండి"
},
"whatExportOptions": {
"message": "ఇది JSON లో మీ మొత్తం కాన్ఫిగరేషన్. ఇది మీ యూజర్‌ఐడిని కలిగి ఉంది, కాబట్టి దీన్ని తెలివిగా పంచుకోండి."
},
"setOptions": {
"message": "ఎంపికలను సెట్ చేయండి"
},

View File

@@ -121,6 +121,9 @@
"SubmitTimes": {
"message": "Kısımları gönder"
},
"sortSegments": {
"message": "Kısımları Sırala"
},
"submitCheck": {
"message": "Bunu göndermek istediğinize emin misiniz?"
},
@@ -239,6 +242,9 @@
"whatRefetchWhenNotFound": {
"message": "Eğer video yeni ve kısımları bulunmuyorsa, sen videoyu izlerken her birkaç dakikada bir kısımları edinmeye çalışır."
},
"enableShowCategoryWithoutPermission": {
"message": "Gönderim izni olmasa bile gönderim menüsünde kategorileri gösterme"
},
"showNotice": {
"message": "Uyarıyı Tekrar Göster"
},
@@ -402,16 +408,16 @@
"message": "Sunucu durumu için status.sponsor.ajay.app kontrol edin."
},
"changeUserID": {
"message": "Kullanıcı kimliğini Dışarı/İçeri Aktar"
"message": "Özel Kullanıcı Kimliğini İçe/Dışa Aktar"
},
"whatChangeUserID": {
"message": "Bu gizli tutulmalıdır. Bu bir şifre gibidir ve kimseyle paylaşılmamalıdır. Eğer birisi buna sahipse, seni taklit edebilir. Herkese açık kullanıcı kimliğinizi arıyorsanız, açılır pencerede pano simgesine tıklayın."
},
"setUserID": {
"message": "Kullanıcı kimliği Belirle"
"message": "Özel Kullanıcı Kimliğini Ayarla"
},
"userIDChangeWarning": {
"message": "Uyarı: Kullanıcı kimliği değiştirmek kalıcıdır. Bunu yapmak istediğinizden emin misiniz? Eskisini yedeklediğinizden emin olun."
"message": "Uyarı: Özel Kullanıcı Kimliğini değiştirmek kalıcıdır. Bunu yapmak istediğinizden emin misiniz? Her ihtimale karşı eskisini yedeklediğinizden emin olun."
},
"createdBy": {
"message": "Oluşturan"
@@ -504,9 +510,6 @@
"exportOptionsUpload": {
"message": "Dosyadan yükle"
},
"whatExportOptions": {
"message": "Bu, JSON formatında bütün kurulumunuzu gösterir. Kullanıcı kimliğinizi içerir, bu sebeple paylaşırken dikkatli olun."
},
"setOptions": {
"message": "Seçenekleri Ayarla"
},
@@ -666,9 +669,6 @@
"category_filler": {
"message": "Konuyla Alakasız / Şaka"
},
"category_filler_description": {
"message": "Videonun ana içeriğini anlamak için gerekli olmayan, yalnızca alakasız konu veya mizah için eklenen sahneler. Bu, alakalı veya arka plan ayrıntısı veren kısımları içermemelidir."
},
"category_filler_short": {
"message": "Alakasız Konu"
},

View File

@@ -408,18 +408,9 @@
"statusReminder": {
"message": "Дивіться стан сервера на status.sponsor.ajay.app."
},
"changeUserID": {
"message": "Імпортувати/Експортувати Ваш ідентифікатор користувача"
},
"whatChangeUserID": {
"message": "Тримайте його в таємниці. Ставтеся до нього як до паролю і не передавайте нікому. Якщо хтось їм заволодіє, то зможе видати себе за вас. Якщо ви шукаєте публічний ID користувача, натисніть значок буфера обміну у спливаючому вікні."
},
"setUserID": {
"message": "Встановити ідентифікатор користувача"
},
"userIDChangeWarning": {
"message": "Увага: зміна ідентифікатора користувача є незворотнім. Ви дійсно хочете це зробити? Зробіть резервну копію вашого старого про всяк випадок."
},
"createdBy": {
"message": "Створено"
},
@@ -511,9 +502,6 @@
"exportOptionsUpload": {
"message": "Завантажити з файлу"
},
"whatExportOptions": {
"message": "Це вся конфігурація в форматі JSON. Цей файл містить Ваш ідентифікатор користувача, тому не забудьте ділитися з цим розумно."
},
"setOptions": {
"message": "Встановити параметри"
},
@@ -634,9 +622,6 @@
"category_filler": {
"message": "Дотичне наповнення/Жарти"
},
"category_filler_description": {
"message": "Дотичні сцени додані лише для наповнення або гумору, які не потрібні для розуміння основного вмісту відео. Це не повинно включати сегменти, що надають контекст або передісторію."
},
"category_filler_short": {
"message": "Наповнення"
},

View File

@@ -387,18 +387,9 @@
"statusReminder": {
"message": "Truy cập trang status.sponsor.ajay.app để biết tình trạng máy chủ."
},
"changeUserID": {
"message": "Nhập/Xuất mã người dùng của bạn"
},
"whatChangeUserID": {
"message": "Đây là mã cần được giữ bí mật. Nó giống như mật khẩu và không nên được chia sẻ cho bất kì ai khác. Nếu có ai đó lấy được mã này, họ có thể mạo danh bạn. Còn nếu như bạn đang tìm khoá ID công khai, hãy nhấn vào nút \"Sao chép Public UserID\" trong popup của SponsorBlock."
},
"setUserID": {
"message": "Đặt mã người dùng"
},
"userIDChangeWarning": {
"message": "Cảnh báo: Việc thay đổi mã người dùng có tác dụng vĩnh viễn. Bạn có chắc muốn thay đổi không? Hãy nhớ sao lưu lại mã người dùng cũ để đề phòng."
},
"createdBy": {
"message": "Được tạo bởi"
},
@@ -490,9 +481,6 @@
"exportOptionsUpload": {
"message": "Tải từ tệp"
},
"whatExportOptions": {
"message": "Đây là toàn bộ cấu hình của bạn trong tệp JSON. Nó chứa cả mã người dùng của bạn, nên hãy chia sẻ cẩn thận."
},
"setOptions": {
"message": "Đặt tùy chọn"
},
@@ -645,9 +633,6 @@
"category_filler": {
"message": "Cảnh phụ"
},
"category_filler_description": {
"message": "Tập hợp các cảnh không bắt buộc để xem trong video. Điều này không bao gồm các đoạn chứa nội dung hoặc nói về ngữ cảnh của video."
},
"category_filler_short": {
"message": "Cảnh phụ"
},

View File

@@ -298,15 +298,6 @@
"statusReminder": {
"message": "在 status.sponsor.ajay.app 检查服务器状态。"
},
"changeUserID": {
"message": "导入/导出您的用户 ID"
},
"setUserID": {
"message": "设定用户 ID"
},
"userIDChangeWarning": {
"message": "警告:更改用户 ID 是永久性的。您确定要这么做吗?请务必备份您的旧用户 ID 以防万一。"
},
"createdBy": {
"message": "创建者"
},
@@ -367,9 +358,6 @@
"exportOptions": {
"message": "导入/导出所有选项"
},
"whatExportOptions": {
"message": "这是您全部配置的 JSON 格式。它包含了您的用户 ID ,所以您一定要谨慎的保管它。"
},
"setOptions": {
"message": "设定选项"
},

View File

@@ -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": {
@@ -408,18 +408,9 @@
"statusReminder": {
"message": "在 status.sponsor.ajay.app 檢查伺服器狀態"
},
"changeUserID": {
"message": "匯入/匯出您的使用者 ID"
},
"whatChangeUserID": {
"message": "密鑰應被保密。它就像是密碼不應與他人分享。若密鑰落入他人手中他人將可以冒充你。若你在尋找你的公開使用者ID點擊彈出視窗上的剪貼簿圖示"
},
"setUserID": {
"message": "設定使用者 ID"
},
"userIDChangeWarning": {
"message": "警告:更改用戶 ID 是永久性的。您確定要這麼做嗎?請務必備份您的舊用戶 ID 來以防萬一。"
},
"createdBy": {
"message": "作者"
},
@@ -517,9 +508,6 @@
"exportOptionsUpload": {
"message": "從檔案載入"
},
"whatExportOptions": {
"message": "這是您全部設定的 JSON 格式。它包含了您的用戶 ID ,所以您一定要謹慎的保管它。"
},
"setOptions": {
"message": "設定選項"
},
@@ -682,9 +670,6 @@
"category_filler": {
"message": "離題閒聊/玩笑"
},
"category_filler_description": {
"message": "與影片主要內容無關的填充詞或笑話,但不應包含與前後或背景有關者"
},
"category_filler_short": {
"message": "填充詞"
},

View File

@@ -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;
}

View File

@@ -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

View File

@@ -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

View File

@@ -317,12 +317,12 @@ input[type='number'] {
color: grey;
}
.disabled .slider {
.sb-toggle-option.disabled .slider {
cursor: default;
}
/* To hide everything except upsell button */
.disabled td:not(.skipOption), .disabled td.skipOption > :not(.upsellButton) {
.disabled td:not(.skipOption, .categoryExtraOptions), .disabled td.skipOption > :not(.upsellButton) {
opacity: 0.3;
}

View File

@@ -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;
@@ -399,7 +403,7 @@
*/
#mainControls {
margin: 16px;
padding: 8px 12px;
padding: 8px 14px;
text-align: left;
border-radius: 8px;
border: 2px solid var(--sb-grey-bg-color);
@@ -407,10 +411,11 @@
.sponsorStartHint {
display: block;
text-align: left;
padding-top: 3px;
}
/*
* Generic buttons used for "Segment Starts Now" and "Submit Times"
* Generic red buttons used for "Start Segment Now", "Submit Times" etc.
*/
.sbMediumButton {
border: none;
@@ -444,24 +449,23 @@
/*
* Your Work box
*/
.sbYourWorkCols {
.sbYourWorkBox {
margin: 16px;
margin-bottom: 8px;
border-radius: 8px;
border: 2px solid var(--sb-grey-bg-color);
}
.sbYourWorkCols > div {
.sbYourWorkCols {
display: flex;
border-top: 2px solid var(--sb-grey-bg-color);
border-bottom: 2px solid var(--sb-grey-bg-color);
}
.sbStatsSentence {
padding-top: 5px;
padding-bottom: 5px;
padding: 6px 14px;
}
.sbStatsSentence .sbExtraInfo {
.sbExtraInfo {
display: inline-block;
}
@@ -469,37 +473,28 @@
* Increase font size of username input and display
*/
#usernameValue,
#usernameInput,
#sponsorTimesContributionsDisplay {
#usernameInput {
font-size: 16px;
flex: 1 0;
}
#sponsorTimesContributionsDisplay {
font-size: 16px;
}
/*
* Improve alignment of username and submissions
*/
#usernameElement,
#usernameElement > p,
#sponsorTimesContributionsContainer {
display: flex;
flex-direction: column;
justify-content: start;
}
#usernameElement > span,
#sponsorTimesContributionsContainer {
text-align: start;
}
#sponsorTimesContributionsContainer {
margin-left: 8px;
padding-left: 8px;
border-left: 2px solid var(--sb-grey-bg-color);
text-align: left;
}
/*
* Username
*/
#usernameElement {
padding: 8px;
padding: 8px 14px;
min-width: 50%;
width: 100%;
}
#setUsernameContainer {
display: flex;
@@ -545,14 +540,15 @@
width: calc(100% - 68px);
text-overflow: ellipsis;
color: var(--sb-main-fg-color);
background: var(--sb-grey-bg-color);
background-color: var(--sb-grey-bg-color);
}
/*
* Submissions
*/
#sponsorTimesContributionsContainer {
padding: 8px;
padding: 8px 14px;
border-left: 2px solid var(--sb-grey-bg-color);
}
/*
@@ -567,14 +563,13 @@
display: inline-block;
text-decoration: none;
border-radius: 4px;
background: #333;
cursor: pointer;
background-color: #333;
padding: 4px 8px;
font-weight: 500;
margin: 2px 1px;
}
#sbFooter a:hover {
background: #444;
background-color: #444;
}
#sponsorTimesDonateContainer a {

View File

@@ -13,7 +13,7 @@
<div id="sponsorblockPopup" class="sponsorBlockPageBody sb-preload">
<button id="sbCloseButton" title="__MSG_closePopup__" class="sbCloseButton hidden">
<img src="icons/close.png" width="15" height="15">
<img src="icons/close.png" width="15" height="15" alt="Close icon">
</button>
<div id="sbBetaServerWarning" class="hidden" title="__MSG_openOptionsPage__">
@@ -24,7 +24,7 @@
<img src="icons/IconSponsorBlocker256px.png" alt="SponsorBlock" width="40" height="40" id="sponsorBlockPopupLogo">
<p class="u-mZ">SponsorBlock</p>
</header>
<div id="videoInfo">
<!-- Loading text -->
<p id="loadingIndicator" class="u-mZ grey-text">__MSG_noVideoID__</p>
@@ -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" />
@@ -64,11 +64,11 @@
</div>
</div>
</div>
<!-- Toggle Box -->
<div class="sbControlsMenu">
<label id="whitelistButton" for="whitelistToggle" class="hidden sbControlsMenu-item">
<input type="checkbox" style="display:none;" id="whitelistToggle">
<input type="checkbox" style="display: none" id="whitelistToggle">
<svg viewBox="0 0 24 24" width="23" height="23" class="SBWhitelistIcon sbControlsMenu-itemIcon">
<path d="M24 10H14V0h-4v10H0v4h10v10h4V14h10z" />
</svg>
@@ -78,7 +78,7 @@
<!--github: mbledkowski/toggle-switch-->
<label id="disableExtension" for="toggleSwitch" class="toggleSwitchContainer sbControlsMenu-item">
<span class="toggleSwitchContainer-switch">
<input type="checkbox" style="display:none;" id="toggleSwitch" checked>
<input type="checkbox" style="display: none" id="toggleSwitch" checked>
<span class="switchBg shadow"></span>
<span class="switchBg white"></span>
<span class="switchBg green"></span>
@@ -99,29 +99,29 @@
<!-- Submit box -->
<div id="mainControls" style="display: none">
<p class="sbHeader">
<h1 class="sbHeader">
__MSG_recordTimesDescription__
</p>
</h1>
<sub class="sponsorStartHint grey-text">__MSG_popupHint__</sub>
<div align="center" style="margin: 8px 0;">
<div style="text-align: center; margin: 8px 0;">
<button id="sponsorStart" class="sbMediumButton" style="margin-right: 8px">__MSG_sponsorStart__</button>
<button id="submitTimes" class="sbMediumButton" style="display: none;">__MSG_submitTimesButton__</button>
<button id="submitTimes" class="sbMediumButton" style="display: none">__MSG_submitTimesButton__</button>
</div>
<span id="submissionHint" style="display: none;">__MSG_submissionEditHint__</span>
<span id="submissionHint" style="display: none">__MSG_submissionEditHint__</span>
</div>
<!-- Your Work box -->
<div class="sbYourWorkCols">
<p class="sbHeader" style="padding: 8px 16px;">
<div class="sbYourWorkBox">
<h1 class="sbHeader" style="padding: 8px 15px;">
__MSG_yourWork__
</p>
<div>
</h1>
<div class="sbYourWorkCols">
<!-- Username -->
<div id="usernameElement">
<span class="u-mZ grey-text">__MSG_Username__:
<p class="u-mZ grey-text">__MSG_Username__:
<!-- loading/errors -->
<span id="setUsernameStatus" class="u-mZ white-text" style="display: none"></span>
</span>
</p>
<div id="setUsernameContainer">
<p id="usernameValue"></p>
<button id="setUsernameButton" title="__MSG_setUsername__">
@@ -141,7 +141,7 @@
<!-- Submissions -->
<div id="sponsorTimesContributionsContainer" class="hidden">
<p class="u-mZ grey-text">__MSG_Submissions__:</p>
<span id="sponsorTimesContributionsDisplay">0</span>
<p id="sponsorTimesContributionsDisplay" class="u-mZ">0</p>
</div>
</div>
@@ -184,7 +184,7 @@
<a id="sbConsiderDonateLink" href="https://sponsor.ajay.app/donate" target="_blank" rel="noopener">
__MSG_considerDonating__
</a>
<img id="sbCloseDonate" src="/icons/close.png" alt="Close icon" height="8" style="padding-left: 5px; cursor: pointer;" />
<img id="sbCloseDonate" src="/icons/close.png" alt="__MSG_closeIcon__" height="8" style="padding-left: 5px; cursor: pointer;" />
</div>
<footer id="sbFooter">

View File

@@ -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[],

View File

@@ -8,6 +8,8 @@ export interface SelectorProps {
id: string;
options: SelectorOption[];
onChange: (value: string) => void;
onMouseEnter?: () => void;
onMouseLeave?: () => void;
}
export interface SelectorState {
@@ -30,7 +32,9 @@ class SelectorComponent extends React.Component<SelectorProps, SelectorState> {
<div id={this.props.id}
style={{display: this.props.options.length > 0 ? "inherit" : "none"}}
className="sbSelector">
<div className="sbSelectorBackground">
<div onMouseEnter={this.props.onMouseEnter}
onMouseLeave={this.props.onMouseLeave}
className="sbSelectorBackground">
{this.getOptions()}
</div>
</div>

View File

@@ -32,6 +32,7 @@ export interface SponsorTimeEditState {
description: string;
suggestedNames: SelectorOption[];
chapterNameSelectorOpen: boolean;
chapterNameSelectorHovering: boolean;
}
const categoryNamesGrams: string[] = [].concat(...CompileConfig.categoryList.filter((name) => name !== "chapter")
@@ -73,7 +74,8 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
selectedCategory: DEFAULT_CATEGORY as Category,
description: sponsorTime.description || "",
suggestedNames: [],
chapterNameSelectorOpen: false
chapterNameSelectorOpen: false,
chapterNameSelectorHovering: false
};
}
@@ -230,7 +232,7 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
{/* Chapter Name */}
{sponsorTime.actionType === ActionType.Chapter ? (
<div onMouseLeave={() => this.setState({chapterNameSelectorOpen: false})}>
<div onBlur={() => this.setState({chapterNameSelectorOpen: false})}>
<input id={"chapterName" + this.idSuffix}
className="sponsorTimeEdit sponsorTimeEditInput sponsorChapterNameInput"
style={{color: "inherit", backgroundColor: "inherit"}}
@@ -241,10 +243,13 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
onChange={(e) => this.descriptionUpdate(e.target.value)}
onFocus={() => this.setState({chapterNameSelectorOpen: true})}>
</input>
{this.state.chapterNameSelectorOpen && this.state.description &&
{this.state.description
&& (this.state.chapterNameSelectorOpen || this.state.chapterNameSelectorHovering) &&
<SelectorComponent
id={"chapterNameSelector" + this.idSuffix}
options={this.state.suggestedNames}
onMouseEnter={() => this.setState({chapterNameSelectorHovering: true})}
onMouseLeave={() => this.setState({chapterNameSelectorHovering: false})}
onChange={(v) => this.descriptionUpdate(v)}
/>
}
@@ -261,6 +266,14 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
{chrome.i18n.getMessage("delete")}
</span>
{(!isNaN(segment[1]) && sponsorTime.actionType != ActionType.Full) ? (
<span id={"sponsorTimeInspectButton" + this.idSuffix}
className="sponsorTimeEditButton"
onClick={this.inspectTime.bind(this)}>
{chrome.i18n.getMessage("inspect")}
</span>
): ""}
{(!isNaN(segment[1]) && ![ActionType.Poi, ActionType.Full].includes(sponsorTime.actionType)) ? (
<span id={"sponsorTimePreviewButton" + this.idSuffix}
className="sponsorTimeEditButton"
@@ -270,14 +283,6 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
</span>
): ""}
{(!isNaN(segment[1]) && sponsorTime.actionType != ActionType.Full) ? (
<span id={"sponsorTimeInspectButton" + this.idSuffix}
className="sponsorTimeEditButton"
onClick={this.inspectTime.bind(this)}>
{chrome.i18n.getMessage("inspect")}
</span>
): ""}
{(!isNaN(segment[1]) && sponsorTime.actionType != ActionType.Full) ? (
<span id={"sponsorTimeEditButton" + this.idSuffix}
className="sponsorTimeEditButton"

View File

@@ -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

View File

@@ -5,7 +5,7 @@ import * as CompileConfig from "../../../config.json";
import { Category, CategorySkipOption } from "../../types";
import { getCategorySuffix } from "../../utils/categoryUtils";
import ToggleOptionComponent, { ToggleOptionProps } from "./ToggleOptionComponent";
import ToggleOptionComponent from "./ToggleOptionComponent";
import { fetchingChaptersAllowed } from "../../utils/licenseKey";
import LockSvg from "../../svg-icons/lock_svg";
@@ -21,6 +21,12 @@ export interface CategorySkipOptionsState {
hideChapter: boolean;
}
export interface ToggleOption {
configKey: string;
label: string;
dontDisable?: boolean;
}
class CategorySkipOptionsComponent extends React.Component<CategorySkipOptionsProps, CategorySkipOptionsState> {
setBarColorTimeout: NodeJS.Timeout;
@@ -237,7 +243,7 @@ class CategorySkipOptionsComponent extends React.Component<CategorySkipOptionsPr
<ToggleOptionComponent
configKey={option.configKey}
label={option.label}
disabled={disabled}
disabled={!option.dontDisable && disabled}
style={{width: "inherit"}}
/>
</td>
@@ -248,12 +254,17 @@ class CategorySkipOptionsComponent extends React.Component<CategorySkipOptionsPr
return result;
}
getExtraOptions(category: string): ToggleOptionProps[] {
getExtraOptions(category: string): ToggleOption[] {
switch (category) {
case "chapter":
return [{
configKey: "renderSegmentsAsChapters",
label: chrome.i18n.getMessage("renderAsChapters"),
dontDisable: true
}, {
configKey: "showSegmentNameInChapterBar",
label: chrome.i18n.getMessage("showSegmentNameInChapterBar"),
dontDisable: true
}];
case "music_offtopic":
return [{

View File

@@ -26,7 +26,7 @@ class ToggleOptionComponent extends React.Component<ToggleOptionProps, ToggleOpt
render(): React.ReactElement {
return (
<div>
<div className={`sb-toggle-option ${this.props.disabled ? "disabled" : ""}`}>
<div className="switch-container" style={this.props.style}>
<label className="switch">
<input id={this.props.configKey}

View File

@@ -66,6 +66,7 @@ interface SBConfig {
darkMode: boolean,
showCategoryGuidelines: boolean,
showCategoryWithoutPermission: boolean,
showSegmentNameInChapterBar: boolean,
// Used to cache calculated text color info
categoryPillColors: {
@@ -197,6 +198,7 @@ const Config: SBObject = {
darkMode: true,
showCategoryGuidelines: true,
showCategoryWithoutPermission: false,
showSegmentNameInChapterBar: true,
categoryPillColors: {},
@@ -210,8 +212,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,

View File

@@ -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);
@@ -1945,7 +1964,7 @@ function openInfoMenu() {
frame.src = chrome.extension.getURL("popup.html");
popup.appendChild(frame);
const parentNodes = document.querySelectorAll("#secondary");
const parentNodes = document.querySelectorAll("#secondary-inner");
let parentNode = null;
for (let i = 0; i < parentNodes.length; i++) {
if (parentNodes[i].firstElementChild !== null) {

View File

@@ -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";
@@ -311,8 +314,11 @@ class PreviewBar {
createChaptersBar(segments: PreviewBarSegment[]): void {
if (!this.progressBar || !this.originalChapterBar || this.originalChapterBar.childElementCount <= 0) {
if (this.customChaptersBar) this.customChaptersBar.style.display = "none";
if (this.originalChapterBar) this.originalChapterBar.style.removeProperty("display");
// Make sure other video types lose their chapter bar
document.querySelectorAll(".sponsorBlockChapterBar").forEach((element) => element.remove());
this.customChaptersBar = null;
return;
}
@@ -711,7 +717,8 @@ class PreviewBar {
}
updateChapterText(segments: SponsorTime[], submittingSegments: SponsorTime[], currentTime: number): void {
if ((!segments || segments.length <= 0) && submittingSegments?.length <= 0) {
if (!Config.config.showSegmentNameInChapterBar
|| ((!segments || segments.length <= 0) && submittingSegments?.length <= 0)) {
const chaptersContainer = this.getChaptersContainer();
const chapterButton = this.getChapterButton(chaptersContainer);
if (chapterButton.classList.contains("ytp-chapter-container-disabled")) {

View File

@@ -83,6 +83,9 @@ async function runThePopup(messageListener?: MessageListener): Promise<void> {
let segmentTab = SegmentTab.Segments;
let port: chrome.runtime.Port = null;
//saves which detail elemts are opened, by saving the uuids
const openedUUIDs: SegmentUUID[] = [];
const PageElements: PageElements = {};
[
@@ -421,13 +424,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");
}
}
@@ -502,7 +508,13 @@ async function runThePopup(messageListener?: MessageListener): Promise<void> {
PageElements.issueReporterTabs.classList.add("hidden");
currentSegmentTab = SegmentTab.Segments;
} else {
PageElements.issueReporterTabs.classList.remove("hidden");
if (currentSegmentTab === SegmentTab.Segments
&& sponsorTimes.every((segment) => segment.actionType === ActionType.Chapter)) {
PageElements.issueReporterTabs.classList.add("hidden");
currentSegmentTab = SegmentTab.Chapters;
} else {
PageElements.issueReporterTabs.classList.remove("hidden");
}
}
// Sort list by start time
@@ -594,6 +606,18 @@ async function runThePopup(messageListener?: MessageListener): Promise<void> {
const votingButtons = document.createElement("details");
votingButtons.classList.add("votingButtons");
votingButtons.id = "votingButtons" + UUID;
votingButtons.addEventListener("toggle", () => {
if (votingButtons.open) {
openedUUIDs.push(UUID);
} else {
const index = openedUUIDs.indexOf(UUID);
if (index !== -1) {
openedUUIDs.splice(openedUUIDs.indexOf(UUID), 1);
}
}
});
votingButtons.open = openedUUIDs.some((u) => u === UUID);
//thumbs up and down buttons
const voteButtonsContainer = document.createElement("div");
@@ -665,6 +689,8 @@ async function runThePopup(messageListener?: MessageListener): Promise<void> {
skipButton.id = "sponsorTimesSkipButtonContainer" + UUID;
skipButton.className = "voteButton";
skipButton.src = chrome.runtime.getURL("icons/skip.svg");
skipButton.title = actionType === ActionType.Chapter ? chrome.i18n.getMessage("playChapter")
: chrome.i18n.getMessage("skipSegment");
skipButton.addEventListener("click", () => skipSegment(actionType, UUID, skipButton));
votingButtons.addEventListener("dblclick", () => skipSegment(actionType, UUID));

View File

@@ -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
);