Постоянно защищенный модуль
Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску
Документация по модулю [ просмотреть ] [ изменить ] [ историю ] [ очистить ]

Этот модуль преобразует значение из одной единицы измерения в другую. Например:

  • {{convert|123|lb|kg}} → 123 фунта (56 кг)

Модуль вызывается с использованием шаблона - параметры, передаваемые в шаблон, используются этим модулем для управления тем, как выполняется преобразование. Например, единицы могут быть сокращены (например kg) или отображаться как имена (например kilogram), а выходное значение может быть округлено до указанной точности. Для получения информации об использовании см. Help: Convert .

Шаблоны и модули

Шаблоны, вызывающие этот модуль:

Требуются следующие модули:

Следующие модули являются необязательными и используются только в случае необходимости и при наличии модуля:

Для поддержки Викиданных необходимы следующие модули:

Доступны следующие справочные страницы:

Страница, содержащая ошибку преобразования, добавляется в следующую скрытую категорию при условии, что страница находится в указанном пространстве имен (статьи по умолчанию):

Единицы определены в викитексте главного списка единиц.

Модуль: Convert / data включается на каждую страницу с помощью модуля convert, поэтому эксперименты с новым модулем в этом модуле потребуют значительных накладных расходов. Модуль: / дополнительный Преобразовать модулем является альтернативой , которая только на страницах включена через с блоком , который не определен в основном модуле данных.

Обсуждение модуля: Convert / show перечисляет все ссылки на модули, чтобы их можно было проверить.

Песочница

При внесении изменений скопируйте текущие модули на страницы песочницы, затем отредактируйте копии песочницы:

  • Модуль: КонвертироватьМодуль: Конвертировать / песочницаДругой ( различие )
  • Модуль: Convert / data • Модуль: Convert / data / sandbox • different ( diff )
  • Модуль: Convert / text • Модуль: Convert / text / sandbox • different ( diff )
  • Модуль: Convert / extra • Модуль: Convert / extra / sandbox • different ( diff )
  • Модуль: Convert / wikidata • Модуль: Convert / wikidata / sandbox • другой ( diff )
  • Модуль: Convert / wikidata / data • Модуль: Convert / wikidata / data / sandbox • тот же контент

Используйте следующий шаблон для проверки результатов (пример {{convert/sandbox|123|lb|kg}}):

  • Шаблон: Конвертировать / песочница

Шаблон: Convert / sandbox вызывает Module: Convert / sandbox с параметром, |sandbox=sandboxкоторый заставляет convert использовать модули песочницы, а не обычные модули.

Следующее следует использовать для проверки результатов редактирования модулей преобразования.

  • Шаблон: Convert / testcases # Sandbox testcases - ссылки на тестовые наборы
  • Модуль: Convert / tester - модуль для запуска тестов путем сравнения вывода шаблона с фиксированным текстом.

Перед просмотром результатов тестирования нет необходимости сохранять страницу тестовых наборов. Например, Template: Convert / testcases / sandbox4 можно отредактировать, чтобы изменить тесты. Продолжая редактировать эту страницу, вставьте « Template talk:Convert/testcases/sandbox4» (без кавычек) в поле заголовка страницы в разделе «Предварительный просмотр страницы с этим шаблоном», затем нажмите «Показать предварительный просмотр».

Конфигурация

