From eb1260b4e91aac7a5401fc8b0b14fda4ca9bd40e Mon Sep 17 00:00:00 2001 From: Alexey Slynko Date: Fri, 2 Sep 2016 18:45:04 +0300 Subject: [PATCH 1/2] feature: add russian translation --- lib/date-utils.js | 125 ++++++++++++++++++++++++++++++++++ lib/date-utils.min.js | 2 +- test/date-language-ru-test.js | 82 ++++++++++++++++++++++ 3 files changed, 208 insertions(+), 1 deletion(-) create mode 100644 test/date-language-ru-test.js diff --git a/lib/date-utils.js b/lib/date-utils.js index 51a6932..3673910 100644 --- a/lib/date-utils.js +++ b/lib/date-utils.js @@ -1837,6 +1837,131 @@ THE SOFTWARE. 'dezembro': 11 }; } + else if (lang == "ru") { + monthsAbbr = [ + 'Янв', + 'Фев', + 'Мар', + 'Апр', + 'Май', + 'Июн', + 'Июл', + 'Авг', + 'Сен', + 'Окт', + 'Ноя', + 'Дек' + ]; + + monthsFull = [ + 'Январь', + 'Февраль', + 'Март', + 'Апрель', + 'Май', + 'Июнь', + 'Июль', + 'Август', + 'Сентябрь', + 'Октябрь', + 'Ноябрь', + 'Декабрь' + ]; + + daysAbbr = [ + 'Вс', + 'Пн', + 'Вт', + 'Ср', + 'Чт', + 'Пт', + 'Сб' + ]; + + daysFull = [ + 'Воскресенье', + 'Понедельник', + 'Вторник', + 'Среда', + 'Четверг', + 'Пятница', + 'Суббота' + ]; + + dayNames = { + 'вс': 0, + 'вск': 0, + 'воскресенье':0, + 'пн': 1, + 'пон': 1, + 'понедельник':1, + 'вт': 2, + 'вто': 2, + 'вторник': 2, + 'ср': 3, + 'сре': 3, + 'среда': 3, + 'чт': 4, + 'чет': 4, + 'четверг': 4, + 'пт': 5, + 'пят': 5, + 'пятница': 5, + 'сб': 6, + 'суб': 6, + 'суббота': 6 + }; + monthsAll = monthsFull.concat(monthsAbbr); + daysAll = [ + 'вс', + 'вск', + 'воскресенье', + 'пн', + 'пон', + 'понедельник', + 'вт', + 'вто', + 'вторник', + 'ср', + 'сре', + 'среда', + 'чт', + 'чет', + 'четверг', + 'пт', + 'пят', + 'пятница', + 'сб', + 'суб', + 'суббота' + ]; + + monthNames = { + 'янв': 0, + 'январь': 0, + 'фев': 1, + 'февраль': 1, + 'мар': 2, + 'март': 2, + 'апр': 3, + 'апрель': 3, + 'май': 4, + 'июн': 5, + 'июнь': 5, + 'июл': 6, + 'июль': 6, + 'авг': 7, + 'август': 7, + 'сен': 8, + 'сентябрь': 8, + 'окт': 9, + 'октябрь': 9, + 'ноя': 10, + 'ноябрь': 10, + 'дек': 11, + 'декабрь': 11 + }; + } }; // Are we being imported?.. diff --git a/lib/date-utils.min.js b/lib/date-utils.min.js index 4c4e2e0..2b9455a 100644 --- a/lib/date-utils.min.js +++ b/lib/date-utils.min.js @@ -1 +1 @@ -!function(){function e(e,t){for(e=String(e);e.length=n;i--){var a=e.substring(t,t+i);if(a.length70?1900+(h-0):2e3+(h-0))}else if("MMM"===d||"NNN"===d){f=0;for(var y=0;y11)){f=y+1,f>12&&(f-=12),a+=b.length;break}}if(1>f||f>12)return 0/0}else if("EE"===d||"E"===d)for(var T=0;Tf||f>12)return 0/0;a+=f.length}else if("dd"===d||"d"===d){if(g=c(e,a,d.length,2),null===g||1>g||g>31)return 0/0;a+=g.length}else if("hh"===d||"h"===d){if(m=c(e,a,d.length,2),null===m||1>m||m>12)return 0/0;a+=m.length}else if("HH"===d||"H"===d){if(m=c(e,a,d.length,2),null===m||0>m||m>23)return 0/0;a+=m.length}else if("KK"===d||"K"===d){if(m=c(e,a,d.length,2),null===m||0>m||m>11)return 0/0;a+=m.length}else if("kk"===d||"k"===d){if(m=c(e,a,d.length,2),null===m||1>m||m>24)return 0/0;a+=m.length,m--}else if("mm"===d||"m"===d){if(M=c(e,a,d.length,2),null===M||0>M||M>59)return 0/0;a+=M.length}else if("ss"===d||"s"===d){if(v=c(e,a,d.length,2),null===v||0>v||v>59)return 0/0;a+=v.length}else if("a"===d){if("am"===e.substring(a,a+2).toLowerCase())D="AM";else{if("pm"!==e.substring(a,a+2).toLowerCase())return 0/0;D="PM"}a+=2}else{if(e.substring(a,a+d.length)!==d)return 0/0;a+=d.length}}if(a!==e.length)return 0/0;if(2===f)if(h%4===0&&h%100!==0||h%400===0){if(g>29)return 0/0}else if(g>28)return 0/0;if((4===f||6===f||9===f||11===f)&&g>30)return 0/0;12>m&&"PM"===D?m=m-0+12:m>11&&"AM"===D&&(m-=12);var C=new Date(h,f-1,g,m,M,v);return C.getTime()};Date.parse=function(e,t){if(t)return g(e,t);var n,r=f(e),i=0;return isNaN(r)&&(n=/^(\d{4}|[+\-]\d{6})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?))?/.exec(e))&&("Z"!==n[8]&&(i=60*+n[10]+ +n[11],"+"===n[9]&&(i=0-i)),n[7]=n[7]||"000",r=Date.UTC(+n[1],+n[2]-1,+n[3],+n[4],+n[5]+i,+n[6],+n[7].substr(0,3))),r},Date.today=function(){return(new Date).clearTime()},Date.UTCtoday=function(){return(new Date).clearUTCTime()},Date.tomorrow=function(){return Date.today().add({days:1})},Date.UTCtomorrow=function(){return Date.UTCtoday().add({days:1})},Date.yesterday=function(){return Date.today().add({days:-1})},Date.UTCyesterday=function(){return Date.UTCtoday().add({days:-1})},Date.validateDay=function(e,t,n){var r=new Date(t,n,e);return r.getFullYear()===t&&r.getMonth()===n&&r.getDate()===e},Date.validateYear=function(e){return e>=0&&9999>=e},Date.validateSecond=function(e){return e>=0&&60>e},Date.validateMonth=function(e){return e>=0&&12>e},Date.validateMinute=function(e){return e>=0&&60>e},Date.validateMillisecond=function(e){return e>=0&&1e3>e},Date.validateHour=function(e){return e>=0&&24>e},Date.compare=function(e,t){return e.valueOf()t.valueOf()?1:0},Date.equals=function(e,t){return e.valueOf()===t.valueOf()},Date.equalsDay=function(e,t){return e.toYMD()===t.toYMD()},Date.getDayNumberFromName=function(e){return o[e.toLowerCase()]},Date.getMonthNumberFromName=function(e){return d[e.toLowerCase()]},Date.getMonthNameFromNumber=function(e){return i[e]},Date.getMonthAbbrFromNumber=function(e){return r[e]},Date.isLeapYear=function(e){return 29===new Date(e,1,29).getDate()},Date.getDaysInMonth=function(e,t){return 1===t?Date.isLeapYear(e)?29:28:l[t]},t("getMonthAbbr",function(){return r[this.getMonth()]}),t("getMonthName",function(){return i[this.getMonth()]}),t("getLastMonthName",function(){var e=this.getMonth();return e=0===e?11:e-1,i[e]}),t("getUTCOffset",function(){var t=e(Math.abs(this.getTimezoneOffset()/.6),4);return this.getTimezoneOffset()>0&&(t="-"+t),t}),t("toCLFString",function(){return e(this.getDate(),2)+"/"+this.getMonthAbbr()+"/"+this.getFullYear()+":"+e(this.getHours(),2)+":"+e(this.getMinutes(),2)+":"+e(this.getSeconds(),2)+" "+this.getUTCOffset()}),t("toYMD",function(t){return t="undefined"==typeof t?"-":t,this.getFullYear()+t+e(this.getMonth()+1,2)+t+e(this.getDate(),2)}),t("toDBString",function(){return this.getUTCFullYear()+"-"+e(this.getUTCMonth()+1,2)+"-"+e(this.getUTCDate(),2)+" "+e(this.getUTCHours(),2)+":"+e(this.getUTCMinutes(),2)+":"+e(this.getUTCSeconds(),2)}),t("clearTime",function(){return this.setHours(0),this.setMinutes(0),this.setSeconds(0),this.setMilliseconds(0),this}),t("clearUTCTime",function(){return this.setUTCHours(0),this.setUTCMinutes(0),this.setUTCSeconds(0),this.setUTCMilliseconds(0),this}),t("add",function(e){return void 0!==e.milliseconds&&this.setMilliseconds(this.getMilliseconds()+e.milliseconds),void 0!==e.seconds&&this.setSeconds(this.getSeconds()+e.seconds),void 0!==e.minutes&&this.setMinutes(this.getMinutes()+e.minutes),void 0!==e.hours&&this.setHours(this.getHours()+e.hours),void 0!==e.days&&this.setDate(this.getDate()+e.days),void 0!==e.weeks&&this.setDate(this.getDate()+7*e.weeks),void 0!==e.months&&this.setMonth(this.getMonth()+e.months),void 0!==e.years&&this.setFullYear(this.getFullYear()+e.years),this}),t("addMilliseconds",function(e){return this.add({milliseconds:e})}),t("addSeconds",function(e){return this.add({seconds:e})}),t("addMinutes",function(e){return this.add({minutes:e})}),t("addHours",function(e){return this.add({hours:e})}),t("addDays",function(e){return this.add({days:e})}),t("addWeeks",function(e){return this.add({days:7*e})}),t("addMonths",function(e){return this.add({months:e})}),t("addYears",function(e){return this.add({years:e})}),t("remove",function(e){return void 0!==e.seconds&&this.setSeconds(this.getSeconds()-e.seconds),void 0!==e.minutes&&this.setMinutes(this.getMinutes()-e.minutes),void 0!==e.hours&&this.setHours(this.getHours()-e.hours),void 0!==e.days&&this.setDate(this.getDate()-e.days),void 0!==e.weeks&&this.setDate(this.getDate()-7*e.weeks),void 0!==e.months&&this.setMonth(this.getMonth()-e.months),void 0!==e.years&&this.setFullYear(this.getFullYear()-e.years),this}),t("removeMilliseconds",function(){throw new Error("Not implemented")}),t("removeSeconds",function(e){return this.remove({seconds:e})}),t("removeMinutes",function(e){return this.remove({minutes:e})}),t("removeHours",function(e){return this.remove({hours:e})}),t("removeDays",function(e){return this.remove({days:e})}),t("removeWeeks",function(e){return this.remove({days:7*e})}),t("removeMonths",function(e){return this.remove({months:e})}),t("removeYears",function(e){return this.remove({years:e})}),t("addWeekdays",function(e){var t=this.getDay();0===t&&(t=7);var n=e,r=Math.floor((e+t-1)/5);return e>0?(n+=2*r,t>5&&(n-=t-5)):(n+=Math.min(2*r,0),t>6&&(n-=1)),this.addDays(n)}),t("setTimeToNow",function(){var e=new Date;this.setMilliseconds(e.getMilliseconds()),this.setSeconds(e.getSeconds()),this.setMinutes(e.getMinutes()),this.setHours(e.getHours())}),t("clone",function(){return new Date(this.valueOf())}),t("between",function(e,t){return this.valueOf()>=e.valueOf()&&this.valueOf()<=t.valueOf()}),t("compareTo",function(e){return Date.compare(this,e)}),t("equals",function(e){return Date.equals(this,e)}),t("equalsDay",function(e){return Date.equalsDay(this,e)}),t("isToday",function(){return Date.equalsDay(this,Date.today())}),t("isAfter",function(e){return e=e?e:new Date,this.compareTo(e)>0}),t("isBefore",function(e){return e=e?e:new Date,this.compareTo(e)<0}),t("isWeekend",function(){return this.getDay()%6===0}),t("getDaysBetween",function(e){return(e.clone().valueOf()-this.valueOf())/864e5|0}),t("getHoursBetween",function(e){return(e.clone().valueOf()-this.valueOf())/36e5|0}),t("getMinutesBetween",function(e){return(e.clone().valueOf()-this.valueOf())/6e4|0}),t("getSecondsBetween",function(e){return(e.clone().valueOf()-this.valueOf())/1e3|0}),t("getMillisecondsBetween",function(e){return e.clone().valueOf()-this.valueOf()|0}),t("getMonthsBetween",function(e){for(var t=(Math.abs(+this/864e5-+e/864e5),new Date(+this>+e?+e:+this)),n=new Date(e>+this?+e:+this),r=0;+n>+t;)r++,t=t.addMonths(1);var i=Math.abs(+t/864e5-+n/864e5);return r-i/31}),t("getOrdinalNumber",function(){return Math.ceil((this.clone().clearTime()-new Date(this.getFullYear(),0,1))/864e5)+1}),t("toFormat",function(e){return m(e,M(this))}),t("toUTCFormat",function(e){return m(e,v(this))}),t("getWeekNumber",function(){var e=new Date(this.getFullYear(),0,1);return Math.ceil(((this-e)/864e5+e.getDay()+1)/7)}),t("getFullWeekNumber",function(){var e=""+this.getWeekNumber();return 1===e.length&&(e="0"+e),e});var m=function(e,t){var n,r,i,a=[e],s=function(e,t){for(var n,r,i,s=0,o=a.length,u=[];o>s;s++)if("string"==typeof a[s]){for(i=a[s].split(e),n=0,r=i.length-1;r>n;n++)u.push(i[n]),u.push([t]);u.push(i[r])}else u.push(a[s]);a=u};for(n in t)s(n,t[n]);for(i="",n=0,r=a.length;r>n;n++)i+="string"==typeof a[n]?a[n]:a[n][0];return a.join("")},M=function(t){var n=t.getHours()%12?t.getHours()%12:12;return{YYYY:t.getFullYear(),YY:String(t.getFullYear()).slice(-2),MMMM:i[t.getMonth()],MMM:r[t.getMonth()],MM:e(t.getMonth()+1,2),MI:e(t.getMinutes(),2),M:t.getMonth()+1,DDDD:s[t.getDay()],DDD:a[t.getDay()],DD:e(t.getDate(),2),D:t.getDate(),HH24:e(t.getHours(),2),HH:e(n,2),H:n,SS:e(t.getSeconds(),2),PP:t.getHours()>=12?"PM":"AM",P:t.getHours()>=12?"pm":"am",LL:e(t.getMilliseconds(),3)}},v=function(t){var n=t.getUTCHours()%12?t.getUTCHours()%12:12;return{YYYY:t.getUTCFullYear(),YY:String(t.getUTCFullYear()).slice(-2),MMMM:i[t.getUTCMonth()],MMM:r[t.getUTCMonth()],MM:e(t.getUTCMonth()+1,2),MI:e(t.getUTCMinutes(),2),M:t.getUTCMonth()+1,DDDD:s[t.getUTCDay()],DDD:a[t.getUTCDay()],DD:e(t.getUTCDate(),2),D:t.getUTCDate(),HH24:e(t.getUTCHours(),2),HH:e(n,2),H:n,SS:e(t.getUTCSeconds(),2),PP:t.getUTCHours()>=12?"PM":"AM",P:t.getUTCHours()>=12?"pm":"am",LL:e(t.getUTCMilliseconds(),3)}},D=function(e){"es"==e?(r=["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],i=["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],a=["Dom","Lun","Mar","Mie","Jue","Vie","Sab"],s=["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"],o={"do":0,dom:0,domingo:0,lu:1,lun:1,lunes:1,ma:2,mar:2,martes:2,mi:3,mie:3,miercoles:3,ju:4,jue:4,jueves:4,vi:5,vie:5,viernes:5,sa:6,sab:6,sabado:6},n=i.concat(r),u=["do","dom","domingo","lu","lun","lunes","ma","mar","martes","mi","mie","miércoles","ju","jue","jueves","vi","vie","viernes","sa","sab","sábado"],d={ene:0,enero:0,feb:1,febrero:1,mar:2,marzo:2,abr:3,abril:3,may:4,mayo:4,jun:5,junio:5,jul:6,julio:6,ago:7,agosto:7,sep:8,septiembre:8,oct:9,octubre:9,nov:10,noviembre:10,dic:11,diciembre:11}):"fr"==e?(r=["Jan","Fév","Mar","Avr","Mai","Jui","Jul","Aoû","Sep","Oct","Nov","Déc"],i=["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],a=["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],s=["Dimanchi","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],o={di:0,dim:0,dimanchi:0,lu:1,lun:1,lundi:1,ma:2,mar:2,mardi:2,me:3,mer:3,mercredi:3,je:4,jeu:4,jeudi:4,ve:5,ven:5,vendredi:5,sa:6,sam:6,samedi:6},n=i.concat(r),u=["di","dim","dimanchi","lu","lun","lundi","ma","mar","mardi","me","mer","mercredi","je","jeu","jeudi","ve","ven","vendredi","sa","sam","samedi"],d={jan:0,janvier:0,"fév":1,"février":1,mar:2,mars:2,avr:3,avril:3,mai:4,jui:5,juin:5,jul:6,juillet:6,"aoû":7,"août":7,sep:8,septembre:8,oct:9,octobre:9,nov:10,novembre:10,"déc":11,"décembre":11}):"pt-BR"==e&&(r=["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],i=["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],a=["Dom","Seg","Ter","Qua","Qui","Sex","Sab"],s=["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"],o={"do":0,dom:0,domingo:0,se:1,seg:1,segunda:1,te:2,ter:2,terca:2,qa:3,qua:3,quarta:3,qi:4,qui:4,quinta:4,se:5,sex:5,sexta:5,sa:6,sab:6,sabado:6},n=i.concat(r),u=["do","dom","domingo","se","seg","segunda","te","ter","terça","qa","qua","quarta","qi","qui","quinta","se","sex","sexta","sa","sab","sábado"],d={jan:0,janeiro:0,fev:1,fevereiro:1,mar:2,"março":2,abr:3,abril:3,mai:4,jun:5,junho:5,jul:6,julho:6,ago:7,agosto:7,set:8,setembro:8,out:9,outubro:9,nov:10,novembro:10,dez:11,dezembro:11})};"undefined"!=typeof module&&"object"==typeof module.exports?module.exports.language=D:"object"==typeof exports?exports.language=D:"undefined"==typeof Date.language&&(Date.language=D)}(); \ No newline at end of file +!function(){function e(e,t){for(e=String(e);e.length=n;i--){var a=e.substring(t,t+i);if(a.length70?1900+(h-0):2e3+(h-0))}else if("MMM"===d||"NNN"===d){f=0;for(var y=0;y11)){f=y+1,f>12&&(f-=12),a+=b.length;break}}if(1>f||f>12)return 0/0}else if("EE"===d||"E"===d)for(var T=0;Tf||f>12)return 0/0;a+=f.length}else if("dd"===d||"d"===d){if(g=c(e,a,d.length,2),null===g||1>g||g>31)return 0/0;a+=g.length}else if("hh"===d||"h"===d){if(m=c(e,a,d.length,2),null===m||1>m||m>12)return 0/0;a+=m.length}else if("HH"===d||"H"===d){if(m=c(e,a,d.length,2),null===m||0>m||m>23)return 0/0;a+=m.length}else if("KK"===d||"K"===d){if(m=c(e,a,d.length,2),null===m||0>m||m>11)return 0/0;a+=m.length}else if("kk"===d||"k"===d){if(m=c(e,a,d.length,2),null===m||1>m||m>24)return 0/0;a+=m.length,m--}else if("mm"===d||"m"===d){if(M=c(e,a,d.length,2),null===M||0>M||M>59)return 0/0;a+=M.length}else if("ss"===d||"s"===d){if(v=c(e,a,d.length,2),null===v||0>v||v>59)return 0/0;a+=v.length}else if("a"===d){if("am"===e.substring(a,a+2).toLowerCase())D="AM";else{if("pm"!==e.substring(a,a+2).toLowerCase())return 0/0;D="PM"}a+=2}else{if(e.substring(a,a+d.length)!==d)return 0/0;a+=d.length}}if(a!==e.length)return 0/0;if(2===f)if(h%4===0&&h%100!==0||h%400===0){if(g>29)return 0/0}else if(g>28)return 0/0;if((4===f||6===f||9===f||11===f)&&g>30)return 0/0;12>m&&"PM"===D?m=m-0+12:m>11&&"AM"===D&&(m-=12);var C=new Date(h,f-1,g,m,M,v);return C.getTime()};Date.parse=function(e,t){if(t)return g(e,t);var n,r=f(e),i=0;return isNaN(r)&&(n=/^(\d{4}|[+\-]\d{6})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3,}))?)?(?:(Z)|([+\-])(\d{2})(?::?(\d{2}))?))?/.exec(e))&&("Z"!==n[8]&&(i=60*+n[10]+ +n[11],"+"===n[9]&&(i=0-i)),n[7]=n[7]||"000",r=Date.UTC(+n[1],+n[2]-1,+n[3],+n[4],+n[5]+i,+n[6],+n[7].substr(0,3))),r},Date.today=function(){return(new Date).clearTime()},Date.UTCtoday=function(){return(new Date).clearUTCTime()},Date.tomorrow=function(){return Date.today().add({days:1})},Date.UTCtomorrow=function(){return Date.UTCtoday().add({days:1})},Date.yesterday=function(){return Date.today().add({days:-1})},Date.UTCyesterday=function(){return Date.UTCtoday().add({days:-1})},Date.validateDay=function(e,t,n){var r=new Date(t,n,e);return r.getFullYear()===t&&r.getMonth()===n&&r.getDate()===e},Date.validateYear=function(e){return e>=0&&9999>=e},Date.validateSecond=function(e){return e>=0&&60>e},Date.validateMonth=function(e){return e>=0&&12>e},Date.validateMinute=function(e){return e>=0&&60>e},Date.validateMillisecond=function(e){return e>=0&&1e3>e},Date.validateHour=function(e){return e>=0&&24>e},Date.compare=function(e,t){return e.valueOf()t.valueOf()?1:0},Date.equals=function(e,t){return e.valueOf()===t.valueOf()},Date.equalsDay=function(e,t){return e.toYMD()===t.toYMD()},Date.getDayNumberFromName=function(e){return o[e.toLowerCase()]},Date.getMonthNumberFromName=function(e){return d[e.toLowerCase()]},Date.getMonthNameFromNumber=function(e){return i[e]},Date.getMonthAbbrFromNumber=function(e){return r[e]},Date.isLeapYear=function(e){return 29===new Date(e,1,29).getDate()},Date.getDaysInMonth=function(e,t){return 1===t?Date.isLeapYear(e)?29:28:l[t]},t("getMonthAbbr",function(){return r[this.getMonth()]}),t("getMonthName",function(){return i[this.getMonth()]}),t("getLastMonthName",function(){var e=this.getMonth();return e=0===e?11:e-1,i[e]}),t("getUTCOffset",function(){var t=e(Math.abs(this.getTimezoneOffset()/.6),4);return this.getTimezoneOffset()>0&&(t="-"+t),t}),t("toCLFString",function(){return e(this.getDate(),2)+"/"+this.getMonthAbbr()+"/"+this.getFullYear()+":"+e(this.getHours(),2)+":"+e(this.getMinutes(),2)+":"+e(this.getSeconds(),2)+" "+this.getUTCOffset()}),t("toYMD",function(t){return t="undefined"==typeof t?"-":t,this.getFullYear()+t+e(this.getMonth()+1,2)+t+e(this.getDate(),2)}),t("toDBString",function(){return this.getUTCFullYear()+"-"+e(this.getUTCMonth()+1,2)+"-"+e(this.getUTCDate(),2)+" "+e(this.getUTCHours(),2)+":"+e(this.getUTCMinutes(),2)+":"+e(this.getUTCSeconds(),2)}),t("clearTime",function(){return this.setHours(0),this.setMinutes(0),this.setSeconds(0),this.setMilliseconds(0),this}),t("clearUTCTime",function(){return this.setUTCHours(0),this.setUTCMinutes(0),this.setUTCSeconds(0),this.setUTCMilliseconds(0),this}),t("add",function(e){return void 0!==e.milliseconds&&this.setMilliseconds(this.getMilliseconds()+e.milliseconds),void 0!==e.seconds&&this.setSeconds(this.getSeconds()+e.seconds),void 0!==e.minutes&&this.setMinutes(this.getMinutes()+e.minutes),void 0!==e.hours&&this.setHours(this.getHours()+e.hours),void 0!==e.days&&this.setDate(this.getDate()+e.days),void 0!==e.weeks&&this.setDate(this.getDate()+7*e.weeks),void 0!==e.months&&this.setMonth(this.getMonth()+e.months),void 0!==e.years&&this.setFullYear(this.getFullYear()+e.years),this}),t("addMilliseconds",function(e){return this.add({milliseconds:e})}),t("addSeconds",function(e){return this.add({seconds:e})}),t("addMinutes",function(e){return this.add({minutes:e})}),t("addHours",function(e){return this.add({hours:e})}),t("addDays",function(e){return this.add({days:e})}),t("addWeeks",function(e){return this.add({days:7*e})}),t("addMonths",function(e){return this.add({months:e})}),t("addYears",function(e){return this.add({years:e})}),t("remove",function(e){return void 0!==e.seconds&&this.setSeconds(this.getSeconds()-e.seconds),void 0!==e.minutes&&this.setMinutes(this.getMinutes()-e.minutes),void 0!==e.hours&&this.setHours(this.getHours()-e.hours),void 0!==e.days&&this.setDate(this.getDate()-e.days),void 0!==e.weeks&&this.setDate(this.getDate()-7*e.weeks),void 0!==e.months&&this.setMonth(this.getMonth()-e.months),void 0!==e.years&&this.setFullYear(this.getFullYear()-e.years),this}),t("removeMilliseconds",function(){throw new Error("Not implemented")}),t("removeSeconds",function(e){return this.remove({seconds:e})}),t("removeMinutes",function(e){return this.remove({minutes:e})}),t("removeHours",function(e){return this.remove({hours:e})}),t("removeDays",function(e){return this.remove({days:e})}),t("removeWeeks",function(e){return this.remove({days:7*e})}),t("removeMonths",function(e){return this.remove({months:e})}),t("removeYears",function(e){return this.remove({years:e})}),t("addWeekdays",function(e){var t=this.getDay();0===t&&(t=7);var n=e,r=Math.floor((e+t-1)/5);return e>0?(n+=2*r,t>5&&(n-=t-5)):(n+=Math.min(2*r,0),t>6&&(n-=1)),this.addDays(n)}),t("setTimeToNow",function(){var e=new Date;this.setMilliseconds(e.getMilliseconds()),this.setSeconds(e.getSeconds()),this.setMinutes(e.getMinutes()),this.setHours(e.getHours())}),t("clone",function(){return new Date(this.valueOf())}),t("between",function(e,t){return this.valueOf()>=e.valueOf()&&this.valueOf()<=t.valueOf()}),t("compareTo",function(e){return Date.compare(this,e)}),t("equals",function(e){return Date.equals(this,e)}),t("equalsDay",function(e){return Date.equalsDay(this,e)}),t("isToday",function(){return Date.equalsDay(this,Date.today())}),t("isAfter",function(e){return e=e?e:new Date,this.compareTo(e)>0}),t("isBefore",function(e){return e=e?e:new Date,this.compareTo(e)<0}),t("isWeekend",function(){return this.getDay()%6===0}),t("getDaysBetween",function(e){return(e.clone().valueOf()-this.valueOf())/864e5|0}),t("getHoursBetween",function(e){return(e.clone().valueOf()-this.valueOf())/36e5|0}),t("getMinutesBetween",function(e){return(e.clone().valueOf()-this.valueOf())/6e4|0}),t("getSecondsBetween",function(e){return(e.clone().valueOf()-this.valueOf())/1e3|0}),t("getMillisecondsBetween",function(e){return e.clone().valueOf()-this.valueOf()|0}),t("getMonthsBetween",function(e){for(var t=(Math.abs(+this/864e5-+e/864e5),new Date(+this>+e?+e:+this)),n=new Date(e>+this?+e:+this),r=0;+n>+t;)r++,t=t.addMonths(1);var i=Math.abs(+t/864e5-+n/864e5);return r-i/31}),t("getOrdinalNumber",function(){return Math.ceil((this.clone().clearTime()-new Date(this.getFullYear(),0,1))/864e5)+1}),t("toFormat",function(e){return m(e,M(this))}),t("toUTCFormat",function(e){return m(e,v(this))}),t("getWeekNumber",function(){var e=new Date(this.getFullYear(),0,1);return Math.ceil(((this-e)/864e5+e.getDay()+1)/7)}),t("getFullWeekNumber",function(){var e=""+this.getWeekNumber();return 1===e.length&&(e="0"+e),e});var m=function(e,t){var n,r,i,a=[e],s=function(e,t){for(var n,r,i,s=0,o=a.length,u=[];o>s;s++)if("string"==typeof a[s]){for(i=a[s].split(e),n=0,r=i.length-1;r>n;n++)u.push(i[n]),u.push([t]);u.push(i[r])}else u.push(a[s]);a=u};for(n in t)s(n,t[n]);for(i="",n=0,r=a.length;r>n;n++)i+="string"==typeof a[n]?a[n]:a[n][0];return a.join("")},M=function(t){var n=t.getHours()%12?t.getHours()%12:12;return{YYYY:t.getFullYear(),YY:String(t.getFullYear()).slice(-2),MMMM:i[t.getMonth()],MMM:r[t.getMonth()],MM:e(t.getMonth()+1,2),MI:e(t.getMinutes(),2),M:t.getMonth()+1,DDDD:s[t.getDay()],DDD:a[t.getDay()],DD:e(t.getDate(),2),D:t.getDate(),HH24:e(t.getHours(),2),HH:e(n,2),H:n,SS:e(t.getSeconds(),2),PP:t.getHours()>=12?"PM":"AM",P:t.getHours()>=12?"pm":"am",LL:e(t.getMilliseconds(),3)}},v=function(t){var n=t.getUTCHours()%12?t.getUTCHours()%12:12;return{YYYY:t.getUTCFullYear(),YY:String(t.getUTCFullYear()).slice(-2),MMMM:i[t.getUTCMonth()],MMM:r[t.getUTCMonth()],MM:e(t.getUTCMonth()+1,2),MI:e(t.getUTCMinutes(),2),M:t.getUTCMonth()+1,DDDD:s[t.getUTCDay()],DDD:a[t.getUTCDay()],DD:e(t.getUTCDate(),2),D:t.getUTCDate(),HH24:e(t.getUTCHours(),2),HH:e(n,2),H:n,SS:e(t.getUTCSeconds(),2),PP:t.getUTCHours()>=12?"PM":"AM",P:t.getUTCHours()>=12?"pm":"am",LL:e(t.getUTCMilliseconds(),3)}},D=function(e){"es"==e?(r=["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],i=["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],a=["Dom","Lun","Mar","Mie","Jue","Vie","Sab"],s=["Domingo","Lunes","Martes","Miércoles","Jueves","Viernes","Sábado"],o={"do":0,dom:0,domingo:0,lu:1,lun:1,lunes:1,ma:2,mar:2,martes:2,mi:3,mie:3,miercoles:3,ju:4,jue:4,jueves:4,vi:5,vie:5,viernes:5,sa:6,sab:6,sabado:6},n=i.concat(r),u=["do","dom","domingo","lu","lun","lunes","ma","mar","martes","mi","mie","miércoles","ju","jue","jueves","vi","vie","viernes","sa","sab","sábado"],d={ene:0,enero:0,feb:1,febrero:1,mar:2,marzo:2,abr:3,abril:3,may:4,mayo:4,jun:5,junio:5,jul:6,julio:6,ago:7,agosto:7,sep:8,septiembre:8,oct:9,octubre:9,nov:10,noviembre:10,dic:11,diciembre:11}):"fr"==e?(r=["Jan","Fév","Mar","Avr","Mai","Jui","Jul","Aoû","Sep","Oct","Nov","Déc"],i=["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],a=["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],s=["Dimanchi","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],o={di:0,dim:0,dimanchi:0,lu:1,lun:1,lundi:1,ma:2,mar:2,mardi:2,me:3,mer:3,mercredi:3,je:4,jeu:4,jeudi:4,ve:5,ven:5,vendredi:5,sa:6,sam:6,samedi:6},n=i.concat(r),u=["di","dim","dimanchi","lu","lun","lundi","ma","mar","mardi","me","mer","mercredi","je","jeu","jeudi","ve","ven","vendredi","sa","sam","samedi"],d={jan:0,janvier:0,fév:1,février:1,mar:2,mars:2,avr:3,avril:3,mai:4,jui:5,juin:5,jul:6,juillet:6,aoû:7,août:7,sep:8,septembre:8,oct:9,octobre:9,nov:10,novembre:10,déc:11,décembre:11}):"pt-BR"==e?(r=["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],i=["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],a=["Dom","Seg","Ter","Qua","Qui","Sex","Sab"],s=["Domingo","Segunda","Terça","Quarta","Quinta","Sexta","Sábado"],o={"do":0,dom:0,domingo:0,se:1,seg:1,segunda:1,te:2,ter:2,terca:2,qa:3,qua:3,quarta:3,qi:4,qui:4,quinta:4,se:5,sex:5,sexta:5,sa:6,sab:6,sabado:6},n=i.concat(r),u=["do","dom","domingo","se","seg","segunda","te","ter","terça","qa","qua","quarta","qi","qui","quinta","se","sex","sexta","sa","sab","sábado"],d={jan:0,janeiro:0,fev:1,fevereiro:1,mar:2,março:2,abr:3,abril:3,mai:4,jun:5,junho:5,jul:6,julho:6,ago:7,agosto:7,set:8,setembro:8,out:9,outubro:9,nov:10,novembro:10,dez:11,dezembro:11}):"ru"==e&&(r=["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],i=["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],a=["Вс","Пн","Вт","Ср","Чт","Пт","Сб"],s=["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"],o={вс:0,вск:0,воскресенье:0,пн:1,пон:1,понедельник:1,вт:2,вто:2,вторник:2,ср:3,сре:3,среда:3,чт:4,чет:4,четверг:4,пт:5,пят:5,пятница:5,сб:6,суб:6,суббота:6},n=i.concat(r),u=["вс","вск","воскресенье","пн","пон","понедельник","вт","вто","вторник","ср","сре","среда","чт","чет","четверг","пт","пят","пятница","сб","суб","суббота"],d={янв:0,январь:0,фев:1,февраль:1,мар:2,март:2,апр:3,апрель:3,май:4,июн:5,июнь:5,июл:6,июль:6,авг:7,август:7,сен:8,сентябрь:8,окт:9,октябрь:9,ноя:10,ноябрь:10,дек:11,декабрь:11})};"undefined"!=typeof module&&"object"==typeof module.exports?module.exports.language=D:"object"==typeof exports?exports.language=D:"undefined"==typeof Date.language&&(Date.language=D)}(); \ No newline at end of file diff --git a/test/date-language-ru-test.js b/test/date-language-ru-test.js new file mode 100644 index 0000000..03a3be1 --- /dev/null +++ b/test/date-language-ru-test.js @@ -0,0 +1,82 @@ +var vows = require('vows'); +var assert = require('assert'); + +require('../lib/date-utils.min.js').language('ru'); + +vows.describe('Date language Russian').addBatch({ + 'spanish dates are correct': { + topic: function () { + var instance = new Date('January 1, 2016 16:00:00'); + + return instance; + }, + 'DDDD is correctly set': function (topic) { + assert.equal(topic.toFormat('DDDD'), 'Пятница'); + }, + 'MMMM is correctly set': function (topic) { + assert.equal(topic.toFormat('MMMM'), 'Январь') + } + }, + + 'can return correct months in russian with MMM': { + topic: function (){ + return new Date('January 1, 2016 16:00:00') + }, + 'returns Ene correcty': function (date) { assert.equal(date.addMonths(0).toFormat('MMM'), 'Янв'); }, + 'returns Feb correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Фев'); }, + 'returns Mar correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Мар'); }, + 'returns Abr correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Апр'); }, + 'returns May correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Май'); }, + 'returns Jun correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Июн'); }, + 'returns Jul correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Июл'); }, + 'returns Ago correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Авг'); }, + 'returns Sep correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Сен'); }, + 'returns Oct correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Окт'); }, + 'returns Nov correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Ноя'); }, + 'returns Dic correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMM'), 'Дек'); }, + }, + + 'can return correct months in russian with MMMM': { + topic: function () { + return new Date('January 1, 2016 16:00:00') + }, + 'returns Enero correcty': function (date) { assert.equal(date.addMonths(0).toFormat('MMMM'), 'Январь'); }, + 'returns Febrero correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMMM'), 'Февраль'); }, + 'returns Marzo correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMMM'), 'Март'); }, + 'returns Abril correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMMM'), 'Апрель'); }, + 'returns Mayo correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMMM'), 'Май'); }, + 'returns Junio correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMMM'), 'Июнь'); }, + 'returns Julio correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMMM'), 'Июль'); }, + 'returns Agosto correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMMM'), 'Август'); }, + 'returns Septiembre correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMMM'), 'Сентябрь'); }, + 'returns Octubre correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMMM'), 'Октябрь'); }, + 'returns Noviembre correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMMM'), 'Ноябрь'); }, + 'returns Diciembre correcty': function (date) { assert.equal(date.addMonths(1).toFormat('MMMM'), 'Декабрь'); }, + }, + + 'can return correct days in russian with DDD': { + topic: function () { + return new Date('January 3, 2016 16:00:00') + }, + 'returns Dom correcty': function (date) { assert.equal(date.addDays(0).toFormat('DDD'), 'Вс'); }, + 'returns Lun correcty': function (date) { assert.equal(date.addDays(1).toFormat('DDD'), 'Пн'); }, + 'returns Mar correcty': function (date) { assert.equal(date.addDays(1).toFormat('DDD'), 'Вт'); }, + 'returns Mie correcty': function (date) { assert.equal(date.addDays(1).toFormat('DDD'), 'Ср'); }, + 'returns Jue correcty': function (date) { assert.equal(date.addDays(1).toFormat('DDD'), 'Чт'); }, + 'returns Vie correcty': function (date) { assert.equal(date.addDays(1).toFormat('DDD'), 'Пт'); }, + 'returns Sab correcty': function (date) { assert.equal(date.addDays(1).toFormat('DDD'), 'Сб'); }, + }, + + 'can return correct days in russian with DDDD': { + topic: function () { + return new Date('January 3, 2016 16:00:00') + }, + 'returns Domingo correcty': function (date) { assert.equal(date.addDays(0).toFormat('DDDD'), 'Воскресенье'); }, + 'returns Lunes correcty': function (date) { assert.equal(date.addDays(1).toFormat('DDDD'), 'Понедельник'); }, + 'returns Martes correcty': function (date) { assert.equal(date.addDays(1).toFormat('DDDD'), 'Вторник'); }, + 'returns Miércoles correcty': function (date) { assert.equal(date.addDays(1).toFormat('DDDD'), 'Среда'); }, + 'returns Jueves correcty': function (date) { assert.equal(date.addDays(1).toFormat('DDDD'), 'Четверг'); }, + 'returns Viernes correcty': function (date) { assert.equal(date.addDays(1).toFormat('DDDD'), 'Пятница'); }, + 'returns Sábado correcty': function (date) { assert.equal(date.addDays(1).toFormat('DDDD'), 'Суббота'); }, + } +}).export(module); From 19e8a6a931fd723d138ac338530811806025a4e5 Mon Sep 17 00:00:00 2001 From: Alexey Slynko Date: Fri, 2 Sep 2016 18:51:37 +0300 Subject: [PATCH 2/2] feature: add russian to supported language list --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 22b291d..dd21fe4 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,7 @@ Supported languages: - Spanish - "es" - French - "fr" - Portuguese Brazilian - "pt-BR" +- Russian - "ru" ## Documentation