<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mindpowe.red/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AConvert%2Ftext</id>
	<title>Module:Convert/text - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mindpowe.red/wiki/index.php?action=history&amp;feed=atom&amp;title=Module%3AConvert%2Ftext"/>
	<link rel="alternate" type="text/html" href="https://mindpowe.red/wiki/index.php?title=Module:Convert/text&amp;action=history"/>
	<updated>2026-04-06T10:21:08Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>https://mindpowe.red/wiki/index.php?title=Module:Convert/text&amp;diff=1587&amp;oldid=prev</id>
		<title>imported&gt;Johnuniq: update from sandbox per Template talk:Convert#Module version 24</title>
		<link rel="alternate" type="text/html" href="https://mindpowe.red/wiki/index.php?title=Module:Convert/text&amp;diff=1587&amp;oldid=prev"/>
		<updated>2019-05-04T03:48:21Z</updated>

		<summary type="html">&lt;p&gt;update from sandbox per &lt;a href=&quot;/wiki/index.php?title=Template_talk:Convert&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Template talk:Convert (page does not exist)&quot;&gt;Template talk:Convert#Module version 24&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;-- Text used by Module:Convert for enwiki.&lt;br /&gt;
-- This is a separate module to simplify translation for use on another wiki.&lt;br /&gt;
-- See [[:en:Template:Convert/Transwiki guide]] if copying to another wiki.&lt;br /&gt;
&lt;br /&gt;
-- Some units accept an SI prefix before the unit code, such as &amp;quot;kg&amp;quot; for kilogram.&lt;br /&gt;
local SIprefixes = {&lt;br /&gt;
	-- The prefix field is what the prefix should be, if different from the prefix used.&lt;br /&gt;
	['Y'] = { exponent = 24, name = 'yotta',                  },&lt;br /&gt;
	['Z'] = { exponent = 21, name = 'zetta',                  },&lt;br /&gt;
	['E'] = { exponent = 18, name = 'exa'  ,                  },&lt;br /&gt;
	['P'] = { exponent = 15, name = 'peta' ,                  },&lt;br /&gt;
	['T'] = { exponent = 12, name = 'tera' ,                  },&lt;br /&gt;
	['G'] = { exponent =  9, name = 'giga' ,                  },&lt;br /&gt;
	['M'] = { exponent =  6, name = 'mega' ,                  },&lt;br /&gt;
	['k'] = { exponent =  3, name = 'kilo' ,                  },&lt;br /&gt;
	['h'] = { exponent =  2, name = 'hecto',                  },&lt;br /&gt;
	['da']= { exponent =  1, name = 'deca' , name_us = 'deka' },&lt;br /&gt;
	['d'] = { exponent = -1, name = 'deci' ,                  },&lt;br /&gt;
	['c'] = { exponent = -2, name = 'centi',                  },&lt;br /&gt;
	['m'] = { exponent = -3, name = 'milli',                  },&lt;br /&gt;
	['μ'] = { exponent = -6, name = 'micro',                  },  -- key = 'GREEK SMALL LETTER MU' (U+03BC) utf-8 CE BC&lt;br /&gt;
	['µ'] = { exponent = -6, name = 'micro', prefix = 'μ'     },  -- key = 'MICRO SIGN' (U+00B5) utf-8 C2 B5&lt;br /&gt;
	['u'] = { exponent = -6, name = 'micro', prefix = 'μ'     },  -- not an SI prefix, but allow for people typing this&lt;br /&gt;
	['n'] = { exponent = -9, name = 'nano' ,                  },&lt;br /&gt;
	['p'] = { exponent =-12, name = 'pico' ,                  },&lt;br /&gt;
	['f'] = { exponent =-15, name = 'femto',                  },&lt;br /&gt;
	['a'] = { exponent =-18, name = 'atto' ,                  },&lt;br /&gt;
	['z'] = { exponent =-21, name = 'zepto',                  },&lt;br /&gt;
	['y'] = { exponent =-24, name = 'yocto',                  },&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Some units can be qualified with one of the following prefixes, when linked.&lt;br /&gt;
local customary_units = {&lt;br /&gt;
	{ &amp;quot;US&amp;quot;, link = &amp;quot;United States customary units&amp;quot; },&lt;br /&gt;
	{ &amp;quot;U.S.&amp;quot;, link = &amp;quot;United States customary units&amp;quot; },&lt;br /&gt;
	{ &amp;quot;imperial&amp;quot;, link = &amp;quot;Imperial units&amp;quot; },&lt;br /&gt;
	{ &amp;quot;imp&amp;quot;, link = &amp;quot;Imperial units&amp;quot; },&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Names when using engineering notation (a prefix of &amp;quot;eN&amp;quot; where N is a number; example &amp;quot;e6km&amp;quot;).&lt;br /&gt;
-- key = { &amp;quot;name&amp;quot;, link = &amp;quot;article title&amp;quot;, exponent = numeric_key_value }&lt;br /&gt;
-- If lk=on and link is defined, the name of the number will appear as a link.&lt;br /&gt;
local eng_scales = {&lt;br /&gt;
	[&amp;quot;3&amp;quot;]  = { &amp;quot;thousand&amp;quot;, exponent = 3 },&lt;br /&gt;
	[&amp;quot;6&amp;quot;]  = { &amp;quot;million&amp;quot;, exponent = 6 },&lt;br /&gt;
	[&amp;quot;9&amp;quot;]  = { &amp;quot;billion&amp;quot;, link = &amp;quot;1000000000 (number)&amp;quot;, exponent = 9 },&lt;br /&gt;
	[&amp;quot;12&amp;quot;] = { &amp;quot;trillion&amp;quot;, link = &amp;quot;1000000000000 (number)&amp;quot;, exponent = 12 },&lt;br /&gt;
	[&amp;quot;15&amp;quot;] = { &amp;quot;quadrillion&amp;quot;, link = &amp;quot;1000000000000000 (number)&amp;quot;, exponent = 15 },&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local all_categories = {&lt;br /&gt;
	unit = &amp;quot;[[Category:Convert errors]]&amp;quot;,&lt;br /&gt;
	option = &amp;quot;[[Category:Convert errors]]&amp;quot;,&lt;br /&gt;
	warning = '[[Category:Convert invalid options]]',&lt;br /&gt;
	tracking = '[[Category:Convert tracking]]',&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- For some error messages, the following puts the wanted style around&lt;br /&gt;
-- each unit code marked like '...%{ft%}...'.&lt;br /&gt;
local unitcode_regex = '%%([{}])'&lt;br /&gt;
local unitcode_replace = { ['{'] = '&amp;quot;', ['}'] = '&amp;quot;' }  -- no longer need the more elaborate substitute used before 2013-09-28&lt;br /&gt;
&lt;br /&gt;
-- All messages that may be displayed if a problem occurs.&lt;br /&gt;
local all_messages = {&lt;br /&gt;
	-- Message format string: $1=title, $2=text, $3=category, $4=anchor.&lt;br /&gt;
	-- Each displayed message starts with &amp;quot;Convert:&amp;quot; so can easily locate by searching article.&lt;br /&gt;
	cvt_format = '&amp;lt;sup class=&amp;quot;noprint Inline-Template&amp;quot; style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;[&amp;lt;i&amp;gt;[[Help:Convert messages#$4|&amp;lt;span title=&amp;quot;Convert: $1&amp;quot;&amp;gt;convert: $2&amp;lt;/span&amp;gt;]]&amp;lt;/i&amp;gt;]&amp;lt;/sup&amp;gt;$3&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;',&lt;br /&gt;
	cvt_format2 = '&amp;lt;sup class=&amp;quot;noprint Inline-Template&amp;quot; style=&amp;quot;white-space:nowrap;&amp;quot;&amp;gt;[[Help:Convert messages#$4|&amp;lt;span title=&amp;quot;Convert: $1&amp;quot;&amp;gt;$2&amp;lt;/span&amp;gt;]]&amp;lt;/sup&amp;gt;$3&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;',&lt;br /&gt;
	cvt_format_preview = '&amp;lt;strong class=&amp;quot;error&amp;quot;&amp;gt;Error in convert: $1 [[Help:Convert messages#$4|(help)]]&amp;lt;/strong&amp;gt;$3',&lt;br /&gt;
	-- Each of following messages is a table:&lt;br /&gt;
	-- { [1] = 'title',         -- mouseover title text&lt;br /&gt;
	--   [2] = 'text',          -- link text displayed in article&lt;br /&gt;
	--   [3] = 'category key',  -- key to lookup category in all_categories&lt;br /&gt;
	--   [4] = 'anchor',        -- anchor for link to relevant section on help page&lt;br /&gt;
	--   regex = gsub_regex,&lt;br /&gt;
	--   replace = gsub_table,&lt;br /&gt;
	-- }                    Mouseover title text                           Link text               CatKey     Anchor&lt;br /&gt;
	cvt_bad_input      = { 'input &amp;quot;$1&amp;quot; must be a number and unit'       , 'invalid input'       , 'option',  'invalid_input'        },&lt;br /&gt;
	cvt_bad_num        = { 'Value &amp;quot;$1&amp;quot; must be a number'                , 'invalid number'      , 'option',  'invalid_number'       },&lt;br /&gt;
	cvt_big_prec       = { 'Precision &amp;quot;$1&amp;quot; is too large'                , 'precision too large' , 'option',  'precision_too_large'  },&lt;br /&gt;
	cvt_invalid_num    = { 'Number has overflowed'                      , 'number overflow'     , 'option',  'number_overflow'      },&lt;br /&gt;
	cvt_no_num         = { 'Needs the number to be converted'           , 'needs a number'      , 'option',  'needs_number'         },&lt;br /&gt;
	cvt_no_num2        = { 'Needs another number for a range'           , 'needs another number', 'option',  'needs_another_number' },&lt;br /&gt;
	cvt_bad_frac       = { '&amp;quot;$1&amp;quot; needs an integer above 1'              , 'invalid fraction'    , 'option',  'invalid_fraction'     },&lt;br /&gt;
	cvt_bad_prec       = { 'Precision &amp;quot;$1&amp;quot; must be an integer'          , 'invalid precision'   , 'option',  'invalid_precision'    },&lt;br /&gt;
	cvt_bad_sigfig     = { '&amp;quot;$1&amp;quot; needs a positive integer'              , 'invalid sigfig'      , 'option',  'invalid_sigfig'       },&lt;br /&gt;
	cvt_empty_option   = { 'Ignored empty option &amp;quot;$1&amp;quot;'                  , 'empty option'        , 'option',  'empty_option'         },&lt;br /&gt;
	cvt_deprecated     = { 'Option &amp;quot;$1&amp;quot; is deprecated'                  , '*'                   , 'option',  'deprecated_option', format = 'cvt_format2', nowarn = true },&lt;br /&gt;
	cvt_no_spell       = { 'Spelling is not available'                  , 'bug, ask for help'   , 'option',  'ask_for_help'         },&lt;br /&gt;
	cvt_unknown_option = { 'Ignored invalid option &amp;quot;$1&amp;quot;'                , 'invalid option'      , 'option',  'invalid_option'       },&lt;br /&gt;
	cvt_wd_fail        = { 'Unable to access Wikidata'                  , 'wikidata problem'    , 'option',  'wikidata_problem'     },&lt;br /&gt;
	cvt_bad_default    = { 'Unit &amp;quot;$1&amp;quot; has an invalid default'           , 'bug, ask for help'   , 'unit'  ,  'ask_for_help'         },&lt;br /&gt;
	cvt_bad_unit       = { 'Unit &amp;quot;$1&amp;quot; is invalid here'                  , 'unit invalid here'   , 'unit'  ,  'unit_invalid_here'    },&lt;br /&gt;
	cvt_no_default     = { 'Unit &amp;quot;$1&amp;quot; has no default output unit'       , 'bug, ask for help'   , 'unit'  ,  'ask_for_help'         },&lt;br /&gt;
	cvt_no_unit        = { 'Needs name of unit'                         , 'needs unit name'     , 'unit'  ,  'needs_unit_name'      },&lt;br /&gt;
	cvt_unknown        = { 'Unit name &amp;quot;$1&amp;quot; is not known'                , 'unknown unit'        , 'unit'  ,  'unknown_unit'         },&lt;br /&gt;
	cvt_should_be      = { '$1'                                         , 'ambiguous unit'      , 'unit'  ,  'ambiguous_unit', regex = unitcode_regex, replace = unitcode_replace },&lt;br /&gt;
	cvt_mismatch       = { 'Cannot convert &amp;quot;$1&amp;quot; to &amp;quot;$2&amp;quot;'                , 'unit mismatch'       , 'unit'  ,  'unit_mismatch'        },&lt;br /&gt;
	cvt_bug_convert    = { 'Bug: Cannot convert between specified units', 'bug, ask for help'   , 'unit'  ,  'ask_for_help'         },&lt;br /&gt;
	cvt_lookup         = { 'Unit &amp;quot;$1&amp;quot; is incorrectly defined'           , 'bug, ask for help'   , 'unit'  ,  'ask_for_help'         },&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Text to join input value/unit with output value/unit.&lt;br /&gt;
local disp_joins = {&lt;br /&gt;
	-- [1]=before output, [2]=after output, [3]=between outputs in a combination; default &amp;quot;; &amp;quot;&lt;br /&gt;
	-- [wantname] gives default abbr=off&lt;br /&gt;
	[&amp;quot;or&amp;quot;]         = { &amp;quot; or &amp;quot;    , &amp;quot;&amp;quot; , &amp;quot; or &amp;quot;, wantname = true },&lt;br /&gt;
	[&amp;quot;sqbr-sp&amp;quot;]    = { &amp;quot; [&amp;quot;      , &amp;quot;]&amp;quot; },&lt;br /&gt;
	[&amp;quot;sqbr-nbsp&amp;quot;]  = { &amp;quot;&amp;amp;nbsp;[&amp;quot; , &amp;quot;]&amp;quot; },&lt;br /&gt;
	[&amp;quot;comma&amp;quot;]      = { &amp;quot;, &amp;quot;      , &amp;quot;&amp;quot; , &amp;quot;, &amp;quot; },&lt;br /&gt;
	[&amp;quot;slash-sp&amp;quot;]   = { &amp;quot; / &amp;quot;     , &amp;quot;&amp;quot; , wantname = true },&lt;br /&gt;
	[&amp;quot;slash-nbsp&amp;quot;] = { &amp;quot;&amp;amp;nbsp;/ &amp;quot;, &amp;quot;&amp;quot; , wantname = true },&lt;br /&gt;
	[&amp;quot;slash-nosp&amp;quot;] = { &amp;quot;/&amp;quot;       , &amp;quot;&amp;quot; , wantname = true },&lt;br /&gt;
	[&amp;quot;b&amp;quot;]          = { &amp;quot; (&amp;quot;      , &amp;quot;)&amp;quot; },&lt;br /&gt;
	[&amp;quot;(or)&amp;quot;]       = { &amp;quot; (&amp;quot;      , &amp;quot;)&amp;quot;, &amp;quot; or &amp;quot; },&lt;br /&gt;
	[&amp;quot;br&amp;quot;]         = { &amp;quot;&amp;lt;br /&amp;gt;&amp;quot;  , &amp;quot;&amp;quot; , wantname = true },&lt;br /&gt;
	[&amp;quot;br()&amp;quot;]       = { &amp;quot;&amp;lt;br /&amp;gt;(&amp;quot; , &amp;quot;)&amp;quot;, wantname = true },&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Text to separate values in a range.&lt;br /&gt;
local range_types = {&lt;br /&gt;
	-- Specifying a table requires either:&lt;br /&gt;
	-- * &amp;quot;off&amp;quot; and &amp;quot;on&amp;quot; values (for &amp;quot;abbr=off&amp;quot; and &amp;quot;abbr=on&amp;quot;), or&lt;br /&gt;
	-- * &amp;quot;input&amp;quot; and &amp;quot;output&amp;quot; values (for LHS and RHS);&lt;br /&gt;
	-- other fields are optional.&lt;br /&gt;
	-- When &amp;quot;adj=on|abbr=off&amp;quot; applies, spaces in range text are replaced with hyphens.&lt;br /&gt;
	-- With &amp;quot;exception = true&amp;quot;, that also occurs with &amp;quot;adj=on|abbr=on&amp;quot;.&lt;br /&gt;
	-- If &amp;quot;adj&amp;quot; is defined here, that text (unchanged) is used with &amp;quot;adj=on&amp;quot;.&lt;br /&gt;
	[&amp;quot;+&amp;quot;]      = &amp;quot; + &amp;quot;,&lt;br /&gt;
	[&amp;quot;,&amp;quot;]      = &amp;quot;,&amp;amp;nbsp;&amp;quot;,&lt;br /&gt;
	[&amp;quot;, and&amp;quot;]  = &amp;quot;, and &amp;quot;,&lt;br /&gt;
	[&amp;quot;, or&amp;quot;]   = &amp;quot;, or &amp;quot;,&lt;br /&gt;
	[&amp;quot;by&amp;quot;]     = &amp;quot; by &amp;quot;,&lt;br /&gt;
	[&amp;quot;-&amp;quot;]      = &amp;quot;–&amp;quot;,&lt;br /&gt;
	[&amp;quot;to about&amp;quot;] = &amp;quot; to about &amp;quot;,&lt;br /&gt;
	[&amp;quot;and&amp;quot;]    = { off = &amp;quot; and &amp;quot;, on = &amp;quot; and &amp;quot;, exception = true },&lt;br /&gt;
	[&amp;quot;and(-)&amp;quot;] = { input = &amp;quot; and &amp;quot;, output = &amp;quot;–&amp;quot; },&lt;br /&gt;
	[&amp;quot;or&amp;quot;]     = { off = &amp;quot; or &amp;quot; , on = &amp;quot; or &amp;quot; , exception = true },&lt;br /&gt;
	[&amp;quot;to&amp;quot;]     = { off = &amp;quot; to &amp;quot; , on = &amp;quot; to &amp;quot; , exception = true },&lt;br /&gt;
	[&amp;quot;to(-)&amp;quot;]  = { input = &amp;quot;&amp;amp;nbsp;to &amp;quot;, output = &amp;quot;–&amp;quot; },&lt;br /&gt;
	[&amp;quot;+/-&amp;quot;]    = { off = &amp;quot;&amp;amp;nbsp;±&amp;amp;nbsp;&amp;quot;, on = &amp;quot;&amp;amp;nbsp;±&amp;amp;nbsp;&amp;quot;, adj = &amp;quot;&amp;amp;nbsp;±&amp;amp;nbsp;&amp;quot;, is_range_change = true },&lt;br /&gt;
	[&amp;quot;by(x)&amp;quot;]  = { input = &amp;quot; by &amp;quot;, output = &amp;quot; ×&amp;amp;nbsp;&amp;quot;, out_range_x = true },&lt;br /&gt;
	[&amp;quot;x&amp;quot;]      = { off = &amp;quot; by &amp;quot;, on = &amp;quot; ×&amp;amp;nbsp;&amp;quot;, abbr_range_x = true },&lt;br /&gt;
	[&amp;quot;xx&amp;quot;]     = &amp;quot;&amp;amp;nbsp;×&amp;amp;nbsp;&amp;quot;,&lt;br /&gt;
	[&amp;quot;*&amp;quot;]      = &amp;quot;×&amp;quot;,&lt;br /&gt;
	[&amp;quot;/&amp;quot;]      = &amp;quot;&amp;amp;thinsp;/&amp;amp;thinsp;&amp;quot;,  -- for a table of high/low temperatures with {{convert|83|/|63|F|disp=br()|abbr=values}}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local range_aliases = {&lt;br /&gt;
	-- [&amp;quot;alternative name for a range&amp;quot;] = &amp;quot;standard range name&amp;quot;&lt;br /&gt;
	[&amp;quot;–&amp;quot;]        = &amp;quot;-&amp;quot;,&lt;br /&gt;
	[&amp;quot;&amp;amp;ndash;&amp;quot;]  = &amp;quot;-&amp;quot;,&lt;br /&gt;
	[&amp;quot;×&amp;quot;]        = &amp;quot;x&amp;quot;,&lt;br /&gt;
	[&amp;quot;&amp;amp;times;&amp;quot;]  = &amp;quot;x&amp;quot;,&lt;br /&gt;
	[&amp;quot;±&amp;quot;]        = &amp;quot;+/-&amp;quot;,&lt;br /&gt;
	[&amp;quot;&amp;amp;plusmn;&amp;quot;] = &amp;quot;+/-&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Convert accepts range text delimited with whitespace, for example, {{convert|1 to 2|ft}}.&lt;br /&gt;
-- In addition, the following &amp;quot;words&amp;quot; are accepted without spaces, for example, {{convert|1-2|ft}}.&lt;br /&gt;
-- Words must be in correct order for searching, for example, 'x' after 'xx'.&lt;br /&gt;
local range_words = { '-', '–', 'xx', 'x', '*' }&lt;br /&gt;
&lt;br /&gt;
local ranges = {&lt;br /&gt;
	types = range_types,&lt;br /&gt;
	aliases = range_aliases,&lt;br /&gt;
	words = range_words,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Valid option names.&lt;br /&gt;
local en_option_name = {&lt;br /&gt;
	-- [&amp;quot;local text for option name&amp;quot;] = &amp;quot;en name used in this module&amp;quot;&lt;br /&gt;
	[&amp;quot;$&amp;quot;] = &amp;quot;$&amp;quot;,&lt;br /&gt;
	[&amp;quot;abbr&amp;quot;] = &amp;quot;abbr&amp;quot;,&lt;br /&gt;
	[&amp;quot;adj&amp;quot;] = &amp;quot;adj&amp;quot;,&lt;br /&gt;
	[&amp;quot;comma&amp;quot;] = &amp;quot;comma&amp;quot;,&lt;br /&gt;
	[&amp;quot;debug&amp;quot;] = &amp;quot;debug&amp;quot;,&lt;br /&gt;
	[&amp;quot;disp&amp;quot;] = &amp;quot;disp&amp;quot;,&lt;br /&gt;
	[&amp;quot;frac&amp;quot;] = &amp;quot;frac&amp;quot;,&lt;br /&gt;
	[&amp;quot;input&amp;quot;] = &amp;quot;input&amp;quot;,&lt;br /&gt;
	[&amp;quot;lang&amp;quot;] = &amp;quot;lang&amp;quot;,&lt;br /&gt;
	[&amp;quot;lk&amp;quot;] = &amp;quot;lk&amp;quot;,&lt;br /&gt;
	[&amp;quot;order&amp;quot;] = &amp;quot;order&amp;quot;,&lt;br /&gt;
	[&amp;quot;qid&amp;quot;] = &amp;quot;qid&amp;quot;,&lt;br /&gt;
	[&amp;quot;qual&amp;quot;] = &amp;quot;qual&amp;quot;,&lt;br /&gt;
	[&amp;quot;qualifier&amp;quot;] = &amp;quot;qual&amp;quot;,&lt;br /&gt;
	[&amp;quot;round&amp;quot;] = &amp;quot;round&amp;quot;,&lt;br /&gt;
	[&amp;quot;sigfig&amp;quot;] = &amp;quot;sigfig&amp;quot;,&lt;br /&gt;
	[&amp;quot;sing&amp;quot;] = &amp;quot;adj&amp;quot;,                   -- &amp;quot;sing&amp;quot; is an old alias for &amp;quot;adj&amp;quot;&lt;br /&gt;
	[&amp;quot;sortable&amp;quot;] = &amp;quot;sortable&amp;quot;,&lt;br /&gt;
	[&amp;quot;sp&amp;quot;] = &amp;quot;sp&amp;quot;,&lt;br /&gt;
	[&amp;quot;spell&amp;quot;] = &amp;quot;spell&amp;quot;,&lt;br /&gt;
	[&amp;quot;stylein&amp;quot;] = &amp;quot;stylein&amp;quot;,&lt;br /&gt;
	[&amp;quot;styleout&amp;quot;] = &amp;quot;styleout&amp;quot;,&lt;br /&gt;
	[&amp;quot;tracking&amp;quot;] = &amp;quot;tracking&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Valid option values.&lt;br /&gt;
-- Convention: parms.opt_xxx refers to an option that is set here&lt;br /&gt;
-- (not intended to be set by the template which invokes this module).&lt;br /&gt;
-- Example: At enwiki, &amp;quot;abbr&amp;quot; includes:&lt;br /&gt;
--     [&amp;quot;comma&amp;quot;] = &amp;quot;opt_nocomma&amp;quot;&lt;br /&gt;
-- As a result, if the template uses abbr=comma, Module:Convert sets:&lt;br /&gt;
--     parms[&amp;quot;opt_nocomma&amp;quot;] = true&lt;br /&gt;
--     parms[&amp;quot;abbr&amp;quot;] = nil&lt;br /&gt;
-- Therefore parms.abbr will be nil, or will have one of the listed values&lt;br /&gt;
-- that do not start with &amp;quot;opt_&amp;quot;.&lt;br /&gt;
-- An option value of form &amp;quot;xxx?&amp;quot; is the same as &amp;quot;xxx&amp;quot; but shows the input as deprecated.&lt;br /&gt;
local en_option_value = {&lt;br /&gt;
	-- $=x is handled as a special case: x should be a currency symbol that will be used instead of &amp;quot;$&amp;quot;&lt;br /&gt;
	[&amp;quot;abbr&amp;quot;] = {&lt;br /&gt;
		-- [&amp;quot;local text for option value&amp;quot;] = &amp;quot;en value used in this module&amp;quot;&lt;br /&gt;
		[&amp;quot;def&amp;quot;] = &amp;quot;&amp;quot;,                   -- ignored (some wrapper templates call convert with &amp;quot;abbr=def&amp;quot; to mean &amp;quot;default abbreviation&amp;quot;)&lt;br /&gt;
		[&amp;quot;h&amp;quot;] = &amp;quot;on&amp;quot;,                   -- abbr=on + use &amp;quot;h&amp;quot; for hand unit (default)&lt;br /&gt;
		[&amp;quot;hh&amp;quot;] = &amp;quot;opt_hand_hh&amp;quot;,         -- abbr=on + use &amp;quot;hh&amp;quot; for hand unit&lt;br /&gt;
		[&amp;quot;in&amp;quot;] = &amp;quot;in&amp;quot;,                  -- use symbol for LHS unit&lt;br /&gt;
		[&amp;quot;none&amp;quot;] = &amp;quot;off&amp;quot;,               -- old name for &amp;quot;off&amp;quot;&lt;br /&gt;
		[&amp;quot;off&amp;quot;] = &amp;quot;off&amp;quot;,                -- use name for all units&lt;br /&gt;
		[&amp;quot;on&amp;quot;] = &amp;quot;on&amp;quot;,                  -- use symbol for all units&lt;br /&gt;
		[&amp;quot;out&amp;quot;] = &amp;quot;out&amp;quot;,                -- use symbol for RHS unit (default)&lt;br /&gt;
		[&amp;quot;unit&amp;quot;] = &amp;quot;unit&amp;quot;,              -- abbr=on but abbreviate units only: e6km → million km (not ×10⁶ km)&lt;br /&gt;
		[&amp;quot;values&amp;quot;] = &amp;quot;opt_values&amp;quot;,      -- show only input and output numbers, not units&lt;br /&gt;
		[&amp;quot;~&amp;quot;] = &amp;quot;opt_also_symbol&amp;quot;,      -- show input unit symbol as well as name&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;adj&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;mid&amp;quot;] = &amp;quot;opt_adjectival, opt_adj_mid&amp;quot;,  -- adj=on with user-specified text after input unit (between input and output)&lt;br /&gt;
		[&amp;quot;off&amp;quot;] = &amp;quot;&amp;quot;,                   -- ignored (off is the default)&lt;br /&gt;
		[&amp;quot;on&amp;quot;] = &amp;quot;opt_adjectival&amp;quot;,      -- unit name is singular and hyphenated&lt;br /&gt;
		[&amp;quot;pre&amp;quot;] = &amp;quot;opt_one_preunit&amp;quot;,    -- user-specified text before input unit&lt;br /&gt;
		[&amp;quot;ri0&amp;quot;] = &amp;quot;opt_ri=0&amp;quot;,           -- round input with precision = 0&lt;br /&gt;
		[&amp;quot;ri1&amp;quot;] = &amp;quot;opt_ri=1&amp;quot;,           -- round input with precision = 1&lt;br /&gt;
		[&amp;quot;ri2&amp;quot;] = &amp;quot;opt_ri=2&amp;quot;,           -- round input with precision = 2&lt;br /&gt;
		[&amp;quot;ri3&amp;quot;] = &amp;quot;opt_ri=3&amp;quot;,           -- round input with precision = 3&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;comma&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;5&amp;quot;] = &amp;quot;opt_comma5&amp;quot;,           -- only use numsep grouping if 5 or more digits&lt;br /&gt;
		[&amp;quot;gaps&amp;quot;] = &amp;quot;opt_gaps&amp;quot;,          -- use gaps, not numsep, to separate groups of digits&lt;br /&gt;
		[&amp;quot;gaps3&amp;quot;] = &amp;quot;opt_gaps, opt_gaps3&amp;quot;,  -- group only in threes rather than default of no gap before a single digit after decimal mark&lt;br /&gt;
		[&amp;quot;off&amp;quot;] = &amp;quot;opt_nocomma&amp;quot;,        -- no numsep in input or output numbers&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;debug&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;yes&amp;quot;] = &amp;quot;opt_sortable_debug&amp;quot;, -- make the normally hidden sort key visible&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;disp&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;5&amp;quot;] = &amp;quot;opt_round=5?&amp;quot;,         -- round output value to nearest 5&lt;br /&gt;
		[&amp;quot;b&amp;quot;] = &amp;quot;b&amp;quot;,                    -- join: '(...)'&lt;br /&gt;
		[&amp;quot;(or)&amp;quot;] = &amp;quot;(or)&amp;quot;,              -- join: '(...)' with 'or' between outputs in a combination&lt;br /&gt;
		[&amp;quot;br&amp;quot;] = &amp;quot;br&amp;quot;,                  -- join: '&amp;lt;br /&amp;gt;'&lt;br /&gt;
		[&amp;quot;br()&amp;quot;] = &amp;quot;br()&amp;quot;,              -- join: '&amp;lt;br /&amp;gt;(...)'&lt;br /&gt;
		[&amp;quot;comma&amp;quot;] = &amp;quot;comma&amp;quot;,            -- join: ','&lt;br /&gt;
		[&amp;quot;flip&amp;quot;] = &amp;quot;opt_flip&amp;quot;,          -- reverse order of input/output&lt;br /&gt;
		[&amp;quot;number&amp;quot;] = &amp;quot;opt_output_number_only&amp;quot;,  -- display output value (not input, and not output symbol/name)&lt;br /&gt;
		[&amp;quot;or&amp;quot;] = &amp;quot;or&amp;quot;,                  -- join: 'or'&lt;br /&gt;
		[&amp;quot;out&amp;quot;] = &amp;quot;opt_output_only&amp;quot;,&lt;br /&gt;
		[&amp;quot;output number only&amp;quot;] = &amp;quot;opt_output_number_only&amp;quot;,&lt;br /&gt;
		[&amp;quot;output only&amp;quot;] = &amp;quot;opt_output_only&amp;quot;,&lt;br /&gt;
		[&amp;quot;preunit&amp;quot;] = &amp;quot;opt_two_preunits&amp;quot;,    -- user-specified text before input and output units&lt;br /&gt;
		[&amp;quot;sqbr&amp;quot;] = &amp;quot;sqbr&amp;quot;,              -- join: '[...]'&lt;br /&gt;
		[&amp;quot;table&amp;quot;] = &amp;quot;opt_table&amp;quot;,        -- output is suitable for a table cell with align=&amp;quot;right&amp;quot;&lt;br /&gt;
		[&amp;quot;tablecen&amp;quot;] = &amp;quot;opt_tablecen&amp;quot;,  -- output is suitable for a table cell with align=&amp;quot;center&amp;quot;&lt;br /&gt;
		[&amp;quot;unit&amp;quot;] = &amp;quot;opt_input_unit_only&amp;quot;, -- display input symbol/name (not output, and not input value)&lt;br /&gt;
		[&amp;quot;unit or text&amp;quot;] = &amp;quot;opt_input_unit_only, opt_ignore_error&amp;quot;, -- display input symbol/name, or given unit code if not known&lt;br /&gt;
		[&amp;quot;unit2&amp;quot;] = &amp;quot;opt_output_unit_only&amp;quot;,&lt;br /&gt;
		[&amp;quot;x&amp;quot;] = &amp;quot;x&amp;quot;,                    -- join: &amp;lt;first&amp;gt;...&amp;lt;second&amp;gt; (user-specified text)&lt;br /&gt;
	},&lt;br /&gt;
	-- frac=x is handled as a special case: x must be an integer (possibly in local language) = 2 or more&lt;br /&gt;
	-- input=x is handled as a special case: x should be &amp;lt;value&amp;gt;&amp;lt;space&amp;gt;&amp;lt;unitcode&amp;gt; or &amp;lt;wikidata-property-id&amp;gt;&lt;br /&gt;
	[&amp;quot;lang&amp;quot;] = {                        -- language for output digits (both en and local digits are always accepted for input)&lt;br /&gt;
		[&amp;quot;en&amp;quot;] = &amp;quot;opt_lang_en&amp;quot;,         -- use en digits for numbers, regardless of local language&lt;br /&gt;
		[&amp;quot;local&amp;quot;] = &amp;quot;opt_lang_local&amp;quot;,   -- use local digits for numbers (default, although config can change default to en)&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;lk&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;in&amp;quot;] = &amp;quot;in&amp;quot;,                  -- link LHS unit name or symbol&lt;br /&gt;
		[&amp;quot;off&amp;quot;] = &amp;quot;off&amp;quot;,                -- do not link: same as default except for hand unit&lt;br /&gt;
		[&amp;quot;on&amp;quot;] = &amp;quot;on&amp;quot;,                  -- link all unit names or symbols (but not twice for the same unit)&lt;br /&gt;
		[&amp;quot;out&amp;quot;] = &amp;quot;out&amp;quot;,                -- link RHS unit name or symbol&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;order&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;flip&amp;quot;] = &amp;quot;opt_flip&amp;quot;,          -- reverse order of input/output&lt;br /&gt;
		[&amp;quot;out&amp;quot;] = &amp;quot;opt_order_out&amp;quot;,      -- do not show input; instead, use order in output combination, with the first output shown as the input&lt;br /&gt;
	},&lt;br /&gt;
	-- qid=x is handled as a special case: x should be a Wikidata Q item identifier.&lt;br /&gt;
	-- qual=x is handled as a special case: x should be a Wikidata Q item identifier.&lt;br /&gt;
	[&amp;quot;round&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;0.5&amp;quot;] = &amp;quot;opt_round=0.5&amp;quot;,      -- round output value to nearest 0.5&lt;br /&gt;
		[&amp;quot;5&amp;quot;] = &amp;quot;opt_round=5&amp;quot;,          -- round output value to nearest 5&lt;br /&gt;
		[&amp;quot;10&amp;quot;] = &amp;quot;opt_round=10&amp;quot;,        -- round output value to nearest 10 (same as but clearer than &amp;quot;|-1&amp;quot;)&lt;br /&gt;
		[&amp;quot;25&amp;quot;] = &amp;quot;opt_round=25&amp;quot;,        -- round output value to nearest 25&lt;br /&gt;
		[&amp;quot;50&amp;quot;] = &amp;quot;opt_round=50&amp;quot;,        -- round output value to nearest 50&lt;br /&gt;
		[&amp;quot;each&amp;quot;] = &amp;quot;opt_round_each&amp;quot;,    -- using default precision in a range, round each output separately (default uses highest precision of each item in range)&lt;br /&gt;
	},&lt;br /&gt;
	-- sigfig=x is handled as a special case: x must be an integer (possibly in local language) = 1 or more&lt;br /&gt;
	[&amp;quot;sortable&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;off&amp;quot;] = &amp;quot;&amp;quot;,                   -- ignored (off is the default)&lt;br /&gt;
		[&amp;quot;on&amp;quot;] = &amp;quot;opt_sortable_on&amp;quot;,     -- output sort key for use in a sortable table, based on value from converting to a standard base unit&lt;br /&gt;
		[&amp;quot;debug&amp;quot;] = &amp;quot;opt_sortable_on, opt_sortable_debug&amp;quot;,  -- |sortable=debug is the same as |sortable=on|debug=yes&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;sp&amp;quot;] = {&lt;br /&gt;
		[&amp;quot;us&amp;quot;] = &amp;quot;opt_sp_us&amp;quot;,           -- use U.S. spelling (like &amp;quot;meter&amp;quot; instead of default &amp;quot;metre&amp;quot;)&lt;br /&gt;
	},&lt;br /&gt;
	[&amp;quot;spell&amp;quot;] = {                       -- only English spelling is supported; not scientific notation; only some fractions&lt;br /&gt;
		[&amp;quot;in&amp;quot;] = &amp;quot;opt_spell_in&amp;quot;,        -- spell input value in words&lt;br /&gt;
		[&amp;quot;In&amp;quot;] = &amp;quot;opt_spell_in, opt_spell_upper&amp;quot;,                -- spell input value in words with first letter uppercase&lt;br /&gt;
		[&amp;quot;on&amp;quot;] = &amp;quot;opt_spell_in, opt_spell_out&amp;quot;,                  -- spell input and output values in words&lt;br /&gt;
		[&amp;quot;On&amp;quot;] = &amp;quot;opt_spell_in, opt_spell_out, opt_spell_upper&amp;quot;, -- same, with first letter of first word in result uppercase&lt;br /&gt;
	},&lt;br /&gt;
	-- stylein=x is handled as a special case: x can be any text&lt;br /&gt;
	-- styleout=x is handled as a special case: x can be any text&lt;br /&gt;
	-- tracking=x is handled as a special case: x can be any text&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
return {&lt;br /&gt;
	SIprefixes = SIprefixes,&lt;br /&gt;
	all_categories = all_categories,&lt;br /&gt;
	all_messages = all_messages,&lt;br /&gt;
	currency = { ['$'] = true, ['£'] = true, ['€'] = true, ['₱'] = true, ['₽'] = true, ['¥'] = true },&lt;br /&gt;
	customary_units = customary_units,&lt;br /&gt;
	disp_joins = disp_joins,&lt;br /&gt;
	en_option_name = en_option_name,&lt;br /&gt;
	en_option_value = en_option_value,&lt;br /&gt;
	eng_scales = eng_scales,&lt;br /&gt;
	ranges = ranges,&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>imported&gt;Johnuniq</name></author>
		
	</entry>
</feed>