From 623c9f82180eb11418acae8f21136b25655b4550 Mon Sep 17 00:00:00 2001 From: AliRezaMohammadiDoost Date: Thu, 21 Jan 2021 10:20:37 +0330 Subject: [PATCH] convert numbers to other languages in datatables --- type-detection/numberTo.js | 50 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 type-detection/numberTo.js diff --git a/type-detection/numberTo.js b/type-detection/numberTo.js new file mode 100644 index 0000000..bd7ebef --- /dev/null +++ b/type-detection/numberTo.js @@ -0,0 +1,50 @@ +/** + * convert numbers to farsi, english, arabic. + * تبدیل عداد به فارسی, انگلیسی, عربی + * + * @name convertTo + * @summary convert numbers to farsi, english, arabic. + * @author [alireza mohammadi doost](alirezamohammadi1990@gmail.com) + * @version 0.1 + * + * @example + * $('#example').DataTable( { + * columnDefs: [ + * { + * data: 'id', + * name: 'id', + * fnCreatedCell: function (nTd, sData, oData, iRow, iCol) { + * $(nTd).html($.fn.dataTable.numberTo(oData.id, 'fa')); + * } + * }, + * ] + * } ); + */ + +$(function () { + $.fn.dataTable.numberTo = function (numbers, to = 'fa') { + let result = null; + const faNumbers = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹']; + const enNumbers = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']; + const arNumbers = ['۰', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩']; + + if (!numbers && to === 'fa') { + return 'مقدار ورودی صحیح نمی‌باشد.' + } else if (!numbers) { + return 'numbers is empty.' + } + + switch (to) { + case 'fa': + result = numbers.toString().replace(/\d/g, x => faNumbers[x]); + break; + case 'en': + result = numbers.toString().replace(/\d/g, x => enNumbers[x]); + break; + case 'ar': + result = numbers.toString().replace(/\d/g, x => arNumbers[x]); + break; + } + return result; + }; +}) \ No newline at end of file