Compare commits

..

60 Commits
3.5.1 ... 3.7.1

Author SHA1 Message Date
Ajay Ramachandran
b758cbb25f bump version 2021-12-30 17:20:11 -05:00
Ajay Ramachandran
f2be7a9c5b Merge pull request #1113 from CyberPhoenix90/fix_interval_leak
fix leak that was killing performance over long periods
2021-12-30 10:56:42 -05:00
CyberPhoenix90
8763d173bd fix missing semi colon 2021-12-30 15:22:02 +01:00
CyberPhoenix90
07e3117e22 fix leak that was killing performance over long periods 2021-12-30 15:05:09 +01:00
Ajay
12bc10ea1f Make youtube settings in front of skip notice 2021-12-29 00:35:33 -05:00
Ajay
2db1971190 Don't change countdown speed with playback speed
Fix #1067
2021-12-29 00:30:24 -05:00
Ajay Ramachandran
c3107ffcff bump version 2021-12-28 15:25:20 -05:00
Ajay Ramachandran
4bca8ad2f7 Merge pull request #1071 from mchangrh/invidiousCI
Auto-populate invidious list
2021-12-28 15:09:19 -05:00
Ajay Ramachandran
e729e036cf New Crowdin updates (#1054) 2021-12-28 14:51:14 -05:00
Ajay
7b74307013 formatting 2021-12-28 14:50:18 -05:00
Ajay
6aa1665d7c Create pull request for invidious list instead of commit 2021-12-28 14:50:12 -05:00
Ajay Ramachandran
a1bae95cdc Merge pull request #1091 from AronHK/audio-notification
Decouple audio notification from Skip Notice
2021-12-28 11:36:04 -05:00
Ajay
c5b72a01a2 Remove filler update notice 2021-12-26 20:16:26 -05:00
Ajay
8ade66d7b3 Fix skip notice deleting segments causing issues
Fixes #1105
2021-12-22 12:13:31 -05:00
Ajay Ramachandran
d42862541b Merge branch 'master' of https://github.com/ajayyy/SponsorBlock 2021-12-15 22:01:31 -05:00
Ajay Ramachandran
54001763a7 Don't hide userID option if not set
Fix #1025
2021-12-15 22:01:28 -05:00
Ajay Ramachandran
7186829bc3 Merge pull request #1079 from Choromanski/feature/format-time-to-days
Format minutes now Days, Hours and Minutes
2021-12-11 19:39:28 -05:00
Aron HK
3d3b261f8f skipNoticeContentContainer().v -> video
Co-authored-by: Ajay Ramachandran <dev@ajay.app>
2021-12-12 01:38:31 +01:00
Ajay Ramachandran
33094f2541 Add example for abbreviations 2021-12-11 19:33:11 -05:00
Hegymegi Kiss Áron
9f9df9479b move audio notification to content.ts
fixes  #756
2021-12-11 16:02:07 +01:00
Ajay Ramachandran
1c911581db Fix loop fix on Safari 2021-12-10 23:53:56 -05:00
Ajay Ramachandran
071f8b1729 Don't skip exactly to the end on Safari
Fix #1027
2021-12-10 23:52:50 -05:00
Ajay Ramachandran
8d1b35403d Fix auto hiding info not hiding
Fix #811
2021-12-10 19:09:25 -05:00
Brian Choromanski
a8fee918e4 Merge branch 'master' into feature/format-time-to-days 2021-12-06 06:09:21 -05:00
Brian Choromanski
7bca8e508e Localized d and h 2021-12-06 05:57:37 -05:00
Michael C
e16aae393f also check against length 2021-12-04 23:16:26 -05:00
Ajay Ramachandran
44de741e84 Merge pull request #1072 from Choromanski/feature/updated-comments
Changed comments from seconds and hours to minutes
2021-12-04 22:18:53 -05:00
Brian Choromanski
bc990cd683 Format minutes from hours, and minutes to days, hours, and minutes 2021-12-04 11:56:55 -05:00
Michael C
33098ac659 migrate and populat on reset 2021-12-01 17:48:07 -05:00
Ajay Ramachandran
2f8ec7a5e5 Merge pull request #1073 from mchangrh/patch-1
Update licence in package.json
2021-12-01 17:00:17 -05:00
Ajay Ramachandran
48f7c1e0a1 fix license in package.json 2021-12-01 17:00:04 -05:00
Michael M. Chang
29c3b80d0b Update licence in package.json
#721
2021-12-01 16:44:08 -05:00
Michael C
dc47b9ffd2 appease CI/ webpack
move to ci/
change triggers
2021-11-30 18:17:28 -05:00
Brian Choromanski
eaa47c8d40 Changed comments from seconds and hours to minutes 2021-11-30 17:36:21 -05:00
Michael C
e4e453a11c add code to parse and filter 2021-11-30 15:55:26 -05:00
Ajay Ramachandran
2209c230e7 Fix autohide info button affecting skip to highlight
Fix #1063
2021-11-27 00:06:52 -05:00
Ajay Ramachandran
9d70332c9a bump version 2021-11-24 18:33:53 -05:00
Ajay Ramachandran
8150d38df0 New Crowdin updates (#1036) 2021-11-24 18:33:40 -05:00
Ajay Ramachandran
75b5c31d07 Fix filler category notice 2021-11-23 21:05:27 -05:00
Ajay Ramachandran
c007ac3d86 Add tooltip about filler category 2021-11-21 19:40:25 -05:00
Ajay Ramachandran
7218be73c6 Merge branch 'master' of https://github.com/ajayyy/SponsorBlock 2021-11-16 23:26:16 -05:00
Ajay Ramachandran
96693342a3 Fix start time messing up when end time too far in preview bar 2021-11-16 23:26:15 -05:00
Ajay Ramachandran
d2ff7b5c04 bump version 2021-11-09 22:47:24 -05:00
Ajay Ramachandran
9a0f1db31e New Crowdin updates (#1033) 2021-11-09 22:47:10 -05:00
Ajay Ramachandran
06da4d6556 Remove notice about highlight category update 2021-11-08 19:57:46 -05:00
Ajay Ramachandran
20d0c05049 Update manifest.json 2021-11-08 19:29:55 -05:00
Ajay Ramachandran
96e4957f71 Add filler category and allow mute intro, outro, preview 2021-11-08 19:19:00 -05:00
Ajay Ramachandran
9c5eeac239 Merge pull request #1029 from opl-/docs/readme-building
Add more detail to building section of readme
2021-11-03 19:38:12 -04:00
Ajay Ramachandran
e685697bbb Add back info about adjusting config 2021-11-03 19:36:45 -04:00
Ajay Ramachandran
752e515a1c Merge pull request #1018 from FlorianZahn/fontSizeFixTooltip
Makes rectangleTooltip fontSize bigger
2021-11-02 00:08:26 -04:00
Ajay Ramachandran
ca0f68bb7d Merge pull request #1019 from FlorianZahn/roundSubmitTimes
unsubmitted segments are initialized rounded to 3 digits
2021-11-02 00:08:10 -04:00
Ajay Ramachandran
34884026d9 New Crowdin updates (#1014) 2021-11-02 00:07:08 -04:00
Ajay Ramachandran
7a38bf0c08 bump version 2021-11-02 00:06:56 -04:00
Ajay Ramachandran
5adcec2ca5 Remove segment duration filter
Close #1031 #989
2021-11-02 00:06:40 -04:00
Ajay Ramachandran
36989907a2 Remove highlight skipping by clicking near it
Closes #973
2021-10-30 22:02:21 -04:00
opl-
db55778fd8 Add more detail to building section of readme 2021-10-29 20:59:21 +02:00
Ajay Ramachandran
41be51b384 formatting fixes 2021-10-26 18:37:37 -04:00
FlorianZahn
95f45312e1 support for multiple poi categories 2021-10-21 04:19:26 +02:00
FlorianZahn
9dda9a583d unsubmitted segments are initialized rounded to 3 digits 2021-10-21 03:14:45 +02:00
FlorianZahn
95fe1eef6f Makes rectangleTooltip fontSize bigger 2021-10-19 21:38:44 +02:00
49 changed files with 1830 additions and 314 deletions

26
.github/workflows/updateInvidous.yml vendored Normal file
View File

@@ -0,0 +1,26 @@
name: update invidious
on:
workflow_dispatch:
schedule:
- cron: '0 0 1 * *' # check every month
jobs:
check-list:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download instance list
run: |
wget https://api.invidious.io/instances.json -O data.json
- name: "Run CI"
run: npm run ci:invidious
- name: Create pull request to update list
uses: peter-evans/create-pull-request@v3
with:
commit-message: Update Invidious List
author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
branch: ci/update_invidious_list
title: Update Invidious List
body: Automated Invidious list update

3
.gitignore vendored
View File

@@ -6,4 +6,5 @@ web-ext-artifacts
.vscode/
dist/
tmp/
.DS_Store
.DS_Store
ci/data.json

View File

@@ -60,21 +60,24 @@ You can read the API docs [here](https://wiki.sponsor.ajay.app/index.php/API_Doc
# Building
You must have Node.js 16 installed.
You must have [Node.js 16](https://nodejs.org/) and npm installed.
Rename `config.json.example` to `config.json` and adjust configuration as desired.
1. Copy the file `config.json.example` to `config.json` and adjust configuration as desired.
There are also other build scripts available. Install `npm`, then run `npm install` in the repository to install dependencies.
- You will need to repeat this step in the future if you get build errors related to `CompileConfig`. This can happen for example when a new category is added.
Run `npm run build` to generate a Chrome extension.
2. Run `npm install` in the repository to install dependencies.
Use `npm run build:firefox` to generate a Firefox extension.
3. Run `npm run build:dev` (for Chrome) or `npm run build:dev:firefox` (for Firefox) to generate a development version of the extension with source maps.
The result is in `dist`. This can be loaded as an unpacked extension
- You can also run `npm run build` (for Chrome) or `npm run build:firefox` (for Firefox) to generate a production build.
## Developing with a clean profile
4. The built extension is now in `dist/`. You can load it in Chrome as an [unpacked extension](https://developer.chrome.com/docs/extensions/mv3/getstarted/#manifest) or in Firefox as a [temporary extension](https://developer.mozilla.org/en-US/docs/Tools/about:debugging#loading_a_temporary_extension).
### Developing with a clean profile and hot reloading
Run `npm run dev` (for Chrome) or `npm run dev:firefox` (for Firefox) to run the extension using a clean browser profile with hot reloading. This uses [`web-ext run`](https://extensionworkshop.com/documentation/develop/web-ext-command-reference/#commands).
Run `npm run dev` to run the extension using a clean browser profile with hot reloading. Use `npm run dev:firefox` for Firefox. This uses [`web-ext run`](https://extensionworkshop.com/documentation/develop/web-ext-command-reference/#commands).
Known chromium bug: Extension is not loaded properly on first start. Visit `chrome://extensions/` and reload the extension.
For Firefox for Android, use `npm run dev:firefox-android -- --adb-device <ip-address of the device>`. See the [Firefox documentation](https://extensionworkshop.com/documentation/develop/developing-extensions-for-firefox-for-android/#debug-your-extension) for more information.

55
ci/invidiousCI.ts Normal file
View File

@@ -0,0 +1,55 @@
/*
This file is only ran by GitHub Actions in order to populate the Invidious instances list
This file should not be shipped with the extension
*/
import { writeFile, existsSync } from 'fs';
import { join } from 'path';
// import file from https://api.invidious.io/instances.json
if (!existsSync('./data.json')) {
process.exit(1);
}
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
import * as data from "./data.json";
type instanceMap = {
name: string,
url: string,
dailyRatios: {ratio: string, label: string }[],
thirtyDayUptime: string
}[]
// only https servers
const mapped: instanceMap = data
// eslint-disable-next-line @typescript-eslint/no-explicit-any
.filter((i: any) => i[1]?.type === 'https')
// eslint-disable-next-line @typescript-eslint/no-explicit-any
.map((instance: any) => {
return {
name: instance[0],
url: instance[1].uri,
dailyRatios: instance[1].monitor.dailyRatios,
thirtyDayUptime: instance[1]?.monitor['30dRatio'].ratio,
}
})
// reliability and sanity checks
const reliableCheck = mapped
.filter((instance) => {
// 30d uptime >= 90%
const thirtyDayUptime = Number(instance.thirtyDayUptime) >= 90
// available for at least 80/90 days
const dailyRatioCheck = instance.dailyRatios.filter(status => status.label !== "black")
return (thirtyDayUptime && dailyRatioCheck.length >= 80)
})
// url includes name
.filter(instance => instance.url.includes(instance.name))
// finally map to array
const result: string[] = reliableCheck.map(instance => instance.name)
writeFile(join(__dirname, "./invidiouslist.json"), JSON.stringify(result), (err) => {
if (err) return console.log(err);
})

1
ci/invidiouslist.json Normal file
View File

@@ -0,0 +1 @@
["yewtu.be","invidious.snopyta.org","vid.puffyan.us","invidious.kavin.rocks","invidio.xamh.de","invidious-us.kavin.rocks","inv.riverside.rocks","vid.mint.lgbt","youtube.076.ne.jp","invidious.namazso.eu"]

View File

@@ -2,14 +2,15 @@
"serverAddress": "https://sponsor.ajay.app",
"testingServerAddress": "https://sponsor.ajay.app/test",
"serverAddressComment": "This specifies the default SponsorBlock server to connect to",
"categoryList": ["sponsor", "selfpromo", "interaction", "poi_highlight", "intro", "outro", "preview", "music_offtopic"],
"categoryList": ["sponsor", "selfpromo", "interaction", "poi_highlight", "intro", "outro", "preview", "filler", "music_offtopic"],
"categorySupport": {
"sponsor": ["skip", "mute"],
"selfpromo": ["skip", "mute"],
"interaction": ["skip", "mute"],
"intro": ["skip"],
"outro": ["skip"],
"preview": ["skip"],
"intro": ["skip", "mute"],
"outro": ["skip", "mute"],
"preview": ["skip", "mute"],
"filler": ["skip", "mute"],
"music_offtopic": ["skip"],
"poi_highlight": ["skip"]
},
@@ -20,6 +21,7 @@
"intro": "https://wiki.sponsor.ajay.app/w/Intermission/Intro_Animation",
"outro": "https://wiki.sponsor.ajay.app/w/Endcards/Credits",
"preview": "https://wiki.sponsor.ajay.app/w/Preview/Recap",
"filler": "https://wiki.sponsor.ajay.app/w/Filler_Tangent",
"music_offtopic": "https://wiki.sponsor.ajay.app/w/Music:_Non-Music_Section",
"poi_highlight": "https://wiki.sponsor.ajay.app/w/Highlight",
"guidelines": "https://wiki.sponsor.ajay.app/w/Guidelines",

View File

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

View File

@@ -52,6 +52,7 @@
"build:watch": "npm run build:watch:chrome",
"build:watch:chrome": "webpack --env.browser=chrome --config webpack/webpack.dev.js --watch",
"build:watch:firefox": "webpack --env.browser=firefox --config webpack/webpack.dev.js --watch",
"ci:invidious": "ts-node ci/invidiousCI.ts",
"dev": "npm run build:dev && concurrently \"npm run web-run\" \"npm run build:watch\"",
"dev:firefox": "npm run build:dev:firefox && concurrently \"npm run web-run:firefox\" \"npm run build:watch:firefox\"",
"dev:firefox-android": "npm run build:dev:firefox && concurrently \"npm run web-run:firefox-android\" \"npm run build:watch:firefox\"",
@@ -66,6 +67,6 @@
"url": "git+https://github.com/ajayyy/SponsorBlock.git"
},
"author": "Ajay Ramachandran",
"license": "GPL-3.0-only",
"license": "LGPL-3.0-or-later",
"private": true
}

View File

@@ -23,7 +23,7 @@
"message": "сегмент"
},
"Segments": {
"message": "сегменти"
"message": "сегмента"
},
"upvoteButtonInfo": {
"message": "Одобряване на това предложение"
@@ -131,7 +131,7 @@
"message": "Изпратени сегменти"
},
"savedPeopleFrom": {
"message": "Вие сте помогнали на хората да пропуснат "
"message": "Помогнахте на хората да пропуснат "
},
"viewLeaderboard": {
"message": "Класиране"
@@ -156,7 +156,7 @@
"message": "Това се използва на страницата с публичната статистика, за да покаже колко сте допринесли. Вижте го"
},
"Username": {
"message": "Потребителско име"
"message": "Потребител"
},
"setUsername": {
"message": "Задайте потребителско име"
@@ -563,6 +563,15 @@
"category_preview_description": {
"message": "Бързо обобщение на предишни епизоди или преглед на това, което предстои по-късно в текущия видеоклип. Предназначен за монтирани заедно клипове, а не за речеви обобщения."
},
"category_filler": {
"message": "Пълнеж извън темата"
},
"category_filler_description": {
"message": "Съпътстващи сцени, добавени само за пълнеж или хумор, които не са необходими за разбирането на основното съдържание на видеоклипа. Това не трябва да включва сегменти, предоставящи контекст или справочни данни."
},
"category_filler_short": {
"message": "Пълнеж"
},
"category_music_offtopic": {
"message": "Музика: Част без музика"
},
@@ -805,9 +814,6 @@
"Credits": {
"message": "Заслуги"
},
"highlightNewFeature": {
"message": "Ново! Отидете до съществената част на видеоклипа с едно щракване с новата категория „Акцент“"
},
"LearnMore": {
"message": "Научете повече"
},
@@ -828,5 +834,8 @@
},
"SponsorTimeEditScrollNewFeature": {
"message": "Използвайте колелото на мишката, докато държите курсора върху полето за редактиране, за да коригирате бързо времето. Комбинации с клавиша ctrl или shift могат да се използват за фина настройка на промените."
},
"fillerNewFeature": {
"message": "Ново! Пропускайте части извън темата и шегите с категорията „Пълнеж“. Активирайте я в опциите"
}
}

View File

@@ -263,7 +263,7 @@
"description": "The second line of the message displayed after the notice was upgraded."
},
"setSkipShortcut": {
"message": "Nastavit klíč pro přeskočení segmentu"
"message": "Nastavit klávesu pro přeskočení segmentu"
},
"setStartSponsorShortcut": {
"message": "Nastavte klávesu pro spuštění/zastavení segmentu"
@@ -563,6 +563,15 @@
"category_preview_description": {
"message": "Rychlé shrnutí předchozích epizod nebo náhled toho, co se objeví v aktuálním videu. Myšleno pro upravené sloučené klipy, ne pro mluvená shrnutí."
},
"category_filler": {
"message": "Výplň"
},
"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í."
},
"category_filler_short": {
"message": "Výplň"
},
"category_music_offtopic": {
"message": "Hudba: nehudební sekce"
},
@@ -805,9 +814,6 @@
"Credits": {
"message": "Poděkování"
},
"highlightNewFeature": {
"message": "Novinka! Dostaňte se k pointě videa jedním kliknutím s novou kategorií zvýraznění"
},
"LearnMore": {
"message": "Zjistit více"
},
@@ -828,5 +834,16 @@
},
"SponsorTimeEditScrollNewFeature": {
"message": "Použijte kolečko myši při přechodu přes editační okno pro rychlou úpravu času. Kombinace kláves Ctrl nebo Shift mohou být použity k doladění změn."
},
"fillerNewFeature": {
"message": "Novinka! Překakujte výplňové části a vtipy s kategorií výplň. Povolte ji v nastavení"
},
"dayAbbreviation": {
"message": "d",
"description": "100d"
},
"hourAbbreviation": {
"message": "h",
"description": "100h"
}
}

View File

@@ -52,6 +52,9 @@
"reskip": {
"message": "Spring over"
},
"unmute": {
"message": "Lyd til"
},
"paused": {
"message": "Sat på pause"
},
@@ -115,7 +118,477 @@
"submitCheck": {
"message": "Er du sikker på, at du vil indsende dette?"
},
"whitelistChannel": {
"message": "Hvidliste kanal"
},
"removeFromWhitelist": {
"message": "Fjern kanal fra hvidliste"
},
"voteOnTime": {
"message": "Stem På Et Segment"
},
"Submissions": {
"message": "Indsendelser"
},
"savedPeopleFrom": {
"message": "Du har reddet folk fra "
},
"viewLeaderboard": {
"message": "Topliste"
},
"recordTimesDescription": {
"message": "Indsend"
},
"submissionEditHint": {
"message": "Sektionsredigering vises, når du klikker på afsend",
"description": "Appears in the popup to inform them that editing has been moved to the video player."
},
"popupHint": {
"message": "Tip: Du kan opsætte keybinds til indsendelse i indstillingerne"
},
"clearTimesButton": {
"message": "Ryd Tider"
},
"submitTimesButton": {
"message": "Indsend Tider"
},
"publicStats": {
"message": "Dette bruges på siden med offentlige statistikker til at vise, hvor meget du har bidraget. Se det"
},
"Username": {
"message": "Brugernavn"
},
"setUsername": {
"message": "Angiv Brugernavn"
},
"copyPublicID": {
"message": "Kopier Offentligt Bruger-ID"
},
"discordAdvert": {
"message": "Kom til den officielle Discord-server for at give forslag og feedback!"
},
"hideThis": {
"message": "Skjul dette"
},
"Options": {
"message": "Indstillinger"
},
"showButtons": {
"message": "Vis Knapper På YouTube-Afspiller"
},
"hideButtons": {
"message": "Skjul Knapper På YouTube-Afspiller"
},
"hideButtonsDescription": {
"message": "Dette skjuler knapperne, der vises på YouTube-afspilleren for indsende springe segmenter."
},
"showSkipButton": {
"message": "Behold Knappen Spring Til Fremhævning På Afspilleren"
},
"showInfoButton": {
"message": "Vis Info-Knap På YouTube-Afspiller"
},
"hideInfoButton": {
"message": "Skjul Info-Knap På YouTube-Afspiller"
},
"autoHideInfoButton": {
"message": "Auto-Skjul Info-Knap"
},
"hideDeleteButton": {
"message": "Skjul Slet-Knappen på YouTube-Afspiller"
},
"showDeleteButton": {
"message": "Vis Slet-Knappen på YouTube-Afspiller"
},
"enableViewTracking": {
"message": "Aktiver Optælling Af Antal Spring Over"
},
"whatViewTracking": {
"message": "Denne funktion registrerer hvilke segmenter, du har sprunget over, så brugere kan se, hvor meget deres bidrag har hjulpet andre, og bruges som en måleenhed sammen med upvotes for at sikre, at spam ikke kommer ind i databasen. Udvidelsen sender en besked til serveren hver gang, du springer et segment over. Forhåbentlig ændrer de fleste ikke denne indstilling, så visningstallene er korrete. :)"
},
"enableViewTrackingInPrivate": {
"message": "Aktiver Optælling Af Antal Spring Over I Private-/Inkognitovinduer"
},
"enableQueryByHashPrefix": {
"message": "Forespørg Efter Hashpræfiks"
},
"whatQueryByHashPrefix": {
"message": "I stedet for at anmode om segmenter fra serveren ved hjælp af videoID'et, sendes de første 4 tegn i hashen af videoID'et. Serveren sender data tilbage for alle videoer med lignende hashes."
},
"enableRefetchWhenNotFound": {
"message": "Opdater Segmenter På Nye Videoer"
},
"whatRefetchWhenNotFound": {
"message": "Hvis videoen er ny, og der ikke er nogle segmenter fundet, vil den opdatere hvert par minutter, mens du ser."
},
"showNotice": {
"message": "Vis Bemærkning Igen"
},
"showSkipNotice": {
"message": "Vis Bemærkning Efter Et Segment Skippes"
},
"noticeVisibilityMode0": {
"message": "Fuld Størrelse Skip-Bemærkninger"
},
"noticeVisibilityMode1": {
"message": "Små Skip-Bemærkninger for Auto-Skip"
},
"noticeVisibilityMode2": {
"message": "Alle Små Skip-Bemærkninger"
},
"noticeVisibilityMode3": {
"message": "Faded Skip-Bemærkninger for Auto-Skip"
},
"noticeVisibilityMode4": {
"message": "Alle Faded Skip-Bemærkninger"
},
"longDescription": {
"message": "SponsoBlock lader dig skippe sponsorer, introer, outroer, abonnement påmindelser og andre irriterende dele af YouTube-Videoer. SponsorBlock er en crowdsourced browerudvidelse, hvor alle kan indsende start- og sluttidspunkter for sponsorerede og andre segmenter i YouTube-Videoer. Du kan også springe over de dele af musikvideoer, som ikke er musik.",
"description": "Full description of the extension on the store pages."
},
"website": {
"message": "Hjemmeside",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "Kildekode",
"description": "Used on Firefox Store Page"
},
"noticeUpdate": {
"message": "Meddelelsen er blevet opgraderet!",
"description": "The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2": {
"message": "Hvis du stadig ikke kan lide det, så tryk på aldrig vis knappen.",
"description": "The second line of the message displayed after the notice was upgraded."
},
"setSkipShortcut": {
"message": "Indstil tast for at springe et segment over"
},
"setStartSponsorShortcut": {
"message": "Indstil tast til start/stop segment tastaturbinding"
},
"setSubmitKeybind": {
"message": "Indstil tast til indsendelse tastaturbinding"
},
"keybindDescription": {
"message": "Vælg en tast ved at skrive den"
},
"keybindDescriptionComplete": {
"message": "Tastaturbindingen er blevet sat til: "
},
"0": {
"message": "Forbindelsestimeout. Tjek din internetforbindelse. Hvis dit internet fungerer, er serveren sandsynligvis overbelastet eller nede."
},
"disableSkipping": {
"message": "Spring over er aktiveret"
},
"enableSkipping": {
"message": "Spring over er deaktiveret"
},
"yourWork": {
"message": "Dit Arbejde",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"502": {
"message": "Serveren virker at være overbelastet. Prøv igen om et par sekunder."
},
"errorCode": {
"message": "Fejlkode: "
},
"skip": {
"message": "Spring Over"
},
"mute": {
"message": "Gør Tavs"
},
"skip_category": {
"message": "Spring {0} over?"
},
"mute_category": {
"message": "Gør {0} tavs?"
},
"skip_to_category": {
"message": "Spring til {0}?",
"description": "Used for skipping to things (Skip to Highlight)"
},
"skipped": {
"message": "{0} Sprunget Over",
"description": "Example: Sponsor Skipped"
},
"muted": {
"message": "{0} Tavsgjort",
"description": "Example: Sponsor Muted"
},
"skipped_to_category": {
"message": "Skipped til {0}",
"description": "Used for skipping to things (Skipped to Highlight)"
},
"disableAutoSkip": {
"message": "Deaktiver Auto-Skip"
},
"enableAutoSkip": {
"message": "Aktiver Auto-Skip"
},
"audioNotification": {
"message": "Lydnofikation på Skip"
},
"audioNotificationDescription": {
"message": "Lydnotifikation ved skip vil spille en lyd når et segment skippes. Hvis deaktiveret (eller auto-skip er deaktiveret) vil ingen lyd blive spillet."
},
"showTimeWithSkips": {
"message": "Vis Tid Med Skip Fjernet"
},
"showTimeWithSkipsDescription": {
"message": "Denne tid vises i parantes ved siden af den aktuelle tid under søgelinjen. Dette viser den totale videovarighed minus alle segmenter. Dette inkluderer segmenter markeret som kun \"Vis I Søgelinjen\"."
},
"youHaveSkipped": {
"message": "Du har sprunget over "
},
"youHaveSaved": {
"message": "Du har gemt dig selv "
},
"minLower": {
"message": "minut"
},
"minsLower": {
"message": "minutter"
},
"hourLower": {
"message": "time"
},
"hoursLower": {
"message": "timer"
},
"youHaveSavedTime": {
"message": "Du har sparret folk"
},
"youHaveSavedTimeEnd": {
"message": " af deres liv"
},
"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"
},
"keybindCurrentlySet": {
"message": ". Det er i øjeblikket sat til:"
},
"supportOtherSites": {
"message": "Understøtter tredjeparts YouTube sider"
},
"supportOtherSitesDescription": {
"message": "Understøt tredjeparts YouTube klienter. For at aktivere understøttelse, skal du acceptere de ekstra tilladelser. Dette virker IKKE i inkognito på Chrome og andre Chromium varianter.",
"description": "This replaces the 'supports Invidious' option because it now works on other YouTube sites such as Cloudtube"
},
"supportedSites": {
"message": "Understøttede Sider: "
},
"optionsInfo": {
"message": "Aktiver Invidious understøttelse, deaktiver auto spring over, skjul knapper og mere."
},
"addInvidiousInstance": {
"message": "Tilføj Tredjeparts Klientinstans"
},
"addInvidiousInstanceDescription": {
"message": "Tilføj brugerdefineret instans. Dette skal formateres med KUN domænet. Eksempel: invidious.ajay.app"
},
"add": {
"message": "Tilføj"
},
"addInvidiousInstanceError": {
"message": "Dette er et ugyldigt domæne. Dette bør KUN omfatte domænedele. Eksempel: invidious.ajay.app"
},
"resetInvidiousInstance": {
"message": "Nulstil Liste over Invidious-Instanser"
},
"resetInvidiousInstanceAlert": {
"message": "Du er ved at nulstille listen over Invidious-instancer"
},
"currentInstances": {
"message": "Nuværende Instans:"
},
"minDuration": {
"message": "Minimumsvarighed (sekunder):"
},
"minDurationDescription": {
"message": "Segmenter kortere end den indstillede værdi vil ikke blive sprunget over eller vist i spilleren."
},
"skipNoticeDuration": {
"message": "Spring meddelelsesvarighed over (sekunder):"
},
"save": {
"message": "Gem"
},
"reset": {
"message": "Nulstil"
},
"areYouSureReset": {
"message": "Er du sikker på, at du ønsker at nulstille dette?"
},
"mobileUpdateInfo": {
"message": "m.youtube.com understøttes nu"
},
"exportOptions": {
"message": "Importer/Eksporter Alle Indstillinger"
},
"setOptions": {
"message": "Indstil Indstillinger"
},
"confirmNoticeTitle": {
"message": "Indsend Segment"
},
"submit": {
"message": "Indsend"
},
"cancel": {
"message": "Annuller"
},
"delete": {
"message": "Slet"
},
"preview": {
"message": "Forhåndsvisning"
},
"unsubmitted": {
"message": "Ikke Indsendt"
},
"inspect": {
"message": "Undersøg"
},
"edit": {
"message": "Rediger"
},
"theKey": {
"message": "Tasten"
},
"to": {
"message": "til",
"description": "Used between segments. Example: 1:20 to 1:30"
},
"category_sponsor": {
"message": "Sponsor"
},
"category_selfpromo": {
"message": "Ubetalt/Egen Markedsføring"
},
"category_interaction": {
"message": "Påmindelse Om Interaktion (Abonnement)"
},
"category_interaction_short": {
"message": "Påmindelse Om Interaktion"
},
"category_intro": {
"message": "Pause/Intro-Animation"
},
"category_intro_short": {
"message": "Pause"
},
"category_outro": {
"message": "Slutkort/Kreditter"
},
"category_preview": {
"message": "Forhåndsvisning/Opsamling"
},
"skipOption": {
"message": "Spring Over Indstillinger",
"description": "Used on the options page to describe the ways to skip the segment (auto skip, manual, etc.)"
},
"enableTestingServer": {
"message": "Aktiver Betatestserver"
},
"bracketNow": {
"message": "(Nu)"
},
"moreCategories": {
"message": "Flere Kategorier"
},
"chooseACategory": {
"message": "Vælg en Kategori"
},
"bracketEnd": {
"message": "(Slut)"
},
"hiddenDueToDownvote": {
"message": "skjult: downvote"
},
"hiddenDueToDuration": {
"message": "skjult: for kort"
},
"acceptPermission": {
"message": "Accepter tilladelse"
},
"permissionRequestSuccess": {
"message": "Tilladelsesandmodning lykkedes!"
},
"permissionRequestFailed": {
"message": "Tilladelsesanmodning mislykkedes, klikkede du på afvis?"
},
"downvoteDescription": {
"message": "Ukorrekt/Forkert Timing"
},
"incorrectCategory": {
"message": "Skift Kategori"
},
"multipleSegments": {
"message": "Adskillige Segmenter"
},
"guidelines": {
"message": "Retningslinjer"
},
"readTheGuidelines": {
"message": "Læs Retningslinjerne!!",
"description": "Show the first time they submit or if they are \"high risk\""
},
"categoryUpdate1": {
"message": "Kategorier er her!"
},
"help": {
"message": "Hjælp"
},
"GotIt": {
"message": "Forstået",
"description": "Used as the button to dismiss a tooltip"
},
"experiementOptOut": {
"message": "Fravælg alle fremtidige eksperimenter",
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
},
"hideForever": {
"message": "Skjul for evigt"
},
"Donate": {
"message": "Doner"
},
"hideDonationLink": {
"message": "Skjul Donationslink"
},
"helpPageThanksForInstalling": {
"message": "Tak for at installere SponsorBlock."
},
"helpPageReviewOptions": {
"message": "Venligst gennemgå indstillingerne nedenfor"
},
"helpPageHowSkippingWorks": {
"message": "Hvordan spring over virker"
},
"Submitting": {
"message": "Indsendelse"
},
"Editing": {
"message": "Redigering"
}
}

View File

@@ -98,7 +98,7 @@
"message": "Abgestimmt!"
},
"serverDown": {
"message": "Der Server ist anscheinend offline. Bitte unverzüglich dem Entwickler melden."
"message": "Der Server ist anscheinend offline. Bitte kontaktiere den Entwickler unverzüglich."
},
"connectionError": {
"message": "Ein Verbindungsfehler ist aufgetreten. Fehlermeldung: "
@@ -563,6 +563,15 @@
"category_preview_description": {
"message": "Kurze Zusammenfassung bisheriger Videos oder eine Vorschau auf das aktuelle Video. Für zusammengeschnittene Clips gedacht, jedoch nicht für mündliche Zusammenfassungen."
},
"category_filler": {
"message": "Füller/Nebensächliches"
},
"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"
},
"category_music_offtopic": {
"message": "Musikvideoteile ohne Musik"
},
@@ -805,17 +814,14 @@
"Credits": {
"message": "Mitwirkende"
},
"highlightNewFeature": {
"message": "Neu! Gehe mit einem Klick zum Punkt des Videos mit der neuen \"Hervorheben\" Kategorie"
},
"LearnMore": {
"message": "Erfahre mehr"
},
"CopyDownvoteButtonInfo": {
"message": "Meldet als unzulässig und erstellt eine lokale Kopie zur späteren Einreichung"
"message": "Abwerten, und eine lokale Kopie zum erneuten Einreichen erstellen"
},
"OpenCategoryWikiPage": {
"message": "Den Wiki-Artikel dieser Kategorie aufrufen."
"message": "Öffne den Wiki-Artikel dieser Kategorie."
},
"CopyAndDownvote": {
"message": "Kopieren und abwerten"
@@ -828,5 +834,16 @@
},
"SponsorTimeEditScrollNewFeature": {
"message": "Benutze das Mausrad während der Mauszeiger über dem Eingabefeld schwebt um die Zeit schnell anzupassen. Benutze Strg bzw. Shift für gröbere/genauere Änderungen."
},
"fillerNewFeature": {
"message": "Neu! Überspringe Nebensächliches und Witze mit der Füller-Kategorie. Aktiviere sie in den Optionen"
},
"dayAbbreviation": {
"message": "T",
"description": "100d"
},
"hourAbbreviation": {
"message": "S",
"description": "100h"
}
}

View File

@@ -3,6 +3,22 @@
"message": "SponsorBlock for YouTube - Skip Sponsorships",
"description": "Name of the extension."
},
"Description": {
"message": "Παράλειψη χορηγιών, επαιτείας συνδρομής και άλλων στα βίντεο του YouTube. Αναφέρετε χορηγούς σε βίντεο που βλέπετε για να εξοικονομήσετε τον χρόνο άλλων.",
"description": "Description of the extension."
},
"400": {
"message": "Ο διακομιστής είπε πως το αίτημα αυτό ήταν άκυρο"
},
"429": {
"message": "Έχετε υποβάλει πάρα πολλές ώρες χορηγών για αυτό το βίντεο, είστε σίγουροι ότι υπάρχουν τόσες πολλές;"
},
"409": {
"message": "Αυτό έχει ήδη υποβληθεί"
},
"channelWhitelisted": {
"message": "Το κανάλι προστέθηκε στην λίστα επιτρεπόμενων!"
},
"Segment": {
"message": "τμήμα"
},

View File

@@ -563,6 +563,15 @@
"category_preview_description": {
"message": "Quick recap of previous episodes, or a preview of what's coming up later in the current video. Meant for edited together clips, not for spoken summaries."
},
"category_filler": {
"message": "Filler Tangent"
},
"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."
},
"category_filler_short": {
"message": "Filler"
},
"category_music_offtopic": {
"message": "Music: Non-Music Section"
},
@@ -805,9 +814,6 @@
"Credits": {
"message": "Credits"
},
"highlightNewFeature": {
"message": "New! Get to the point of the video with one click with the new highlight category"
},
"LearnMore": {
"message": "Learn More"
},
@@ -828,5 +834,16 @@
},
"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."
},
"fillerNewFeature": {
"message": "New! Skip tangents and jokes with the filler category. Enable in options"
},
"dayAbbreviation": {
"message": "d",
"description": "100d"
},
"hourAbbreviation": {
"message": "h",
"description": "100h"
}
}

View File

@@ -4,7 +4,7 @@
"description": "Name of the extension."
},
"Description": {
"message": "Salte todos los patrocinios, súplicas por suscripción y más en los vídeos de YouTube. Reporta secciones de patrocinio en los vídeos que veas para ahorrarle tiempo a los demás.",
"message": "Salte todos los sponsors, súplicas de suscripción y más en vídeos de YouTube. Reporta sponsors en los vídeos que veas para ahorrarle tiempo a los demás.",
"description": "Description of the extension."
},
"400": {
@@ -26,13 +26,13 @@
"message": "segmentos"
},
"upvoteButtonInfo": {
"message": "Votar a favor de esta sumisión"
"message": "Votar positivamente este envío"
},
"reportButtonTitle": {
"message": "Denunciar"
"message": "Reportar"
},
"reportButtonInfo": {
"message": "Denunciar esta sumisión como incorrecta."
"message": "Reportar este envío como incorrecto."
},
"Dismiss": {
"message": "Descartar"
@@ -53,7 +53,7 @@
"message": "Volver a saltar"
},
"unmute": {
"message": "Restaurar sonido"
"message": "Quitar silencio"
},
"paused": {
"message": "Pausado"
@@ -156,7 +156,7 @@
"message": "Esto se utiliza en la página de estadísticas públicas para mostrar cuánto has contribuido. Véala"
},
"Username": {
"message": "Usuario"
"message": "Nombre de Usuario"
},
"setUsername": {
"message": "Escoger Nombre De Usuario"
@@ -204,7 +204,7 @@
"message": "Habilitar el conteo de omisiones"
},
"whatViewTracking": {
"message": "Esta función rastrea los segmentos que se han saltado para que los usuarios sepan en qué medida sus aportes ayudaron a los demás y se utilizan como una métrica junto con los votos favorables para garantizar que no aparezca spam en la base de datos. La extensión envía un mensaje al servidor cada vez que se salta un segmento. Esperemos que la mayoría de la gente no cambie esta configuración para que los números de vista sean exactos. :)"
"message": "Esta función rastrea los segmentos que se han saltado para que los usuarios sepan en qué medida sus envíos ayudaron a los demás y se utilizan como una métrica junto con los votos positivos para garantizar que no aparezca spam en la base de datos. La extensión envía un mensaje al servidor cada vez que se salta un segmento. Esperemos que la mayoría de la gente no cambie esta configuración para que los números de vistas sean exactos. :)"
},
"enableViewTrackingInPrivate": {
"message": "Activar el seguimiento del número de saltos en las pestañas privadas/de incógnito"
@@ -269,13 +269,13 @@
"message": "Establecer tecla para iniciar/detener un segmento"
},
"setSubmitKeybind": {
"message": "Establecer botón de envío"
"message": "Establecer tecla para el envío"
},
"keybindDescription": {
"message": "Seleccione un botón escribiéndolo"
"message": "Seleccione una tecla escribiéndola"
},
"keybindDescriptionComplete": {
"message": "El botón se ha establecido a: "
"message": "Ese atajo de teclas se ha establecido como: "
},
"0": {
"message": "Tiempo de espera agotado. Compruebe su conexión a Internet. Si su internet está funcionando, el servidor probablemente esta sobrecargado o desconectado."
@@ -434,7 +434,7 @@
"message": "El aviso de omisión permanecerá en la pantalla por lo menos este tiempo. Si la omisión es manual, podría ser visible por más tiempo."
},
"shortCheck": {
"message": "La siguiente sumisión es más corto que su opción de duración mínima. Esto podría significar que esto ya se ha enviado y que simplemente se ha ignorado debido a esta opción. ¿Está seguro de que desea enviar?"
"message": "El siguiente envío es más corto que su opción de duración mínima. Esto podría significar que esto ya se ha enviado y que simplemente se ha ignorado debido a esta opción. ¿Está seguro de que desea enviar?"
},
"showUploadButton": {
"message": "Mostrar botón de subida"
@@ -512,10 +512,10 @@
"message": "La información de depuración ha sido copiada al portapapeles. Siéntase libre de eliminar cualquier información que prefiera no compartir. Guarde esto en un archivo de texto o péguelo en el informe de errores."
},
"theKey": {
"message": "El botón"
"message": "La tecla"
},
"keyAlreadyUsed": {
"message": "está enlazado a otra acción. Por favor, seleccione otro botón."
"message": "está enlazada a otra acción. Por favor, seleccione otra tecla."
},
"to": {
"message": "a",
@@ -525,7 +525,7 @@
"message": "Sponsor"
},
"category_sponsor_description": {
"message": "Promoción pagada, referencias pagadas y anuncios directos. No para autopromoción o anuncios gratuitos a causas/creadores/sitios web/productos que les gusten."
"message": "Promoción pagada, recomendaciones pagadas y anuncios directos. No para promoción propia o anuncios gratuitos a causas/creadores/sitios web/productos que les gusten."
},
"category_selfpromo": {
"message": "Promoción Propia/No Remunerada"
@@ -563,6 +563,15 @@
"category_preview_description": {
"message": "Recapitulación rápida de los episodios anteriores, o una vista previa de lo que va a ocurrir más adelante en el vídeo actual. Está pensado para clips editados juntos, no para resúmenes hablados."
},
"category_filler": {
"message": "Tangente de Relleno"
},
"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"
},
"category_music_offtopic": {
"message": "Música: Sección sin musica"
},
@@ -719,7 +728,7 @@
"message": "¡Las categorías están aquí!"
},
"categoryUpdate2": {
"message": "Abre las opciones de saltarse intros, otros, mercantil, etc."
"message": "Abre las opciones de saltarse intros, outros, mercancía, etc."
},
"help": {
"message": "Ayuda"
@@ -805,9 +814,6 @@
"Credits": {
"message": "Créditos"
},
"highlightNewFeature": {
"message": "¡Nuevo! Llega al punto del video con un solo clic con la nueva categoría \"destacado\""
},
"LearnMore": {
"message": "Aprenda Más"
},
@@ -828,5 +834,16 @@
},
"SponsorTimeEditScrollNewFeature": {
"message": "Utilice la rueda del ratón mientras pasa el cursor por encima del cuadro de edición para ajustar el tiempo. Se pueden utilizar combinaciones de la tecla ctrl o shift para afinar los cambios."
},
"fillerNewFeature": {
"message": "¡Nuevo! Omite tangentes y bromas con la categoría de relleno. Habilítala en opciones"
},
"dayAbbreviation": {
"message": "d",
"description": "100d"
},
"hourAbbreviation": {
"message": "h",
"description": "100h"
}
}

