Line 19: |
Line 19: |
| ['c'] = { exponent = -2, name = 'centi', }, | | ['c'] = { exponent = -2, name = 'centi', }, |
| ['m'] = { exponent = -3, name = 'milli', }, | | ['m'] = { exponent = -3, name = 'milli', }, |
− | ['μ'] = { exponent = -6, name = 'micro', prefix = 'µ' }, -- key = 'GREEK SMALL LETTER MU' (U+03BC) utf-8 CE BC | + | ['μ'] = { exponent = -6, name = 'micro', }, -- key = 'GREEK SMALL LETTER MU' (U+03BC) utf-8 CE BC |
− | ['µ'] = { exponent = -6, name = 'micro', }, -- key = 'MICRO SIGN' (U+00B5) utf-8 C2 B5 | + | ['µ'] = { exponent = -6, name = 'micro', prefix = 'μ' }, -- key = 'MICRO SIGN' (U+00B5) utf-8 C2 B5 |
− | ['u'] = { exponent = -6, name = 'micro', prefix = 'µ' }, -- not an SI prefix, but allow for people typing this | + | ['u'] = { exponent = -6, name = 'micro', prefix = 'μ' }, -- not an SI prefix, but allow for people typing this |
| ['n'] = { exponent = -9, name = 'nano' , }, | | ['n'] = { exponent = -9, name = 'nano' , }, |
| ['p'] = { exponent =-12, name = 'pico' , }, | | ['p'] = { exponent =-12, name = 'pico' , }, |
Line 49: |
Line 49: |
| } | | } |
| | | |
− | -- One of the following categories is included in the text of each message.
| |
− | -- Using the same category for each is simplest.
| |
| local all_categories = { | | local all_categories = { |
| unit = "[[Category:Convert errors]]", | | unit = "[[Category:Convert errors]]", |
| option = "[[Category:Convert errors]]", | | option = "[[Category:Convert errors]]", |
| + | warning = '[[Category:Convert invalid options]]', |
| + | tracking = '[[Category:Convert tracking]]', |
| } | | } |
| | | |
Line 65: |
Line 65: |
| -- Message format string: $1=title, $2=text, $3=category, $4=anchor. | | -- Message format string: $1=title, $2=text, $3=category, $4=anchor. |
| -- Each displayed message starts with "Convert:" so can easily locate by searching article. | | -- Each displayed message starts with "Convert:" so can easily locate by searching article. |
− | cvt_format = '<sup class="noprint Inline-Template" style="white-space:nowrap;">[<i>[[Help:Convert messages#$4|<span title="Convert: $1">convert: $2</span>]]</i>]</sup>$3', | + | cvt_format = '<sup class="noprint Inline-Template" style="white-space:nowrap;">[<i>[[Help:Convert messages#$4|<span title="Convert: $1">convert: $2</span>]]</i>]</sup>$3<span class="error"></span>', |
− | cvt_format2 = '<sup class="noprint Inline-Template" style="white-space:nowrap;">[[Help:Convert messages#$4|<span title="Convert: $1">$2</span>]]</sup>$3', | + | cvt_format2 = '<sup class="noprint Inline-Template" style="white-space:nowrap;">[[Help:Convert messages#$4|<span title="Convert: $1">$2</span>]]</sup>$3<span class="error"></span>', |
| cvt_format_preview = '<strong class="error">Error in convert: $1 [[Help:Convert messages#$4|(help)]]</strong>$3', | | cvt_format_preview = '<strong class="error">Error in convert: $1 [[Help:Convert messages#$4|(help)]]</strong>$3', |
| -- Each of following messages is a table: | | -- Each of following messages is a table: |
Line 82: |
Line 82: |
| cvt_no_num = { 'Needs the number to be converted' , 'needs a number' , 'option', 'needs_number' }, | | cvt_no_num = { 'Needs the number to be converted' , 'needs a number' , 'option', 'needs_number' }, |
| cvt_no_num2 = { 'Needs another number for a range' , 'needs another number', 'option', 'needs_another_number' }, | | cvt_no_num2 = { 'Needs another number for a range' , 'needs another number', 'option', 'needs_another_number' }, |
− | cvt_bad_frac = { 'frac "$1" must be an integer above 1' , 'invalid fraction' , 'option', 'invalid_fraction' }, | + | cvt_bad_frac = { '"$1" needs an integer above 1' , 'invalid fraction' , 'option', 'invalid_fraction' }, |
| cvt_bad_prec = { 'Precision "$1" must be an integer' , 'invalid precision' , 'option', 'invalid_precision' }, | | cvt_bad_prec = { 'Precision "$1" must be an integer' , 'invalid precision' , 'option', 'invalid_precision' }, |
− | cvt_bad_sigfig = { 'sigfig "$1" must be a positive integer' , 'invalid sigfig' , 'option', 'invalid_sigfig' }, | + | cvt_bad_sigfig = { '"$1" needs a positive integer' , 'invalid sigfig' , 'option', 'invalid_sigfig' }, |
| cvt_empty_option = { 'Ignored empty option "$1"' , 'empty option' , 'option', 'empty_option' }, | | cvt_empty_option = { 'Ignored empty option "$1"' , 'empty option' , 'option', 'empty_option' }, |
− | cvt_deprecated = { 'Option "$1" is deprecated' , '*' , 'option', 'deprecated_option', format = 'cvt_format2' }, | + | cvt_deprecated = { 'Option "$1" is deprecated' , '*' , 'option', 'deprecated_option', format = 'cvt_format2', nowarn = true }, |
| cvt_no_spell = { 'Spelling is not available' , 'bug, ask for help' , 'option', 'ask_for_help' }, | | cvt_no_spell = { 'Spelling is not available' , 'bug, ask for help' , 'option', 'ask_for_help' }, |
| cvt_unknown_option = { 'Ignored invalid option "$1"' , 'invalid option' , 'option', 'invalid_option' }, | | cvt_unknown_option = { 'Ignored invalid option "$1"' , 'invalid option' , 'option', 'invalid_option' }, |
Line 142: |
Line 142: |
| ["by(x)"] = { input = " by ", output = " × ", out_range_x = true }, | | ["by(x)"] = { input = " by ", output = " × ", out_range_x = true }, |
| ["x"] = { off = " by ", on = " × ", abbr_range_x = true }, | | ["x"] = { off = " by ", on = " × ", abbr_range_x = true }, |
− | ["X"] = { off = " by ", on = " × " }, -- TEMPORARY and undocumented option for experiments to compare with new abbr_range_x
| |
| ["xx"] = " × ", | | ["xx"] = " × ", |
− | ["*"] = "×", -- use "*" to replace "x" in {{convert/2}} which is different from "x" in old {{convert}} | + | ["*"] = "×", |
| + | ["/"] = " / ", -- for a table of high/low temperatures with {{convert|83|/|63|F|disp=br()|abbr=values}} |
| } | | } |
| | | |
| local range_aliases = { | | local range_aliases = { |
| -- ["alternative name for a range"] = "standard range name" | | -- ["alternative name for a range"] = "standard range name" |
− | ["&"] = "and",
| |
| ["–"] = "-", | | ["–"] = "-", |
| ["–"] = "-", | | ["–"] = "-", |
− | ["to-"] = "to(-)",
| |
| ["×"] = "x", | | ["×"] = "x", |
| ["×"] = "x", | | ["×"] = "x", |
Line 183: |
Line 181: |
| ["lang"] = "lang", | | ["lang"] = "lang", |
| ["lk"] = "lk", | | ["lk"] = "lk", |
− | ["near"] = "near",
| |
| ["order"] = "order", | | ["order"] = "order", |
| ["qid"] = "qid", | | ["qid"] = "qid", |
| + | ["qual"] = "qual", |
| + | ["qualifier"] = "qual", |
| ["round"] = "round", | | ["round"] = "round", |
| ["sigfig"] = "sigfig", | | ["sigfig"] = "sigfig", |
Line 194: |
Line 193: |
| ["stylein"] = "stylein", | | ["stylein"] = "stylein", |
| ["styleout"] = "styleout", | | ["styleout"] = "styleout", |
| + | ["tracking"] = "tracking", |
| } | | } |
| | | |
Line 211: |
Line 211: |
| ["abbr"] = { | | ["abbr"] = { |
| -- ["local text for option value"] = "en value used in this module" | | -- ["local text for option value"] = "en value used in this module" |
− | ["comma"] = "opt_nocomma?", -- no numsep in input or output numbers
| |
| ["def"] = "", -- ignored (some wrapper templates call convert with "abbr=def" to mean "default abbreviation") | | ["def"] = "", -- ignored (some wrapper templates call convert with "abbr=def" to mean "default abbreviation") |
| ["h"] = "on", -- abbr=on + use "h" for hand unit (default) | | ["h"] = "on", -- abbr=on + use "h" for hand unit (default) |
| ["hh"] = "opt_hand_hh", -- abbr=on + use "hh" for hand unit | | ["hh"] = "opt_hand_hh", -- abbr=on + use "hh" for hand unit |
| ["in"] = "in", -- use symbol for LHS unit | | ["in"] = "in", -- use symbol for LHS unit |
− | ["mos"] = "mos", -- in a range, repeat the input unit (no longer used)
| |
| ["none"] = "off", -- old name for "off" | | ["none"] = "off", -- old name for "off" |
| ["off"] = "off", -- use name for all units | | ["off"] = "off", -- use name for all units |
| ["on"] = "on", -- use symbol for all units | | ["on"] = "on", -- use symbol for all units |
| ["out"] = "out", -- use symbol for RHS unit (default) | | ["out"] = "out", -- use symbol for RHS unit (default) |
| + | ["unit"] = "unit", -- abbr=on but abbreviate units only: e6km → million km (not ×10⁶ km) |
| ["values"] = "opt_values", -- show only input and output numbers, not units | | ["values"] = "opt_values", -- show only input and output numbers, not units |
| ["~"] = "opt_also_symbol", -- show input unit symbol as well as name | | ["~"] = "opt_also_symbol", -- show input unit symbol as well as name |
| }, | | }, |
| ["adj"] = { | | ["adj"] = { |
− | ["1"] = "opt_singular", -- unit name is singular when value satisfies: (-1 <= v and v < 0) or (0 < v and v <= 1)
| |
− | ["flip"] = "opt_flip?", -- reverse order of input/output
| |
− | ["j"] = "opt_use_nbsp", -- "join": use " " instead of " " between value and unit name
| |
| ["mid"] = "opt_adjectival, opt_adj_mid", -- adj=on with user-specified text after input unit (between input and output) | | ["mid"] = "opt_adjectival, opt_adj_mid", -- adj=on with user-specified text after input unit (between input and output) |
− | ["nocomma"] = "opt_nocomma?", -- no numsep in input or output numbers
| |
| ["off"] = "", -- ignored (off is the default) | | ["off"] = "", -- ignored (off is the default) |
| ["on"] = "opt_adjectival", -- unit name is singular and hyphenated | | ["on"] = "opt_adjectival", -- unit name is singular and hyphenated |
Line 242: |
Line 237: |
| ["gaps"] = "opt_gaps", -- use gaps, not numsep, to separate groups of digits | | ["gaps"] = "opt_gaps", -- use gaps, not numsep, to separate groups of digits |
| ["gaps3"] = "opt_gaps, opt_gaps3", -- group only in threes rather than default of no gap before a single digit after decimal mark | | ["gaps3"] = "opt_gaps, opt_gaps3", -- group only in threes rather than default of no gap before a single digit after decimal mark |
− | ["gaps5"] = "opt_gaps?", -- deprecated 2015-05-29, was: opt_gaps + opt_comma5
| |
| ["off"] = "opt_nocomma", -- no numsep in input or output numbers | | ["off"] = "opt_nocomma", -- no numsep in input or output numbers |
| }, | | }, |
Line 249: |
Line 243: |
| }, | | }, |
| ["disp"] = { | | ["disp"] = { |
− | ["/"] = "or?", -- see "slash"
| + | ["5"] = "opt_round=5?", -- round output value to nearest 5 |
− | ["2"] = "opt_output_only?", -- display only output value and symbol/name (not input)
| |
− | ["5"] = "opt_round=5", -- round output value to nearest 5 | |
| ["b"] = "b", -- join: '(...)' | | ["b"] = "b", -- join: '(...)' |
| ["(or)"] = "(or)", -- join: '(...)' with 'or' between outputs in a combination | | ["(or)"] = "(or)", -- join: '(...)' with 'or' between outputs in a combination |
Line 258: |
Line 250: |
| ["comma"] = "comma", -- join: ',' | | ["comma"] = "comma", -- join: ',' |
| ["flip"] = "opt_flip", -- reverse order of input/output | | ["flip"] = "opt_flip", -- reverse order of input/output |
− | ["flip5"] = "opt_flip, opt_round=5?", -- disp=flip + disp=5
| |
− | ["nocomma"] = "opt_nocomma?", -- no numsep in input or output numbers
| |
| ["number"] = "opt_output_number_only", -- display output value (not input, and not output symbol/name) | | ["number"] = "opt_output_number_only", -- display output value (not input, and not output symbol/name) |
| ["or"] = "or", -- join: 'or' | | ["or"] = "or", -- join: 'or' |
Line 266: |
Line 256: |
| ["output only"] = "opt_output_only", | | ["output only"] = "opt_output_only", |
| ["preunit"] = "opt_two_preunits", -- user-specified text before input and output units | | ["preunit"] = "opt_two_preunits", -- user-specified text before input and output units |
− | ["s"] = "or?", -- see "slash"
| |
− | ["slash"] = "or?", -- 2014-11-03: "disp=slash" is now equivalent to "disp=or" as slash is unhelpful
| |
| ["sqbr"] = "sqbr", -- join: '[...]' | | ["sqbr"] = "sqbr", -- join: '[...]' |
| ["table"] = "opt_table", -- output is suitable for a table cell with align="right" | | ["table"] = "opt_table", -- output is suitable for a table cell with align="right" |
| ["tablecen"] = "opt_tablecen", -- output is suitable for a table cell with align="center" | | ["tablecen"] = "opt_tablecen", -- output is suitable for a table cell with align="center" |
− | ["u2"] = "opt_output_unit_only?", -- display output symbol/name (not input, and not output value)
| |
| ["unit"] = "opt_input_unit_only", -- display input symbol/name (not output, and not input value) | | ["unit"] = "opt_input_unit_only", -- display input symbol/name (not output, and not input value) |
| ["unit or text"] = "opt_input_unit_only, opt_ignore_error", -- display input symbol/name, or given unit code if not known | | ["unit or text"] = "opt_input_unit_only, opt_ignore_error", -- display input symbol/name, or given unit code if not known |
Line 288: |
Line 275: |
| ["on"] = "on", -- link all unit names or symbols (but not twice for the same unit) | | ["on"] = "on", -- link all unit names or symbols (but not twice for the same unit) |
| ["out"] = "out", -- link RHS unit name or symbol | | ["out"] = "out", -- link RHS unit name or symbol |
− | },
| |
− | ["near"] = {
| |
− | ["5"] = "opt_round=5?", -- round output value to nearest 5
| |
| }, | | }, |
| ["order"] = { | | ["order"] = { |
| ["flip"] = "opt_flip", -- reverse order of input/output | | ["flip"] = "opt_flip", -- reverse order of input/output |
| + | ["out"] = "opt_order_out", -- do not show input; instead, use order in output combination, with the first output shown as the input |
| }, | | }, |
| -- qid=x is handled as a special case: x should be a Wikidata Q item identifier. | | -- qid=x is handled as a special case: x should be a Wikidata Q item identifier. |
| + | -- qual=x is handled as a special case: x should be a Wikidata Q item identifier. |
| ["round"] = { | | ["round"] = { |
| ["0.5"] = "opt_round=0.5", -- round output value to nearest 0.5 | | ["0.5"] = "opt_round=0.5", -- round output value to nearest 0.5 |
Line 307: |
Line 293: |
| ["sortable"] = { | | ["sortable"] = { |
| ["off"] = "", -- ignored (off is the default) | | ["off"] = "", -- ignored (off is the default) |
− | ["in"] = "opt_sortable_on?", -- same as "on"
| |
| ["on"] = "opt_sortable_on", -- output sort key for use in a sortable table, based on value from converting to a standard base unit | | ["on"] = "opt_sortable_on", -- output sort key for use in a sortable table, based on value from converting to a standard base unit |
− | ["out"] = "opt_sortable_on?", -- same as "on"
| |
| }, | | }, |
| ["sp"] = { | | ["sp"] = { |
Line 322: |
Line 306: |
| -- stylein=x is handled as a special case: x can be any text | | -- stylein=x is handled as a special case: x can be any text |
| -- styleout=x is handled as a special case: x can be any text | | -- styleout=x is handled as a special case: x can be any text |
| + | -- tracking=x is handled as a special case: x can be any text |
| } | | } |
| | | |
Line 328: |
Line 313: |
| all_categories = all_categories, | | all_categories = all_categories, |
| all_messages = all_messages, | | all_messages = all_messages, |
− | currency = { ['$'] = true, ['£'] = true }, | + | currency = { ['$'] = true, ['£'] = true, ['€'] = true, ['₱'] = true, ['₽'] = true, ['¥'] = true }, |
| customary_units = customary_units, | | customary_units = customary_units, |
| disp_joins = disp_joins, | | disp_joins = disp_joins, |