모듈:고대 그리스어
Module사용.
이 모듈은 고대 그리스어 텍스트를 번역합니다.Wiktionary의 고대 그리스어 번역 모듈의 이전 버전을 기반으로 하며 템플릿을 통해 호출할 수 있도록 약간 수정했습니다.
{{#제외:고대 그리스어 번역 itοςς ancient ancient ancient ancient ancient ancient }
- 호오
다음 코드는 기본 문자열 함수를 사용합니다(예:str:gsub(...)
)을 클릭합니다.패턴에 여러 바이트 문자가 포함된 집합이 포함되어 있는 경우(예:"[αΑ]"
또는 여러 바이트 문자로 동작하는 수량자("α+"
의 서브스트링을 올바르게 취득하려면 , 이러한 서브스트링을 사용할 필요가 있습니다.i까지j유니코드 문자다른 상황에서는 기본 문자열 함수를 사용할 수 있으며, 이 함수를 사용하기 전에 문자열을 코드 포인트로 해석할 필요가 없기 때문에 효율성을 위해 선호됩니다.
현지의 p = {} 현지의 마크롱 = 음.스트링.차(0x304) 현지의 절단하다 = 음.스트링.차(0x306) 현지의 거칠다 = 음.스트링.차(0x314) 현지의 매끄러운 = 음.스트링.차(0x313) 현지의 디아리시스 = 음.스트링.차(0x308) 현지의 예리한 = 음.스트링.차(0x301) 현지의 중대. = 음.스트링.차(0x300) 현지의 구부러지다 = 음.스트링.차(0x342) 현지의 라틴어_circumflex = 음.스트링.차(0x302) 현지의 첨자 = 음.스트링.차(0x345) 현지의 markon_s = 마크롱 .. 디아리시스 .. '?' .. 라틴어_circumflex 현지의 레벨 = { ['실패'] = 진실의, ['실패'] = 진실의, ['실패'] = 진실의, ['실패'] = 진실의, } 현지의 UTF8_char = "%z\1-\127\194-\244][\128-\191]*" 현지의 기본_그리스어 = "[\206-\207][\128-\191]" -- excluding first line of Greek and Coptic block: ͰͱͲͳʹ͵Ͷͷͺͻͼͽ;Ϳ 현지의 정보 = {} -- 테이블은 다른 문자 간에 공유되므로 확인할 수 있습니다. --필요한 경우 평등을 실현하고 공간을 적게 사용합니다. 현지의 모음 = { 모음 = 진실의, 발음이 다른_시트 = 진실의 } 현지의 iota = { 모음 = 진실의, 발음이 다른_시트 = 진실의, 오프슬라이드 = 진실의 } 현지의 업실론 = { 모음 = 진실의, 발음이 다른_시트 = 진실의, 오프슬라이드 = 진실의 } Rho는 엄밀히 말하면 거친 호흡이나 부드러운 호흡을 위한 자리일 뿐이다. 현지의 로 = { 자음 = 진실의, 발음이 다른_시트 = 진실의 } 현지의 자음 = { 자음 = 진실의 } 현지의 발음이 다른 = { 발음이 다른 = 진실의 } --평등 비교에 필요. 현지의 숨쉬다 = { 발음이 다른 = 진실의 } 현지의 기능. add_info(성격., t) 한다면 유형(성격.) == "문자열' 그리고나서 위해서 성격 에 string.gmatch(성격., UTF8_char) 일을 하다 정보[성격] = t 끝. 또 다른 위해서 _, 성격 에 아이페어(성격.) 일을 하다 정보[성격] = t 끝. 끝. 끝. add_info({ 마크롱, 절단하다, 디아리시스, 예리한, 중대., 구부러지다, 첨자, }, 발음이 다른) add_info({거칠다, 매끄러운}, 숨쉬다) add_info("알파시오", 모음) add_info('아예', iota) add_info('아예', 업실론) add_info("β μ μ μ μ μ μ β", 자음) add_info('아예', 로) 현지의 인식되지 않다 = {} 설정 가능한(정보, { __인덱스 = 기능.() 돌아가다 인식되지 않다 끝. }) 현지의 기능. 견적을 내다(스트레이트) 돌아가다 "“" .. 스트레이트 .. "”" 끝. 현지의 서신호 = { --모음 ["α"] = "a", ["실패"] = "e", ["실패"] = "e" .. 마크롱, ["실패"] = '나', ["오"] = "o", ["실패"] = "u", ["실패"] = "o" .. 마크롱, -- 자음 ['β'] = "b", ["실패"] = "g", ["실패"] = "d", ["실패"] = "z", ["실패"] = "th", ["실패"] = "k", ["실패"] = "l", ['μ'] = "m", ["실패"] = "n", ["실패"] = "x", ["실패"] = "p", ["실패"] = "r", ["실패"] = "s", ["실패"] = "s", ["실패"] = "t", ["실패"] = "ph", ["실패"] = "ps", --고대 문자 ["실패"] = "w", ["실패"] = "실패", ["실패"] = "q", ["실패"] = '시', ["실패"] = "v", -- 분음 부호 [매끄러운] = '', [거칠다] = '', -- h 는, 「contiterate」함수에 추가되어 있습니다. [절단하다] = '', } 현지의 ALA_LC = { ["실패"] = "ch", [예리한] = '', [중대.] = '', [구부러지다] = '', [첨자] = '', [디아리시스] = '', [마크롱] = '', } 현지의 Wiktionary_번역 = { ["실패"] = "kh", [구부러지다] = 라틴어_circumflex, [첨자] = '나', } 현지의 기능. add_index_metamethod(t, index_metamethod) 현지의 할 수 있다 = getmetable(t) 한다면 것은 아니다. 할 수 있다 그리고나서 할 수 있다 = {} 설정 가능한(t, 할 수 있다) 끝. 할 수 있다.__인덱스 = index_metamethod 끝. --[=[ 이것은 단어를 의미 있는 "토큰"으로 나눕니다. 분음 부호가 있는 개별 문자 또는 이중모음 [ Module : grc - accent ]및 [Module : grc - 발음]에서 사용됩니다. --]=] 현지의 기능. 토큰화하다(본문) 현지의 토큰, 모음_info, prev_info = {}, {}, {} 현지의 토큰_i = 1 현지의 프리브 위해서 성격 에 string.gmatch(음.스트링.하지 않다(본문), UTF8_char) 일을 하다 현지의 curr_info = 정보[성격] -- 쌍봉이 아닌 경우 토큰 간에 모음을 분할합니다. 한다면 curr_info.모음 그리고나서 한다면 프리브 그리고. (것은 아니다. (curr_info.오프슬라이드 그리고. prev_info.모음) -- → 、 、 -- -- → 、 、 -- 또는 prev_info.오프슬라이드 그리고. curr_info == 업실론) 그리고나서 토큰_i = 토큰_i + 1 끝. 토큰[토큰_i] = (토큰[토큰_i] 또는 "") .. 성격 테이블 삽입(모음_info, { 색인 = 토큰_i }) 그렇지 않으면 curr_info.발음이 다른 그리고나서 토큰[토큰_i] = (토큰[토큰_i] 또는 "") .. 성격 한다면 prev_info.모음 또는 prev_info.발음이 다른 그리고나서 한다면 성격 == 디아리시스 그리고나서 -- 현재 토큰은 모음, 모음, 기타 분음 부호일 수 있습니다. -- 및 diaeresis. -- 현재 토큰을 두 개로 나눕니다. --첫 번째 글자와 두 번째 글자에 분음 부호를 추가합니다. 현지의 previous_parious, 모음_with_diaeresis = string.match(토큰[토큰_i], "^(" .. 기본_그리스어 .. ")(" .. 기본_그리스어 .. ".+)") 한다면 previous_parious 그리고나서 토큰[토큰_i], 토큰[토큰_i + 1] = previous_parious, 모음_with_diaeresis 토큰_i = 토큰_i + 1 끝. 끝. 그렇지 않으면 prev_info == 로 그리고나서 한다면 curr_info ~= 숨쉬다 그리고나서 돌아가다 string.format("%s 문자에는 %s 악센트를 사용할 수 없습니다.", 프리브, "◌" .. 성격) 끝. 또 다른 에러('캐릭터' .. 견적을 내다(프리브) .. " 분음 부호를 사용할 수 없습니다.") 끝. 그렇지 않으면 curr_info == 로 그리고나서 한다면 프리브 그리고. 것은 아니다. (prev_info == 숨쉬다 그리고. 정보[string.match(토큰[토큰_i], "^" .. 기본_그리스어)] == 로) 그리고나서 토큰_i = 토큰_i + 1 끝. 토큰[토큰_i] = (토큰[토큰_i] 또는 "") .. 성격 또 다른 한다면 프리브 그리고나서 토큰_i = 토큰_i + 1 끝. 토큰[토큰_i] = (토큰[토큰_i] 또는 "") .. 성격 끝. 프리브 = 성격 prev_info = curr_info 끝. 돌아가다 토큰 끝. 기능. p.번역하다(본문, 시스템.) add_index_metamethod(서신호, 시스템. == "ALA-LC" 그리고. ALA_LC 또는 Wiktionary_번역) 한다면 본문 == '῾' 그리고나서 돌아가다 '하' 끝. 본문 = 음.스트링.하지 않다(본문) --[[ 세미콜론 또는 그리스 물음표를 일반 물음표로 바꿉니다. (변환을 피하기 위해) ASCII 영숫자 뒤에 있는 경우는 제외합니다. 세미콜론(HTML 엔티티)을 사용합니다. --]] 본문 = 음.스트링.서브(본문, ([^A-Za-z0-9])[;" .. 음.스트링.차(0x37E) .. "]", "%1?") -- 가운데 점을 잡습니다.세미콜론 또는 콜론과 동일하지만 세미콜론이 더 일반적일 수 있습니다. 본문 = 본문:서브("·", ";") 현지의 토큰 = 토큰화하다(본문) --이제 토큰을 읽습니다. 현지의 산출량 = {} 위해서 i, 상품권 에 쌍들(토큰) 일을 하다 -- 토큰 내의 각 문자를 변환으로 바꿉니다. 현지의 번역하다 = string.gsub(음.스트링.더 낮게(상품권), UTF8_char, 서신호) 한다면 상품권 == '실패' 그리고. 레벨[토큰[i + 1]] 그리고나서 -- 벨라 앞의 before는 <n>이어야 합니다. 번역하다 = 'n' 그렇지 않으면 상품권 == '실패' 그리고. 토큰[i - 1] == '실패' 그리고나서 -- should 뒤의 after는 <rh>이어야 합니다. 번역하다 = 'rh' 그렇지 않으면 시스템. == "Wiktionary" 그리고. 음.스트링.발견하다(상품권, '^[α].*' .. 첨자 .. '