View File

@@ -17,7 +17,7 @@
"message": "See on juba varasemalt saadetud"
},
"channelWhitelisted": {
"message": "Kanal lubamisnimekirjas!"
"message": "Kanal ignoreerimisnimekirjas!"
},
"Segment": {
"message": "segmendi"
@@ -41,7 +41,7 @@
"message": "Laadimine..."
},
"Hide": {
"message": "Ära näita kunagi"
"message": "Ära kunagi näita"
},
"hitGoBack": {
"message": "Vajuta \"kuva uuesti\", et jõuda sinna, kust tulid."
@@ -119,10 +119,10 @@
"message": "Kas soovid kindlasti selle saata?"
},
"whitelistChannel": {
"message": "Lisa kanal lubamisnimekirja"
"message": "Lisa kanal ignoreerimisnimekirja"
},
"removeFromWhitelist": {
"message": "Eemalda kanal lubamisnimekirjast"
"message": "Eemalda kanal ignoreerimisnimekirjast"
},
"voteOnTime": {
"message": "Hääleta segmendi sobivust"
@@ -259,7 +259,7 @@
"description": "The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2": {
"message": "Kui sulle see ikka ei meeldi, vajuta \"ära näita kunagi\" nuppu.",
"message": "Kui sulle see ikka ei meeldi, vajuta \"ära kunagi näita\" nuppu.",
"description": "The second line of the message displayed after the notice was upgraded."
},
"setSkipShortcut": {
@@ -506,7 +506,7 @@
"message": "Lõikelauale kirjutamine ebaõnnestus"
},
"copyDebugInformationOptions": {
"message": "Kopeerib lõikelauale info, mida saad arendajale anda veast teatamisel või siis, kui arendaja seda sinult taotleb. Tundlik info, sealhulgas sinu kasutaja ID, lubamisnimekirjas kanalid ning kohandatud serveri aadress on eemaldatud. Siiski see sisaldab teatud infot, nagu sinu kasutajaagent, brauser, opsüsteem ning laienduse versiooninumber."
"message": "Kopeerib lõikelauale info, mida saad arendajale anda veast teatamisel või siis, kui arendaja seda sinult taotleb. Tundlik info, sealhulgas sinu kasutaja ID, ignoreerimisnimekirjas kanalid ning kohandatud serveri aadress on eemaldatud. Siiski see sisaldab teatud infot, nagu sinu kasutajaagent, brauser, opsüsteem ning laienduse versiooninumber."
},
"copyDebugInformationComplete": {
"message": "Silumisinfo on lõikelauale kopeeritud. Võid sellelt vabalt eemaldada mistahes info, mida ei soovi jagada. Salvesta see tekstifaili või kleebi vearaportisse."
@@ -563,6 +563,15 @@
"category_preview_description": {
"message": "Kiire kokkuvõte eelmistest episoodidest või eelvaade videos hiljem tulevast. Mõeldud valmis töödeldud klippide, mitte suuliste kokkuvõtete jaoks."
},
"category_filler": {
"message": "Täitesisu"
},
"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"
},
"category_music_offtopic": {
"message": "Muusika: mitte-muusika jaotis"
},
@@ -691,7 +700,7 @@
"message": "Sunnitud kanalikontroll enne vahelejätmist"
},
"whatForceChannelCheck": {
"message": "Vaikimisi jätab see segmendid vahele juba siis, kui veel kanalitki ei tea. Vaikimisi võidakse mõned video alguses olevad segmendid lubamisnimekirjas olevatel kanalitel vahele jätta. Selle valiku lubamine väldib seda, kuid võib lisada vahelejätmistele väikese viivituse, sest kanali ID hankimine võib aega võtta. Viivitus võib kiire interneti puhul olla märkamatu."
"message": "Vaikimisi jätab see segmendid vahele juba siis, kui veel kanalitki ei tea. Vaikimisi võidakse mõned video alguses olevad segmendid ignoreerimisnimekirjas olevatel kanalitel vahele jätta. Selle valiku lubamine väldib seda, kuid võib lisada vahelejätmistele väikese viivituse, sest kanali ID hankimine võib aega võtta. Viivitus võib kiire interneti puhul olla märkamatu."
},
"forceChannelCheckPopup": {
"message": "Kaalu valiku \"Sunnitud kanalikontroll enne vahelejätmist\" lubamist"
@@ -754,15 +763,36 @@
"helpPageReviewOptions": {
"message": "Palun vaata allolevad valikud üle"
},
"helpPageHowSkippingWorks": {
"message": "Kuidas vahelejätmine töötab"
},
"Submitting": {
"message": "Segmentide saatmine"
},
"Editing": {
"message": "Redigeerimine"
},
"helpPageTooSlow": {
"message": "See on liiga aeglane"
},
"helpPageCopyOfDatabase": {
"message": "Kas ma saaksin andmebaasist koopia? Mis juhtub, kui sa kaod?"
},
"helpPageCopyOfDatabase1": {
"message": "Andmebaas on avalik ning saadaval aadressil"
},
"helpPageCopyOfDatabase2": {
"message": "Lähtekood on vabalt saadaval. Seega, isegi kui minuga midagi juhtub, ei ole sinu saadetud segmendid kadunud."
},
"helpPageNews": {
"message": "Uudised ja kuidas see on valmistatud"
},
"helpPageSourceCode": {
"message": "Kust ma saan selle lähtekoodi?"
},
"Credits": {
"message": "Tiitrid"
},
"highlightNewFeature": {
"message": "Uus! Mine ühe klõpsuga video eesmärgi juurde uue \"esiletõstu\" kategooriaga"
},
"LearnMore": {
"message": "Lisateave"
},
@@ -782,6 +812,17 @@
"message": "See rakendub sinu segmentidele koheselt"
},
"SponsorTimeEditScrollNewFeature": {
"message": "Kasuta hiirekursorit muutmiskasti kohal, et kiirelt aega reguleerida. Täpsemaks muutmiseks hoia kerimise ajal all Ctrl või Shift klahvi."
"message": "Kiireks aja reguleerimiseks keri hiirega muutmiskasti kohal. Täpsemaks reguleerimiseks hoia kerimise ajal all Ctrl või Shift klahvi."
},
"fillerNewFeature": {
"message": "Uus! Jäta täitesisu ja naljad vahele täitesisu kategooriaga. Luba valikutes"
},
"dayAbbreviation": {
"message": "p",
"description": "100d"
},
"hourAbbreviation": {
"message": "t",
"description": "100h"
}
}

View File

@@ -563,6 +563,15 @@
"category_preview_description": {
"message": "Nopea kertaus aiemmista jaksoista, tai esikatselu siitä, mitä on tulossa myöhemmin nykyisessä videossa. Tarkoitettu yhteen editoituja klippejä varten, ei puhutuille yhteenvedoille."
},
"category_filler": {
"message": "Epäolennainen täytesisältö"
},
"category_filler_description": {
"message": "Täytteeksi tai huumoriksi lisättyjä sekundaarisia kohtauksia, joita ei vaadita videon pääsisällön ymmärtämiseen. Tämän ei tulisi sisältää segmenttejä, jotka tarjoavat kontekstia tai taustatietoja."
},
"category_filler_short": {
"message": "Täytesisältö"
},
"category_music_offtopic": {
"message": "Musiikki: Musiikiton osa"
},
@@ -699,6 +708,9 @@
"downvoteDescription": {
"message": "Virheellinen/väärä aika"
},
"incorrectCategory": {
"message": "Vaihda kategoria"
},
"nonMusicCategoryOnMusic": {
"message": "Tämä video on luokiteltu musiikiksi. Oletko varma, että siinä on sponsori? Jos tämä on oikeasti \"Musiikiton segmentti\", avaa laajennuksen asetukset ja ota tämä kategoria käyttöön. Sitten voit lähettää tämän segmentin oikeassa kategoriassa. Lue säännöt, jos olet vielä hämilläsi."
},
@@ -802,13 +814,36 @@
"Credits": {
"message": "Tekijät"
},
"highlightNewFeature": {
"message": "Uutta! Pääse videon asiaan yhdellä klikkauksella uudella kohokohta kategorialla"
},
"LearnMore": {
"message": "Opi lisää"
},
"CopyDownvoteButtonInfo": {
"message": "Äänestää alas ja luo paikallisen kopion, jonka voit lähettää uudelleen"
},
"OpenCategoryWikiPage": {
"message": "Avaa tämän kategorian wiki-sivu."
},
"CopyAndDownvote": {
"message": "Kopioi ja äänestä alas"
},
"ContinueVoting": {
"message": "Jatka äänestystä"
},
"ChangeCategoryTooltip": {
"message": "Tämä vaikuttaa sinun segmentteihin välittömästi"
},
"SponsorTimeEditScrollNewFeature": {
"message": "Käytä hiiren rullaa samalla kun osoitin on muokkauslaatikon päällä säätääksesi aikaa nopeasti. Ctrl- tai Shift-näppäimen yhdistelmiä voi käyttää muutoksien hienosäätelyyn."
},
"fillerNewFeature": {
"message": "Uutta! Ohita epäolennaiset kohdat ja vitsit täytesisältö kategorialla. Ota se käyttöön asetuksista"
},
"dayAbbreviation": {
"message": "pv",
"description": "100d"
},
"hourAbbreviation": {
"message": "t",
"description": "100h"
}
}

View File

@@ -183,7 +183,7 @@
"message": "Cela permet de cacher du lecteur YouTube les boutons utilisés pour soumettre des segments commerciaux. Je peux \ncomprendre que certaines personnes les trouvent perturbants. Au lieu d'utiliser ces boutons, cette fenêtre peut être utilisée \npour soumettre des segments commerciaux. Pour cacher la notification, utilisez le bouton \"Ne plus montrer\" sur la notification. Vous pouvez toujours réactiver ces paramètres plus tard."
},
"showSkipButton": {
"message": "Conserver le bouton \"Aller au point d'intérêt\" sur le lecteur"
"message": "Conserver le bouton \"Aller au point essentiel\" sur le lecteur"
},
"showInfoButton": {
"message": "Montrer le bouton Info sur le lecteur YouTube"
@@ -563,6 +563,15 @@
"category_preview_description": {
"message": "Résumé rapide des épisodes précédents, ou aperçu de ce qui se passera plus tard dans la vidéo en cours. Pour les plans collectifs édités, pas pour les résumés parlés."
},
"category_filler": {
"message": "Digressions"
},
"category_filler_description": {
"message": "Des digressions ajoutées uniquement pour le remplissage ou l'humour qui ne sont pas requis pour comprendre le contenu principal de la vidéo. Cela ne devrait pas inclure des segments fournissant du contexte ou des détails de fond."
},
"category_filler_short": {
"message": "Remplissage"
},
"category_music_offtopic": {
"message": "Musique : Segment non musical"
},
@@ -573,7 +582,7 @@
"message": "Hors musique"
},
"category_poi_highlight": {
"message": "Surligner"
"message": "Point essentiel"
},
"category_poi_highlight_description": {
"message": "La partie de la vidéo que la plupart des gens veulent voir. Similaire à \"la vidéo commence à x mins\"."
@@ -651,7 +660,7 @@
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
},
"poiOnlyOneSegment": {
"message": "Avertissement : Ce type de segment ne peut avoir qu'un seul segment actif à la fois. Si vous en soumettez plusieurs, le choix sera fait au hasard."
"message": "Avertissement: Ce type de segment peut avoir au maximum un seul actif à la fois. En soumettant plusieurs segments, un seul aléatoire sera affiché."
},
"youMustSelectACategory": {
"message": "Vous devez sélectionner une catégorie pour tous les segments que vous soumettez !"
@@ -699,6 +708,9 @@
"downvoteDescription": {
"message": "Segment de mauvaise qualité"
},
"incorrectCategory": {
"message": "Changer de catégorie"
},
"nonMusicCategoryOnMusic": {
"message": "Cette vidéo est catégorisée comme de la musique. Êtes-vous sûr qu'elle est sponsorisée? S'il s'agit en fait d'un \"Segment non musical\", allez dans les options de l'extension et activez cette catégorie. Ensuite, vous pourrez soumettre ce segment en tant que \"Segment non musical\" au lieu de sponsor. Lisez les instructions en cas de confusion."
},
@@ -802,13 +814,36 @@
"Credits": {
"message": "Crédits"
},
"highlightNewFeature": {
"message": "Nouveau! Aller à l'essentiel de la vidéo en un clic avec la nouvelle catégorie points essentiels"
},
"LearnMore": {
"message": "En savoir plus"
},
"CopyDownvoteButtonInfo": {
"message": "Voter contre et crée une copie locale pour la resoumettre"
},
"OpenCategoryWikiPage": {
"message": "Ouvrez la page wiki de cette catégorie."
},
"CopyAndDownvote": {
"message": "Copier et voter contre"
},
"ContinueVoting": {
"message": "Continuer à voter"
},
"ChangeCategoryTooltip": {
"message": "Cela s'appliquera instantanément à vos segments"
},
"SponsorTimeEditScrollNewFeature": {
"message": "Utilisez la molette de votre souris en survolant la boîte d'édition pour ajuster rapidement le minutage. Les combinaisons de touches Ctrl ou Shift peuvent être utilisées pour affiner les modifications."
},
"fillerNewFeature": {
"message": "Nouveau ! Ignorer les digressions et les blagues avec la catégorie \"remplissage\". Activable dans les options"
},
"dayAbbreviation": {
"message": "j",
"description": "100d"
},
"hourAbbreviation": {
"message": "h",
"description": "100h"
}
}

View File

