The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.
Latest revision | Your text | ||
Line 1: | Line 1: | ||
-- Text used by Module:Convert for | -- Text used by Module:Convert for enwiki. | ||
-- This is a separate module to simplify translation for use on another wiki. | -- This is a separate module to simplify translation for use on another wiki. | ||
-- See [[:en:Template:Convert/Transwiki guide]]. | -- See [[:en:Template:Convert/Transwiki guide]] if copying to another wiki. | ||
-- Some units accept an SI prefix before the unit code, such as "kg" for kilogram. | -- Some units accept an SI prefix before the unit code, such as "kg" for kilogram. | ||
local SIprefixes = { | local SIprefixes = { | ||
-- The prefix field is what the prefix should be, if different from the prefix used. | -- The prefix field is what the prefix should be, if different from the prefix used. | ||
['Y'] = { exponent = 24, name = 'yotta', }, | ['Y'] = { exponent = 24, name = 'yotta', }, | ||
['Z'] = { exponent = 21, name = 'zetta', }, | ['Z'] = { exponent = 21, name = 'zetta', }, | ||
Line 21: | 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', | ['μ'] = { exponent = -6, name = 'micro', prefix = 'µ' }, -- key = 'GREEK SMALL LETTER MU' (U+03BC) utf-8 CE BC | ||
['µ'] = { exponent = -6, name = 'micro', | ['µ'] = { exponent = -6, name = 'micro', }, -- key = 'MICRO SIGN' (U+00B5) utf-8 C2 B5 | ||
['u'] = { exponent = -6, name = 'micro', prefix = ' | ['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 30: | Line 28: | ||
['z'] = { exponent =-21, name = 'zepto', }, | ['z'] = { exponent =-21, name = 'zepto', }, | ||
['y'] = { exponent =-24, name = 'yocto', }, | ['y'] = { exponent =-24, name = 'yocto', }, | ||
} | } | ||
Line 53: | 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]]", | ||
} | } | ||
Line 69: | 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>[[ | 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_format2 = '<sup class="noprint Inline-Template" style="white-space:nowrap;">[[ | cvt_format2 = '<sup class="noprint Inline-Template" style="white-space:nowrap;">[[Help:Convert messages#$4|<span title="Convert: $1">$2</span>]]</sup>$3', | ||
cvt_format_preview = '<strong class="error">Error in convert: $1 [[ | 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: | ||
-- { [1] = 'title', -- mouseover title text | -- { [1] = 'title', -- mouseover title text | ||
Line 86: | 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" | |||
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 = { '"$1" | cvt_bad_sigfig = { 'sigfig "$1" must be 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' }, | ||
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 114: | Line 109: | ||
["sqbr-nbsp"] = { " [" , "]" }, | ["sqbr-nbsp"] = { " [" , "]" }, | ||
["comma"] = { ", " , "" , ", " }, | ["comma"] = { ", " , "" , ", " }, | ||
["slash-sp"] = { " / " , "" , wantname = true }, | ["slash-sp"] = { " / " , "" , wantname = true }, | ||
["slash-nbsp"] = { " / ", "" , wantname = true }, | ["slash-nbsp"] = { " / ", "" , wantname = true }, | ||
Line 149: | Line 143: | ||
["x"] = { off = " by ", on = " × ", abbr_range_x = true }, | ["x"] = { off = " by ", on = " × ", abbr_range_x = true }, | ||
["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}} | ["/"] = " / ", -- for a table of high/low temperatures with {{convert|83|/|63|F|disp=br()|abbr=values}} | ||
} | } | ||
Line 155: | Line 149: | ||
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 180: | Line 176: | ||
["abbr"] = "abbr", | ["abbr"] = "abbr", | ||
["adj"] = "adj", | ["adj"] = "adj", | ||
["comma"] = "comma", | ["comma"] = "comma", | ||
["debug"] = "debug", | ["debug"] = "debug", | ||
Line 189: | Line 183: | ||
["lang"] = "lang", | ["lang"] = "lang", | ||
["lk"] = "lk", | ["lk"] = "lk", | ||
["near"] = "near", | |||
["order"] = "order", | ["order"] = "order", | ||
["qid"] = "qid", | ["qid"] = "qid", | ||
["round"] = "round", | ["round"] = "round", | ||
["sigfig"] = "sigfig", | ["sigfig"] = "sigfig", | ||
Line 201: | Line 194: | ||
["stylein"] = "stylein", | ["stylein"] = "stylein", | ||
["styleout"] = "styleout", | ["styleout"] = "styleout", | ||
} | } | ||
Line 208: | Line 200: | ||
-- (not intended to be set by the template which invokes this module). | -- (not intended to be set by the template which invokes this module). | ||
-- Example: At enwiki, "abbr" includes: | -- Example: At enwiki, "abbr" includes: | ||
-- [" | -- ["comma"] = "opt_nocomma" | ||
-- As a result, if the template uses abbr= | -- As a result, if the template uses abbr=comma, Module:Convert sets: | ||
-- parms[" | -- parms["opt_nocomma"] = true | ||
-- parms["abbr"] = nil | -- parms["abbr"] = nil | ||
-- Therefore parms.abbr will be nil, or will have one of the listed values | -- Therefore parms.abbr will be nil, or will have one of the listed values | ||
Line 216: | Line 208: | ||
-- An option value of form "xxx?" is the same as "xxx" but shows the input as deprecated. | -- An option value of form "xxx?" is the same as "xxx" but shows the input as deprecated. | ||
local en_option_value = { | local en_option_value = { | ||
-- $=x is handled as a special case: x should be a currency symbol that will be used instead of "$" | |||
["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 | ||
Line 232: | Line 226: | ||
}, | }, | ||
["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 241: | Line 239: | ||
["ri3"] = "opt_ri=3", -- round input with precision = 3 | ["ri3"] = "opt_ri=3", -- round input with precision = 3 | ||
}, | }, | ||
["comma"] = { | ["comma"] = { | ||
["5"] = "opt_comma5", -- only use numsep grouping if 5 or more digits | ["5"] = "opt_comma5", -- only use numsep grouping if 5 or more digits | ||
["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 253: | Line 250: | ||
}, | }, | ||
["disp"] = { | ["disp"] = { | ||
["5"] = "opt_round=5 | ["/"] = "or?", -- see "slash" | ||
["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 260: | Line 259: | ||
["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 267: | ||
["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 275: | Line 278: | ||
["x"] = "x", -- join: <first>...<second> (user-specified text) | ["x"] = "x", -- join: <first>...<second> (user-specified text) | ||
}, | }, | ||
-- frac=x is handled as a special case: x must be an integer (possibly in local language) = 2 or more | |||
-- input=x is handled as a special case: x should be <value><space><unitcode> or <wikidata-property-id> | |||
["lang"] = { -- language for output digits (both en and local digits are always accepted for input) | ["lang"] = { -- language for output digits (both en and local digits are always accepted for input) | ||
["en"] = "opt_lang_en", -- use en digits for numbers, regardless of local language | ["en"] = "opt_lang_en", -- use en digits for numbers, regardless of local language | ||
Line 286: | Line 289: | ||
["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"] = { | ||
Line 291: | Line 297: | ||
["out"] = "opt_order_out", -- do not show input; instead, use order in output combination, with the first output shown as the input | ["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. | |||
["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 301: | Line 306: | ||
["each"] = "opt_round_each", -- using default precision in a range, round each output separately (default uses highest precision of each item in range) | ["each"] = "opt_round_each", -- using default precision in a range, round each output separately (default uses highest precision of each item in range) | ||
}, | }, | ||
-- sigfig=x is handled as a special case: x must be an integer (possibly in local language) = 1 or more | |||
["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 315: | Line 321: | ||
["on"] = "opt_spell_in, opt_spell_out", -- spell input and output values in words | ["on"] = "opt_spell_in, opt_spell_out", -- spell input and output values in words | ||
["On"] = "opt_spell_in, opt_spell_out, opt_spell_upper", -- same, with first letter of first word in result uppercase | ["On"] = "opt_spell_in, opt_spell_out, opt_spell_upper", -- same, with first letter of first word in result uppercase | ||
}, | }, | ||
-- 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 | |||
} | } | ||
Line 331: | Line 330: | ||
all_categories = all_categories, | all_categories = all_categories, | ||
all_messages = all_messages, | all_messages = all_messages, | ||
currency = { ['$'] = true, ['£ | currency = { ['$'] = true, ['£'] = true }, | ||
customary_units = customary_units, | customary_units = customary_units, | ||
disp_joins = disp_joins, | disp_joins = disp_joins, | ||
Line 338: | Line 337: | ||
eng_scales = eng_scales, | eng_scales = eng_scales, | ||
ranges = ranges, | ranges = ranges, | ||
} | } |