diff --git a/public/_locales/en/messages.json b/public/_locales/en/messages.json index 726c35bd..24f9e632 100644 --- a/public/_locales/en/messages.json +++ b/public/_locales/en/messages.json @@ -730,5 +730,62 @@ }, "hideDonationLink": { "message": "Hide Donation Link" + }, + "helpPageThanksForInstalling": { + "message": "Thanks for installing SponsorBlock." + }, + "helpPageReviewOptions": { + "message": "Please review the options below" + }, + "helpPageFeatureDisclaimer": { + "message": "Many features are disabled by default. If you want to skip intros, outros, use Invidious, etc., enable them below. You can also hide/show UI elements." + }, + "helpPageHowSkippingWorks": { + "message": "How skipping works" + }, + "helpPageHowSkippingWorks1": { + "message": "Video segments will automatically be skipped if they are found in the database. You can open the popup by clicking the extension icon to get a preview of what they are." + }, + "helpPageHowSkippingWorks2": { + "message": "Whenever you skip a segment, you will get notice. If the timing seems wrong vote down by clicking downvote! You can also vote in the popup." + }, + "Submitting": { + "message": "Submitting" + }, + "helpPageSubmitting1": { + "message": "Submitting can either be done in the popup by hitting the \"Segment Starts Now\" button or in the video player with the buttons on the player." + }, + "helpPageSubmitting2": { + "message": "Clicking the play button indicated the start of a segment and clicking the stop icon indicates the end. You can prepare multiple sponsors before hitting submit. Clicking the upload button will submit. Clicking the garbage can will delete." + }, + "Editing": { + "message": "Editing" + }, + "helpPageEditing1": { + "message": "If you messed up, you can edit or delete your segments after clicking the up arrow button." + }, + "helpPageTooSlow": { + "message": "This is too slow" + }, + "helpPageTooSlow1": { + "message": "There are hotkeys if you want to use them. Press the semicolon key to indicate the start/end of a sponsor segment and click the apostrophe to submit. These can be changed in the options. If you don't use QWERTY, you should probably change the keybinding." + }, + "helpPageCopyOfDatabase": { + "message": "Can I get a copy of the Database? What happens if you disappear?" + }, + "helpPageCopyOfDatabase1": { + "message": "The database is public and available at" + }, + "helpPageCopyOfDatabase2": { + "message": "The source code is freely available. So, even if something happens to me, your submissions are not lost." + }, + "helpPageNews": { + "message": "News and how it is made" + }, + "helpPageSourceCode": { + "message": "Where can I get the source code?" + }, + "Credits": { + "message": "Credits" } } diff --git a/public/help/images/popup.png b/public/help/images/popup.png new file mode 100644 index 00000000..683ad183 Binary files /dev/null and b/public/help/images/popup.png differ diff --git a/public/help/images/voting on notice.gif b/public/help/images/voting on notice.gif new file mode 100644 index 00000000..f7190201 Binary files /dev/null and b/public/help/images/voting on notice.gif differ diff --git a/public/help/index_en.html b/public/help/index.html similarity index 70% rename from public/help/index_en.html rename to public/help/index.html index 9606649f..31673ee8 100644 --- a/public/help/index_en.html +++ b/public/help/index.html @@ -17,7 +17,7 @@ SponsorBlock -
+

@@ -26,85 +26,83 @@

- Thanks for installing SponsorBlock. By using this extension, you agree to the Privacy Policy and Terms of Use. + __MSG_helpPageThanksForInstalling__ By using this extension, you agree to the Privacy Policy and Terms of Use.

Come contribute, make some suggestions and help out on Discord or on Matrix.

-

Please review the options below

+

__MSG_helpPageReviewOptions__

- Many features are disabled by default. If you want to skip intros, outros, use Invidious, etc., enable them below. - You can also hide/show UI elements. + __MSG_helpPageFeatureDisclaimer__

-

How skipping works

+

__MSG_helpPageHowSkippingWorks__

- + - Video segments will automatically be skipped if they are found in the database. You can open the popup by clicking the extension icon to get a preview of what they are. + __MSG_helpPageHowSkippingWorks1__

- Whenever you skip a segment, you will get notice. If the timing seems wrong vote down by clicking downvote! You can also vote in the popup. + __MSG_helpPageHowSkippingWorks2__

