CINXE.COM

plugin:lang [DokuWiki]

<!DOCTYPE html> <html lang="en" dir="ltr" class="no-js"> <head> <meta charset="utf-8" /> <title>plugin:lang [DokuWiki]</title> <meta name="generator" content="DokuWiki"/> <meta name="theme-color" content="#008800"/> <meta name="robots" content="index,follow"/> <meta name="keywords" content="plugin,lang"/> <link rel="search" type="application/opensearchdescription+xml" href="/lib/exe/opensearch.php" title="DokuWiki"/> <link rel="start" href="/"/> <link rel="contents" href="/plugin:lang?do=index" title="Sitemap"/> <link rel="manifest" href="/lib/exe/manifest.php"/> <link rel="alternate" type="application/rss+xml" title="Recent Changes" href="/feed.php"/> <link rel="alternate" type="application/rss+xml" title="Current namespace" href="/feed.php?mode=list&amp;ns=plugin"/> <link rel="edit" title="Edit this page" href="/plugin:lang?do=edit"/> <link rel="alternate" type="text/html" title="Plain HTML" href="/_export/xhtml/plugin:lang"/> <link rel="alternate" type="text/plain" title="Wiki Markup" href="/_export/raw/plugin:lang"/> <link rel="canonical" href="https://www.dokuwiki.org/plugin:lang"/> <link rel="stylesheet" href="/lib/exe/css.php?t=dokuwiki&amp;tseed=f1005bad3d81fc9c803c7f93d32a390e"/> <script >var NS='plugin';var JSINFO = {"plugins":{"edittable":{"default columnwidth":""}},"id":"plugin:lang","namespace":"plugin","ACT":"show","useHeadingNavigation":0,"useHeadingContent":0};(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js" defer="defer"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js" defer="defer"></script> <script src="/lib/exe/js.php?t=dokuwiki&amp;tseed=f1005bad3d81fc9c803c7f93d32a390e&amp;lang=en" defer="defer"></script> <meta name="viewport" content="width=device-width,initial-scale=1" /> <link rel="shortcut icon" href="/lib/tpl/dokuwiki/images/favicon.ico" /> <link rel="apple-touch-icon" href="/lib/tpl/dokuwiki/images/apple-touch-icon.png" /> <meta name="verify-v1" content="OVxl3gsCv2MhZqh1cBQyl0JytWXSwXMjyvwc+4w3WtA=" /> <meta name="google-site-verification" content="YhTVK69hW94ZXUtc2zSLPxTkZKbZIn0zK67mz5WQB-E" /> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=UA-83791-1"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-83791-1', { 'anonymize_ip': true }); </script> </head> <body> <div id="dokuwiki__site"><div id="dokuwiki__top" class="site dokuwiki mode_show tpl_dokuwiki showSidebar hasSidebar"> <!-- ********** HEADER ********** --> <header id="dokuwiki__header"><div class="pad group"> <div class="headings group"> <ul class="a11y skip"> <li><a href="#dokuwiki__content">skip to content</a></li> </ul> <h1 class="logo"><a href="/start" accesskey="h" title="Home [h]"><img src="/lib/tpl/dokuwiki/images/logo.png" width="64" height="64" alt="" /><span>DokuWiki</span></a></h1> <p class="claim">It's better when it's simple</p> </div> <div class="tools group"> <!-- USER TOOLS --> <div id="dokuwiki__usertools"> <h3 class="a11y">User Tools</h3> <ul> <li class="action login"><a href="/plugin:lang?do=login&amp;sectok=" title="Log In" rel="nofollow"><span>Log In</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10 17.25V14H3v-4h7V6.75L15.25 12 10 17.25M8 2h9a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2v-4h2v4h9V4H8v4H6V4a2 2 0 0 1 2-2z"/></svg></a></li> </ul> </div> <!-- SITE TOOLS --> <div id="dokuwiki__sitetools"> <h3 class="a11y">Site Tools</h3> <form action="/start" method="get" role="search" class="search doku_form" id="dw__search" accept-charset="utf-8"><input type="hidden" name="do" value="search" /><input type="hidden" name="id" value="plugin:lang" /><div class="no"><input name="q" type="text" class="edit" title="[F]" accesskey="f" placeholder="Search" autocomplete="on" id="qsearch__in" value="" /><button value="1" type="submit" title="Search">Search</button><div id="qsearch__out" class="ajax_qsearch JSpopup"></div></div></form> <div class="mobileTools"> <form action="/doku.php" method="get" accept-charset="utf-8"><div class="no"><input type="hidden" name="id" value="plugin:lang" /><select name="do" class="edit quickselect" title="Tools"><option value="">Tools</option><optgroup label="Page Tools"><option value="edit">Edit this page</option><option value="revisions">Old revisions</option><option value="backlink">Backlinks</option></optgroup><optgroup label="Site Tools"><option value="recent">Recent Changes</option><option value="media">Media Manager</option><option value="index">Sitemap</option></optgroup><optgroup label="User Tools"><option value="login">Log In</option></optgroup></select><button type="submit">&gt;</button></div></form> </div> <ul> <li class="action recent"><a href="/plugin:lang?do=recent" title="Recent Changes [r]" rel="nofollow" accesskey="r">Recent Changes</a></li><li class="action media"><a href="/plugin:lang?do=media&amp;ns=plugin" title="Media Manager" rel="nofollow">Media Manager</a></li><li class="action index"><a href="/plugin:lang?do=index" title="Sitemap [x]" rel="nofollow" accesskey="x">Sitemap</a></li> </ul> </div> </div> <!-- BREADCRUMBS --> <div class="breadcrumbs"> <div class="trace"><span class="bchead">Trace:</span> <span class="bcsep">•</span> <span class="curid"><bdi><a href="/plugin:lang" class="breadcrumbs" title="plugin:lang">lang</a></bdi></span></div> </div> <hr class="a11y" /> </div></header><!-- /header --> <div class="wrapper group"> <!-- ********** ASIDE ********** --> <nav id="dokuwiki__aside" aria-label="Sidebar"><div class="pad aside include group"> <h3 class="toggle">Sidebar</h3> <div class="content"><div class="group"> <p> <strong>Learn about DokuWiki</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/features" class="wikilink1" title="features" data-wiki-id="features">Features</a> &amp; <a href="/blogroll" class="wikilink1" title="blogroll" data-wiki-id="blogroll">reviews</a> </div> </li> <li class="level1"><div class="li"> <a href="/install" class="wikilink1" title="install" data-wiki-id="install">Installation guide</a></div> </li> <li class="level1"><div class="li"> <a href="/manual" class="wikilink1" title="manual" data-wiki-id="manual">User manual</a> &amp; <a href="/wiki:syntax" class="wikilink1" title="wiki:syntax" data-wiki-id="wiki:syntax">syntax</a></div> </li> <li class="level1"><div class="li"> <a href="/changes" class="wikilink1" title="changes" data-wiki-id="changes">Release notes</a></div> </li> <li class="level1"><div class="li"> <a href="/faq" class="wikilink1" title="faq" data-wiki-id="faq">FAQ</a></div> </li> </ul> <p> <strong>Advanced Use</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/extensions" class="wikilink1" title="extensions" data-wiki-id="extensions">Extensions</a></div> </li> <li class="level1"><div class="li"> <a href="/development" class="wikilink1" title="development" data-wiki-id="development">Development manual</a></div> </li> </ul> <p> <strong>Corporate Use</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/faq:support" class="wikilink1" title="faq:support" data-wiki-id="faq:support">Get support</a></div> </li> <li class="level1"><div class="li"> <a href="/donate" class="wikilink1" title="donate" data-wiki-id="donate">Donations</a></div> </li> </ul> <p> <strong>Our Community</strong> </p> <ul> <li class="level1"><div class="li"> <a href="/teams:getting_involved" class="wikilink1" title="teams:getting_involved" data-wiki-id="teams:getting_involved">Get involved</a></div> </li> <li class="level1"><div class="li"> <a href="/dokuinstall" class="wikilink1" title="dokuinstall" data-wiki-id="dokuinstall">Users</a></div> </li> <li class="level1"><div class="li"> <a href="http://forum.dokuwiki.org" class="urlextern" title="http://forum.dokuwiki.org">User forum</a></div> </li> <li class="level1"><div class="li"> <a href="/mailinglist" class="wikilink1" title="mailinglist" data-wiki-id="mailinglist">Development mailinglist</a></div> </li> </ul> <hr /> <p> Follow us on <a href="https://phpc.social/@dokuwiki" class="urlextern" title="https://phpc.social/@dokuwiki">Mastodon</a> and other <a href="/social" class="wikilink1" title="social" data-wiki-id="social">social networks</a>. </p> <p> <a href="/privacy" class="wikilink1" title="privacy" data-wiki-id="privacy">Our Privacy Policy</a> </p> </div></div> </div></nav><!-- /aside --> <!-- ********** CONTENT ********** --> <main id="dokuwiki__content"><div class="pad group"> <div class="pageId"><span>plugin:lang</span></div> <div class="page group"> <!-- wikipage start --> <!-- TOC START --> <div id="dw__toc" class="dw__toc"> <h3 class="toggle">Table of Contents</h3> <div> <ul class="toc"> <li class="level1"><div class="li"><a href="#language_syntax_plugin">Language Syntax PlugIn</a></div> <ul class="toc"> <li class="level2"><div class="li"><a href="#usage">Usage</a></div> <ul class="toc"> <li class="level3"><div class="li"><a href="#examples">Examples</a></div></li> </ul> </li> <li class="level2"><div class="li"><a href="#installation">Installation</a></div></li> <li class="level2"><div class="li"><a href="#plugin_source">Plugin Source</a></div> <ul class="toc"> <li class="level3"><div class="li"><a href="#changes">Changes</a></div></li> </ul> </li> <li class="level2"><div class="li"><a href="#see_also">See also</a></div> <ul class="toc"> <li class="level3"><div class="li"><a href="#plugins_by_the_same_author">Plugins by the same author</a></div></li> </ul> </li> <li class="level2"><div class="li"><a href="#discussion">Discussion</a></div></li> </ul></li> </ul> </div> </div> <!-- TOC END --> <h1 class="sectionedit1" id="language_syntax_plugin">Language Syntax PlugIn</h1> <div class="level1"> <div class="pluginrepo_entry"><div class="usageInfo"><div class="compatibility"><p class="label">Compatible with DokuWiki</p><p>2005-07-13+</p></div><ul class="actions"><li><a class="download" href="http://dev.mwat.de/dw/syntax_plugin_lang.zip">Download</a></li></ul><div class="clearer"></div></div><div class="mainInfo"><p class="description"><a class="media" href="/plugins"><img alt="plugin" class="medialeft" src="/lib/plugins/pluginrepo/images/dwplugin.png" width="60" height="60" /></a> This plugin allows for adding markup to indicate other languages.</p></div><div class="metaInfo"><dl><dt>Last updated on</dt><dd>2007-08-15</dd><dt>Provides</dt><dd><a href="/plugins?plugintype=1#extension__table" class="wikilink1" title="List all Syntax plugins">Syntax</a></dd></dl></div><div class="moreInfo"><div class="notify"><p>This extension has not been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues.</p></div><p class="similar">Similar to <a href="/plugin:wrap" class="wikilink1" title="plugin:wrap" data-wiki-id="plugin:wrap">wrap</a></p><p class="tags">Tagged with <a href="/plugins?plugintag=language#extension__table" class="wikilink1" title="List all plugins with this tag">language</a></p></div><div class="authorInfo"><strong>By <a href="mailto:support%20%5Bat%5D%20mwat%20%5Bdot%5D%20de" class="mail" title="support [at] mwat [dot] de">Matthias Watermann</a></strong><ul><li><a href="/plugin:deflist" class="wikilink1" title="plugin:deflist" data-wiki-id="plugin:deflist">deflist</a></li> <li><a href="/plugin:diff" class="wikilink1" title="plugin:diff" data-wiki-id="plugin:diff">diff</a></li> <li><a href="/plugin:nbsp" class="wikilink1" title="plugin:nbsp" data-wiki-id="plugin:nbsp">nbsp</a></li> <li><a href="/plugin:nstoc" class="wikilink1" title="plugin:nstoc" data-wiki-id="plugin:nstoc">nstoc</a></li> <li><a href="/plugin:shy" class="wikilink1" title="plugin:shy" data-wiki-id="plugin:shy">shy</a></li> <li><a href="/plugin:tip" class="wikilink1" title="plugin:tip" data-wiki-id="plugin:tip">tip</a></li> <li><a href="/plugin:code2" class="wikilink1" title="plugin:code2" data-wiki-id="plugin:code2">code2</a></li> <li><a href="/plugin:hr" class="wikilink1" title="plugin:hr" data-wiki-id="plugin:hr">hr</a></li> <li><a href="/plugin:lists" class="wikilink1" title="plugin:lists" data-wiki-id="plugin:lists">lists</a></li> <li><a href="/plugin:bomfix" class="wikilink1" title="plugin:bomfix" data-wiki-id="plugin:bomfix">bomfix</a></li> </ul></div></div> <p> Sometimes there arises the need to use words, phrases or even whole sen­ten­ces or paragraphs in a language different from the document&#039;s main lan­gua­ge<sup><a href="#fn__1" id="fnt__1" class="fn_top">1)</a></sup>. To support the readers<sup><a href="#fn__2" id="fnt__2" class="fn_top">2)</a></sup> of such a document using several languages it&#039;s advisably to explicitly markup all language changes in a do­cu­ment. </p> <p> This plugin allows for adding markup to indicate such language changes. It is implemented – technically speaking – by adding appropriate <code>span</code> tags around the text in question. </p> </div> <div class="secedit editbutton_section editbutton_1"><form class="button btn_secedit" method="post" action="/plugin:lang"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1528145712" /><input type="hidden" name="summary" value="[Language Syntax PlugIn] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="language_syntax_plugin" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="1-1136" /><button type="submit" title="Language Syntax PlugIn">Edit</button></div></form></div> <h2 class="sectionedit2" id="usage">Usage</h2> <div class="level2"> <p> To actually make use of this <a href="#plugin_source" title="plugin:lang ↵" class="wikilink1">plugin</a> embed the text using another language than the document&#039;s rest in <code>lang</code> tags: </p> <pre class="code">&lt;lang code&gt; ... &lt;/lang&gt;</pre> <p> The language-<code><em class="u">code</em></code> part is usually the two-letter language code as defined by ISO standard 639, <em>Code for the representation of names of languages</em>, the details of its use are explained in <a href="http://www.ietf.org/rfc/rfc3066.txt" class="urlextern" title="http://www.ietf.org/rfc/rfc3066.txt">RFC 3066</a> <em>Tags for the Identification of Languages</em>. See the <a href="http://www.w3.org/TR/html401/struct/dirlang.html#h-8.1.1" class="urlextern" title="http://www.w3.org/TR/html401/struct/dirlang.html#h-8.1.1">HTML specs</a> as well for further details. </p> <p> Please note that this is so-called <em>inline</em> markup, meaning it is to be used in­si­de block elements<sup><a href="#fn__3" id="fnt__3" class="fn_top">3)</a></sup>. The <code>lang</code> tag (as well as its <abbr title="HyperText Markup Language">HTML</abbr> equivalent <code>span</code>) does <em>not</em> constitute a text block but is part of it. In consequence this means that you&#039;ll have to open a new block (by inserting an empty line) in case you want to mark­up a whole paragraph as can be seen in the following examples. </p> </div> <div class="secedit editbutton_section editbutton_2"><form class="button btn_secedit" method="post" action="/plugin:lang"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1528145712" /><input type="hidden" name="summary" value="[Usage] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="usage" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="1137-2176" /><button type="submit" title="Usage">Edit</button></div></form></div> <h3 class="sectionedit3" id="examples">Examples</h3> <div class="level3"> <p> Suppose a document written in plain English. Some sentences, however, are to be given in another language. Therefore those “foreign” parts are marked up as in the following example: </p> <pre class="code">**1** This is an __English__ sentence. &lt;lang de&gt;Dies ist ein //deutscher// Satz.&lt;/lang&gt; This is a second __English__ sentence. **2** This is an __English__ sentence. &lt;lang de-DE&gt;Dies ist ein //deutscher// Satz.&lt;/lang&gt; This is a second __English__ sentence. **3** This is an __English__ sentence. &lt;lang de&gt; Dies ist ein //deutscher// Satz. &lt;/lang&gt; This is a second __English__ sentence. **4** This is an __English__ paragraph. &lt;lang de-&gt; Dies ist ein //deutscher// Absatz. &lt;/lang&gt; This is a second __English__ paragraph. **5** This is an __English__ paragraph. &lt;lang x-klingon&gt;Well, I, er ... dunno how to, hmmm... write Klingon.&lt;/lang&gt; This is a second __English__ paragraph.</pre> <p> As can be seen the formatting<sup><a href="#fn__4" id="fnt__4" class="fn_top">4)</a></sup> follows the usual rules for <em>inline</em> markup. In sec­tions one to three the text portion in a different language<sup><a href="#fn__5" id="fnt__5" class="fn_top">5)</a></sup> is just a part (here: <em>sentence</em>) between other parts. In sections four and five, however, there are newlines (empty lines) before and after the <code>lang</code> markup which renders that part to become a <em>paragraph</em> between other paragraphs. </p> <p> The resulting <abbr title="HyperText Markup Language">HTML</abbr>, btw, looks as follows: </p> <pre class="code html4strict"><span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<a href="http://december.com/html/4/element/strong.html"><span class="kw2">strong</span></a>&gt;</span>1<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/strong.html"><span class="kw2">strong</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span> &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span>This is an <span class="sc2">&lt;<a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span>English<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span> sentence. <span class="sc2">&lt;<a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a> <span class="kw3">lang</span><span class="sy0">=</span><span class="st0">&quot;de&quot;</span> xml:<span class="kw3">lang</span><span class="sy0">=</span><span class="st0">&quot;de&quot;</span>&gt;</span>Dies ist ein <span class="sc2">&lt;<a href="http://december.com/html/4/element/em.html"><span class="kw2">em</span></a>&gt;</span>deutscher<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/em.html"><span class="kw2">em</span></a>&gt;</span> Satz.<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a>&gt;</span> This is a second <span class="sc2">&lt;<a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span>English<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span> sentence.<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span> &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<a href="http://december.com/html/4/element/strong.html"><span class="kw2">strong</span></a>&gt;</span>2<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/strong.html"><span class="kw2">strong</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span> &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span>This is an <span class="sc2">&lt;<a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span>English<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span> sentence. <span class="sc2">&lt;<a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a> <span class="kw3">lang</span><span class="sy0">=</span><span class="st0">&quot;de-DE&quot;</span> xml:<span class="kw3">lang</span><span class="sy0">=</span><span class="st0">&quot;de-DE&quot;</span>&gt;</span>Dies ist ein <span class="sc2">&lt;<a href="http://december.com/html/4/element/em.html"><span class="kw2">em</span></a>&gt;</span>deutscher<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/em.html"><span class="kw2">em</span></a>&gt;</span> Satz.<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a>&gt;</span> This is a second <span class="sc2">&lt;<a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span>English<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span> sentence.<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span> &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<a href="http://december.com/html/4/element/strong.html"><span class="kw2">strong</span></a>&gt;</span>3<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/strong.html"><span class="kw2">strong</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span> &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span>This is an <span class="sc2">&lt;<a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span>English<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span> sentence. <span class="sc2">&lt;<a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a> <span class="kw3">lang</span><span class="sy0">=</span><span class="st0">&quot;de&quot;</span> xml:<span class="kw3">lang</span><span class="sy0">=</span><span class="st0">&quot;de&quot;</span>&gt;</span>Dies ist ein <span class="sc2">&lt;<a href="http://december.com/html/4/element/em.html"><span class="kw2">em</span></a>&gt;</span>deutscher<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/em.html"><span class="kw2">em</span></a>&gt;</span> Satz. <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a>&gt;</span> This is a second <span class="sc2">&lt;<a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span>English<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span> sentence.<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span> &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<a href="http://december.com/html/4/element/strong.html"><span class="kw2">strong</span></a>&gt;</span>4<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/strong.html"><span class="kw2">strong</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span> &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span>This is an <span class="sc2">&lt;<a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span>English<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span> paragraph.<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span> &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a> <span class="kw3">lang</span><span class="sy0">=</span><span class="st0">&quot;de&quot;</span> xml:<span class="kw3">lang</span><span class="sy0">=</span><span class="st0">&quot;de&quot;</span>&gt;</span>Dies ist ein <span class="sc2">&lt;<a href="http://december.com/html/4/element/em.html"><span class="kw2">em</span></a>&gt;</span>deutscher<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/em.html"><span class="kw2">em</span></a>&gt;</span> Absatz. <span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span> &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span>This is a second <span class="sc2">&lt;<a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span>English<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span> paragraph.<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span> &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<a href="http://december.com/html/4/element/strong.html"><span class="kw2">strong</span></a>&gt;</span>5<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/strong.html"><span class="kw2">strong</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span> &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span>This is an <span class="sc2">&lt;<a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span>English<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span> paragraph.<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span> &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;&lt;<a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a> <span class="kw3">lang</span><span class="sy0">=</span><span class="st0">&quot;x-klingon&quot;</span> xml:<span class="kw3">lang</span><span class="sy0">=</span><span class="st0">&quot;x-klingon&quot;</span>&gt;</span>Well, I, er ... dunno how to, hmmm... write Klingon.<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/span.html"><span class="kw2">span</span></a>&gt;&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span> &nbsp; <span class="sc2">&lt;<a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span>This is a second <span class="sc2">&lt;<a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span>English<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/u.html"><span class="kw2">u</span></a>&gt;</span> paragraph.<span class="sc2">&lt;<span class="sy0">/</span><a href="http://december.com/html/4/element/p.html"><span class="kw2">p</span></a>&gt;</span></pre> </div> <div class="secedit editbutton_section editbutton_3"><form class="button btn_secedit" method="post" action="/plugin:lang"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1528145712" /><input type="hidden" name="summary" value="[Examples] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="examples" /><input type="hidden" name="codeblockOffset" value="0" /><input type="hidden" name="range" value="2177-4695" /><button type="submit" title="Examples">Edit</button></div></form></div> <h2 class="sectionedit4" id="installation">Installation</h2> <div class="level2"> <p> Search and install the plugin using the <a href="/plugin:extension" class="wikilink1" title="plugin:extension" data-wiki-id="plugin:extension">Extension Manager</a>. Alternatively, refer to <a href="/plugins" class="wikilink1" title="plugins" data-wiki-id="plugins">Plugins</a> on how to install plugins manually. </p> <ul> <li class="level1"><div class="li"> <a href="http://dev.mwat.de/dw/syntax_plugin_lang.zip" class="urlextern" title="http://dev.mwat.de/dw/syntax_plugin_lang.zip">http://dev.mwat.de/dw/syntax_plugin_lang.zip</a></div> </li> </ul> </div> <div class="secedit editbutton_section editbutton_4"><form class="button btn_secedit" method="post" action="/plugin:lang"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1528145712" /><input type="hidden" name="summary" value="[Installation] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="installation" /><input type="hidden" name="codeblockOffset" value="2" /><input type="hidden" name="range" value="4696-4925" /><button type="submit" title="Installation">Edit</button></div></form></div> <h2 class="sectionedit5" id="plugin_source">Plugin Source</h2> <div class="level2"> <p> Here comes the <a href="http://www.gnu.org/licenses/gpl.html" class="urlextern" title="http://www.gnu.org/licenses/gpl.html">GPLed</a> PHP source<sup><a href="#fn__6" id="fnt__6" class="fn_top">6)</a></sup> for those who&#039;d like to scan it be­fore actu­ally in­stal­ling it: </p> <pre class="code php"><span class="kw2">&lt;?php</span> <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span> <a href="http://www.php.net/class_exists"><span class="kw3">class_exists</span></a><span class="br0">&#40;</span><span class="st_h">'syntax_plugin_lang'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span> <a href="http://www.php.net/defined"><span class="kw3">defined</span></a><span class="br0">&#40;</span><span class="st_h">'DOKU_PLUGIN'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">if</span> <span class="br0">&#40;</span><span class="sy0">!</span> <a href="http://www.php.net/defined"><span class="kw3">defined</span></a><span class="br0">&#40;</span><span class="st_h">'DOKU_INC'</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <a href="http://www.php.net/define"><span class="kw3">define</span></a><span class="br0">&#40;</span><span class="st_h">'DOKU_INC'</span><span class="sy0">,</span> <a href="http://www.php.net/realpath"><span class="kw3">realpath</span></a><span class="br0">&#40;</span><a href="http://www.php.net/dirname"><span class="kw3">dirname</span></a><span class="br0">&#40;</span><span class="kw4">__FILE__</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'/../../'</span><span class="br0">&#41;</span> <span class="sy0">.</span> <span class="st_h">'/'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">// if</span> <a href="http://www.php.net/define"><span class="kw3">define</span></a><span class="br0">&#40;</span><span class="st_h">'DOKU_PLUGIN'</span><span class="sy0">,</span> DOKU_INC <span class="sy0">.</span> <span class="st_h">'lib/plugins/'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">// if</span> <span class="co1">// include parent class</span> <span class="kw1">require_once</span><span class="br0">&#40;</span>DOKU_PLUGIN <span class="sy0">.</span> <span class="st_h">'syntax.php'</span><span class="br0">&#41;</span><span class="sy0">;</span> &nbsp; <span class="co4">/** * &lt;tt&gt;syntax_plugin_lang.php &lt;/tt&gt;- A PHP4 class that implements * a &lt;tt&gt;DokuWiki&lt;/tt&gt; plugin to specify an area using a different * language than the remaining document. * * &lt;p&gt; * Markup a section of text to be using a different language, * &lt;tt&gt;lang 2-letter-lang-code&lt;/tt&gt; * &lt;/p&gt;&lt;pre&gt; * Copyright (C) 2005, 2007 DFG/M.Watermann, D-10247 Berlin, FRG * All rights reserved * EMail : &amp;lt;support@mwat.de&amp;gt; * &lt;/pre&gt; * &lt;div class=&quot;disclaimer&quot;&gt; * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either * &lt;a href=&quot;http://www.gnu.org/licenses/gpl.html&quot;&gt;version 3&lt;/a&gt; of the * License, or (at your option) any later version.&lt;br&gt; * This software is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * &lt;/div&gt; * @author &lt;a href=&quot;mailto:support@mwat.de&quot;&gt;Matthias Watermann&lt;/a&gt; * @version &lt;tt&gt;$Id: syntax_plugin_lang.php,v 1.4 2007/08/15 12:36:19 matthias Exp $&lt;/tt&gt; * @since created 1-Sep-2005 */</span> <span class="kw2">class</span> syntax_plugin_lang <span class="kw2">extends</span> DokuWiki_Syntax_Plugin <span class="br0">&#123;</span> &nbsp; <span class="co4">/** * @publicsection */</span> <span class="co1">//@{</span> &nbsp; <span class="co4">/** * Tell the parser whether the plugin accepts syntax mode * &lt;tt&gt;$aMode&lt;/tt&gt; within its own markup. * * @param $aMode String The requested syntaxmode. * @return Boolean &lt;tt&gt;TRUE&lt;/tt&gt; unless &lt;tt&gt;$aMode&lt;/tt&gt; is * &lt;tt&gt;plugin_lang&lt;/tt&gt; (which would result in a * &lt;tt&gt;FALSE&lt;/tt&gt; method result). * @public * @see getAllowedTypes() * @static */</span> <span class="kw2">function</span> accepts<span class="br0">&#40;</span><span class="re0">$aMode</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">return</span> <span class="br0">&#40;</span><span class="st_h">'plugin_lang'</span> <span class="sy0">!=</span> <span class="re0">$aMode</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">// accepts()</span> &nbsp; <span class="co4">/** * Connect lookup pattern to lexer. * * @param $aMode String The desired rendermode. * @public * @see render() */</span> <span class="kw2">function</span> connectTo<span class="br0">&#40;</span><span class="re0">$aMode</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">// See http://www.w3.org/TR/html401/struct/dirlang.html#h-8.1.1;</span> <span class="co1">// better (specialized) REs are used in 'handle()' method.</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">Lexer</span><span class="sy0">-&gt;</span><span class="me1">addEntryPattern</span><span class="br0">&#40;</span> <span class="st_h">'\x3Clang\s+[a-z\-A-Z0-9]{2,})?\s*\x3E\s*(?=(?s).*?\x3C\x2Flang\x3E)'</span><span class="sy0">,</span> <span class="re0">$aMode</span><span class="sy0">,</span> <span class="st_h">'plugin_lang'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">// connectTo()</span> &nbsp; <span class="co4">/** * Get an associative array with plugin info. * * &lt;p&gt; * The returned array holds the following fields: * &lt;dl&gt; * &lt;dt&gt;author&lt;/dt&gt;&lt;dd&gt;Author of the plugin&lt;/dd&gt; * &lt;dt&gt;email&lt;/dt&gt;&lt;dd&gt;Email address to contact the author&lt;/dd&gt; * &lt;dt&gt;date&lt;/dt&gt;&lt;dd&gt;Last modified date of the plugin in * &lt;tt&gt;YYYY-MM-DD&lt;/tt&gt; format&lt;/dd&gt; * &lt;dt&gt;name&lt;/dt&gt;&lt;dd&gt;Name of the plugin&lt;/dd&gt; * &lt;dt&gt;desc&lt;/dt&gt;&lt;dd&gt;Short description of the plugin (Text only)&lt;/dd&gt; * &lt;dt&gt;url&lt;/dt&gt;&lt;dd&gt;Website with more information on the plugin * (eg. syntax description)&lt;/dd&gt; * &lt;/dl&gt; * @return Array Information about this plugin class. * @public * @static */</span> <span class="kw2">function</span> getInfo<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">return</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span> <span class="st_h">'author'</span> <span class="sy0">=&gt;</span> <span class="st_h">'Matthias Watermann'</span><span class="sy0">,</span> <span class="st_h">'email'</span> <span class="sy0">=&gt;</span> <span class="st_h">'support@mwat.de'</span><span class="sy0">,</span> <span class="st_h">'date'</span> <span class="sy0">=&gt;</span> <span class="st_h">'2007-08-15'</span><span class="sy0">,</span> <span class="st_h">'name'</span> <span class="sy0">=&gt;</span> <span class="st_h">'LANGuage Syntax Plugin'</span><span class="sy0">,</span> <span class="st_h">'desc'</span> <span class="sy0">=&gt;</span> <span class="st_h">'Markup a text area using another language'</span><span class="sy0">,</span> <span class="st_h">'url'</span> <span class="sy0">=&gt;</span> <span class="st_h">'http://www.dokuwiki.org/plugin:lang'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">// getInfo()</span> &nbsp; <span class="co4">/** * Where to sort in? * * @return Integer &lt;tt&gt;498&lt;/tt&gt; (doesn't really matter). * @public * @static */</span> <span class="kw2">function</span> getSort<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">return</span> <span class="nu0">498</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">// getSort()</span> &nbsp; <span class="co4">/** * Get the type of syntax this plugin defines. * * @return String &lt;tt&gt;'formatting'&lt;/tt&gt;. * @public * @static */</span> <span class="kw2">function</span> <a href="http://www.php.net/gettype"><span class="kw3">getType</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">return</span> <span class="st_h">'formatting'</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">// getType()</span> &nbsp; <span class="co4">/** * Handler to prepare matched data for the rendering process. * * &lt;p&gt; * The &lt;tt&gt;$aState&lt;/tt&gt; parameter gives the type of pattern * which triggered the call to this method: * &lt;/p&gt; * &lt;dl&gt; * &lt;dt&gt;DOKU_LEXER_ENTER&lt;/dt&gt; * &lt;dd&gt;a pattern set by &lt;tt&gt;addEntryPattern()&lt;/tt&gt;&lt;/dd&gt; * &lt;dt&gt;DOKU_LEXER_MATCHED&lt;/dt&gt; * &lt;dd&gt;a pattern set by &lt;tt&gt;addPattern()&lt;/tt&gt;&lt;/dd&gt; * &lt;dt&gt;DOKU_LEXER_EXIT&lt;/dt&gt; * &lt;dd&gt; a pattern set by &lt;tt&gt;addExitPattern()&lt;/tt&gt;&lt;/dd&gt; * &lt;dt&gt;DOKU_LEXER_SPECIAL&lt;/dt&gt; * &lt;dd&gt;a pattern set by &lt;tt&gt;addSpecialPattern()&lt;/tt&gt;&lt;/dd&gt; * &lt;dt&gt;DOKU_LEXER_UNMATCHED&lt;/dt&gt; * &lt;dd&gt;ordinary text encountered within the plugin's syntax mode * which doesn't match any pattern.&lt;/dd&gt; * &lt;/dl&gt; * @param $aMatch String The text matched by the patterns. * @param $aState Integer The lexer state for the match. * @param $aPos Integer The character position of the matched text. * @param $aHandler Object Reference to the Doku_Handler object. * @return Array Index &lt;tt&gt;[0]&lt;/tt&gt; holds the current * &lt;tt&gt;$aState&lt;/tt&gt;, index &lt;tt&gt;[1]&lt;/tt&gt; the match prepared for * the &lt;tt&gt;render()&lt;/tt&gt; method. * @public * @see render() * @static */</span> <span class="kw2">function</span> handle<span class="br0">&#40;</span><span class="re0">$aMatch</span><span class="sy0">,</span> <span class="re0">$aState</span><span class="sy0">,</span> <span class="re0">$aPos</span><span class="sy0">,</span> <span class="sy0">&amp;</span><span class="re0">$aHandler</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">if</span> <span class="br0">&#40;</span>DOKU_LEXER_ENTER <span class="sy0">==</span> <span class="re0">$aState</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">$hits</span> <span class="sy0">=</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">// RFC 3066, &quot;2. The Language tag&quot;, p. 2f.</span> <span class="co1">// Language-Tag = Primary-subtag *( &quot;-&quot; Subtag )</span> <span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/preg_match"><span class="kw3">preg_match</span></a><span class="br0">&#40;</span><span class="st_h">'|\s+([a-z]{2,3})\s*&gt;|i'</span><span class="sy0">,</span> <span class="re0">$aMatch</span><span class="sy0">,</span> <span class="re0">$hits</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">// primary _only_ (most likely to be used)</span> <span class="kw1">return</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="re0">$aState</span><span class="sy0">,</span> <span class="re0">$hits</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">// if</span> <span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/preg_match"><span class="kw3">preg_match</span></a><span class="br0">&#40;</span><span class="st_h">'|\s+([a-z]{2,3}\-[a-z0-9]{2,})\s*&gt;|i'</span><span class="sy0">,</span> <span class="re0">$aMatch</span><span class="sy0">,</span> <span class="re0">$hits</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">// primary _and_ subtag</span> <span class="kw1">return</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="re0">$aState</span><span class="sy0">,</span> <span class="re0">$hits</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">// if</span> <span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/preg_match"><span class="kw3">preg_match</span></a><span class="br0">&#40;</span><span class="st_h">'|\s+([ix]\-[a-z0-9]{2,})\s*&gt;|i'</span><span class="sy0">,</span> <span class="re0">$aMatch</span><span class="sy0">,</span> <span class="re0">$hits</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">// 1-letter primary _and_ subtag</span> <span class="kw1">return</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="re0">$aState</span><span class="sy0">,</span> <span class="re0">$hits</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">// if</span> <span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/preg_match"><span class="kw3">preg_match</span></a><span class="br0">&#40;</span><span class="st_h">'|\s+([a-z]{2,3})\-.*\s*&gt;|i'</span><span class="sy0">,</span> <span class="re0">$aMatch</span><span class="sy0">,</span> <span class="re0">$hits</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="co1">// convenience: accept primary with empty subtag</span> <span class="kw1">return</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="re0">$aState</span><span class="sy0">,</span> <span class="re0">$hits</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">// if</span> <span class="co1">// invalid language specification</span> <span class="kw1">return</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="re0">$aState</span><span class="sy0">,</span> <span class="kw4">FALSE</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">// if</span> <span class="kw1">return</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="re0">$aState</span><span class="sy0">,</span> <span class="re0">$aMatch</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">// handle()</span> &nbsp; <span class="co4">/** * Add exit pattern to lexer. * * @public */</span> <span class="kw2">function</span> postConnect<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">$this</span><span class="sy0">-&gt;</span><span class="me1">Lexer</span><span class="sy0">-&gt;</span><span class="me1">addExitPattern</span><span class="br0">&#40;</span><span class="st_h">'\x3C\x2Flang\x3E'</span><span class="sy0">,</span> <span class="st_h">'plugin_lang'</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">// postConnect()</span> &nbsp; <span class="co4">/** * Handle the actual output creation. * * &lt;p&gt; * The method checks for the given &lt;tt&gt;$aFormat&lt;/tt&gt; and returns * &lt;tt&gt;FALSE&lt;/tt&gt; when a format isn't supported. &lt;tt&gt;$aRenderer&lt;/tt&gt; * contains a reference to the renderer object which is currently * handling the rendering. The contents of &lt;tt&gt;$aData&lt;/tt&gt; is the * return value of the &lt;tt&gt;handle()&lt;/tt&gt; method. * &lt;/p&gt; * @param $aFormat String The output format to generate. * @param $aRenderer Object A reference to the renderer object. * @param $aData Array The data created by the &lt;tt&gt;handle()&lt;/tt&gt; * method. * @return Boolean &lt;tt&gt;TRUE&lt;/tt&gt; if rendered successfully, or * &lt;tt&gt;FALSE&lt;/tt&gt; otherwise. * @public * @see handle() * */</span> <span class="kw2">function</span> render<span class="br0">&#40;</span><span class="re0">$aFormat</span><span class="sy0">,</span> <span class="sy0">&amp;</span><span class="re0">$aRenderer</span><span class="sy0">,</span> <span class="sy0">&amp;</span><span class="re0">$aData</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">if</span> <span class="br0">&#40;</span><span class="st_h">'xhtml'</span> <span class="sy0">!=</span> <span class="re0">$aFormat</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">return</span> <span class="kw4">FALSE</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">// if</span> static <span class="re0">$VALID</span> <span class="sy0">=</span> <span class="kw4">TRUE</span><span class="sy0">;</span> <span class="co1">// flag to notice invalid markup</span> <span class="kw1">switch</span> <span class="br0">&#40;</span><span class="re0">$aData</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="kw1">case</span> DOKU_LEXER_ENTER<span class="sy0">:</span> <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$aData</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">$aRenderer</span><span class="sy0">-&gt;</span><span class="me1">doc</span> <span class="sy0">.=</span> <span class="st_h">'&lt;span lang=&quot;'</span> <span class="sy0">.</span> <span class="re0">$aData</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">.</span> <span class="st_h">'&quot; xml:lang=&quot;'</span> <span class="sy0">.</span> <span class="re0">$aData</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span> <span class="sy0">.</span> <span class="st_h">'&quot;&gt;'</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span> <span class="re0">$VALID</span> <span class="sy0">=</span> <span class="kw4">FALSE</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">// if</span> <span class="kw1">return</span> <span class="kw4">TRUE</span><span class="sy0">;</span> <span class="kw1">case</span> DOKU_LEXER_UNMATCHED<span class="sy0">:</span> <span class="re0">$aRenderer</span><span class="sy0">-&gt;</span><span class="me1">doc</span> <span class="sy0">.=</span> <a href="http://www.php.net/str_replace"><span class="kw3">str_replace</span></a><span class="br0">&#40;</span><a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st_h">'&amp;'</span><span class="sy0">,</span><span class="st_h">'&lt;'</span><span class="sy0">,</span> <span class="st_h">'&gt;'</span><span class="br0">&#41;</span><span class="sy0">,</span> <a href="http://www.php.net/array"><span class="kw3">array</span></a><span class="br0">&#40;</span><span class="st_h">'&amp;#38;'</span><span class="sy0">,</span> <span class="st_h">'&amp;#60;'</span><span class="sy0">,</span> <span class="st_h">'&amp;#62;'</span><span class="br0">&#41;</span><span class="sy0">,</span> <span class="re0">$aData</span><span class="br0">&#91;</span><span class="nu0">1</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="kw1">return</span> <span class="kw4">TRUE</span><span class="sy0">;</span> <span class="kw1">case</span> DOKU_LEXER_EXIT<span class="sy0">:</span> <span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$VALID</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span class="re0">$aRenderer</span><span class="sy0">-&gt;</span><span class="me1">doc</span> <span class="sy0">.=</span> <span class="st_h">'&lt;/span&gt;'</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="kw1">else</span> <span class="br0">&#123;</span> <span class="re0">$VALID</span> <span class="sy0">=</span> <span class="kw4">TRUE</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">// if</span> <span class="kw1">default</span><span class="sy0">:</span> <span class="kw1">return</span> <span class="kw4">TRUE</span><span class="sy0">;</span> <span class="br0">&#125;</span> <span class="co1">// switch</span> <span class="br0">&#125;</span> <span class="co1">// render()</span> &nbsp; <span class="co1">//@}</span> <span class="br0">&#125;</span> <span class="co1">// class syntax_plugin_lang</span> <span class="br0">&#125;</span> <span class="co1">// if</span> <span class="co1">//Setup VIM: ex: et ts=2 enc=utf-8 :</span> <span class="sy1">?&gt;</span></pre> </div> <div class="secedit editbutton_section editbutton_5"><form class="button btn_secedit" method="post" action="/plugin:lang"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1528145712" /><input type="hidden" name="summary" value="[Plugin Source] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="plugin_source" /><input type="hidden" name="codeblockOffset" value="2" /><input type="hidden" name="range" value="4926-13553" /><button type="submit" title="Plugin Source">Edit</button></div></form></div> <h3 class="sectionedit6" id="changes">Changes</h3> <div class="level3"> <p> <em class="u">2007-08-15</em>:<br/> * added <abbr title="GNU General Public License">GPL</abbr> link and fixed some doc problems; </p> <p> <em class="u">2007-01-05</em>:<br/> * minor internal changes (added comments, date updated); </p> <p> <em class="u">2005-09-04</em>:<br/> + initial release; </p> <p> <em><a href="mailto:support%20%5Bat%5D%20mwat%20%5Bdot%5D%20de" class="mail" title="support [at] mwat [dot] de">Matthias Watermann</a> 2007-08-15</em> </p> </div> <div class="secedit editbutton_section editbutton_6"><form class="button btn_secedit" method="post" action="/plugin:lang"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1528145712" /><input type="hidden" name="summary" value="[Changes] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="changes" /><input type="hidden" name="codeblockOffset" value="3" /><input type="hidden" name="range" value="13554-13806" /><button type="submit" title="Changes">Edit</button></div></form></div> <h2 class="sectionedit7" id="see_also">See also</h2> <div class="level2"> </div> <div class="secedit editbutton_section editbutton_7"><form class="button btn_secedit" method="post" action="/plugin:lang"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1528145712" /><input type="hidden" name="summary" value="[See also] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="see_also" /><input type="hidden" name="codeblockOffset" value="3" /><input type="hidden" name="range" value="13807-13828" /><button type="submit" title="See also">Edit</button></div></form></div> <h3 class="sectionedit8" id="plugins_by_the_same_author">Plugins by the same author</h3> <div class="level3"> <ul> <li class="level1"><div class="li"> <a href="/plugin:bomfix" class="wikilink1" title="plugin:bomfix" data-wiki-id="plugin:bomfix">BOMfix Plugin</a> – ignore Byte-Order-Mark characters in your pages</div> </li> <li class="level1"><div class="li"> <a href="/plugin:code2" class="wikilink1" title="plugin:code2" data-wiki-id="plugin:code2">Code Syntax Plugin</a> – use syntax highlighting of code fragments in your pages</div> </li> <li class="level1"><div class="li"> <a href="/plugin:deflist" class="wikilink1" title="plugin:deflist" data-wiki-id="plugin:deflist">Definition List Syntax Plugin</a> – use the only complete definition lists in your pages</div> </li> <li class="level1"><div class="li"> <a href="/plugin:diff" class="wikilink1" title="plugin:diff" data-wiki-id="plugin:diff">Diff Syntax Plugin</a> – use highlighting of diff files (aka “patches”) in your pages<sup><a href="#fn__7" id="fnt__7" class="fn_top">7)</a></sup></div> </li> <li class="level1"><div class="li"> <a href="/plugin:hr" class="wikilink1" title="plugin:hr" data-wiki-id="plugin:hr">HR Syntax Plugin</a> – use horizontal rules in nested block elements of your pages</div> </li> <li class="level1"><div class="li"> <a href="/plugin:lang" class="wikilink1" title="plugin:lang" data-wiki-id="plugin:lang">LANGuage Syntax Plugin</a> – markup different languages in your pages</div> </li> <li class="level1"><div class="li"> <a href="/plugin:lists" class="wikilink1" title="plugin:lists" data-wiki-id="plugin:lists">Lists Syntax Plugin</a> – use the only complete un-/ordered lists in your pages</div> </li> <li class="level1"><div class="li"> <a href="/plugin:nbsp" class="wikilink1" title="plugin:nbsp" data-wiki-id="plugin:nbsp">NBSP Syntax Plugin</a> – use Non-Breakable-Spaces in your pages</div> </li> <li class="level1"><div class="li"> <a href="/plugin:nstoc" class="wikilink1" title="plugin:nstoc" data-wiki-id="plugin:nstoc">NsToC Syntax Plugin</a> – use automatically generated namespace indices</div> </li> <li class="level1"><div class="li"> <a href="/plugin:shy" class="wikilink1" title="plugin:shy" data-wiki-id="plugin:shy">Shy Syntax Plugin</a> – use soft hyphens in your pages</div> </li> <li class="level1"><div class="li"> <a href="/plugin:tip" class="wikilink1" title="plugin:tip" data-wiki-id="plugin:tip">Tip Syntax Plugin</a> – add hint areas to your pages</div> </li> </ul> </div> <div class="secedit editbutton_section editbutton_8"><form class="button btn_secedit" method="post" action="/plugin:lang"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1528145712" /><input type="hidden" name="summary" value="[Plugins by the same author] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="plugins_by_the_same_author" /><input type="hidden" name="codeblockOffset" value="3" /><input type="hidden" name="range" value="13829-14844" /><button type="submit" title="Plugins by the same author">Edit</button></div></form></div> <h2 class="sectionedit9" id="discussion">Discussion</h2> <div class="level2"> <p> Hints, comments, suggestions … </p> <p> Dosn&#039;t seem to work too well in Internet Explorer. </p> <blockquote><div class="no"> Don&#039;t worry: M$<abbr title="Internet Explorer">IE</abbr> is well known for not caring about standards<sup><a href="#fn__8" id="fnt__8" class="fn_top">8)</a></sup>. Trying to work around the various bugs of that awful program<sup><a href="#fn__9" id="fnt__9" class="fn_top">9)</a></sup> is an endless business.</div></blockquote> <hr /> <p> Word 2003 has an option to manually insert <strong>phonetics</strong> above specified words… </p> <p> I was wondering if it was possible to create a module or plugin for DokuWiki that does the following for <strong>Koine-Greek</strong>: a) allows the user to upload a <strong>two column wordlist</strong>; first column <strong>source text</strong>, second column <strong>phonetic text</strong>. b) specify the fonts for the source and phonetic text. c) Have the DokuWiki, automatically recognize the words from the source text on any text [as one types] and auto-insert and center the phonetic text <strong>ABOVE</strong> each (tagged) occurrence… </p> <p> An optional button to insert tags on selected text would be great also, not to mention Unicode capability for the source text column, and the option to configure both language and fonts as per source text and phonetic output, if necessary </p> <p> Thanx a million… </p> <p> Please contact keith (at) pm-intl (.) org </p> <p> Keith </p> <blockquote><div class="no"> See <a href="/bounties" class="wikilink1" title="bounties" data-wiki-id="bounties">bounties</a> for such requests.</div></blockquote> <p> Suggestion: Add dir=“rtl” to span tag for RTL languages. It can possibly be determined by $lang[&#039;direction&#039;] in lang.php of that language. </p> <hr /> <p> Unfortunately, headline code, e.g. “== headline ==” is not interpreted as headline code, but printed as raw code, ie. the “==” are printed and no headlining code is generated. The same is true for the language tag of the <a href="/plugin:wrap" class="wikilink1" title="plugin:wrap" data-wiki-id="plugin:wrap">wrap</a> tool.<br/> <a href="mailto:hemmerling%20%5Bat%5D%20gmx%20%5Bdot%5D%20net" class="mail" title="hemmerling [at] gmx [dot] net">Rolf Hemmerling</a> <em>2009-12-23 10:00</em> </p> <p> <br/> </p> </div> <div class="secedit editbutton_section editbutton_9"><form class="button btn_secedit" method="post" action="/plugin:lang"><div class="no"><input type="hidden" name="do" value="edit" /><input type="hidden" name="rev" value="1528145712" /><input type="hidden" name="summary" value="[Discussion] " /><input type="hidden" name="target" value="section" /><input type="hidden" name="hid" value="discussion" /><input type="hidden" name="codeblockOffset" value="3" /><input type="hidden" name="range" value="14845-" /><button type="submit" title="Discussion">Edit</button></div></form></div><div class="footnotes"> <div class="fn"><sup><a href="#fnt__1" id="fn__1" class="fn_bot">1)</a></sup> <div class="content">for instance consider writing quotes in their respective native language</div></div> <div class="fn"><sup><a href="#fnt__2" id="fn__2" class="fn_bot">2)</a></sup> <div class="content">i.e. their device/software accessing such a document and possibly providing some accessibility aids like switching fonts or quote characters or using another voice for reading or …</div></div> <div class="fn"><sup><a href="#fnt__3" id="fn__3" class="fn_bot">3)</a></sup> <div class="content">such as paragraphs, list items, table cells etc.</div></div> <div class="fn"><sup><a href="#fnt__4" id="fn__4" class="fn_bot">4)</a></sup> <div class="content">i.e. the placement of the <code>&lt;lang ...&gt;</code> markup in regard to the surrounding text and newlines</div></div> <div class="fn"><sup><a href="#fnt__5" id="fn__5" class="fn_bot">5)</a></sup> <div class="content">I&#039;ve used German here since I&#039;m a German <img src="/lib/images/smileys/wink.svg" class="icon smiley" alt=";-)" /></div></div> <div class="fn"><sup><a href="#fnt__6" id="fn__6" class="fn_bot">6)</a></sup> <div class="content">The comments within the <a href="#plugin_source" title="plugin:lang ↵" class="wikilink1">source</a> file are suitable for the <abbr title="Open Source Software">OSS</abbr> <a href="http://www.stack.nl/~dimitri/doxygen/index.html" class="urlextern" title="http://www.stack.nl/~dimitri/doxygen/index.html">doxygen</a> tool, a do­cu­men­ta­tion sy­stem for C++, C, Java, Ob­jec­tive-C, Python, IDL and to some extent PHP, C#, and D. — Since I&#039;m working with dif­fe­rent pro­gram­ming lan­gua­ges it&#039;s a great ease to have one tool that handles the docs for all of them.</div></div> <div class="fn"><sup><a href="#fnt__7" id="fn__7" class="fn_bot">7)</a></sup> <div class="content">obsoleted by incorporating its ability into the <a href="/plugin:code2" class="wikilink1" title="plugin:code2" data-wiki-id="plugin:code2">Code</a> plugin</div></div> <div class="fn"><sup><a href="#fnt__8" id="fn__8" class="fn_bot">8)</a></sup> <div class="content">at least those they don&#039;t own</div></div> <div class="fn"><sup><a href="#fnt__9" id="fn__9" class="fn_bot">9)</a></sup> <div class="content">for need of a more adequate designation</div></div> </div> <!-- wikipage stop --> </div> <div class="docInfo"><bdi>plugin/lang.txt</bdi> · Last modified: <time datetime="2018-06-04T22:55:12+0200">2018-06-04 22:55</time> by <bdi>Klap-in</bdi></div> <hr class="a11y" /> </div></main><!-- /content --> <!-- PAGE ACTIONS --> <nav id="dokuwiki__pagetools" aria-labelledby="dokuwiki__pagetools__heading"> <h3 class="a11y" id="dokuwiki__pagetools__heading">Page Tools</h3> <div class="tools"> <ul> <li class="edit"><a href="/plugin:lang?do=edit" title="Edit this page [e]" rel="nofollow" accesskey="e"><span>Edit this page</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z"/></svg></a></li><li class="revs"><a href="/plugin:lang?do=revisions" title="Old revisions [o]" rel="nofollow" accesskey="o"><span>Old revisions</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M11 7v5.11l4.71 2.79.79-1.28-4-2.37V7m0-5C8.97 2 5.91 3.92 4.27 6.77L2 4.5V11h6.5L5.75 8.25C6.96 5.73 9.5 4 12.5 4a7.5 7.5 0 0 1 7.5 7.5 7.5 7.5 0 0 1-7.5 7.5c-3.27 0-6.03-2.09-7.06-5h-2.1c1.1 4.03 4.77 7 9.16 7 5.24 0 9.5-4.25 9.5-9.5A9.5 9.5 0 0 0 12.5 2z"/></svg></a></li><li class="backlink"><a href="/plugin:lang?do=backlink" title="Backlinks" rel="nofollow"><span>Backlinks</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M10.59 13.41c.41.39.41 1.03 0 1.42-.39.39-1.03.39-1.42 0a5.003 5.003 0 0 1 0-7.07l3.54-3.54a5.003 5.003 0 0 1 7.07 0 5.003 5.003 0 0 1 0 7.07l-1.49 1.49c.01-.82-.12-1.64-.4-2.42l.47-.48a2.982 2.982 0 0 0 0-4.24 2.982 2.982 0 0 0-4.24 0l-3.53 3.53a2.982 2.982 0 0 0 0 4.24m2.82-4.24c.39-.39 1.03-.39 1.42 0a5.003 5.003 0 0 1 0 7.07l-3.54 3.54a5.003 5.003 0 0 1-7.07 0 5.003 5.003 0 0 1 0-7.07l1.49-1.49c-.01.82.12 1.64.4 2.43l-.47.47a2.982 2.982 0 0 0 0 4.24 2.982 2.982 0 0 0 4.24 0l3.53-3.53a2.982 2.982 0 0 0 0-4.24.973.973 0 0 1 0-1.42z"/></svg></a></li><li class="top"><a href="#dokuwiki__top" title="Back to top [t]" rel="nofollow" accesskey="t"><span>Back to top</span><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M13 20h-2V8l-5.5 5.5-1.42-1.42L12 4.16l7.92 7.92-1.42 1.42L13 8v12z"/></svg></a></li> </ul> </div> </nav> </div><!-- /wrapper --> <!-- ********** FOOTER ********** --> <footer id="dokuwiki__footer"><div class="pad"> <div class="license">Except where otherwise noted, content on this wiki is licensed under the following license: <bdi><a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en" rel="license" class="urlextern">CC Attribution-Share Alike 4.0 International</a></bdi></div> <div class="buttons"> <a href="https://creativecommons.org/licenses/by-sa/4.0/deed.en" rel="license"><img src="/lib/images/license/button/cc-by-sa.png" alt="CC Attribution-Share Alike 4.0 International" /></a> <a href="https://www.dokuwiki.org/donate" title="Donate" ><img src="/lib/tpl/dokuwiki/images/button-donate.gif" width="80" height="15" alt="Donate" /></a> <a href="https://php.net" title="Powered by PHP" ><img src="/lib/tpl/dokuwiki/images/button-php.gif" width="80" height="15" alt="Powered by PHP" /></a> <a href="//validator.w3.org/check/referer" title="Valid HTML5" ><img src="/lib/tpl/dokuwiki/images/button-html5.png" width="80" height="15" alt="Valid HTML5" /></a> <a href="//jigsaw.w3.org/css-validator/check/referer?profile=css3" title="Valid CSS" ><img src="/lib/tpl/dokuwiki/images/button-css.png" width="80" height="15" alt="Valid CSS" /></a> <a href="https://dokuwiki.org/" title="Driven by DokuWiki" ><img src="/lib/tpl/dokuwiki/images/button-dw.png" width="80" height="15" alt="Driven by DokuWiki" /></a> </div> <div style="margin-top: 2em; font-size:90%" class="dokuwiki"><div style="float:right"><a href="http://www.splitbrain.org/personal#imprint" style="float:right; text-decoration: none; color:#333">Imprint</a></div></div><!-- Include for DokuWiki site wide top bar --> <style type="text/css"> @media screen { body { padding-top: 30px; } #global__header { position: absolute; top: 0; left: 0; text-align: left; vertical-align: middle; line-height: 1.5; background-color: #333; box-shadow: 0 0 8px rgba(0,0,0,0.5); width: 100%; margin: 0; padding: 5px 20px; -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box; white-space: nowrap; overflow: hidden; } #global__header h2 { position: absolute; left: -99999em; top: 0; overflow: hidden; display: inline; } #global__header ul, #global__header li { margin: 0; padding: 0; list-style: none; display: inline; line-height: 1.5; } #global__header a { color: #bbb; text-decoration: none; margin-right: 20px; font-size: 14px; font-weight: normal; } #global__header a:hover, #global__header a:active, #global__header a:focus { color: #fff; text-decoration: underline; } #global__header form { float: right; margin: 0 0 0 20px; } #global__header input { background-color: #333; background-image: none; border: 1px solid #bbb; color: #fff; box-shadow: none; border-radius: 2px; margin: 0; line-height: normal; padding: 1px 0 1px 0; height: auto; } #global__header input.button { border: none; color: #bbb; } #global__header input.button:hover, #global__header input.button:active, #global__header input.button:focus { color: #fff; text-decoration: underline; } } /* /@media */ @media only screen and (min-width: 601px) { /* changes specific for www.dokuwiki.org */ #dokuwiki__header { padding-top: 3em; } #dokuwiki__usertools { top: 3em; } /* changes specific for bugs.dokuwiki.org */ div#container div#showtask { top: 40px; } } /* /@media */ @media only screen and (max-width: 600px) { body { padding-top: 0; } #global__header { position: static; white-space: normal; overflow: auto; } #global__header form { float: none; display: block; margin: 0 0 .4em; } } /* /@media */ @media print { #global__header { display: none; } } /* /@media */ </style> <div id="global__header"> <h2>Global DokuWiki Links</h2> <form method="get" action="https://search.dokuwiki.org/" target="_top"> <input type="text" name="q" title="Search all DokuWiki sites at once" class="input" /> <input type="submit" title="Search all DokuWiki sites at once" value="Search" class="button" /> </form> <ul> <li><a href="https://download.dokuwiki.org" title="Download the latest release" target="_top">Download</a></li> <li><a href="https://www.dokuwiki.org" title="Read the DokuWiki documentation" target="_top">Wiki</a></li> <li><a href="https://forum.dokuwiki.org" title="Ask questions in the DokuWiki forum" target="_top">Forum</a></li> <li><a href="https://irc.dokuwiki.org" title="Check IRC chat logs or join the chat" target="_top">IRC</a></li> <li><a href="https://github.com/splitbrain/dokuwiki/issues" title="Report and track bugs" target="_top">Bugs</a></li> <li><a href="https://translate.dokuwiki.org/" title="Help translating the DokuWiki interface" target="_top">Translate</a></li> <li><a href="https://github.com/splitbrain/dokuwiki" title="Access the most recent git commits" target="_top">Git</a></li> <li><a href="https://xref.dokuwiki.org/reference/dokuwiki/" title="Cross-Reference of the DokuWiki source code" target="_top">XRef</a></li> <li><a href="https://codesearch.dokuwiki.org/" title="Search through the sources of DokuWiki, plugins and templates" target="_top">Code Search</a></li> </ul> </div> <!-- end of DokuWiki top bar include --> </div></footer><!-- /footer --> </div></div><!-- /site --> <div class="no"><img src="/lib/exe/taskrunner.php?id=plugin%3Alang&amp;1742992409" width="2" height="1" alt="" /></div> <div id="screen__mode" class="no"></div></body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10