Subversion Repositories LCARS

Compare Revisions

Last modification

Ignore whitespace Rev 234 → Rev 235

/trunk/application/layouts/index/multi-display.phtml
55,8 → 55,8
<div id="bow">
<div id="bow-top">
<div class="separator-left">&nbsp;</div>
<div class="text">
<span>PointedEars’ Website</span>
<div class="text" lang="<?php echo $language; ?>">
<span><?php echo tr("PointedEars' Website"); ?></span>
</div>
</div>
<div id="bow-top-left">
125,7 → 125,7
<li><a
href="http://climateapps2.oerc.ox.ac.uk/cpdnboinc/show_user.php?userid=648544"
target="_top" class="button secondary"
title="<?php echo tr("The world’s largest climate forecasting experiment for the 21st century"); ?>"
title="<?php echo tr("The world's largest climate forecasting experiment for the 21st century"); ?>"
><span class="text">climateprediction.net</span></a></li>
<li><a
href="http://fah-web2.stanford.edu/cgi-bin/main.py?qtype=userpage&username=Thomas_Lahn"
206,9 → 206,7
<table>
<tr>
<th lang="<?php echo $language; ?>"><span class="text"><?php echo tr('Display'); ?></span></th>
<td lang="<?php echo $language; ?>"><script
type="text/javascript"
>
<td lang="<?php echo $language; ?>"><script type="text/javascript">
var _addEventListener = jsx.dom.addEventListener;
var _runAsync = jsx.dom.timeout.runAsync;
var ID_SCREEN_DIM = 'screenDim';
249,7 → 247,7
var innerDimText = dim.getInnerText();
var colorDepthText = dim.getColorDepthText();
var displayInfo = (screenDimText || availDimText || innerDimText || colorDepthText)
? (screenDimText ? <?php echo sprintf("'" . tr('%s pixels') . "'", "<span id=\"' + ID_SCREEN_DIM + '\">' + screenDimText + '<\/span>' + '"); ?> : "")
? (screenDimText ? <?php echo sprintf("'" . tr('%s pixels') . '"', "<span id=\"' + ID_SCREEN_DIM + '\">' + screenDimText + '<\/span>' + \""); ?> : "")
+ (availDimText ? ' (<span id="' + ID_AVAIL_DIM + '">' + availDimText + "<\/span>" : "")
+ (innerDimText ? '<span id="' + ID_INNER_DIM + '">' + innerDimText + "<\/span>)" : "")
+ (colorDepthText ? ' ×&nbsp;<span id="colorDepth">' + colorDepthText + "<\/span>" : "")
315,12 → 313,19
features.push('<a href="#" title="'
+ cookies.join("&#13;&#10;")
+ '"'
+ ' onclick="window.alert(\'<?php echo tr('Cookies for'); ?> ' + document.domain + '\\n\\n' + cookies.join("\\n") + '\'); return false">' + cookiesText + '<\/a>');
+ ' onclick=\'window.alert(<?php
echo htmlspecialchars(sprintf(tr('"Cookies for " + %s + "'), 'document.domain'), ENT_QUOTES);
?>'
+ '\\n\\n'
+ cookies.join("\\n")
+ '"); return false\'><span class=\'text\' lang=\'<?php
echo $language;
?>\'>' + cookiesText + '<\/span><\/a>');
}
else
{
features.push('<span class="unavailable"'
+ ' title="<?php echo tr('Cookies supported, but no data for this site'); ?>"'
+ ' title="<?php echo htmlspecialchars(tr('Cookies supported, but no data for this site'), ENT_QUOTES); ?>"'
+ '>' + cookiesText + '<\/span>');
}
}
327,7 → 332,7
else
{
features.push('<span class="offline"'
+ ' title="<?php echo tr('Cookies supported, but disabled'); ?>"'
+ ' title="<?php echo htmlspecialchars(tr('Cookies supported, but disabled'), ENT_QUOTES); ?>"'
+ '>' + cookiesText + '<\/span>');
}
}
334,12 → 339,12
 