-
+
-

Submitting

+

__MSG_Submitting__

- Submitting can either be done in the popup by hitting the "Segment Starts Now" button or in the video player with the buttons on the player. + __MSG_helpPageSubmitting1__

- Clicking the play button indicated the start of a segment and clicking the stop icon indicates the end. You can prepare multiple sponsors before hitting submit. Clicking the upload button will submit. Clicking the garbage can will delete. + __MSG_helpPageSubmitting2__

-

Editing

+

__MSG_Editing__

- + - If you messed up, you can edit or delete your segments in the popup or in the info menu (by hitting the info icon). + __MSG_helpPageEditing1__

-

This is too slow

+

__MSG_helpPageTooSlow__

- There are hotkeys if you want to use them. Press the semicolon key to indicate the start/end of a sponsor segment and click the apostrophe to submit. - These can be changed in the options. If you don't use QWERTY, you should probably change the keybinding. + __MSG_helpPageTooSlow1__

-

Can I get a copy of the Database? What happens if you disappear?

+

__MSG_helpPageCopyOfDatabase__

- The database is public and available at https://sponsor.ajay.app/database. The source code is freely available. So, even if something happens to me, your submissions are not lost. + __MSG_helpPageCopyOfDatabase1__ https://sponsor.ajay.app/database. __MSG_helpPageCopyOfDatabase2__

-

News and how it is made

+

__MSG_helpPageNews__

See https://sponsor.ajay.app/news.

-

Where can I get the source code?

+

__MSG_helpPageSourceCode__

Client:

@@ -114,7 +112,7 @@ -

Credits

+

__MSG_Credits__

Thanks to all SponsorBlock contributors, diff --git a/src/background.ts b/src/background.ts index 70519945..2d5ffe8e 100644 --- a/src/background.ts +++ b/src/background.ts @@ -35,7 +35,7 @@ chrome.runtime.onMessage.addListener(function (request, sender, callback) { chrome.tabs.create({url: chrome.runtime.getURL('options/options.html' + (request.hash ? '#' + request.hash : ''))}); return; case "openHelp": - chrome.tabs.create({url: chrome.runtime.getURL('help/index_en.html')}); + chrome.tabs.create({url: chrome.runtime.getURL('help/index.html')}); return; case "openPage": chrome.tabs.create({url: chrome.runtime.getURL(request.url)}); @@ -74,7 +74,7 @@ chrome.runtime.onInstalled.addListener(function () { // If there is no userID, then it is the first install. if (!userID){ //open up the install page - chrome.tabs.create({url: chrome.extension.getURL("/help/index_en.html")}); + chrome.tabs.create({url: chrome.extension.getURL("/help/index.html")}); //generate a userID const newUserID = utils.generateUserID(); diff --git a/src/components/CategorySkipOptionsComponent.tsx b/src/components/CategorySkipOptionsComponent.tsx index 1095f5fe..f7baad46 100644 --- a/src/components/CategorySkipOptionsComponent.tsx +++ b/src/components/CategorySkipOptionsComponent.tsx @@ -151,8 +151,6 @@ class CategorySkipOptionsComponent extends React.Component diff --git a/src/help.ts b/src/help.ts index 97f9c444..80ac974a 100644 --- a/src/help.ts +++ b/src/help.ts @@ -1,8 +1,16 @@ +import Config from "./config"; import { showDonationLink } from "./utils/configUtils"; +import Utils from "./utils"; +const utils = new Utils(); + window.addEventListener('DOMContentLoaded', init); async function init() { + utils.localizeHtmlPage(); + + await utils.wait(() => Config.config !== null); + if (!showDonationLink()) { document.getElementById("sbDonate").style.display = "none"; } diff --git a/src/utils.ts b/src/utils.ts index a40dd5f9..983c1c1b 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -261,7 +261,6 @@ export default class Utils { const objects = document.getElementsByClassName("sponsorBlockPageBody")[0].children; for (let j = 0; j < objects.length; j++) { const obj = objects[j]; - const localizedMessage = this.getLocalizedMessage(obj.innerHTML.toString()); if (localizedMessage) obj.innerHTML = localizedMessage; }