미디어위키:Common.js

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

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

  • 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
  • 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
  • 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
/* 이 자바스크립트 설정은 모든 문서, 모든 사용자에게 적용됩니다. */
var gt_script = document.createElement('script');
gt_script.type = 'text/javascript';
gt_script.text = 'function googleTranslateElementInit2() {new google.translate.TranslateElement({pageLanguage: "ko", autoDisplay: false}, "google_translate_element2");}';
document.head.appendChild(gt_script);

var gt_api = document.createElement('script');
gt_api.type = 'text/javascript';
gt_api.src = 'https://translate.google.com/translate_a/element.js?cb=googleTranslateElementInit2';
document.head.appendChild(gt_api);

var gt_div = document.createElement('div');
gt_div.id = 'google_translate_element2';
gt_div.style.position = 'fixed';
gt_div.style.bottom = '20px'; // 하단 여백
gt_div.style.left = '20px';   // 좌측 여백
gt_div.style.zIndex = '9999';
document.body.appendChild(gt_div);

/* 마우스 오른쪽 클릭 방지 */
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();
    }
});

/* =======================================
   항상 떠 있는(플로팅) 구글 자동 번역기
   ======================================= */
$(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', 
        layout: google.translate.TranslateElement.InlineLayout.SIMPLE,
        autoDisplay: false
    }, 'google_translate_element');
};