Модуль:Sources: различия между версиями

526 байт добавлено ,  2 года назад
нет описания правки
(Новая страница: «local p = {} local langs = require('Module:Languages') local utils = require('Module:Sources-utils') local i18nDefaultLanguage = 'ru' local i18nEtAlDefault = '...»)
 
Нет описания правки
 
Строка 1: Строка 1:
local p = {}
local p = {}


local langs = require('Module:Languages')
local utils = require('Module:Sources/utils')
local utils = require('Module:Sources-utils')


local i18nDefaultLanguage = 'ru'
local i18nDefaultLanguage = 'ru'
Строка 18: Строка 17:
it = '',
it = '',
ru = 'под ред. ',
ru = 'под ред. ',
}
local i18nTranslators = {
fr = '',
de = '',
es = '',
en = '',
it = '',
ru = 'пер. ',
}
}


Строка 260: Строка 268:


local function appendTitle(result, context, src)
local function appendTitle(result, context, src)
conjunctor = ''
  if src.part then
  if src.part then
  result = appendProperty(result, context, src, '', 'part', 'url')
  result = appendProperty(result, context, src, '', 'part', 'parturl')
  result = appendProperty(result, context, src, ' // ', 'title')
  conjunctor = ' // '
else -- title only
result = appendProperty(result, context, src, '', 'title', 'url')
  end
  end
result = appendProperty(result, context, src, conjunctor, 'title', 'url')
  return result
  return result
end
end
Строка 271: Строка 279:
local function appendLanguage(result, context, src)
local function appendLanguage(result, context, src)
if context.lang ~= i18nDefaultLanguage then
if context.lang ~= i18nDefaultLanguage then
local langs = require('Module:Languages')
result = result .. langs.list_ref(p.currentFrame:newChild{ args = {context.lang} })
result = result .. langs.list_ref(p.currentFrame:newChild{ args = {context.lang} })
end
end
Строка 299: Строка 308:


local function appendEditor(result, context, src)
local function appendEditor(result, context, src)
if src.editor then
if src.editor or src.translator then
local prefix = i18nEditors[ context.lang ] or i18nEditors[ i18nDefaultLanguage ]
result = result .. ' / '
result = result .. ' / ' .. prefix .. getPeopleAsWikitext( context, src.editor, options_commas_responsible )
if src.editor then
local prefix = i18nEditors[ context.lang ] or i18nEditors[ i18nDefaultLanguage ]
result = result .. prefix .. getPeopleAsWikitext( context, src.editor, options_commas_responsible )
if src.translator then
result = result .. ', '
end
end
if src.translator then
local prefix = i18nTranslators[ context.lang ] or i18nTranslators[ i18nDefaultLanguage ]
result = result .. prefix .. getPeopleAsWikitext( context, src.translator, options_commas_responsible )
end
end
end
return result
return result
Строка 417: Строка 436:
local y, m, d = mw.ustring.match(date, pattern)
local y, m, d = mw.ustring.match(date, pattern)
y, m, d = tonumber(y), tonumber(m), tonumber(d)
y, m, d = tonumber(y), tonumber(m), tonumber(d)
result = result .. " <small>Проверено " .. tostring(d) .. " " .. monthg[m] .. " " .. tostring(y) .. ".</small>"
local date_str = (d > 0 and ' ' .. tostring(d) or '')
  .. (m > 0 and ' ' .. monthg[m] or '')
  .. (y > 0 and ' ' .. tostring(y) or '')
result = result .. " <small>Проверено" .. date_str .. ".</small>"
end
end
return result
return result
Строка 556: Строка 578:
-- Про выбор алгоритма хеширования см. [[Модуль:Hash]]. Знак подчёркивания в начале позволяет
-- Про выбор алгоритма хеширования см. [[Модуль:Hash]]. Знак подчёркивания в начале позволяет
-- исключить ошибку, когда имя сноски — чисто числовое значение, каковыми иногда бывают хеши.
-- исключить ошибку, когда имя сноски — чисто числовое значение, каковыми иногда бывают хеши.
return frame:extensionTag('ref', rendered, {name = '_' .. mw.hash.hashValue('fnv164', rendered)}) .. '[[Category:Тептар:Статьи с источниками из Тептарданных]]'
return frame:extensionTag('ref', rendered, {name = '_' .. mw.hash.hashValue('fnv164', rendered)}) .. '[[Category:Тептар:Статьи с источниками из Тептар-данных]]'
end
end