Template talk:Convert: Difference between revisions
Stepho-wrs (talk | contribs) |
|||
Line 188: | Line 188: | ||
:This version is now live. {{ping|Slowking Man}} <code><nowiki>{convert|1|C|K|abbr=off|adj=~}}</nowiki></code> now works (example above). [[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 23:18, 26 October 2024 (UTC) |
:This version is now live. {{ping|Slowking Man}} <code><nowiki>{convert|1|C|K|abbr=off|adj=~}}</nowiki></code> now works (example above). [[User:Johnuniq|Johnuniq]] ([[User talk:Johnuniq|talk]]) 23:18, 26 October 2024 (UTC) |
||
::I suppose it's a coincidence that the power just went out in a 10-mile radius around me? [[User:EEng#s|<b style="color:red;">E</b>]][[User talk:EEng#s|<b style="color:blue;">Eng</b>]] 00:39, 27 October 2024 (UTC) |
::I suppose it's a coincidence that the power just went out in a 10-mile radius around me? [[User:EEng#s|<b style="color:red;">E</b>]][[User talk:EEng#s|<b style="color:blue;">Eng</b>]] 00:39, 27 October 2024 (UTC) |
||
:::👍 Best feature - ever! <span style="border:1px solid blue;border-radius:4px;color:blue;box-shadow: 3px 3px 4px grey;">[[User:Stepho-wrs|''' Stepho ''']] <span style="font-size:xx-small; vertical-align:top">[[User Talk:Stepho-wrs|talk]] </span></span> 00:51, 27 October 2024 (UTC) |
Revision as of 00:51, 27 October 2024
|
Template:Convert is permanently protected from editing because it is a heavily used or highly visible template. Substantial changes should first be proposed and discussed here on this page. If the proposal is uncontroversial or has been discussed and is supported by consensus, editors may use {{edit template-protected}} to notify an administrator or template editor to make the requested edit. Usually, any contributor may edit the template's documentation to add usage notes or categories.
Any contributor may edit the template's sandbox. Functionality of the template can be checked using test cases. |
|
|||
This page has archives. Sections older than 42 days may be automatically archived by Lowercase sigmabot III when more than 2 sections are present. |
Related pages |
---|
Linear feature density
At Transport in Switzerland#Railways I've found a need to convert 122 km/1000 km2 into imperial (probably something like miles per 100 or 1000 sqmi). Is this something convert can handled? In the article I've gone with separate conversions to come up with 76 mi per 390 sq mi which is not ideal. Thryduulf (talk) 16:58, 19 July 2024 (UTC)
- Best I can find is
{{cvt|0.122|km/km2|mi/sqmi|3}}
to display as 0.122 km/km2 (0.196 mi/sq mi) - In theory we should be able to use e3km2 and e3sqmi but these don't work. Stepho talk 17:22, 19 July 2024 (UTC)
- Similarly at List of prominent mountains of Switzerland#Distribution there is
approximately 1.09 summits per 100 km2
that I've just left as I can't work out anything sensible (I don't think 0.0109/km2 (0.028/sq mi) is particularly useful). Thryduulf (talk) 17:36, 19 July 2024 (UTC)
- Found a really clumsy and dirty technique:
{{cvt|122|mi|km0|abbr=values|disp=preunit|km/1000 km<sup>2</sup>|mile/1000 sq mile}}
displays as 122 km/1000 km2 (196 mile/1000 sq mile) - This relies on km/km2 converting to mi/sqmi being the same ratio as mi to km - ie km/km2 is same as 1/km and 1/km -> 1/mi being the same ratio as mi -> km. Dirty, very dirty.
- Sadly, this trick doesn't work for summits per area. Stepho talk 17:57, 19 July 2024 (UTC)
- Found a really clumsy and dirty technique:
- If there were a heap of these, new units for "1000 km2" and "100 sqmi" and "100 km2" could be defined. I'm not sure how clean the result would be but it might be reasonable. Johnuniq (talk) 03:20, 20 July 2024 (UTC)
A similar issue arises at Scandinavian mountains#Climate, permafrost and glaciers where there is a need to convert "1.17 °C /100 m" but the logical {{convert|1.17|C-change/e2m}}
gives an error (1.17 C-change/e2m[convert: unknown unit]). A quick search suggests that "°C /100m" (with that exact spacing) is used in at least three other articles. Thryduulf (talk) 11:30, 12 September 2024 (UTC)
Combining multiple components with ranges
Is it possible to combine the "multiple components" form, like {{convert|11|ft|2|in|m}}
and {{convert|4|ft|5|in|m}}
, with the "range" form? The only way that I've found that works is {{convert|11+2/12|x|4+5/12|ft|m|abbr=on}}
- this gives 11+2⁄12 ft × 4+5⁄12 ft (3.4 m × 1.3 m) which is technically correct, but not ideal. --Redrose64 🌹 (talk) 15:23, 29 September 2024 (UTC)
- Sorry, no. The multiple units like feet/inches can have several components (miles, chains, ...) and making them work with a range was beyond me. However, if desperate, there is a dirty trick which I can't really recommend but which gives a reasonable result in this case:
{{convert|3.40|x|1.35|m|ftin|order=flip}}
→ 11 feet 2 inches by 4 feet 5 inches (3.40 m × 1.35 m){{cvt|3.40|x|1.35|m|ftin|order=flip}}
→ 11 ft 2 in × 4 ft 5 in (3.40 m × 1.35 m)
- Johnuniq (talk) 23:00, 29 September 2024 (UTC)
- OK, Thank you --Redrose64 🌹 (talk) 17:10, 30 September 2024 (UTC)
A new double conversion
For Reciprocating engine#History {{convert|2,300|metric ton|short ton long ton|lk=on}} and {{convert|2,300|metric ton|ST LT|lk=on}} 2,300 metric tons ([convert: unknown unit]) and 2,300 metric tons (2,535 short tons; 2,264 long tons) instead of {{convert|2,300|metric ton|short ton|lk=on}} or {{convert|2,300|metric ton|long ton|lk=on|sigfig=4}} 2,300 metric tons (2,535 short tons) or 2,300 metric tons (2,264 long tons) Peter Horn User talk 01:54, 6 October 2024 (UTC)
- @Peter Horn: When a unit code such as
short ton
contains a space, use+
to separate units:{{convert|2,300|metric ton|short ton+long ton|lk=on}}
→ 2,300 metric tons (2,500 short tons; 2,300 long tons)
- Johnuniq (talk) 02:09, 6 October 2024 (UTC) Peter Horn User talk 02:41, 6 October 2024 (UTC)
Possible bug report re: temperature units
Input:
{{Convert|1|K|C F|abbr=~}} {{Convert|1|C|F|abbr=~}} {{Convert|1|C|F|abbr=off}} {{Convert|1|K|C F|abbr=off}} {{Convert|1|Celsius|F|abbr=~}} {{Convert|1|Fahrenheit|Celsius}} {{Convert|1|C|kelvin|abbr=~}}
Output:
1 K [K] (−272.15 °C; −457.87 °F)
1 °C [°C] (34 °F)
1 degree Celsius (34 degrees Fahrenheit)
1 kelvin (−272.15 degrees Celsius; −457.87 degrees Fahrenheit)
1 °C [°C] (34 °F)
1 Fahrenheit[convert: unknown unit]
1 °C [°C] ([convert: unknown unit])
Semi-expected output:
1: 1 kelvin [K]
2: 1 degree Celsius [°C]
3 & 4: N/A, working
5: 1 degree Celsius [°C]
And last 2, certainly slightly surprising behavior that it outputs the unit names but doesn't recognize some as input. But it does for Celsius. If that's known/intended behavior, ought to be documented somewhere. (There, then it's not a bug, b/c you documented it—now it's a feature )
Contrasted:
1 inch [in] (0.083 ft; 2.5 cm)
1 inch (2.5 cm)
1 kilometre (5.0 furlongs)
Slowking Man (talk) 23:14, 7 October 2024 (UTC)
- Convert has a lot of quirks due to its long history. The proper documentation is at Module:Convert/documentation/conversion data#Temperature. Various summaries of the units are available but I don't like the advice they give for temperature because they suggest that
{{convert|30|°C}}
is the approved method whereas it should actually be{{convert|30|C}}
on the basis that unit codes are intended to be easy to type and it is not necessary to remember that it isK
(kelvin) but°C
(degrees Celsius). At any rate, for obscure historical reasons,Celsius
was defined as an alias forC
but the other names were not defined. If anything, I would recommend removingCelsius
. Johnuniq (talk) 01:05, 8 October 2024 (UTC)- I started wondering if the OP was more concerned about the fact that
abbr=~
produces°C [°C]
. That option is rarely used. Most units default to showing the name for the input (for example,30 kilograms
). Usingabbr=~
would display30 kilograms [kg]
). That is, it shows the symbol as well as the name. It turns out that temperature units default to showing the symbol and you have to useabbr=off
to make them show the name. That means you cannot also useabbr=~
so it is not possible to show the name and symbol for a temperature unit. That is not ideal but probably is not worth fixing. See Template talk:Convert/Archive December 2014#What happened with abbr=~ ? for a discussion of whether the option should be deprecated. Johnuniq (talk) 02:08, 8 October 2024 (UTC)- WMF needs to determine your IRL identity and insure your life for $10,000,000 -- the conservative cost of hiring a staff of coders to take over maintenance of convert, should the worst happen. EEng 03:24, 8 October 2024 (UTC)
- I would take you up on that great idea if it were not for my nervousness regarding giving someone a $10,000,000 reason for me to disappear! Johnuniq (talk) 03:55, 8 October 2024 (UTC)
- With the right paperwork, a "reported" death and a new life in Cuba, you could have a rather nice retirement plan :)
- On an unrelated note, I'd completely forgotten that I had commented on this 10 years ago. But having never used it even once, I'm in favour of removing it. Is it used much?
- Sounds like the OP's gripe is that
Fahrenheit
andkelvin
are valid outputs but not valid inputs. Considering we also have meters, miles, feet, inches, etc as inputs, I tend to agree with him. Stepho talk 07:08, 8 October 2024 (UTC) - Gotta watch out for that template mafia. Extremely groan-worthy memeing attempt: (for those not getting it) --Slowking Man (talk) 23:14, 8 October 2024 (UTC)
{{that's|how={{{mafia|{{{works}}}}}}}}
- I would take you up on that great idea if it were not for my nervousness regarding giving someone a $10,000,000 reason for me to disappear! Johnuniq (talk) 03:55, 8 October 2024 (UTC)
- WMF needs to determine your IRL identity and insure your life for $10,000,000 -- the conservative cost of hiring a staff of coders to take over maintenance of convert, should the worst happen. EEng 03:24, 8 October 2024 (UTC)
- Hah, not surprising (I've seen scarier corner cases in old code for sure). Wanted to be helpful mainly and ensure this was known. Certainly understand if people aren't rushing in to overhaul the template code. Would be good to document the behavior somewhere I think. Where do people think is the best place to put that? Wouldn't mind writing up a note in the docs. Thanks for the expert knowledge! --Slowking Man (talk) 23:14, 8 October 2024 (UTC)
- I started wondering if the OP was more concerned about the fact that
Ranges of ranges of values
In technical plant descriptions (e.g. floras), dimensions of plant parts are often given in ranges of ranges: "5-15 x 4-8 mm". Is there a way to get {{convert}}
to handle that appropriately, i.e. "5-15 x 4-8 mm (0.2-0.6 x 0.2-0.3 in)"? At the moment, {{convert|5|–|15|×|4|-|8|mm|1|abbr=on}}
gives "5 mm–15 mm × 4 mm–8 mm (0.2 in–0.6 in × 0.2 in–0.3 in)", which is far too repetitive for readability.
{{convert|5|–|15|mm|1|abbr=on}} x {{convert|4|–|8|mm|1|abbr=on}}
is a little better, giving "5–15 mm (0.2–0.6 in) x 4–8 mm (0.2–0.3 in)", but that's still needlessly repetitive. {{convert|5|–|4|mm|1|abbr=on}} x {{convert|15|–|8|mm|1|abbr=on}}
gives "5–4 mm (0.2–0.2 in) x 15–8 mm (0.6–0.3 in)", which is also still repetitive, and also incorrectly formatted.
Any advice?
- According to the documentation,
|x|
and|abbr=on|
combine to output the unit symbol multiple times, as per MOS:UNITSYMBOLS. Replace|x|
with|xx|
so that{{convert|5|–|15|xx|4|-|8|mm|1|abbr=on}}
outputs 5–15 × 4–8 mm (0.2–0.6 × 0.2–0.3 in). Downside is that xx is deprecated and you will be violating MOS:UNITSYMBOLS. Perhaps you should raise the question of whether this format should be used at Wikipedia talk:Manual of Style/Dates and numbers. Stepho talk 15:54, 11 October 2024 (UTC)
- According to the documentation,
- There must be some way in which
{{convert|5|–|15|×|4|-|8|mm|1|abbr=values|disp=preunit|mm|in}}
giving "5–15 × 4–8 mm (0.2–0.6 × 0.2–0.3 in)" is risky but I haven't figured that out yet. NebY (talk) 16:00, 11 October 2024 (UTC) Ah - anyone using it for anything but mm would have to take care to change both "mm" - otherwise e.g. changing only the first mm to m as{{convert|5|–|15|×|4|-|8|m|1|abbr=values|disp=preunit|mm|in}}
gives "5–15 × 4–8 mm (16.4–49.2 × 13.1–26.2 in)". NebY (talk) 16:09, 11 October 2024 (UTC)- Discussions here about MOS:UNITNAMES resulted in the situation shown above where unit symbols are duplicated. There was a fair bit of pressure to remove a workaround which I retained on the principle that a template should not prevent an editor from exercising judgment. The trick is to use
xx
instead ofx
.{{convert|5|-|15|x|4|-|8|mm|1|abbr=on}}
→ 5 mm–15 mm × 4 mm–8 mm (0.2 in–0.6 in × 0.2 in–0.3 in){{convert|5|-|15|xx|4|-|8|mm|1|abbr=on}}
→ 5–15 × 4–8 mm (0.2–0.6 × 0.2–0.3 in)
- Note that it is better to use a letter
x
and a hyphen-
in the input because they are easier to type and easier for others to copy. Johnuniq (talk) 22:47, 11 October 2024 (UTC)- Thank you! That's exactly what I needed. -- Photosynthetic430 ❧ 08:12, 13 October 2024 (UTC)
- Discussions here about MOS:UNITNAMES resulted in the situation shown above where unit symbols are duplicated. There was a fair bit of pressure to remove a workaround which I retained on the principle that a template should not prevent an editor from exercising judgment. The trick is to use
Pint, half pint, one-third [of an] imperial pint
In Beer festival, are instances of pints related to the United Kingdom units of measurement (imperial pints) or just a type of beer glass?-- Carnby (talk) 17:05, 19 October 2024 (UTC)
- @Carnby: Why are you asking here, and not at Talk:Beer festival? This is the talk page for discussing improvements to Template:Convert. --Redrose64 🌹 (talk) 21:13, 19 October 2024 (UTC)
- @Redrose64: My apologies, just a mistake. But there are some problems involving {{convert}} as well:
- there is an instance of the measuring unit "half pint" that I need to convert into litres and US pints;
- using
{{convert|1/3|imppt|L USpt|1|spell=in|disp=sqbr}}
yields one-third imperial pint instead one-third of an imperial pint; - there is an instance of "tubs of cider and perry"; a tub should be about four gallons, according to the Merriam-Webster.
- --Carnby (talk) 19:38, 20 October 2024 (UTC)
- @Redrose64: My apologies, just a mistake. But there are some problems involving {{convert}} as well:
- Tub (unit) lists different weights for butter/cheese (84 lb), tea (60 lb), camphire (56-86 lb), vermillion (336-448 lb), camphor (130 Dutch lb), coal (100 lb), salt (18 imperial gallons). Stepho talk 20:50, 20 October 2024 (UTC)
- But for cider and perry?-- Carnby (talk) 21:06, 20 October 2024 (UTC)
- You don't have to use Convert. If it doesn't produce the English phrasing you want, you can obtain and insert the value into your phrasing in any way you want. If you'd rather use Convert than a calculator, perhaps to give other editors confidence, you can use it to give only the output value(s) and unit(s) (or even only a value), e.g.
one-third of an imperial pint ({{convert|1/3|imppt|L USpt|1|disp=out}})
-> one-third of an imperial pint (0.2 L; 0.4 US pt). More such options are available at Template:Convert/doc#Displaying parts of the result: 2 (1.5). NebY (talk) 21:29, 20 October 2024 (UTC)
- Tub (unit) lists different weights for butter/cheese (84 lb), tea (60 lb), camphire (56-86 lb), vermillion (336-448 lb), camphor (130 Dutch lb), coal (100 lb), salt (18 imperial gallons). Stepho talk 20:50, 20 October 2024 (UTC)
More readable fractions
Using the fraction function such as 7 centimetres (2+3⁄4 in) with some browsers results in hard-to-read small font for the integer of the conversion as well as the fraction numerals. (The only difference is a different vertical position between the integer and numerator. The input value shows correctly in regular font.) Is there a work around to make it more browser-agnostic? Or at least to add whitespace between the integer & the fraction to make the result more readable? 71.230.16.111 (talk) 05:45, 21 October 2024 (UTC)
- Here is a comparison with {{frac}}:
{{convert|7|cm|frac=8|disp=number}}
→ 2+3⁄4{{frac|2|3|4}}
→ 2+3⁄4
- Using Special:ExpandTemplates shows the outputs are identical (except that {{frac}} has a self-closing templatestyles). The place to discuss this might be Template talk:Fraction or WP:VPT. Johnuniq (talk) 07:13, 21 October 2024 (UTC)
- I'll take it to template talk:fraction. The obvious solution is to insert a narrow non-breaking space. 𝕁𝕄𝔽 (talk) 10:12, 21 October 2024 (UTC)
- Thanks but for posterity I will mention that the identical output from convert and fraction consists of some magic span tags that separate the numbers (2, 3, 4 in the above fractions). The action takes place in Template:Fraction/styles.css. Johnuniq (talk) 10:42, 21 October 2024 (UTC)
- I'll take it to template talk:fraction. The obvious solution is to insert a narrow non-breaking space. 𝕁𝕄𝔽 (talk) 10:12, 21 October 2024 (UTC)
Plans for new version
I am slowly planning a new version of the module. This is mainly a result of a discussion at the Ukrainian Wikipedia regarding a bug in the way variable names are handled. Languages such as Ukrainian have more than one plural form for a unit name. Some examples are at uk:User:Johnuniq/convert with discussion at its talk.
I also want to clean up some minor issues:
- Units
mile
andmiles
will set abbr=off for that unit. That means{{convert|4|km|miles}}
would display "4 kilometres (2.5 miles)" rather than the current "4 kilometres (2.5 mi)". This was mentioned in June 2021. - Think about whether any other aliases should similarly set abbr=off. I would probably leave that for another time as it is only mile/miles that I have noticed being a problem with a result of "mi" when the editor went to the trouble of typing "miles".
- Want a fix for
{{convert|10|e6kg|e6lb|abbr=unit}}
so result can be "10 million kg (22 million pounds)" rather than the current "10 million kg (22 million lb)". - Perhaps add an alias for
abbr=~
(maybeadj=~
?) to avoid the problem mentioned above. That would allow{{convert|1|C|K|abbr=off|adj=~}}
to display "1 degree Celsius [°C] (274 kelvins)".
The abbr=unit
issue has been raised several times. The problem is that abbr=off
results in "million kilograms" while abbr=on
gives the unappealing "10×10 6 kg". Using abbr=unit
means the units will be abbreviated (kg and lb) while million will not.
I haven't been able to think of a clean way to specify that million should be spelled but I am currently wondering whether this trick would be ok:
e6lb
would work as it does now (million or engineering notation depending onabbr
).E6lb
would give million (never engineering notation).
Thoughts? Any clean alternative syntax? Johnuniq (talk) 23:34, 21 October 2024 (UTC)
- Here's a couple ideas on expanding abbr options:
- Concatenate the options with a delimiter: {{convert|10|e6kg|e6lb|abbr=innum;inunit;outnum;outunit}} would be equivalent to abbr=on. Using a subset of the options would allow fine-tuning the output.
- Add parameters abbrin, abbrout, which allow on, off, unit, num.
- Indefatigable (talk) 21:21, 25 October 2024 (UTC)
- Thanks, they are good ideas. However, I think I'll go with the simple although obscure E6lb. That is a small extra thing for editors to recall as compared with four new keywords. No matter how convert handles it, people will have difficulty knowing what to do and will have to ask or study the long documentation. An implementation difficulty is that I want to continue supporting other languages and the current translation system would need very large changes to accommodate delimited options. Johnuniq (talk) 01:24, 26 October 2024 (UTC)
Module version 30
Some changes to the convert modules are in the sandbox and I intend switching the main modules to use the sandbox soon.
- Module:Convert • Module:Convert/sandbox • same content
- Module:Convert/data • Module:Convert/data/sandbox • same content
- Module:Convert/text • Module:Convert/text/sandbox • same content
- Module:Convert/extra • Module:Convert/extra/sandbox • same content
- Module:Convert/wikidata • Module:Convert/wikidata/sandbox • same content
- Module:Convert/wikidata/data • Module:Convert/wikidata/data/sandbox • same content
- Option
adj=~
is an alias forabbr=~
so either may be used to display the input name and symbol.{{convert|1|C|K|abbr=off|adj=~}}
→ 1 degree Celsius [°C] (274 kelvins)
- Option
link=...
is an alias forlk=...
so either may be used to control whether units are linked.{{convert|12.3|kn|link=in}}
→ 12.3 knots (22.8 km/h; 14.2 mph)
- Units can be entered with an engineering factor using "e" or "E", for example,
e3km
orE3km
. Using uppercaseE3km
displays the factor as a word ("thousand") rather than as ×103. Using lowercasee3km
continues to display the word ifabbr=unit
is used, or ifabbr=off
applies to the unit.{{convert|10|e3mi|e3km}}
→ 10 thousand miles (16×10 3 km){{convert|10|e3mi|E3km}}
→ 10 thousand miles (16 thousand km){{convert|10|E6kg|E6lb|abbr=in}}
→ 10 million kg (22 million pounds)
- For ukwiki (and others), function
variable_name
has been enhanced to usemw.language.getContentLanguage():convertPlural
rather than the inadequate home-grown code that was developed for slwiki in 2014. In addition a bug fix to prevent duplication of the local language's equivalent of "kilo" was implemented. See uk:User:Johnuniq/convert and its talk. - For ukwiki, a unit can have a pername that will be used if the unit is the second in a "per". For example, the definition for
mi
can include the names that it normally has, as well as a pername that would be used in a per unit such as$/mi
. - For ukwiki, the
eng_scales
table in Module:Convert/text has been enhanced to allow variable names for factors such as "kilo" that depend on the value. - Units
mile
andmiles
setabbr=off
.{{convert|4|km|mi}}
→ 4 kilometres (2.5 mi){{convert|4|km|miles}}
→ 4 kilometres (2.5 miles)
- Module:Convert/makeunits
- The definition for an alias accepts
abbr=off
to force use of the unit name, not symbol. - Unit definitions can include a pername.
- The definition for an alias accepts
The above examples use fixed wikitext so the outputs won't change in the future.
For posterity, I will record that Module:Convert/extra has had unit bit
since August 2022. It also had byte
but I removed it as it was unused and had a small error, and was not supported in October 2020 or in April 2023. Unit bit
has a good use in Patterned media so I intend to keep it. Normally, I would move extra units to the main data module but there would have to be another unit (byte) to be the default output for bit. Therefore, I'm just leaving bit as an extra unit for consideration another time.
There is a little more information at #Plans for new version above. Johnuniq (talk) 05:35, 23 October 2024 (UTC)
- Excellent. I'm looking forward to the miles treatment. Stepho talk 23:52, 25 October 2024 (UTC)
- This version is now live. @Slowking Man:
{convert|1|C|K|abbr=off|adj=~}}
now works (example above). Johnuniq (talk) 23:18, 26 October 2024 (UTC)- I suppose it's a coincidence that the power just went out in a 10-mile radius around me? EEng 00:39, 27 October 2024 (UTC)
- 👍 Best feature - ever! Stepho talk 00:51, 27 October 2024 (UTC)
- I suppose it's a coincidence that the power just went out in a 10-mile radius around me? EEng 00:39, 27 October 2024 (UTC)