미디어위키:Common.js

SKY's Kingshot
Kim1231 (토론 | 기여)님의 2026년 5월 16일 (토) 11:23 판

참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.

  • 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
  • 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
  • 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
/* =======================================
   1. 마우스 오른쪽 클릭 및 복사 방지
   ======================================= */
document.addEventListener('contextmenu', function(e) {
    e.preventDefault();
});

/* 키보드 단축키(F12, Ctrl+C, Ctrl+Shift+I) 방지 */
document.addEventListener('keydown', function(e) {
    if (e.key === 'F12' || (e.ctrlKey && e.key === 'c') || (e.ctrlKey && e.shiftKey && e.key === 'I')) {
        e.preventDefault();
    }
});

/* =======================================
   2. 항상 떠 있는(플로팅) 구글 자동 번역기 (우측 하단)
   ======================================= */
$(document).ready(function() {
    // 1. 번역기를 담을 둥근 버튼 모양의 박스 생성
    var translateDiv = document.createElement('div');
    translateDiv.id = 'google_translate_element';
    
    // 2. CSS 스타일 (화면 우측 하단 고정, 킹샷 오렌지 테마)
    translateDiv.style.position = 'fixed';
    translateDiv.style.bottom = '20px';
    translateDiv.style.right = '20px';
    translateDiv.style.zIndex = '9999';
    translateDiv.style.backgroundColor = '#ffffff';
    translateDiv.style.border = '2px solid #FF8C00';
    translateDiv.style.borderRadius = '8px';
    translateDiv.style.padding = '5px 10px';
    translateDiv.style.boxShadow = '0 4px 8px rgba(0,0,0,0.2)';
    
    // 3. 화면에 추가
    document.body.appendChild(translateDiv);

    // 4. 구글 번역 스크립트 불러오기
    var script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit';
    document.head.appendChild(script);
});

// 5. 구글 번역기 실행 함수 (주요 언어만 나오도록 최적화)
window.googleTranslateElementInit = function() {
    new google.translate.TranslateElement({
        pageLanguage: 'ko', 
        // 🔥 연맹에 필요한 주요 언어만 지정 (이렇게 하면 화면에 딱 맞게 짧아집니다!)
        includedLanguages: 'ko,en,zh-CN,zh-TW,ja,vi,ru,es,fr,de,th,id,ar,pt,tr',
        layout: google.translate.TranslateElement.InlineLayout.SIMPLE,
        autoDisplay: false
    }, 'google_translate_element');
};