Jump to content

Module:Infobox multi-lingual name/data/sandbox: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Deleting long-short romanization
added wu ipa
Line 315: Line 315:
local ibox_zhzh_enum_params = { -- 'p', 'hp', 'xej' are special case enum parameters
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',
'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', 'wn', 'wuu', 'ouji', 'suz',
'zh-dungan', 'sic', 'y', 'j', 'sl', 'gd', 'hk', 'mo', 'ci', 'toi', 'gan', 'wn', 'wuu', 'ouji', 'suz', 'wi',
'hsn', 'h', 'phfs', 'poj', 'tl', 'bp', 'buc', 'hhbuc', 'mblmc', 'teo', 'lizu', 'hain',
'hsn', 'h', 'phfs', 'poj', 'tl', 'bp', 'buc', 'hhbuc', 'mblmc', 'teo', 'lizu', 'hain',
'mc', 'emc', 'lmc', 'oc-bs', 'oc-zz',
'mc', 'emc', 'lmc', 'oc-bs', 'oc-zz',

Revision as of 20:26, 29 December 2024

--[[--------------------------< 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'] = '[[Gan Chinese|Gan]]',
	['gd'] = '[[Guangdong Romanization]]',
	['h'] = '[[Guangdong Romanization#Hakka|Hakka]]',
	['hsn'] = '[[Xiang Chinese|Xiang]]',
	['j'] = '[[Jyutping]]',
	['p'] = '[[Hanyu Pinyin]]',
	['phfs'] = '[[Pha̍k-fa-sṳ]]',
	['poj'] = '[[Hokkien]] [[Pe̍h-ōe-jī|POJ]]',
	['psic'] = '[[Sichuanese Mandarin|Sichuanese]] [[Sichuanese Pinyin|Pinyin]]',
	['tl'] = '[[Taiwanese Romanization System|Tâi-lô]]',
	['toi'] = '[[Taishanese]]',
	['tp'] = '[[Tongyong Pinyin]]',
	['w'] = '[[Wade–Giles]]',
	['wuu'] = '[[Romanization of Wu Chinese|Wungiu]]',
	['wuu'] = '[[Wu Chinese|Wu]]',
	['xej'] = '[[Xiao\'erjing]]',
	['y'] = '[[Cantonese]] [[Yale romanization of Cantonese|Yale]]',
	}


--[[--------------------------< 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'},
	['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'},
	['wn'] = {['label1'] = 'wn', ['data1'] = 'wn'},
	['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'] = '[[Standard Chinese|Standard Mandarin]]',					-- 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'},
			{'[[Spelling in Gwoyeu Romatzyh|Gwoyeu Romatzyh]]', 'gr'},
			{'[[Wade–Giles]]', 'w'},
			{'[[Tongyong Pinyin]]', 'tp'},
			{'[[Yale romanization of Mandarin|Yale Romanization]]', 'myr'},
			{'[[Mandarin Phonetic Symbols II|MPS2]]', 'mps'},
			{'[[Help:IPA/Mandarin|IPA]]', 'mi'}
			}
		},
	['other mandarin'] = {
		['header'] = '[[Mandarin Chinese|other Mandarin]]',
		['t'] = {
			{'[[Xiao\'erjing]]', 'xej'},
			{'[[Dungan language|Dungan]]','zh-dungan'},
			{'[[Sichuanese Mandarin|Sichuanese]] [[Sichuanese Pinyin|Pinyin]]', 'sic'},
			}
		},
	['wu'] = {
		['header'] = '[[Wu Chinese|Wu]]',
		['t'] = {
			{'[[Romanization of Wu Chinese|Wungiu]]', 'wn'},
			{'[[Romanization of Wu Chinese|Romanization]]', 'wuu'},
			{'[[Wenzhounese]]<br />[[Wenzhounese romanisation|Romanisation]]', 'ouji'},
			{'[[Suzhounese]]', 'suz'},
			{'[[Help:IPA]]', 'wi'},
			}
		},
	['gan'] = {
		['header'] = '[[Gan Chinese|Gan]]',
		['t'] = {
			{'Romanization', 'gan'},
			}
		},
	['xiang'] = {
		['header'] = '[[Xiang Chinese|Xiang]]',
		['t'] = {
			{'IPA', 'hsn'},
			}
		},
	['hakka'] = {
		['header'] = '[[Hakka Chinese|Hakka]]',
		['t'] = {
			{'[[Guangdong Romanization#Hakka|Romanization]]', 'h'},
			{'[[Pha̍k-fa-sṳ]]', 'phfs'},
			}
		},
	['yue cantonese'] = {
		['header'] = '[[Cantonese|Yue: Cantonese]]',
		['t'] = {
			{'[[Yale romanization of Cantonese|Yale Romanization]]', 'y'},
			{'[[Jyutping]]', 'j'},
			{'[[Sidney Lau romanisation|Sidney Lau]]', 'sl'},
			{'[[Guangdong Romanization|Canton Romanization]]', 'gd'},
			{'[[Hong Kong Government Cantonese Romanisation|Hong Kong Romanisation]]', 'hk'},
			{'[[Cantonese#Romanization|Macau Romanization]]', 'mo'},
			{'[[Help:IPA/Cantonese|IPA]]', 'ci'},
			}
		},
	['other yue'] = {
		['header'] = '[[Yue Chinese|other Yue]]',
		['t'] = {
			{'[[Taishanese]]', 'toi'},
			}
		},
	['southern min'] = {
		['header'] = '[[Southern Min]]',
		['t'] = {
			{'[[Hokkien]] [[Pe̍h-ōe-jī|POJ]]', 'poj'},
			{'[[Taiwanese Romanization System|Tâi-lô]]', 'tl'},
			{'[[Bbánlám pìngyīm|Bbánlám Pìngyīm]]', 'bp'},
			{'[[Teochew dialect|Teochew]] [[Guangdong Romanization#Teochew|Peng\'im]]', 'teo'},
			{'[[Hainanese]] Romanization', 'hain'},
			{'[[Leizhou Min|Leizhou]] Romanization', 'lizu'},
			}
		},
	['eastern min'] = {
		['header'] = '[[Eastern Min]]',
		['t'] = {
			{'[[Fuzhou dialect|Fuzhou]] [[Foochow Romanized|BUC]]', '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'},
			{'[[Yale romanization of Korean|Yale]]', 'kyale'},
			{'[[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', 'wn', 'wuu', 'ouji', 'suz', 'wi',
	'hsn', 'h', 'phfs', 'poj', 'tl', 'bp', 'buc', 'hhbuc', 'mblmc', '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,
	}