MediaWiki:Gadget-easyTranslate.js

Վիքիպեդիայից՝ ազատ հանրագիտարանից

Ծանուցում. Հիշելուց հետո կատարված փոփոխությունները տեսնելու համար մաքրեք ձեր զննարկիչի հիշապահեստը. Mozilla / Firefox / Safari՝ Ctrl+Shift+R (Cmd+Shift+R Mac OS X-ում) Konqueror՝ F5 Opera՝ Tools→Preferences ընտրացանկից։ Internet Explorer՝ Ctrl+F5

/* global mw $ location */
window.onload = function() {
    if (mw.config.get( 'skin' ) != 'vector') {
        importScript("MediaWiki:Gadget-translatedFrom.js");
        return;
    }
    var $easyTranslateDialogText = document.createElement("div");
    mw.loader.using(['jquery.ui'], function() {
        var addedLangs = {};
        function confirmLang(e) {
            var lang = e.target.getAttribute("easyTranslate-url").match(/^https:\/\/([^\.]+).+/)[1];
            var title = e.target.getAttribute("easyTranslate-url").match(/^.+\/wiki\/([\s\S]+)$/)[1];
            $easyTranslateDialogText.innerHTML = "Վստա՞հ եք, որ այս հոդվածը թարգմանվել է " + lang + ":wikipedia-ից։ Հաստատելու դեպքում Դուք հոդվածի քննարկման էջում կավելացնեք «Թարգմանված հոդված» կաղապարը։";
            $('<div>').append($easyTranslateDialogText).dialog({
                width: 400,
                modal: false,
                title: "Թարգմանված հոդված",
                draggable: true,
                dialogClass: "wikiEditor-toolbar-dialog",
                buttons: [{
                        text: "Ոչ",
                        click: function() {
                            $(this).dialog("close");
                        }
                    },
                    {
                        text: "Այո",
                        click: function() {
                            var that = this;
                            if (!addedLangs[lang]) {
                                addedLangs[lang] = true;
                                addToTalkPage(lang, title).then(function() {
                                    e.target.style.display = 'none';
                                    $(that).dialog("destroy");
                                    $(that).remove();
                                });
                            }
                        }
                    }
                ],
                close: function() {
                    $(this).dialog("destroy");
                    $(this).remove();
                }
            });
        }
        var addToTalkPage = function(lang, title) {
            addedLangs[lang] = true;
            var foreignApi = new mw.ForeignApi( 'https://' + lang + '.wikipedia.org/w/api.php' );
            var api = new mw.Api();
            return foreignApi.get({
                titles: [title],
                action: 'query',
                prop: 'revisions',
                rvprop: 'ids',
            }).then(function(data) {
                for (var i in data.query.pages) {
                    var revid = data.query.pages[i].revisions[0].revid;
					title = title.replace(/_/g, ' ');
					var date = new Date();
					var dateFormated = date.getFullYear() + ' թվականի ' + mw.config.get('wgMonthNames')[date.getMonth()+1].toLowerCase() + 'ի ' + date.getDate();
					var template = '{{ԹՀ/նոր|' + lang + '|' + title + '|' + revid + '|' + mw.config.get('wgCurRevisionId') + '|' + dateFormated + '}}';
                    return api.post({
                        'action': 'edit',
                        'title': "Քննարկում:" + mw.config.get('wgPageName'),
                        'prependtext': template + '\n',
                        'summary': '+' + template,
                        'token': mw.user.tokens.get('csrfToken')
                    });
                }
            });
        };
		
		function start() {
            var interwikis = document.getElementsByClassName("interlanguage-link");
            for (var i = 0; i < interwikis.length; i++) {
                var enc_url = decodeURIComponent(interwikis[i].firstChild.href);
                var easyTranslateButton = document.createElement("img");
                easyTranslateButton.className = "easyTranslate-Button";
                easyTranslateButton.src = "https://upload.wikimedia.org/wikipedia/commons/thumb/e/e0/OOjs_UI_icon_language-ltr-progressive.svg/24px-OOjs_UI_icon_language-ltr-progressive.svg.png";
                easyTranslateButton.setAttribute("title", "Թարգմանված այս լեզվից");
                easyTranslateButton.setAttribute("easyTranslate-url", enc_url);
                easyTranslateButton.width = 14;
                easyTranslateButton.height = 14;
                interwikis[i].appendChild(easyTranslateButton);
                easyTranslateButton.addEventListener("click", confirmLang);
            }
		}
        
        if (mw.config.get('wgNamespaceNumber') === 0 && mw.config.get('wgUserName')) {
			var talkPage = document.getElementById("ca-talk");
			if (talkPage.classList.contains("new")) {
				start();
			} else {
				$(mw.util.addPortletLink('p-tb',
										'#easyTranslate',
										'Ավելացնել ԹՀ',
										't-page-easyTranslate',
										'Հոդվածի քննարկման էջում ավելացնել «Թարգմանված հոդված» կաղապարը')
				).click(function() {
					if (document.getElementsByClassName('easyTranslate-Button').length < 1) {
						start();
					}
				});
			}
        }
    });
}();