Bước tới nội dung

Khác biệt giữa bản sửa đổi của “MediaWiki:Gadget-AVIM portlet.js”

Bách khoa toàn thư mở Wikipedia
Nội dung được xóa Nội dung được thêm vào
Sửa mẹo công cụ của các liên kết trợ giúp bằng cách định rõ máy chủ
Không có tóm lược sửa đổi
 
(Một sửa đổi ở giữa của cùng người dùng)
Dòng 173: Dòng 173:
.append(content);
.append(content);
$("#footer").append(portlet);
$("#footer").append(portlet);
break;
case "minerva": // Minerva
// Đưa các điều khiển vào “trình đơn tràn”.
var portlet = $("<div id='p-avim' class='portlet'></div>");
portlet.append($("<h5 class='toggle-list-item__label'></h5>").append(head_link))
.append(content);
var item = $("<li class='toggle-list-item'></li>").append(portlet);
$("#p-tb").append(portlet);
break;
break;
case "vector": // Vectơ
case "vector": // Vectơ

Bản mới nhất lúc 20:53, ngày 19 tháng 6 năm 2024

// Thiết lập
self.avimSettings = {
    headerText: "Gõ tiếng Việt",
    helpArticle: "Wikipedia:Gõ tiếng Việt",
    helpText: "Trợ giúp",
    helpServer: mw.config.get("wgServer"),
    methodArticleServer: "//vi.wikipedia.org",
    methods: [
        {value: 0, id: "auto", name: "Tự động", key: "F9"},
        {value: 1, id: "telex", name: "Telex", article: "Telex (kiểu gõ)#Quy ước telex"},
        {value: 2, id: "vni", name: "VNI", article: "VNI#Quy ước"},
        {value: 3, id: "viqr", name: "VIQR", article: "VIQR#Quy tắc"},
        {value: 4, id: "viqr2", name: "VIQR*"},
        {value: -1, id: "off", name: "Tắt", key: "F12"},
    ],
    options: [
        {id: "daucu", name: "Bỏ dấu kiểu cũ", command: "setDauCu", key: "F7"},
        {id: "ckspell", name: "Đúng chính tả", command: "setSpell", key: "F8"},
    ],
};

// Bản dịch
switch (mw.config.get("wgUserLanguage")) {
    case "en":
        self.avimSettings.headerText = "Vietnamese input";
        self.avimSettings.helpArticle = "Wikipedia:Gõ tiếng Việt/Tiếng Anh";
        self.avimSettings.helpText = "Help";
        self.avimSettings.methodArticleServer = "//en.wikipedia.org";
        self.avimSettings.methods[0].name = "Auto";
        self.avimSettings.methods[1].article = "Telex (IME)";
        self.avimSettings.methods[2].article = "VNI#VNI Input Method";
        self.avimSettings.methods[3].article = "Vietnamese Quoted-Readable#Syntax and usage";
        self.avimSettings.methods[5].name = "Off";
        self.avimSettings.options[0].name = "Old accents";
        self.avimSettings.options[1].name = "Enforce spelling";
        break;
    case "es":
        self.avimSettings.headerText = "Entrada en vietnamita";
        self.avimSettings.helpText = "Ayuda";
        self.avimSettings.methods[0].name = "Automática";
        self.avimSettings.methods[5].name = "Apagada";
        self.avimSettings.options[0].name = "Acentos viejos";
        self.avimSettings.options[1].name = "Ortografía correcta";
        break;
    case "fr":
        self.avimSettings.headerText = "Saisie en vietnamien";
        self.avimSettings.helpText = "Aide";
        self.avimSettings.methodArticleServer = "//fr.wikipedia.org";
        self.avimSettings.methods[0].name = "Automatique";
        self.avimSettings.methods[1].article = "vi:" + self.avimSettings.methods[1].article;
        self.avimSettings.methods[2].article = "vi:" + self.avimSettings.methods[2].article;
        self.avimSettings.methods[3].article = "Vietnamese Quoted-Readable";
        self.avimSettings.methods[5].name = "Éteint";
        self.avimSettings.options[0].name = "Vieux accents";
        self.avimSettings.options[1].name = "Correction d’orthographe";
        break;
}

