모듈:변환
Module:Convert| 이 모듈을 복사하고 다른 Wiki에서 사용하도록 수정하는 방법은 변환 템플릿을 복사하는 방법을 참조하십시오. |
| 이 루아 모듈은 전체 페이지의 약 2%인 1,160,000페이지 이상에 사용된다. 큰 중단과 서버 로드를 방지하려면 모듈의 /샌드박스 또는 /테스트케이스 하위 페이지 또는 사용자 고유의 모듈 샌드박스에서 변경 사항을 테스트해야 한다.테스트한 변경사항은 한 번의 편집으로 이 페이지에 추가될 수 있다.변경 사항을 구현하기 전에 토크 페이지에서 논의해 보십시오. |
| 이 모듈은 페이지 보호의 대상이 된다.그것은 매우 많은 페이지들이 사용하고 있거나 매우 자주 교체되는 매우 눈에 잘 띄는 모듈이다.공공 기물 파손이나 실수가 많은 페이지에 영향을 미치고 사소한 편집이라도 서버에 상당한 부하를 줄 수 있기 때문에 편집으로부터 보호된다. |
| 이 모듈은 다음과 같은 다른 모듈에 의존한다. |
| 이 모듈은 TemplateStyles를 사용한다. |
이 모듈은 한 측정 단위에서 다른 측정 단위로 값을 변환한다.예를 들면 다음과 같다.
{{convert 123 lb kg}}→ 123파운드(56kg)
모듈은 템플릿을 사용하여 호출된다. 템플릿에 전달된 파라미터는 변환 수행 방법을 제어하기 위해 이 모듈에 의해 사용된다.예를 들어, 단위는 약어(예:kg) 또는 이름으로 표시(예:kilogram)) 및 출력 값은 지정된 정밀도로 반올림할 수 있다.사용법에 대한 내용은 도움말: 도움말을 참조하십시오.개종하다.
템플릿 및 모듈
이 모듈을 호출하는 템플릿:
다음 모듈이 필요함:
- 모듈:전환 – (이 모듈) 코드를 유닛 변환
- 모듈: 변환/데이터 – 장치 정의
- 모듈:변환/텍스트 – 문자 메시지, 매개 변수 이름 및 값
다음 모듈은 선택 사항이며 필요한 경우에만 사용되며, 모듈이 있는 경우에만 사용하십시오.
- 모듈:전환/추가 – 추가(임시) 장치 정의, 모듈에 장치가 없는 경우 사용:변환/데이터
- 모듈:ConvertNumeric – 입력 값을 단어로 철자하는 코드(영어만 지원됨, vi: 참조):모듈:수치 변환)
Wikidata 지원을 위해서는 다음과 같은 모듈이 필요하다.
사용 가능한 도움말 페이지:
- 도움말:전환 – 개요
- 도움말:메시지 변환 – 오류 및 경고 메시지 설명, 모듈이 다른 Wiki에 복사될 때 필요한 메시지 링크
- 도움말:단위 변환 – 단위 개요
변환 오류가 포함된 페이지는 지정된 네임스페이스(기본적으로 아티클)에 있는 경우 다음 숨겨진 카테고리에 추가된다.
단위는 단위 마스터 목록의 위키텍스트에 정의되어 있다.
- 모듈:변환/문서/변환 데이터 – 단위 정의의 마스터 목록
- 모듈:전환/메이크업 – wikitxt를 마스터 목록에서 루아로 변환
- 모듈 토크:변환/메이크업 – 결과를 결합하고 텍스트를 모듈에 복사:변환/데이터
모듈:변환/데이터는 변환 모듈을 사용하여 모든 페이지로 변환되므로, 해당 모듈에서 새 유닛을 실험하는 데는 상당한 오버헤드가 수반될 수 있다.모듈:변환/추가 모듈은 메인 데이터 모듈에 정의되지 않은 단위가 있는 페이지에서만 변환되는 대안이다.
모듈 토크:모든 장치 링크를 확인할 수 있도록 변환/표시하십시오.
샌드박스
변경할 때 현재 모듈을 샌드박스 페이지로 복사한 다음 샌드박스 복사본을 편집하십시오.
- 모듈:변환 • 모듈:변환/샌드박스 • 동일한 내용
- 모듈:변환/데이터 • 모듈:변환/데이터/샌드박스 • 동일한 내용
- 모듈:변환/텍스트 • 모듈:변환/텍스트/샌드박스 • 동일한 내용
- 모듈:변환/추가 • 모듈:변환/추가/샌드박스 • 동일한 내용
- 모듈:변환/위키다타 • 모듈:변환/위키다타/샌드박스 • 동일한 내용
- 모듈:변환/위키다타/데이터 • 모듈:변환/위키다타/데이터/샌드박스 • 동일한 내용
다음 템플릿을 사용하여 결과를 테스트하십시오(예:{{convert/sandbox 123 lb kg}}):
템플릿:변환/샌드박스 호출 모듈:매개 변수를 사용하여 변환/샌드박스 sandbox=sandbox일반 모듈이 아닌 샌드박스 모듈을 사용하도록 변환하는 원인이 된다.
변환모듈의 편집 결과를 테스트할 때는 다음을 사용해야 한다.
- 템플릿:컨버터/테스트케이스#샌드박스 테스트케이스 – 테스트케이스 링크
- 모듈:변환/테스터 – 고정 텍스트와 템플릿 출력을 비교하여 테스트를 실행하는 모듈
시험 결과를 보기 전에 시험장 페이지를 저장할 필요는 없다.예: 템플릿:변환/시험장/샌드박스4는 시험을 변경하기 위해 편집할 수 있다.해당 페이지를 계속 편집하는 동안 ""Template talk:Convert/testcases/sandbox4 (따옴표 없이)"를 "템플릿으로 페이지 미리 보기" 아래의 페이지 제목 상자에 붙여넣은 다음 "미리보기 표시"를 클릭하십시오.
배열
이 모듈을 호출하는 템플릿은 모듈을 구성하는 옵션을 정의할 수 있다.예를 들면 다음과 같다.
{{#invoke:convert convert numdot=, numsep=.}}
- 소수점 표시는 쉼표로, 수천 개의 구분 기호는 점으로 설정한다.
기본값을 사용하는 기타 옵션은 다음과 같다.
maxsigfig=14– 최대 중요 수치 수nscat=0– 오류 또는 경고가 페이지에 범주를 추가하는 네임스페이스(상호 구분)warnings=0– 0 (0) 경고 비활성화, 1은 중요 경고 표시, 2는 모든 경고 표시
템플릿의 옵션은 모듈의 샌드박스 버전을 사용하도록 지정할 수 있다.지정된 경우 등호 부호의 오른쪽에 있는 텍스트는 각 샌드박스 모듈에 대한 하위 페이지 이름이 되어야 한다.
sandbox=sandbox– 정상 작동을 위해 생략
입력 매개변수와 출력 메시지 및 카테고리에 사용되는 모든 텍스트를 사용자 정의할 수 있다.예를 들어 enwiki에서 옵션 lk=on각 표시된 장치를 해당 기사에 연결하는 데 사용할 수 있다.The "lk", 그리고 "on"는 원하는 텍스트로 대체될 수 있다.또한, 입력과 출력 번호는 포맷이 가능하고 로컬 언어로 숫자를 사용할 수 있다.자세한 내용은 번역 가이드를 참조하십시오.
하기 위해서
Wikidata에 액세스할 수 있는 모듈을 문서화하십시오!
모듈 버전 기록
- Version 1 December 2013
- Version 2 January 2014
- Version 3 April 2014
- Version 4 July 2014
- Version 5 September 2014
- Version 6 November 2014
- Version 7 December 2014
- Version 8 February 2015
- Version 9 February 2015
- Version 10 May 2015
- Version 11 June 2015
- Version 12 August 2015
- Version 13 March 2016
- Version 14 June 2016 (introduced handling of Wikidata)
- Version 15 September 2016
- Version 16 January 2017
- Version 17 May 2017
- Version 18 July 2017
- Version 19 August 2017
- Version 20 December 2017 (changed symbols for dot and micro)
- Version 21 January 2018 (remove many deprecated options)
- Version 22 February 2018 (many unit link changes)
- Version 23 June 2018 (warnings for ignored numbered parameters; adj=pre/disp=preunit changes; currency units removed)
- Version 24 May 2019 (hidden sort key uses data-sort-value; avoid using the extra data module)
- Version 25 May 2021 (use templatestyles Template:Fraction/styles.css or Template:Sfrac/styles.css for fractions)
- Version 26 June 2021 (many unit link changes)
- Version 27 February 2022 (enhance Mach parameters; use spaced en dash when needed; unit tweaks)
-- Convert a value from one unit of measurement to another. -- Example: {{convert 123 lb kg}} --> 123 pounds (56 kg) -- See [[:en:Template:Convert/Transwiki guide]] if copying to another wiki. local MINUS = '−' -- Unicode U+2212 MINUS SIGN (UTF-8: e2 88 92) local abs = math.abs local floor = math.floor local format = string.format local log10 = math.log10 local ustring = mw.ustring local ulen = ustring.len local usub = ustring.sub -- Configuration options to keep magic values in one location. -- Conversion data and message text are defined in separate modules. local config, maxsigfig local numdot -- must be '.' or ',' or a character which works in a regex local numsep, numsep_remove, numsep_remove2 local data_code, all_units local text_code local varname -- can be a code to use variable names that depend on value local from_en_table -- to translate an output string of en digits to local language local to_en_table -- to translate an input string of digits in local language to en -- Use translation_table in convert/text to change the following. local en_default -- true uses lang=en unless convert has lang=local or local digits local group_method = 3 -- code for how many digits are in a group local per_word = 'per' -- for units like "liters per kilometer" local plural_suffix = 's' -- only other useful value is probably '' to disable plural unit names local omitsep -- true to omit separator before local symbol/name -- All units should be defined in the data module. However, to cater for quick changes -- and experiments, any unknown unit is looked up in an extra data module, if it exists. -- That module would be transcluded in only a small number of pages, so there should be -- little server overhead from making changes, and changes should propagate quickly. local extra_module -- name of module with extra units local extra_units -- nil or table of extra units from extra_module -- Some options in the invoking template can set variables used later in the module. local currency_text -- for a user-defined currency symbol: {{convert 12 $/ha $=€}} (euro replaces dollar) local function from_en(text) -- Input is a string representing a number in en digits with '.' decimal mark, -- without digit grouping (which is done just after calling this). -- Return the translation of the string with numdot and digits in local language. if numdot ~= '.' then text = text:gsub('%.', numdot) end if from_en_table then text = text:gsub('%d', from_en_table) end return text end local function to_en(text) -- Input is a string representing a number in the local language with -- an optional numdot decimal mark and numsep digit grouping. -- Return the translation of the string with '.' mark and en digits, -- and no separators (they have to be removed here to handle cases like -- numsep = '.' and numdot = ',' with input "1.234.567,8"). if to_en_table then text = ustring.gsub(text, '%d', to_en_table) end if numsep_remove then text = text:gsub(numsep_remove, '') end if numsep_remove2 then text = text:gsub(numsep_remove2, '') end if numdot ~= '.' then text = text:gsub(numdot, '.') end return text end local function decimal_mark(text) -- Return ',' if text probably is using comma for decimal mark, or has no decimal mark. -- Return '.' if text probably is using dot for decimal mark. -- Otherwise return nothing (decimal mark not known). if not text:find('[.,]') then return ',' end text = text:gsub('^%-', ''):gsub('%+%d+/%d+