if (fullscreen.isSupportedBy(document.documentElement))
{
features.push("<span lang='<?php echo $language; ?>'><span class='text'><?php echo tr('Fullscreen'); ?><\/span><\/span>");
features.push("<span class='text' lang='<?php echo $language; ?>'><?php echo tr('Fullscreen'); ?><\/span>");
}
 
if (navigator.webkitGetGamepads && navigator.webkitGetGamepads().length)
{
features.push("<?php echo tr('Gamepad'); ?>");
features.push("<span class='text' lang='<?php echo $language; ?>'><?php echo tr('Gamepad'); ?></span>");
}
 
if (jsx.dom.geolocation.isAvailable())
364,12 → 369,12
{
features.push('<span title="'
+ navigator.plugins.length
+ ' <?php echo tr('plugins installed'); ?>">Plugins<\/span>');
+ ' <?php echo htmlspecialchars(tr('plugins installed'), ENT_QUOTES); ?>">Plugins<\/span>');
}
else
{
features.push('<span class="unavailable"'
+ ' title="<?php echo tr('Plugins supported, but none detected'); ?>"'
+ ' title="<?php echo htmlspecialchars(tr('Plugins supported, but none detected'), ENT_QUOTES); ?>"'
+ '>Plugins<\/span>');
}
}
385,7 → 390,7
 
function stripTags (s)
{
return s.replace(/<[^>]+>/g, "");
return s.replace(/<(br|p)\s*\/?>/ig, "\\n").replace(/<[^>]*>/g, "");
}
 
var sFeatures = getFeatures();
451,7 → 456,7
onblur="return this.onmouseout()"
><abbr class="text" title="Language selection">Language</abbr></a></li>
<li id="cmd2"><a
href="index.<?php echo $language; ?>?printable=1"
href="index.<?php echo language_key_short($language); ?>?printable=1"
title="<?php echo tr('Printable version'); ?>" tabindex="1"
class="button left right"
onmouseover="return setStatus(this.title + ': ' + this.href)"
460,125 → 465,13
onblur="return this.onmouseout()"
lang="<?php echo $language; ?>"
><span class="text"><?php echo tr("Printable"); ?></span></a></li>
<li id="cmd3"><script type="text/javascript">
function toggleFullscreen (button)
{
var nowIsFullscreen = fullscreen.isFullscreen();
 
if (nowIsFullscreen)
{
fullscreen.cancel();
}
else
{
fullscreen.requestOn(document.documentElement, button);
}
}
</script><div class="button left right"
<li id="cmd3"><div class="button left right"
style="cursor: not-allowed !important"
onclick="toggleFullscreen(this)"
onkeyup="if (event.keyCode == 13) { this.click(); }"
lang="<?php echo $language; ?>"
><span class="text"><script type="text/javascript">
var cmd3;
if (fullscreen.isSupportedBy(document.documentElement))
{
_addEventListener(window, "load", function () {
if (typeof cmd3 == "undefined")
{
cmd3 = jsx.dom.getElementById("cmd3");
}
 
if (cmd3)
{
cmd3.lastChild.tabIndex = "1";
}
});
 
var fullscreenText = "<?php echo tr("Fullscreen"); ?>";
document.write(fullscreenText);
}
 
var oScreenDim;
var oAvailDim;
var oInnerDim;
var _gEBI = jsx.dom.getElementById;
var previousIsFullscreen;
var oldHandler;
 
