Modul:Infobox multi-lingual name/data

Daripada Wikipedia, ensiklopedia bebas.

Pendokumenan untuk modul ini boleh diciptakan di Modul:Infobox multi-lingual name/data/doc

--[[--------------------------< L A B E L _ M A P >------------------------------------------------------------

Table to map |showflags= value to the |labeln= parameter value for {{Infobox}}

TODO: convert showflag to a comma delimited list instead of these peculiar codes?

]]
 
local label_map = {
	['bp'] = '[[Bbánlám pìngyīm|Bbánlám Pìngyīm]]',
	['bpmf'] = '[[Bopomofo]]',
	['gan'] = '[[Bahasa Cina Gan|Gan]]',
	['gd'] = '[[Perumian Guangdong]]',
	['h'] = '[[Perumian Guangdong#Hakka|Hakka]]',
	['hsn'] = '[[Xiang Chinese|Xiang]]',
	['j'] = '[[Jyutping]]',
	['lmz'] = '[[Perumian Panjang-Pendek|Perumian]]<br />[[Bahasa Shanghai]]',
	['p'] = '[[Hanyu Pinyin]]',
	['phfs'] = '[[Pha̍k-fa-sṳ]]',
	['poj'] = '[[Pe̍h-ōe-jī|POJ]] [[Bahasa Hokkien]]',
	['psic'] = '[[Pinyin Sichuan|Pinyin]] [[Bahasa Mandarin Sichuan|Sichuan]]',
	['tl'] = '[[Sistem Perumian Taiwan|Tâi-lô]]',
	['toi'] = '[[Bahasa Taishan]]',
	['tp'] = '[[Tongyong Pinyin]]',
	['w'] = '[[Wade–Giles]]',
	['wuu'] = '[[Bahasa Cina Wu|Wu]]',
	['xej'] = '[[Xiao\'erjing]]',
	['y'] = '[[Perumian Yale Bahasa Kantonis|Perumian Yale]] [[Bahasa Kantonis]]',
	}


--[[--------------------------< T R A N S L _ M A P >----------------------------------------------------------

Table to map |showflags= value to an index into label_map for child infobox |labeln= value and to map |showflags=
vale to the correct parameter for use in child infobox |datan= paramter

Implementation deatils of |showflag= are in dispute see: Template_talk:Infobox_Chinese#Rfc_on_fixing_the_template_showflag

linked conversation is at: Template_talk:Infobox_Chinese/Archive_4#Showflag broken

]]

local transl_map = {															-- maps |showflag= value to label from label_map table and data from matching parameter name
	['bp'] = {['label1'] = 'bp', ['data1'] = 'bp'},
	['bpmf'] = {['label1'] = 'bpmf', ['data1'] = 'bpmf'},
	['gan'] = {['label1'] = 'gan', ['data1'] = 'gan'},
	['gdp'] = {['label1'] = 'gd', ['data1'] = 'gd', ['label2'] = 'p', ['data2'] = 'p'},
	['h'] = {['label1'] = 'h', ['data1'] = 'h'},
	['hsn'] = {['label1'] = 'hsn', ['data1'] = 'hsn'},
	['j'] = {['label1'] = 'j', ['data1'] = 'j'},
	['jp'] = {['label1'] = 'j', ['data1'] = 'j', ['label2'] = 'p', ['data2'] = 'p'},
	['jy'] = {['label1'] = 'j', ['data1'] = 'j', ['label2'] = 'y', ['data2'] = 'y'},
	['jyp'] = {['label1'] = 'j', ['data1'] = 'j', ['label2'] = 'y', ['data2'] = 'y', ['label3'] = 'p', ['data3'] = 'p'},
	['lmz'] = {['label1'] = 'lmz', ['data1'] = 'lmz'},
	['p'] = {['label1'] = 'p', ['data1'] = 'p'},
	['phfs'] = {['label1'] = 'phfs', ['data1'] = 'phfs'},
	['phsn'] = {['label1'] = 'p', ['data1'] = 'p', ['label2'] = 'hsn', ['data2'] = 'hsn'},
	['pj'] = {['label1'] = 'p', ['data1'] = 'p', ['label2'] = 'j', ['data2'] = 'j'},
	['poj'] = {['label1'] = 'poj', ['data1'] = 'poj'},
	['psic'] = {['label1'] = 'p', ['data1'] = 'p', ['label2'] = 'sic', ['data2'] = 'sic'},
	['pwuu'] = {['label1'] = 'p', ['data1'] = 'p', ['label2'] = 'wuu', ['data2'] = 'wuu'},
	['py'] = {['label1'] = 'p', ['data1'] = 'p', ['label2'] = 'y', ['data2'] = 'y'},
	['tl'] = {['label1'] = 'tl', ['data1'] = 'tl'},
	['toip'] = {['label1'] = 'toi', ['data1'] = 'toi', ['label2'] = 'p', ['data2'] = 'p'},
	['tp'] = {['label1'] = 'tp', ['data1'] = 'tp'},
	['wp'] = {['label1'] = 'w', ['data1'] = 'w', ['label2'] = 'p', ['data2'] = 'p'},
	['wuu'] = {['label1'] = 'wuu', ['data1'] = 'wuu'},
	['y'] = {['label1'] = 'y', ['data1'] = 'y'},
	['yj'] = {['label1'] = 'y', ['data1'] = 'y', ['label2'] = 'j', ['data2'] = 'j'},
	['xej'] = {
		['label1'] = 'xej',
		['data1'] = 'xej',				-- ???? what to do about this; template calls {{lang|zh-Arab|{{{xej}}}}} on this value
		},
	['xejp'] = {
		['label1'] = 'xej',
		['data1'] = 'xej',				-- ???? template does not call {{lang|zh-Arab|{{{xej}}}}} on this value; why?
		['label2'] = 'p',
		['data2'] = 'p'
		},
	}


