4

我有一个关于 jQuery Bootstrap Datepicker 翻译的问题。

在原来的 bootstrap-datepicker 我有:

monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'], // Names of months for drop-down and formatting
monthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], // For formatting
dayNames: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], // For formatting
dayNamesShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], // For formatting
dayNamesMin: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'], // Column headings for days starting at Sunday

但是没有dayNumber:['0','1','2','3','4','5','6','7','8','9']

我的问题是,如何实现这一行翻译以将数字翻译为波斯符号?

非常感谢任何帮助。

4

1 回答 1

0

代表日历日的元素构建在“while”循环中,因此您必须对插件进行一些更改。实现所需结果的一种快速方法是创建一个函数将数字转换为波斯语并将十进制值存储在自定义属性中,以便大多数逻辑保持不变:

function convert(num) {

    var persian = {
      0: '۰',
      1: '۱',
      2: '۲',
      3: '۳',
      4: '۴',
      5: '۵',
      6: '۶',
      7: '۷',
      8: '۸',
      9: '۹'
    };

    var out = '';
    for (i = 0; i < num.length; i++) {
      out = out + persian[num[i]];
    }

    return out;
}

要更改日历小部件中的数字,请更新第 808 和 997 行:

//html.push('<td class="' + clsName.join(' ') + '"' + (tooltip ? ' title="' + tooltip + '"' : '') + '>' + prevMonth.getUTCDate() + '</td>');
html.push('<td data-day="'+prevMonth.getUTCDate()+'" class="' + clsName.join(' ') + '"' + (tooltip ? ' title="' + tooltip + '"' : '') + '>' + convert(String(prevMonth.getUTCDate())) + '</td>');

...

//day = parseInt(target.text(), 10) || 1;
day = target.data("day");

要更改输入字段中的数字,请在第 1600 行之后添加:

date[1] = convert(String(date[1]));
date[3] = convert(String(date[3]));
date[5] = convert(String(date[5]));

一个工作示例:

JSFIDDLE

于 2017-02-07T14:52:18.533 回答