@@ -152,6 +152,10 @@
"hideInfoButton": {
"message": "החבא כפתור מידע בנגן YouTube"
},
"website": {
"message": "אתר",
"description": "Used on Firefox Store Page"
},
"sourceCode": {
"message": "קוד מקור",
"description": "Used on Firefox Store Page"

View File

@@ -52,6 +52,9 @@
"reskip": {
"message": "Preskoči opet"
},
"unmute": {
"message": "Uključi zvuk"
},
"paused": {
"message": "Pauzirano"
},
@@ -79,6 +82,15 @@
"sponsorEnd": {
"message": "Isječak završava sada"
},
"sponsorCancel": {
"message": "Otkaži Kreiranje Segmenta"
},
"noVideoID": {
"message": "Nijedan YouTube video nije pronađen.\nAko ovo nije točno, osvježite karticu."
},
"refreshSegments": {
"message": "Osvježi segmente"
},
"success": {
"message": "Uspjeh!"
},
@@ -97,15 +109,33 @@
"openPopup": {
"message": "Otvori okvir SponsorBlock"
},
"closePopup": {
"message": "Zatvori izbornik"
},
"SubmitTimes": {
"message": "Podnesi isječke"
},
"submitCheck": {
"message": "Jesi li siguran da želiš unijeti ovo?"
},
"whitelistChannel": {
"message": "Dopusti kanal"
},
"removeFromWhitelist": {
"message": "Izbaci kanal iz bijele liste"
},
"voteOnTime": {
"message": "Glasaj za isječak"
},
"Submissions": {
"message": "Prijava"
},
"savedPeopleFrom": {
"message": "Sačuvali ste ljude od"
},
"viewLeaderboard": {
"message": "Ljestvica"
},
"recordTimesDescription": {
"message": "Pošalji"
},
@@ -113,21 +143,66 @@
"message": "Uređivanje dijela prikazat će se nakon što pritisneš gumb za slanje",
"description": "Appears in the popup to inform them that editing has been moved to the video player."
},
"popupHint": {
"message": "Savjet: Možete namjestiti tipke za podnošenje u opcijama"
},
"clearTimesButton": {
"message": "Očisti vremena"
},
"submitTimesButton": {
"message": "Unesi vremena"
},
"publicStats": {
"message": "Ovo se koristi na stranici sa javnim statistikama da se pokaže koliko se pridonijeli. Pogledajte"
},
"Username": {
"message": "Korisničko ime"
},
"setUsername": {
"message": "Postavi korisničko ime"
},
"copyPublicID": {
"message": "Kopiraj javni UserID"
},
"discordAdvert": {
"message": "Pridružite nam se u službenoj Discord zajednici i pošaljite svoje prijedloge i povrate informacije!"
},
"hideThis": {
"message": "Sakrijte ovo"
},
"Options": {
"message": "Opcije"
},
"showButtons": {
"message": "Prikaži gumbe na YouTube Playeru"
},
"hideButtons": {
"message": "Sakrij gumbe na YouTube playeru"
},
"hideButtonsDescription": {
"message": "Ovo skriva gumbe koji se pojavljuju na YouTube playeru za slanje odsječaka za preskakanje."
},
"showSkipButton": {
"message": "Zadržite gumb za preskakanje i označavanje na playeru"
},
"showInfoButton": {
"message": "Prikaži gumb za informacije na YouTube Playeru"
},
"hideInfoButton": {
"message": "Sakrij gumb za informacije na YouTube Playeru"
},
"autoHideInfoButton": {
"message": "Automatski sakrij info gumb"
},
"hideDeleteButton": {
"message": "Sakrij gumb za brisanje na YouTube playeru"
},
"showDeleteButton": {
"message": "Pokaži gumb za brisanje na YouTube sviraču"
},
"enableViewTracking": {
"message": "Omogući brojanje preskakanja"
},
"showSkipNotice": {
"message": "Pokaži obavijest nakon preskakanja isječka"
},
@@ -139,6 +214,9 @@
"message": "Izvorni kod",
"description": "Used on Firefox Store Page"
},
"0": {
"message": "Veza istekla. Provjerite svoju internetski vezu. Ako vaš internet radi, poslužitelj je vjerojatno preopterećen ili nedostupan."
},
"disableSkipping": {
"message": "Preskakanje je aktivirano"
},
@@ -149,6 +227,9 @@
"message": "Tvoja slanja",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"502": {
"message": "Čini se da je poslužitelj preopterećen. Pokušajte ponovno za nekoliko sekundi."
},
"errorCode": {
"message": "Kȏd greške: "
},
@@ -158,6 +239,17 @@
"skip_category": {
"message": "Preskočiti {0}?"
},
"mute_category": {
"message": "Utišati {0}?"
},
"skip_to_category": {
"message": "Preskočiti na {0}?",
"description": "Used for skipping to things (Skip to Highlight)"
},
"skipped_to_category": {
"message": "Preskočeno na {0}",
"description": "Used for skipping to things (Skipped to Highlight)"
},
"disableAutoSkip": {
"message": "Deaktiviraj automatsko preskakanje"
},
@@ -176,6 +268,9 @@
"hoursLower": {
"message": "h"
},
"statusReminder": {
"message": "Provjerite status.sponsor.ajay.app za status poslužitelja."
},
"setUserID": {
"message": "Postavi UserID"
},
@@ -188,6 +283,9 @@
"keybindCurrentlySet": {
"message": ". Trenutno je postavljeno na:"
},
"supportedSites": {
"message": "Podržane stranice: "
},
"optionsInfo": {
"message": "Omogući podržavanje Invidiousa, onemogući automatsko preskakanje, sakrij gumbe i drugo."
},
@@ -212,12 +310,24 @@
"minDurationDescription": {
"message": "Isječci kraći od postavljene vrijednosti neće biti preskočeni ili prikazani u playeru."
},
"skipNoticeDuration": {
"message": "Duljina trajanja obavijesti o preskakanju (sekunde):"
},
"skipNoticeDurationDescription": {
"message": "Obavijest o preskakanju ostat će na zaslonu barem ovoliko dugo. Za ručno preskakanje može biti duže vidljivo."
},
"customServerAddress": {
"message": "Adresa SponsorBlock poslužitelja"
},
"save": {
"message": "Spremi"
},
"reset": {
"message": "Resetiraj"
},
"exportOptions": {
"message": "Uvezi/Izvezi sve postavke"
},
"setOptions": {
"message": "Postavi opcije"
},
@@ -236,15 +346,34 @@
"preview": {
"message": "Pregledaj"
},
"unsubmitted": {
"message": "Neposlano"
},
"inspect": {
"message": "Provjeri"
},
"edit": {
"message": "Uredi"
},
"copyDebugInformationOptions": {
"message": "Kopira informacije u međuspremnik koje treba dati razvojnom programeru kada otkrije grešku / kada to programer zatraži. Osjetljive informacije kao što su vaš korisnički ID, kanali s popisa dopuštenih i prilagođena adresa poslužitelja uklonjeni su. Međutim, sadrži informacije kao što su vaš korisnički agent, preglednik, operativni sustav i broj verzije proširenja. "
},
"theKey": {
"message": "Tipka"
},
"keyAlreadyUsed": {
"message": "je vezana za drugu radnju. Molimo odaberite drugu tipku."
},
"to": {
"message": "do",
"description": "Used between segments. Example: 1:20 to 1:30"
},
"category_sponsor": {
"message": "Sponzor"
},
"category_sponsor_description": {
"message": "Plaćene promocije, plaćene preporuke i izravne reklame. Nije za samopromociju ili besplatno pozivanje na događaje/kreatore/web stranice/proizvode koji im se sviđaju."
},
"category_selfpromo": {
"message": "Neplaćena promocija ili samopromocija"
},
@@ -269,6 +398,15 @@
"category_outro": {
"message": "Završni kadrovi/Zasluge"
},
"category_preview": {
"message": "Pregled/Sažetak"
},
"category_filler": {
"message": "Popuna tangenti"
},
"category_filler_short": {
"message": "Popuna"
},
"category_music_offtopic": {
"message": "Glazba: Ne-glazbeni dio"
},
@@ -278,12 +416,28 @@
"category_music_offtopic_short": {
"message": "Ne-glazbeni"
},
"category_poi_highlight": {
"message": "Istaknuto"
},
"category_livestream_messages": {
"message": "Livestream: čitanje donacija/poruka"
},
"category_livestream_messages_short": {
"message": "Čitanje poruka"
},
"autoSkip": {
"message": "Automatsko preskakanje"
},
"manualSkip": {
"message": "Ručno preskakanje"
},
"muteSegments": {
"message": "Dopustite isječke koji isključuju zvuk umjesto da ga preskaču"
},
"previewColor": {
"message": "Boja neposlanog",
"description": "Referring to submissions that have not been sent to the server yet."
},
"category": {
"message": "Kategorija"
},
@@ -291,6 +445,9 @@
"message": "Preskoči opciju",
"description": "Used on the options page to describe the ways to skip the segment (auto skip, manual, etc.)"
},
"enableTestingServer": {
"message": "Omogućite poslužitelj za beta testiranje"
},
"bracketNow": {
"message": "(sada)"
},
@@ -300,6 +457,10 @@
"chooseACategory": {
"message": "Odaberi kategoriju"
},
"enableThisCategoryFirst": {
"message": "Da biste poslali segmente s kategorijom \"{0}\", morate je omogućiti u postavkama. Sada ćete biti preusmjereni na postavke.",
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
},
"youMustSelectACategory": {
"message": "Moraš odabrati kategoriju za sve segmente koje šalješ!"
},
@@ -309,6 +470,9 @@
"downvoteDescription": {
"message": "Neispravno/krivo vrijeme"
},
"incorrectCategory": {
"message": "Promijenite kategoriju"
},
"nonMusicCategoryOnMusic": {
"message": "Ovaj je video kategoriziran kao glazba. Je li stvarno ima sponzora? Ako je ovo zapravo „Ne-glazbeni segment”, otvori opcije proširenja i aktiviraj ovu kategoriju. Zatim ovaj segment možeš posalti kao „Ne-glazbeni” umjesto sponzora. Pročitaj smjernice ako nešto nije jasno."
},
@@ -327,5 +491,44 @@
},
"categoryUpdate2": {
"message": "Otvori opcije za preskakanje uvoda, kraja, proizvoda itd."
},
"Donate": {
"message": "Doniraj"
},
"helpPageThanksForInstalling": {
"message": "Hvala na instaliranju SponsorBlocka."
},
"Submitting": {
"message": "Slanje"
},
"helpPageSubmitting2": {
"message": "Klikom na gumb za reprodukciju označava se početak segmenta, a klik na ikonu za zaustavljanje označava kraj. Možete pripremiti više sponzora prije nego što pritisnete \"Pošalji\". Klikom na gumb za slanje bit će poslano. Klikom na kantu za smeće izbrisat će se."
},
"Editing": {
"message": "Uređivanje"
},
"helpPageTooSlow": {
"message": "Ovo je presporo"
},
"helpPageSourceCode": {
"message": "Gdje mogu pronaći izvorni kod?"
},
"Credits": {
"message": "Zasluge"
},
"LearnMore": {
"message": "Saznajte više"
},
"OpenCategoryWikiPage": {
"message": "Otvorite wiki stranicu ove kategorije."
},
"CopyAndDownvote": {
"message": "Kopiraj i glasaj protiv"
},
"ContinueVoting": {
"message": "Nastavite glasati"
},
"ChangeCategoryTooltip": {
"message": "Ovo će se odmah primijeniti na vaše isječke"
}
}

View File

