/*
FOREIGN TITLES
Description: Shows titles of corresponding articles in user-selected languages when available.
foreign_languages is an array of language codes
foreign_language_separator defines the separator used for in ahref titles interwiki links (as seen in popups).
(Optional, default is "–" as in en many other wikis; but notin all, e.g. ru has "–")
place_titles_horizontally controls the placement (optional, default is false)
Example:
foreign_languages = ["ru", "bg"];
foreign_language_separator = "–";
place_titles_horizontally = false;
importScript("User:Primaler/foreign titles.js"); // Backlink: [[User:Primaler/foreign titles.js]]
*/
//$(document).ready(foreign_titles);
$(foreign_titles);
function foreign_titles()
{
if ((typeof(foreign_languages) === "undefined") || (foreign_languages === null) ||
(mw.config.get('wgNamespaceNumber') !== 0) || // only works in mainspace
(mw.config.get("wgPageName") === "Main_Page")) // not on the main page
{
return;
}
else
{
if (typeof(foreign_language_separator) === "undefined") foreign_language_separator = '–';
if (typeof(place_titles_horizontally) === "undefined") place_titles_horizontally = false;
var new_paragraph = document.createElement("p");
new_paragraph.style.fontSize = "11px";
var first = true;
for (var i = 0; i < foreign_languages.length; i++)
{
var lang = foreign_languages[i],
lang_blocks = document.getElementsByClassName("interlanguage-link interwiki-" + lang);
if (lang_blocks.length > 0) // interwiki link found
{
var lang_block = lang_blocks[0],
lang_ahref = lang_block.firstChild,
lang_url = lang_ahref.href,
lang_title_raw = lang_ahref.title;
// format: "article_name separator language"
var separator_string = " " + foreign_language_separator + " ",
title_end_ind = lang_title_raw.lastIndexOf(separator_string),
lang_title = lang_title_raw.substring(0, title_end_ind);
var new_brake = document.createElement("br"),
new_tab = document.createTextNode(" , "),
new_text = document.createTextNode(lang + ": "),
new_ahref = create_ahref(lang_url, lang_title);
if (!first) new_paragraph.appendChild(place_titles_horizontally ? new_tab : new_brake);
new_paragraph.appendChild(new_text);
new_paragraph.appendChild(new_ahref);
first = false;
}
}
var title_block = document.getElementById("firstHeading"),
parent = title_block.parentNode;
parent.insertBefore(new_paragraph, title_block.nextSibling); // insert new paragraph after title
}
}
function create_ahref(url, text)
{
var ahref = document.createElement("a"),
text_node = document.createTextNode(text);
ahref.setAttribute("href", url);
ahref.appendChild(text_node);
return ahref;
}