Module:Convert/text: Difference between revisions

m (1 revision imported)
 
(update from sandbox per Template talk:Convert#Module version 28)
Line 6: Line 6:
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.
['Q'] = { exponent = 30, name = 'quetta',                },
['R'] = { exponent = 27, name = 'ronna',                  },
['Y'] = { exponent = 24, name = 'yotta',                  },
['Y'] = { exponent = 24, name = 'yotta',                  },
['Z'] = { exponent = 21, name = 'zetta',                  },
['Z'] = { exponent = 21, name = 'zetta',                  },
Line 28: Line 30:
['z'] = { exponent =-21, name = 'zepto',                  },
['z'] = { exponent =-21, name = 'zepto',                  },
['y'] = { exponent =-24, name = 'yocto',                  },
['y'] = { exponent =-24, name = 'yocto',                  },
['r'] = { exponent =-27, name = 'ronto',                  },
['q'] = { exponent =-30, name = 'quecto',                },
}
}


Line 82: Line 86:
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_altitude  = { '"$1" needs an integer'                      , 'invalid altitude'    , 'option',  'invalid_altitude'    },
cvt_bad_frac      = { '"$1" needs 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'    },
Line 109: Line 114:
["sqbr-nbsp"]  = { " [" , "]" },
["sqbr-nbsp"]  = { " [" , "]" },
["comma"]      = { ", "      , "" , ", " },
["comma"]      = { ", "      , "" , ", " },
["semicolon"]  = { "; "      , ""  },
["slash-sp"]  = { " / "    , "" , wantname = true },
["slash-sp"]  = { " / "    , "" , wantname = true },
["slash-nbsp"] = { " / ", "" , wantname = true },
["slash-nbsp"] = { " / ", "" , wantname = true },
Line 143: Line 149:
["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 149: Line 155:
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 176: Line 180:
["abbr"] = "abbr",
["abbr"] = "abbr",
["adj"] = "adj",
["adj"] = "adj",
["altitude_ft"] = "altitude_ft",
["altitude_m"] = "altitude_m",
["comma"] = "comma",
["comma"] = "comma",
["debug"] = "debug",
["debug"] = "debug",
Line 183: Line 189:
["lang"] = "lang",
["lang"] = "lang",
["lk"] = "lk",
["lk"] = "lk",
["near"] = "near",
["order"] = "order",
["order"] = "order",
["qid"] = "qid",
["qid"] = "qid",
Line 203: Line 208:
-- (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"
--    ["values"] = "opt_values"
-- As a result, if the template uses abbr=comma, Module:Convert sets:
-- As a result, if the template uses abbr=values, Module:Convert sets:
--    parms["opt_nocomma"] = true
--    parms["opt_values"] = 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 211: Line 216:
-- 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 "$"
["$"] = 'TEXT',                    -- TEXT 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 229: Line 232:
},
},
["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 "&nbsp;" 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 241:
["ri3"] = "opt_ri=3",          -- round input with precision = 3
["ri3"] = "opt_ri=3",          -- round input with precision = 3
},
},
["altitude_ft"] = 'INTEGER',
["altitude_m"] = 'INTEGER',
["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 253:
},
},
["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 262: Line 260:
["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 270: Line 266:
["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"
["semicolon"] = "semicolon",   -- join: ';'
["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 281: Line 275:
["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
["frac"] = 'INTEGER',
-- input=x is handled as a special case: x should be <value><space><unitcode> or <wikidata-property-id>
["input"] = 'TEXT',                -- TEXT 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 292: Line 286:
["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 300: Line 291:
["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.
["qid"] = 'TEXT',                  -- TEXT should be a Wikidata Q item identifier
-- qual=x is handled as a special case: x should be a Wikidata Q item identifier.
["qual"] = 'TEXT',                  -- TEXT 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 310: Line 301:
["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
["sigfig"] = 'INTEGER',
["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"
["debug"] = "opt_sortable_on, opt_sortable_debug", -- |sortable=debug is the same as |sortable=on|debug=yes
},
},
["sp"] = {
["sp"] = {
Line 325: Line 315:
["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
["us"] = "opt_sp_us",          -- use U.S. spelling; same as sp=us so spell=us also works
},
},
-- stylein=x is handled as a special case: x can be any text
["stylein"] = 'TEXT',
-- styleout=x is handled as a special case: x can be any text
["styleout"] = 'TEXT',
-- tracking=x is handled as a special case: x can be any text
["tracking"] = 'TEXT',
}
 
local titles = {
["frac"] = "Fraction/styles.css",
["sfrac"] = "Sfrac/styles.css",
}
}


Line 335: Line 331:
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,
Line 342: Line 338:
eng_scales = eng_scales,
eng_scales = eng_scales,
ranges = ranges,
ranges = ranges,
titles = titles,
}
}
Anonymous user