_addEventListener(window, "resize", function () {
<?php /* FIXME: Also update title attribute value */ ?>
if (typeof oScreenDim == "undefined") oScreenDim = _gEBI(ID_SCREEN_DIM);
if (oScreenDim) oScreenDim.innerHTML = dim.getScreenText();
 
if (typeof oAvailDim == "undefined") oAvailDim = _gEBI(ID_AVAIL_DIM);
if (oAvailDim) oAvailDim.innerHTML = dim.getAvailText();
 
if (typeof oInnerDim == "undefined") oInnerDim = _gEBI(ID_INNER_DIM);
if (oInnerDim) oInnerDim.innerHTML = dim.getInnerText();
 
if (fullscreen.isSupportedBy(document.documentElement))
{
var nowIsFullscreen = fullscreen.isFullscreen();
if (nowIsFullscreen != previousIsFullscreen)
{
if (typeof cmd3 == "undefined")
{
cmd3 = document.getElementById("cmd3");
}
 
var textTarget = cmd3.lastChild.firstChild;
if (nowIsFullscreen)
{
textTarget.innerHTML = "<?php echo tr("Window"); ?>";
}
else
{
textTarget.innerHTML = fullscreenText;
}
 
previousIsFullscreen = nowIsFullscreen;
}
}
});
</script></span></div></li>
<li id="cmd4"><script type="text/javascript">
var LANG_KLINGON = "<?php echo $klingon; ?>";
var LANG_VULCAN = "<?php echo $vulcan; ?>";
lcars.language = "<?php echo $language; ?>";
</script>
<script type="text/javascript" src="application/scripts/klingon.js"></script>
<script type="text/javascript" src="application/scripts/vulcan-media-script.js"></script>
<script type="text/javascript">
function toggleScript (button)
{
var is_alien_language = (lcars.language == LANG_KLINGON
|| lcars.language == LANG_VULCAN);
 
if (media_script_used)
{
klingonLatinScript(button);
latinScript(button);
 
if (!is_alien_language)
{
button.firstChild.textContent = button.getAttribute("data-caption");
}
}
else
{
pIqaD(button);
mediaScript(button);
 
if (!is_alien_language)
{
button.setAttribute("data-caption", button.firstChild.textContent);
button.firstChild.textContent = "<?php echo tr('Latin'); ?>";
}
}
}
</script>
<div class="button left right"<?php
><span class="text"></span></div></li>
<li id="cmd4"><div class="button left right"<?php
// $language_keys = array_keys($languages);
if (in_array($language, array(@$klingon, @$vulcan)))
{
595,10 → 488,9
{
case $klingon: echo 'pIqaD'; break;
case $vulcan: echo 'Hitra-Zukitan'; break;
// default: echo tr('Original');
// default: echo tr('Original');
}
?></span>
</div></li>
?></span></div></li>
</ul>
</div>
<div class="elbo-button">
609,7 → 501,7
<div class="elbo" lang="<?php echo $language; ?>">
<span class="text"><abbr
title="<?php echo tr('Library Computer Access and Retrieval System'); ?>"
><?php echo tr('LCARS'); ?></abbr> PE-22A</span>
><?php echo tr('LCARS'); ?></abbr> <span lang="en">PE-</span>22<span style="text-transform: uppercase">a</span></span>
<div class="concave">&nbsp;</div>
</div>
<div class="border">
/trunk/application/layouts/index/footer.phtml
20,13 → 20,13
? "<br> "
. tr("Translation into Klingon supported by the"
. " <a href='http://kli.org/'>Klingon Language Institute</a>,"
. " Qo'onoS.")
. " Terra.")
: '')
. ($app == 'Language' || $language === $vulcan
? "<br> "
. tr("Translation into Modern Golic Vulcan supported by the"
. " <a href='http://home.comcast.net/~markg61/vlif.htm'>Vulcan Language Institute</a>,"
. " Shi'Kahr, T'Khasi.")
. " Terra.")
: ''),
'https://twitter.com/MikeOkuda',
tr('Michael Okuda on Twitter'),
34,12 → 34,17
'http://www.bracercom.com/tutorial/content/CoherentLCARSInterface/LCARSCoherentInterface.html',
'http://www.lcars47.com/p/lcars-101.html');
?></span><br>
Copyright &copy;&nbsp;2002&#8211;<?php echo gmdate('Y', $modi); ?> <a
<span lang="en">Copyright &copy;&nbsp;2002&#8211;<?php echo gmdate('Y', $modi); ?> <a
href="mailto:js@PointedEars.de?subject=Feedback/LCARS/<?php echo $app;
?>&amp;body=<?php
echo rawurlencode(sprintf('[%s]', tr("Your feedback")));
?>"
title="<?php echo tr("Send your feedback to PointedEars"); ?>"
lang="en"
onmouseover="return mailStatus()"
onmouseout="return resetStatus()"
>Thomas ‘PointedEars’ Lahn</a>. <span class="text"><?php echo tr("All rights reserved."); ?></span></p>
>Thomas ‘PointedEars’ Lahn</a>.</span> <span class="text"><?php echo tr("All rights reserved."); ?></span></p>
<p><small>STAR&nbsp;TREK and all related marks, logos and characters are owned by CBS&nbsp;Studios&nbsp;Inc.
This website, the promotion thereof and/or any exhibition of material created
by the operator of this website are not endorsed or sponsored by or affiliated
with CBS/Paramount Pictures or the STAR&nbsp;TREK franchise.</small></p>
/trunk/application/layouts/index/index.phtml
1,7 → 1,7
<!DOCTYPE html>
<html lang="<?php echo $language; ?>">
<head>
<title>Home — PointedEars’ Website</title>
<title><?php echo tr('Home') . ' – ' . tr("PointedEars' Website"); ?></title>
 
