Module:Convert/text
Appearance
![]() | This module is rated as ready for general use. It has reached a mature form and is thought to be relatively bug-free and ready for use wherever appropriate. It is ready to mention on help pages and other Wikipedia resources as an option for new users to learn. To reduce server load and bad output, it should be improved by sandbox testing rather than repeated trial-and-error editing. |
![]() | This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
![]() | This module can only be edited by administrators because it is transcluded onto one or more cascade-protected pages. |
![]() | This Lua module is used on approximately 1,330,000 pages, or roughly 2% of all pages. To avoid major disruption and server load, any changes should be tested in the module's /sandbox or /testcases subpages, or in your own module sandbox. The tested changes can be added to this page in a single edit. Consider discussing changes on the talk page before implementing them. |
This page defines text used by Module:Convert. All documentation (from Module:Convert/doc) is at that module. The text includes messages and categories output by the module, and parameters used as input.
This is a separate module to simplify translation for use on another wiki. For example, see translation_table
and the other tables in bn:Module:Convert/text. Documentation is at Template:Convert/Transwiki guide.
Any changes should first be tested at Module:Convert/text/sandbox—see Template:Convert/testcases#Sandbox testcases.
--[[ Text (messages) used by Module:Convert.
Nearly all of the text displayed by Module:Convert is in this module
(apart from the unit definitions in Module:Convert/data).
This is in a separate module to simplify translation for use on another wiki.
]]
-- Names when using engineering notation (a prefix of "eN" where N is a number).
-- key = { "name", "linked name, if link wanted" }
local eng_scales = {
["3"] = { "thousand", exponent = 3 },
["6"] = { "million", exponent = 6 },
["9"] = { "billion", "[[1000000000 (number)|billion]]", exponent = 9 },
["12"] = { "trillion", "[[1000000000000 (number)|trillion]]", exponent = 12 },
["15"] = { "quadrillion", "[[1000000000000000 (number)|quadrillion]]", exponent = 15 },
}
local all_categories = {
general = '[[Category:Convert error]]',
mismatch = '[[Category:Convert dimension mismatch]]',
option = '[[Category:Convert unknown option]]',
unknown = '[[Category:Convert unknown unit]]',
}
-- Following puts wanted style around each unit code marked like '...%{ft%}...'.
local unitcode_regex = '%%([{}])'
local unitcode_replace = { ['{'] = '<code style="background:transparent;">', ['}'] = '</code>' }
local all_messages = {
-- All output messages.
-- One of the following prefixes is inserted before each message.
cvt_prefix_error = '<span style="color:black; background-color:orange;">[[Module talk:Convert|Conversion error]]:',
cvt_prefix_warning = '<span style="color:black; background-color:peachpuff;">[[Module talk:Convert|Conversion warning]]:',
-- Each of following messages is a table:
-- { [1] = 'error text',
-- [2] = 'category key',
-- regex = gsub_regex,
-- replace = gsub_table,
-- warning = true, -- omit for an error message
-- }
cvt_bad_default = { 'Unit "%s" has an invalid default', 'unknown' },
cvt_bad_num = { 'Value "%s" must be a number', 'general' },
cvt_bad_num2 = { 'Second value "%s" must be a number', 'general' },
cvt_bad_prec = { 'Parameter precision "%s" must be an integer', 'general' },
cvt_bad_sigfig = { 'Parameter sigfig "%s" must be an integer', 'general' },
cvt_bad_unit = { 'Unit "%s" is invalid here', 'unknown' },
cvt_big_prec = { 'Precision "%s" is too large', 'general' },
cvt_bug_convert = { 'Bug: Cannot convert between specified units', 'general' },
cvt_empty_option = { 'Ignored empty option "%s"', 'option', warning = true },
cvt_invalid_num = { 'Number is too large or too small', 'general' },
cvt_mismatch = { 'Cannot convert "%s" to "%s"', 'mismatch' },
cvt_no_default = { 'Unit "%s" has no default output unit', 'unknown' },
cvt_no_num = { 'Need value', 'general' },
cvt_no_num2 = { 'Need second value', 'general' },
cvt_no_unit = { 'Need name of unit', 'unknown' },
cvt_unknown_option = { 'Ignored unknown option "%s"', 'option', warning = true },
cvt_should_be = { '%s', 'general', regex = unitcode_regex, replace = unitcode_replace },
cvt_sigfig_pos = { 'sigfig "%s" must be positive', 'general' },
cvt_unknown = { 'Unit "%s" is not known', 'unknown' },
}
local disp_joins = {
['or'] = { ' or ' , '' },
['sqbr-sp'] = { ' [' , ']' },
['sqbr-nbsp'] = { ' [' , ']' },
['comma'] = { ', ' , '' },
['slash-sp'] = { ' / ' , '' },
['slash-nbsp'] = { ' / ', '' },
['slash-nosp'] = { '/' , '' },
['b'] = { ' (' , ')' },
['br'] = { '<br/>' , '' },
}
local range_types = { -- text to separate values in a range
['by'] = ' by ',
['-'] = '–',
['to about'] = ' to about ',
['and'] = { ['off'] = ' and ', ['on'] = ' and ', exception = true },
['or'] = { ['off'] = ' or ' , ['on'] = ' or ' , exception = true },
['to'] = { ['off'] = ' to ' , ['on'] = ' to ' , exception = true },
['xx'] = ' × ',
['to(-)'] = { ['off'] = ' to ', ['on'] = '–' },
['+/-'] = { ['off'] = ' ± ', ['on'] = ' ± ', ['adj'] = ' ± ' },
['x'] = { ['off'] = ' by ', ['on'] = ' × ', is_range_x = true },
}
local range_aliases = {
['and(-)'] = 'and',
['&'] = 'and',
['–'] = '-',
['–'] = '-',
['to-'] = 'to(-)',
['×'] = 'x',
['±'] = '+/-',
}
local local_option_name = {
-- ["en name used in this module"] = "local text for option name"
["abbr"] = "abbr",
["adj"] = "adj",
["disp"] = "disp",
["lk"] = "lk",
["sing"] = "sing",
}
-- Convention: parms.opt_xxx refers to an option that is set here
-- (not intended to be set by the template which invokes this module).
-- Example: The option named "abbr" in this module can be assigned the value
-- "comma" at en.wiki (abbr=comma). In that case, this script sets:
-- parms["opt_nocomma"] = true
-- parms["abbr"] = nil
-- The last line means that parms.abbr will be nil, or will have
-- one of the values that do not start with "opt_".
local en_option_value = {
["abbr"] = {
-- ["local text for option value"] = "en value used in this module"
["comma"] = "opt_nocomma", -- no numsep in input or output numbers
["in"] = "in", -- use symbol for LHS unit
["mos"] = "mos", -- in range, repeat the input unit (no longer used)
["none"] = "off", -- old name for "off"
["off"] = "off", -- use name for all units
["on"] = "on", -- use symbol for all units
["out"] = "out", -- use symbol for RHS unit (default)
["values"] = "opt_values", -- show only input and output numbers, not units
["~"] = "opt_extra", -- show input unit symbol as well as name
},
["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_adj_mid", -- adj=on with user-specified text before input unit
["nocomma"] = "opt_nocomma", -- no numsep in input or output numbers
["off"] = "", -- ignored (adj=off is the default)
["on"] = "opt_adjectival", -- unit name is singular and hyphenated
["pre"] = "opt_one_preunit", -- user-specified text before input unit
["ri1"] = "ri1", -- round input with precision = 1
["ri2"] = "ri2", -- round input with precision = 2
["ri3"] = "ri3", -- round input with precision = 3
},
["disp"] = {
["/"] = "slash", -- join: '/'
["2"] = "opt_output_only",
["5"] = "opt_round5", -- round output value to nearest 5
["b"] = "b", -- join: '(...)'
["br"] = "br", -- join: '<br/>'
["comma"] = "comma", -- join: ','
["flip"] = "opt_flip", -- reverse order of input/output
["flip5"] = "special_flip5", -- combine disp=flip + disp=5
["nocomma"] = "opt_nocomma", -- no numsep in input or output numbers
["number"] = "opt_output_number_only",
["or"] = "or", -- join: 'or'
["out"] = "opt_output_only",
["output number only"] = "opt_output_number_only",
["output only"] = "opt_output_only",
["preunit"] = "opt_two_preunits", -- user-specified text before input and output units
["s"] = "slash", -- join: '/'
["slash"] = "slash", -- join: '/'
["sqbr"] = "sqbr", -- join: '[...]'
["table"] = "opt_table", -- output suitable for a table cell with align="right"
["tablecen"] = "opt_tablecen", -- output suitable for a table cell with align="center"
["u2"] = "opt_output_unit_only",
["unit"] = "opt_input_unit_only",
["unit2"] = "opt_output_unit_only",
["x"] = "x", -- join: 'by...×'
},
["lk"] = {
["in"] = "in", -- link LHS unit name or symbol
["off"] = "", -- ignored (lk=off is the default)
["on"] = "on", -- link all unit names or symbols
["out"] = "out", -- link RHS unit name or symbol
},
}
return {
all_categories = all_categories,
all_messages = all_messages,
disp_joins = disp_joins,
en_option_value = en_option_value,
eng_scales = eng_scales,
local_option_name = local_option_name,
range_aliases = range_aliases,
range_types = range_types,
}