--[[--------------------------< K E Y S >----------------------------------------------------------------------
]]

local keys = {																	-- table of xscript table keys calls
	ar = 'arabic',
	bo = 'tibetan',
	hokkien = 'hokkien',
	ja = 'japanese',
	ko = 'korean',
	mn = 'mongolian',
	ru = 'russian',
	ug = 'uyghur',
	}


--[[--------------------------< X S C R I P T >----------------------------------------------------------------

table that holds the various transcription headers and labels used by transcriptions()

indexed in this table are lower case versions of the header display text without punctuation (if any)

TODO: add support for transl transliteration standard parameter; akin to {{transl|lang code|standard code|text|italic=??}}

]]

local xscript = {
	['standard mandarin'] = {													-- lower case version of the header display text
		['header'] = '[[Bahasa Cina Baku|Bahasa Mandarin Baku]]',					-- text to be displayed if headers are displayed
		['t'] = {																-- table of labels and their associated data parameter
			{'[[Hanyu Pinyin]]', 'p'},											-- label is [[Hanyu Pinyin]], data is taken from |p= parameter
			{'[[Bopomofo]]','bpmf'},
			{'[[Ejaan Gwoyeu Romatzyh|Gwoyeu Romatzyh]]', 'gr'},
			{'[[Wade–Giles]]', 'w'},
			{'[[Tongyong Pinyin]]', 'tp'},
			{'[[Perumian Yale Mandarin|Perumian Yale]]', 'myr'},
			{'[[Simbol Fonetik Bahasa Mandarin II|MPS2]]', 'mps'},
			{'[[Help:IPA/Mandarin|IPA]]', 'mi'}
			}
		},
	['other mandarin'] = {
		['header'] = '[[Bahasa Cina Mandarin|Bahasa Mandarin lain]]',
		['t'] = {
			{'[[Xiao\'erjing]]', 'xej'},
			{'[[Bahasa Dungan|Dungan]]','zh-dungan'},
			{'[[Pinyin Sichuan|Pinyin]] [[Bahasa Mandarin Sichuan|Bahasa Sichuan]]', 'sic'},
			}
		},
	['wu'] = {
		['header'] = '[[Bahasa Cina Wu|Wu]]',
		['t'] = {
			{'[[Perumian Bahasa Cina Wu|Perumian]]', 'wuu'},
			{'[[Shanghainese]]<br />Romanization', 'lmz'},
			{'[[Wenzhounese]]<br />[[Wenzhounese romanisation|Romanisation]]', 'ouji'},
			{'[[Suzhounese]]', 'suz'},
			}
		},
	['gan'] = {
		['header'] = '[[Bahasa Cina Gan|Gan]]',
		['t'] = {
			{'Romanization', 'gan'},
			}
		},
	['xiang'] = {
		['header'] = '[[Bahasa Cina Xiang|Xiang]]',
		['t'] = {
			{'IPA', 'hsn'},
			}
		},
	['hakka'] = {
		['header'] = '[[Bahasa Cina Hakka|Hakka]]',
		['t'] = {
			{'[[Perumian Guangdong#Hakka|Perumian]]', 'h'},
			{'[[Pha̍k-fa-sṳ]]', 'phfs'},
			}
		},
	['yue cantonese'] = {
		['header'] = '[[Bahasa Kantonis|Bahasa Yue: Bahasa Kantonis]]',
		['t'] = {
			{'[[Perumian Yale Bahasa Kantonis|Perumian Yale]]', 'y'},
			{'[[Jyutping]]', 'j'},
			{'[[Peruiman Sidney Lau|Sidney Lau]]', 'sl'},
			{'[[Perumian Guangdong]]', 'gd'},
			{'[[Perumian Bahasa Kantonis Pemerintah Hong Kong|Perumian Hong Kong]]', 'hk'},
			{'[[Bahasa Kantonis#Perumian|Perumian Makau]]', 'mo'},
			{'[[Help:IPA/Bahasa Kantonis|IPA]]', 'ci'},
			}
		},
	['other yue'] = {
		['header'] = '[[Bahasa Cina Yue|Bahasa Yue lain]]',
		['t'] = {
			{'[[Bahasa Taishan]]', 'toi'},
			}
		},
	['southern min'] = {
		['header'] = '[[Bahasa Min Selatan]]',
		['t'] = {
			{'[[Pe̍h-ōe-jī|POJ]] [[Bahasa Hokkien]]', 'poj'},
			{'[[Sistem Perumian Taiwan|Tâi-lô]]', 'tl'},
			{'[[Bbánlám pìngyīm|Bbánlám Pìngyīm]]', 'bp'},
			{'[[Loghat Teochew|Teochew]] [[Perumian Guangdong#Teochew|Peng\'im]]', 'teo'},
			{'Perumian [[Bahasa Hainan]]', 'hain'},
			{'Perumian [[Bahasa Min Leizhou|Leizhou]]', 'lizu'},
			}
		},
	['eastern min'] = {
		['header'] = '[[Bahasa Min Timur]]',
		['t'] = {
			{'[[Perumian Foochow|BUC]] [[Loghat Fuzhou|Fuzhou]]', 'buc'},
			}
		},
	['pu-xian min'] = {
		['header'] = '[[Pu-Xian Min]]',
		['t'] = {
			{'[[Pu-Xian Min|Hinghwa]] [[Hinghwa Romanized|BUC]]', 'hhbuc'},
			}
		},
	['northern min'] = {
		['header'] = '[[Northern Min]]',
		['t'] = {
			{'[[Jian\'ou dialect|Jian\'ou]] [[Kienning Colloquial Romanized|Romanized]]', 'mblmc'},
			}
		},
	['old mandarin'] = {
		['header'] = '[[Old Mandarin]]',
		['t'] = {
			{'Romanized \'Phags-pa', 'phagspa-latin'},
			}
		},
	['middle chinese'] = {
		['header'] = '[[Middle Chinese]]',
		['t'] = {
			{'[[Middle Chinese]]', 'mc'},
			{'[[Middle Chinese#Early Middle Chinese|Early Middle Chinese]]', 'emc'},
			{'[[Middle Chinese#Late Middle Chinese|Late Middle Chinese]]', 'lmc'},
			}
		},
	['old chinese'] = {
		['header'] = '[[Old Chinese]]',
		['t'] = {
			{'[[Reconstructions_of_Old_Chinese#Baxter (1992)|Baxter (1992)]]', 'oc-b92'},
			{'[[Reconstructions of Old Chinese#Baxter–Sagart (2014)|Baxter–Sagart (2014)]]', 'oc-bs'},
			{'[[Reconstructions of Old Chinese#Zhengzhang (1981–1995)|Zhengzhang]]', 'oc-zz'},
			}
		},

--------< non-Chinese transcriptions >--------

	['arabic'] = {
		['header'] = nil,														-- {{Infobox Chinese/Arabic}}; doesn't use header
		['t'] = {
			{'[[Arabic chat alphabet|Chat]]', 'chat'},							-- TODO: standardize on lowercase parameter names
			{'[[Arabic chat alphabet|Chat]]', 'Chat'},
			{'[[ALA-LC romanization|ALA-LC]]', 'ala-lc'},
			{'[[ALA-LC romanization|ALA-LC]]', 'ALA-LC'},
			{'[[ISO 233|ISO]]', 'iso'},
			{'[[ISO 233|ISO]]', 'ISO'},
			{'[[DIN 31635|DIN]]', 'din'},
			{'[[DIN 31635|DIN]]', 'DIN'},
			}
		},
	['hokkien'] = {
		['header'] = nil,														-- {{Infobox Chinese/Hokkien}}; doesn't use header
		['t'] = {
			{'[[Taiwanese Romanization System|Tâi-lô]]', 'tl'},
			{'[[Bbánlám pìngyīm|Bbánpìng]]', 'bp'},
			{'[[Help:IPA for Hokkien|IPA]]', 'hokkienipa'},
			}
		},
	['japanese'] = {
		['header'] = nil,														-- {{Infobox Chinese/Japanese}}; doesn't use header
		['t'] = {
			{'[[Romanization of Japanese|Romanization]]', 'romaji'},
			{'[[Hepburn romanization|Revised Hepburn]]', 'revhep'},
			{'[[Hepburn romanization|Traditional Hepburn]]', 'tradhep'},
			{'[[Kunrei-shiki romanization|Kunrei-shiki]]', 'kunrei'},
			{'[[Nihon-shiki romanization|Nihon-shiki]]', 'nihon'},
			}
		},
	['korean'] = {
		['header'] = nil,														-- {{Infobox Chinese/Korean}}; doesn't use header
		['t'] = {
			{'[[Revised Romanization of Korean|Revised Romanization]]', 'rr'},
			{'[[McCune–Reischauer]]', 'mr'},
			{'[[Help:IPA/Korean|IPA]]', 'koreanipa'},
			}
		},
	['mongolian'] = {
		['header'] = nil,														-- {{Infobox Chinese/Mongolian}}; doesn't use header
		['t'] = {
			{'[[SASM/GNC romanization#Mongolian|SASM/GNC]]', 'monr'},
			}
		},
	['russian'] = {
		['header'] = nil,														-- {{Infobox Chinese/Russian}}; doesn't use header
		['t'] = {
			{'[[Scientific transliteration of Cyrillic|Scientific]]', 'scientific'},
			{'[[Scientific transliteration of Cyrillic|Scientific]]', 'Scientific'},
			{'[[ISO 9|ISO]]', 'iso'},
			{'[[ISO 9|ISO]]', 'ISO'},
			{'[[GOST 16876-71|GOST 71]]', 'gost'},
			{'[[GOST 16876-71|GOST 71]]', 'GOST'},
			{'[[BGN/PCGN romanization of Russian|BGN/PCGN]]', 'bgn/pcgn'},
			{'[[BGN/PCGN romanization of Russian|BGN/PCGN]]', 'BGN/PGCN'},
			}
		},
	['tibetan'] = {
		['header'] = nil,														-- {{Infobox Chinese/Tibetan}}; doesn't use header
		['t'] = {
			{'[[Wylie transliteration|Wylie]]', 'wylie'},
			{'[[THL Simplified Phonetic Transcription|THL]]', 'thdl'},
			{'[[Tibetan pinyin|Tibetan Pinyin]]', 'zwpy'},
			{'[[Standard Tibetan|Lhasa]] [[Help:IPA/Tibetan|IPA]]', 'lhasa'},
			}
		},
	['uyghur'] = {
		['header'] = nil,														-- {{Infobox Chinese/Uyghur}}; doesn't use header
		['t'] = {
			{'[[Uyghur Latin alphabet|Latin Yëziqi]]', 'uly'},
			{'[[Uyghur New Script|Yengi Yeziⱪ]]', 'uyy'},
			{'[[SASM/GNC romanization#Uyghur|SASM/GNC]]', 'sgs'},
			{'[[Uyghur Cyrillic alphabet|Siril Yëziqi]]', 'usy'},
			{'Uyghur [[Wikipedia: IPA|IPA]]', 'uipa'},
			}
		},
	}


