Модуль:Не перекладено

Модуль:Не перекладено (обг. · · історія · посилання · документація · підсторінки · тести – результати)
Цей шаблон використовується на 21 000+ сторінках і його зміни будуть дуже помітними. Будь ласка, перевіряйте будь-які зміни на підсторінках /пісочниці та /тестів, або в особистому просторі, та зважайте на обговорення змін на сторінці обговорення перед їхнім впровадженням. |
Модуль шаблону {{Не перекладено}} (і·о·д·р·←·#)
Документація нижче включена зі сторінки спільної документації «Шаблон:Не перекладено/документація»:
Шаблон використовується в ситуації, коли є сторінка в іншому проекті Вікімедіа і вважається за необхідне створення відповідної сторінки в українській Вікіпедії[1] Якщо переклад ще ніхто не зробив, шаблон ставить поряд з червоним посиланням посилання на іншомовну сторінку, що пропонується для перекладу. Як тільки переклад буде зроблено, цей текст автоматично повинен стати посиланням на сторінку в українському розділі.
Якщо в іншомовному розділі статті ще немає, а є лише червоне посилання, за яким вона, можливо, з'явиться, то замість цього шаблону слід використовувати звичайне червоне посилання, або шаблон {{нпні}}.
Код для вставки та опис параметрівРедагувати
{{не перекладено|треба=Назва майбутньої статті в українській Вікіпедії|текст=Вигляд у статті|мова=Код мови ex Вікіпедії|є=Назва ex статті}}
або просто
{{не перекладено|Назва статті|Вигляд у статті|ex|Назва ex статті }}
Опис параметрів:
|треба=
(|1=
) — назва майбутньої сторінки в українській Вікіпедії. Обов'язковий параметр.|текст=
(|2=
) — текст посилання на українську сторінку. За відсутністю вставляється значення параметру|треба=
.|мова=
(|3=
) — код мови, з якої пропонується зробити переклад сторінки. За відсутністю параметра використовуєтьсяen
.|є=
(|4=
) — посилання на сторінку в іншомовному розділі. За відсутністю параметра вставляється значення параметру|треба=
.
Приклади та результати використання шаблонуРедагувати
Лише один параметр обов'язковий, тому інші можна опускати у випадку, коли стаття в українській Вікіпедії має називатися так само, як стаття в англійській Вікіпедії. Наприклад:
{{не перекладено|noMicrosoft}}
Частіше можна зустріти використання двох параметрів:
{{не перекладено|Дональд Бредман|||Donald Bradman}}
{{не перекладено|треба=Дональд Бредман|є=Donald Bradman}}
або трьох параметрів:
{{не перекладено|Дональд Бредман||ru|Дональд Бредман}}
{{не перекладено|треба=Дональд Бредман|мова=ru|є=Дональд Бредман}}
чи
{{не перекладено|Дональд Бредман|Бредман||Donald Bradman}}
{{не перекладено|треба=Дональд Бредман|текст=Бредман|є=Donald Bradman}}
Якщо стаття існує та дії після перекладуРедагувати
{{не перекладено|треба=Кім Кардашян|текст=Кім|мова=ru|є=Кардашян, Ким}}
Або
{{не перекладено|Кім Кардашян|Кім|ru|Кардашян, Ким}}
Коли в українській Вікіпедії з'являється переклад іншомовної статті, шаблон автоматично підміняє посилання і надалі його можна прибрати (але він не висвічується!).
Для того, щоб прибрати шаблон, треба на його місці поставити звичайне внутрішнє посилання на сторінку вигляду [[посилання|якийсь текст]].
Ви можете також почекати і бот зробить цю заміну за Вас, якщо на сторінці не буде виявлено проблем). Ви можете спостерігати за сторінками з неактуальним шаблоном у Категорія:Вікіпедія:Статті з неактуальним шаблоном Не перекладено (55). Щоби вони туди не потрапляли, використовуйте додатковий параметр nocat (не рекомендується): {{не перекладено|Кім Кардашян|Кім|ru|Кардашян, Ким|nocat=1}}
Якщо статті не існуєРедагувати
{{не перекладено|треба=Козлодерищенськ|є=Kozloderischensk}}
Якщо українського перекладу іншомовної статті не існує, завдяки шаблону посилання на статтю буде червоним, що дозволяє, перейшовши за цим посиланням, почати роботу над статтею, якої бракує. Бот автоматично генерує детальні списки найбільш необхідних неперекладених сторінок та сторінок з невірно використаним шаблоном «Не перекладено».
Список усіх підтримуваних мовРедагувати
Див. такожРедагувати
Шаблон для додання посилань на сторінки в інших розділах Вікіпедії (поруч із червоними посиланнями в українській).
Параметр | Опис | Тип | Статус | |
---|---|---|---|---|
Треба | 1 | Назва бажаної (але відсутньої) в українській Вікіпедії сторінки | Рядок | обов'язковий |
Текст | 2 | Відображуваний текст, для випадків коли відрізняється від потрібної назви сторінки, наприклад, відмінком чи множиною/одниною | Рядок | пропонований |
Мова | 3 | Код мовного розділу, де відповідна сторінка є. Якщо не зазначено — буде код англійської
| Рядок | пропонований |
є | 4 | Назва в іншому проекті Вікімедіа. Можна не заповнювати, якщо назви в українській та іншому проекті збігаються | Рядок | пропонований |
не категоризувати? | nocat | Будь-яке значення, якщо автоматична категоризація не потрібна | Рядок | необов'язковий |
Документація вище включена з Модуль:Не перекладено/документація. (ред. | історія) Дописувачі можуть експериментувати на підсторінках пісочниця (створити | дзеркало) та тести (створити) цього шаблону. Будь ласка, додавайте категорії до підсторінки /документація. Підсторінки цієї сторінки. |
- ↑ Для посилання в інші вікі використовуйте вікіпосилання з префіксом відповідного проекту, хоча це необхідно рідко коли, зазвичай на сторінках обговорення чи в джерелах. При цьому, вікі не може бути джерелом сама для себе, окрім вікіджерел.
-- Модуль покликаний замінити, а згодом розширити новим функціоналом вікікод
-- однойменного шаблону.
-- TODO Докоментувати код
-- TODO Створити документацію до модуля
-- TODO Імплементувати фічі роботи з ВД запропоновані Атою на СО шаблону
local p = {}
-- Щоб порожні використання параметрів вважались нілевими. Нілеві значення, на
-- відміну від порожніх рядків, дають булеву хибу для умовних операторів.
-- Кращий спосіб робити цю валідацію вітається.
local function init(vari)
if vari == "" then
return nil
else
return vari;
end
end
-- має замінити [[Шаблон:Не перекладено/lang]]
local function conjugatedLanguagePhrase(language, nocat, currentTitleText)
-- TODO відсортувати за абеткою (будь-якою)
-- TODO замінити на якусь дуже розумну функцію з витягуванням назв мов з
-- рушія, або ж на використання функції з іншого модуля
local phrase = "";
local cat = "";
-- TODO зробити кращий вивід категорій-індикаторів помилок
local languagePairs = {
["d"] = "Вікіданих",
["simple"] = "англійською",
["en"] = "англійською",
["et"] = "естонською",
["ru"] = "російською",
["de"] = "німецькою",
["fr"] = "французькою",
["la"] = "латиною",
["es"] = "іспанською",
["uk"] = "українською",
["it"] = "італійською",
["pt"] = "португальською",
["pl"] = "польською",
["ba"] = "башкирською",
["el"] = "грецькою",
["bg"] = "болгарською",
["ja"] = "японською",
["nl"] = "нідерландською",
["he"] = "на івриті",
["be"] = "білоруською",
["be-tarask"] = "білоруською",
["be-x-old"] = "білоруською",
["sv"] = "шведською",
["fi"] = "фінською",
["am"] = "вірменською",
["lv"] = "латиською",
["ar"] = "арабською",
["zh"] = "китайською",
["az"] = "азербайджанською",
["tr"] = "турецькою",
["lt"] = "литовською",
["hu"] = "угорською",
["no"] = "норвезькою (букмол)",
["nn"] = "норвезькою (нюношк)",
["sr"] = "сербською",
["cs"] = "чеською",
["cz"] = "чеською",
["ga"] = "ірландською",
["ro"] = "румунською",
["crh"] = "кримськотатарською",
["da"] = "данською",
["ca"] = "каталонською",
["hr"] = "хорватською",
["fa"] = "на фарсі",
["sa"] = "санскриті",
["sk"] = "словацькою",
["id"] = "індонезійською",
["ko"] = "корейською",
["os"] = "осетинською",
["is"] = "ісландською",
["mn"] = "монгольською",
["hi"] = "на хінді",
["tt"] = "татарською",
["eu"] = "баскською",
["cy"] = "валлійською",
["mk"] = "македонською",
["uz"] = "узбецькою",
["sl"] = "словенською",
["kk"] = "казахською",
["sq"] = "албанською",
["gd"] = "гаельською",
["eo"] = "есперанто",
["fy"] = "західнофризькою",
["hy"] = "вірменською",
["ka"] = "грузинською",
["mdf"] = "мокшанською",
["nb"] = "норвезькою (букмол)",
["rue"] = "русинською",
["sah"] = "якутською",
["sh"] = "сербохорватською",
["tl"] = "тагальською",
["vi"] = "в'єтнамською",
["yi"] = "на їдиші",
["ms"] = "малайською",
["tg"] = "таджицькою",
["bs"] = "боснійською",
["si"] = "сингальською",
["ur"] = "мовою урду",
["ps"] = "мовою пушту",
["km"] = "кхмерською",
["th"] = "тайською",
["to"] = "тонганською",
["lo"] = "лаоською",
["dv"] = "мальдівською",
["br"] = "бретонською",
["aa"] = "афарською",
["ab"] = "абхазькою",
["af"] = "мовою африкаанс",
["ak"] = "мовою акан",
["am"] = "амхарською",
["an"] = "арагонською",
["as"] = "ассамською",
["av"] = "аварською",
["ay"] = "мовою аймара",
["pap"] = "мовою пап’яменто",
["lb"] = "люксембурзькою",
["ku"] = "курдською",
["so"] = "сомалійською",
["mt"] = "мальтійською",
["na"] = "науруанською",
["ne"] = "непальською",
["gl"] = "галісійською",
["sc"] = "сардинською",
["scn"] = "сицилійською",
["ky"] = "киргизькою",
["wa"] = "валлонською",
["kl"] = "ґренландською",
["fo"] = "фарерською",
["ast"] = "астурійською",
["kv"] = "мовою комі",
["tyv"] = "тувинською",
["ce"] = "чеченською",
["cv"] = "чуваською",
["rw"] = "руандійською",
["haw"] = "гавайською",
["ch"] = "мовою чаморро",
["co"] = "корсиканською",
["als"] = "алеманським діалектом німецької мови",
["ceb"] = "себуанською",
["frp"] = "франко-провансальською",
["bn"] = "бенгальською",
["myv"] = "ерзянською",
["sw"] = "мовою суахілі",
["oc"] = "окситанською"
}
conjugatedLanguageName = languagePairs[language];
if conjugatedLanguageName then
phrase = phrase .. conjugatedLanguageName;
else
phrase = phrase .. "(помилка: непідтримувана мова)";
if not nocat then
cat = cat .. "[[Категорія:Вікіпедія:Статті з непідтримуваною мовою в шаблоні Не перекладено|" .. language .. "]]";
end
end
local unconjugatable = {
["d"] = true,
["eo"] = true,
["he"] = true,
["sa"] = true,
["hi"] = true,
["fa"] = true,
["la"] = true,
["yi"] = true,
["ur"] = true,
["ps"] = true,
["af"] = true,
["ak"] = true,
["ay"] = true,
["pap"] = true,
["kv"] = true,
["ch"] = true,
["als"] = true
}
if not unconjugatable[language] then
phrase = phrase .. " мовою";
end
return {phrase, cat};
end
-- Головна функція
function p.main(frame)
-- Витягуємо параметри батьківського шаблону
local parent = frame:getParent();
local args = parent.args;
-- Перетягування батьківських параметрів у змінні
local needed = init(args["треба"]) or init(args[1]);
local text = init(args["текст"]) or init(args[2]);
local language = init(args["мова"]) or init(args[3]) or "en";
local exist = init(args["є"]) or init(args[4]) or init(args[1]);
-- відрізати прогалини
language = string.gsub(language, "(%s+)", "");
-- Створюємо таблицю поточної сторінки щоб перевірити її пн, щоб разом з
-- параметром nocat вирішити чи треба її категоризувати
local currentTitle = mw.title.getCurrentTitle();
-- Назва поточної сторінки. Використовуватиметься для ключів сортування
local currentTitleText = currentTitle.text;
-- Витягуємо параметр nocat
local nocat = init(args["nocat"]);
-- та перевіряємо простір назв поточної сторінки
-- не порожнє значення nocat та нульовий простір назв означають що сторінку
-- можна категоризувати.
-- інші простори ще й як треба категоризувати, особливо категорією "неактуальний шаблон".
-- інакше обхід категорії Вікіпедія:Статті з неактуальним шаблоном Не перекладено
-- не виправляє наприклад включення в шаблонах, а це потрібно, бо інакше статті з цим шаблоном
-- в цю категорію потрапляють, але шаблону не містять, його треба прибрати з якогось включення
local ns = currentTitle.namespace;
if ns == 1 or ns == 2 or ns == 3 then nocat = 1; end
-- Головна змінна побудови рядка виводу
local wrt = "";
-- Таблиця назви яка "треба"
if needed == nil then
error("Параметр з назвою сторінки яку треба створити обов'язковий (перший параметр, або параметр треба)")
end
local neededTitle = mw.title.new(needed, "");
-- Булева змінна, яка показує чи існує стаття, яка "треба"
local neededExists = neededTitle.exists;
-- Створюмо внутрішнє посилання на статтю, що "треба"
local linkToNeeded = "";
linkToNeeded = linkToNeeded .. "[[";
linkToNeeded = linkToNeeded .. needed;
if text then
linkToNeeded = linkToNeeded .. "|" .. text;
end
linkToNeeded = linkToNeeded .. "]]";
-- Не залежно від того чи стаття, що "треба" існує ми робимо на неї
-- посилання. Що змінюється — лише колір — і це за нас обробляє рушій
wrt = wrt .. linkToNeeded;
if neededExists then
-- Дії, що здійснюється якщо стаття, яка "треба" існує
local alert = mw.html.create("span");
alert:addClass("noprint visible-to-contributors");
alert:attr("title","Шаблон «не перекладено» не замінено");
alert:css({["color"]="red"});
alert:wikitext("●");
wrt = wrt .. tostring(alert);
if not nocat then
-- Дії, які здійснюються якщо цю сторінку можна категоризувати
wrt = wrt .. "[[Категорія:Вікіпедія:Статті з неактуальним шаблоном Не перекладено|" .. currentTitleText .. "]]"
end
else
-- Дії, які здійснюються якщо стаття, яка "треба" не існує
-- Створюємо HTML-елемент тексту у верхньому індексі
local sup = mw.html.create("sup");
-- Додаємо до нього клас "noprint"
sup:addClass("noprint");
local linkToExist = "";
linkToExist = linkToExist .. "[[";
linkToExist = linkToExist .. ":" .. language .. ":" .. exist;
linkToExist = linkToExist .. "|";
local span = mw.html.create("span");
local spanCSS = {
["font-size"] = "normal",
["font-style"] = "normal",
["font-weight"] = "normal"
}
span:css(spanCSS);
spanTitle = "";
-- я (Base) не маю жодного уявлення що б це мало бути, але це порівняння
-- з "d" походить з оригінального коду. Потребує дослідження, оскільки
-- фічу не документовано.
-- Це ж значною мірою стосується й решти умовних операторів, що
-- стосуються атрибуту title
-- "d" - робить посилання на Вікідані
if language == "d" then
spanTitle = spanTitle .. "Сторінка статті ".. needed .. " на";
else
if exist then
spanTitle = spanTitle .. exist .. " — в";
else
spanTitle = spanTitle .. "В";
end
spanTitle = spanTitle .. "ерсія статті «".. needed .."»";
end
conjugatedLanguagePhraseAndCat = conjugatedLanguagePhrase(language, nocat, currentTitleText);
spanTitle = spanTitle .. " " .. conjugatedLanguagePhraseAndCat[1];
span:attr("title", spanTitle);
span:wikitext("[" .. language .. "]");
linkToExist = linkToExist .. tostring(span);
linkToExist = linkToExist .. "]]";
linkToExist = linkToExist .. conjugatedLanguagePhraseAndCat[2];
sup:wikitext(linkToExist);
wrt = wrt .. tostring(sup);
end
return wrt;
end
return p;