// ==UserScript==
// @name DLsite 성우 커스텀 사전
// @namespace http://tampermonkey.net/
// @version 1.1
// @description DLsite 성우 이름 전처리 번역.
// @author Ravenclaw5874
// @match https://www.dlsite.com/*
// @icon https://www.google.com/s2/favicons?sz=64&domain=dlsite.com
// @require http://code.jquery.com/jquery-3.6.1.min.js
// @grant GM_registerMenuCommand
// @grant GM_setValue
// @grant GM_getValue
// @license MIT License
// @downloadURL none
// ==/UserScript==
let dict = {
'陽向葵ゅか':'히나타 유카',
'藍沢夏癒':'아이자와 나츄',
'かの仔':'카노코',
'天知遥':'아마치 하루',
'思ちぽ':'오모이 치포',
'一之瀬りと':'이치노세 리토',
'縁側こより':'엔가와 코요리',
'柚木つばめ':'유즈키 츠바메',
'大山チロル':'오오야마 치로루',
'乙倉ゅい':'오토쿠라 유이',
'来夢ふらん':'쿠루무 프랑',
'逢坂成美':'아이사카 나루미',
'分倍河原シホ':'부바이가와라 시호',
'涼花みなせ':'스즈카 미나세',
'みもりあいの':'미모리 아이노',
'山田じぇみ子':'야마다 제미코',
'秋野かえで':'아키노 카에데',
'みやぢ':'미야지',
'御崎ひより':'미사키 히요리',
'涼貴涼':'스즈키 료우',
'伊ヶ崎綾香':'이가사키 아야카',
'沢野ぽぷら':'사와노 포푸라',
'琴音有波':'코토네 아루하',
'兎月りりむ。':'우즈키 리리무',
'そらまめ。':'소라마메'
};
HTMLCollection.prototype.forEach = Array.prototype.forEach;
let isBold = false;
let isProductPage = location.pathname.includes('/work/') || location.pathname.includes('/announce/');
async function main() {
'use strict';
isBold = await GM.getValue('isBold', false); //볼드 설정 불러오기
$('#container *').contents().each(function() {
//텍스트 노드, 부모 존재
if(this.nodeType !== 3 || this.parentElement === null) return;
//사전에 있으면 계속, 없으면 종료.
let isInDict = false;
for (let key in dict) {
if (this.textContent.includes(key)) { isInDict = true; break; }
}
if (!isInDict) return;
//모든 성우명이 바뀐 HTML로 한번에 교체
let replaceHTML = this.parentElement.innerHTML;
for (let key in dict) {
//let from = new RegExp(`${key}`, 'g');
let repl = `${dict[key]}`;
(isBold && !isProductPage) ? repl = `${repl}`: repl;
replaceHTML = replaceHTML.replaceAll(key,repl);
}
this.parentElement.innerHTML = replaceHTML;
});
}
function SetBold(newState) {
isBold = newState;
GM_setValue('isBold', isBold)
}
function ActivateBold() {SetBold(true);}
function DeactivateBold() {SetBold(false);}
function registerMenuCommand() {
GM_registerMenuCommand(`전처리 성우명 볼드 표시 활성화`, ActivateBold);
GM_registerMenuCommand(`전처리 성우명 볼드 표시 비활성화`, DeactivateBold);
};
main();
registerMenuCommand();