モジュール:Wikipedia言語名

    提供:Wikiminati
    local p = {}
    local lang_mapping = {
        ab = 'アブハズ語',
        ace = 'アチェー語',
        ady = 'アディゲ語',
        af = 'アフリカーンス語',
        ak = 'アカン語',
        als = 'アレマン語',
        alt = '南アルタイ語',
        am = 'アムハラ語',
        an = 'アラゴン語',
        ang = '古英語',
        ar = 'アラビア語',
        arc = 'アラム語',
        ary = 'モロッコ・アラビア語',
        arz = 'エジプト・アラビア語',
        as = 'アッサム語',
        ast = 'アストゥリアス語',
        atj = 'アティカメク語',
        av = 'アヴァル語',
        avk = 'コタヴァ',
        awa = 'アワディー語',
        ay = 'アイマラ語',
        az = 'アゼルバイジャン語',
        azb = '南アゼルバイジャン語',
        ba = 'バシキール語',
        ban = 'バリ語',
        bar = 'バイエルン・オーストリア語',
        bcl = '中央ビコル語',
        be = 'ベラルーシ語',
        bg = 'ブルガリア語',
        bh = 'ビハール語',
        bi = 'ビスラマ語',
        bjn = 'バンジャル語',
        bm = 'バンバラ語',
        bn = 'ベンガル語',
        bo = 'チベット語',
        bpy = 'ビシュヌプリヤ・マニプリ語',
        br = 'ブルトン語',
        bs = 'ボスニア語',
        bug = 'ブギ語',
        bxr = 'ロシアブリヤート語',
        ca = 'カタルーニャ語',
        cdo = 'ビン東語',
        ce = 'チェチェン語',
        ceb = 'セブアノ語',
        ch = 'チャモロ語',
        chr = 'チェロキー語',
        chy = 'シャイアン語',
        ckb = 'ソラニー',
        co = 'コルシカ語',
        cr = 'クリー語',
        crh = 'クリミア・タタール語',
        cs = 'チェコ語',
        csb = 'カシューブ語',
        cu = '教会スラブ語',
        cv = 'チュヴァシュ語',
        cy = 'ウェールズ語',
        da = 'デンマーク語',
        dag = 'ダバニ語',
        de = 'ドイツ語',
        din = 'ディンカ語',
        diq = 'ディムリ語',
        dsb = '低地ソルブ語',
        dty = 'ドテリ語',
        dv = 'ディベヒ語',
        dz = 'ゾンカ語',
        ee = 'エウェ語',
        el = 'ギリシア語',
        eml = 'エミリア・ロマーニャ語',
        en = '英語',
        eo = 'エスペラント語',
        es = 'スペイン語',
        et = 'エストニア語',
        eu = 'バスク語',
        ext = 'エストレマドゥーラ語',
        fa = 'ペルシア語',
        ff = 'フラニ語',
        fi = 'フィンランド語',
        fj = 'フィジー語',
        fo = 'フェロー語',
        fr = 'フランス語',
        frp = 'アルピタン語',
        frr = '北フリジア語',
        fur = 'フリウリ語',
        fy = 'フリジア語',
        ga = 'アイルランド語',
        gag = 'ガガウズ語',
        gan = 'カン語',
        gcr = 'フランス領ギアナ・クレオール語',
        gd = 'スコットランド・ゲール語',
        gl = 'ガリシア語',
        glk = 'ギラキ語',
        gn = 'グアラニー語',
        gom = 'ゴア・コンカニ語',
        gor = 'ゴロンタロ語',
        got = 'ゴート語',
        gu = 'グジャラート語',
        gv = 'マン島語',
        ha = 'ハウサ語',
        hak = '客家語',
        haw = 'ハワイ語',
        he = 'ヘブライ語',
        hi = 'ヒンディー語',
        hif = 'フィジー・ヒンディー語',
        hr = 'クロアチア語',
        hsb = '高地ソルブ語',
        ht = 'ハイチ語',
        hu = 'ハンガリー語',
        hy = 'アルメニア語',
        hyw = '西アルメニア語',
        ia = 'インターリングア',
        id = 'インドネシア語',
        ie = 'インターリング',
        ig = 'イボ語',
        ik = 'イヌピアック語',
        ilo = 'イロカノ語',
        inh = 'イングーシュ語',
        is = 'アイスランド語',
        it = 'イタリア語',
        iu = 'イヌクティトゥット語',
        ja = '日本語',
        jam = 'ジャマイカ・クレオール語',
        jbo = 'ロジバン語',
        jv = 'ジャワ語',
        ka = 'グルジア語',
        kaa = 'カラカルパク語',
        kab = 'カビル語',
        kbd = 'カバルド語',
        kbp = 'カビエ語',
        kg = 'コンゴ語',
        ki = 'キクユ語',
        kk = 'カザフ語',
        kl = 'グリーンランド語',
        km = 'クメール語',
        kn = 'カンナダ語',
        ko = '朝鮮語',
        koi = 'コミ・ペルミャク語',
        krc = 'カラチャイ・バルカル語',
        ks = 'カシミール語',
        ksh = 'ケルン語',
        ku = 'クルド語',
        kv = 'コミ語',
        kw = 'コーンウォール語',
        ky = 'キルギス語',
        la = 'ラテン語',
        lad = 'ラジノ語',
        lb = 'ルクセンブルク語',
        lbe = 'ラク語',
        lez = 'レズギ語',
        lfn = 'リングア・フランカ・ノバ',
        lg = 'ガンダ語',
        li = 'リンブルフ語',
        lij = 'リグリア語',
        lld = 'ラディン語',
        lmo = 'ロンバルド語',
        ln = 'リンガラ語',
        lo = 'ラーオ語',
        lrc = '北ロル語',
        lt = 'リトアニア語',
        ltg = 'ラトガリア語',
        lv = 'ラトビア語',
        mad = 'マドゥラ語',
        mai = 'マイティリー語',
        mdf = 'モクシャ語',
        mg = 'マダガスカル語',
        mhr = '牧地マリ語',
        mi = 'マオリ語',
        min = 'ミナンカバウ語',
        mk = 'マケドニア語',
        ml = 'マラヤーラム語',
        mn = 'モンゴル語',
        mni = 'マニプリ語',
        mnw = 'モン語',
        mr = 'マラーティー語',
        mrj = '山地マリ語',
        ms = 'マレー語',
        mt = 'マルタ語',
        mwl = 'ミランダ語',
        my = 'ビルマ語',
        myv = 'エルジャ語',
        mzn = 'マーザンダラーン語',
        na = 'ナウル語',
        nah = 'ナワトル語',
        nap = 'ナポリ語',
        nds = '低地ドイツ語',
        ne = 'ネパール語',
        new = 'ネワール語',
        nia = 'ニアス語',
        nl = 'オランダ語',
        nn = 'ノルウェー語 (ニーノシュク)',
        no = 'ノルウェー語',
        nov = 'ノヴィアル',
        nqo = 'ンコ語',
        nrm = 'ノルマン語',
        nso = '北ソト語',
        nv = 'ナバホ語',
        ny = 'ニャンジャ語',
        oc = 'オック語',
        olo = 'リッヴィ語',
        om = 'オロモ語',
        pa = 'パンジャブ語',
        pag = 'パンガシナン語',
        pam = 'パンパンガ語',
        pap = 'パピアメント語',
        pcd = 'ピカルディ語',
        pdc = 'ペンシルベニア・ドイツ語',
        pfl = 'プファルツ語',
        pi = 'パーリ語',
        pih = 'ピトケアン語',
        pl = 'ポーランド語',
        pms = 'ピエモンテ語',
        pnb = '西パンジャーブ語',
        pnt = 'ポントス・ギリシャ語',
        ps = 'パシュトー語',
        pt = 'ポルトガル語',
        qu = 'ケチュア語族',
        rm = 'ロマンシュ語',
        rmy = 'ヴラックス・ロマ語',
        rn = 'ルンディ語',
        ro = 'ルーマニア語',
        ru = 'ロシア語',
        rue = 'ルシン語',
        rw = 'ルワンダ語',
        sa = 'サンスクリット語',
        sah = 'ヤクート語',
        sat = 'サンターリー語',
        sc = 'サルデーニャ語',
        scn = 'シチリア語',
        sco = 'スコットランド語',
        sd = 'シンド語',
        se = '北部サーミ語',
        sg = 'サンゴ語',
        sh = 'セルビア・クロアチア語',
        shi = 'シルハ語',
        shn = 'シャン語',
        si = 'シンハラ語',
        simple = 'シンプル英語',
        sk = 'スロバキア語',
        skr = 'サライキ語',
        sl = 'スロベニア語',
        sm = 'サモア語',
        smn = 'イナリ・サーミ語',
        sn = 'ショナ語',
        so = 'ソマリ語',
        sq = 'アルバニア語',
        sr = 'セルビア語',
        srn = 'スラナン語',
        ss = 'スワジ語',
        st = 'ソト語',
        stq = '東フリジア語',
        su = 'スンダ語',
        sv = 'スウェーデン語',
        sw = 'スワヒリ語',
        szl = 'シレジア語',
        szy = 'サキザヤ語',
        ta = 'タミル語',
        tay = 'タイヤル語',
        tcy = 'トゥル語',
        te = 'テルグ語',
        tet = 'テトゥン語',
        tg = 'タジク語',
        th = 'タイ語',
        ti = 'ティグリニャ語',
        tk = 'トルクメン語',
        tl = 'タガログ語',
        tn = 'ツワナ語',
        to = 'トンガ語 (ポリネシア)',
        tpi = 'トク・ピシン語',
        tr = 'トルコ語',
        trv = 'セデック語',
        ts = 'ツォンガ語',
        tt = 'タタール語',
        tum = 'トゥンブカ語',
        tw = 'トウィ語',
        ty = 'タヒチ語',
        tyv = 'トゥヴァ語',
        udm = 'ウドムルト語',
        ug = 'ウイグル語',
        uk = 'ウクライナ語',
        ur = 'ウルドゥー語',
        uz = 'ウズベク語',
        ve = 'ベンダ語',
        vec = 'ヴェネト語',
        vep = 'ヴェプス語',
        vi = 'ベトナム語',
        vls = '西フラマン語',
        vo = 'ヴォラピュク語',
        wa = 'ワロン語',
        war = 'ワライ語',
        wo = 'ウォロフ語',
        wuu = '呉語',
        xal = 'カルムイク語',
        xh = 'コサ語',
        xmf = 'メグレル語',
        yi = 'イディッシュ語',
        yo = 'ヨルバ語',
        za = 'チワン語',
        zea = 'ゼーランド語',
        zh = '中国語',
        zu = 'ズールー語',
    }
    --予約語だったり、ハイフンつきなど問題がありそうなのを切り離す
    lang_mapping['bat-smg'] = 'サモギティア語'
    lang_mapping['be-tarask'] = 'タラシケヴィツァ'
    lang_mapping['be-x-old'] = 'タラシケヴィツァ'
    lang_mapping['cbk-zam'] = 'チャバカノ語'
    lang_mapping['fiu-vro'] = 'ヴォロ語'
    lang_mapping['io'] = 'イド語'
    lang_mapping['map-bms'] = 'バニュマス語'
    lang_mapping['nds-nl'] = 'オランダ低ザクセン語'
    lang_mapping['or'] = 'オリヤー語'
    lang_mapping['os'] = 'オセット語'
    lang_mapping['roa-rup'] = 'アルーマニア語'
    lang_mapping['roa-tara'] = 'タラント語'
    lang_mapping['zh-classical'] = '漢文'
    lang_mapping['zh-min-nan'] = 'ビン南語'
    lang_mapping['zh-yue'] = '広東語'
    
    local lang_mapping_short = {
        ang = '古英',
        ar = '亜',
        cs = '捷',
        da = '丁',
        de = '独',
        el = '希',
        en = '英',
        es = '西',
        fa = '波',
        fi = '芬',
        fr = '仏',
        ga = '愛',
        it = '伊',
        ja = '日',
        ko = '朝',
        la = '羅',
        mi = '毛',
        mn = '蒙',
        nl = '蘭',
        no = '諾',
        pi = '巴',
        pl = '波',
        pt = '葡',
        ru = '露',
        sa = '梵',
        sv = '典',
        th = '泰',
        tr = '土',
        vi = '越',
        zh = '中',
    }
    
    function p.GetWikipediaPageName(frame)
        local code = frame.args[1]
        local lang_code = mw.text.trim(string.lower(code))
        local lang_name
    
        if string.find(lang_code, '-short') ~= nil then
            lang_code = string.sub(lang_code, 1, string.len(lang_code) - 6)
            lang_name = lang_mapping_short[lang_code]
            if lang_name ~= nil then
                return lang_name
            end
        end
    
        lang_name = lang_mapping[lang_code]
        return lang_name
    end
    
    return p