--[[--------------------------< I B O X _ Z H Z H _ E N U M _ P A R A M S >------------------------------------
]]

local ibox_zhzh_enum_params = {													-- 'p', 'hp', 'xej' are special case enum parameters
	'c', 't', 's', 'l', 'tp', 'w', 'mi', 'myr', 'psp', 'myale', 'gr', 'bpmf', 'mps',
	'zh-dungan', 'sic', 'y', 'j', 'sl', 'gd', 'hk', 'mo', 'ci', 'toi', 'gan', 'wuu', 'ouji', 'suz',
	'hsn', 'h', 'phfs', 'poj', 'tl', 'bp', 'buc', 'hhbuc', 'mblmc', 'lmz', 'teo', 'lizu', 'hain',
	'mc', 'emc', 'lmc', 'oc-bs', 'oc-zz',
	'oc-b92', 																	-- only supported in the first ibox zhzh; why?
	'lao', 'khm', 'tet'															-- not supported by ibox zh/zh  why are they here?
	}


--[[--------------------------< Z H _ H D R _ N A M E S >------------------------------------------------------

this table fixes an oddity in the ibox zh/zh header name parameters.  |chinese_header= for the first ibox zh/zh 
gets filled from |name1= but the second gets its name from |altname= and then the third from |altname3=.
All of these parameter names should be replaced with |chinese_header= followed by |chinese_header2= ... like all
of the other enumerated parameters

]]

local zh_hdr_names = {
	[2] = {'altname', 'Alternative Chinese name'},
	[3] = {'altname3', 'Second alternative Chinese name'},
	[4] = {'altname4', 'Third alternative Chinese name'},
	[5] = {'altname5', 'Fourth alternative Chinese name'},
	[6] = {'altname6', 'Fifth alternative Chinese name'},
	};


--[[--------------------------< E X P O R T E D   T A B L E S >------------------------------------------------
]]

return {
	ibox_zhzh_enum_params = ibox_zhzh_enum_params,
	keys = keys,
	label_map = label_map,
	transl_map = transl_map,
	xscript = xscript,
	zh_hdr_names = zh_hdr_names,
	}