한국   대만   중국   일본 
Mo đun:Language/name/data ? Wikipedia ti?ng Vi?t B??c t?i n?i dung

Mo đun : Language/name/data

Trang mô đun bị khóa vô hạn
Bach khoa toan th? m? Wikipedia
Tai li?u mo đun [ t?o ]
-- put tables and their tables together

local
 function
 __coalesce
(...)

    local
 coalesced
 =
 {}

    for
 _
,
 langslist
 in
 ipairs
{...}
 do

        for
 langcode
,
 langnames
 in
 pairs
(
langslist
)
 do

            for
 _
,
 langname
 in
 pairs
(
langnames
)
 do

                if
 not
 coalesced
[
langcode
]
 then

                    coalesced
[
langcode
]
 =
 {}

                end

                table.insert
(
coalesced
[
langcode
],
 langname
)

            end

        end

    end

 
    return
 coalesced

end


-- make the keys lowercase

local
 function
 __preprocess
(
t
,
 first_of_array_in_array
)

    local
 preprocessed
 =
 {}

    if
 first_of_array_in_array
 then

    	-- keep only the 1st language name for each code, excluding synonyms

        for
 k
,
 v
 in
 pairs
(
t
)
 do

            preprocessed
[
k
:
lower
()]
 =
 {
v
[
1
]}

        end

    else

        for
 k
,
 v
 in
 pairs
(
t
)
 do

            preprocessed
[
k
:
lower
()]
 =
 v

        end

    end


    return
 preprocessed

end


-- all valid primary language subtags for BCP47 from IANA (most of them from ISO 639-1, -2 and -3 with some exclusions)

local
 __iana_languages
 =
 __preprocess
(
require
(
"Module:Language/data/iana languages"
));

-- ISO 639-3 contains additional 3-letter codes not inserted in the IANA database as they are aliased to 2-letter codes,

-- but excludes some deleted codes still valid in BCP47 (some of them are aliased)

local
 __iso_639_3
      =
 __preprocess
(
require
(
"Module:Language/data/ISO 639-3"
));

-- Wikimedia wikis uses some non-standard codes and a subset of IANA codes, plus composite codes

local
 __wp_languages
   =
 __preprocess
(
require
(
"Module:Language/data/wp languages"
),
 true
);

-- all valid script subtags for BCP47 from IANA (excluding special ISO 15924 codes)

local
 iana_scripts
     =
 __preprocess
(
require
(
"Module:Language/data/iana scripts"
));

-- all valid region subtags for BCP47 from IANA (derived from ISO 3166-1 excluding special codes, and from 3-digit UN M.49 codes for groups of countries)

local
 iana_regions
     =
 __preprocess
(
require
(
"Module:Language/data/iana regions"
));


-- variant subtags from IANA; table format differs from the other IANA data tables

local
 iana_variants
 =
 __preprocess
(
require
(
"Module:Language/data/iana variants"
));

-- suppressed script subtags from IANA;

local
 iana_suppressed_scripts
 =
 __preprocess
 (
require
(
"Module:Language/data/iana suppressed scripts"
));


return
 {

    lang
   =
 __coalesce
(
__wp_languages
,
 __iana_languages
,
 __iso_639_3
),

    lang_iana
 =
 __iana_languages
,

    script
 =
 iana_scripts
,

    region
 =
 iana_regions
,

    variant
 =
 iana_variants
,

    suppressed
 =
 iana_suppressed_scripts
,

}