모듈:ISO 3166/샌드박스

Module
-- Country extract의 현재 기능을 복제할 수 있도록 하기 위해서는 다음 사항에 대처해야 합니다. - 2 {{<name>}}: 완료! -- 3 [[<이름>]]완료! -- 4 [[<name><junk>]]완료! -- < country >의 5 [[ image : of: 。[svg gif png jpg] \d+px] 됐다!  현지의 p = {} 현지의 취득하다 = 요구하다("모듈:인수").취득하다 현지의 데이터. = .로드 데이터("모듈:ISO 3166/데이터/국내/샌드박스")  --[-----------------------------------------------]-- -- 데이터베이스에서 이름을 찾습니다.  현지의 기능. 이름 찾기(코드,CData,큐리)  현지의 스쿼리 = p.벗다(큐리)  한다면 CData["이름] 그리고. 스쿼리==p.벗다(CData["이름])   또는 CData["이소나메'] 그리고. 스쿼리==p.벗다(CData["이소나메'])   또는 것은 아니다. CData["노코드"] 그리고. 스쿼리==코드   또는 스쿼리==CData["alpha3"] 또는 스쿼리==CData["실패"]   그리고나서   돌아가다 진실의  끝.  위해서 _,이름  쌍들(CData['이소네임"] 또는 {}) 하다   한다면 스쿼리==p.벗다(이름) 그리고나서    돌아가다 진실의   끝.  끝.  위해서 _,이름  쌍들(CData["alt names"] 또는 {}) 하다   한다면 스쿼리==p.벗다(이름) 그리고나서    돌아가다 진실의   끝.  끝.  돌아가다 거짓의 끝.  --[-----------------------------------------------]-- -- 국가/지역의 ISO 이름을 검색합니다.  현지의 기능. 이소나메(데이터.,코드,언어)  한다면 데이터.[코드]['이소네임"] 그리고나서   현지의 이름. = 데이터.[코드]["isodisplay names"] 그리고. 데이터.[코드]["isodisplay names"][언어]     또는 데이터.[코드]['이소네임"][언어]     또는 데이터.[코드]["isodisplay names"] 그리고. 데이터.[코드]["isodisplay names"][데이터.[코드][디폴트 언어] 또는 데이터.[디폴트 언어]]     또는 데이터.[코드]['이소네임"][데이터.[코드][디폴트 언어] 또는 데이터.[디폴트 언어]]     또는 데이터.[코드]["isodisplay names"] 그리고. 데이터.[코드]["isodisplay names"]["en"]     또는 데이터.[코드]['이소네임"]["en"]   한다면 이름. 그리고나서 돌아가다 이름. 끝.   위해서 _,아이네임  쌍들(데이터.[코드]['이소네임"]) 하다 돌아가다 아이네임 끝.   돌아가다 데이터.[코드]["isodisplayname"] 또는 데이터.[코드]["이소나메']  또 다른   돌아가다 데이터.[코드]["isodisplayname"] 또는 데이터.[코드]["이소나메']  끝. 끝.  --[-----------------------------------------]-- -- 입력에서 정크 메시지를 제거합니다.  기능. p.벗다(본문)  현지의 악센트 = {["A"]="A",['A']="A",[「」]="A",['아'」']="A",     -- 악센트 리스트   ["ä"]="A",['O']="A",['SC']='C',['에']='E',['E']='E',   ['ê']='E',['에']='E',["II"]='나',['II']='나',["î"]='나',   ["ï"]='나',["NN"]='N',["ò"]='O',["O"]='O',["O"]='O',   ["õ"]='O',["ö"]='O',['ø']='O',["ù"]='U',["U"]='U',   ["û"]='U',["ü"]='U',["ý"]='Y'  }  현지의 제거한다. = {"국가","국가","영토",     -- 삭제할 텍스트 목록   "플래그","플래그","왕국","상태","상태",   "도도부현","도도부현","영토"  }  현지의 패턴 = {[".+:"]="",[" .+"]="",["%(.-%)"]="",      -- 따라야 할 패턴(순서는 중요할 수 있음)   ["%..*"]="",["^THE"]="",["%_"]=" ",["%-"]=" ",   [%d%d?%d?PX"]="",  }    본문 = .스트링.위쪽의(본문)            -- 대소문자를 구분하지 않음  본문 = .스트링.서브(본문,[아-아],악센트)        -- 디센트    위해서 양식,가치  쌍들(패턴) 하다          -- 패턴을 따릅니다.  본문 = .스트링.서브(본문,양식,가치)   끝.    위해서 _,단어  쌍들(제거한다.) 하다            -- 불필요한 단어를 삭제합니다.  본문 = .스트링.서브(본문,단어,"")   끝.    본문 = .스트링.서브(본문,%W,"")          -- 영숫자가 아닌 숫자를 삭제합니다.    돌아가다 본문   끝.  --[-------------------------------------------------------]-- -- P.strip을 호출하지만 모듈을 사용합니다.논쟁들  기능. p.콜스트립()    현지의 args = 취득하다()    돌아가다 p.벗다(args[1]) 또는 ""  끝.  --[-----------------------------------------------]-- -- 국가의 ISO 코드를 만듭니다.  기능. p.루아코드(args)   한다면 string.find(args[1] 또는 '',"%-") 그리고나서   args[1], args[2] = string.match(args[1] 또는 '',"^([^%-]*)%-(.*)$")  끝.    한다면 args[1] 그리고나서 args[1] = p.벗다(args[1]) 끝.  한다면 args[2] 그리고나서 args[2] = p.벗다(args[2]) 끝.    한다면 args["코드 타입"]=="3" 그리고나서   args["코드 타입"]="alpha3"  끝.    현지의 하지 않다 = args.에러 또는 ""    현지의 카토카운트리 = (args.고양이 그리고. args.고양이 == '진짜') 그리고. ''    또는 '[카테고리:불명확한 나라가 있는 위키피디아 페이지]'  현지의 catnosubdivision = (args.고양이 그리고. args.고양이 == '진짜') 그리고. ''    또는 '[카테고리:세분화가 불분명한 위키피디아 페이지]'    한다면 것은 아니다. args[1] 그리고나서   한다면 .직함.get Current Title(전류 제목)().네임스페이스 ~= 0 그리고나서 카토카운트리 = '' 끝.   돌아가다 카토카운트리, '<span style="class-size:100%" class="error">"지정된 국가에 대한 파라미터가 없습니다"//span>'  끝.    한다면 것은 아니다. args[2] 그리고나서               --3166-1 코드   위해서 알파2,CData  쌍들(데이터.) 하다    한다면 이름 찾기(알파2,CData,args[1]) 그리고나서     한다면 args["코드 타입"]=="실패" 또는 args["코드 타입"]=="alpha3" 그리고나서      돌아가다 CData[args["코드 타입"]]     또 다른      돌아가다 알파2     끝.    끝.   끝.   한다면 .직함.get Current Title(전류 제목)().네임스페이스 ~= 0 그리고나서 카토카운트리 = '' 끝.   돌아가다 카토카운트리  또 다른                  --3166-2 코드   위해서 알파2,CData  쌍들(데이터.) 하다                                           한다면 이름 찾기(알파2,CData,args[1]) 그리고나서     한다면 .스트링.경기(알파2,"GB") 그리고나서       ·잉글랜드, 웨일스 등      알파2 = "GB"     끝.     현지의 데이터 = .로드 데이터("모듈:ISO 3166/data/"..알파2)     현지의  = 진실의     위해서 흠집내다,데이터  쌍들(데이터) 하다      한다면 유형(데이터)=="테이블" 그리고나서        = 거짓의       한다면 이름 찾기(흠집내다,데이터,args[2]) 그리고나서        돌아가다 알파2.."-"..흠집내다       끝.      끝.     끝.     한다면 .직함.get Current Title(전류 제목)().네임스페이스 ~= 0 그리고나서 catnosubdivision = '' 끝.     돌아가다 catnosubdivision    끝.   끝.   한다면 .직함.get Current Title(전류 제목)().네임스페이스 ~= 0 그리고나서 카토카운트리 = '' 끝.   돌아가다 카토카운트리  끝.  끝.  --[-----------------------------------------------------]-- ----P 를 콜 합니다.Luacode(모듈 사용):논쟁들  기능. p.코드()   돌아가다 p.루아코드(취득하다()) 또는 ""  끝.  --[-----------------------------------------------------]-- ----P 를 콜 합니다.Luacode(모듈 사용):인수 및 숫자 값을 출력하도록 설정  기능. p.숫자()   현지의 args = 취득하다()    args["코드 타입"]="실패"    돌아가다 p.루아코드(args) 또는 ""   끝.   --[-------------------------------------------------]-- ----ISO/공통국명을 만듭니다.   기능. p.루아나메(args)   현지의 코드1 = p.루아코드(args)  현지의 코드2 = ''    한다면 string.find(코드1,"%-") 그리고나서   코드1, 코드2 = string.match(코드1,"^([^%-]*)%-(.*)$")  끝.    한다면 string.find(코드1,"^%u%u$") 그리고나서   한다면 코드2=="" 그리고나서              -- 3166-1 alpha-2 코드    한다면 데이터.[코드1] 그리고나서     돌아가다 (args.이소나메 또는 args.언어) 그리고. 이소나메(데이터.,코드1,args.언어)      또는 (데이터.[코드1]["표시명"] 또는 데이터.[코드1]["이름])    또 다른     돌아가다 '[카테고리:불명확한 나라가 있는 위키피디아 페이지]'    끝.   또 다른                 --3166-2 코드    현지의 데이터    한다면 데이터.[코드1] 그리고나서     데이터 = .로드 데이터("모듈:ISO 3166/data/"..코드1)    또 다른     돌아가다 '[카테고리:불명확한 나라가 있는 위키피디아 페이지]'    끝.    한다면 데이터[코드2] 그리고나서     돌아가다 (args.이소나메 또는 args.언어) 그리고. 이소나메(데이터,코드2,args.언어)      또는 (데이터[코드2]["표시명"] 또는 데이터[코드2]["이름])    또 다른     돌아가다 '[카테고리:불명확한 나라가 있는 위키피디아 페이지]'    끝.   끝.  끝.   끝.  --[-----------------------------------------------------]-- ----P 를 콜 합니다.Luaname 단 모듈 사용:논쟁들  기능. p.이름.()   돌아가다 p.루아나메(취득하다()) 또는 ""  끝.   --[-------------P. G E O C O R D I N S E R T--------------------------------------------------------------------------------------------------------------------- -- 모듈용 래퍼:Coordinsert(좌표). 기능. p.지오코드 삽입()  -- {{#parames:}ISO 3166 지오코드 삽입 {{코드...}}  -- country=..subdivision1=...subdivision2=...  -- type=... scale=...dim=...소스=...globe=...  -- }}  현지의 args = .args  현지의 세분화된 = 거짓의  현지의 카토카운트리 = (args.고양이 그리고. args.고양이 == '진짜') 그리고. ''    또는 '[카테고리:불명확한 나라가 있는 위키피디아 페이지]'  현지의 catnosubdivision = (args.고양이 그리고. args.고양이 == '진짜') 그리고. ''   또는 '[카테고리:세분화가 불분명한 위키피디아 페이지]' 또는 ''  현지의 추적 = ''  현지의 타르 = {}  타르[1] = args[1] 또는 ''  위해서 i, v  쌍들(args) 하다   한다면 i == '국가' 그리고. 것은 아니다. .스트링.발견하다(타르[1], '지역:') 그리고나서    현지의 나라 = v    현지의 k, 지역 = 1, ''    -- 유효한 서브섹션을 찾습니다.    하는 동안에 지역 == '' 그리고. k < > 3 하다     현지의 소분할 = args['불안' .. k] 또는 ''     한다면 소분할 ~= '' 그리고나서      지역 = p.루아코드({나라, 소분할, 고양이 = '진짜'})      세분화된 = 진실의     끝.     k = k + 1    끝.    -- 서브섹션 조회가 실패했거나 시도하지 않았습니다. 국가만 시도해 보십시오.    한다면 지역 == '' 그리고나서     지역 = p.루아코드({나라, 고양이 = '진짜'})     한다면 .직함.get Current Title(전류 제목)().네임스페이스 ~= 0 그리고나서 카토카운트리, catnosubdivision = '', '' 끝.     한다면 지역 == '' 그리고나서      추적 = 추적 .. 카토카운트리     그렇지 않으면 세분화된 == 진실의 그리고나서      추적 = 추적 .. catnosubdivision     끝.    끝.    --뭔가 효과가 있어, 그것을 타그에 추가해 주세요.    한다면 지역 ~= '' 그리고나서     타르[#타르 + 1] = '지역:' .. 지역    끝.   그렇지 않으면 i == '타입' 또는 i == '스케일' 또는 i == 어둡다      또는 i == '소스' 또는 i == '실패' 그리고나서    타르[#타르 + 1] = i .. ':' .. v   끝.  끝.  -- 콜 모듈:삽입할 것이 있는 경우 Coordinsert.코디네이트  한다면 #타르 > 1 그리고나서   현지의 코디네이트 = 요구하다('모듈:좌표').코디네이트   돌아가다 코디네이트({args = 타르}) .. 추적  끝.  --그렇지 않으면 좌표를 돌려주세요.  돌아가다 타르[1] .. 추적 끝.  돌아가다 p