i18n: Improved support and switching between original and Latin script
/trunk/application/layouts/index/multi-display.phtml |
---|
537,62 → 537,35 |
<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) |
<script type="text/javascript" |
src="application/scripts/klingon.js" |
<script type="text/javascript" |
src="application/scripts/vulcan-media-script.js" |
></script> |
<div class="button left right"<?php |
if (in_array($language, array($klingon, $vulcan))) |
{ |
var is_alien_language = (lcars.language == LANG_KLINGON |
|| lcars.language == LANG_VULCAN); |
if (media_script_used) |
?> tabindex="1" onclick="<?php |
switch ($language) |
{ |
klingonLatinScript(button); |
latinScript(button); |
if (!is_alien_language) |
{ |
button.firstChild.textContent = button.getAttribute("data-caption"); |
} |
case $klingon: echo 'pIqaD(this)'; break; |
case $vulcan: echo 'if (media_script_used) { latinScript(this); } else { mediaScript(this); }'; break; |
} |
else |
{ |
pIqaD(button); |
mediaScript(button); |
if (!is_alien_language) |
{ |
button.setAttribute("data-caption", button.firstChild.textContent); |
button.firstChild.textContent = "Latin"; |
} |
} |
?>"<?php |
} |
</script> |
<div class="button left right"<?php |
$language_keys = array_keys($languages); |
if (in_array(@$klingon, $language_keys) || in_array(@$vulcan, $language_keys)) |
{ |
?> tabindex="1" onclick="return toggleScript(this)"<?php |
} |
else |
{ |
?> style="cursor: not-allowed !important"<?php |
} |
?>><span class="text" lang="<?php echo $language; ?>"><?php |
switch ($language) |
{ |
case $klingon: echo 'pIqaD'; break; |
case $vulcan: echo 'Hitra-Zukitan'; break; |
default: echo 'Original'; |
} |
?>><span class="text"><?php |
echo $language == $vulcan ? 'Hitra-Zukitan' : ' '; |
?></span> |
</div></li> |
</ul> |
</div> |
<div class="elbo-button"> |
<span class="text" lang="<?php echo $language; ?>" |
<span class="text" |
title="<?php echo tr("Date of last modification"); ?>" |
><?php echo gmdate('Ym.d', $modi); ?></span> |
</div> |
/trunk/application/layouts/index/index.phtml |
---|
158,7 → 158,7 |
content: lcars.content |
}); |
/* Enable Klingon pIQaD/Vulcan Media Script */ |
/* Enable Vulcan Media Script */ |
var cmd4 = document.getElementById("cmd4"); |
if (cmd4 && cmd4.lastChild && typeof cmd4.lastChild.onclick == "function") |
{ |
/trunk/application/scripts/vulcan-media-script.js |
---|
65,13 → 65,14 |
// return flipped; |
//}; |
var media_caption; |
var media_script_used = false; |
function mediaScript (button) |
{ |
vulcan_texts = jsx.dom.xpath.evaluate( |
'.//*[@class = "text" and (@lang = "' + LANG_VULCAN |
+ '" or parent::*[@lang = "' + LANG_VULCAN + '"])]', |
'.//*[@lang = "' + LANG_VULCAN + '"]//*[(not(@lang) or (@lang = "' + LANG_VULCAN + '")) and (@class = "text")]', |
document.body); |
if (!vulcan_texts) |
79,6 → 80,8 |
return; |
} |
var previous_parent = null; |
for (var i = 0, len = vulcan_texts.length; i < len; ++i) |
{ |
var text = vulcan_texts[i]; |
102,19 → 105,22 |
{ |
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); |
}); |
if (text_node.parentNode.lang != LANG_VULCAN) |
{ |
text_node.nodeValue = text_node.nodeValue.replace( |
rxVulcan, |
function (s) { |
return jsx.object.getProperty(media_map, s.replace(/\s+/g, " ").toUpperCase(), s); |
}); |
} |
} |
text.parentNode.lang = "vuh-Media-Gol-modern"; |
} |
if (button && lcars.language == LANG_VULCAN) |
if (button) |
{ |
button.setAttribute("data-caption", button.firstChild.textContent); |
media_caption = button.firstChild.textContent; |
button.firstChild.textContent = "Latin-Zukitan"; |
} |
132,10 → 138,7 |
text.parentNode.lang = "vuh-Latn-Gol-modern"; |
} |
if (lcars.language == LANG_VULCAN) |
{ |
button.firstChild.textContent = button.getAttribute("data-caption"); |
} |
button.firstChild.textContent = media_caption; |
media_script_used = false; |
} |
/trunk/application/scripts/klingon.js |
---|
73,8 → 73,9 |
function pIqaD (button) |
{ |
klingon_texts = jsx.dom.xpath.evaluate( |
'.//*[@class = "text" and (@lang = "' + LANG_KLINGON |
+ '" or parent::*[@lang = "' + LANG_KLINGON + '"])]', |
'.//*[@lang = "' + LANG_KLINGON + '"]' |
+ '//*[(not(@lang) or (@lang = "' + LANG_KLINGON + '"))' |
+ ' and (@class = "text")]', |
document.body); |
if (!klingon_texts) |
88,7 → 89,7 |
{ |
var text = klingon_texts[i]; |
text.style.fontFamily = "pIqaD, Constructium, Code2000, serif"; |
text.style.fontFamily = "'pIqaD', 'Constructium', 'Code2000'"; |
text.style.fontSize = "90%"; |
if (!text.hasAttribute("data-html")) |
109,22 → 110,23 |
{ |
var text_node = text_nodes[j]; |
text_node.nodeValue = text_node.nodeValue.toUpperCase().replace( |
rxKlingon, |
function (s) { |
return jsx.object.getProperty(klingon_map, s.replace(/\s+/g, " "), s); |
}); |
if (text_node.parentNode.lang != LANG_KLINGON) |
{ |
text_node.nodeValue = text_node.nodeValue.toUpperCase().replace( |
rxKlingon, |
function (s) { |
return jsx.object.getProperty(klingon_map, s.replace(/\s+/g, " "), s); |
}); |
} |
} |
text.parentNode.lang = "tlh-pIqaD"; |
} |
if (button && lcars.language == LANG_KLINGON) |
if (button) |
{ |
button.setAttribute("data-caption", button.firstChild.textContent); |
media_caption = button.firstChild.textContent; |
button.firstChild.textContent = "Latin"; |
button.firstChild.style.fontFamily = ""; |
button.firstChild.style.fontSize = ""; |
} |
} |
140,8 → 142,5 |
text.parentNode.lang = "tlh-Latn"; |
} |
if (lcars.language == LANG_KLINGON) |
{ |
button.firstChild.textContent = button.getAttribute("data-caption"); |
} |
button.firstChild.textContent = media_caption; |
} |