MediaWiki:ExtractFirst.xsl
Материал из Викисловаря
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method='html'/> <xsl:variable name="dir">ltr</xsl:variable> <xsl:variable name="more">Дополнительно</xsl:variable> <xsl:variable name="error">Ошибка: </xsl:variable> <xsl:variable name="copyright"> © <a href="http://en.wiktionary.org/wiki/" rel="top">Викисловарь</a>. На условиях <a href="http://creativecommons.org/licenses/by-sa/3.0/" rel="license copyright">лицензии CC-BY-SA 3.0</a>.</xsl:variable> <xsl:variable name="contentLang" select="'ru'"/>
<xsl:variable name="pageName" select="concat('http://', $contentLang, '.wiktionary.org')"/>
<xsl:template match="/">
<html dir="{$dir}" lang="{$contentLang}" xml:lang="{$contentLang}">
<head>
<meta name="generator" content="Wiktionary Extract XSLT 1.07-RU"/>
<base target='_blank' href="{$pageName}" />
<title> Wiktionary extract</title>
<style>
#wordThisIsFor { font-weight:bold;}
a.wtif1 { color: black; text-decoration: none;}
a.wtif1:hover {text-decoration: underline;}
.disambig-see-also, .disambig-see-also-2 {display:inline;}
#container {background-color:white; padding: 0.5em; border: solid black thin;}
a.new {color: red;}
#error {color: red;font-size:larger;}
</style>
<script type='text/javascript'>
/*<![CDATA[*/
function setup () {
//Stuff to translate:
var preferLang = {'en': 'Английский', 'fr': 'Французский', 'de': 'Немецкий', ru: 'Русский', uk: 'Украинский', bg: 'Болгарский', 'qqqAny': null}; //for now.
var extractSeeAlso = /
(См. тж. <a[^>]*>.*?)<\/td>/; //no subexpressions!
var see_also_process = function (sa) {return sa[1];}
var createLink = 'Создать'; // text only.
var not_found = 'Невозможно получить определение выражения $1.';
//Stuff not to translate in general (setup).
var rd = location.search.match(/\&rd\=([^&]*)/); //is this from redirect. + converts to numeric.
rd = rd ? (+rd[1] + 1) : 1; //redirection level.
var showWord = 0; //default to not showing. 0 = none, 1 = bold, 2 = bold link.
var showWordRaw = location.search.match(/\&showWord\=([^&]*)/);
showWordRaw = showWordRaw ? showWordRaw[1] : 'none';
if (showWordRaw !== "none") {
showWord++;
}
if (showWordRaw === "link") {
showWord++;
}
var numbDfn = location.search.match(/\&count\=([^&]*)/); //count. + converts to numeric.
numbDfn = numbDfn ? (+numbDfn[1]) : 1; //default to 1
var pageURL = '/w/index.php?title=' + encodeURIComponent(decodeURIComponent(location.search.match(/\&page\=([^&]*)/)[1]));
var src = document.getElementById('src');
var display = document.getElementById('word-list');
var loc = location.search.match(/\&page\=([^&]*)/)[1];
var escWord = decodeURIComponent(loc).replace(/&/, '&').replace(/>/, '<').replace(/</, '>');
//note: wordEsc does not escape quotes. DO NOT PUT AS ATTRIBUTE VALUE
var preferLangCode = location.search.match(/\&lang\=([^&]*)/);
if (preferLangCode) { preferLangCode = preferLangCode[1]; }
else {preferLangCode = 'qqqAny';}
src.normalize();
var html = src.firstChild.data;
var def = html //may be redefined later.
//stuff you might need to translate, but hopefully won'tvar subSectRegex = new RegExp(' ' + preferLang[preferLangCode] + '[\\s\\S]*$'); var extractCurLangName = /(?!<span)([\s\S]*?)<\/h1>/; //first subexpression. ?!<span to prevent edit links try { //this assumes attribute order doesn't change!!! html = html.replace(/[\s\S]*?<\/div>/, );
if (preferLangCode && preferLang[preferLangCode]) {
try {
//strip off all definitions before tagret lang.
var subSect = html.match(subSectRegex)[0];
if (subSect.match(/
|