跳至內容
主選單
主選單
移至側邊欄
隱藏
導覽
首頁
近期變更
隨機頁面
MediaWiki說明
Quickpedia wiki
搜尋
搜尋
建立帳號
登入
個人工具
建立帳號
登入
用於已登出編輯者的頁面
了解更多
貢獻
討論
檢視 MediaWiki:Common.js 的原始碼
系統訊息
討論
English
閱讀
檢視原始碼
檢視歷史
工具
工具
移至側邊欄
隱藏
操作
閱讀
檢視原始碼
檢視歷史
一般
連結至此的頁面
相關變更
特殊頁面
頁面資訊
←
MediaWiki:Common.js
由於以下原因,您無權編輯此頁面:
本頁用來提供此 Wiki 軟體介面上的文字,並且已被設為保護以防止惡意修改。 如欲增加或修改 Wiki 的翻譯,請至
translatewiki.net
上的 MediaWiki 在地化專案。
您沒有權限來編輯此 JavaScript 頁面,因為這會影響到所有的網站訪客。
您可以檢視並複製此頁面的原始碼。
/* === MediaWiki Custom Language Variant Handling === */ $(function() { // 在這裡加入 console.log,方便除錯 console.log("wgContentLanguageVariants:", mw.config.get('wgContentLanguageVariants')); console.log("wgUserVariant:", mw.config.get('wgUserVariant')); // 1. **自定義語系下拉選單** var variants = mw.config.get('wgContentLanguageVariants'); // 獲取可用的語言變體 // 篩選出只包含簡體和繁體的變體 var filteredVariants = []; if (variants) { for (var i = 0; i < variants.length; i++) { var variantCode = variants[i]; if (variantCode === 'zh-tw' || variantCode === 'zh-hant' || variantCode === 'zh-cn' || variantCode === 'zh-hans') { filteredVariants.push(variantCode); } } } // 如果篩選後有至少兩種語系變體,才建立下拉選單 if (filteredVariants.length > 1) { var currentVariant = mw.config.get('wgUserVariant'); var languageDropdown = $('<div id="zh-variant-dropdown" class="portal"></div>'); // 增加portal class 讓外觀更像側邊欄組件 languageDropdown.append('<h3>中文</h3>'); // 增加標題 var variantSelect = $('<select id="zh-variant-select"></select>'); for (var i = 0; i < filteredVariants.length; i++) { var variantCode = filteredVariants[i]; var variantName = ''; switch (variantCode) { case 'zh-tw': case 'zh-hant': variantName = '繁體中文'; break; case 'zh-cn': case 'zh-hans': variantName = '簡體中文'; break; default: // 這裡應該不會執行到,因為上面已經過濾了 variantName = variantCode; } var option = $('<option>').val(variantCode).text(variantName); if (variantCode === currentVariant) { option.prop('selected', true); } variantSelect.append(option); } variantSelect.on('change', function() { var selectedVariant = $(this).val(); var currentUrl = new URL(window.location.href); // 設置 URL 參數 'variant' currentUrl.searchParams.set('variant', selectedVariant); // 如果頁面當前有 /簡體 或 /繁體 這種路徑,需要移除它們,因為我們現在用 ?variant= var pathParts = currentUrl.pathname.split('/'); var lastPart = pathParts[pathParts.length - 1]; if (lastPart === '簡體' || lastPart === '繁體') { pathParts.pop(); // 移除最後一個部分 currentUrl.pathname = pathParts.join('/'); } window.location.href = currentUrl.toString(); }); // 將下拉選單添加到側邊欄頂部 (通常是 #mw-panel 或 #p-navigation) // 選擇 #mw-panel 是為了讓它在整個側邊欄的頂部 $('#mw-panel').prepend(languageDropdown.append(variantSelect)); // 如果您的維基百科使用的是不同的側邊欄 ID,請調整這裡 // 例如:$('#p-navigation').prepend(languageDropdown.append(variantSelect)); } // 2. **自動語系導向邏輯 (基於瀏覽器語系,並使用 ?variant= 參數)** // 只有當頁面URL中沒有 `?variant=` 參數時才自動導向 var currentUrl = new URL(window.location.href); if (!currentUrl.searchParams.has('variant')) { var browserLang = (navigator.language || navigator.userLanguage).toLowerCase(); var simplifiedCodes = ['zh-cn', 'zh-sg', 'zh-hans']; var traditionalCodes = ['zh-tw', 'zh-hk', 'zh-mo', 'zh-hant']; var targetVariant = ''; if (simplifiedCodes.includes(browserLang)) { targetVariant = 'zh-hans'; // 導向簡體變體 } else if (traditionalCodes.includes(browserLang)) { targetVariant = 'zh-hant'; // 導向繁體變體 } else { // 如果瀏覽器語系既不是簡體也不是繁體中文,預設導向繁體 targetVariant = 'zh-hant'; } // 只有當目標變體與當前用戶變體不同時才導向 if (targetVariant && mw.config.get('wgUserVariant') !== targetVariant) { currentUrl.searchParams.set('variant', targetVariant); // 同樣,如果頁面當前有 /簡體 或 /繁體 這種路徑,需要移除它們 var pathParts = currentUrl.pathname.split('/'); var lastPart = pathParts[pathParts.length - 1]; if (lastPart === '簡體' || lastPart === '繁體') { pathParts.pop(); currentUrl.pathname = pathParts.join('/'); } window.location.href = currentUrl.toString(); } } // 3. **隱藏 MediaWiki 內建語系切換器 (如果存在)** // 這部分是為了防止兩個語系選單同時出現,造成混淆 $(document).ready(function() { // 這個 ready 函數其實可以省略,因為外層已經是 $(function(){}) var variantsMenu = $('#p-variants'); // MediaWiki 標準語系選單 ID if (variantsMenu.length > 0) { variantsMenu.hide(); // 直接隱藏整個內建選單 } }); }); // 此處為最外層 $(function() { ... }); 的結束 // 等頁面完全載入後執行 window.addEventListener('load', function() { // 隱藏整個 CAPTCHA 區塊 var captchaBlocks = document.querySelectorAll('.mw-captcha'); captchaBlocks.forEach(function(el) { el.style.display = 'none'; }); // 如果有單獨的輸入欄位,也隱藏它 var captchaInput = document.getElementById('mw-input-captchaWord'); if (captchaInput) { captchaInput.style.display = 'none'; } });
返回到「
MediaWiki:Common.js
」。
切換限制內容寬度