?? kr.js
字號:
VirtualKeyboard.Langs.KR = new function () {
var self = this;
self.Jamo = {'?':[14,44032,1],'?':[6,44620,2],'?':[4,-1,3],'?':[14,45208,4],'?':[4,-1,5],'?':[4,-1,6],'?':[6,45796,7],'?':[2,46384,0],'?':[14,46972,8],'?':[4,-1,9],'?':[4,-1,10],'?':[4,-1,11],'?':[4,-1,12],'?':[4,-1,13],'?':[4,-1,14],'?':[4,-1,15],'?':[6,47560,16],'?':[14,48148,17],'?':[2,48736,0],'?':[4,-1,18],'?':[14,49324,19],'?':[6,49912,20],'?':[6,50500,21],'?':[6,51088,22],'?':[2,51676,0],'?':[6,52264,23],'?':[6,52852,24],'?':[6,53440,25],'?':[6,54028,26],'?':[6,54616,27],'?':[1,0,0],'?':[1,28,0],'?':[1,56,0],'?':[1,84,0],'?':[1,112,0],'?':[1,140,0],'?':[1,168,0],'?':[1,196,0],'?':[1,224,0],'?':[1,336,0],'?':[1,364,0],'?':[1,476,0],'?':[1,504,0],'?':[1,560,0]}
self.VV2V = [0,0,0,0,0,0,0,0,0,224,224,224,0,0,364,364,364,0,0,504,0]
self.V2VV = [0,0,0,0,0,0,0,0,{'?':252,'?':280,'?':308},0,0,0,0,{'?':392,'?':420,'?':448},0,0,0,0, {'?':532},0,0]
self.CV2C = '???????????????????'.split('')
self.C2CC = {'?':'?','?':'?','?':'?','?':'?','?':'?'}
self.CC2C = {'?':'?','?':'?','?':'?','?':'?','?':'?'}
self.PP2P = [0,0,1,1,0,4,4,0,0,8,8,8,8,8,8,8,0,0,17,0,19,0,0,0,0,0,0,0]
self.PP2PC= [0,[0,44032],[0,44620],[1,49324],[0,45208],[4,51088],[4,54616],[0,45796],[0,46972],[8,44032],[8,47560],[8,48148],[8,49324],[8,53440],[8,54028],[8,54616],[0,47560],[0,48148],[17,49324],[0,49324],[0,49912],[0,50500],[0,51088],[0,52264],[0,52852],[0,53440],[0,54028],[0,54616]]
self.P2PP = [0,{'?':2, '?':3},0,0,{'?':5, '?':6},0,0,0,{'?':9,'?':10,'?':11,'?':12,'?':13,'?':14,'?':15},0,0,0,0,0,0,0,0,{'?':18},0,{'?':20},0,0,0,0,0,0,0,0]
/**
* 1 -sh
* 2 -jot
* 4 -w
* 8 -
* 16 -
*/
self.flags = 0 //for some crosstalk
self.parseHangul = function (bufchar) {
if(bufchar=='' || bufchar.length>1) return null
var code=bufchar.charCodeAt()
if(code<0x3131 || code >0xD7A3) return null // non Korean buffer
else if(code<0x314F && code>0x3130) return [self.Jamo[bufchar][1],-1,0] // consonant in buffer
code -= 44032
var arr=[]
arr[0]=44032+588*(code / 588 >>0)
code %= 588
arr[1]= 28*(code / 28 >>0)
arr[2]= code % 28
return arr
}
self.charProcessor = function (chr, buf, CVC, rukbd) {
var jamo=self.Jamo[chr]
if (!CVC) CVC=self.parseHangul(buf)
if (CVC==null) {
if (!jamo) {
return [chr,0]
} else {
if(jamo[0] & 2) return [chr,1] //can start a syllable
else return [chr,0]
}
} else { // full buf
if (chr=='\u0008'){
if (CVC[2]) {
return [ String.fromCharCode( CVC[0]+CVC[1]+self.PP2P[CVC[2]]), 1]
} else if(CVC[1]>-1){
var VV2V=self.VV2V[CVC[1]/28]
if(VV2V)
return [String.fromCharCode(CVC[0]+VV2V), 1]
else
return [self.CV2C[(CVC[0]-44032)/588], 1]
} else if(self.CC2C[buf]) {
return [self.CC2C[buf],1]
} else {
self.flags=0
return['',0]
}
} else if(!jamo){
self.flags=0
return [buf+chr,0]
} else if(CVC[2]) { // [CVC]
if (jamo[0] & 2) { //[CVC] +C
var P2PP = self.P2PP[CVC[2]][chr]
if(P2PP) return [ String.fromCharCode( CVC[0]+CVC[1]+P2PP), 1] // [CVCC]
else return [buf+chr, 1] // CVC, [C]
} else if (jamo[0] & 1) {// [CVC] +V
if(rukbd && CVC[2]==21)
return [buf+String.fromCharCode(50500+jamo[1]),1]
return [ String.fromCharCode( CVC[0]+CVC[1]+self.PP2PC[CVC[2]][0])
+String.fromCharCode( self.PP2PC[CVC[2]][1]+self.Jamo[chr][1])
,1] // CV(P) [PV]
} else { // [CVC] + PP
return [buf+chr, 0]
}
} else if(CVC[1]>-1) { // [CV]
self.flags &=~ 3
if (jamo[0] & 4) { // [CV] +P
return [String.fromCharCode(CVC[0]+CVC[1]+jamo[2]), 1] // [CVC]
} else if(jamo[0] & 1) { // [CV]+V
if (rukbd) {
var vow
if (self.flags & 4 && (vow='\u3153\u3154\u3163'.indexOf(chr))!=-1) {//weo, we, wi
self.flags &=~4
return [String.fromCharCode(CVC[0]+[392,308,448][vow]),1]
}
}
var V2VV = self.V2VV[CVC[1]/28][chr]
if (V2VV) {// [CVV]
//self.flags &=~7
return [String.fromCharCode(CVC[0]+V2VV), 1]
} else {// CV,[V]
if (rukbd) {
//self.flags &=~7
return [buf+String.fromCharCode(50500+jamo[1]),1]
}
else return [buf+chr, 0]
}
}
else return [buf+chr, 1] //CV [C]
} else if(jamo[0] & 1) {// [C] +V
return [String.fromCharCode(self.Jamo[buf][1]+jamo[1]), 1]
} else { //[C]+C
if(buf==chr && self.C2CC[buf]) return [self.C2CC[buf],1]
else return [buf+chr, 1]
}
}
}
};
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -