۵٬۱۲۵
ویرایش
(switch back to Module:Hatnote instead of Module:Hatnote/sandbox) |
جز (۱ نسخه واردشده) |
||
خط ۲۳: | خط ۲۳: | ||
--default options table used across the list stringification functions | --default options table used across the list stringification functions | ||
local stringifyListDefaultOptions = { | local stringifyListDefaultOptions = { | ||
conjunction = " | conjunction = "و", | ||
separator = " | separator = "،", | ||
altSeparator = " | altSeparator = "؛", | ||
space = " ", | space = " ", | ||
formatted = false | formatted = false | ||
خط ۴۶: | خط ۴۶: | ||
local separator = options.separator | local separator = options.separator | ||
--searches display text only | --searches display text only | ||
function searchDisp(t, f) | |||
return string.find(string.sub(t, (string.find(t, '|') or 0) + 1), f) | return string.find(string.sub(t, (string.find(t, '|') or 0) + 1), f) | ||
end | end | ||
خط ۷۰: | خط ۷۰: | ||
-- Stringifies lists with "and" or "or" | -- Stringifies lists with "and" or "or" | ||
function p.andList (...) return conjList(" | function p.andList (...) return conjList("و", ...) end | ||
function p.orList (...) return conjList(" | function p.orList (...) return conjList("یا", ...) end | ||
-------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | ||
خط ۸۲: | خط ۸۲: | ||
--default options table used across the forSee family of functions | --default options table used across the forSee family of functions | ||
local forSeeDefaultOptions = { | local forSeeDefaultOptions = { | ||
andKeyword = ' | andKeyword = 'و', | ||
title = mw.title.getCurrentTitle().text, | title = mw.title.getCurrentTitle().text, | ||
otherText = ' | otherText = 'دیگر کاربردها', | ||
forSeeForm = ' | forSeeForm = 'برای %s، %s را مشاهده کنید.' | ||
} | } | ||
خط ۹۲: | خط ۹۲: | ||
local replacements = { | local replacements = { | ||
["%.%.$"] = ".", | ["%.%.$"] = ".", | ||
["%?%.$"] = " | ["%?%.$"] = "؟", | ||
["%!%.$"] = "!", | ["%!%.$"] = "!", | ||
["%.%]%]%.$"] = ".]]", | ["%.%]%]%.$"] = ".]]", | ||
["%?%]%]%.$"] = " | ["%?%]%]%.$"] = "؟]]", | ||
["%!%]%]%.$"] = "!]]" | ["%!%]%]%.$"] = "!]]" | ||
} | } | ||
خط ۱۲۵: | خط ۱۲۵: | ||
local i = from | local i = from | ||
local terminated = false | local terminated = false | ||
-- Loop to generate rows | -- Loop to generate rows | ||
repeat | repeat | ||
خط ۱۶۰: | خط ۱۵۷: | ||
function p.forSeeTableToString (forSeeTable, options) | function p.forSeeTableToString (forSeeTable, options) | ||
-- Type-checks and defaults | -- Type-checks and defaults | ||
checkType("forSeeTableToString", 1, forSeeTable, "table" | checkType("forSeeTableToString", 1, forSeeTable, "table") | ||
checkType("forSeeTableToString", 2, options, "table", true) | checkType("forSeeTableToString", 2, options, "table", true) | ||
options = options or {} | options = options or {} | ||
خط ۱۶۸: | خط ۱۶۵: | ||
-- Stringify each for-see item into a list | -- Stringify each for-see item into a list | ||
local strList = {} | local strList = {} | ||
for k, v in pairs(forSeeTable) do | |||
local useStr = v.use or options.otherText | |||
local pagesStr = p.andList(v.pages, true) or | |||
mHatnote._formatLink(mHatnote.disambiguate(options.title)) | |||
local forSeeStr = string.format(options.forSeeForm, useStr, pagesStr) | |||
forSeeStr = punctuationCollapse(forSeeStr) | |||
table.insert(strList, forSeeStr) | |||
end | end | ||
-- Return the concatenated list | -- Return the concatenated list | ||
return table.concat(strList, ' ') | return table.concat(strList, ' ') |
ویرایش