Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Anarios/return-youtube-dislike.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnarios <selivano.d@gmail.com>2022-08-24 17:24:32 +0300
committerAnarios <selivano.d@gmail.com>2022-08-24 17:24:32 +0300
commit7f21dc7a83a86676fcf003dbe1006108c69db3d4 (patch)
tree0f65cb2ac360146b18c8005d4f9f2eaefce231d9
parentcd787233919e671bb5ba11607f40440967000068 (diff)
parent6277868ac7d8749df8c8305979dfcb72e2394264 (diff)
Merge branch 'main' into feature/advanced-dislike-statsfeature/advanced-dislike-stats
-rw-r--r--Extensions/combined/manifest-chrome.json4
-rw-r--r--Extensions/combined/manifest-firefox.json16
-rw-r--r--Extensions/combined/src/bar.js6
-rw-r--r--Extensions/combined/src/buttons.js23
-rw-r--r--Extensions/combined/src/events.js11
-rw-r--r--Extensions/combined/src/state.js22
-rw-r--r--Website/_locales/ja.ts210
-rw-r--r--Website/pages/index.vue12
8 files changed, 167 insertions, 137 deletions
diff --git a/Extensions/combined/manifest-chrome.json b/Extensions/combined/manifest-chrome.json
index da2e082..95fe7e9 100644
--- a/Extensions/combined/manifest-chrome.json
+++ b/Extensions/combined/manifest-chrome.json
@@ -1,8 +1,8 @@
{
- "name": "__MSG_extensionNameBeta__",
+ "name": "__MSG_extensionName__",
"description": "__MSG_extensionDesc__",
"default_locale": "en",
- "version": "3.0.0.2",
+ "version": "3.0.0.4",
"manifest_version": 3,
"background": {
"service_worker": "ryd.background.js"
diff --git a/Extensions/combined/manifest-firefox.json b/Extensions/combined/manifest-firefox.json
index 4f7ba04..efb42a4 100644
--- a/Extensions/combined/manifest-firefox.json
+++ b/Extensions/combined/manifest-firefox.json
@@ -2,7 +2,7 @@
"name": "__MSG_extensionName__",
"description": "__MSG_extensionDesc__",
"default_locale": "en",
- "version": "3.0.0.3",
+ "version": "3.0.0.5",
"manifest_version": 2,
"background": {
"scripts": ["ryd.background.js"]
@@ -28,12 +28,12 @@
"css": ["content-style.css"],
"js": ["ryd.content-script.js"]
}
- ],
+ ]
// uncomment this section for local storage to work in firefox locally
- "browser_specific_settings": {
- "gecko": {
- "id": "addon@example.com",
- "strict_min_version": "42.0"
- }
- }
+// "browser_specific_settings": {
+// "gecko": {
+// "id": "addon@example.com",
+// "strict_min_version": "42.0"
+// }
+// }
}
diff --git a/Extensions/combined/src/bar.js b/Extensions/combined/src/bar.js
index 55f21ed..930f0f5 100644
--- a/Extensions/combined/src/bar.js
+++ b/Extensions/combined/src/bar.js
@@ -1,4 +1,4 @@
-import { getButtons } from "./buttons";
+import { getButtons, getDislikeButton, getLikeButton } from './buttons';
import {
extConfig,
isMobile,
@@ -13,8 +13,8 @@ function createRateBar(likes, dislikes) {
let rateBar = document.getElementById("ryd-bar-container");
const widthPx =
- getButtons().children[0].clientWidth +
- getButtons().children[1].clientWidth +
+ getLikeButton().clientWidth +
+ getDislikeButton().clientWidth +
8;
const widthPercent =
diff --git a/Extensions/combined/src/buttons.js b/Extensions/combined/src/buttons.js
index 3b8cab4..6b344d9 100644
--- a/Extensions/combined/src/buttons.js
+++ b/Extensions/combined/src/buttons.js
@@ -33,7 +33,10 @@ function getButtons() {
}
function getLikeButton() {
- return getButtons().children[0];
+ return getButtons().children[0].tagName ===
+ "YTD-SEGMENTED-LIKE-DISLIKE-BUTTON-RENDERER"
+ ? getButtons().children[0].children[0]
+ : getButtons().children[0];
}
function getLikeTextContainer() {
@@ -44,14 +47,24 @@ function getLikeTextContainer() {
}
function getDislikeButton() {
- return getButtons().children[1];
+ return getButtons().children[0].tagName ===
+ "YTD-SEGMENTED-LIKE-DISLIKE-BUTTON-RENDERER"
+ ? getButtons().children[0].children[1]
+ : getButtons().children[1];
}
function getDislikeTextContainer() {
- return (
+ let result =
getDislikeButton().querySelector("#text") ??
- getDislikeButton().getElementsByTagName("yt-formatted-string")[0]
- );
+ getDislikeButton().getElementsByTagName("yt-formatted-string")[0];
+ if (result == null) {
+ let textSpan = document.createElement("span");
+ textSpan.id = "text";
+ getDislikeButton().querySelector("button").appendChild(textSpan);
+ getDislikeButton().querySelector("button").style.width = "auto";
+ result = getDislikeButton().querySelector("#text");
+ }
+ return result;
}
function checkForSignInButton() {
diff --git a/Extensions/combined/src/events.js b/Extensions/combined/src/events.js
index 47d0bce..a7638dc 100644
--- a/Extensions/combined/src/events.js
+++ b/Extensions/combined/src/events.js
@@ -1,5 +1,5 @@
import { getBrowser, getVideoId, numberFormat, cLog } from "./utils";
-import { checkForSignInButton, getButtons } from "./buttons";
+import { checkForSignInButton, getButtons, getDislikeButton, getLikeButton } from './buttons';
import {
NEUTRAL_STATE,
LIKED_STATE,
@@ -83,12 +83,11 @@ function dislikeClicked() {
}
function addLikeDislikeEventListener() {
- const buttons = getButtons();
if (!window.returnDislikeButtonlistenersSet) {
- buttons.children[0].addEventListener("click", likeClicked);
- buttons.children[1].addEventListener("click", dislikeClicked);
- buttons.children[0].addEventListener("touchstart", likeClicked);
- buttons.children[1].addEventListener("touchstart", dislikeClicked);
+ getLikeButton().addEventListener("click", likeClicked);
+ getDislikeButton().addEventListener("click", dislikeClicked);
+ getLikeButton().addEventListener("touchstart", likeClicked);
+ getLikeButton().addEventListener("touchstart", dislikeClicked);
window.returnDislikeButtonlistenersSet = true;
}
}
diff --git a/Extensions/combined/src/state.js b/Extensions/combined/src/state.js
index 5610d2f..8ee119f 100644
--- a/Extensions/combined/src/state.js
+++ b/Extensions/combined/src/state.js
@@ -97,7 +97,7 @@ function isLikesDisabled() {
);
}
return /^\D*$/.test(
- getButtons().children[0].querySelector("#text").innerText
+ getButtons().children[0].innerText
);
}
@@ -158,16 +158,22 @@ function setDislikes(dislikesCount) {
}
function getLikeCountFromButton() {
- if (isShorts()) {
- //Youtube Shorts don't work with this query. It's not nessecary; we can skip it and still see the results.
- //It should be possible to fix this function, but it's not critical to showing the dislike count.
- return false;
- }
- let likesStr = getLikeButton()
+ try {
+ if (isShorts()) {
+ //Youtube Shorts don't work with this query. It's not nessecary; we can skip it and still see the results.
+ //It should be possible to fix this function, but it's not critical to showing the dislike count.
+ return false;
+ }
+ let likesStr = getLikeButton()
.querySelector("yt-formatted-string#text")
.getAttribute("aria-label")
.replace(/\D/g, "");
- return likesStr.length > 0 ? parseInt(likesStr) : false;
+ return likesStr.length > 0 ? parseInt(likesStr) : false;
+ }
+ catch {
+ return false;
+ }
+
}
function processResponse(response, storedData) {
diff --git a/Website/_locales/ja.ts b/Website/_locales/ja.ts
index d68c606..4502966 100644
--- a/Website/_locales/ja.ts
+++ b/Website/_locales/ja.ts
@@ -1,101 +1,121 @@
-import { en } from 'vuetify/src/locale'
+import { ja } from "vuetify/src/locale";
export default {
- ...ja,
- home: {
- name: 'ƒz[ƒ€',
- title: 'Return YouTube Dislike',
- subtitle: 'YouTube‚Ì’á•]‰¿”‚Ì•\Ž¦‚𕜌³‚·‚éƒuƒ‰ƒEƒUŠg’£‹@”\‚ÆAPI',
- ukraine: 'ƒEƒNƒ‰ƒCƒi‚ðƒTƒ|[ƒg',
- sponsors: 'ƒXƒ|ƒ“ƒT[',
+ ...ja,
+ home: {
+ name: "ホーム",
+ title: "Return YouTube Dislike",
+ subtitle: "YouTubeã®ä½Žè©•ä¾¡æ•°ã®è¡¨ç¤ºã‚’復元ã™ã‚‹ãƒ–ラウザ拡張機能ã¨API",
+ ukraine: "ウクライナをサãƒãƒ¼ãƒˆ",
+ sponsors: "スãƒãƒ³ã‚µãƒ¼",
+ },
+ install: {
+ name: "インストール",
+ title: "プラットフォームã®é¸æŠž",
+ subtitle: "Firefoxã¨ã™ã¹ã¦ã®Chromiumブラウザã«å¯¾å¿œã—ã¦ã„ã¾ã™ã€‚",
+ title2: "ãã®ä»–ã®ãƒ—ラットフォーム",
+ subtitle2:
+ "未対応ã®ãƒ–ラウザをãŠä½¿ã„ã®å ´åˆã¯ã€ä»¥ä¸‹ã®UserScriptã‚’ãŠè©¦ã—ãã ã•ã„。",
+ title3: "サードパーティーã«ã‚ˆã‚‹å®Ÿè£…",
+ subtitle3:
+ "開発者ã§ã¯è²¬ä»»ã‚’è² ã„ã‹ã­ã¾ã™ã®ã§ã€ã”自身ã®åˆ¤æ–­ã«ã¦ã”利用ãã ã•ã„。",
+ },
+ api: {
+ name: "API",
+ title: "RYDå…¬å¼ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã¸ã‚ˆã†ã“ã!",
+ subtitle: "ã¾ãšã€ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‹ã‚‰ã‚»ã‚¯ã‚·ãƒ§ãƒ³ã‚’é¸æŠžã—ã¦ãã ã•ã„。",
+ rights: {
+ title: "使用権",
+ subtitle:
+ "ã“ã®ã‚ªãƒ¼ãƒ—ンAPIを第三者ãŒä½¿ç”¨ã™ã‚‹ã“ã¨ã¯ã€ä»¥ä¸‹ã®åˆ¶é™ä»˜ãã§è¨±å¯ã•ã‚Œã¦ã„ã¾ã™ï¼š",
+ bullet1: "属性:",
+ bullet1text:
+ "ã“ã®ãƒ¬ãƒã€ã‚‚ã—ã㯠returnyoutubedislike.com ã¸ã®ãƒªãƒ³ã‚¯ã®ã©ã¡ã‚‰ã‹ã«ã‚ˆã£ã¦ã€æ˜Žç¢ºã«å¸°å±žã•ã›ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚",
+ bullet2: "通信é‡åˆ¶é™ï¼š",
+ bullet2text:
+ "クライアントã”ã¨ã«ã€1分ã‚ãŸã‚Š100・1æ—¥ã‚ãŸã‚Š10,000ã¨ã„ã†é€šä¿¡é‡åˆ¶é™ãŒè¨­ã‘られã¦ã„ã¾ã™ã€‚ã“れを超ãˆãŸå ´åˆã«ã¯ã€ã‚¢ãƒ—リケーションã«é€šä¿¡ã‚’控ãˆã‚‹ã‚ˆã†ä¿ƒã™ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚³ãƒ¼ãƒ‰ 429 ã‚’è¿”ã—ã¾ã™ã€‚",
},
- install: {
- name: 'ƒCƒ“ƒXƒg[ƒ‹',
- title: 'ƒvƒ‰ƒbƒgƒtƒH[ƒ€‚Ì‘I‘ð',
- subtitle: 'Firefox‚Æ‚·‚ׂĂÌChromiumƒuƒ‰ƒEƒU‚ɑΉž‚µ‚Ä‚¢‚Ü‚·B',
- title2: '‚»‚Ì‘¼‚̃vƒ‰ƒbƒgƒtƒH[ƒ€',
- subtitle2: '–¢‘Ήž‚̃uƒ‰ƒEƒU‚ð‚¨Žg‚¢‚ÌꇂÍAˆÈ‰º‚ÌUserScript‚ð‚¨ŽŽ‚µ‚­‚¾‚³‚¢B',
- title3: 'ƒT[ƒhƒp[ƒeƒB[‚É‚æ‚éŽÀ‘•',
- subtitle3: 'ŠJ”­ŽÒ‚Å‚ÍÓ”C‚𕉂¢‚©‚Ë‚Ü‚·‚Ì‚ÅA‚²Ž©g‚Ì”»’f‚É‚Ä‚²—˜—p‚­‚¾‚³‚¢B',
+ url: {
+ title: "URL情報",
+ subtitle: "APIã¸ã®ã‚¢ã‚¯ã‚»ã‚¹ã¯ã€ä»¥ä¸‹ã®ãƒ™ãƒ¼ã‚¹URLã‹ã‚‰å¯èƒ½ã§ã™ï¼š",
},
- api: {
- name: 'API',
- title: 'RYDŒöŽ®ƒhƒLƒ…ƒƒ“ƒg‚ւ悤‚±‚»!',
- subtitle: '‚Ü‚¸Aƒƒjƒ…[‚©‚çƒZƒNƒVƒ‡ƒ“‚ð‘I‘ð‚µ‚Ä‚­‚¾‚³‚¢B,
- rights: {
- title: 'Žg—pŒ ',
- subtitle: '‚±‚̃I[ƒvƒ“API‚ð‘æŽOŽÒ‚ªŽg—p‚·‚邱‚Æ‚ÍAˆÈ‰º‚̧ŒÀ•t‚«‚Å‹–‰Â‚³‚ê‚Ä‚¢‚Ü‚·F',
- bullet1: '‘®«F',
- bullet1text: '‚±‚̃Œƒ|A‚à‚µ‚­‚Í returnyoutubedislike.com ‚ւ̃Šƒ“ƒN‚Ì‚Ç‚¿‚ç‚©‚É‚æ‚Á‚ÄA–¾Šm‚É‹A‘®‚³‚¹‚é•K—v‚ª‚ ‚è‚Ü‚·B',
- bullet2: '’ÊM—ʧŒÀF',
- bullet2text: 'ƒNƒ‰ƒCƒAƒ“ƒg‚²‚Æ‚ÉA1•ª‚ ‚½‚è100E1“ú‚ ‚½‚è10,000‚Æ‚¢‚¤’ÊM—ʧŒÀ‚ªÝ‚¯‚ç‚ê‚Ä‚¢‚Ü‚·B‚±‚ê‚ð’´‚¦‚½ê‡‚É‚ÍAƒAƒvƒŠƒP[ƒVƒ‡ƒ“‚É’ÊM‚ðT‚¦‚é‚悤‘£‚·ƒXƒe[ƒ^ƒXƒR[ƒh 429 ‚ð•Ô‚µ‚Ü‚·B',
- },
- url: {
- title: 'URLî•ñ',
- subtitle: 'API‚ւ̃AƒNƒZƒX‚ÍAˆÈ‰º‚̃x[ƒXURL‚©‚ç‰Â”\‚Å‚·F',
- },
- endpoints: {
- title: '—˜—p‰Â”\‚ȃGƒ“ƒhƒ|ƒCƒ“ƒg',
- subtitle: '—˜—p‰Â”\‚ȃGƒ“ƒhƒ|ƒCƒ“ƒg‚̈ꗗ‚Í‚±‚¿‚ç‚Å‚²——‚¢‚½‚¾‚¯‚Ü‚·F',
- },
- fetching: {
- title: 'Šî–{“I‚ȃtƒFƒbƒ`‘€ì‚̃`ƒ…[ƒgƒŠƒAƒ‹',
- subtitle: 'ˆÈ‰º‚ÌYouTube ID‚©‚ç•]‰¿”‚ðŽæ‚èo‚µ‚½ê‡‚Ì—á‚Å‚·F',
- title2: 'ƒŠƒNƒGƒXƒg—áF',
- url: 'ƒŠƒNƒGƒXƒgURLF',
- method: 'ƒŠƒNƒGƒXƒg•û–@F',
- headers: 'ƒwƒbƒ_[F',
- response: 'ƒŒƒXƒ|ƒ“ƒXF',
- error1: 'YouTube ID‚ª–³Œø‚Èê‡AƒXƒe[ƒ^ƒXƒR[ƒh 404 "Not Found" ‚ª•Ô‚³‚ê‚Ü‚·B',
- error2: 'YouTube ID‚̃tƒH[ƒ}ƒbƒg‚ª³‚µ‚­‚È‚¢ê‡AƒXƒe[ƒ^ƒXƒR[ƒh 400 "Bad Request" ‚ª•Ô‚³‚ê‚Ü‚·B'
- },
+ endpoints: {
+ title: "利用å¯èƒ½ãªã‚¨ãƒ³ãƒ‰ãƒã‚¤ãƒ³ãƒˆ",
+ subtitle: "利用å¯èƒ½ãªã‚¨ãƒ³ãƒ‰ãƒã‚¤ãƒ³ãƒˆã®ä¸€è¦§ã¯ã“ã¡ã‚‰ã§ã”覧ã„ãŸã ã‘ã¾ã™ï¼š",
},
- help: {
- name: 'ƒwƒ‹ƒv',
- title: 'ƒgƒ‰ƒuƒ‹ƒVƒ…[ƒeƒBƒ“ƒO',
- bullet1: 'ÅVƒo[ƒWƒ‡ƒ“‚ÌŠg’£‹@”\',
- bullet11: '‚ªƒCƒ“ƒXƒg[ƒ‹‚³‚ê‚Ä‚¢‚邱‚Æ‚ðŠm”F‚µ‚Ä‚­‚¾‚³‚¢B',
- bullet2: 'Šg’£‹@”\‚ð휂µ‚ÄăCƒ“ƒXƒg[ƒ‹‚µA‚·‚ׂẴEƒBƒ“ƒhƒE‚ð•Â‚¶‚½ã‚Ńuƒ‰ƒEƒU‚ðÄ‹N“®‚µ‚Ä‚­‚¾‚³‚¢B',
- bullet3: 'ˆÈ‰º‚̃Šƒ“ƒN‚ªŠJ‚­‚±‚Æ‚ðŠm”F‚µ‚Ä‚­‚¾‚³‚¢F',
- bullet31: 'ˆÈ‰º‚̃vƒŒ[ƒ“ƒeƒLƒXƒg‚ª•\Ž¦‚³‚ê‚Ü‚·F',
- bullet4: 'ã‹L‚Å–â‘肪‰ðŒˆ‚µ‚È‚¢ê‡AˆÈ‰º‚̃`ƒƒƒ“ƒlƒ‹‚É‚Ä–â‘è‚ð•ñ‚µ‚Ä‚­‚¾‚³‚¢B',
- bullet41: 'ŽQÆF',
- bullet4a: '‚¨Žg‚¢‚ÌOSAƒuƒ‰ƒEƒU–¼‚ƃo[ƒWƒ‡ƒ“‚ð‹³‚¦‚Ä‚­‚¾‚³‚¢B',
- bullet4b: 'ƒRƒ“ƒ\[ƒ‹‚ðŠJ‚«i',
- bullet4b1: 'ƒL[jA–â‘è‚Ì‚ ‚éƒy[ƒWi—áFYouTube‚Ì“®‰æƒy[ƒWj‚̃XƒNƒŠ[ƒ“ƒVƒ‡ƒbƒg‚ðŽB‰e‚µ‚Ü‚·B',
- bullet4c: 'Šg’£‹@”\‚ªƒCƒ“ƒXƒg[ƒ‹‚³‚ê‚Ä‚¢‚éƒuƒ‰ƒEƒU‚ÌŠg’£‹@”\ƒy[ƒW‚̃XƒNƒŠ[ƒ“ƒVƒ‡ƒbƒg‚ðŽB‰e‚µ‚Ü‚·B',
- bullet4c1: 'Šg’£‹@”\ƒy[ƒW‚ð•\Ž¦‚·‚é‚É‚ÍAˆÈ‰º‚̂悤‚É“ü—Í‚µ‚Ä‚­‚¾‚³‚¢F',
- firefox: 'FFirefox',
- chrome: 'FChrome, Edge, Brave, Opera, Vivaldi',
+ fetching: {
+ title: "基本的ãªãƒ•ã‚§ãƒƒãƒæ“作ã®ãƒãƒ¥ãƒ¼ãƒˆãƒªã‚¢ãƒ«",
+ subtitle: "以下ã®YouTube IDã‹ã‚‰è©•ä¾¡æ•°ã‚’å–り出ã—ãŸå ´åˆã®ä¾‹ã§ã™ï¼š",
+ title2: "リクエスト例:",
+ url: "リクエストURL:",
+ method: "リクエスト方法:",
+ headers: "ヘッダー:",
+ response: "レスãƒãƒ³ã‚¹ï¼š",
+ error1:
+ 'YouTube IDãŒç„¡åŠ¹ãªå ´åˆã€ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚³ãƒ¼ãƒ‰ 404 "Not Found" ãŒè¿”ã•ã‚Œã¾ã™ã€‚',
+ error2:
+ 'YouTube IDã®ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆãŒæ­£ã—ããªã„å ´åˆã€ã‚¹ãƒ†ãƒ¼ã‚¿ã‚¹ã‚³ãƒ¼ãƒ‰ 400 "Bad Request" ãŒè¿”ã•ã‚Œã¾ã™ã€‚',
},
- faq: {
- name: 'Q&A',
- title: '‚æ‚­‚ ‚鎿–â',
- subtitle: '‘¼‚É‚à‰½‚©Ž¿–₪‚ ‚è‚Ü‚·‚©H‰äX‚ÌDiscord‚É‚¨‹CŒy‚É‚²ŽQ‰Á‚­‚¾‚³‚¢B',
- bullet1: 'Šg’£‹@”\‚̃f[ƒ^‚Í‚Ç‚±‚©‚çŽæ“¾‚µ‚Ä‚¢‚é‚Ì‚Å‚·‚©H',
- bullet1text: 'YouTubeŒöŽ®‚Ì’á•]‰¿API‚ª’âŽ~‚·‚é‘O‚É•Û‘¶‚µ‚½ƒf[ƒ^‚ÆAŠg’£‹@”\ƒ†[ƒU[‚Ì‚•]‰¿/’á•]‰¿”‚ðŒ³‚É‚µ‚½„’è’l‚ð‘g‚݇‚킹‚Ď擾‚µ‚Ä‚¢‚Ü‚·B',
- bullet2: '’á•]‰¿”‚ªXV‚³‚ê‚È‚¢‚Ì‚Í‚È‚º‚Å‚·‚©H',
- bullet2text: 'Œ»ÝA’á•]‰¿”‚̓f[ƒ^ƒx[ƒX‰»‚³‚ê‚Ä‚¢‚邽‚ßA‚ ‚Ü‚è•p”É‚ÉXV‚³‚ê‚Ü‚¹‚ñB“®‰æ‚ÌĶ”‚É‚æ‚Á‚ĈقȂè‚Ü‚·‚ªAXV‚É‚Í”ŽžŠÔ‚©‚甓ú‚©‚©‚邱‚Æ‚ª‚ ‚è‚Ü‚·B',
- bullet3: '‚ǂ̂悤‚ÈŽd‘g‚Ý‚Å“®ì‚µ‚Ä‚¢‚Ü‚·‚©H',
- bullet3text: '‚Ü‚¸AŽ‹’®’†‚Ì“®‰æ‚ÌID ‚ðŽûW‚µAAPI ‚ðŽg—p‚µ‚Ä’á•]‰¿”AĶ”A‚•]‰¿‚È‚Ç‚Ì€–Ú‚ðŽæ“¾‚µ‚Ü‚·BŽŸ‚ÉAƒy[ƒWã‚É’á•]‰¿”‚Ɣ䗦‚ð•\Ž¦‚µ‚Ü‚·B“®‰æ‚É‚•]‰¿‚â’á•]‰¿‚ª‚ ‚é‚ÆA‚»‚ꂪ‹L˜^‚³‚ê‚ăf[ƒ^ƒx[ƒX‚É’~Ï‚³‚ê‚邽‚ßA³Šm‚È’á•]‰¿”‚ð„’è‚·‚邱‚Æ‚ª‚Å‚«‚Ü‚·B',
- bullet4: '’á•]‰¿”‚ð‹¤—L‚·‚邱‚Æ‚Í‚Å‚«‚Ü‚·‚©H',
- bullet4text: '‹ß“ú’†‚ÉŒöŠJ—\’è‚Å‚·B‹@”\‚ÌŽÀ‘•‚Ì‚½‚ß‚ÉAOauth ‚Ü‚½‚͔͈͂ðŒÀ’肵‚½•Ê‚Ì“Ç‚ÝŽæ‚èê—pAPI‚ðŽg—p‚·‚邱‚Æ‚ðŒŸ“¢‚µ‚Ä‚¢‚Ü‚·B',
- bullet5: '‚ǂ̂悤‚ȃf[ƒ^‚ðŽûW‚µA‚ǂ̂悤‚ÉŽæ‚舵‚Á‚Ä‚¢‚Ü‚·‚©H',
- bullet5text: '–{Šg’£‹@”\‚Å‚ÍAIPƒAƒhƒŒƒX‚⎋’®‚µ‚Ä‚¢‚é“®‰æ‚ÌID‚È‚ÇA³‚µ‚­‹@”\‚·‚邽‚ß‚É•K—v‚ȃf[ƒ^‚Ì‚Ý‚ðŽûW‚µ‚Ä‚¢‚Ü‚·B‚ ‚È‚½‚̃f[ƒ^‚ÍA‘æŽOŽÒ‚ɔ̔„‚³‚ê‚邱‚Æ‚ÍŒˆ‚µ‚Ä‚ ‚è‚Ü‚¹‚ñBƒZƒLƒ…ƒŠƒeƒB‚ƃvƒ‰ƒCƒoƒV[‚ÌŽæ‚舵‚¢‚ɂ‚¢‚Ä‚à‚Á‚Æ’m‚肽‚¢ê‡‚É‚ÍA <a href="https://github.com/Anarios/return-youtube-dislike/blob/main/Docs/SECURITY-FAQ.md">ƒZƒLƒ…ƒŠƒeƒBFAQ</a> ‚ð‚²ŽQÆ‚­‚¾‚³‚¢B ',
- bullet6: 'API/ƒoƒbƒNƒGƒ“ƒh‚͂ǂ̂悤‚ÈŽd‘g‚Ý‚Å“®ì‚µ‚Ä‚¢‚Ü‚·‚©H',
- bullet6text: 'ƒoƒbƒNƒGƒ“ƒh‚ÍAYouTubeŒöŽ®‚Ì’á•]‰¿API‚ª’âŽ~‚·‚é‘O‚É•Û‘¶‚µ‚½ƒf[ƒ^‚ÆŠg’£‹@”\ƒ†[ƒU[‚Ì‚•]‰¿/’á•]‰¿”‚ðŒ³‚É‚µ‚½„’è’l‚ð‘g‚݇‚킹‚Ď擾‚µ‚Ä‚¢‚Ü‚·B‹ß‚¢«—ˆAƒRƒ“ƒeƒ“ƒc§ìŽÒ‚ªŠÈ’P‚©‚ˆÀ‘S‚É’á•]‰¿”‚ð’ñ‹Ÿ‚Å‚«‚é‚悤‚É‚µAArchive Team ‚̃A[ƒJƒCƒuƒf[ƒ^i45‰­6000–œ“®‰æj‚àŒ»Ý‚Ìƒf[ƒ^ƒx[ƒX‚ɒljÁ‚·‚é—\’è‚Å‚·B‚Ü‚½A‚±‚̃gƒsƒbƒN‚ÉŠÖ‚·‚éƒrƒfƒI‚à‚²——‚¢‚½‚¾‚¯‚Ü‚·B',
- bullet7: '’á•]‰¿”‚Éu“ŠeŽÒ‚É‚æ‚è–³Œø‰»v‚Æ•\Ž¦‚³‚ê‚é‚Ì‚Í‚È‚º‚Å‚·‚©H',
- bullet7text: 'Å‹ß“Še‚³‚ꂽ“®‰æ‚Å‚ÍA“ŠeŽÒ‚É‚æ‚Á‚Ä–³Œø‚É‚³‚ê‚Ä‚¢‚È‚­‚Ä‚àu“ŠeŽÒ‚É‚æ‚è–³Œø‰»v‚Æ•\Ž¦‚³‚ê‚邱‚Æ‚ª‚ ‚è‚Ü‚·B‚±‚ê‚ÍA•]‰¿”‚Ì•\Ž¦‚ª–³Œø‚É‚È‚Á‚Ä‚¢‚é‚©‚Ç‚¤‚©‚ðŒŸo‚·‚éƒVƒXƒeƒ€‚É‚æ‚é•›ì—p‚ÅA”ŽžŠÔŒãA‚Ü‚½‚Í“®‰æ‚É‚•]‰¿‚È‚¢‚µ’á•]‰¿‚ð‚µ‚Äƒy[ƒW‚ðXV‚·‚é‚ÆÁ‚¦‚é‚à‚Ì‚¾‚ÆŽv‚í‚ê‚Ü‚·B',
- },
- donate: {
- name: 'Šñ•t',
- subtitle: 'ƒCƒ“ƒ^[ƒlƒbƒg‚ÌŽ©—R‚ðŽç‚邽‚߂̉äX‚ÌŠˆ“®‚ðAŠñ•t‚É‚æ‚Á‚ĉž‰‡‚µ‚Ä‚­‚¾‚³‚¢I',
- },
- links: {
- name: 'ƒŠƒ“ƒN',
- title: 'ƒvƒƒWƒFƒNƒgƒŠƒ“ƒNW',
- subtitle: 'ƒvƒƒWƒFƒNƒg‚¨‚æ‚ÑŠJ”­ŽÒ‚ւ̃Šƒ“ƒN',
- contact: '‚¨–â‚¢‡‚킹æ',
- translators: '–|–óŽÒ',
- },
-} \ No newline at end of file
+ },
+ help: {
+ name: "ヘルプ",
+ title: "トラブルシューティング",
+ bullet1: "最新ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã®æ‹¡å¼µæ©Ÿèƒ½",
+ bullet11: "ãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã¦ã„ã‚‹ã“ã¨ã‚’確èªã—ã¦ãã ã•ã„。",
+ bullet2:
+ "拡張機能を削除ã—ã¦å†ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã—ã€ã™ã¹ã¦ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦ã‚’é–‰ã˜ãŸä¸Šã§ãƒ–ラウザをå†èµ·å‹•ã—ã¦ãã ã•ã„。",
+ bullet3: "以下ã®ãƒªãƒ³ã‚¯ãŒé–‹ãã“ã¨ã‚’確èªã—ã¦ãã ã•ã„:",
+ bullet31: "以下ã®ãƒ—レーンテキストãŒè¡¨ç¤ºã•ã‚Œã¾ã™ï¼š",
+ bullet4:
+ "上記ã§å•é¡ŒãŒè§£æ±ºã—ãªã„å ´åˆã€ä»¥ä¸‹ã®ãƒãƒ£ãƒ³ãƒãƒ«ã«ã¦å•é¡Œã‚’報告ã—ã¦ãã ã•ã„。",
+ bullet41: "å‚照:",
+ bullet4a: "ãŠä½¿ã„ã®OSã€ãƒ–ラウザåã¨ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’æ•™ãˆã¦ãã ã•ã„。",
+ bullet4b: "コンソールを開ã(",
+ bullet4b1:
+ "キー)ã€å•é¡Œã®ã‚るページ(例:YouTubeã®å‹•ç”»ãƒšãƒ¼ã‚¸ï¼‰ã®ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã‚·ãƒ§ãƒƒãƒˆã‚’撮影ã—ã¾ã™ã€‚",
+ bullet4c:
+ "拡張機能ãŒã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã•ã‚Œã¦ã„るブラウザã®æ‹¡å¼µæ©Ÿèƒ½ãƒšãƒ¼ã‚¸ã®ã‚¹ã‚¯ãƒªãƒ¼ãƒ³ã‚·ãƒ§ãƒƒãƒˆã‚’撮影ã—ã¾ã™ã€‚",
+ bullet4c1: "拡張機能ページを表示ã™ã‚‹ã«ã¯ã€ä»¥ä¸‹ã®ã‚ˆã†ã«å…¥åŠ›ã—ã¦ãã ã•ã„:",
+ firefox: ":Firefox",
+ chrome: ":Chrome, Edge, Brave, Opera, Vivaldi",
+ },
+ faq: {
+ name: "Q&A",
+ title: "よãã‚る質å•",
+ subtitle:
+ "ä»–ã«ã‚‚何ã‹è³ªå•ãŒã‚ã‚Šã¾ã™ã‹ï¼Ÿæˆ‘々ã®Discordã«ãŠæ°—軽ã«ã”å‚加ãã ã•ã„。",
+ bullet1: "拡張機能ã®ãƒ‡ãƒ¼ã‚¿ã¯ã©ã“ã‹ã‚‰å–å¾—ã—ã¦ã„ã‚‹ã®ã§ã™ã‹ï¼Ÿ",
+ bullet1text:
+ "YouTubeå…¬å¼ã®ä½Žè©•ä¾¡APIãŒåœæ­¢ã™ã‚‹å‰ã«ä¿å­˜ã—ãŸãƒ‡ãƒ¼ã‚¿ã¨ã€æ‹¡å¼µæ©Ÿèƒ½ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®é«˜è©•ä¾¡/低評価数を元ã«ã—ãŸæŽ¨å®šå€¤ã‚’組ã¿åˆã‚ã›ã¦å–å¾—ã—ã¦ã„ã¾ã™ã€‚",
+ bullet2: "低評価数ãŒæ›´æ–°ã•ã‚Œãªã„ã®ã¯ãªãœã§ã™ã‹ï¼Ÿ",
+ bullet2text:
+ "ç¾åœ¨ã€ä½Žè©•ä¾¡æ•°ã¯ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹åŒ–ã•ã‚Œã¦ã„ã‚‹ãŸã‚ã€ã‚ã¾ã‚Šé »ç¹ã«æ›´æ–°ã•ã‚Œã¾ã›ã‚“。動画ã®å†ç”Ÿæ•°ã«ã‚ˆã£ã¦ç•°ãªã‚Šã¾ã™ãŒã€æ›´æ–°ã«ã¯æ•°æ™‚é–“ã‹ã‚‰æ•°æ—¥ã‹ã‹ã‚‹ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚",
+ bullet3: "ã©ã®ã‚ˆã†ãªä»•çµ„ã¿ã§å‹•ä½œã—ã¦ã„ã¾ã™ã‹ï¼Ÿ",
+ bullet3text:
+ "ã¾ãšã€è¦–è´ä¸­ã®å‹•ç”»ã®ID ã‚’åŽé›†ã—ã€API を使用ã—ã¦ä½Žè©•ä¾¡æ•°ã€å†ç”Ÿæ•°ã€é«˜è©•ä¾¡ãªã©ã®é …目をå–å¾—ã—ã¾ã™ã€‚次ã«ã€ãƒšãƒ¼ã‚¸ä¸Šã«ä½Žè©•ä¾¡æ•°ã¨æ¯”率を表示ã—ã¾ã™ã€‚å‹•ç”»ã«é«˜è©•ä¾¡ã‚„低評価ãŒã‚ã‚‹ã¨ã€ãã‚ŒãŒè¨˜éŒ²ã•ã‚Œã¦ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«è“„ç©ã•ã‚Œã‚‹ãŸã‚ã€æ­£ç¢ºãªä½Žè©•ä¾¡æ•°ã‚’推定ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚",
+ bullet4: "低評価数を共有ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã™ã‹ï¼Ÿ",
+ bullet4text:
+ "近日中ã«å…¬é–‹äºˆå®šã§ã™ã€‚機能ã®å®Ÿè£…ã®ãŸã‚ã«ã€Oauth ã¾ãŸã¯ç¯„囲をé™å®šã—ãŸåˆ¥ã®èª­ã¿å–り専用APIを使用ã™ã‚‹ã“ã¨ã‚’検討ã—ã¦ã„ã¾ã™ã€‚",
+ bullet5: "ã©ã®ã‚ˆã†ãªãƒ‡ãƒ¼ã‚¿ã‚’åŽé›†ã—ã€ã©ã®ã‚ˆã†ã«å–り扱ã£ã¦ã„ã¾ã™ã‹ï¼Ÿ",
+ bullet5text:
+ '本拡張機能ã§ã¯ã€IPアドレスや視è´ã—ã¦ã„ã‚‹å‹•ç”»ã®IDãªã©ã€æ­£ã—ã機能ã™ã‚‹ãŸã‚ã«å¿…è¦ãªãƒ‡ãƒ¼ã‚¿ã®ã¿ã‚’åŽé›†ã—ã¦ã„ã¾ã™ã€‚ã‚ãªãŸã®ãƒ‡ãƒ¼ã‚¿ã¯ã€ç¬¬ä¸‰è€…ã«è²©å£²ã•ã‚Œã‚‹ã“ã¨ã¯æ±ºã—ã¦ã‚ã‚Šã¾ã›ã‚“。セキュリティã¨ãƒ—ライãƒã‚·ãƒ¼ã®å–り扱ã„ã«ã¤ã„ã¦ã‚‚ã£ã¨çŸ¥ã‚ŠãŸã„å ´åˆã«ã¯ã€ <a href="https://github.com/Anarios/return-youtube-dislike/blob/main/Docs/SECURITY-FAQ.md">セキュリティFAQ</a> ã‚’ã”å‚ç…§ãã ã•ã„。 ',
+ bullet6: "API/ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ã¯ã©ã®ã‚ˆã†ãªä»•çµ„ã¿ã§å‹•ä½œã—ã¦ã„ã¾ã™ã‹ï¼Ÿ",
+ bullet6text:
+ "ãƒãƒƒã‚¯ã‚¨ãƒ³ãƒ‰ã¯ã€YouTubeå…¬å¼ã®ä½Žè©•ä¾¡APIãŒåœæ­¢ã™ã‚‹å‰ã«ä¿å­˜ã—ãŸãƒ‡ãƒ¼ã‚¿ã¨æ‹¡å¼µæ©Ÿèƒ½ãƒ¦ãƒ¼ã‚¶ãƒ¼ã®é«˜è©•ä¾¡/低評価数を元ã«ã—ãŸæŽ¨å®šå€¤ã‚’組ã¿åˆã‚ã›ã¦å–å¾—ã—ã¦ã„ã¾ã™ã€‚è¿‘ã„å°†æ¥ã€ã‚³ãƒ³ãƒ†ãƒ³ãƒ„制作者ãŒç°¡å˜ã‹ã¤å®‰å…¨ã«ä½Žè©•ä¾¡æ•°ã‚’æä¾›ã§ãるよã†ã«ã—ã€Archive Team ã®ã‚¢ãƒ¼ã‚«ã‚¤ãƒ–データ(45å„„6000万動画)もç¾åœ¨ã®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã«è¿½åŠ ã™ã‚‹äºˆå®šã§ã™ã€‚ã¾ãŸã€ã“ã®ãƒˆãƒ”ックã«é–¢ã™ã‚‹ãƒ“デオもã”覧ã„ãŸã ã‘ã¾ã™ã€‚",
+ bullet7: "低評価数ã«ã€ŒæŠ•ç¨¿è€…ã«ã‚ˆã‚Šç„¡åŠ¹åŒ–ã€ã¨è¡¨ç¤ºã•ã‚Œã‚‹ã®ã¯ãªãœã§ã™ã‹ï¼Ÿ",
+ bullet7text:
+ "最近投稿ã•ã‚ŒãŸå‹•ç”»ã§ã¯ã€æŠ•ç¨¿è€…ã«ã‚ˆã£ã¦ç„¡åŠ¹ã«ã•ã‚Œã¦ã„ãªãã¦ã‚‚「投稿者ã«ã‚ˆã‚Šç„¡åŠ¹åŒ–ã€ã¨è¡¨ç¤ºã•ã‚Œã‚‹ã“ã¨ãŒã‚ã‚Šã¾ã™ã€‚ã“ã‚Œã¯ã€è©•ä¾¡æ•°ã®è¡¨ç¤ºãŒç„¡åŠ¹ã«ãªã£ã¦ã„ã‚‹ã‹ã©ã†ã‹ã‚’検出ã™ã‚‹ã‚·ã‚¹ãƒ†ãƒ ã«ã‚ˆã‚‹å‰¯ä½œç”¨ã§ã€æ•°æ™‚間後ã€ã¾ãŸã¯å‹•ç”»ã«é«˜è©•ä¾¡ãªã„ã—低評価をã—ã¦ãƒšãƒ¼ã‚¸ã‚’æ›´æ–°ã™ã‚‹ã¨æ¶ˆãˆã‚‹ã‚‚ã®ã ã¨æ€ã‚ã‚Œã¾ã™ã€‚",
+ },
+ donate: {
+ name: "寄付",
+ subtitle:
+ "インターãƒãƒƒãƒˆã®è‡ªç”±ã‚’守るãŸã‚ã®æˆ‘々ã®æ´»å‹•ã‚’ã€å¯„付ã«ã‚ˆã£ã¦å¿œæ´ã—ã¦ãã ã•ã„ï¼",
+ },
+ links: {
+ name: "リンク",
+ title: "プロジェクトリンク集",
+ subtitle: "プロジェクトãŠã‚ˆã³é–‹ç™ºè€…ã¸ã®ãƒªãƒ³ã‚¯",
+ contact: "ãŠå•ã„åˆã‚ã›å…ˆ",
+ translators: "翻訳者",
+ },
+};
diff --git a/Website/pages/index.vue b/Website/pages/index.vue
index 3b21cee..745631f 100644
--- a/Website/pages/index.vue
+++ b/Website/pages/index.vue
@@ -63,13 +63,13 @@
<div id="support-ukraine" class="d-flex flex-column items-center py-2">
<h3 class="mb-2">
<v-img src="/ukraine-flag-xs.webp" width="42px" height="28px"></v-img>
- <a href="https://helpukrainewin.org/">
+ <a href="https://u24.gov.ua/">
{{ $vuetify.lang.t("$vuetify.home.ukraine") }}
</a>
</h3>
</div>
- <div id="biggest-supporters" class="d-flex flex-column items-center py-8">
+ <div id="top-donors" class="d-flex flex-column items-center py-8">
<h3 class="mb-4">
<v-icon class="mb-2">mdi-heart</v-icon>
{{ $vuetify.lang.t("$vuetify.home.sponsors") }}
@@ -110,14 +110,6 @@ export default {
sponsors: [
{ name: "Piepacker", link: "https://piepacker.com/" },
{
- name: "Seed4.Me VPN",
- link: "https://www.seed4.me/users/register?gift=ReturnYoutubeDislike",
- },
- {
- name: "PocketTube",
- link: "https://yousub.info/?utm_source=returnyoutubedislike",
- },
- {
name: "Become our sponsor",
link: "https://www.patreon.com/join/returnyoutubedislike/checkout?rid=8008601",
},