「MediaWiki:Common.js」の版間の差分

提供:svg2wiki
ナビゲーションに移動 検索に移動
1行目: 1行目:
 
/* ここにあるすべてのJavaScriptは、すべてのページ読み込みですべての利用者に対して読み込まれます */
 
/* ここにあるすべてのJavaScriptは、すべてのページ読み込みですべての利用者に対して読み込まれます */
  
−
/* Google 翻訳ウィジェット(ブラウザ言語の自動判別付き) */
+
/* Google 翻訳ウィジェット+自動翻訳通知バナー */
 
$( function () {
 
$( function () {
 
     if ( $( '#p-googletranslator' ).length ) {
 
     if ( $( '#p-googletranslator' ).length ) {
7行目: 7行目:
 
     }
 
     }
  
−
    var supportedLangs = ['ja', 'ko', 'en', 'nl', 'fr', 'de', 'zh-CN', 'ru'];
+
     // 1. 記事本文の上に通知バナーを配置(Google翻訳が選択された言語へ自動翻訳)
−
 
+
     if ( $( '#mw-content-text' ).length && !$( '.mw-translate-notice' ).length ) {
−
     // 初回訪問時、ブラウザの言語を判定してCookieにセット
+
         var $notice = $( '<div class="mw-translate-notice">⚠️ このページは、日本語の原文から機械翻訳(Google 翻訳)されたものです。</div>' );
−
     if ( !document.cookie.match( /(^|;) ?googtrans=([^;]*)(;|$)/ ) ) {
+
        $( '#mw-content-text' ).prepend( $notice );
−
        var userLang = ( navigator.language || navigator.userLanguage || '' ).toLowerCase();
 
−
        var targetLang = '';
 
−
 
 
−
        if ( userLang.indexOf( 'zh' ) === 0 ) {
 
−
            targetLang = 'zh-CN';
 
−
         } else {
 
−
            var shortLang = userLang.split( '-' )[0];
 
−
            if ( shortLang !== 'ja' && supportedLangs.indexOf( shortLang ) !== -1 ) {
 
−
                targetLang = shortLang;
 
−
            }
 
−
        }
 
−
 
 
−
        // 日本語以外の対応言語であれば自動翻訳Cookieを発行
 
−
        if ( targetLang ) {
 
−
            document.cookie = 'googtrans=/ja/' + targetLang + '; path=/; domain=' + location.hostname;
 
−
            document.cookie = 'googtrans=/ja/' + targetLang + '; path=/;';
 
−
        }
 
 
     }
 
     }
  
−
     // サイドバー用ブロックのHTML
+
     // 2. サイドバー用ブロックのHTML生成
 
     var boxHtml =  
 
     var boxHtml =  
 
         '<nav id="p-googletranslator" class="mw-portlet mw-portlet-googletranslator vector-menu vector-menu-portal portal" role="navigation">' +
 
         '<nav id="p-googletranslator" class="mw-portlet mw-portlet-googletranslator vector-menu vector-menu-portal portal" role="navigation">' +
47行目: 30行目:
 
     }
 
     }
  
 +
    // 3. Google 翻訳のコールバックとスクリプト読み込み
 
     window.googleTranslateElementInit = function () {
 
     window.googleTranslateElementInit = function () {
 
         new google.translate.TranslateElement({
 
         new google.translate.TranslateElement({
 
             pageLanguage: 'ja',
 
             pageLanguage: 'ja',
−
             includedLanguages: supportedLangs.join( ',' ),
+
             includedLanguages: 'ja,ko,en,nl,fr,de,zh-CN,ru',
 
             layout: google.translate.TranslateElement.InlineLayout.SIMPLE
 
             layout: google.translate.TranslateElement.InlineLayout.SIMPLE
 
         }, 'google_translate_element');
 
         }, 'google_translate_element');

2026年10月23日 (金) 08:59時点における版

/* ここにあるすべてのJavaScriptは、すべてのページ読み込みですべての利用者に対して読み込まれます */

/* Google 翻訳ウィジェット+自動翻訳通知バナー */
$( function () {
    if ( $( '#p-googletranslator' ).length ) {
        return;
    }

    // 1. 記事本文の上に通知バナーを配置(Google翻訳が選択された言語へ自動翻訳)
    if ( $( '#mw-content-text' ).length && !$( '.mw-translate-notice' ).length ) {
        var $notice = $( '<div class="mw-translate-notice">⚠️ このページは、日本語の原文から機械翻訳(Google 翻訳)されたものです。</div>' );
        $( '#mw-content-text' ).prepend( $notice );
    }

    // 2. サイドバー用ブロックのHTML生成
    var boxHtml = 
        '<nav id="p-googletranslator" class="mw-portlet mw-portlet-googletranslator vector-menu vector-menu-portal portal" role="navigation">' +
        '  <h3 class="vector-menu-heading"><span>翻訳 / Translate</span></h3>' +
        '  <div class="vector-menu-content body">' +
        '    <ul class="vector-menu-content-list" style="padding-top: 8px;">' +
        '      <li style="list-style: none;"><div id="google_translate_element"></div></li>' +
        '    </ul>' +
        '  </div>' +
        '</nav>';

    if ( $( '#p-tb' ).length ) {
        $( '#p-tb' ).after( boxHtml );
    } else {
        $( '#mw-panel' ).append( boxHtml );
    }

    // 3. Google 翻訳のコールバックとスクリプト読み込み
    window.googleTranslateElementInit = function () {
        new google.translate.TranslateElement({
            pageLanguage: 'ja',
            includedLanguages: 'ja,ko,en,nl,fr,de,zh-CN,ru',
            layout: google.translate.TranslateElement.InlineLayout.SIMPLE
        }, 'google_translate_element');
    };

    mw.loader.load( '//translate.google.com/translate_a/element.js?cb=googleTranslateElementInit' );
} );