@@ -1,6 +1,6 @@
{
"fullName": {
"message": "SponorBlock YouTube-ra - Szponzorok átugrására",
"message": "SponsorBlock YouTube-ra - Szponzorok átugrására",
"description": "Name of the extension."
},
"Description": {
@@ -11,7 +11,7 @@
"message": "Szerver: Ez a kérés érvénytelen"
},
"429": {
"message": "Túl sok szponzoridőt jelölt be ezen a videón. Biztos benne, hogy van ennyi?"
"message": "Túl sok szponzoridőt jelöltél be ezen a videón. Biztosan van ennyi?"
},
"409": {
"message": "Ez már korábban be lett küldve"
@@ -23,7 +23,7 @@
"message": "szegmens"
},
"Segments": {
"message": "szegmensek"
"message": "szegmens"
},
"upvoteButtonInfo": {
"message": "Részlet felszavazása"
@@ -44,7 +44,7 @@
"message": "Ne mutassa többé"
},
"hitGoBack": {
"message": "Kattintson a visszaugrásra, hogy visszakerüljön oda, ahonnan ugrott."
"message": "Kattints a visszaugrásra, hogy visszakerülj oda, ahonnan ugrottál."
},
"unskip": {
"message": "Visszaugrás"
@@ -52,6 +52,9 @@
"reskip": {
"message": "Újra-átugrás"
},
"unmute": {
"message": "Némítás feloldása"
},
"paused": {
"message": "Szüneteltetve"
},
@@ -59,13 +62,13 @@
"message": "Időzítő megállítva"
},
"confirmMSG": {
"message": "Ahhoz, hogy értékeket szerkesszen, vagy töröljön kattintson az info gombra, vagy nyissa meg a bővítmény felugró ablakát a bővítmény ikonjával a jobb felső sarokban."
"message": "Az egyes értékek szerkesztéséhez vagy törléséhez kattints az info gombra, vagy nyisd meg a bővítmény felugró ablakát a bővítmény ikonjával a jobb felső sarokban."
},
"clearThis": {
"message": "Biztosan törölni akarja?\n\n"
"message": "Biztosan törölni szeretnéd?\n\n"
},
"Unknown": {
"message": "Hiba történt a szponzoridők bejelentésekor. Kérjük, próbálja újra."
"message": "Hiba történt a szponzoridők beküldésekor. Kérjük, próbáld újra később."
},
"sponsorFound": {
"message": "Ennek a videónak már vannak szegmensei az adatbázisban!"
@@ -80,7 +83,7 @@
"message": "Szegmens vége"
},
"sponsorCancel": {
"message": "Szegmens Készítés Visszavonása"
"message": "Szegmens készítés visszavonása"
},
"noVideoID": {
"message": "Nem találtunk YouTube videót.\nHa ez helytelen, frissítsd a lapot."
@@ -92,13 +95,13 @@
"message": "Siker!"
},
"voted": {
"message": "Szavazott!"
"message": "Szavaztál!"
},
"serverDown": {
"message": "Úgy tűnik a szerver nem működik. Kérjük, mihamarabb értesítse a fejlesztőket."
"message": "Úgy tűnik, a szerver nem működik. Kérjük, mihamarabb értesítsd a fejlesztőket!"
},
"connectionError": {
"message": "Kapcsolódási probléma merült fel. Error kód: "
"message": "Kapcsolódási probléma merült fel. Hibakód: "
},
"clearTimes": {
"message": "Szegmensek törlése"
@@ -110,10 +113,10 @@
"message": "Felugró ablak bezárása"
},
"SubmitTimes": {
"message": "Szegmens beküldése"
"message": "Szegmensek beküldése"
},
"submitCheck": {
"message": "Biztosan be akarja küldeni?"
"message": "Biztosan be akarod küldeni?"
},
"whitelistChannel": {
"message": "Csatorna fehérlistára tétele"
@@ -128,29 +131,29 @@
"message": "Beküldések"
},
"savedPeopleFrom": {
"message": "Megspóroltál másoknak "
"message": "Megspóroltál másoknak: "
},
"viewLeaderboard": {
"message": "Ranglista"
},
"recordTimesDescription": {
"message": "Küldés"
"message": "Beküldés"
},
"submissionEditHint": {
"message": "A szegmens szerkesztés azután fog megjelenni miután a közzétételre kattintasz",
"message": "A szegmens szerkesztés azután fog megjelenni, hogy a beküldésre kattintasz",
"description": "Appears in the popup to inform them that editing has been moved to the video player."
},
"popupHint": {
"message": "Tipp: A beállításokban készíthetsz gyorsbillentyűket a közzétetelhez"
"message": "Tipp: A beállításokban megadhatsz gyorsbillentyűket a beküldéshez"
},
"clearTimesButton": {
"message": "Időpontok törlése"
},
"submitTimesButton": {
"message": "Időpontok megadása"
"message": "Időpontok beküldése"
},
"publicStats": {
"message": "Ezt használja a nyilvános ranglistán, hogy megmutassa mennyit járult hozzá. Nézze meg"
"message": "Ez a nyilvános ranglistán használatos, ami mutatja, mennyit segítettél. Nézd meg"
},
"Username": {
"message": "Felhasználónév"
@@ -158,8 +161,11 @@
"setUsername": {
"message": "Felhasználónév megadása"
},
"copyPublicID": {
"message": "Nyilvános UserID másolása"
},
"discordAdvert": {
"message": "Csatlakozzon a hivatalos discord szerverhez, hogy javaslatokat és visszajelzést adhasson!"
"message": "Gyere, csatlakozz a hivatalos discord szerverhez, hogy javaslatokat és visszajelzést adhass!"
},
"hideThis": {
"message": "Elrejtés"
@@ -176,6 +182,9 @@
"hideButtonsDescription": {
"message": "Ez elrejti az átugrandó szegmensek megjelöléséhez használt gombokat a YouTube lejátszón."
},
"showSkipButton": {
"message": "Kiemeléshez ugrás gomb maradjon a lejátszón"
},
"showInfoButton": {
"message": "Info gomb mutatása a YouTube lejátszón"
},
@@ -183,7 +192,7 @@
"message": "Info gomb elrejtése a YouTube lejátszón"
},
"autoHideInfoButton": {
"message": "Automatikus elrejtése az Információ Gombnak"
"message": "Info gomb automatikus elrejtése"
},
"hideDeleteButton": {
"message": "Törlés gomb elrejtése a YouTube lejátszón"
@@ -195,7 +204,10 @@
"message": "Átugrás-számláló követés bekapcsolása"
},
"whatViewTracking": {
"message": "Ez a funkció követi, mely szegmenseket ugrotta át, hogy más felhasználók megtudhassák mennyit segítettek a bejelentéseik és a szavazatokkal együtt egy mértékegységként van használva, hogy ne kerülhessen spam az adatbázisba. A bővítmény küld egy üzenetet a szervernek, minden alkalommal, mikor átugrik egy szegmenst. Remélhetőleg nem sokan állítják át ezt a beállítást, hogy a számok pontosak maradhassanak. :)"
"message": "Ez a funkció követi, mely szegmenseket ugrottad át, hogy a felhasználók megtudhassák mennyit segítettek a bejelentéseik, és a szavazatokkal együtt egy mértékegységként van használva, hogy ne kerülhessen szemét az adatbázisba. A bővítmény küld egy üzenetet a szervernek, minden alkalommal, mikor átugrasz egy szegmenst. Remélhetőleg nem sokan állítják át ezt a beállítást, hogy a számok pontosak maradhassanak. :)"
},
"enableViewTrackingInPrivate": {
"message": "Átugrások számlálásának engedélyezése privát/inkognitó füleken"
},
"enableQueryByHashPrefix": {
"message": "Lekérdezés Hash előtaggal"
@@ -207,7 +219,7 @@
"message": "Szegmensek újrakeresése új videókon"
},
"whatRefetchWhenNotFound": {
"message": "Ha a videó új, és még nem találhatóak szegmensek, a bővítmény pár percenkét újra keresi őket, miközben nézi."
"message": "Ha a videó új, és még nem találhatóak szegmensek, a bővítmény pár percenkét újra keresi őket, miközben nézed."
},
"showNotice": {
"message": "Értesítés megjelenítése ismét"
@@ -215,8 +227,23 @@
"showSkipNotice": {
"message": "Jelezzen, ha egy szegmens át lett ugorva"
},
"noticeVisibilityMode0": {
"message": "Teljes méretű átugrási értesítők"
},
"noticeVisibilityMode1": {
"message": "Kis méretű átugrási értesítők Auto átugrás esetén"
},
"noticeVisibilityMode2": {
"message": "Csak kis méretű átugrási értesítők"
},
"noticeVisibilityMode3": {
"message": "Halvány átugrási értesítők Auto átugrás esetén"
},
"noticeVisibilityMode4": {
"message": "Csak halvány átugrási értesítők"
},
"longDescription": {
"message": "A SponsorBlock-al átugorhatja a szponzorokat, introkat, outrokat, feliratkozás emlékeztetőket és a YouTube videók többi idegesítő részeit. A SponsorBlock egy közösség által vezérelt böngészőbővítmény, ami lehetővé tesz bárkit arra, hogy megjelölhesse egy szponzor vagy más szegmens kezdő és végpontjait. Ha megosztja ezt az információt, mindenki más ennek a bővítménynek a birtokában egyenesen átugorja majd ezt a szponzorszegmenst. Emellett például a zene videók nem-zene részei is átugorhatóak.",
"message": "A SponsorBlockkal átugorhatja a szponzorokat, introkat, outrokat, feliratkozás emlékeztetőket és a YouTube videók többi idegesítő részeit. A SponsorBlock egy közösség által vezérelt böngészőbővítmény, ami lehetővé teszi bárkinek, hogy megjelölhesse egy szponzor vagy más szegmens kezdő és végpontjait. Amint valaki megosztja ezt az információt, mindenki más ennek a bővítménynek a birtokában egyenesen átugorja majd ezt a szponzorszegmenst. Emellett például a videóklipek nem-zene részei is átugorhatóak.",
"description": "Full description of the extension on the store pages."
},
"website": {
@@ -232,23 +259,26 @@
"description": "The first line of the message displayed after the notice was upgraded."
},
"noticeUpdate2": {
"message": "Ha még mindig nem tetszik, kattintson a ne mutassa többé gombra.",
"message": "Ha még mindig nem tetszik, kattints a ne mutassa többé gombra.",
"description": "The second line of the message displayed after the notice was upgraded."
},
"setSkipShortcut": {
"message": "Billentyű beállítása szegmens átugráshoz"
},
"setStartSponsorShortcut": {
"message": "Billentyű beállítása a szegmens kezdéséhez/befejezéséhez"
},
"setSubmitKeybind": {
"message": "Billentyű beállítása a beküldés gombhoz"
},
"keybindDescription": {
"message": "Válasszon billentyűt azzal, hogy lenyomja"
"message": "Válassz egy billentyűt azzal, hogy lenyomod"
},
"keybindDescriptionComplete": {
"message": "A funkció erre a billentyűre lett állítva: "
},
"0": {
"message": "Kapcsolati időtúllépés. Ellenőrizze az internetkapcsolatot. Ha az internet működik, a kiszolgáló valószínűleg túlterhelt vagy leállt."
"message": "Kapcsolati időtúllépés. Ellenőrizd az internetkapcsolatodat! Ha az internet működik, a kiszolgáló valószínűleg túlterhelt vagy leállt."
},
"disableSkipping": {
"message": "Átugrás bekapcsolva"
@@ -261,7 +291,7 @@
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"502": {
"message": "Úgy tűnik, hogy a szerver túlterhelt. Néhány másodperc múlva próbálkozzon újra."
"message": "Úgy tűnik, hogy a szerver túlterhelt. Próbálkozz újra néhány másodperc múlva."
},
"errorCode": {
"message": "Hibakód: "
@@ -269,9 +299,31 @@
"skip": {
"message": "Átugrás"
},
"mute": {
"message": "Némítás"
},
"skip_category": {
"message": "Átugorja ezt: {0}?"
},
"mute_category": {
"message": "{0} némítása?"
},
"skip_to_category": {
"message": "Ugrás ide: {0}?",
"description": "Used for skipping to things (Skip to Highlight)"
},
"skipped": {
"message": "{0} átugorva",
"description": "Example: Sponsor Skipped"
},
"muted": {
"message": "{0} némítva",
"description": "Example: Sponsor Muted"
},
"skipped_to_category": {
"message": "Ide ugorva: {0}",
"description": "Used for skipping to things (Skipped to Highlight)"
},
"disableAutoSkip": {
"message": "Auto átugrás kikapcsolása"
},
@@ -282,7 +334,7 @@
"message": "Hangjelzés átugráskor"
},
"audioNotificationDescription": {
"message": "A hangjelzés átugráskor lejátszik egy hangot minden alkalommal amikor átugrik egy szegmenst. Ha kikapcsolja (vagy az auto átugrás ki van kapcsolva) nem lesz hangjelzés lejátszva."
"message": "A hangjelzés átugráskor lejátszik egy hangot minden alkalommal, amikor egy szegmens átugrásra kerül. Ha kikapcsolod (vagy az auto átugrás ki van kapcsolva), nem lesz hangjelzés lejátszva."
},
"showTimeWithSkips": {
"message": "Idő megtekintése az átugrandók nélkül"
@@ -291,10 +343,10 @@
"message": "Ez az idő zárójelben jelenik meg az aktuális idő mellett a keresősáv alatt. Megmutatja a videó teljes időtartamát, levonva a szegmenseket. Beletartoznak a csak \"Megjelenítés a keresősávban\" jelöléssel ellátott szegmensek is."
},
"youHaveSkipped": {
"message": "Átugrottál "
"message": "Átugrottál: "
},
"youHaveSaved": {
"message": "Megtakarított magának "
"message": "Megtakarítottál magadnak: "
},
"minLower": {
"message": "perc"
@@ -315,16 +367,19 @@
"message": " az életükből"
},
"statusReminder": {
"message": "A szerver állapotához tekintse meg a status.sponsor.ajay.app oldalt."
"message": "A szerver állapotához tekintsd meg a status.sponsor.ajay.app oldalt."
},
"changeUserID": {
"message": "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"
},
"userIDChangeWarning": {
"message": "Figyelem: A UserID megváltoztatása végleges. Biztosan szeretné megtenni? Minden esetben készítsen biztonsági másolatot a régiről."
"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!"
},
"createdBy": {
"message": "Készítette"
@@ -335,9 +390,22 @@
"supportOtherSites": {
"message": "Harmadik fél Youtube oldalainak támogatása"
},
"supportOtherSitesDescription": {
"message": "Harmadik fél YouTube oldalainak támogatása. A támogatás bekapcsolásához el kell fogadnod az extra engedélyeket. NEM működik inkognitó módban Chrome-ban és egyéb Chromium változatokban.",
"description": "This replaces the 'supports Invidious' option because it now works on other YouTube sites such as Cloudtube"
},
"supportedSites": {
"message": "Támogatott oldalak: "
},
"optionsInfo": {
"message": "Invidious támogatás engedélyezése, autoátugrás kikapcsolása, gombok eltűntetése és több."
},
"addInvidiousInstance": {
"message": "Harmadik fél kliens példányának hozzáadása"
},
"addInvidiousInstanceDescription": {
"message": "Egyedi példány hozzáadása. Formátuma CSAK a domain legyen. Például: invidious.ajay.app"
},
"add": {
"message": "Hozzáadás"
},
@@ -348,7 +416,7 @@
"message": "Invidious példányok listájának visszaállítása"
},
"resetInvidiousInstanceAlert": {
"message": "Épp visszaállítja az Invidious példányok listát"
"message": "Az Invidious példányok listájának visszaállítására készülsz"
},
"currentInstances": {
"message": "Jelenlegi példányok:"
@@ -359,8 +427,14 @@
"minDurationDescription": {
"message": "A beállított értéknél rövidebb szegmenseket nem ugorja át és nem jeleníti meg a lejátszó."
},
"skipNoticeDuration": {
"message": "Átugrási értesítés hossza (másodpercekben):"
},
"skipNoticeDurationDescription": {
"message": "Az átugrási értesítés ennyi ideig marad a képernyőn. Manuális átugrásnál tovább is látható maradhat."
},
"shortCheck": {
"message": "A következő szegmens rövidebb, mint az Ön által beállított minimális időtartam. Ez azt jelentheti, hogy már beküldhették, csak emiatt az opció miatt Önnek figyelmen kívül marad. Biztosan beküldi?"
"message": "A következő szegmens rövidebb, mint az általad beállított minimális időtartam. Ez azt jelentheti, hogy már beküldhették, csak emiatt az opció miatt nálad nem jelenik meg. Biztosan beküldöd?"
},
"showUploadButton": {
"message": "Feltöltés gomb megjelenítése"
@@ -369,7 +443,7 @@
"message": "SponsorBlock szerver címe"
},
"customServerAddressDescription": {
"message": "A SponsorBlock által használt cím a szerverre történő hívások kezdeményezésére szolgál.\nHacsak nincs saját szerverpéldánya, ezt nem szabad megváltoztatni."
"message": "A SponsorBlock által használt cím a szerverre történő hívások kezdeményezésére szolgál.\nHacsak nincs saját szerverpéldányod, ezt nem szabad megváltoztatni."
},
"save": {
"message": "Mentés"
@@ -378,10 +452,10 @@
"message": "Visszaállítás"
},
"customAddressError": {
"message": "A cím helytelenül van formázva. Győződjön meg róla, hogy http:// vagy https:// van az elején, és nem fordított perjeleket használ."
"message": "A cím helytelenül van formázva. Győződj meg róla, hogy http:// vagy https:// van az elején, és nincsenek perjelek a végén."
},
"areYouSureReset": {
"message": "Biztosan vissza szeretné állítani?"
"message": "Biztosan vissza szeretnéd állítani?"
},
"mobileUpdateInfo": {
"message": "az m.youtube.com már támogatott"
@@ -390,16 +464,16 @@
"message": "Összes beállítás importálása / exportálása"
},
"whatExportOptions": {
"message": "Ez az össze beállítása JSON-ban. Ebbe bele tartozik a userID-ja, szóval csak ésszel ossza meg."
"message": "Ez az összes beállításod JSON formátumban. Ebbe bele tartozik a userID-d is, szóval csak ésszel oszd meg."
},
"setOptions": {
"message": "Beállítások"
"message": "Beállítások módosítása"
},
"exportOptionsWarning": {
"message": "Figyelem: Az beállítások megváltoztatása végleges, és tönkreteheti a bővítményét. Biztosan meg szeretné tenni? Készítsen egy biztonsági mentést a régi beállításairól, biztos, ami biztos."
"message": "Figyelem: A beállítások megváltoztatása végleges, és tönkreteheti a bővítményed. Biztosan meg szeretnéd tenni? Készíts egy biztonsági mentést a régi beállításaidról, biztos, ami biztos."
},
"incorrectlyFormattedOptions": {
"message": "Ez a JSON helytelenül van formázva. A beállításai nem lettek megváltoztatva."
"message": "Ez a JSON helytelenül van formázva. A beállításaid nem lettek megváltoztatva."
},
"confirmNoticeTitle": {
"message": "Szegmens beküldése"
@@ -432,38 +506,38 @@
"message": "Hiba a vágólapra másoláskor"
},
"copyDebugInformationOptions": {
"message": "Információt másol a vágólapra, amit megadhat egy fejlesztőnek, ha bejelent egy hibát, vagy egy fejlesztő kéri öntől. Az érzékeny információkat, például a felhasználói azonosítót, az engedélyezőlistán szereplő csatornákat és az egyéni szerver címét eltávolítottuk. Azonban tartalmaz olyan információkat, mint a böngésző, az operációs rendszer és a bővítmény verziószáma. "
"message": "Információt másol a vágólapra, amit megadhatsz egy fejlesztőnek, ha bejelentesz egy hibát, vagy egy fejlesztő kéri tőled. Az érzékeny információkat, például a userID-t, az engedélyezőlistán szereplő csatornákat és az egyéni szerver címét eltávolítottuk. Azonban tartalmaz olyan információkat, mint a böngésző, az operációs rendszer és a bővítmény verziószáma. "
},
"copyDebugInformationComplete": {
"message": "A hibakeresési információ másolva lett a vágólapjára. Nyugodtan távolítson el belőle olyan információkat, amiket nem szívesen osztana meg. Mentse el szöveges fájlként, vagy másolja a hibajelentésbe."
"message": "A hibakeresési információ másolva lett a vágólapjára. Nyugodtan távolíts el belőle olyan információkat, amiket nem szívesen osztanál meg. Mentsd el szöveges fájlként, vagy másold a hibajelentésbe."
},
"theKey": {
"message": "A billentyű"
"message": "A(z)"
},
"keyAlreadyUsed": {
"message": "már máshoz van állítva. Kérem, válasszon egy másik billentyűt."
"message": "billentyű már máshoz van állítva. Kérlek, válassz egy másik billentyűt."
},
"to": {
"message": "-tól eddig:",
"message": "",
"description": "Used between segments. Example: 1:20 to 1:30"
},
"category_sponsor": {
"message": "Szponzor"
},
"category_sponsor_description": {
"message": "Fizetett promóció, vagy közvetlen reklám. Nem ön-promóció vagy ingyenes ajánlat (/shoutout) emberekről/termékekről/weboldalakról amik tetszenek nekik."
"message": "Fizetett promóció, vagy közvetlen reklám. Nem önpromóció vagy ingyenes ajánlat (shoutout) emberekről/termékekről/weboldalakról amik tetszenek nekik."
},
"category_selfpromo": {
"message": "Nem fizetett/ön-promóció"
"message": "Nem fizetett/önpromóció"
},
"category_selfpromo_description": {
"message": "Hasonló a szponzorhoz, de nem fizetett vagy ön-promóció. Beletartozik a saját ruhaáru, adományok, vagy infó arról hogy kivel működtek együtt."
"message": "Hasonló a szponzorhoz, de nem fizetett, vagy önpromóció. Beletartozik a saját ruhaáru, adományok, vagy infó arról, hogy kivel működtek együtt."
},
"category_interaction": {
"message": "Emlékeztető (Feliratkozás)"
},
"category_interaction_description": {
"message": "Egy rövid emlékeztető arról, hogy likeoljunk, iratkozzunk fel, vagy kövessük a tartalom közben. Ha hosszabb szakasz, vagy egy adott témáról van, inkább a az ön-promóció alá tartozik."
"message": "Egy rövid emlékeztető arról, hogy likeoljunk, iratkozzunk fel, vagy kövessük a tartalom közben. Ha hosszabb szakasz, vagy egy adott témáról van, inkább az önpromóció alá tartozik."
},
"category_interaction_short": {
"message": "Emlékeztető"
@@ -486,9 +560,24 @@
"category_preview": {
"message": "Előzetes/Ismétlés"
},
"category_preview_description": {
"message": "Az előző részekben történtek rövid ismétlése, vagy a videó további tartalmának előzetese. Összevágott jelenetekhez, nem szóbeli összegzéshez."
},
"category_filler": {
"message": "Témától eltérő töltelék"
},
"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."
},
"category_filler_short": {
"message": "Töltelék"
},
"category_music_offtopic": {
"message": "Zene: nem-zene szegmens"
},
"category_music_offtopic_description": {
"message": "Csak videóklipekhez. Ezt csak videóklipek olyan részeihez szabad használni, amiket nem fed le a többi kategória."
},
"category_music_offtopic_short": {
"message": "Nem-Zene"
},
@@ -516,9 +605,28 @@
"disable": {
"message": "Kikapcsol"
},
"autoSkip_POI": {
"message": "Auto ugrás a kezdetéhez"
},
"manualSkip_POI": {
"message": "Kérdezzen rá a videó betöltésekor"
},
"showOverlay_POI": {
"message": "Megjelenítés a keresősávban"
},
"autoSkipOnMusicVideos": {
"message": "Minden szegmens automatikus átugrása, ha van nem-zene szegmens"
},
"muteSegments": {
"message": "Szegmensek engedélyezése, amelyek lenémítják a hangot az átugrás helyett"
},
"colorFormatIncorrect": {
"message": "A szín helytelenül van formázva. Egy 3 vagy 6 számjegyből álló hex kódnak kell lennie egy kettőskereszttel az elején."
},
"previewColor": {
"message": "Beküldetlen színe",
"description": "Referring to submissions that have not been sent to the server yet."
},
"seekBarColor": {
"message": "Keresősáv színe"
},
@@ -533,10 +641,10 @@
"message": "Bétateszt szerver bekapcsolása"
},
"whatEnableTestingServer": {
"message": "A hozzájárulásai/szavazatai NEM FOGNAK SZÁMÍTANI a fő szerveren. Csak tesztelésre használja."
"message": "A beküldéseid és szavazataid NEM FOGNAK SZÁMÍTANI a fő szerveren. Csak tesztelésre használd."
},
"testingServerWarning": {
"message": "Az összes hozzájárulás/szavazat NEM FOG SZÁMÍTANI a fő szerverhez, amíg a tesztszerverhez kapcsolódik. Győződjön meg róla, hogy ki van kapcsolva, ha valódi hozzájárulásokat szeretne megosztani."
"message": "Egyik beküldésed vagy szavazatod SEM FOG SZÁMÍTANI a fő szerverhez, amíg a tesztszerverhez kapcsolódsz. Győződj meg róla, hogy ki van kapcsolva, ha valódi beküldéseket akarsz végezni."
},
"bracketNow": {
"message": "(Most)"
@@ -545,10 +653,17 @@
"message": "További kategóriák"
},
"chooseACategory": {
"message": "Válasszon kategóriát"
"message": "Válassz egy kategóriát"
},
"enableThisCategoryFirst": {
"message": "Hogy \"{0}\" kategóriájú szegmenst küldhess be, először engedélyezned kell a beállításokban. Most átirányításra kerülsz a beállításokhoz.",
"description": "Used when submitting segments to only let them select a certain category if they have it enabled in the options."
},
"poiOnlyOneSegment": {
"message": "Figyelem: Az ilyen típusú szegmensekből egyszerre csak egy lehet aktív. Több beküldése esetén véletlenszerűen az egyik fog megjelenni."
},
"youMustSelectACategory": {
"message": "Minden szegmenshez kategóriát kell választania beküldés előtt!"
"message": "Minden szegmenshez kategóriát kell választani beküldés előtt!"
},
"bracketEnd": {
"message": "(Vége)"
@@ -559,23 +674,45 @@
"hiddenDueToDuration": {
"message": "elrejtve: túl rövid"
},
"channelDataNotFound": {
"description": "This error appears in an alert when they try to whitelist a channel and the extension is unable to determine what channel they are looking at.",
"message": "A csatorna ID még nem került betöltésre. Ha beágyazott videót használsz, próbáld meg inkább a YouTube oldalon keresztül. Ezt okozhatja még a YouTube elrendezésének változása is. Ha így gondolod, hagyj egy kommentet itt:"
},
"videoInfoFetchFailed": {
"message": "Úgy tűnik, valami korlátozza a SponsorBlock hozzáférését a videó adataihoz. További információkért látogass el ide: https://github.com/ajayyy/SponsorBlock/issues/741 (angol nyelvű)."
},
"youtubePermissionRequest": {
"message": "Úgy tűnik, a SponsorBlock nem tud csatlakozni a YouTube API-hoz. A javításhoz fogadd el a megjelenő engedélykérést, várj néhány másodpercet, majd töltsd újra az oldalt."
},
"acceptPermission": {
"message": "Engedély jóváhagyása"
},
"permissionRequestSuccess": {
"message": "Engedélykérés sikeres!"
},
"permissionRequestFailed": {
"message": "Engedélykérés sikertelen. Nem nyomtál az elutasításra?"
},
"adblockerIssueWhitelist": {
"message": "Ha nem sikerül megoldani a problémát, kapcsold ki a \"Csatorna ellenőrzése átugrás előtt\" opciót, mert a SponsorBlock nem tudja megszerezni a csatorna-információkat ehhez a videóhoz"
},
"forceChannelCheck": {
"message": "Csatorna ellenőrzése átugrás előtt"
},
"whatForceChannelCheck": {
"message": "Alapértelmezett állapotban, a bővítmény átugorhat szegmenseket, mielőtt tudná melyik csatornán van. Alapból ezért, néhány szegmens, ami a videók legelején van, engedélyezett csatornákon is átugródhat. Ennek a bekapcsolásával ez elkerülhető, de minden átugrás előtt lesz egy kis késleltetés, hiszen a channelID megszerzéséhez elkell egy kis idő. Ez a késleltetés akár észrevehetetlen is lehet, ha elég gyors a kapcsolata."
"message": "Alapértelmezett állapotban a bővítmény átugorhat szegmenseket, mielőtt tudná melyik csatornán van. Alapból ezért néhány videó eleji szegmens engedélyezett csatornákon is átugródhat. Ennek a bekapcsolásával ez elkerülhető, de minden átugrás előtt lesz egy kis késleltetés, hiszen a channelID megszerzéséhez kell egy kis idő. Ez a késleltetés akár észrevehetetlen is lehet, ha elég gyors a kapcsolatod."
},
"forceChannelCheckPopup": {
"message": "Gondolja át a \"Csatorna ellenőrzése átugrás előtt\" bekapcsolását"
"message": "Fontold meg a \"Csatorna ellenőrzése átugrás előtt\" bekapcsolását"
},
"downvoteDescription": {
"message": "Helytelen/rossz időzítés"
},
"incorrectCategory": {
"message": "Kategória módosítása"
},
"nonMusicCategoryOnMusic": {
"message": "Ez a videó zeneként van kategorizálva. Biztos benne, hogy ennek van szponzora? Ha ez valójában egy \"nem-zene szegmens\", nyissa meg a bővítmény beállításait és kapcsolja be azt a kategóriát. Ezt követően elküldheti ezt a szegmenst \"nem-zene\"-ként szponzor helyett. Amennyiben nem érti, kérjük olvassa el az irányelveket."
"message": "Ez a videó zeneként van kategorizálva. Biztos vagy benne, hogy ennek van szponzora? Ha ez valójában egy \"nem-zene szegmens\", nyisd meg a bővítmény beállításait és kapcsold be ezt a kategóriát. Ezt követően beküldheted a szegmenst \"nem-zene\"-ként szponzor helyett. Ha nem érthető, kérjük olvasd el az irányelveket."
},
"multipleSegments": {
"message": "Több szegmens"
@@ -584,14 +721,14 @@
"message": "Irányelvek"
},
"readTheGuidelines": {
"message": "Olvassa el az irányelveket!!",
"message": "Olvasd el az irányelveket!!",
"description": "Show the first time they submit or if they are \"high risk\""
},
"categoryUpdate1": {
"message": "Itt vannak a kategóriák!"
},
"categoryUpdate2": {
"message": "Nyissa meg a beállításokat, hogy átugorhasson introkat, outrokat stb."
"message": "Nyisd meg a beállításokat, hogy átugorhass introkat, outrokat stb."
},
"help": {
"message": "Segítség"
@@ -600,28 +737,113 @@
"message": "Értettem",
"description": "Used as the button to dismiss a tooltip"
},
"experiementOptOut": {
"message": "Minden további kísérlet elutasítása",
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
},
"hideForever": {
"message": "Eltüntetés örökre"
},
"warningChatInfo": {
"message": "Figyelmeztetést kaptál, és ideiglenesen nem tudsz szegmenseket beküldeni. Ez azt jelenti, hogy észrevettük, hogy néhány ártalmatlan gyakori hibát vétettél. Kérjük erősítsd meg, hogy megértetted a szabályokat és eltávolítjuk a figyelmeztetést. Ehhez a beszélgetéshez csatlakozhatsz a discord.gg/SponsorBlock vagy matrix.to/#/#sponsor:ajay.app címeken is."
},
"voteRejectedWarning": {
"message": "Szavazás visszautasítva figyelmeztetés miatt. Kattints, hogy megnyiss egy beszélgetést a tisztázásához, vagy gyere vissza később, amikor időd van rá.",
"description": "This is an integrated chat panel that will appearing allowing them to talk to the Discord/Matrix chat without leaving their browser."
},
"Donate": {
"message": "Támogatás"
},
"hideDonationLink": {
"message": "Támogatás link elrejtése"
},
"helpPageThanksForInstalling": {
"message": "Köszönjük, hogy telepítetted a SponsorBlockot."
},
"helpPageReviewOptions": {
"message": "Kérjük, nézd át az alábbi beállításokat"
},
"helpPageFeatureDisclaimer": {
"message": "Sok funkció le van tiltva alapból. Ha át akarsz ugrani bevezetőket, záróképernyőket, Invidioust használnál, stb., engedélyezd őket alább. Lehetőség van a felület különböző elemeinek elrejtésére/megjelenítésére is."
},
"helpPageHowSkippingWorks": {
"message": "Az átugrás működése"
},
"helpPageHowSkippingWorks1": {
"message": "A videók szegmensei automatikusan átugrásra kerülnek, ha szerepelnek az adatbázisban. Megnyithatod a felugró ablakot a bővítmény ikonjára kattintva, hogy megtekinthesd őket."
},
"helpPageHowSkippingWorks2": {
"message": "Ahányszor átugrasz egy szegmenst, kapni fogsz egy értesítést. Ha rossznak tűnik az időzítés, szavazd le a leszavazás gombra kattintva! A felugró ablakban is szavazhatsz."
},
"Submitting": {
"message": "Küldés"
"message": "Beküldés"
},
"helpPageSubmitting1": {
"message": "Beküldeni lehet a felugró ablakban a \"Szegmens eleje\" gombra kattintva, vagy a videó lejátszón lévő gombokkal."
},
"helpPageSubmitting2": {
"message": "A lejátszás gomb megnyomása jelezte a szegmens kezdetét és a stop gomb megnyomása jelzi a végét. Több szponzort is előkészíthetsz, mielőtt a beküldésre nyomnál. A feltöltés gombra kattintva beküldésre kerülnek a szegmensek. A szemetesre kattintva kitörlődnek."
},
"Editing": {
"message": "Szerkesztés"
},
"helpPageEditing1": {
"message": "Ha hibáztál, szerkesztheted vagy törölheted a szegmenseid, a felfele nyílra kattintást követően."
},
"helpPageTooSlow": {
"message": "Ez túl lassú"
},
"helpPageTooSlow1": {
"message": "Vannak gyorsbillentyűk is, ha használni szeretnéd őket. Nyomd meg a pontosvessző billentyűt egy szponzor szegmens elejének/végének jelzéséhez és nyomd meg a vesszőt a beküldéshez. Ezek módosíthatók a beállításokban. Ha nem QWERTY-t használsz, valószínűleg szükséges lesz megváltoztatni a billentyűket."
},
"helpPageCopyOfDatabase": {
"message": "Szerezhetek egy másolatot az adatbázisról? Mi történik, ha eltűnik a fejlesztő?"
},
"helpPageCopyOfDatabase1": {
"message": "Az adatbázis nyilvános, és elérhető itt:"
},
"helpPageCopyOfDatabase2": {
"message": "A forráskód szabadon elérhető. Tehát még ha valami történne is velem, a beküldések nem vesznek el."
},
"helpPageNews": {
"message": "Hírek és hogyan készül"
},
"helpPageSourceCode": {
"message": "Hol szerezhetem meg a forráskódot?"
},
"Credits": {
"message": "Készítők"
},
"LearnMore": {
"message": "Tudj meg többet"
},
"CopyDownvoteButtonInfo": {
"message": "Leszavazza és készít egy helyi másolatot, amit beküldhetsz"
},
"OpenCategoryWikiPage": {
"message": "A kategória wiki lapjának megnyitása."
},
"CopyAndDownvote": {
"message": "Másol és leszavaz"
},
"ContinueVoting": {
"message": "Szavazás folytatása"
},
"ChangeCategoryTooltip": {
"message": "Ez azonnal érvényes lesz a szegmenseidre"
},
"SponsorTimeEditScrollNewFeature": {
"message": "Használd egérgörgődet a szerkesztő mező fölött, hogy gyorsan módosíthasd az időt. A ctrl vagy shift billentyűk kombinációjával finomhangolhatod a változás mértékét."
},
"fillerNewFeature": {
"message": "Új! Ugorj át vicceket és a témához nem tartozó részeket a töltelék kategóriával. Engedélyezd a beállításokban"
},
"dayAbbreviation": {
"message": "n",
"description": "100d"
},
"hourAbbreviation": {
"message": "ó",
"description": "100h"
}
}

View File

@@ -563,6 +563,15 @@
"category_preview_description": {
"message": "Rekapan singkat dari episode sebelumnya, atau pratinjau tentang apa yang akan terjadi nanti di video. Dimaksudkan untuk klip bersama yang di edit, bukan ringkasan yang diucapkan."
},
"category_filler": {
"message": "Pengisi Tangensial"
},
"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"
},
"category_music_offtopic": {
"message": "Musik: Bagian Non-Musik"
},
@@ -699,6 +708,9 @@
"downvoteDescription": {
"message": "Salah, Waktu Tidak Tepat"
},
"incorrectCategory": {
"message": "Ubah Kategori"
},
"nonMusicCategoryOnMusic": {
"message": "Video ini dikategorikan sebagai musik. Apakah anda yakin ini berisi sponsor? Jika ini ternyata adalah \"Segmen non-musik\", buka pengaturan ekstensi dan aktifkan kategorinya. Lalu, anda bisa mengirim segmen ini sebagai \"Non-musik\" bukannya sponsor. Harap membaca panduan jika anda kebingungan."
},
@@ -802,13 +814,28 @@
"Credits": {
"message": "Kredit"
},
"highlightNewFeature": {
"message": "Baru! Dapat ke poin video dengan satu klik dengan kategori highlight terbaru"
},
"LearnMore": {
"message": "Pelajari Lebih Lanjut"
},
"CopyDownvoteButtonInfo": {
"message": "Menurunkan suara dan membuat salinan lokal untuk Anda kirim ulang"
},
"OpenCategoryWikiPage": {
"message": "Membuka halaman wiki kategori ini."
},
"CopyAndDownvote": {
"message": "Salin dan berikan turunkan suara"
},
"ContinueVoting": {
"message": "Lanjutkan Memvoting"
},
"ChangeCategoryTooltip": {
"message": "Ini akan menerapkan ke segmen Anda"
},
"SponsorTimeEditScrollNewFeature": {
"message": "Gunakan roda mouse ketika berada di kotak edit untuk mengatur waktu dengan cepat. Kombinasi dengan tombol [Ctrl + Shift] bisa digunakan untuk perubahan yang halus."
},
"fillerNewFeature": {
"message": "Baru! Lewati tangen dan lelucon dengan kategori pengisi. Aktifkan dalam opsi"
}
}

View File

@@ -182,6 +182,9 @@
"hideButtonsDescription": {
"message": "Nasconde i pulsanti che appaiono sul video per inviare i segmenti da nascondere."
},
"showSkipButton": {
"message": "Mantieni Salta Per Evidenziare il Pulsante Sul Lettore"
},
"showInfoButton": {
"message": "Mostra il pulsante delle informazioni sopra al video"
},
@@ -560,6 +563,15 @@
"category_preview_description": {
"message": "Riepilogo rapido degli episodi precedenti, o un'anteprima di ciò che sta arrivando più tardi nel video attuale. Inteso per clip, non per riassunti a voce."
},
"category_filler": {
"message": "Tangente di Riempimento"
},
"category_filler_description": {
"message": "Le scene tangenziali 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": "Riempimento"
},
"category_music_offtopic": {
"message": "Musica: Sezione Non-Musicale"
},
@@ -696,6 +708,9 @@
"downvoteDescription": {
"message": "Tempo Non Corretto/Errato"
},
"incorrectCategory": {
"message": "Cambia Categoria"
},
"nonMusicCategoryOnMusic": {
"message": "Questo video è classificato come musica. Sei sicuro che questo video contenga uno sponsor? Se questo è in realtà un \"Segmento Non-Musica\", apri le opzioni di questa estensione e abilita questa categoria. Quindi, è possibile inviare questo segmento come \"Non-Music\" invece di sponsor. Si prega di leggere la guida se si è confusi."
},
@@ -729,6 +744,9 @@
"hideForever": {
"message": "Nascondi per sempre"
},
"warningChatInfo": {
"message": "Hai ricevuto un avviso e non puoi inviare temporaneamente i segmenti. Questo significa che abbiamo notato che stavi commettendo degli errori comuni, non malevoli; sei pregato di confermare di comprendere le regole e rimuoveremo l'avviso. Puoi anche unirti a questa chat usando discord.gg/SponsorBlock o matrix.to/#/#sponsor:ajay.app"
},
"voteRejectedWarning": {
"message": "Voto rifiutato a causa di un ammonimento. Clicca per aprire una chat per risolverlo, oppure torna dopo quando hai tempo.",
"description": "This is an integrated chat panel that will appearing allowing them to talk to the Discord/Matrix chat without leaving their browser."
@@ -796,10 +814,28 @@
"Credits": {
"message": "Crediti"
},
"highlightNewFeature": {
"message": "Novità! Vai al punto del video con un click con la nuova categoria d'evidenziazione"
},
"LearnMore": {
"message": "Scopri di Più"
},
"CopyDownvoteButtonInfo": {
"message": "Vota negativamente e crea una copia locale per reinviare"
},
"OpenCategoryWikiPage": {
"message": "Apri la pagina della wiki di questa categoria."
},
"CopyAndDownvote": {
"message": "Copia e vota negativamente"
},
"ContinueVoting": {
"message": "Continua a Votare"
},
"ChangeCategoryTooltip": {
"message": "Questo si applicherà istantaneamente ai tuoi segmenti"
},
"SponsorTimeEditScrollNewFeature": {
"message": "Usa la rotellina del mouse passando sulla casella di modifica per regolare rapidamente il tempo. Le combinazioni dei tasti ctrl o shift sono utilizzabili per perfezionare le modifiche."
},
"fillerNewFeature": {
"message": "Novità! Salta battute e tergiversazioni con il riempitivo. Attivala nelle opzioni"
}
}

View File

@@ -563,6 +563,12 @@
"category_preview_description": {
"message": "前回の粗筋,または動画の後半内容の予告。音声による要約ではなく,編集された映像を指します。"
},
"category_filler_description": {
"message": "脱線したシーンには、動画の主な内容を理解するのに必要がない穴埋めやユーモアのみを追加してください。これには、文脈や背景の詳細を提供するセグメントを含めないでください。"
},
"category_filler_short": {
"message": "フィラー"
},
"category_music_offtopic": {
"message": "音楽: 音楽以外のセクション"
},
@@ -805,9 +811,6 @@
"Credits": {
"message": "謝辞"
},
"highlightNewFeature": {
"message": "新機能! 新しいハイライトカテゴリを使用し、動画の要点にワンクリックで\n移動できます。"
},
"LearnMore": {
"message": "さらに詳しく"
},

View File

@@ -563,6 +563,15 @@
"category_preview_description": {
"message": "이전 에피소드를 간략히 요약하거나 현재 동영상에서 나중에 나올 내용을 예고해줍니다. 음성 요약이 아니라 편집된 동영상을 통한 요약입니다."
},
"category_filler": {
"message": "쓸데없는 잡담"
},
"category_filler_description": {
"message": "쓸데없는 잡담은 동영상의 주요 콘텐츠를 이해하는 데 필요없는 시간 떼우기 장면이나 농담만을 말합니다. 맥락이나 상세한 배경지식을 설명하는 부분은 해당하지 않습니다."
},
"category_filler_short": {
"message": "잡담"
},
"category_music_offtopic": {
"message": "음악이 아닌 구간"
},
@@ -699,6 +708,9 @@
"downvoteDescription": {
"message": "잘못된 타이밍입니다"
},
"incorrectCategory": {
"message": "카테고리 변경"
},
"nonMusicCategoryOnMusic": {
"message": "이 영상은 음악 영상으로 분류됩니다. 정말로 스폰서가 있는 것이 확실한가요? 만약 음악 이외의 구간인 경우, 확장 옵션을 열어 이 카테고리를 활성화 하세요. 그리고, 이 구간을 스폰서 대신 음악이 아닌 구간으로 제출하세요. 헷갈릴 경우 가이드라인을 읽으세요."
},
@@ -802,13 +814,36 @@
"Credits": {
"message": "크레딧"
},
"highlightNewFeature": {
"message": "새 기능! 새로운 하이라이트 카테고리를 통해 동영상의 중요 지점으로 이동하세요"
},
"LearnMore": {
"message": "더보기"
},
"CopyDownvoteButtonInfo": {
"message": "비추천에 투표한 뒤 다시 제출할 수 있도록 미제출 사본을 생성합니다"
},
"OpenCategoryWikiPage": {
"message": "해당 카테고리의 위키 페이지를 엽니다."
},
"CopyAndDownvote": {
"message": "복사 및 비추천"
},
"ContinueVoting": {
"message": "계속 투표"
},
"ChangeCategoryTooltip": {
"message": "당신의 구간에 즉시 적용될 것입니다"
},
"SponsorTimeEditScrollNewFeature": {
"message": "편집 상자 위에 커서를 올린 채 스크롤하면 시간을 빠르게 조정할 수 있습니다. Ctrl이나 Shift 키를 누른 채로 스크롤하면 세밀한 조정이 가능합니다."
},
"fillerNewFeature": {
"message": "새 기능! 쓸데없는 말이나 농담 구간을 잡담 카테고리로 건너 뛰세요. 설정에서 활성화하세요"
},
"dayAbbreviation": {
"message": "일",
"description": "100d"
},
"hourAbbreviation": {
"message": "시간",
"description": "100h"
}
}

View File

@@ -563,6 +563,15 @@
"category_preview_description": {
"message": "Snelle samenvatting van vorige afleveringen of een voorbeeld van wat er later komt in de huidige video. Bedoeld voor samengevoegde clips, niet voor gesproken samenvattingen."
},
"category_filler": {
"message": "Zijspoor-opvulling"
},
"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."
},
"category_filler_short": {
"message": "Opvulling"
},
"category_music_offtopic": {
"message": "Muziek: sectie niet-muziek"
},
@@ -805,9 +814,6 @@
"Credits": {
"message": "Dank aan"
},
"highlightNewFeature": {
"message": "Nieuw! Ga met één klik naar de kern van de video met de nieuwe hoogtepunt-categorie"
},
"LearnMore": {
"message": "Meer informatie"
},
@@ -828,5 +834,16 @@
},
"SponsorTimeEditScrollNewFeature": {
"message": "Gebruik het muiswiel terwijl u over het invoerveld beweegt om de tijd snel aan te passen. Combinaties van de ctrl- of shift-toets kunnen worden gebruikt om de wijzigingen te verfijnen."
},
"fillerNewFeature": {
"message": "Nieuw! Zijsporen en grapjes overslaan met de opvulling-categorie. Inschakelen via opties"
},
"dayAbbreviation": {
"message": " d",
"description": "100d"
},
"hourAbbreviation": {
"message": " h",
"description": "100h"
}
}

