First commit.
This commit is contained in:
BIN
subsites/projects/jap/kanaverter/bak/logo.xcf
Normal file
BIN
subsites/projects/jap/kanaverter/bak/logo.xcf
Normal file
Binary file not shown.
30
subsites/projects/jap/kanaverter/bak/t.txt
Normal file
30
subsites/projects/jap/kanaverter/bak/t.txt
Normal file
@@ -0,0 +1,30 @@
|
||||
function convert_value(str,from,to) {
|
||||
strlen=str.length
|
||||
cstart=0
|
||||
ftxt=""
|
||||
for (i=0;i<strlen;i++) {
|
||||
clen=i-cstart+1
|
||||
ctxt=str.substr(cstart,clen)
|
||||
cctxt=str.substr(cstart+1,1)
|
||||
maybe=false
|
||||
for (ii=0;ii<rhiradbl;ii++) {
|
||||
crhiradb=rhiradb[ii]
|
||||
if (crhiradb==ctxt) {
|
||||
ftxt+=""+r_hiradb[ctxt]+";"
|
||||
cstart=i+1
|
||||
maybe=true
|
||||
}
|
||||
else if (crhiradb.substr(0,clen)==ctxt) {
|
||||
maybe=true
|
||||
}
|
||||
}
|
||||
if (!maybe) {
|
||||
document.title=ctxt
|
||||
//ftxt+=cctxt
|
||||
cstart=i
|
||||
}
|
||||
}
|
||||
//if (strlen>cstart) ftxt+=ctxt
|
||||
ftxt=html_entity_decode(ftxt)
|
||||
return ftxt
|
||||
}
|
||||
511
subsites/projects/jap/kanaverter/index.htm
Normal file
511
subsites/projects/jap/kanaverter/index.htm
Normal file
@@ -0,0 +1,511 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html xmlns="http://www.w3c.org/1999/xhtml">
|
||||
<head>
|
||||
<title>kanaverter [JavaScript]</title>
|
||||
<style type='text/css'>
|
||||
* {
|
||||
margin:0;
|
||||
padding:0;
|
||||
}
|
||||
|
||||
#box {
|
||||
background:#f5f5f5 url(logo.png) no-repeat 2px 4px;
|
||||
width:490px;
|
||||
height:250px;
|
||||
padding:50px 5px 0 5px;
|
||||
position:absolute;
|
||||
left:50%;
|
||||
top:50%;
|
||||
margin-left:-251px;
|
||||
margin-top:-151px;
|
||||
border:1px solid #999;
|
||||
}
|
||||
|
||||
#box div {
|
||||
width:240px;
|
||||
height:245px;
|
||||
float:left;
|
||||
}
|
||||
|
||||
#romaji_container {
|
||||
margin-right:10px;
|
||||
}
|
||||
|
||||
#kana_container {
|
||||
}
|
||||
|
||||
#box div textarea {
|
||||
font:12px arial;
|
||||
border:1px solid #ddd;
|
||||
width:232px;
|
||||
padding:3px;
|
||||
height:208px;
|
||||
background:#fff;
|
||||
overflow:auto;
|
||||
}
|
||||
|
||||
#box div div textarea {
|
||||
height:80px;
|
||||
margin-bottom:5px;
|
||||
}
|
||||
|
||||
#hirakata {
|
||||
display:none;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font:normal 20px georgia;
|
||||
margin-top:5px;
|
||||
padding-left:3px;
|
||||
cursor:pointer;
|
||||
}
|
||||
|
||||
h1:hover {
|
||||
background:#ddd;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font:normal 14px georgia;
|
||||
}
|
||||
|
||||
#box #wl {
|
||||
position:absolute;
|
||||
top:5px;
|
||||
right:5px;
|
||||
color:#0000ff;
|
||||
font:12px arial;
|
||||
cursor:pointer;
|
||||
width:auto;
|
||||
height:auto;
|
||||
float:none;
|
||||
}
|
||||
|
||||
#box #wl #wn {
|
||||
position:absolute;
|
||||
top:20px;
|
||||
right:0;
|
||||
font:12px arial;
|
||||
width:478px;
|
||||
padding:5px;
|
||||
border:1px solid #000;
|
||||
height:auto;
|
||||
float:none;
|
||||
color:#000;
|
||||
background:#fff;
|
||||
display:none;
|
||||
}
|
||||
|
||||
#box #wl:hover #wn {
|
||||
display:block;
|
||||
}
|
||||
</style>
|
||||
<!--[if IE]>
|
||||
<style type='text/css'>
|
||||
#box div textarea {
|
||||
margin-top:-1px;
|
||||
}
|
||||
</style>
|
||||
<![endif]-->
|
||||
<script type='text/javascript'>
|
||||
function is_array(obj) {
|
||||
return obj.constructor==Array
|
||||
}
|
||||
|
||||
function ctitle(where,title) {
|
||||
nodes=eval(where+"_div").childNodes
|
||||
nodes_length=nodes.length
|
||||
for (var i=0;i<nodes_length;i++) {
|
||||
node=nodes[i]
|
||||
if (node.nodeName=="H1") node.innerHTML=title
|
||||
}
|
||||
}
|
||||
|
||||
function kanaside(what) {
|
||||
nodes=kana_div.childNodes
|
||||
nodes_length=nodes.length
|
||||
for (var i=0;i<nodes_length;i++) {
|
||||
node=nodes[i]
|
||||
if (node.nodeName=="TEXTAREA") node.style.display=visibility_action[oppo[what]]
|
||||
}
|
||||
hk_div.style.display=visibility_action[what]
|
||||
}
|
||||
|
||||
function pblur(what) {
|
||||
if (what==infocus) {
|
||||
if (what=="romaji") romaji_input=romaji_text.value
|
||||
else if (what=="kana") romaji_output=romaji_text.value
|
||||
}
|
||||
else {
|
||||
if (what=="romaji") romaji_output=romaji_text.value
|
||||
}
|
||||
}
|
||||
|
||||
function bpfocus(what,detail) {
|
||||
if (detail===undefined) detail=what
|
||||
if (eval(detail+"_text").value=="") pfocus(what)
|
||||
else if (what!=infocus) eval(detail+"_text").select()
|
||||
}
|
||||
|
||||
function pfocus(what) {
|
||||
if (what!=infocus) {
|
||||
whatnot=oppo[what]
|
||||
ctitle(what,what.substr(0,1).toUpperCase()+what.substr(1)+" (input)")
|
||||
ctitle(whatnot,whatnot.substr(0,1).toUpperCase()+whatnot.substr(1)+" (output)")
|
||||
kanaside(what)
|
||||
tfocus(what)
|
||||
}
|
||||
}
|
||||
|
||||
function tfocus(what) {
|
||||
whatnot=oppo[what]
|
||||
eval(what+"_text").focus()
|
||||
if (what=="kana") romaji_text.value=romaji_output
|
||||
else if (what=="romaji") romaji_text.value=romaji_input
|
||||
infocus=what
|
||||
}
|
||||
|
||||
function html_entity_decode(str) {
|
||||
ta=document.createElement("textarea")
|
||||
ta.innerHTML=str.replace(/</g,"<").replace(/>/g,">")
|
||||
return ta.value
|
||||
}
|
||||
|
||||
function convert_value(str,from,to) {
|
||||
var strlen=str.length
|
||||
var ftxt=""
|
||||
if (to=="hira" || to=="kata") {
|
||||
var ostr=str
|
||||
var str=str.toLowerCase()
|
||||
var ttxt=""
|
||||
var ottxt=""
|
||||
var ctxt
|
||||
var octxt
|
||||
var cctxt
|
||||
var occtxt
|
||||
var maybe
|
||||
var ad
|
||||
var crkanadb
|
||||
for (var i=0;i<strlen;i++) {
|
||||
ctxt=str.substr(i,1)
|
||||
octxt=ostr.substr(i,1)
|
||||
cctxt=ttxt+ctxt
|
||||
occtxt=ottxt+octxt
|
||||
maybe=false
|
||||
ad=false
|
||||
for (var ii=0;ii<eval("r"+to+"dbl");ii++) {
|
||||
crkanadb=eval("r"+to+"db[ii]")
|
||||
if (crkanadb==cctxt && !ad) {
|
||||
ad=true
|
||||
ftxt+=""+eval("r_"+to+"db[cctxt]")+";"
|
||||
ttxt=""
|
||||
ottxt=""
|
||||
maybe=true
|
||||
}
|
||||
else if (crkanadb.substr(0,cctxt.length)==cctxt && !ad) {
|
||||
ad=true
|
||||
ttxt+=ctxt
|
||||
ottxt+=octxt
|
||||
maybe=true
|
||||
}
|
||||
}
|
||||
if (!maybe) {
|
||||
ad=false
|
||||
for (var ii=0;ii<eval("r"+to+"dbl");ii++) {
|
||||
crkanadb=eval("r"+to+"db[ii]")
|
||||
if (crkanadb==ctxt && !ad) {
|
||||
ad=true
|
||||
ftxt+=occtxt.substr(0,1)+""+eval("r_"+to+"db[ctxt]")+";"
|
||||
ttxt=""
|
||||
ottxt=""
|
||||
maybe=true
|
||||
}
|
||||
}
|
||||
if (!maybe) {
|
||||
ftxt+=ottxt
|
||||
ttxt=ctxt
|
||||
ottxt=octxt
|
||||
}
|
||||
}
|
||||
}
|
||||
//document.title="cc: "+cctxt+" c: "+ctxt+" t: "+ttxt
|
||||
ftxt+=ottxt
|
||||
ftxt=html_entity_decode(ftxt)
|
||||
}
|
||||
else if (to=="romaji") {
|
||||
var ctxt
|
||||
var ckana
|
||||
var isit
|
||||
for (var i=0;i<strlen;i++) {
|
||||
ctxt=str.substr(i,1)
|
||||
isit=false
|
||||
for (var ii=0;ii<kkanadbl && !isit;ii++) {
|
||||
ckana=kkanadb[ii]
|
||||
if (html_entity_decode(""+ckana+";")==ctxt) isit=true
|
||||
}
|
||||
if (isit) ftxt+=k_kanadb[ckana]
|
||||
else ftxt+=ctxt
|
||||
}
|
||||
}
|
||||
return ftxt
|
||||
}
|
||||
|
||||
function copy_value(from,to) {
|
||||
if (from==infocus) {
|
||||
ovalue=eval(from+"_text").value
|
||||
nto=to.split(",")
|
||||
tol=nto.length
|
||||
for (var i=0;i<tol;i++) {
|
||||
cto=nto[i]
|
||||
if (ovalue!="") nvalue=convert_value(ovalue,from,cto)
|
||||
else nvalue=""
|
||||
eval(cto+"_text").value=nvalue
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
window.onload=function(){
|
||||
box_div=document.getElementById("box")
|
||||
romaji_div=document.getElementById("romaji_container")
|
||||
kana_div=document.getElementById("kana_container")
|
||||
hk_div=document.getElementById("hirakata")
|
||||
|
||||
romaji_text=document.getElementById("romaji")
|
||||
kana_text=document.getElementById("kana")
|
||||
hira_text=document.getElementById("hira")
|
||||
kata_text=document.getElementById("kata")
|
||||
|
||||
if (navigator.appVersion.toLowerCase().indexOf("chrome")!=-1) {
|
||||
hira_text.style.height="78px"
|
||||
kata_text.style.height="78px"
|
||||
}
|
||||
|
||||
oppo=new Array()
|
||||
oppo["romaji"]="kana"
|
||||
oppo["kana"]="romaji"
|
||||
visibility_action=new Array()
|
||||
visibility_action["romaji"]="block"
|
||||
visibility_action["kana"]="none"
|
||||
|
||||
romaji_input=""
|
||||
romaji_output=""
|
||||
infocus=""
|
||||
|
||||
rhiradb=new Array("o","a","sa","ki","ma","ho","ha","yo","mu","mo","shi","si","nu","me","to","ko","ni","ta","na","ne","wa","le","re","se","ke","mi","no","tsu","tzu","tu","u","la","ra","chi","ci","ti","lo","ro","lu","ru","yu","ya","wo","li","ri","n'","e","so","te","he","ku","fu","hu","su","hi","ka","i")
|
||||
rhiradbl=rhiradb.length
|
||||
|
||||
r_hiradb=new Array()
|
||||
r_hiradb["o"]=362
|
||||
r_hiradb["a"]=354
|
||||
r_hiradb["sa"]=373
|
||||
r_hiradb["ki"]=365
|
||||
r_hiradb["ma"]=414
|
||||
r_hiradb["ho"]=411
|
||||
r_hiradb["ha"]=399
|
||||
r_hiradb["yo"]=424
|
||||
r_hiradb["mu"]=416
|
||||
r_hiradb["mo"]=418
|
||||
r_hiradb["shi"]=375
|
||||
r_hiradb["si"]=375
|
||||
r_hiradb["nu"]=396
|
||||
r_hiradb["me"]=417
|
||||
r_hiradb["to"]=392
|
||||
r_hiradb["ko"]=371
|
||||
r_hiradb["ni"]=395
|
||||
r_hiradb["ta"]=383
|
||||
r_hiradb["na"]=394
|
||||
r_hiradb["ne"]=397
|
||||
r_hiradb["wa"]=431
|
||||
r_hiradb["le"]=428
|
||||
r_hiradb["re"]=428
|
||||
r_hiradb["se"]=379
|
||||
r_hiradb["ke"]=369
|
||||
r_hiradb["mi"]=415
|
||||
r_hiradb["no"]=398
|
||||
r_hiradb["tsu"]=388
|
||||
r_hiradb["tzu"]=388
|
||||
r_hiradb["tu"]=388
|
||||
r_hiradb["u"]=358
|
||||
r_hiradb["la"]=425
|
||||
r_hiradb["ra"]=425
|
||||
r_hiradb["chi"]=385
|
||||
r_hiradb["ci"]=385
|
||||
r_hiradb["ti"]=385
|
||||
r_hiradb["lo"]=429
|
||||
r_hiradb["ro"]=429
|
||||
r_hiradb["lu"]=427
|
||||
r_hiradb["ru"]=427
|
||||
r_hiradb["yu"]=422
|
||||
r_hiradb["ya"]=420
|
||||
r_hiradb["wo"]=434
|
||||
r_hiradb["li"]=426
|
||||
r_hiradb["ri"]=426
|
||||
r_hiradb["n'"]=435
|
||||
r_hiradb["e"]=360
|
||||
r_hiradb["so"]=381
|
||||
r_hiradb["te"]=390
|
||||
r_hiradb["he"]=408
|
||||
r_hiradb["ku"]=367
|
||||
r_hiradb["fu"]=405
|
||||
r_hiradb["hu"]=405
|
||||
r_hiradb["su"]=377
|
||||
r_hiradb["hi"]=402
|
||||
r_hiradb["ka"]=363
|
||||
r_hiradb["i"]=356
|
||||
|
||||
|
||||
rkatadb=new Array("ka","u","me","no","i","to","chi","ci","ti","o","mi","yo","mu","ke","wa","nu","so","n'","sa","na","te","yu","ko","e","ku","fu","hu","su","tsu","tzu","tu","shi","si","li","ri","lu","ru","le","re","hi","lo","ro","he","ho","ta","la","ra","wo","ki","ni","ha","se","ya","a","ma","ne")
|
||||
rkatadbl=rkatadb.length
|
||||
|
||||
r_katadb=new Array()
|
||||
r_katadb["ka"]=459
|
||||
r_katadb["u"]=454
|
||||
r_katadb["me"]=513
|
||||
r_katadb["no"]=494
|
||||
r_katadb["i"]=452
|
||||
r_katadb["to"]=488
|
||||
r_katadb["chi"]=481
|
||||
r_katadb["ci"]=481
|
||||
r_katadb["ti"]=481
|
||||
r_katadb["o"]=458
|
||||
r_katadb["mi"]=511
|
||||
r_katadb["yo"]=520
|
||||
r_katadb["mu"]=512
|
||||
r_katadb["ke"]=465
|
||||
r_katadb["wa"]=527
|
||||
r_katadb["nu"]=492
|
||||
r_katadb["so"]=477
|
||||
r_katadb["n'"]=531
|
||||
r_katadb["sa"]=469
|
||||
r_katadb["na"]=490
|
||||
r_katadb["te"]=486
|
||||
r_katadb["yu"]=518
|
||||
r_katadb["ko"]=467
|
||||
r_katadb["e"]=456
|
||||
r_katadb["ku"]=463
|
||||
r_katadb["fu"]=501
|
||||
r_katadb["hu"]=501
|
||||
r_katadb["su"]=473
|
||||
r_katadb["tsu"]=484
|
||||
r_katadb["tzu"]=484
|
||||
r_katadb["tu"]=484
|
||||
r_katadb["shi"]=471
|
||||
r_katadb["si"]=471
|
||||
r_katadb["li"]=522
|
||||
r_katadb["ri"]=522
|
||||
r_katadb["lu"]=523
|
||||
r_katadb["ru"]=523
|
||||
r_katadb["le"]=524
|
||||
r_katadb["re"]=524
|
||||
r_katadb["hi"]=498
|
||||
r_katadb["lo"]=525
|
||||
r_katadb["ro"]=525
|
||||
r_katadb["he"]=504
|
||||
r_katadb["ho"]=507
|
||||
r_katadb["ta"]=479
|
||||
r_katadb["la"]=521
|
||||
r_katadb["ra"]=521
|
||||
r_katadb["wo"]=530
|
||||
r_katadb["ki"]=461
|
||||
r_katadb["ni"]=491
|
||||
r_katadb["ha"]=495
|
||||
r_katadb["se"]=475
|
||||
r_katadb["ya"]=516
|
||||
r_katadb["a"]=450
|
||||
r_katadb["ma"]=510
|
||||
r_katadb["ne"]=493
|
||||
|
||||
|
||||
kkanadb=new Array("362","354","373","365","414","411","399","424","416","418","375","396","417","392","371","395","383","394","397","431","428","379","369","415","398","388","358","425","385","429","427","422","420","434","426","435","360","381","390","408","367","405","377","402","363","356")
|
||||
kkanadbl=kkanadb.length
|
||||
|
||||
k_kanadb=new Array()
|
||||
k_kanadb["362"]="o"
|
||||
k_kanadb["354"]="a"
|
||||
k_kanadb["373"]="sa"
|
||||
k_kanadb["365"]="ki"
|
||||
k_kanadb["414"]="ma"
|
||||
k_kanadb["411"]="ho"
|
||||
k_kanadb["399"]="ha"
|
||||
k_kanadb["424"]="yo"
|
||||
k_kanadb["416"]="mu"
|
||||
k_kanadb["418"]="mo"
|
||||
k_kanadb["375"]="shi"
|
||||
k_kanadb["375"]="si"
|
||||
k_kanadb["396"]="nu"
|
||||
k_kanadb["417"]="me"
|
||||
k_kanadb["392"]="to"
|
||||
k_kanadb["371"]="ko"
|
||||
k_kanadb["395"]="ni"
|
||||
k_kanadb["383"]="ta"
|
||||
k_kanadb["394"]="na"
|
||||
k_kanadb["397"]="ne"
|
||||
k_kanadb["431"]="wa"
|
||||
k_kanadb["428"]="le"
|
||||
k_kanadb["428"]="re"
|
||||
k_kanadb["379"]="se"
|
||||
k_kanadb["369"]="ke"
|
||||
k_kanadb["415"]="mi"
|
||||
k_kanadb["398"]="no"
|
||||
k_kanadb["388"]="tsu"
|
||||
k_kanadb["388"]="tzu"
|
||||
k_kanadb["388"]="tu"
|
||||
k_kanadb["358"]="u"
|
||||
k_kanadb["425"]="la"
|
||||
k_kanadb["425"]="ra"
|
||||
k_kanadb["385"]="chi"
|
||||
k_kanadb["385"]="ci"
|
||||
k_kanadb["385"]="ti"
|
||||
k_kanadb["429"]="lo"
|
||||
k_kanadb["429"]="ro"
|
||||
k_kanadb["427"]="lu"
|
||||
k_kanadb["427"]="ru"
|
||||
k_kanadb["422"]="yu"
|
||||
k_kanadb["420"]="ya"
|
||||
k_kanadb["434"]="wo"
|
||||
k_kanadb["426"]="li"
|
||||
k_kanadb["426"]="ri"
|
||||
k_kanadb["435"]="n'"
|
||||
k_kanadb["360"]="e"
|
||||
k_kanadb["381"]="so"
|
||||
k_kanadb["390"]="te"
|
||||
k_kanadb["408"]="he"
|
||||
k_kanadb["367"]="ku"
|
||||
k_kanadb["405"]="fu"
|
||||
k_kanadb["405"]="hu"
|
||||
k_kanadb["377"]="su"
|
||||
k_kanadb["402"]="hi"
|
||||
k_kanadb["363"]="ka"
|
||||
k_kanadb["356"]="i"
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id='box'>
|
||||
|
||||
<div id='wl'>
|
||||
Warning!
|
||||
<div id='wn'>
|
||||
This isn't a very good kana-romaji converter. For one thing, it's in a web browser and relies on the power of the user's computer. Second, it's also not complete. It only translates basic kanas. Kanas consisting of 2 signs simply don't exist in this web app. Instead I recommend JWPce for use as a text editor. It's simple and works perfectly.
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id='romaji_container'>
|
||||
<h1 onclick='pfocus("romaji")'>Romaji</h1>
|
||||
<textarea id='romaji' onfocus='bpfocus("romaji")' onblur='pblur("romaji")' onkeyup='copy_value("romaji","hira,kata")'></textarea>
|
||||
</div>
|
||||
|
||||
<div id='kana_container'>
|
||||
<h1 onclick='pfocus("kana")'>Kana</h1>
|
||||
<textarea id='kana' onfocus='pfocus("kana")' onblur='pblur("kana")' onkeyup='copy_value("kana","romaji")'></textarea>
|
||||
<div id='hirakata'>
|
||||
<h2>Hiragana:</h2>
|
||||
<textarea id='hira' onfocus='bpfocus("kana","hira")'></textarea>
|
||||
<h2>Katakana:</h2>
|
||||
<textarea id='kata' onfocus='bpfocus("kana","kata")'></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
BIN
subsites/projects/jap/kanaverter/logo.png
Normal file
BIN
subsites/projects/jap/kanaverter/logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 5.2 KiB |
Reference in New Issue
Block a user