모듈:한글조합: 두 판 사이의 차이

리버티게임(개발), 모두가 만들어가는 자유로운 게임
둘러보기로 이동 검색으로 이동
백괴게임>Gustmd7410
편집 요약 없음
백괴게임>Gustmd7410
잔글편집 요약 없음
13번째 줄: 13번째 줄:
local lastcode = mw.ustring.codepoint(last)
local lastcode = mw.ustring.codepoint(last)
if (0x3131 <= lastcode and lastcode <= 0x314E) then -- 자음
if (last) then
if (0x314F <= keycode and keycode <= 0x3163) then -- 모음
if (0x3131 <= lastcode and lastcode <= 0x314E) then -- 자음
return left .. han.letter.cho[last] .. han.letter.jung[key] -- 초성 .. 중성
if (0x314F <= keycode and keycode <= 0x3163) then -- 모음
else return text .. key end
return left .. han.letter.cho[last] .. han.letter.jung[key] -- 초성 .. 중성
elseif (0x1161 <= lastcode and lastcode <= 0x1175) then -- 중성
else return text .. key end
if (0x314F <= keycode and keycode <= 0x3163) then -- 모음
elseif (0x1161 <= lastcode and lastcode <= 0x1175) then -- 중성
return left .. (han.letter.jung[last .. key] or last .. key) -- 중성 or 중성 .. 모음
if (0x314F <= keycode and keycode <= 0x3163) then -- 모음
elseif (0x3131 <= keycode and keycode <= 0x314E) then -- 자음
return left .. (han.letter.jung[last .. key] or last .. key) -- 중성 or 중성 .. 모음
return text .. han.letter.jong[key] -- .. 종성
elseif (0x3131 <= keycode and keycode <= 0x314E) then -- 자음
else return text .. key end
return text .. han.letter.jong[key] -- .. 종성
elseif (0x11A8 <= lastcode and lastcode <= 0x11C2) then -- 종성
else return text .. key end
if (0x3131 <= keycode and keycode <= 0x314E) then -- 자음
elseif (0x11A8 <= lastcode and lastcode <= 0x11C2) then -- 종성
return left .. (han.letter.jong[last .. key] or last .. key) -- 종성 or 종성 .. 초성
if (0x3131 <= keycode and keycode <= 0x314E) then -- 자음
elseif (0x314F <= keycode and keycode <= 0x3163) then -- 모음
return left .. (han.letter.jong[last .. key] or last .. key) -- 종성 or 종성 .. 초성
return left .. han.jong.cho[last] .. han.letter.jung[key] -- (종성 .. 초성) .. 중성
elseif (0x314F <= keycode and keycode <= 0x3163) then -- 모음
return left .. han.jong.cho[last] .. han.letter.jung[key] -- (종성 .. 초성) .. 중성
else return text .. key end
else return text .. key end
else return text .. key end
else return text .. key end
else return text .. key end

2018년 7월 29일 (일) 03:29 판


모듈 설명문서[보기] [편집] [역사] [새로 고침]

틀:한글입력기틀:입력기를 위한 윤희코드 한글 조합 모듈입니다.


local p = {}

function p.typ(frame)
	local han = mw.text.jsonDecode(frame:expandTemplate{title = '모듈:한글조합/변환'})
	
	local text = frame.args[1]
	local key = frame.args[2]
	
	local last = text:sub(-3)
	local left = text:sub(1, -4)
	
	local keycode = mw.ustring.codepoint(key)
	local lastcode = mw.ustring.codepoint(last)
	
	if (last) then
		if (0x3131 <= lastcode and lastcode <= 0x314E) then -- 자음
			if (0x314F <= keycode and keycode <= 0x3163) then -- 모음
				return left .. han.letter.cho[last] .. han.letter.jung[key] -- 초성 .. 중성
			else return text .. key end
		elseif (0x1161 <= lastcode and lastcode <= 0x1175) then -- 중성
			if (0x314F <= keycode and keycode <= 0x3163) then -- 모음
				return left .. (han.letter.jung[last .. key] or last .. key) -- 중성 or 중성 .. 모음
			elseif (0x3131 <= keycode and keycode <= 0x314E) then -- 자음
				return text .. han.letter.jong[key] -- .. 종성
			else return text .. key end
		elseif (0x11A8 <= lastcode and lastcode <= 0x11C2) then -- 종성
			if (0x3131 <= keycode and keycode <= 0x314E) then -- 자음
				return left .. (han.letter.jong[last .. key] or last .. key) -- 종성 or 종성 .. 초성
			elseif (0x314F <= keycode and keycode <= 0x3163) then -- 모음
				return left .. han.jong.cho[last] .. han.letter.jung[key] -- (종성 .. 초성) .. 중성
			else return text .. key end
		else return text .. key end
	else return text .. key end
end

return p