View File

@@ -182,6 +182,9 @@
"hideButtonsDescription": {
"message": "Ta opcja ukrywa przyciski do zamieszczania segmentów pojawiające się na odtwarzaczu YouTube."
},
"showSkipButton": {
"message": "Kontynuuj wyświetlanie przycisku pomijania"
},
"showInfoButton": {
"message": "Pokaż przycisk informacyjny na odtwarzaczu YouTube"
},
@@ -560,6 +563,15 @@
"category_preview_description": {
"message": "Szybkie podsumowanie poprzednich odcinków lub podgląd tego, co pojawia się później w bieżącym filmie. Dotyczy zmontowanych klipów, a nie ustnych podsumowań."
},
"category_filler": {
"message": "Filtr nietematyczny"
},
"category_filler_description": {
"message": "Sceny nietematyczne dodawane tylko dla wypełniacza lub humoru, które nie są wymagane do zrozumienia głównej treści wideo. Nie powinno to obejmować segmentów zawierających informacje kontekstowe lub szczegółowe."
},
"category_filler_short": {
"message": "Wypełniacz"
},
"category_music_offtopic": {
"message": "Muzyka: Sekcja niemuzyczna"
},
@@ -696,6 +708,9 @@
"downvoteDescription": {
"message": "Niepoprawne/Zły czas"
},
"incorrectCategory": {
"message": "Zmień kategorię"
},
"nonMusicCategoryOnMusic": {
"message": "Ten film jest skategoryzowany jako muzyka. Czy masz pewność, że jest tutaj sponsor? Jeśli w rzeczywistości jest to „Sekcja Niemuzyczna”, otwórz opcje rozszerzenia i włącz tę kategorię. Wtedy będziesz w stanie zamieścić ten segment jako „Bez Muzyki” zamiast sponsora. Przeczytaj proszę wytyczne, jeśli masz wątpliwości."
},
@@ -799,10 +814,36 @@
"Credits": {
"message": "Autorzy"
},
"highlightNewFeature": {
"message": "Nowość! Przejdź do interesującej części filmu jednym kliknięciem z nową kategorią wyróżnione"
},
"LearnMore": {
"message": "Dowiedz się więcej"
},
"CopyDownvoteButtonInfo": {
"message": "Minusuje i tworzy lokalną kopię, abyś mógł przesłać poprawioną wersję"
},
"OpenCategoryWikiPage": {
"message": "Otwórz stronę wiki dla tej kategorii."
},
"CopyAndDownvote": {
"message": "Skopiuj i zminusuj"
},
"ContinueVoting": {
"message": "Kontynuuj głosowanie"
},
"ChangeCategoryTooltip": {
"message": "To natychmiastowo zostanie zastosowane do twoich segmentów"
},
"SponsorTimeEditScrollNewFeature": {
"message": "Użyj scroll'a myszy po najechaniu nad pole edycji, aby szybko dostosować czas. Kombinacje z ctrl'em i shift'em mogą być użyte, aby doszlifować zmiany."
},
"fillerNewFeature": {
"message": "Nowość! Pomiń nietematyczne sceny i żarty z kategorią wypełnienia. Włącz w opcjach"
},
"dayAbbreviation": {
"message": "d",
"description": "100d"
},
"hourAbbreviation": {
"message": "h",
"description": "100h"
}
}

View File

@@ -563,6 +563,15 @@
"category_preview_description": {
"message": "Recapitulação rápida de episódios anteriores, ou uma prévia do que está chegando mais tarde no vídeo atual. Destinado a clipes editados juntos, não para resumos falados."
},
"category_filler": {
"message": "Enrolando em tangente"
},
"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"
},
"category_music_offtopic": {
"message": "Música: Seção sem música"
},
@@ -805,9 +814,6 @@
"Credits": {
"message": "Créditos"
},
"highlightNewFeature": {
"message": "Novo! Vá direto ao ponto do vídeo com um clique com a nova categoria de Destaque"
},
"LearnMore": {
"message": "Saiba mais"
},
@@ -825,5 +831,19 @@
},
"ChangeCategoryTooltip": {
"message": "Isto irá aplicar instantaneamente seus segmentos"
},
"SponsorTimeEditScrollNewFeature": {
"message": "Use a roda do mouse enquanto mantêm o cursor sobre a caixa de edição para ajustar o tempo rapidamente. Combinações das teclas ctrl e shift podem ser usadas para refinar as mudanças."
},
"fillerNewFeature": {
"message": "Novo! Pule tangentes e piadas com a categoria filler. Ative em opções"
},
"dayAbbreviation": {
"message": "d",
"description": "100d"
},
"hourAbbreviation": {
"message": "h",
"description": "100h"
}
}

View File

@@ -563,6 +563,15 @@
"category_preview_description": {
"message": "Краткое содержание предыдущих эпизодов или предварительный просмотр того, что будет в данном видео. Предназначено для сегментов, смонтированных из кусков видео, а не для устных пересказов."
},
"category_filler": {
"message": "Заполнение отвлечёнными темами"
},
"category_filler_description": {
"message": "Сегменты, которые увеличивают длительность видео за счёт отвлечённых тем или шуток, но не требуются для понимания основного содержания. Не должно иметь сегментов, объясняющие контекст или предысторию."
},
"category_filler_short": {
"message": "Заполнитель"
},
"category_music_offtopic": {
"message": "Музыка: Сегмент без музыки"
},
@@ -805,9 +814,6 @@
"Credits": {
"message": "Авторы"
},
"highlightNewFeature": {
"message": "Новинка! Переходите сразу к главному моменту видео с помощью новой категории \"Важное\""
},
"LearnMore": {
"message": "Узнать больше"
},
@@ -828,5 +834,16 @@
},
"SponsorTimeEditScrollNewFeature": {
"message": "Наведите курсор на поле редактирования и используйте колесо мыши для быстрой настройки времени. Клавиши Ctrl или Shift могут быть использованы для точной настройки."
},
"fillerNewFeature": {
"message": "Новое! Пропускайте сегменты с отвлечёнными темами или шутками. Включите в настройках"
},
"dayAbbreviation": {
"message": "д",
"description": "100d"
},
"hourAbbreviation": {
"message": "ч",
"description": "100h"
}
}

View File

@@ -563,6 +563,15 @@
"category_preview_description": {
"message": "Rýchla rekapitulácia predošlej epizódy alebo ukážka toho, čo bude nasledovať neskôr v aktuálnom videu. Myslené pre zostrihané videá, nie pre hovorený súhrn."
},
"category_filler": {
"message": "Odbočka mimo tému"
},
"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"
},
"category_music_offtopic": {
"message": "Hudba: časť bez hudby"
},
@@ -699,6 +708,9 @@
"downvoteDescription": {
"message": "Nesprávne/Zlé načasovanie"
},
"incorrectCategory": {
"message": "Zmeniť kategóriu"
},
"nonMusicCategoryOnMusic": {
"message": "Toto video je kategorizované ako hudobné. Ste si istý, že obsahuje sponzora? Ak sa skutočne jedná o časť bez hudby, otvorte možnosti rozšírenia a povoľte túto kategóriu. Potom môžete tento segment uložiť ako kategóriu \"Bez hudby\" namiesto sponzora. Ak si neviete rady, tak si prosím prečítajte pravidlá."
},
@@ -802,13 +814,36 @@
"Credits": {
"message": "Autori"
},
"highlightNewFeature": {
"message": "Novinka! Pomocou novej kategórie \"Hlavný obsah videa\" môžete jedným klikom preskočiť \"k veci\""
},
"LearnMore": {
"message": "Zistiť viac"
},
"CopyDownvoteButtonInfo": {
"message": "Dá palec dole a vytvorí kópiu, aby ste mohli segment znova odoslať"
},
"OpenCategoryWikiPage": {
"message": "Otvoriť wiki stránku tejto kategórie."
},
"CopyAndDownvote": {
"message": "Skopírovať a dať palec dole"
},
"ContinueVoting": {
"message": "Pokračovať v hodnotení"
},
"ChangeCategoryTooltip": {
"message": "Týmto ihneď vykonáte zmeny v segmentoch"
},
"SponsorTimeEditScrollNewFeature": {
"message": "Čas môžete rýchlo zmeniť kolieskom myši, ak je kurozor nad zadávacím políčkom. Pre jemné zmeny pritom držte kláves ctrl alebo shift."
},
"fillerNewFeature": {
"message": "Nové! Preskočte odbočky mimo tému a vtipy s kategóriou filler. Zapnite si ju v nastaveniach"
},
"dayAbbreviation": {
"message": "d",
"description": "100d"
},
"hourAbbreviation": {
"message": "h",
"description": "100h"
}
}

View File

@@ -287,7 +287,7 @@
"message": "Hoppa över är inaktiverat"
},
"yourWork": {
"message": "Ditt Bidrag",
"message": "Ditt bidrag",
"description": "Used to describe the section that will show you the statistics from your submissions."
},
"502": {
@@ -563,6 +563,15 @@
"category_preview_description": {
"message": "Snabb sammanfattning av tidigare avsnitt eller en förhandsvisning av vad som kommer upp senare i den aktuella videon. Avsett för redigerade klipp, inte för sammanfattningar."
},
"category_filler": {
"message": "Ämnesavvikelse"
},
"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."
},
"category_filler_short": {
"message": "Utfyllnad"
},
"category_music_offtopic": {
"message": "Musik: Icke-musikavsnitt"
},
@@ -719,7 +728,7 @@
"message": "Kategorier finns här!"
},
"categoryUpdate2": {
"message": "Öppna alternativen för att hoppa över intros, outros, merch, osv."
"message": "Öppna alternativen för att hoppa över intros, outros, varor, osv."
},
"help": {
"message": "Hjälp"
@@ -794,7 +803,7 @@
"message": "Databasen är offentlig och finns på"
},
"helpPageCopyOfDatabase2": {
"message": "Källkoden är fritt tillgänglig. Så, även om något händer mig, är dina bidrag inte förlorade."
"message": "Källkoden är fritt tillgänglig. Så, även om något händer mig, är dina inskickningar inte förlorade."
},
"helpPageNews": {
"message": "Nyheter och hur är det gjort"
@@ -805,9 +814,6 @@
"Credits": {
"message": "Medverkande"
},
"highlightNewFeature": {
"message": "Nytt! Ta dig till stället i videon med ett klick med den nya markeringskategorin"
},
"LearnMore": {
"message": "Läs mer"
},
@@ -828,5 +834,16 @@
},
"SponsorTimeEditScrollNewFeature": {
"message": "Använd mushjulet medan du håller muspekaren över redigeringsrutan för att snabbt justera tiden. Kombinationer av CTRL- eller SKIFT-tangenten kan användas för att finjustera tiden."
},
"fillerNewFeature": {
"message": "Nytt! Hoppa över ämnesavvikelser och skämt med utfyllnadskategorin. Aktiveras i alternativen"
},
"dayAbbreviation": {
"message": "d",
"description": "100d"
},
"hourAbbreviation": {
"message": "h",
"description": "100h"
}
}

View File

@@ -182,6 +182,9 @@
"hideButtonsDescription": {
"message": "Bu YouTube oynatıcısındaki bölüm geçişlerini yolladığınız butonları saklayacaktır."
},
"showSkipButton": {
"message": "“Asıl Kısma Atla” Düğmesi Oynatıcıda Kalsın"
},
"showInfoButton": {
"message": "YouTube Oynatıcısındaki Bilgi Butonunu Göster"
},
@@ -778,9 +781,6 @@
"Credits": {
"message": "Emeği Geçenler"
},
"highlightNewFeature": {
"message": "Yeni! \"Vurgu\" kategorisi sayesinde tek tıkla videonun asıl yerine gidebilirsiniz"
},
"LearnMore": {
"message": "Dahasını Öğren"
}

View File

@@ -563,6 +563,15 @@
"category_preview_description": {
"message": "Короткий зміст попередніх епізодів або попередній перегляд того, що буде в даному відео. Призначено для сегментів, змонтованих зі шматків відео, а не для усних переказів."
},
"category_filler": {
"message": "Дотичне наповнення"
},
"category_filler_description": {
"message": "Дотичні сцени додані лише для наповнення або гумору, які не потрібні для розуміння основного вмісту відео. Це не повинно включати сегменти, що надають контекст або передісторію."
},
"category_filler_short": {
"message": "Наповнення"
},
"category_music_offtopic": {
"message": "Музика: Сегмент без музики"
},
@@ -805,13 +814,33 @@
"Credits": {
"message": "Автори"
},
"highlightNewFeature": {
"message": "Новинка! Переходьте відразу до головного моменту відео за допомогою нової категорії \"Важливе\""
},
"LearnMore": {
"message": "Дізнатися більше"
},
"CopyDownvoteButtonInfo": {
"message": "Голосує проти та створює локальну копію для повторного надсилання"
},
"OpenCategoryWikiPage": {
"message": "Відкрити вікі-сторінку цієї категорії."
},
"CopyAndDownvote": {
"message": "Скопіювати та проголосувати проти"
},
"ContinueVoting": {
"message": "Продовжити голосування"
},
"ChangeCategoryTooltip": {
"message": "Це миттєво буде застосовано до ваших сегментів"
},
"SponsorTimeEditScrollNewFeature": {
"message": "Навівши курсор на поле редагування, користуйтеся колесом прокрутки, щоб швидко відрегулювати час. Комбінації клавіш ctrl або shift можуть бути використані для точнішої настройки змін."
},
"dayAbbreviation": {
"message": "д",
"description": "100d"
},
"hourAbbreviation": {
"message": "г",
"description": "100h"
}
}

View File

@@ -23,7 +23,7 @@
"message": "đoạn quảng cáo"
},
"Segments": {
"message": "đoạn quảng cáo"
"message": "phân đoạn"
},
"upvoteButtonInfo": {
"message": "Tán thành phân đoạn này"
@@ -74,7 +74,7 @@
"message": "Video này có đoạn quảng cáo trong kho dữ liệu rồi!"
},
"sponsor404": {
"message": "Không tìm thấy đoạn nào"
"message": "Không tìm thấy phân đoạn nào"
},
"sponsorStart": {
"message": "Đoạn quảng cáo bắt đầu vào lúc này"
@@ -101,10 +101,10 @@
"message": "Có vẻ máy chủ đang không hoạt động. Hãy liên hệ nhà phát triển ngay lập tức."
},
"connectionError": {
"message": "Đã xảy ra lỗi kết nối. Mã của lỗi: "
"message": "Đã xảy ra lỗi kết nối. Mã lỗi: "
},
"clearTimes": {
"message": "Xóa đoạn quảng cáo"
"message": "Xóa các phân đoạn"
},
"openPopup": {
"message": "Mở bảng popup của SponsorBlock"
@@ -113,10 +113,10 @@
"message": "Đóng bảng popup"
},
"SubmitTimes": {
"message": "Đăng đoạn quảng cáo"
"message": "Gửi phân đoạn"
},
"submitCheck": {
"message": "Bạn có chắc muốn đăng không?"
"message": "Bạn có chắc chắn muốn gửi không?"
},
"whitelistChannel": {
"message": "Đưa kênh vào danh sách không chặn"
@@ -125,7 +125,7 @@
"message": "Loại kênh khỏi danh sách không chặn"
},
"voteOnTime": {
"message": "Bầu chọn một đoạn quảng cáo"
"message": "Bầu chọn một phân đoạn"
},
"Submissions": {
"message": "Các phân đoạn"
@@ -150,7 +150,7 @@
"message": "Xóa thời gian"
},
"submitTimesButton": {
"message": "Đăng thời gian"
"message": "Gửi thời gian"
},
"publicStats": {
"message": "Tên này được dùng tại trang thông tin công khai để thể hiện lượng đóng góp của bạn. Xem"
@@ -165,7 +165,7 @@
"message": "Sao chép Public UserID"
},
"discordAdvert": {
"message": "Hãy tham gia server Discord chính thức để đăng gợi ý và phản hồi!"
"message": "Hãy tham gia server Discord chính thức để đưa ra gợi ý và phản hồi!"
},
"hideThis": {
"message": "Đóng lại"
@@ -225,7 +225,7 @@
"message": "Hiện thông báo lại"
},
"showSkipNotice": {
"message": "Hiển thị thông báo sau khi bỏ qua quảng cáo"
"message": "Hiển thị thông báo sau khi bỏ qua phân đoạn"
},
"noticeVisibilityMode0": {
"message": "Thông báo bỏ qua với kích thước đầy đủ"
@@ -305,6 +305,13 @@
"skip_category": {
"message": "Bỏ qua {0}?"
},
"mute_category": {
"message": "Ngắt tiếng {0} chứ?"
},
"skip_to_category": {
"message": "Bỏ qua đến {0}?",
"description": "Used for skipping to things (Skip to Highlight)"
},
"skipped": {
"message": "{0} đã bỏ qua",
"description": "Example: Sponsor Skipped"
@@ -313,6 +320,10 @@
"message": "{0} đã ngắt tiếng (Muted)",
"description": "Example: Sponsor Muted"
},
"skipped_to_category": {
"message": "Đã bỏ qua đến {0}",
"description": "Used for skipping to things (Skipped to Highlight)"
},
"disableAutoSkip": {
"message": "Tắt tự động bỏ qua"
},
@@ -320,7 +331,7 @@
"message": "Bật tự động bỏ qua quảng cáo"
},
"audioNotification": {
"message": "Thông báo bằng âm thanh khi bỏ qua quảng cáo"
"message": "Thông báo bằng âm thanh khi bỏ qua"
},
"audioNotificationDescription": {
"message": "Thông báo bằng âm thanh sẽ được bật khi bỏ qua quảng cáo. Nếu tắt tính năng này (hoặc tính năng tự động bỏ qua quảng cáo bị tắt), sẽ không có âm thanh kêu."
@@ -362,7 +373,7 @@
"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 ID\" trong popup của SponsorBlock."
"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"
@@ -465,10 +476,10 @@
"message": "Tệp JSON này không được định dạng đúng cách. Tùy chọn của bạn chưa được thay đổi."
},
"confirmNoticeTitle": {
"message": "Đăng đoạn quảng cáo"
"message": "Gửi phân đoạn"
},
"submit": {
"message": "Đăng"
"message": "Gửi"
},
"cancel": {
"message": "Huỷ"
@@ -552,6 +563,15 @@
"category_preview_description": {
"message": "Tóm tắt nhanh về tập trước/tập sau trong 1 chuỗi video (series) dài (hoặc cũng có thể là tóm tắt trước về video sắp chiếu)."
},
"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ụ"
},
"category_music_offtopic": {
"message": "Nhạc: Phần không nhạc"
},
@@ -649,7 +669,7 @@
"message": "(Kết thúc)"
},
"hiddenDueToDownvote": {
"message": "đã bị ẩn: Không tán thành"
"message": "đã ẩn: hạ bình chọn"
},
"hiddenDueToDuration": {
"message": "đã bị ẩn: quá ngắn"
@@ -686,7 +706,10 @@
"message": "Cân nhắc bật chế độ \"Bắt buộc kiểm tra kênh YouTube trước khi bỏ qua phân đoạn\""
},
"downvoteDescription": {
"message": "Phân đoạn sai / không đúng"
"message": "Chỉnh thời gian sai/không đúng"
},
"incorrectCategory": {
"message": "Đổi danh mục"
},
"nonMusicCategoryOnMusic": {
"message": "Video này đã được phân loại là âm nhạc. Bạn có chắc đây là quảng cáo nhà tài trợ không? Nếu đây là phân đoạn \"Không phải nhạc\", hãy mở Cài đặt tiện ích và bật lựa chọn đó. Rồi bạn có thể đăng tải phân đoạn lên dưới danh mục \"Không phải nhạc\" thay vì \"Quảng cáo nhà tài trợ\". Hãy đọc Hướng dẫn nếu bạn vẫn còn vướng mắc"
@@ -729,7 +752,7 @@
"description": "This is an integrated chat panel that will appearing allowing them to talk to the Discord/Matrix chat without leaving their browser."
},
"Donate": {
"message": "Donate"
"message": "Ủng hộ"
},
"hideDonationLink": {
"message": "Ẩn link donate"
@@ -753,7 +776,7 @@
"message": "Bất cứ khi nào bỏ qua một phân đoạn, bạn sẽ nhận được 1 cửa sổ thông báo bât. Nếu phân đoạn có vẻ sai, hãy bỏ phiếu bằng cách nhấp vào nút downvote! Bạn cũng có thể bỏ phiếu trong cửa sổ bật lên khi nhấn vào biểu tượng tiện ích mở rộng. Và bạn có thể tắt việc hiển thị bảng thông báo này trong phần cài đặt tiện ích."
},
"Submitting": {
"message": "Gửi lên"
"message": "Đang gửi lên"
},
"helpPageSubmitting1": {
"message": "Việc gửi một phân đoạn mới có thể được thực hiện trong cửa sổ bật lên bằng cách nhấn vào nút \"Đoạn quảng cáo bắt đầu vào lúc này\" hoặc trong trình phát video bằng các nút trên thanh trình phát."
@@ -791,10 +814,36 @@
"Credits": {
"message": "Lời cảm ơn đến"
},
"highlightNewFeature": {
"message": "Tính năng mới! Đi đến đoạn quan trọng của video chỉ với 1 cú click với dạng phân đoạn Highlight"
},
"LearnMore": {
"message": "Tìm hiểu thêm"
},
"CopyDownvoteButtonInfo": {
"message": "Hạ bình chọn và tạo một bản sao cục bộ cho bạn gửi lại"
},
"OpenCategoryWikiPage": {
"message": "Mở trang wiki của danh mục này để tìm hiểu thêm."
},
"CopyAndDownvote": {
"message": "Sao chép và hạ bình chọn"
},
"ContinueVoting": {
"message": "Tiếp tục bỏ phiếu"
},
"ChangeCategoryTooltip": {
"message": "Điều này sẽ ngay lập tức áp dụng cho phân đoạn của bạn"
},
"SponsorTimeEditScrollNewFeature": {
"message": "Sử dụng con lăn chuột của bạn khi di chuột qua hộp chỉnh sửa để nhanh chóng điều chỉnh thời gian. Kết hợp phím ctrl hoặc shift có thể được sử dụng để tinh chỉnh các thay đổi."
},
"fillerNewFeature": {
"message": "Mới! Bỏ qua các phân đoạn phụ và joke với danh mục \"Cảnh phụ\". Bật trong tùy chọn"
},
"dayAbbreviation": {
"message": "d",
"description": "100d"
},
"hourAbbreviation": {
"message": "h",
"description": "100h"
}
}

View File

@@ -281,6 +281,10 @@
"skip_category": {
"message": "跳過 {0}"
},
"muted": {
"message": "{0} 已靜音",
"description": "Example: Sponsor Muted"
},
"disableAutoSkip": {
"message": "停用自動跳過"
},
@@ -336,7 +340,7 @@
"message": "警告:更改用戶 ID 是永久性的。您確定要這麼做嗎?請務必備份您的舊用戶 ID 來以防萬一。"
},
"createdBy": {
"message": "創建者"
"message": "者"
},
"keybindCurrentlySet": {
"message": "。它目前被設定為:"
@@ -665,7 +669,16 @@
"hideForever": {
"message": "永久隱藏"
},
"Submitting": {
"message": "正在提交"
},
"Editing": {
"message": "編輯中"
},
"Credits": {
"message": "致謝"
},
"LearnMore": {
"message": "了解更多"
}
}

View File

@@ -26,6 +26,11 @@
height: 100%;
}
/* Make sure settings are upfront */
.ytp-settings-menu {
z-index: 6000 !important;
}
/* Preview Bar page hacks */
.ytp-tooltip:not(.sponsorCategoryTooltipVisible) .sponsorCategoryTooltip {
@@ -101,10 +106,6 @@
transform: translateX(-100%) scale(0);
}
.playerButton.hidden {
display: none;
}
.sponsorSkipObject {
font-family: Roboto, Arial, Helvetica, sans-serif;

View File

@@ -80,8 +80,6 @@ chrome.runtime.onInstalled.addListener(function () {
const newUserID = utils.generateUserID();
//save this UUID
Config.config.userID = newUserID;
Config.config.highlightCategoryUpdate = true;
}
}, 1500);
});

View File

