<?php

namespace Faker\Provider\ko_KR;

class Person extends \Faker\Provider\Person
{
    const NAME_KO = 'korean';
    const NAME_EN = 'english';

    public function nickname($nameKoEn = null)
    {
        if ($nameKoEn === static::NAME_KO) {
            $format = static::randomElement(static::$nickNameKor);
        } elseif ($nameKoEn === static::NAME_EN) {
            $format = static::randomElement(static::$nickNameEng);
        } else {
            $format = static::randomElement(array_merge(static::$nickNameKor, static::$nickNameEng));
        }

        return $this->generator->parse($format);
    }

    /**
     * This provider uses wikipedia's top Korean last names. These cover more than 90% of Korean population.
     */

    protected static $maleNameFormats = array(
        '{{lastName}}{{firstNameMale}}',
    );

    protected static $femaleNameFormats = array(
        '{{lastName}}{{firstNameFemale}}',
    );

    /**
     * {@link} http://ko.wikipedia.org/wiki/%ED%95%9C%EA%B5%AD%EC%9D%98_%EC%84%B1%EC%94%A8%EC%99%80_%EC%9D%B4%EB%A6%84#.EC.8B.9C.EB.8C.80.EB.B3.84_.EA.B0.80.EC.9E.A5_.ED.9D.94.ED.95.9C_.EC.9D.B4.EB.A6.84_10.EC.84.A0.28.E9.81.B8.29
     */
    protected static $firstNameMale = array(
        '건우', '건호', '경석', '경수', '경춘', '경환', '광수', '광현', '구범', '규산', '기수', '남수', '남호', '대선', '대수', '도윤',
        '도현', '동윤', '동하', '동현', '명식', '명호', '문용', '문창', '민석', '민성', '민수', '민재', '민준', '민철', '민환', '병철',
        '병호', '상선', '상수', '상우', '상욱', '상준', '상철', '상현', '상호', '상훈', '서준', '서호', '선엽', '성곤', '성령', '성민',
        '성수', '성진', '성현', '성호', '성훈', '수원', '승민', '승현', '승호', '시우', '영길', '영수', '영식', '영일', '영진', '영철',
        '영하', '영호', '영환', '예준', '용태', '용환', '용훈', '우진', '원준', '원진', '원희', '은성', '은택', '인규', '재윤', '재철',
        '재혁', '재현', '재호', '재훈', '정남', '정수', '정식', '정웅', '정호', '정훈', '종수', '종주', '종훈', '주원', '주형', '준',
        '준범', '준서', '준영', '준혁', '준형', '준호', '중수', '지후', '지훈', '진수', '진우', '진호', '창용', '채현', '태현', '태호',
        '혁상', '현규', '현우', '현종', '현준', '형민', '형철', '호민', '호진', '홍선', '효일',
    );

    protected static $firstNameFemale = array(
        '가람', '강은', '강희', '경은', '경주', '근영', '기연', '나루', '나리', '나연', '나은', '나형', '누리', '다영', '도연', '동현',
        '미경', '미라', '미란', '미영', '미정', '민서', '민아', '민지', '민형', '민희', '반희', '보람', '보미', '보민', '봄', '상명',
        '새미', '서연', '서영', '서윤', '서현', '선영', '선우', '선정', '선호', '성미', '성민', '성은', '세원', '소민', '소연', '소영',
        '소정', '수란', '수민', '수빈', '수연', '수원', '수정', '수진', '순항', '슬기', '시은', '신애', '아름', '아린', '여진', '연선',
        '연희', '영진', '영화', '예원', '예은', '예지', '예진', '유리', '유정', '유진', '윤경', '윤미', '윤서', '윤영', '은경', '은미',
        '은상', '은서', '은애', '은영', '은정', '은주', '은지', '은진', '은형', '은혜', '은희', '인화', '재연', '정란', '정민', '정은',
        '정화', '주명', '주미', '주연', '주희', '지민', '지선', '지숙', '지아', '지연', '지영', '지예', '지우', '지원', '지은', '지현',
        '지혜', '지희', '진아', '진희', '채원', '태희', '하나', '하윤', '하은', '한나', '헤선', '현영', '현정', '현주', '현지', '혜나',
        '혜림', '혜민', '혜숙', '혜연', '혜진', '효진', '희경', '희원',
    );

