پودمان:Numeral converter

    از دزفول ویکی

    توضیحات این پودمان می‌تواند در پودمان:Numeral converter/توضیحات قرار گیرد.

    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_cordination_template(frame)
      return p.convert('en',p.convert_cordination(frame.args[1]))
    end
    
    function p.convert_cordination(text)
      text = tostring(text)
      text = mw.ustring.gsub(text, "شمالی", "N")
      text = mw.ustring.gsub(text, "شرقی", "E")
      text = mw.ustring.gsub(text, "جنوبی", "S")
      text = mw.ustring.gsub(text, "غربی", "W")
      return text
    end
    
    function p.convert_Fa_cordination(text)
      text = tostring(text)
      text = mw.ustring.gsub(text,"N", "شمالی")
      text = mw.ustring.gsub(text,"E", "شرقی")
      text = mw.ustring.gsub(text,  "S","جنوبی")
      text = mw.ustring.gsub(text, "W","غربی")
      return text
    end
    
    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, "[.]", "٫")
        if type(signs) ~= "nil" then
          text = mw.ustring.gsub(text, "%.", "٫")
          --تبدیل % به درصد فارسی ٪ را نگذاشتم چون ممکن است کدهای درصدی وارد شده به پودمان را خراب کند.
        end
      elseif lang == "ar" or lang == "ckb" or lang == "ks" 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]", "٩")
      elseif lang and lang ~= "" 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, "٪", "%")
        if type(virgule) ~= "nil" then
          text = mw.ustring.gsub(text, "،", ",")
          text = mw.ustring.gsub(text, "٪", "%")
        end
      end
    
      return text
    end
    
    return p