「MediaWiki:Common.js」:修訂間差異

出自Quickpedia wiki
無編輯摘要
無編輯摘要
第43行: 第43行:
       // 例如,將其添加到側邊欄的頂部
       // 例如,將其添加到側邊欄的頂部
       $('#mw-panel').prepend(languageDropdown);
       $('#mw-panel').prepend(languageDropdown);
    }
  }
});
$(function() {
  var languagePanel = $('#p-lang'); // 假設側邊欄有語言連結
  if (languagePanel.length) {
    var languageLinks = languagePanel.find('ul li a');
    if (languageLinks.length > 1) {
      var languageDropdown = $('<div id="top-language-dropdown"></div>').append('<label for="top-lang-select">語言:</label><select id="top-lang-select"></select>');
      var langSelect = languageDropdown.find('#top-lang-select');
      languageLinks.each(function() {
        var langCode = $(this).attr('lang') || $(this).attr('hreflang');
        var langName = $(this).text();
        var option = $('<option>').val($(this).attr('href')).text(langName);
        langSelect.append(option);
      });
      langSelect.on('change', function() {
        window.location.href = $(this).val();
      });
      // 將下拉選單添加到頁面的最上方 (您可能需要調整 CSS 定位)
      $('body').prepend(languageDropdown);
      // 移除原來的側邊欄語言連結 (可選)
      // languagePanel.remove();
     }
     }
   }
   }
});
});

於 2025年5月1日 (四) 03:12 的修訂

$(function() {
  var languagePanel = $('#p-lang'); // 獲取包含語言連結的面板

  if (languagePanel.length) {
    var languageLinks = languagePanel.find('ul li a'); // 獲取所有語言連結

    if (languageLinks.length > 1) { // 只有在有多種語言連結時才創建選單
      var currentLang = mw.config.get('wgContentLanguage'); // 獲取當前內容語言
      var currentLangName = '';
      var langOptions = '';

      // 創建下拉選單的 HTML
      var languageDropdown = $('<div id="language-dropdown"></div>').append('<label for="lang-select">語言:</label><select id="lang-select"></select>');
      var langSelect = languageDropdown.find('#lang-select');

      // 遍歷語言連結,創建下拉選項
      languageLinks.each(function() {
        var langCode = $(this).attr('lang') || $(this).attr('hreflang');
        var langName = $(this).text();
        var option = $('<option>').val($(this).attr('href')).text(langName);

        if (langCode === currentLang) {
          option.prop('selected', true);
          currentLangName = langName;
        }

        langSelect.append(option);
      });

      // 將當前語言顯示在選單標題中 (可選)
      languageDropdown.prepend('<span>' + currentLangName + '</span>');
      languageDropdown.addClass('language-selector'); // 添加一個 CSS 類

      // 監聽選單的 change 事件,跳轉到選定的語言頁面
      langSelect.on('change', function() {
        window.location.href = $(this).val();
      });

      // 移除原來的語言連結並將下拉選單添加到側邊欄
      languagePanel.empty().append(languageDropdown);

      // 你可能需要調整這個選擇器,以將下拉選單移動到更合適的位置
      // 例如,將其添加到側邊欄的頂部
      $('#mw-panel').prepend(languageDropdown);
    }
  }
});
$(function() {
  var languagePanel = $('#p-lang'); // 假設側邊欄有語言連結

  if (languagePanel.length) {
    var languageLinks = languagePanel.find('ul li a');

    if (languageLinks.length > 1) {
      var languageDropdown = $('<div id="top-language-dropdown"></div>').append('<label for="top-lang-select">語言:</label><select id="top-lang-select"></select>');
      var langSelect = languageDropdown.find('#top-lang-select');

      languageLinks.each(function() {
        var langCode = $(this).attr('lang') || $(this).attr('hreflang');
        var langName = $(this).text();
        var option = $('<option>').val($(this).attr('href')).text(langName);
        langSelect.append(option);
      });

      langSelect.on('change', function() {
        window.location.href = $(this).val();
      });

      // 將下拉選單添加到頁面的最上方 (您可能需要調整 CSS 定位)
      $('body').prepend(languageDropdown);

      // 移除原來的側邊欄語言連結 (可選)
      // languagePanel.remove();
    }
  }
});