    /**
     * {@link} http://ko.wikipedia.org/wiki/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD%EC%9D%98_%EC%9D%B8%EA%B5%AC%EC%88%9C_%EC%84%B1%EC%94%A8_%EB%AA%A9%EB%A1%9D
     */
    protected static $lastName = array(
        '김', '이', '박', '최', '정', '강', '조', '윤', '장', '임', '오', '한', '신', '서', '권', '황', '안', '송', '류', '홍',
        '전', '고', '문', '손', '양', '배', '조', '백', '허', '남', '심', '유', '노', '하', '전', '정', '곽', '성', '차', '유',
        '구', '우', '주', '임', '나', '신', '민', '진', '지', '엄', '원', '채', '강', '천', '양', '공', '현', '방', '변', '함',
        '노', '염', '여', '추', '변', '도', '석', '신', '소', '선', '주', '설', '방', '마', '정', '길', '위', '연', '표', '명',
        '기', '금', '왕', '반', '옥', '육', '진', '인', '맹', '제', '탁', '모', '남궁', '여', '장', '어', '유', '국', '은', '편',
    );

    protected static $nickNameEng = array(
        "Angela", "Florence", "Catherine", "Stella", "Cordelia", "Dorothy", "Edith", "Helen", "Irene", "Issabel", "Lucy", "Martha", "Naomi", "Rosemary", "Sabina", "Sophia", "Beatrice", "Cara", "victoria", "Violet", 
        "Diana", "Ruby", "Sabina", "Sara", "Winni", "Isabel", "Rachel", "Annie", "Vanessa", "Emma", "Abel", "Ace", "Ada", "Adam", "Adela", "Adelio", "Adolph", "Adonis", "Adora", "Agatha", "Aggie", "Aida", "Ailish", 
        "Aimee", "Alan", "Albert", "Albino", "Alex", "Alexandra", "Alfred", "Ali", "Alice", "Alika", "Allie", "Aloha", "Alvin", "Amanda", "Ami", "Amos", "Amy", "Anais", "Andra", "Andrew", "Andy", "Angel", "Angelica", 
        "Anika", "Anna", "Annie", "Anthony", "Apollo", "Aria", "Ariel", "Arista", "Arnold", "Arvid", "Asha", "Aster", "Astin", "Aurora", "Ava", "Baba", "Bailey", "Baldy", "Bambi", "Barbara", "Barbie", "Barley", "Barney", 
        "Baron", "Basil", "Baxter", "Beau", "Bebe", "Beck", "Becky", "Belita", "Bella", "Belle", "Benecia", "Benny", "Berg", "Bessie", "Biana", "Bianca", "Bibiane", "Billy", "Bingo", "Bishop", "Bliss", "Blondie", "Bonita", 
        "Bono", "Boris", "Boss", "Bright", "Bruno", "Buck", "Buddy", "Bunny", "Caesar", "Caley", "Calix", "Calla", "Callia", "Camilla", "Captain", "Cara", "Carmel", "Carmen", "Casey", "Catherine", "Cecil", 
        "Celestyn", "Celina", "ChaCha", "Champ", "Charles", "Charlie", "Chase", "Chavi", "Chelsea", "Cherie", "Chilli", "Chloe", "Chrissy", "Chubby", "Cindy", "Clara", "Clark", "Claudia", "Cleo", "Cleta", "Cliff", 
        "Coco", "Cody", "Colin", "Connie", "Cookie", "Corby", "Coy", "Coyote", "Crimson", "Crispin", "Crystal", "Cutie", "Cyclone", "Cyma", "Daisy", "Dali", "Danika", "Darby", "Daria", "Darin", "Dario", "Darwin", "Dave", 
        "David", "Dean", "Della", "Delling", "Delphine", "Dennis", "Denver", "Derry", "Deva", "Dexter", "Diallo", "Dick", "Dino", "Dixie", "Donna", "Doris", "Dorothy", "Douglas", "Duke", "Dustin", "Dyllis", "Eavan", 
        "Ebony", "Echo", "Edan", "Edeline", "Eden", "Edward", "Edwin", "Eilis", "Eldora", "Elf", "Elin", "Elisha", "Elizabeth", "Elle", "Elroy", "Elsa", "Elvis", "Elysia", "Emilie", "Eric", "Eris", "Eros", "Esteban", "Esther", 
        "Eva", "Evan", "Eve", "Farrell", "Favian", "Fedora", "Felice", "Felix", "Fella", "Fidelio", "Filia", "Fleta", "Florence", "Floria", "Forrest", "Freeman", "Gabriel", "Gali", "Gem", "Gemma", "George", "Gilbert", 
        "Gili", "Giovanni", "Gloria", "Goofy", "Grace", "Grania", "Gregory", "Greenbi", "Haley", "Halona", "Happy", "Harley", "Harmony", "Harold", "Harry", "Heba", "Helen", "Helia", "Hera", "Hero", 
        "Hestia", "Hollis", "Honey", "Hope", "Hubert", "Hue", "Huey", "Ian", "Iliana", "Indira", "Ingrid", "Irina", "Iris", "Isaac", "Isabel", "Isadora", "Isis", "Jace", "Jack", "Jackson", "Jaclyn", "Jade", "Jane", 
        "Jasmine", "Jasper", "Jefferson", "Jeffrey", "Jenifer", "Jennie", "Jeremy", "Jericho", "Jerry", "Jess", "Jessica", "Jessie", "Jodie", "Johanna", "Jolly", "Jordan", "Joy", "Jud", "Julia", "Juliana", "Juliet", "Justin", 
        "Kali", "Kara", "Karena", "Karis", "Kassia", "Kate", "Kellan", "Kelley", "Kerri", "Kevin", "Kitty", "Klaus", "Kori", "Kuper", "Kyra", "Lakia", "Lala", "Lamis", "Lani", "Lappy", "Lara", "Lavina", "Lee", "Leena", "Lelia", 
        "Leo", "Leopold", "Lev", "Lidia", "Lily", "Lina", "Linda", "Lisa", "Lloyd", "Lonnie", "Lottie", "Louis", "Lowell", "Lucia", "Lucifer", "Lucy", "Lukas", "Luna", "Mabel", "Madonna", "Maggie", "Makaio", "Malissa", "Malo", 
        "Mana", "Mandelina", "Manon", "Marcia", "Margaret", "Mary", "Mathilda", "Maya", "Melina", "Meriel", "Mickey", "Mighty", "Minnie", "Miranda", "Missy", "Misty", "Molly", "Monet", "Monica", "Morris", "Muffin", "Mulan", 
        "Murphy", "Nadia", "Nalo", "Nami", "Nana", "Nani", "Naomi", "Nara", "Narcisse", "Navid", "Neal", "Neema", "Nero", "Nia", "Nicholas", "Nicky", "Nina", "Odelia", "Olga", "Olive", "Oliver", "Oscar", "Pablo", "Paloma", 
        "Pamela", "Patrick", "Pavel", "Peggy", "Pello", "Penda", "Peppi", "Petra", "Phila", "Phillip", "Pinky", "Pluto", "Poco", "Polo", "Pooky", "Poppy", "Primo", "Prince", "Princess", "Puffy", "Rabia", "Raina", "Ralph", 
        "Rambo", "Rania", "Ravi", "Redford", "Reggie", "Rei", "Remy", "Rex", "Richard", "Ricky", "Ringo", "Rio", "Risa", "Robbie", "Robert", "Robin", "Rocky", "Roja", "Rollo", "Romeo", "Rosie", "Roxy", "Roy", "Ruby", 
        "Rudolph", "Rudy", "Ryan", "Sabrina", "Sally", "Salvatore", "Sam", "Samson", "Sandy", "Sarah", "Sasha", "Scarlet", "Scoop", "Sebastian", "Selina", "Selma", "Serena", "Severino", "Shaina", "Shasa", "Sheri", "Silky", 
        "Simba", "Simon", "Sniper", "Solomon", "Sonia", "Sonny", "Sophie", "Sora", "Sparky", "Spooky", "Spotty", "Stella", "Steven", "Sting", "Storm", "Sugar", "Sunny", "Sweetie", "Sylvester", "Sylvia", "Talia", "Talli", 
        "Tanesia", "Tania", "Ted", "Teenie", "Terra", "Tess", "Thomas", "Tomo", "Trisha", "Trudy", "Uba", "Umberto", "Valencia", "Vanessa", "Velika", "Vera", "Verdi", "Veronica", "Victoria", "Vincent", "Violet", "Vito", 
        "Vivi", "Waldo", "Walter", "Weenie", "Wendy", "William", "Wily", "Winston", "Woody", "Yaro", "Yeti", "Yuki", "Zaza", "Zeki", "Zelia", "Zena", "Zenia", "Zenon", "Zeppelin", "Zeus", "Zili", "Zinna", "Zizi", "Zoe", 
        "Zorro", "Zulu" 
    );
    protected static $nickNameKor = array(
        "에디스", "안젤라", "플로렌스", "캐서린", "캐더린", "스텔라", "코델리아", "도로시", "헬렌", "이레인", "아이린", "이자벨", "루시", "마샤", "나오미", "로즈메리", "사비나", "소피아", "베아트리스", "카라", "빅토리아", 
        "바이올렛", "다이아나", "루비", "사브리나", "사라", "위니", "이사벨", "레이첼", "애니", "바네사", "엠마", "아벨", "에이스", "아다", "아담", "아델", "아델리오", "아돌프", "아도니스", "아도라", "아가타", "애기", 
        "아이다", "앨리쉬", "에이미", "알란", "앨버트", "앨비노", "알렉스", "알렉산드라", "알프레드", "알리", "앨리스", "앨리카", "앨리", "알로하", "앨빈", "아만다", "아미", "아모스", "에이미", "아나이스", "안드라", 
        "앤드류", "앤디", "엔젤", "안젤리카", "애니카", "안나", "애니", "안토니", "아폴로", "아리아", "아리엘", "아리스타", "아놀드", "아비드", "아샤", "아스터", "아스틴", "오로라", "아바", "바바", "베일리", "발디", 
        "밤비", "바바라", "바비", "발리", "바니", "바론", "바실", "박스터", "보", "베베", "벡", "베키", "벨리타", "벨라", "벨", "베네치아", "베니", "버그", "베시", "비안나", "비앙카", "비비안", "빌리", "빙고", "비숍", 
        "블리스", "블론디", "보니타", "보노", "보리스", "보스", "브라이트", "브루노", "벅", "버디", "버니", "시저", "칼리", "칼릭스", "칼라", "칼리아", "카밀라", "캡틴", "카라", "카멜", "카르멘", "캐시", "캐서린", 
        "세실", "셀레스틴", "셀리나", "샤샤", "챔프", "찰스", "찰리", "체이스", "샤비", "첼시", "쉐리", "칠리", "클로이", "크리시", "처비", "신디", "클라라", "클락", "라우디아", "클레오", "클레타", "클리프", "코코", 
        "코디", "콜린", "코니", "쿠키", "코비", "코이", "코요테", "크림슨", "크리스핀", "크리스탈", "큐티", "사이클론", "시마", "데이지", "달리", "다니카", "다비", "다리아", "다린", "다리오", "다윈", "데이브", "다비드", 
        "딘", "델라", "델링", "델핀", "데니스", "덴버", "데리", "데바", "덱스터", "디알로", "딕", "디노", "딕시", "돈나", "도리스", "도로시", "더글라스", "듀크", "더스틴", "딜리스", "에반", "에보니", "에코", "에단", 
        "에델린", "에덴", "에드워드", "에드윈", "엘리스", "엘도라", "엘프", "엘린", "엘리샤", "엘리자베스", "엘르", "엘로이", "엘사", "엘비스", "엘리시아", "에밀리", "에릭", "에리스", "에로스", "에스테반", "에스더", "에바", 
        "에반", "이브", "파렐", "파비앙", "페도라", "펠리체", "펠릭스", "펠라", "피델리오", "필리아", "플레타", "플로렌스", "플로리아", "포레스트", "프리맨", "가브리엘", "갈리", "젬", "젬마", "조지", "길버트", 
        "길리", "지오반니", "글로리아", "구피", "그레이스", "그라니아", "그레고리", "그린비", "할리", "할로나", "해피", "할리", "하모니", "해롤드", "해리", "헤바", "헬렌", "헬리아", "헤라", "히어로", "헤스티아", "홀리스", 
        "허니", "호프", "휴버트", "휴", "휴이", "이안", "일리아나", "인디라", "잉그리드", "이리나", "아이리스", "이삭", "이사벨", "이사도라", "이시스", "제이스", "잭", "잭슨", "재클린", "제이드", "제인", "쟈스민", "제스퍼", 
        "제퍼슨", "제프리", "제니퍼", "제니", "제레미", "제리코", "제리", "제스", "제시카", "제시", "조디", "조안나", "졸리", "조르단", "조이", "쥬드", "쥴리아", "쥴리아나", "쥴리엣", "져스틴", "칼리", "카라", "카레나", 
        "카리스", "카시아", "케이트", "켈란", "켈리", "케리", "케빈", "키티", "클라우스", "코리", "쿠퍼", "키라", "라키아", "랄라", "라미스", "라니", "래피", "라라", "라비나", "리", "리나", "렐리아", "레오", "레오폴드", 
        "레브", "리디아", "릴리", "리나", "린다", "리사", "로이드", "로니", "로티", "루이스", "로웰", "루시아", "루시퍼", "루시", "루카스", "루나", "마벨", "마돈나", "매기", "마카이오", "맬리사", "말로", "마나", "만델리나", 
        "마농", "마르시아", "마가레트", "메어리", "마틸다", "마야", "멜리나", "메리엘", "미키", "마이티", "미니", "미란다", "미시", "미스티", "몰리", "모네", "모니카", "모리스", "머핀", "뮬란", "머피", "나디아", "날로", 
        "나미", "나나", "나니", "나오미", "나라", "나르시스", "나비드", "닐", "니마", "네로", "니아", "니콜라스", "닉키", "니나", "오델리아", "올가", "올리브", "올리버", "오스카", "파블로", "팔로마", "파멜라", "패트릭", 
        "파벨", "페기", "퍼피", "펠로", "펜다", "페피", "페트라", "필라", "필립", "핑키", "플루토", "포코", "폴로", "푸키", "포피", "프리모", "프린스", "프린세스", "라비아", "레이나", "랄프", "람보", "라니아", "라비", 
        "레드포드", "레기", "레이", "레미", "렉스", "리차드", "리키", "링고", "리오", "리사", "로비", "로버트", "로빈", "록키", "로자", "롤로", "로미오", "로지", "록시", "로이", "루비", "루돌프", "루디", "리안", "사브리나", 
        "샐리", "살바토르", "샘", "삼손", "샌디", "사라", "사샤", "스칼렛", "스쿠프", "세바스챤", "셀리나", "셀마", "세레나", "세브리노", "샤이나", "샤사", "쉐리", "실키", "심바", "사이먼", "스니퍼", "솔로몬", "소니아", 
        "써니", "소피", "소라", "스파키", "스푸키", "스포티", "스텔라", "스티븐", "스팅", "스톰", "슈가", "써니", "스위티", "실베스터", "실비아", "탈리아", "탈리", "타네시아", "타니아", "테드", "티니", "테라", "테스", 
        "토마스", "토모", "트리샤", "트루디", "우바", "움베르토", "발렌시아", "바네사", "벨리카", "베라", "베르디", "베로니카", "빅토리아", "빈센트", "바이올렛", "비토", "비비", "왈도", "월터", "위니", "웬디", "윌리엄", 
        "윌리", "윈스톤", "우디", "야로", "예티", "유키", "자자", "제키", "젤리아", "제나", "제니아", "제논", "제플린", "제우스", "질리", "지나", "지지", "조우", "조로", "줄루"
    );
}