Шаблон, вызывающий этот модуль, может определять параметры для настройки модуля. Например:

  • {{#invoke:convert|convert|numdot=,|numsep=.}}
Устанавливает десятичный знак в виде запятой, а разделитель тысяч - в виде точки.

Другие параметры со значениями по умолчанию:

  • |maxsigfig=14 - максимальное количество значащих цифр
  • |nscat=0- пространства имен (через запятую), в которых ошибка или предупреждение добавляют категорию к странице
  • |warnings=0- 0 (ноль) отключает предупреждения; 1 показаны важные предупреждения; 2 показаны все предупреждения

Опция в шаблоне может указывать, что будут использоваться версии модулей для песочницы. Если указано, текст справа от знака равенства должен быть именем подстраницы для каждого модуля песочницы.

  • |sandbox=sandbox - опустить для нормальной работы

Весь текст, используемый для входных параметров и для выходных сообщений и категорий, может быть изменен. Например, в enwiki эту опцию |lk=onможно использовать для привязки каждого отображаемого блока к его статье. « lk» И « on» можно заменить любым желаемым текстом. Кроме того, числа ввода и вывода могут быть отформатированы и могут использовать цифры на местном языке. См. Руководство по переводу для получения дополнительной информации.

Сделать

Задокументируйте модули для доступа к Викиданным!

История версий модуля

  • Версия 1, декабрь 2013 г.
  • Версия 2, январь 2014 г.
  • Версия 3, апрель 2014 г.
  • Версия 4, июль 2014 г.
  • Версия 5, сентябрь 2014 г.
  • Версия от 6 ноября 2014 г.
  • Версия 7, декабрь 2014 г.
  • Версия от 8 февраля 2015 г.
  • Версия от 9 февраля 2015 г.
  • Версия от 10 мая 2015 г.
  • Версия от 11 июня 2015 г.
  • Версия от 12 августа 2015 г.
  • Версия от 13 марта 2016 г.
  • Версия от 14 июня 2016 г. (добавлена ​​обработка Викиданных)
  • Версия от 15 сентября 2016 г.
  • Версия от 16 января 2017 г.
  • Версия от 17 мая 2017 г.
  • Версия от 18 июля 2017 г.
  • Версия от 19 августа 2017 г.
  • Версия от 20 декабря 2017 г. (изменены символы точки и микро)
  • Версия от 21 января 2018 г. (удалите многие устаревшие параметры)
  • Версия от 22 февраля 2018 г. (много изменений в ссылках на объекты)
  • Версия от 23 июня 2018 г. (предупреждения для игнорируемых числовых параметров; adj = pre / disp = preunit changes; денежные единицы удалены)
  • Версия от 24 мая 2019 г. (скрытый ключ сортировки использует значение сортировки данных; избегайте использования дополнительного модуля данных)

- Преобразование значения из одной единицы измерения в другую.- Пример: {{convert | 123 | lb | kg}} -> 123 фунта (56 кг)- См. [[: En: Template: Convert / Transwiki guide]] при копировании в другую вики.local MINUS = '-' - Unicode U + 2212 МИНУСНЫЙ ЗНАК (UTF-8: e2 88 92)местный абс = math.absлокальный этаж = math.floorлокальный формат = строка.форматлокальный журнал10 = math.log10местный ustring = mw.ustringместный улен = ustring.lenместный usub = ustring.sub- Параметры конфигурации для хранения магических ценностей в одном месте.- Данные преобразования и текст сообщения определены в отдельных модулях.локальная конфигурация, maxsigfiglocal numdot - должно быть '.' или ',' или символ, который работает в регулярном выраженииместный номер numsep, numsep_remove, numsep_remove2локальный код_данных, all_unitsлокальный текстовый_кодlocal varname - может быть кодом для использования имен переменных, которые зависят от значенияlocal from_en_table - для перевода строки вывода цифр en на местный языкlocal to_en_table - для перевода строки ввода цифр на местном языке в en- Используйте translation_table в convert / text, чтобы изменить следующее.local en_default - true использует lang = en, если convert не имеет lang = local или local цифрыlocal group_method = 3 - код количества цифр в группеlocal per_word = 'per' - для таких единиц, как "литры на километр"local plural_suffix = 's' - вероятно, только другое полезное значение '' отключит имена множественного числаlocal omitsep - истина, чтобы опустить разделитель перед локальным символом / именем- Все единицы должны быть определены в модуле данных. Однако для быстрых изменений- и эксперименты, любая неизвестная единица ищется в дополнительном модуле данных, если он существует.- Этот модуль будет включен только в небольшое количество страниц, поэтому должен быть- небольшая нагрузка на сервер из-за внесения изменений, и изменения должны распространяться быстро.local extra_module - имя модуля с дополнительными модулямиlocal extra_units - ноль или таблица дополнительных единиц из extra_module- Некоторые параметры в вызывающем шаблоне могут устанавливать переменные, которые будут использоваться позже в модуле.local currency_text - для определяемого пользователем символа валюты: {{convert | 12 | $ / ha | $ = €}} (евро заменяет доллар)локальная функция from_en (текст)- Ввод - это строка, представляющая число в виде en-цифр с '.' десятичный знак- без группировки цифр (что делается сразу после вызова).- Вернуть перевод строки с числом и цифрами на местном языке.если numdot ~ = '.' тогдатекст = текст: gsub ('%.', число)конецесли from_en_table, тотекст = текст: gsub ('% d', from_en_table)конецтекст возвратаконецлокальная функция to_en (текст)- Ввод - это строка, представляющая число на местном языке с- необязательный десятичный знак numdot и группировка цифр numsep.- Вернуть перевод строки с помощью '.' отметка и en-цифры,- и никаких разделителей (их нужно удалить здесь, чтобы обрабатывать такие случаи, как- numsep = '.' и numdot = ',' с вводом «1.234.567,8»).если to_en_table тотекст = ustring.gsub (текст, '% d', to_en_table)конецесли numsep_remove, тотекст = текст: gsub (numsep_remove, '')конецесли numsep_remove2, тотекст = текст: gsub (numsep_remove2, '')конецесли numdot ~ = '.' тогдатекст = текст: gsub (число, '.')конецтекст возвратаконецлокальная функция decimal_mark (текст)- Верните ',' если в тексте, вероятно, используется запятая для десятичного знака или нет десятичного знака.-- Возвращаться '.' если в тексте, вероятно, используется точка для десятичного знака.- В противном случае ничего не вернуть (десятичный знак неизвестен).если не текст: find ('[.,]') затем return ',' endtext = text: gsub ('^% -', ''): gsub ('% +% d + /% d + $', ''): gsub ('[Ee]% -?% d + $', '')местное десятичное число =текст: match ('^ 0? ([.,])% d + $') илитекст: match ('% d ([.,])% d?% d? $') илитекст: совпадение ('% d ([.,])% d% d% d% d + $')если десятичный, то верните десятичный конецесли текст: совпадение ('%.% d +%.'), то верните ',' конецесли текст: match ('%,% d +,'), то вернуть '.' конецконецlocal add_warning, with_separator - форвардные объявлениялокальная функция to_en_with_check (текст, параметры)- Версия to_en () для вики, использующая numdot = ',' и numsep = '.' Проверять- текст (входной номер в виде строки), который мог быть скопирован из enwiki.- Например, в "1.234" символ "." может быть десятичным знаком или разделителем групп.- Из вики.если to_en_table тотекст = ustring.gsub (текст, '% d', to_en_table)конецесли decimal_mark (текст) == '.' тогдаместный оригинал = текстtext = text: gsub (',', '') - например, интерпретировать "1,234,5" как значение enwikiесли пармсы, тоadd_warning (parms, 0, 'cvt_enwiki_num', исходный, with_separator ({}, текст))конецещеесли numsep_remove, тотекст = текст: gsub (numsep_remove, '')конецесли numsep_remove2, тотекст = текст: gsub (numsep_remove2, '')конецесли numdot ~ = '.' тогдатекст = текст: gsub (число, '.')конецконецтекст возвратаконецлокальная функция omit_separator (id)- Вернуть истину, если перед идентификатором не должно быть разделителя (символ или имя объекта).- Для zhwiki не должно быть разделителя, если id использует локальные символы.- Следующий кладж должен быть достаточным испытанием.если омицеп тоif id: sub (1, 2) == '- {' then - для "- {...} -" варианта языка содержаниявернуть истинуконецесли id: byte ()> 127, тогдасначала местные = usub (id, 1, 1)если сначала ~ = 'Å' и сначала ~ = '°' и сначала ~ = 'µ', товернуть истинуконецконецконецreturn id: sub (1, 1) == '/' - без разделителя перед такими единицами, как "/ ha"конецlocal spell_module - имя модуля, который может записывать числаlocal speller - функция из этого модуля для обработки орфографии (устанавливается при необходимости)local wikidata_module, wikidata_data_module - названия модулей Викиданныхlocal wikidata_code, wikidata_data - таблицы, экспортированные из этих модулей (установить при необходимости)локальная функция set_config (аргументы)- Установите параметры конфигурации из шаблона #invoke или по умолчанию.config = argsmaxsigfig = config.maxsigfig или 14 - максимальное количество значащих цифрлокальный модуль_данных, текст_модульлокальная песочница = config.sandbox и ('/' .. config.sandbox) или ''data_module = "Модуль: Convert / data" .. песочницаtext_module = "Модуль: Convert / text" .. песочницаextra_module = "Module: Convert / extra" .. песочницаwikidata_module = "Модуль: Convert / wikidata" .. песочницаwikidata_data_module = "Модуль: преобразование / wikidata / data" .. песочницаspell_module = "Модуль: ConvertNumeric"data_code = mw.loadData (модуль_данных)text_code = mw.loadData (текстовый_модуль)all_units = data_code.all_unitsлокальный перевод = text_code.translation_tableесли перевод тоnumdot = translation.numdotnumsep = translation.numsepесли numdot == ',' и numsep == '.' тогдаесли text_code.all_messages.cvt_enwiki_num, тоto_en = to_en_with_checkконецконецесли translation.group, тоgroup_method = translation.groupконецесли translation.per_word, тоper_word = translation.per_wordконецесли translation.plural_suffix, тоplural_suffix = translation.plural_suffixконецvarname = translation.varnamefrom_en_table = translation.from_enlocal use_workaround = trueесли use_workaround, то- 2013-07-05 исправление ошибки путем создания копии требуемой таблицы.- mw.ustring.gsub не работает с таблицей (to_en_table) в качестве замены,- если доступ к таблице осуществляется через mw.loadData.локальный источник = translation.to_enесли источник, тоto_en_table = {}для k, v попарно (источник) делаемto_en_table [k] = vконецконецещеto_en_table = translation.to_enконецесли translation.lang == 'en default', тоen_default = true - для хивикиконецomitsep = translation.omitsep - для zhwikiконецnumdot = config.numdot или numdot или '.' - десятичный знак перед дробными цифрамиnumsep = config.numsep или numsep или ',' - разделитель групп для чисел- numsep должно быть ',' или '.' или '' или '& nbsp;' или символ Юникода.- numsep_remove должен работать в регулярном выражении для определения разделителей, которые необходимо удалить.если numsep ~ = '', тогдаnumsep_remove = (numsep == '.') и '%.' или numsepконецесли numsep ~ = ',' и numdot ~ = ',' тоnumsep_remove2 = ',' - числа, скопированные из enwiki, будут работатьконецконецлокальная коллекция функций ()- Верните стол для хранения предметов.возвращаться {п = 0,добавить = функция (сам, элемент)self.n = self.n + 1self [self.n] = элементконец,}конецделение локальной функции (числитель, знаменатель)- Возвращает частное целых чисел, остаток от деления двух- заданные числа, которые должны быть целыми числами без знака.местное частное, остаток = пол (числитель / знаменатель), числитель, знаменатель%если нет (0 <= остаток и остаток <знаменатель), то- Это может потребоваться для ограничений с плавающей запятой, как в {{convert | 160.02 | Ym | ydftin}}.остаток = 0конецвернуть частное, остатокконецразделение локальной функции (текст, разделитель)- Вернуть нумерованную таблицу с полями из разбиения текста.- Разделитель используется в регулярном выражении без экранирования (например, "." Не сработает).- В каждом поле удалены начальные / конечные пробелы.местный t = {}text = text .. delimiter - получить последний элементдля элемента в тексте: gmatch ('% s * (.-)% s *' .. delimiter) dotable.insert (t, элемент)конецвернуть тконецполоса локальной функции (текст)- Если текст является строкой, вернуть его содержимое без начала / конца- пробел. В противном случае верните nil (аргумент nil дает нулевой результат).если type (text) == 'string', тотекст возврата: совпадение ("^% s * (.-)% s * $")конецконецлокальная функция table_len (t)