@@ -16,8 +16,6 @@ export interface NoticeProps {
timed?: boolean,
idSuffix?: string,
videoSpeed?: () => number,
fadeIn?: boolean,
startFaded?: boolean,
firstColumn?: React.ReactElement,
@@ -51,7 +49,6 @@ export interface NoticeState {
class NoticeComponent extends React.Component<NoticeProps, NoticeState> {
countdownInterval: NodeJS.Timeout;
intervalVideoSpeed: number;
idSuffix: string;
@@ -259,10 +256,6 @@ class NoticeComponent extends React.Component<NoticeProps, NoticeState> {
const countdownTime = Math.min(this.state.countdownTime - 1, this.state.maxCountdownTime());
if (this.props.videoSpeed && this.intervalVideoSpeed != this.props.videoSpeed()) {
this.setupInterval();
}
if (countdownTime <= 0) {
//remove this from setInterval
clearInterval(this.countdownInterval);
@@ -325,10 +318,7 @@ class NoticeComponent extends React.Component<NoticeProps, NoticeState> {
setupInterval(): void {
if (this.countdownInterval) clearInterval(this.countdownInterval);
const intervalDuration = this.props.videoSpeed ? 1000 / this.props.videoSpeed() : 1000;
this.countdownInterval = setInterval(this.countdown.bind(this), intervalDuration);
if (this.props.videoSpeed) this.intervalVideoSpeed = this.props.videoSpeed();
this.countdownInterval = setInterval(this.countdown.bind(this), 1000);
}
resetCountdown(): void {

View File

@@ -1,7 +1,7 @@
import * as React from "react";
import * as CompileConfig from "../../config.json";
import Config from "../config"
import { Category, ContentContainer, CategoryActionType, SponsorHideType, SponsorTime, NoticeVisbilityMode, ActionType } from "../types";
import { Category, ContentContainer, CategoryActionType, SponsorHideType, SponsorTime, NoticeVisbilityMode, ActionType, SponsorSourceType, SegmentUUID } from "../types";
import NoticeComponent from "./NoticeComponent";
import NoticeTextSelectionComponent from "./NoticeTextSectionComponent";
import SubmissionNotice from "../render/SubmissionNotice";
@@ -74,7 +74,6 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
amountOfPreviousNotices: number;
showInSecondSlot: boolean;
audio: HTMLAudioElement;
idSuffix: string;
@@ -96,7 +95,6 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
this.segments = props.segments;
this.autoSkip = props.autoSkip;
this.contentContainer = props.contentContainer;
this.audio = null;
const noticeTitle = getSkippingText(this.segments, this.props.autoSkip);
@@ -156,13 +154,6 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
}
}
componentDidMount(): void {
if (Config.config.audioNotificationOnSkip && this.audio) {
this.audio.volume = this.contentContainer().v.volume * 0.1;
if (this.autoSkip) this.audio.play();
}
}
render(): React.ReactElement {
const noticeStyle: React.CSSProperties = { }
if (this.contentContainer().onMobileYouTube) {
@@ -186,7 +177,6 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
|| (Config.config.noticeVisibilityMode >= NoticeVisbilityMode.FadedForAutoSkip && this.autoSkip)}
timed={true}
maxCountdownTime={this.state.maxCountdownTime}
videoSpeed={() => this.contentContainer().v?.playbackRate}
style={noticeStyle}
biggerCloseButton={this.contentContainer().onMobileYouTube}
ref={this.noticeRef}
@@ -196,10 +186,6 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
firstColumn={firstColumn}
bottomRow={[...this.getMessageBoxes(), ...this.getBottomRow() ]}
onMouseEnter={() => this.onMouseEnter() } >
{(Config.config.audioNotificationOnSkip) && <audio ref={(source) => { this.audio = source; }}>
<source src={chrome.extension.getURL("icons/beep.ogg")} type="audio/ogg"></source>
</audio>}
</NoticeComponent>
);
}
@@ -534,10 +520,10 @@ class SkipNoticeComponent extends React.Component<SkipNoticeProps, SkipNoticeSta
const sponsorVideoID = this.props.contentContainer().sponsorVideoID;
const sponsorTimesSubmitting : SponsorTime = {
segment: this.segments[index].segment,
UUID: null,
UUID: utils.generateUserID() as SegmentUUID,
category: this.segments[index].category,
actionType: this.segments[index].actionType,
source: 2
source: SponsorSourceType.Local
};
const segmentTimes = Config.config.segmentTimes.get(sponsorVideoID) || [];

View File

@@ -38,6 +38,9 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
configUpdateListener: () => void;
previousSkipType: CategoryActionType;
timeBeforeChangingToPOI: number; // Initialized when first selecting POI
constructor(props: SponsorTimeEditProps) {
super(props);
@@ -46,6 +49,7 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
this.idSuffix = this.props.idSuffix;
this.previousSkipType = CategoryActionType.Skippable;
this.state = {
editing: false,
sponsorTimeEdits: [null, null],
@@ -274,6 +278,7 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
}
sponsorTimeEdits[index] = utils.getFormattedTime(timeAsNumber, true);
if (getCategoryActionType(sponsorTime.category) === CategoryActionType.POI) sponsorTimeEdits[1] = sponsorTimeEdits[0];
this.setState({sponsorTimeEdits});
this.saveEditTimes();
}
@@ -287,11 +292,13 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
referenceNode: element.parentElement,
prependElement: element,
timeout: 15,
bottomOffset: 75 + "px",
bottomOffset: 0 + "px",
leftOffset: -318 + "px",
backgroundColor: "rgba(28, 28, 28, 1.0)",
htmlId: "sponsorTimesContainer" + this.idSuffix,
buttonFunction: () => {Config.config.scrollToEditTimeUpdate = true}
buttonFunction: () => { Config.config.scrollToEditTimeUpdate = true },
fontSize: "14px",
maxHeight: "200px"
});
}
}
@@ -338,6 +345,7 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
}
if (getCategoryActionType(event.target.value as Category) === CategoryActionType.POI) {
if (this.previousSkipType === CategoryActionType.Skippable) this.timeBeforeChangingToPOI = utils.getFormattedTimeToSeconds(this.state.sponsorTimeEdits[1]);
this.setTimeTo(1, null);
this.props.contentContainer().updateEditButtonsOnPlayer();
@@ -345,8 +353,11 @@ class SponsorTimeEditComponent extends React.Component<SponsorTimeEditProps, Spo
.some((segment, i) => segment.category === event.target.value && i !== this.props.index)) {
alert(chrome.i18n.getMessage("poiOnlyOneSegment"));
}
} else if (getCategoryActionType(event.target.value as Category) === CategoryActionType.Skippable && this.previousSkipType === CategoryActionType.POI) {
this.setTimeTo(1, this.timeBeforeChangingToPOI);
}
this.previousSkipType = getCategoryActionType(event.target.value as Category);
this.saveEditTimes();
}

View File

@@ -73,7 +73,7 @@ class SubmissionNoticeComponent extends React.Component<SubmissionNoticeProps, S
idSuffix={this.state.idSuffix}
ref={this.noticeRef}
closeListener={this.cancel.bind(this)}
zIndex={50000}>
zIndex={5000}>
{/* Text Boxes */}
{this.getMessageBoxes()}
@@ -123,7 +123,7 @@ class SubmissionNoticeComponent extends React.Component<SubmissionNoticeProps, S
const timeRef = React.createRef<SponsorTimeEditComponent>();
elements.push(
<SponsorTimeEditComponent key={i}
<SponsorTimeEditComponent key={sponsorTimes[i].UUID}
idSuffix={this.state.idSuffix + i}
index={i}
contentContainer={this.props.contentContainer}

View File

@@ -1,4 +1,5 @@
import * as CompileConfig from "../config.json";
import * as invidiousList from "../ci/invidiouslist.json";
import { Category, CategorySelection, CategorySkipOption, NoticeVisbilityMode, PreviewBarOption, SponsorTime, StorageChangesObject, UnEncodedSegmentTimes as UnencodedSegmentTimes } from "./types";
interface SBConfig {
@@ -45,7 +46,6 @@ interface SBConfig {
showDonationLink: boolean,
autoHideInfoButton: boolean,
autoSkipOnMusicVideos: boolean,
highlightCategoryUpdate: boolean,
colorPalette: {
red: string,
white: string,
@@ -75,6 +75,8 @@ interface SBConfig {
"preview-music_offtopic": PreviewBarOption,
"poi_highlight": PreviewBarOption,
"preview-poi_highlight": PreviewBarOption,
"filler": PreviewBarOption,
"preview-filler": PreviewBarOption,
}
}
@@ -186,7 +188,7 @@ const Config: SBObject = {
hideSkipButtonPlayerControls: false,
hideDiscordLaunches: 0,
hideDiscordLink: false,
invidiousInstances: ["invidious.snopyta.org"],
invidiousInstances: ["invidious.snopyta.org"], // leave as default
supportInvidious: false,
serverAddress: CompileConfig.serverAddress,
minDuration: 0,
@@ -200,12 +202,14 @@ const Config: SBObject = {
showDonationLink: true,
autoHideInfoButton: true,
autoSkipOnMusicVideos: false,
highlightCategoryUpdate: false, // TODO: Remove this once update is done
scrollToEditTimeUpdate: false, // false means the tooltip will be shown
categorySelections: [{
name: "sponsor" as Category,
option: CategorySkipOption.AutoSkip
}, {
name: "poi_highlight" as Category,
option: CategorySkipOption.ManualSkip
}],
colorPalette: {
@@ -283,6 +287,14 @@ const Config: SBObject = {
"preview-poi_highlight": {
color: "#9b044c",
opacity: "0.7"
},
"filler": {
color: "#7300FF",
opacity: "0.9"
},
"preview-filler": {
color: "#2E0066",
opacity: "0.7"
}
}
},
@@ -379,16 +391,14 @@ function fetchConfig(): Promise<void> {
}
function migrateOldFormats(config: SBConfig) {
// Should eventually move into defaults
if (!config["highlightCategoryAdded"] && !config.categorySelections.some((s) => s.name === "poi_highlight")) {
config["highlightCategoryAdded"] = true;
config.categorySelections.push({
name: "poi_highlight" as Category,
option: CategorySkipOption.ManualSkip
});
config.categorySelections = config.categorySelections;
if (config["fillerUpdate"] !== undefined) {
chrome.storage.sync.remove("fillerUpdate");
}
if (config["highlightCategoryAdded"] !== undefined) {
chrome.storage.sync.remove("highlightCategoryAdded");
}
if (config["highlightCategoryUpdate"] !== undefined) {
chrome.storage.sync.remove("highlightCategoryUpdate");
}
if (config["askAboutUnlistedVideos"]) {
@@ -424,6 +434,11 @@ function migrateOldFormats(config: SBConfig) {
if (config["previousVideoID"] !== undefined) {
chrome.storage.sync.remove("previousVideoID");
}
// populate invidiousInstances with new instances if 3p support is **DISABLED**
if (!config["supportInvidious"] && config["invidiousInstances"].length !== invidiousList.length) {
config["invidiousInstances"] = invidiousList;
}
}
async function setupConfig() {

View File

@@ -31,7 +31,6 @@ let sponsorVideoID: VideoID = null;
// List of open skip notices
const skipNotices: SkipNotice[] = [];
let activeSkipKeybindElement: ToggleSkippable = null;
let lastPOISkip = 0;
// JSON video info
let videoInfo: VideoInfo = null;
@@ -397,13 +396,6 @@ function createPreviewBar(): void {
function durationChangeListener(): void {
updateAdFlag();
updatePreviewBar();
if (sponsorTimes) sponsorTimes = sponsorTimes.filter(segmentDurationFilter);
}
function segmentDurationFilter(segment: SponsorTime): boolean {
return segment.videoDuration === 0 || !video?.duration
|| switchingVideos || Math.abs(video.duration - segment.videoDuration) < 2;
}
function cancelSponsorSchedule(): void {
@@ -612,24 +604,6 @@ function setupVideoListeners() {
startSponsorSchedule();
}
if (!Config.config.dontShowNotice) {
const currentPoiSegment = sponsorTimes?.find((segment) =>
getCategoryActionType(segment.category) === CategoryActionType.POI &&
video.currentTime - segment.segment[0] > 0 &&
video.currentTime - segment.segment[0] < previewBar.getMinimumSize(true));
if (currentPoiSegment && lastPOISkip < Date.now() - 3000
&& !skipNotices.some((notice) => notice.segments.some((s) => s.UUID === currentPoiSegment.UUID))) {
lastPOISkip = Date.now();
skipToTime({
v: video,
skipTime: currentPoiSegment.segment,
skippingSegments: [currentPoiSegment],
openNotice: true,
forceAutoSkip: true
});
}
}
});
video.addEventListener('ratechange', () => startSponsorSchedule());
// Used by videospeed extension (https://github.com/igrigorik/videospeed/pull/740)
@@ -706,8 +680,7 @@ async function sponsorsLookup(id: string, keepOldSubmissions = true) {
if (response?.ok) {
const recievedSegments: SponsorTime[] = JSON.parse(response.responseText)
?.filter((video) => video.videoID === id)
?.map((video) => video.segments)[0]
?.filter(segmentDurationFilter);
?.map((video) => video.segments)[0];
if (!recievedSegments || !recievedSegments.length) {
// return if no video found
retryFetch();
@@ -1232,6 +1205,9 @@ function skipToTime({v, skipTime, skippingSegments, openNotice, forceAutoSkip, u
// for some reason you also can't skip to 1 second before the end
if (v.loop && v.duration > 1 && skipTime[1] >= v.duration - 1) {
v.currentTime = 0;
} else if (navigator.vendor === "Apple Computer, Inc." && v.duration > 1 && skipTime[1] >= v.duration) {
// MacOS will loop otherwise #1027
v.currentTime = v.duration - 0.001;
} else {
v.currentTime = skipTime[1];
}
@@ -1246,27 +1222,20 @@ function skipToTime({v, skipTime, skippingSegments, openNotice, forceAutoSkip, u
break;
}
}
}
if (autoSkip && Config.config.audioNotificationOnSkip) {
const beep = new Audio(chrome.runtime.getURL("icons/beep.ogg"));
beep.volume = video.volume * 0.1;
beep.play();
}
if (!autoSkip
&& skippingSegments.length === 1
&& getCategoryActionType(skippingSegments[0].category) === CategoryActionType.POI) {
skipButtonControlBar.enable(skippingSegments[0], !Config.config.highlightCategoryUpdate ? 15 : 0);
skipButtonControlBar.enable(skippingSegments[0]);
if (onMobileYouTube) skipButtonControlBar.setShowKeybindHint(false);
if (!Config.config.highlightCategoryUpdate) {
new Tooltip({
text: chrome.i18n.getMessage("highlightNewFeature"),
link: "https://blog.ajay.app/highlight-sponsorblock",
referenceNode: skipButtonControlBar.getElement().parentElement,
prependElement: skipButtonControlBar.getElement(),
timeout: 15
});
Config.config.highlightCategoryUpdate = true;
}
activeSkipKeybindElement?.setShowKeybindHint(false);
activeSkipKeybindElement = skipButtonControlBar;
} else {
@@ -1460,10 +1429,11 @@ function getRealCurrentTime(): number {
}
function startOrEndTimingNewSegment() {
const roundedTime = Math.round((getRealCurrentTime() + Number.EPSILON) * 1000) / 1000;
if (!isSegmentCreationInProgress()) {
sponsorTimesSubmitting.push({
segment: [getRealCurrentTime()],
UUID: null,
segment: [roundedTime],
UUID: utils.generateUserID() as SegmentUUID,
category: Config.config.defaultCategory,
actionType: ActionType.Skip,
source: SponsorSourceType.Local
@@ -1472,7 +1442,7 @@ function startOrEndTimingNewSegment() {
// Finish creating the new segment
const existingSegment = getIncompleteSegment();
const existingTime = existingSegment.segment[0];
const currentTime = getRealCurrentTime();
const currentTime = roundedTime;
// Swap timestamps if the user put the segment end before the start
existingSegment.segment = [Math.min(existingTime, currentTime), Math.max(existingTime, currentTime)];
@@ -1669,7 +1639,7 @@ function vote(type: number, UUID: SegmentUUID, category?: Category, skipNotice?:
const sponsorIndex = utils.getSponsorIndexFromUUID(sponsorTimes, UUID);
// Don't vote for preview sponsors
if (sponsorIndex == -1 || sponsorTimes[sponsorIndex].UUID === null) return;
if (sponsorIndex == -1 || sponsorTimes[sponsorIndex].source === SponsorSourceType.Local) return;
// See if the local time saved count and skip count should be saved
if (type === 0 && sponsorSkipped[sponsorIndex] || type === 1 && !sponsorSkipped[sponsorIndex]) {
@@ -1799,6 +1769,7 @@ async function sendSubmitMessage() {
if (recievedNewSegments?.length === newSegments.length) {
for (let i = 0; i < recievedNewSegments.length; i++) {
newSegments[i].UUID = recievedNewSegments[i].UUID;
newSegments[i].source = SponsorSourceType.Server;
}
}
} catch(e) {} // eslint-disable-line no-empty

View File

@@ -197,10 +197,10 @@ class PreviewBar {
if (!this.onMobileYouTube) bar.style.opacity = Config.config.barTypes[fullCategoryName]?.opacity;
bar.style.position = "absolute";
const duration = segment[1] - segment[0];
if (segment[1] - segment[0] > 0) bar.style.width = this.timeToPercentage(segment[1] - segment[0]);
const duration = Math.min(segment[1], this.videoDuration) - segment[0];
if (duration > 0) bar.style.width = this.timeToPercentage(duration);
const time = segment[1] ? Math.min(this.videoDuration - Math.max(0, duration), segment[0]) : segment[0];
const time = segment[1] ? Math.min(this.videoDuration, segment[0]) : segment[0];
bar.style.left = this.timeToPercentage(time);
return bar;

View File

@@ -79,7 +79,7 @@ export class SkipButtonControlBar {
mountingContainer.insertBefore(this.container, this.chapterText);
}
if (Config.config.autoHideInfoButton && !this.onMobileYouTube) {
if (!this.onMobileYouTube) {
utils.setupAutoHideAnimation(this.skipIcon, mountingContainer, false, false);
} else {
const { hide, show } = utils.setupCustomHideAnimation(this.skipIcon, mountingContainer, false, false);

View File

@@ -1,5 +1,6 @@
import Config from "./config";
import * as CompileConfig from "../config.json";
import * as invidiousList from "../ci/invidiouslist.json";
// Make the config public for debugging purposes
window.SB = Config;
@@ -297,8 +298,8 @@ function invidiousInstanceAddInit(element: HTMLElement, option: string) {
const resetButton = element.querySelector(".invidious-instance-reset");
resetButton.addEventListener("click", function() {
if (confirm(chrome.i18n.getMessage("resetInvidiousInstanceAlert"))) {
// Set to a clone of the default
Config.config[option] = Config.defaults[option].slice(0);
// Set to CI populated list
Config.config[option] = invidiousList;
}
});
}
@@ -512,15 +513,17 @@ function activatePrivateTextChange(element: HTMLElement) {
// See if anything extra must be done
switch (option) {
case "userID":
utils.asyncRequestToServer("GET", "/api/userInfo", {
userID: Config.config[option],
values: ["warnings", "banned"]
}).then((result) => {
const userInfo = JSON.parse(result.responseText);
if (userInfo.warnings > 0 || userInfo.banned) {
setButton.classList.add("hidden");
}
});
if (Config.config[option]) {
utils.asyncRequestToServer("GET", "/api/userInfo", {
userID: Config.config[option],
values: ["warnings", "banned"]
}).then((result) => {
const userInfo = JSON.parse(result.responseText);
if (userInfo.warnings > 0 || userInfo.banned) {
setButton.classList.add("hidden");
}
});
}
break;
}

View File

@@ -731,16 +731,17 @@ async function runThePopup(messageListener?: MessageListener): Promise<void> {
}
/**
* Converts time in hours to 5h 25.1
* Converts time in minutes to 2d 5h 25.1
* If less than 1 hour, just returns minutes
*
* @param {float} seconds
* @param {float} minutes
* @returns {string}
*/
function getFormattedHours(minutes) {
minutes = Math.round(minutes * 10) / 10
const hours = Math.floor(minutes / 60);
return (hours > 0 ? hours + "h " : "") + (minutes % 60).toFixed(1);
minutes = Math.round(minutes * 10) / 10;
const days = Math.floor(minutes / 3600);
const hours = Math.floor(minutes / 60) % 24;
return (days > 0 ? days + chrome.i18n.getMessage("dayAbbreviation") + " " : "") + (hours > 0 ? hours + chrome.i18n.getMessage("hourAbbreviation") + " " : "") + (minutes % 60).toFixed(1);
}
//end of function

View File

@@ -13,6 +13,7 @@ export interface RectangleTooltipProps {
maxHeight?: string,
maxWidth?: string,
backgroundColor?: string,
fontSize?: string,
buttonFunction?: () => void;
}
@@ -29,6 +30,7 @@ export class RectangleTooltip {
props.maxWidth ??= "300px";
props.backgroundColor ??= "rgba(28, 28, 28, 0.7)";
this.text = props.text;
props.fontSize ??= "10px";
this.container = document.createElement('div');
props.htmlId ??= props.text;
@@ -51,7 +53,8 @@ export class RectangleTooltip {
left: props.leftOffset,
maxHeight: props.maxHeight,
maxWidth: props.maxWidth,
backgroundColor: props.backgroundColor}}
backgroundColor: props.backgroundColor,
fontSize: props.fontSize}}
className="sponsorBlockRectangleTooltip" >
<div>
<img className="sponsorSkipLogo sponsorSkipObject"

View File

@@ -26,7 +26,10 @@ export default class Utils {
/** Function that can be used to wait for a condition before returning. */
async wait<T>(condition: () => T | false, timeout = 5000, check = 100): Promise<T> {
return await new Promise((resolve, reject) => {
setTimeout(() => reject("TIMEOUT"), timeout);
setTimeout(() => {
clearInterval(interval);
reject("TIMEOUT");
}, timeout);
const intervalCheck = () => {
const result = condition();