模板討論:Infobox person/weight

頁面內容不支援其他語言。
維基百科,自由的百科全書

「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)