<link rel="SHORTCUT ICON" href="favicon.ico">
 
75,7 → 75,14
?>">
<?php
}
 
if ($language == $klingon)
{
?>
<link rel="stylesheet" type="text/css" href="styles/lcars-klingon">
<?php
}
?>
<!--[if lt IE 7]>
<link rel="stylesheet" type="text/css" href="styles/lcars22-ie6.css">
<![endif]-->
86,13 → 93,26
}
-->
</style>
 
<script type="text/javascript" src="scripts/builder?src=object,dom,dom/css,dom/storage,dom/events,dom/geolocation,dom/timeout,dom/widgets,dom/window,dom/xpath,http,regexp,lcars,../application/scripts/klingon,../application/scripts/vulcan-media-script<?php
<script type="text/javascript" src="scripts/builder?src=object,dom,dom/css,dom/storage,dom/events,dom/geolocation,dom/timeout,dom/widgets,dom/window,dom/xpath,http,regexp,lcars<?php
if ($isLocal)
{
?>&amp;verbose=1&amp;debug=1<?php
}
?>"></script>
<?php
if ($language == $klingon)
{
?>
<script type="text/javascript" src="application/scripts/klingon.js"></script>
<?php
}
else if ($language == $vulcan)
{
?>
<script type="text/javascript" src="application/scripts/vulcan-media-script.js"></script>
<?php
}
?>
<script type="text/javascript">
<?php
/*
114,7 → 134,18
*/
?>
var TEXT_NOT_AVAILABLE = "<?php echo tr('N/A'); ?>";
var cmd3;
var oScreenDim;
var oAvailDim;
var oInnerDim;
var _gEBI = jsx.dom.getElementById;
var previousIsFullscreen;
var fullscreenText;
 
var LANG_KLINGON = "<?php echo $klingon; ?>";
var LANG_VULCAN = "<?php echo $vulcan; ?>";
lcars.language = "<?php echo $language; ?>";
 
function body_load ()
{
if (typeof this.ontouchstart != 'undefined')
158,19 → 189,143
content: lcars.content
});
 
/* Fullscreen button */
if (fullscreen.isSupportedBy(document.documentElement))
{
cmd3 = jsx.dom.getElementById("cmd3");
 
if (cmd3)
{
cmd3.firstChild.tabIndex = "1";
cmd3.firstChild.style.cursor = "";
fullscreenText = "<?php echo tr("Fullscreen"); ?>";
/* FIXME: Replaces the `span' element; need LCARS-specific button */
// var fullscreenButton = new lcars.FullscreenButton(
// document.getElementById("cmd3").firstChild, null, {
// text: fullscreenText
// });
cmd3.firstChild.firstChild.innerHTML = fullscreenText;
}
}
 
