Template talk:Infobox person/height

页面内容不支持其他语言。
维基百科,自由的百科全书

“1.66米(5尺5寸)(166 cm)”

AAA
身高 1.66米(5尺5寸)(5尺5寸)
体重 57公斤(126磅)

这是怎么回事?在{{infobox person}}里填入“{{convert|1.66|m|cm|abbr=on}}”就会显示成“1.66米(5尺5寸)(166 cm)”但我在其他地方打出“{{convert|1.66|m|cm|abbr=on}}”,显示正常,是“1.66米(166 cm)”。体重方面没出这样的问题。

经查,个人认为问题应该出在Template:infobox person/core里的“{{subst:#if:{{{height_m|{{{height_cm|}}}}}}{{{height_ft|}}}{{{height_in|}}} | {{convinfobox|{{{height_m|{{{height_cm|}}}}}}|{{subst:#if:{{{height_m|}}}|米|厘米}}|{{{height_ft|}}}|英尺|{{{height_in|}}}|英寸}} }}{{subst:#if:{{{height|}}} | {{infobox person/height|{{{height|}}}}}}}”代码,希望能进行修正。--№.N留言2016年6月10日 (五) 02:11 (UTC)

{{infobox person}}的文档上建议你使用{{height}},如|height={{height|m=1.66}}(或者|height={{convert|1.66|m}}也可)放在{{infobox person}}中就显示为“1.66米(5英尺5英寸)”,这样正常了吧?还是说,你就是不想让它显示英制?--Tomchen1989留言2016年6月10日 (五) 02:34 (UTC)
不是我不想让它显示英制,可能我应该这么解释:在infobox person的height参数里填上“{{convert|1.66|m|ftin|abbr=on}}”,就会显示成“1.66米(5尺5寸)(5尺5寸)”,出现两个“(5尺5寸)”,看着也不舒服啊,况且在weight参数里输入“{{convert|57|kg|lb|abbr=on}}”时的显示效果和“{{convert|57|kg|abbr=on}}”是一样的,也就是说都会显示成“57千克(126磅)”而不是“57千克(126磅)(126磅)”,另外输入“{{convert|57|kg|st|abbr=on}}”的显示效果是“57千克(9.0 st)”,而不是“57千克(126磅)(9.0 st)”。--№.N留言2016年6月10日 (五) 03:23 (UTC)
@Naughty Jeffrey:这模板是你改的,还是请你解决一下问题吧。--№.N留言2016年6月12日 (日) 04:38 (UTC)

倒是“英尺”不应该简写成“尺”…… --达师 - 334 - 554 2016年6月10日 (五) 14:01 (UTC)

可以写成“呎”和“吋”吧。--Kuailong 2016年6月10日 (五) 20:05 (UTC)
我觉得比起“英尺”应不应该写成“尺”,我所提出的问题更应该解决。--№.N留言2016年6月12日 (日) 01:45 (UTC)

终于找到真正的原因了!如果输入:

{{infobox person/height/switch
|{{convert|1.66|m|ftin|abbr=on}}
|{{#invoke:String|replace|{{convert|1.66|m|ftin|abbr=on}}| | }}
|m={{#invoke:String|find|{{#invoke:String|replace|{{convert|1.66|m|ftin|abbr=on}}| | }}|米}}
|c={{#invoke:String|find|{{#invoke:String|replace|{{convert|1.66|m|ftin|abbr=on}}| | }}|厘米}}
|f={{#invoke:String|find|{{#invoke:String|replace|{{convert|1.66|m|ftin|abbr=on}}| | }}|尺}}
|i={{#invoke:String|find|{{#invoke:String|replace|{{convert|1.66|m|ftin|abbr=on}}| | }}|寸}}
}}

的话,就会显示正常,即“1.66米(5尺5寸)”,但若是输入:

{{infobox person/height/switch
|{{convert|1.66|m|ftin|abbr=on}}
|{{#invoke:String|replace|{{convert|1.66|m|ftin|abbr=on}}| | }}
|m={{#invoke:String|find|{{#invoke:String|replace|{{convert|1.66|m|ftin|abbr=on}}| | }}|米}}
|c={{#invoke:String|find|{{#invoke:String|replace|{{convert|1.66|m|ftin|abbr=on}}| | }}|厘米}}
|f={{#invoke:String|find|{{#invoke:String|replace|{{convert|1.66|m|ftin|abbr=on}}| | }}|英尺}}
|i={{#invoke:String|find|{{#invoke:String|replace|{{convert|1.66|m|ftin|abbr=on}}| | }}|英寸}}
}}

的话,就会显示“1.66米(5尺5寸)(5尺5寸)”,看来原因就是因为把“英尺”简写成“尺”才导致显示不正常!不过我是希望abbr参数无论是显示成on还是off都能正常显示,至于技术上怎么实现我还不清楚。--№.N留言2016年6月12日 (日) 10:27 (UTC)

这个模板是从enwiki抄的,所以如果不重写的话,某种程度上只能配合原有逻辑:无论abbr=on还是off,在infobox里都会被处理成abbr=on的形式显示[1],这是通过Template:Infobox person/height完成的,而这里只列举了英文单位名。由于上面对如何缩写存在争议,建议先确定单位名后(包括全称和简称,两者也可以一样)再改infobox的这些问题。Liangent留言 2016年6月14日 (二) 03:09 (UTC)
不过奇怪的是为什么身高写在infobox上有问题,但体重却没一点问题,体重的{{Infobox person/weight}}、{{Infobox person/weight/locate}}和{{Infobox person/weight/switch}}的格式和身高的对应模板格式是类似的。--№.N留言2016年6月15日 (三) 00:59 (UTC)
因为在{{convert}}的输出里,体重的“公斤”实际上是“-{zh:公斤;zh-cn:千克;zh-tw:公斤;zh-hk:公斤;}-”,在Template:Infobox person/weight/locate里面两个数据都locate不到,所以就原样输出了。身高的“米”能找到但“英尺”找不到,于是就额外补上一个英尺……Liangent留言 2016年6月18日 (六) 05:43 (UTC)
AAA
身高 1.66米(5尺5寸)(5尺5寸)
体重 57公斤(126磅)(126磅)

AAA
身高 1.66米(5英尺5英寸)
体重 57公斤(126英磅)

AAA
身高 1.66米(5尺5寸)
体重 57公斤(126磅)

做几个样例吧。Liangent留言 2016年6月18日 (六) 05:45 (UTC)
原来是这样啊,只能说英文的一部分模板在中文版未必都适用……--№.N留言2016年6月20日 (一) 10:36 (UTC)
当然啦,要走中国特色的社会主义道路嘛,西方的人权普世价值什么的在中国是行不通的。--Gqqnb留言2016年6月22日 (三) 18:53 (UTC)
其实这里的主要问题是各处翻译不一致。Liangent留言 2016年6月23日 (四) 04:27 (UTC)
还是希望在重写模板之前不要用这几个模板,说到用这个模板最多的地方当然是运动员(艺人歌手等也有可能用),不过最近发现在infobox sportperson模板的身高输入“{{convert|1.66|m|ftin|abbr=on}}”已经正常。另外我说这话和政治绝无关系,我不希望我这话被人拿来做政治论点。--№.N留言2016年6月23日 (四) 11:23 (UTC)