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

出自Quickpedia wiki
建立內容為「$(function() { // 檢查目前頁面的語言是否不是中文 if (mw.config.get('wgUserLanguage') !== 'zh') { // 嘗試設定內容語言為中文 mw.config.set('wgContentLanguage', 'zh'); // 如果有語言選擇器 (通常是下拉選單),嘗試選中中文選項 var languageSelector = document.getElementById('p-lang-btn'); // 根據您的 MediaWiki 皮膚和設定,這個 ID 可能不同 if (languageSelector && languageSelect…」的新頁面
 
無編輯摘要
第1行: 第1行:
$(function() {
$(function() {
   // 檢查目前頁面的語言是否不是中文
   // 檢查目前用戶的介面語言是否不是中文
   if (mw.config.get('wgUserLanguage') !== 'zh') {
   if (mw.config.get('wgUserLanguage') !== 'zh') {
     // 嘗試設定內容語言為中文
     // 嘗試設定內容語言為中文
     mw.config.set('wgContentLanguage', 'zh');
     mw.config.set('wgContentLanguage', 'zh');


     // 如果有語言選擇器 (通常是下拉選單),嘗試選中中文選項
     // 如果有語言選擇器,嘗試選中中文選項 (與之前的程式碼相同)
     var languageSelector = document.getElementById('p-lang-btn'); // 根據您的 MediaWiki 皮膚和設定,這個 ID 可能不同
     var languageSelector = document.getElementById('p-lang-btn');
     if (languageSelector && languageSelector.getElementsByTagName('ul').length > 0) {
     if (languageSelector && languageSelector.getElementsByTagName('ul').length > 0) {
       var languageList = languageSelector.getElementsByTagName('ul')[0].getElementsByTagName('li');
       var languageList = languageSelector.getElementsByTagName('ul')[0].getElementsByTagName('li');
第12行: 第12行:
         var link = languageList[i].getElementsByTagName('a')[0];
         var link = languageList[i].getElementsByTagName('a')[0];
         if (link && (link.getAttribute('lang') === 'zh' || link.getAttribute('hreflang') === 'zh')) {
         if (link && (link.getAttribute('lang') === 'zh' || link.getAttribute('hreflang') === 'zh')) {
          // 模擬點擊中文連結以切換語言
           window.location.href = link.getAttribute('href');
           window.location.href = link.getAttribute('href');
           return; // 停止繼續尋找
           return;
         }
         }
       }
       }
     } else {
     } else {
      // 如果沒有明顯的語言選擇器,嘗試強制重新載入 URL 並帶上語言參數
       var currentUrl = window.location.href;
       var currentUrl = window.location.href;
       var url = new URL(currentUrl);
       var url = new URL(currentUrl);
       url.searchParams.set('uselang', 'zh');
       url.searchParams.set('uselang', 'zh');
       window.location.href = url.toString();
       window.location.href = url.toString();
    }
  }
  // 嘗試將使用者偏好設定中的語言更改為 zh-tw (僅在登錄後生效)
  if (mw.config.get('wgUserName')) { // 檢查用戶是否已登錄
    // 檢查當前偏好設定的語言是否不是 zh-tw
    if (mw.config.get('wgUserLanguage') !== 'zh-tw') {
      // 嘗試修改 URL 並重新載入以應用 zh-tw 偏好
      var currentUrl = window.location.href;
      var url = new URL(currentUrl);
      url.searchParams.set('uselang', 'zh-tw');
      // 為了避免無限重定向,我們只在 URL 中沒有 uselang 參數或其值不是 zh-tw 時才重新載入
      if (!url.searchParams.has('uselang') || url.searchParams.get('uselang') !== 'zh-tw') {
        window.location.href = url.toString();
      }
     }
     }
   }
   }
});
});

於 2025年5月1日 (四) 02:47 的修訂

$(function() {
  // 檢查目前用戶的介面語言是否不是中文
  if (mw.config.get('wgUserLanguage') !== 'zh') {
    // 嘗試設定內容語言為中文
    mw.config.set('wgContentLanguage', 'zh');

    // 如果有語言選擇器,嘗試選中中文選項 (與之前的程式碼相同)
    var languageSelector = document.getElementById('p-lang-btn');
    if (languageSelector && languageSelector.getElementsByTagName('ul').length > 0) {
      var languageList = languageSelector.getElementsByTagName('ul')[0].getElementsByTagName('li');
      for (var i = 0; i < languageList.length; i++) {
        var link = languageList[i].getElementsByTagName('a')[0];
        if (link && (link.getAttribute('lang') === 'zh' || link.getAttribute('hreflang') === 'zh')) {
          window.location.href = link.getAttribute('href');
          return;
        }
      }
    } else {
      var currentUrl = window.location.href;
      var url = new URL(currentUrl);
      url.searchParams.set('uselang', 'zh');
      window.location.href = url.toString();
    }
  }

  // 嘗試將使用者偏好設定中的語言更改為 zh-tw (僅在登錄後生效)
  if (mw.config.get('wgUserName')) { // 檢查用戶是否已登錄
    // 檢查當前偏好設定的語言是否不是 zh-tw
    if (mw.config.get('wgUserLanguage') !== 'zh-tw') {
      // 嘗試修改 URL 並重新載入以應用 zh-tw 偏好
      var currentUrl = window.location.href;
      var url = new URL(currentUrl);
      url.searchParams.set('uselang', 'zh-tw');

      // 為了避免無限重定向,我們只在 URL 中沒有 uselang 參數或其值不是 zh-tw 時才重新載入
      if (!url.searchParams.has('uselang') || url.searchParams.get('uselang') !== 'zh-tw') {
        window.location.href = url.toString();
      }
    }
  }
});