_addEventListener(window, "resize", function () {
<?php /* FIXME: Also update title attribute value */ ?>
if (typeof oScreenDim == "undefined") oScreenDim = _gEBI(ID_SCREEN_DIM);
var screen_text = dim.getScreenText();
if (lcars.language == LANG_KLINGON) screen_text = pIqaDize(screen_text);
if (oScreenDim) oScreenDim.innerHTML = screen_text;
 
if (typeof oAvailDim == "undefined") oAvailDim = _gEBI(ID_AVAIL_DIM);
var avail_text = dim.getAvailText();
if (lcars.language == LANG_KLINGON) avail_text = pIqaDize(avail_text);
if (oAvailDim) oAvailDim.innerHTML = avail_text;
if (typeof oInnerDim == "undefined") oInnerDim = _gEBI(ID_INNER_DIM);
var inner_text = dim.getInnerText();
if (lcars.language == LANG_KLINGON) inner_text = pIqaDize(inner_text);
if (oInnerDim) oInnerDim.innerHTML = inner_text;
 
if (fullscreen.isSupportedBy(document.documentElement))
{
var nowIsFullscreen = fullscreen.isFullscreen();
if (nowIsFullscreen != previousIsFullscreen)
{
if (typeof cmd3 == "undefined")
{
cmd3 = document.getElementById("cmd3");
}
 
var textTarget = cmd3.firstChild.firstChild;
if (nowIsFullscreen)
{
var innerHTML = "<?php echo tr("Window"); ?>";
 
if (transcripted)
{
textTarget.title = innerHTML;
 
switch (lcars.language)
{
case LANG_KLINGON:
innerHTML = pIqaDize(innerHTML);
break;
 
case LANG_VULCAN:
innerHTML = mediaTranscribe(innerHTML);
break;
}
}
 
textTarget.innerHTML = innerHTML;
}
else
{
var text = fullscreenText;
 
if (transcripted)
{
textTarget.title = text;
 
switch (lcars.language)
{
case LANG_KLINGON:
text = pIqaDize(text);
break;
 
case LANG_VULCAN:
text = mediaTranscribe(text);
break;
}
}
 
textTarget.innerHTML = text;
}
 
previousIsFullscreen = nowIsFullscreen;
}
}
});
 
/* Enable Klingon pIQaD/Vulcan Media Script */
var cmd4 = document.getElementById("cmd4");
if (cmd4 && cmd4.lastChild && typeof cmd4.lastChild.onclick == "function")
if (cmd4 && cmd4.lastChild)
{
jsx.dom.timeout.runAsync(function () {
var event = document.createEvent("Events");
event.initEvent("click", true, false);
cmd4.lastChild.dispatchEvent(event);
cmd4.lastChild.click();
}, 1000);
}
 
lcars.insertSound();
}
 
var transcripted = false;
 
