پودمان:Numeral converter2

پودمان به طور دائم حفاظت‌شده است
از ویکی‌پدیا، دانشنامهٔ آزاد
توضیحات پودمان[نمایش] [ویرایش] [تاریخچه] [پاکسازی]

این پودمان همان کپی قسمت تبدیل رقمِ پودمان:Numeral converter است، با این تفاوت که فقط جایگزینی ارقام را انجام می‌دهد و نقطه را به «٫» تغییر نمی‌دهد، زیرا این کار شناسه‌هایی نظیر Bibcode را دچار مشکل می‌کند. همچنین عبارت ISBN را از سرِ رشته‌ها حذف می‌کند (این کار به دلیل داده شدن شابک با پیشوند ISBN در الگوهای قدیمی یادکرد فارسی، که در کار پودمان‌های یادکرد اختلال ایجاد می‌کند انجام شده).

local p = {}

-- Use this function from templates.
function p.convert_template(frame)
  -- Third argument is optional; If true given, signs like dot (.) will be replaced.
  frame.args[3] = frame.args[3] or nil
  return p.convert(frame.args[1], frame.args[2], frame.args[3])
end

-- Use these function directly in modules.

function p.convert(lang, text, signs, virgule)
  text = tostring(text)
  signs = signs or nil
  virgule= virgule or nil

  if lang == "fa" or lang == "ur" or lang == "mzn" or lang == "glk" then -- برای فارسی، اردو، مازندرانی، گیلکی
    text = mw.ustring.gsub(text, "[0٠]", "۰")
    text = mw.ustring.gsub(text, "[1١]", "۱")
    text = mw.ustring.gsub(text, "[2٢]", "۲")
    text = mw.ustring.gsub(text, "[3٣]", "۳")
    text = mw.ustring.gsub(text, "[4٤]", "۴")
    text = mw.ustring.gsub(text, "[5٥]", "۵")
    text = mw.ustring.gsub(text, "[6٦]", "۶")
    text = mw.ustring.gsub(text, "[7٧]", "۷")
    text = mw.ustring.gsub(text, "[8٨]", "۸")
    text = mw.ustring.gsub(text, "[9٩]", "۹")
--    text = mw.ustring.gsub(text, "ISBN ", "")	
    --تبدیل نقطه به «٫» را به دلیل ایجاد مشکل در فارسی‌سازی برخی شناسه‌ها که نقطه دارند حذف کردم
    if type(signs) ~= "nil" then
      text = mw.ustring.gsub(text, "%.", "٫")
      --تبدیل % به درصد فارسی ٪ را نگذاشتم چون ممکن است کدهای درصدی وارد شده به پودمان را خراب کند.
    end
  elseif lang == "en" then -- تبدیل به انگلیسی
    text = mw.ustring.gsub(text, "[۰٠]", "0")
    text = mw.ustring.gsub(text, "[۱١]", "1")
    text = mw.ustring.gsub(text, "[۲٢]", "2")
    text = mw.ustring.gsub(text, "[۳٣]", "3")
    text = mw.ustring.gsub(text, "[۴٤]", "4")
    text = mw.ustring.gsub(text, "[۵٥]", "5")
    text = mw.ustring.gsub(text, "[۶٦]", "6")
    text = mw.ustring.gsub(text, "[۷٧]", "7")
    text = mw.ustring.gsub(text, "[۸٨]", "8")
    text = mw.ustring.gsub(text, "[۹٩]", "9")
    text = mw.ustring.gsub(text, "٫", ".")
    text = mw.ustring.gsub(text, "٪", "%")
  end

  return text
end

return p