$(function () {

/**
 * Cho ra URL tương đối giao thức đến trang wiki với tên được chỉ định.
 */
function articleURLFromTitle(title, server) {
    var components = title.match("^([^#]+)(?:#(.+))?");
    if (!components || !components[1]) return "";
    var lastComponent = components[1];
    if (components[2]) {
        lastComponent += "#";
        lastComponent += encodeURIComponent(components[2]).replace(/%20/g, "_")
                                                          .replace(/%/g, ".");
    }
    return server + mw.config.get("wgArticlePath").replace("$1", lastComponent);
}

/**
 * Tạo một liên kết đến trang được chỉ định và cho ra đối tượng bọc của jQuery.
 */
function linkFromArticle(title, server, text) {
    return $("<a href='" + articleURLFromTitle(title, server) + "' title='" +
             title + "'>" + text + "</a>");
}

var head_link = linkFromArticle(self.avimSettings.helpArticle,
                                self.avimSettings.helpServer,
                                self.avimSettings.headerText);
var content = $("<ul></ul>");

$.each(self.avimSettings.methods, function (i, method) {
    if (!method) return;
    
    var item = $("<li></li>");
    
    // Nút radio
    var radio = $("<input id='avim_" + method.id +
                  "' name='viet_method' type='radio' />");
    radio.click(function (evt) {
        AVIMObj.setMethod(method.value);
    });
    item.append(radio);
    
    // Nhãn
    var label = $("<label class='radio' for='avim_" + method.id + "'>" +
                  method.name + "</label>");
    item.append("&nbsp;");
    item.append(label);
    
    // Thông tin phụ
    if (method.article) {
        item.append("&nbsp;");
        item.append("<a href='" +
                       articleURLFromTitle(method.article,
                                           self.avimSettings.methodArticleServer) +
                       "' title='" + method.article + "'>(?)</a>");
    }
    if (method.key) {
        item.append("&nbsp;");
        item.append("<small>[" + method.key + "]</small>");
    }
    
    content.append(item);
});
content.append("<li><hr /></li>");
$.each(self.avimSettings.options, function (i, option) {
    if (!option) return;
    
    var item = $("<li></li>");
    
    // Hộp kiểm
    var checkbox = $("<input id='avim_" + option.id +
                     "' name='viet_method' type='checkbox' />");
    checkbox.click(function (evt) {
        AVIMObj[option.command](this);
    });
    item.append(checkbox);
    
    // Nhãn
    var label = $("<label class='radio' for='avim_" + option.id + "'>" +
                  option.name + "</label>")
    item.append("&nbsp;");
    item.append(label);
    
    // Thông tin phụ
    if (option.key) {
        item.append("&nbsp;");
        item.append("<small>[" + option.key + "]</small>");
    }
    
    content.append(item);
});

content = $("<div class='pBody'></div>").append(content);

switch (mw.config.get("skin")) {
    case "standard":    // Cổ điển
        $("#quickbar").append("<hr class='sep' />");
        var portlet = $("<div id='p-avim'></div>");
        portlet.append(head_link)
               .append(content);
        $("#quickbar").append(portlet);
        break;
    case "cologneblue": // Xanh Cologne
        var portlet = $("<div id='p-avim'></div>");
        portlet.append($("<h6></h6>").append(head_link))
               .append(content);
        $("#quickbar").append(portlet);
        break;
    case "nostalgia":   // Vọng cổ
//        content.remove("br");
//        content.find("hr").replaceWith(" | ");
        var portlet = $("<div id='p-avim'></div>");
        portlet.append($("<h5></h5>").append(head_link))
               .append(content);
        $("#footer").append(portlet);
        break;
    case "minerva":	// Minerva
    	// Đưa các điều khiển vào “trình đơn tràn”.
    	var portlet = $("<div id='p-avim' class='portlet'></div>");
        portlet.append($("<h5 class='toggle-list-item__label'></h5>").append(head_link))
               .append(content);
        var item = $("<li class='toggle-list-item'></li>").append(portlet);
        $("#p-tb").append(portlet);
        break;
    case "vector":  // Vectơ
    case "vector-2022":  // Vectơ 2022
        // Đặt liên kết vào (?) vì đề mục của hộp thu gọn không nên chuyển nguời
        // dùng ra khỏi trang.
        content.addClass("vector-menu-content");
        var portlet = $("<nav id='p-avim' class='mw-portlet mw-portlet-avim vector-menu vector-menu-portal portal vector-main-menu-group' role='navigation'></nav>");
        portlet.append($("<div id='p-avim-label' class='vector-menu-heading'></div>")
        			.append($("<span class='vector-menu-heading-label'></span>")
        				.append(head_link)))
               .append(content);
        $("#p-tb").before(portlet);
        break;
    default:    // Cá nhân, Chick, Đơn giản, Hiện đại
        var portlet = $("<div id='p-avim' class='portlet'></div>");
        portlet.append($("<h5></h5>").append(head_link))
               .append(content);
        $("#p-tb").before(portlet);
        break;
}

// Khi bấm F12, AVIMObj.keyDownHandler() cố ẩn phân tử #AVIMControl, cho nên nó
// cần phải tồn tại.
$(document.body).append("<div id='AVIMControl'></div>");

// Chắc chắn khởi tạo AVIM nếu trường hợp [[MediaWiki:Gadget-AVIM.js]] đã được
// chạy.
if (self.AVIMObj) {
    AVIMObj.setMethod(AVIMGlobalConfig.onOff ? AVIMGlobalConfig.method : -1);
    AVIMObj.setSpell(AVIMGlobalConfig.ckSpell);
    AVIMObj.setDauCu(AVIMGlobalConfig.oldAccent);
}

});