function toggleScript (button)
{
var caption = button.firstChild;
 
if (transcripted)
{
if (lcars.language == LANG_KLINGON) klingonLatinScript(button);
if (lcars.language == LANG_VULCAN) latinScript(button);
 
caption.textContent = caption.getAttribute("data-text");
caption.removeAttribute("data-text");
caption.title = caption.getAttribute("data-title");
caption.removeAttribute("data-title");
}
else
{
if (lcars.language == LANG_KLINGON) pIqaD(button);
if (lcars.language == LANG_VULCAN) mediaScript(button);
 
caption.setAttribute("data-text", caption.textContent);
caption.textContent = "<?php echo tr('Latin'); ?>";
caption.setAttribute("data-title", caption.title);
caption.removeAttribute("title");
}
 
transcripted = !transcripted;
}
</script>
<?php /* <bgsound src="media/interface/sound/beginop.wav" loop="infinite"> */ ?>
</head>
/trunk/application/layouts/index/content.phtml
20,7 → 20,7
. " You can use the <a href='index.%s?printable=1'>%s</a>"
. " if it is not displayed properly with your software."),
$language,
tr('Printable version'));
tr('Printable version-declensed'));
?></span></p>
<?php
}
/trunk/application/scripts/vulcan-media-script.js
15,7 → 15,7
U: "¶",
H: "ξ",
G: "^",
Ch: ")",
CH: ")",
I: "ƒ",
N: "(",
Z: "ε",
30,15 → 30,13
ZH: "ω",
TS: "θ",
DZH: "C",
J: "C",
KS: "φ",
X: "φ",
LL: "μ",
M: "&",
NG: "ρ",
NN: "þ",
SS: "β",
TCH: "M"
// LL: "μ",
// M: "&",
// NG: "ρ",
// NN: "þ",
// SS: "β",
// TCH: "M"
};
 
var rxVulcan = jsx.object.getKeys(media_map);
48,24 → 46,16
+ "|[" + rxVulcan.filter(function (e) { return e.length === 1; }). join("") + "]",
"ig");
 
//jsx.object.flip = function (obj) {
// var flipped = jsx.object.inheritFrom(obj);
// var keys = jsx.object.getKeys(obj);
//
// for (var i = 0, len = keys.length; i < len; ++i)
// {
// var key = keys[i];
// var value = obj[key];
// if (typeof value != "function")
// {
// flipped[value] = key;
// }
// }
//
// return flipped;
//};
function mediaTranscribe (s)
{
return s.toUpperCase().replace(
rxVulcan,
function (s) {
return jsx.object.getProperty(media_map, s.replace(/\s+/g, " "), s);
});
}
 
var media_script_used = false;
var LANG_VULCAN_MEDIA = "vuh-Media-Gol-modern";
 
function mediaScript (button)
{
79,6 → 69,13
return;
}
 
if (document.documentElement.lang == LANG_VULCAN)
{
var title = document.getElementsByTagName("title")[0];
title.setAttribute("data-text", document.title);
document.title = mediaTranscribe(document.title);
}
 
for (var i = 0, len = vulcan_texts.length; i < len; ++i)
{
var text = vulcan_texts[i];
92,6 → 89,11
{
text.title = text.textContent;
}
else
{
text.setAttribute("data-title", text.title);
text.title = mediaTranscribe(text.title);
}
}
 
var text_nodes = jsx.dom.xpath.evaluate(
102,40 → 104,66
{
var text_node = text_nodes[j];
 
text_node.nodeValue = text_node.nodeValue.replace(
rxVulcan,
function (s) {
return jsx.object.getProperty(media_map, s.replace(/\s+/g, " ").toUpperCase(), s);
});
text_node.nodeValue = mediaTranscribe(text_node.nodeValue);
}
 
text.parentNode.lang = "vuh-Media-Gol-modern";
if (text.lang == LANG_VULCAN)
{
text.lang = LANG_VULCAN_MEDIA;
}
else if (text.parentNode.lang == LANG_VULCAN)
{
text.parentNode.lang = LANG_VULCAN_MEDIA;
}
}
 
if (button && lcars.language == LANG_VULCAN)
if (button)
{
button.setAttribute("data-caption", button.firstChild.textContent);
button.firstChild.textContent = "Latin-Zukitan";
button.firstChild.lang = LANG_VULCAN;
}
 
media_script_used = true;
var html = document.documentElement;
if (html.lang == LANG_VULCAN)
{
html.lang = LANG_VULCAN_MEDIA;
}
}
 
function latinScript (button)
{
var title = document.getElementsByTagName("title")[0];
if (document.documentElement.lang == LANG_VULCAN_MEDIA)
{
document.title = title.getAttribute("data-text");
title.removeAttribute("data-text")
}
 
for (var i = 0, len = vulcan_texts.length; i < len; ++i)
{
var text = vulcan_texts[i];
 
text.style.textTransform = "";
text.innerHTML = text.getAttribute('data-html');
text.parentNode.lang = "vuh-Latn-Gol-modern";
text.innerHTML = text.getAttribute('data-html') || "";
text.title = text.getAttribute("data-title") || "";
 
if (text.lang == LANG_VULCAN_MEDIA)
{
text.lang = LANG_VULCAN;
}
else if (text.parentNode.lang == LANG_VULCAN_MEDIA)
{
text.parentNode.lang = LANG_VULCAN;
}
}
 
if (lcars.language == LANG_VULCAN)
if (button)
{
button.firstChild.textContent = button.getAttribute("data-caption");
button.firstChild.lang = LANG_VULCAN_MEDIA;
}
 
media_script_used = false;
var html = document.documentElement;
if (html.lang == LANG_VULCAN_MEDIA)
{
html.lang = LANG_VULCAN;
}
}
/trunk/application/scripts/klingon.js
13,6 → 13,10
"l": "\uF8D9",
"m": "\uF8DA",
"n": "\uF8DB",
 
/* prevents mistranscription of "n-gh" as "ng-h" (trailing garbage) */
"ngh": "\uF8DB\uF8D5",
 
"ng": "\uF8DC",
"o": "\uF8DD",
"p": "\uF8DE",
51,23 → 55,6
+ "|[" + rxKlingon.filter(function (e) { return e.length === 1; }). join("") + "]",
"ig");
 
//jsx.object.flip = function (obj) {
// var flipped = jsx.object.inheritFrom(obj);
// var keys = jsx.object.getKeys(obj);
//
// for (var i = 0, len = keys.length; i < len; ++i)
// {
// var key = keys[i];
// var value = obj[key];
// if (typeof value != "function")
// {
// flipped[value] = key;
// }
// }
//
// return flipped;
//};
 
function pIqaDize (s)
{
return s.replace(
91,6 → 78,13
return;
}
 
if (document.documentElement.lang == LANG_KLINGON)
{
var title = document.getElementsByTagName("title")[0];
title.setAttribute("data-text", document.title);
document.title = pIqaDize(document.title);
}
 
for (var i = 0, len = klingon_texts.length; i < len; ++i)
{
var text = klingon_texts[i];
120,7 → 114,7
{
text.lang = LANG_KLINGON_PIQAD;
}
else if (text.parentNode.lang == LANG_KLINGON)
else if (text.parentNode && text.parentNode.lang == LANG_KLINGON)
{
text.parentNode.lang = LANG_KLINGON_PIQAD;
}
132,12 → 126,22
}
 
var html = document.documentElement;
html.setAttribute("data-lang", html.lang);
html.lang = LANG_KLINGON_PIQAD;
if (html.lang == LANG_KLINGON)
{
html.setAttribute("data-lang", html.lang);
html.lang = LANG_KLINGON_PIQAD;
}
}
 
function klingonLatinScript (button)
{
var title = document.getElementsByTagName("title")[0];
if (document.documentElement.lang == LANG_KLINGON_PIQAD)
{
document.title = title.getAttribute("data-text");
title.removeAttribute("data-text")
}
 
for (var i = 0, len = klingon_texts.length; i < len; ++i)
{
var text = klingon_texts[i];
149,7 → 153,7
{
text.lang = LANG_KLINGON;
}
else if (text.parentNode.lang == LANG_KLINGON_PIQAD)
else if (text.parentNode && text.parentNode.lang == LANG_KLINGON_PIQAD)
{
text.parentNode.lang = LANG_KLINGON;
}
161,6 → 165,9
}
 
var html = document.documentElement;
html.lang = html.getAttribute("data-lang");
html.removeAttribute("data-lang");
if (html.lang == LANG_KLINGON_PIQAD)
{
html.lang = html.getAttribute("data-lang");
html.removeAttribute("data-lang");
}
}