moment-with-langs.js 294 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521
  1. //! moment.js
  2. //! version : 2.7.0
  3. //! authors : Tim Wood, Iskren Chernev, Moment.js contributors
  4. //! license : MIT
  5. //! momentjs.com
  6. (function (undefined) {
  7. /************************************
  8. Constants
  9. ************************************/
  10. var moment,
  11. VERSION = "2.7.0",
  12. // the global-scope this is NOT the global object in Node.js
  13. globalScope = typeof global !== 'undefined' ? global : this,
  14. oldGlobalMoment,
  15. round = Math.round,
  16. i,
  17. YEAR = 0,
  18. MONTH = 1,
  19. DATE = 2,
  20. HOUR = 3,
  21. MINUTE = 4,
  22. SECOND = 5,
  23. MILLISECOND = 6,
  24. // internal storage for language config files
  25. languages = {},
  26. // moment internal properties
  27. momentProperties = {
  28. _isAMomentObject: null,
  29. _i : null,
  30. _f : null,
  31. _l : null,
  32. _strict : null,
  33. _tzm : null,
  34. _isUTC : null,
  35. _offset : null, // optional. Combine with _isUTC
  36. _pf : null,
  37. _lang : null // optional
  38. },
  39. // check for nodeJS
  40. hasModule = (typeof module !== 'undefined' && module.exports),
  41. // ASP.NET json date format regex
  42. aspNetJsonRegex = /^\/?Date\((\-?\d+)/i,
  43. aspNetTimeSpanJsonRegex = /(\-)?(?:(\d*)\.)?(\d+)\:(\d+)(?:\:(\d+)\.?(\d{3})?)?/,
  44. // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html
  45. // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere
  46. isoDurationRegex = /^(-)?P(?:(?:([0-9,.]*)Y)?(?:([0-9,.]*)M)?(?:([0-9,.]*)D)?(?:T(?:([0-9,.]*)H)?(?:([0-9,.]*)M)?(?:([0-9,.]*)S)?)?|([0-9,.]*)W)$/,
  47. // format tokens
  48. formattingTokens = /(\[[^\[]*\])|(\\)?(Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Q|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|mm?|ss?|S{1,4}|X|zz?|ZZ?|.)/g,
  49. localFormattingTokens = /(\[[^\[]*\])|(\\)?(LT|LL?L?L?|l{1,4})/g,
  50. // parsing token regexes
  51. parseTokenOneOrTwoDigits = /\d\d?/, // 0 - 99
  52. parseTokenOneToThreeDigits = /\d{1,3}/, // 0 - 999
  53. parseTokenOneToFourDigits = /\d{1,4}/, // 0 - 9999
  54. parseTokenOneToSixDigits = /[+\-]?\d{1,6}/, // -999,999 - 999,999
  55. parseTokenDigits = /\d+/, // nonzero number of digits
  56. parseTokenWord = /[0-9]*['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+|[\u0600-\u06FF\/]+(\s*?[\u0600-\u06FF]+){1,2}/i, // any word (or two) characters or numbers including two/three word month in arabic.
  57. parseTokenTimezone = /Z|[\+\-]\d\d:?\d\d/gi, // +00:00 -00:00 +0000 -0000 or Z
  58. parseTokenT = /T/i, // T (ISO separator)
  59. parseTokenTimestampMs = /[\+\-]?\d+(\.\d{1,3})?/, // 123456789 123456789.123
  60. parseTokenOrdinal = /\d{1,2}/,
  61. //strict parsing regexes
  62. parseTokenOneDigit = /\d/, // 0 - 9
  63. parseTokenTwoDigits = /\d\d/, // 00 - 99
  64. parseTokenThreeDigits = /\d{3}/, // 000 - 999
  65. parseTokenFourDigits = /\d{4}/, // 0000 - 9999
  66. parseTokenSixDigits = /[+-]?\d{6}/, // -999,999 - 999,999
  67. parseTokenSignedNumber = /[+-]?\d+/, // -inf - inf
  68. // iso 8601 regex
  69. // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)
  70. isoRegex = /^\s*(?:[+-]\d{6}|\d{4})-(?:(\d\d-\d\d)|(W\d\d$)|(W\d\d-\d)|(\d\d\d))((T| )(\d\d(:\d\d(:\d\d(\.\d+)?)?)?)?([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,
  71. isoFormat = 'YYYY-MM-DDTHH:mm:ssZ',
  72. isoDates = [
  73. ['YYYYYY-MM-DD', /[+-]\d{6}-\d{2}-\d{2}/],
  74. ['YYYY-MM-DD', /\d{4}-\d{2}-\d{2}/],
  75. ['GGGG-[W]WW-E', /\d{4}-W\d{2}-\d/],
  76. ['GGGG-[W]WW', /\d{4}-W\d{2}/],
  77. ['YYYY-DDD', /\d{4}-\d{3}/]
  78. ],
  79. // iso time formats and regexes
  80. isoTimes = [
  81. ['HH:mm:ss.SSSS', /(T| )\d\d:\d\d:\d\d\.\d+/],
  82. ['HH:mm:ss', /(T| )\d\d:\d\d:\d\d/],
  83. ['HH:mm', /(T| )\d\d:\d\d/],
  84. ['HH', /(T| )\d\d/]
  85. ],
  86. // timezone chunker "+10:00" > ["10", "00"] or "-1530" > ["-15", "30"]
  87. parseTimezoneChunker = /([\+\-]|\d\d)/gi,
  88. // getter and setter names
  89. proxyGettersAndSetters = 'Date|Hours|Minutes|Seconds|Milliseconds'.split('|'),
  90. unitMillisecondFactors = {
  91. 'Milliseconds' : 1,
  92. 'Seconds' : 1e3,
  93. 'Minutes' : 6e4,
  94. 'Hours' : 36e5,
  95. 'Days' : 864e5,
  96. 'Months' : 2592e6,
  97. 'Years' : 31536e6
  98. },
  99. unitAliases = {
  100. ms : 'millisecond',
  101. s : 'second',
  102. m : 'minute',
  103. h : 'hour',
  104. d : 'day',
  105. D : 'date',
  106. w : 'week',
  107. W : 'isoWeek',
  108. M : 'month',
  109. Q : 'quarter',
  110. y : 'year',
  111. DDD : 'dayOfYear',
  112. e : 'weekday',
  113. E : 'isoWeekday',
  114. gg: 'weekYear',
  115. GG: 'isoWeekYear'
  116. },
  117. camelFunctions = {
  118. dayofyear : 'dayOfYear',
  119. isoweekday : 'isoWeekday',
  120. isoweek : 'isoWeek',
  121. weekyear : 'weekYear',
  122. isoweekyear : 'isoWeekYear'
  123. },
  124. // format function strings
  125. formatFunctions = {},
  126. // default relative time thresholds
  127. relativeTimeThresholds = {
  128. s: 45, //seconds to minutes
  129. m: 45, //minutes to hours
  130. h: 22, //hours to days
  131. dd: 25, //days to month (month == 1)
  132. dm: 45, //days to months (months > 1)
  133. dy: 345 //days to year
  134. },
  135. // tokens to ordinalize and pad
  136. ordinalizeTokens = 'DDD w W M D d'.split(' '),
  137. paddedTokens = 'M D H h m s w W'.split(' '),
  138. formatTokenFunctions = {
  139. M : function () {
  140. return this.month() + 1;
  141. },
  142. MMM : function (format) {
  143. return this.lang().monthsShort(this, format);
  144. },
  145. MMMM : function (format) {
  146. return this.lang().months(this, format);
  147. },
  148. D : function () {
  149. return this.date();
  150. },
  151. DDD : function () {
  152. return this.dayOfYear();
  153. },
  154. d : function () {
  155. return this.day();
  156. },
  157. dd : function (format) {
  158. return this.lang().weekdaysMin(this, format);
  159. },
  160. ddd : function (format) {
  161. return this.lang().weekdaysShort(this, format);
  162. },
  163. dddd : function (format) {
  164. return this.lang().weekdays(this, format);
  165. },
  166. w : function () {
  167. return this.week();
  168. },
  169. W : function () {
  170. return this.isoWeek();
  171. },
  172. YY : function () {
  173. return leftZeroFill(this.year() % 100, 2);
  174. },
  175. YYYY : function () {
  176. return leftZeroFill(this.year(), 4);
  177. },
  178. YYYYY : function () {
  179. return leftZeroFill(this.year(), 5);
  180. },
  181. YYYYYY : function () {
  182. var y = this.year(), sign = y >= 0 ? '+' : '-';
  183. return sign + leftZeroFill(Math.abs(y), 6);
  184. },
  185. gg : function () {
  186. return leftZeroFill(this.weekYear() % 100, 2);
  187. },
  188. gggg : function () {
  189. return leftZeroFill(this.weekYear(), 4);
  190. },
  191. ggggg : function () {
  192. return leftZeroFill(this.weekYear(), 5);
  193. },
  194. GG : function () {
  195. return leftZeroFill(this.isoWeekYear() % 100, 2);
  196. },
  197. GGGG : function () {
  198. return leftZeroFill(this.isoWeekYear(), 4);
  199. },
  200. GGGGG : function () {
  201. return leftZeroFill(this.isoWeekYear(), 5);
  202. },
  203. e : function () {
  204. return this.weekday();
  205. },
  206. E : function () {
  207. return this.isoWeekday();
  208. },
  209. a : function () {
  210. return this.lang().meridiem(this.hours(), this.minutes(), true);
  211. },
  212. A : function () {
  213. return this.lang().meridiem(this.hours(), this.minutes(), false);
  214. },
  215. H : function () {
  216. return this.hours();
  217. },
  218. h : function () {
  219. return this.hours() % 12 || 12;
  220. },
  221. m : function () {
  222. return this.minutes();
  223. },
  224. s : function () {
  225. return this.seconds();
  226. },
  227. S : function () {
  228. return toInt(this.milliseconds() / 100);
  229. },
  230. SS : function () {
  231. return leftZeroFill(toInt(this.milliseconds() / 10), 2);
  232. },
  233. SSS : function () {
  234. return leftZeroFill(this.milliseconds(), 3);
  235. },
  236. SSSS : function () {
  237. return leftZeroFill(this.milliseconds(), 3);
  238. },
  239. Z : function () {
  240. var a = -this.zone(),
  241. b = "+";
  242. if (a < 0) {
  243. a = -a;
  244. b = "-";
  245. }
  246. return b + leftZeroFill(toInt(a / 60), 2) + ":" + leftZeroFill(toInt(a) % 60, 2);
  247. },
  248. ZZ : function () {
  249. var a = -this.zone(),
  250. b = "+";
  251. if (a < 0) {
  252. a = -a;
  253. b = "-";
  254. }
  255. return b + leftZeroFill(toInt(a / 60), 2) + leftZeroFill(toInt(a) % 60, 2);
  256. },
  257. z : function () {
  258. return this.zoneAbbr();
  259. },
  260. zz : function () {
  261. return this.zoneName();
  262. },
  263. X : function () {
  264. return this.unix();
  265. },
  266. Q : function () {
  267. return this.quarter();
  268. }
  269. },
  270. lists = ['months', 'monthsShort', 'weekdays', 'weekdaysShort', 'weekdaysMin'];
  271. // Pick the first defined of two or three arguments. dfl comes from
  272. // default.
  273. function dfl(a, b, c) {
  274. switch (arguments.length) {
  275. case 2: return a != null ? a : b;
  276. case 3: return a != null ? a : b != null ? b : c;
  277. default: throw new Error("Implement me");
  278. }
  279. }
  280. function defaultParsingFlags() {
  281. // We need to deep clone this object, and es5 standard is not very
  282. // helpful.
  283. return {
  284. empty : false,
  285. unusedTokens : [],
  286. unusedInput : [],
  287. overflow : -2,
  288. charsLeftOver : 0,
  289. nullInput : false,
  290. invalidMonth : null,
  291. invalidFormat : false,
  292. userInvalidated : false,
  293. iso: false
  294. };
  295. }
  296. function deprecate(msg, fn) {
  297. var firstTime = true;
  298. function printMsg() {
  299. if (moment.suppressDeprecationWarnings === false &&
  300. typeof console !== 'undefined' && console.warn) {
  301. console.warn("Deprecation warning: " + msg);
  302. }
  303. }
  304. return extend(function () {
  305. if (firstTime) {
  306. printMsg();
  307. firstTime = false;
  308. }
  309. return fn.apply(this, arguments);
  310. }, fn);
  311. }
  312. function padToken(func, count) {
  313. return function (a) {
  314. return leftZeroFill(func.call(this, a), count);
  315. };
  316. }
  317. function ordinalizeToken(func, period) {
  318. return function (a) {
  319. return this.lang().ordinal(func.call(this, a), period);
  320. };
  321. }
  322. while (ordinalizeTokens.length) {
  323. i = ordinalizeTokens.pop();
  324. formatTokenFunctions[i + 'o'] = ordinalizeToken(formatTokenFunctions[i], i);
  325. }
  326. while (paddedTokens.length) {
  327. i = paddedTokens.pop();
  328. formatTokenFunctions[i + i] = padToken(formatTokenFunctions[i], 2);
  329. }
  330. formatTokenFunctions.DDDD = padToken(formatTokenFunctions.DDD, 3);
  331. /************************************
  332. Constructors
  333. ************************************/
  334. function Language() {
  335. }
  336. // Moment prototype object
  337. function Moment(config) {
  338. checkOverflow(config);
  339. extend(this, config);
  340. }
  341. // Duration Constructor
  342. function Duration(duration) {
  343. var normalizedInput = normalizeObjectUnits(duration),
  344. years = normalizedInput.year || 0,
  345. quarters = normalizedInput.quarter || 0,
  346. months = normalizedInput.month || 0,
  347. weeks = normalizedInput.week || 0,
  348. days = normalizedInput.day || 0,
  349. hours = normalizedInput.hour || 0,
  350. minutes = normalizedInput.minute || 0,
  351. seconds = normalizedInput.second || 0,
  352. milliseconds = normalizedInput.millisecond || 0;
  353. // representation for dateAddRemove
  354. this._milliseconds = +milliseconds +
  355. seconds * 1e3 + // 1000
  356. minutes * 6e4 + // 1000 * 60
  357. hours * 36e5; // 1000 * 60 * 60
  358. // Because of dateAddRemove treats 24 hours as different from a
  359. // day when working around DST, we need to store them separately
  360. this._days = +days +
  361. weeks * 7;
  362. // It is impossible translate months into days without knowing
  363. // which months you are are talking about, so we have to store
  364. // it separately.
  365. this._months = +months +
  366. quarters * 3 +
  367. years * 12;
  368. this._data = {};
  369. this._bubble();
  370. }
  371. /************************************
  372. Helpers
  373. ************************************/
  374. function extend(a, b) {
  375. for (var i in b) {
  376. if (b.hasOwnProperty(i)) {
  377. a[i] = b[i];
  378. }
  379. }
  380. if (b.hasOwnProperty("toString")) {
  381. a.toString = b.toString;
  382. }
  383. if (b.hasOwnProperty("valueOf")) {
  384. a.valueOf = b.valueOf;
  385. }
  386. return a;
  387. }
  388. function cloneMoment(m) {
  389. var result = {}, i;
  390. for (i in m) {
  391. if (m.hasOwnProperty(i) && momentProperties.hasOwnProperty(i)) {
  392. result[i] = m[i];
  393. }
  394. }
  395. return result;
  396. }
  397. function absRound(number) {
  398. if (number < 0) {
  399. return Math.ceil(number);
  400. } else {
  401. return Math.floor(number);
  402. }
  403. }
  404. // left zero fill a number
  405. // see http://jsperf.com/left-zero-filling for performance comparison
  406. function leftZeroFill(number, targetLength, forceSign) {
  407. var output = '' + Math.abs(number),
  408. sign = number >= 0;
  409. while (output.length < targetLength) {
  410. output = '0' + output;
  411. }
  412. return (sign ? (forceSign ? '+' : '') : '-') + output;
  413. }
  414. // helper function for _.addTime and _.subtractTime
  415. function addOrSubtractDurationFromMoment(mom, duration, isAdding, updateOffset) {
  416. var milliseconds = duration._milliseconds,
  417. days = duration._days,
  418. months = duration._months;
  419. updateOffset = updateOffset == null ? true : updateOffset;
  420. if (milliseconds) {
  421. mom._d.setTime(+mom._d + milliseconds * isAdding);
  422. }
  423. if (days) {
  424. rawSetter(mom, 'Date', rawGetter(mom, 'Date') + days * isAdding);
  425. }
  426. if (months) {
  427. rawMonthSetter(mom, rawGetter(mom, 'Month') + months * isAdding);
  428. }
  429. if (updateOffset) {
  430. moment.updateOffset(mom, days || months);
  431. }
  432. }
  433. // check if is an array
  434. function isArray(input) {
  435. return Object.prototype.toString.call(input) === '[object Array]';
  436. }
  437. function isDate(input) {
  438. return Object.prototype.toString.call(input) === '[object Date]' ||
  439. input instanceof Date;
  440. }
  441. // compare two arrays, return the number of differences
  442. function compareArrays(array1, array2, dontConvert) {
  443. var len = Math.min(array1.length, array2.length),
  444. lengthDiff = Math.abs(array1.length - array2.length),
  445. diffs = 0,
  446. i;
  447. for (i = 0; i < len; i++) {
  448. if ((dontConvert && array1[i] !== array2[i]) ||
  449. (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {
  450. diffs++;
  451. }
  452. }
  453. return diffs + lengthDiff;
  454. }
  455. function normalizeUnits(units) {
  456. if (units) {
  457. var lowered = units.toLowerCase().replace(/(.)s$/, '$1');
  458. units = unitAliases[units] || camelFunctions[lowered] || lowered;
  459. }
  460. return units;
  461. }
  462. function normalizeObjectUnits(inputObject) {
  463. var normalizedInput = {},
  464. normalizedProp,
  465. prop;
  466. for (prop in inputObject) {
  467. if (inputObject.hasOwnProperty(prop)) {
  468. normalizedProp = normalizeUnits(prop);
  469. if (normalizedProp) {
  470. normalizedInput[normalizedProp] = inputObject[prop];
  471. }
  472. }
  473. }
  474. return normalizedInput;
  475. }
  476. function makeList(field) {
  477. var count, setter;
  478. if (field.indexOf('week') === 0) {
  479. count = 7;
  480. setter = 'day';
  481. }
  482. else if (field.indexOf('month') === 0) {
  483. count = 12;
  484. setter = 'month';
  485. }
  486. else {
  487. return;
  488. }
  489. moment[field] = function (format, index) {
  490. var i, getter,
  491. method = moment.fn._lang[field],
  492. results = [];
  493. if (typeof format === 'number') {
  494. index = format;
  495. format = undefined;
  496. }
  497. getter = function (i) {
  498. var m = moment().utc().set(setter, i);
  499. return method.call(moment.fn._lang, m, format || '');
  500. };
  501. if (index != null) {
  502. return getter(index);
  503. }
  504. else {
  505. for (i = 0; i < count; i++) {
  506. results.push(getter(i));
  507. }
  508. return results;
  509. }
  510. };
  511. }
  512. function toInt(argumentForCoercion) {
  513. var coercedNumber = +argumentForCoercion,
  514. value = 0;
  515. if (coercedNumber !== 0 && isFinite(coercedNumber)) {
  516. if (coercedNumber >= 0) {
  517. value = Math.floor(coercedNumber);
  518. } else {
  519. value = Math.ceil(coercedNumber);
  520. }
  521. }
  522. return value;
  523. }
  524. function daysInMonth(year, month) {
  525. return new Date(Date.UTC(year, month + 1, 0)).getUTCDate();
  526. }
  527. function weeksInYear(year, dow, doy) {
  528. return weekOfYear(moment([year, 11, 31 + dow - doy]), dow, doy).week;
  529. }
  530. function daysInYear(year) {
  531. return isLeapYear(year) ? 366 : 365;
  532. }
  533. function isLeapYear(year) {
  534. return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;
  535. }
  536. function checkOverflow(m) {
  537. var overflow;
  538. if (m._a && m._pf.overflow === -2) {
  539. overflow =
  540. m._a[MONTH] < 0 || m._a[MONTH] > 11 ? MONTH :
  541. m._a[DATE] < 1 || m._a[DATE] > daysInMonth(m._a[YEAR], m._a[MONTH]) ? DATE :
  542. m._a[HOUR] < 0 || m._a[HOUR] > 23 ? HOUR :
  543. m._a[MINUTE] < 0 || m._a[MINUTE] > 59 ? MINUTE :
  544. m._a[SECOND] < 0 || m._a[SECOND] > 59 ? SECOND :
  545. m._a[MILLISECOND] < 0 || m._a[MILLISECOND] > 999 ? MILLISECOND :
  546. -1;
  547. if (m._pf._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {
  548. overflow = DATE;
  549. }
  550. m._pf.overflow = overflow;
  551. }
  552. }
  553. function isValid(m) {
  554. if (m._isValid == null) {
  555. m._isValid = !isNaN(m._d.getTime()) &&
  556. m._pf.overflow < 0 &&
  557. !m._pf.empty &&
  558. !m._pf.invalidMonth &&
  559. !m._pf.nullInput &&
  560. !m._pf.invalidFormat &&
  561. !m._pf.userInvalidated;
  562. if (m._strict) {
  563. m._isValid = m._isValid &&
  564. m._pf.charsLeftOver === 0 &&
  565. m._pf.unusedTokens.length === 0;
  566. }
  567. }
  568. return m._isValid;
  569. }
  570. function normalizeLanguage(key) {
  571. return key ? key.toLowerCase().replace('_', '-') : key;
  572. }
  573. // Return a moment from input, that is local/utc/zone equivalent to model.
  574. function makeAs(input, model) {
  575. return model._isUTC ? moment(input).zone(model._offset || 0) :
  576. moment(input).local();
  577. }
  578. /************************************
  579. Languages
  580. ************************************/
  581. extend(Language.prototype, {
  582. set : function (config) {
  583. var prop, i;
  584. for (i in config) {
  585. prop = config[i];
  586. if (typeof prop === 'function') {
  587. this[i] = prop;
  588. } else {
  589. this['_' + i] = prop;
  590. }
  591. }
  592. },
  593. _months : "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
  594. months : function (m) {
  595. return this._months[m.month()];
  596. },
  597. _monthsShort : "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
  598. monthsShort : function (m) {
  599. return this._monthsShort[m.month()];
  600. },
  601. monthsParse : function (monthName) {
  602. var i, mom, regex;
  603. if (!this._monthsParse) {
  604. this._monthsParse = [];
  605. }
  606. for (i = 0; i < 12; i++) {
  607. // make the regex if we don't have it already
  608. if (!this._monthsParse[i]) {
  609. mom = moment.utc([2000, i]);
  610. regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');
  611. this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');
  612. }
  613. // test the regex
  614. if (this._monthsParse[i].test(monthName)) {
  615. return i;
  616. }
  617. }
  618. },
  619. _weekdays : "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
  620. weekdays : function (m) {
  621. return this._weekdays[m.day()];
  622. },
  623. _weekdaysShort : "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
  624. weekdaysShort : function (m) {
  625. return this._weekdaysShort[m.day()];
  626. },
  627. _weekdaysMin : "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
  628. weekdaysMin : function (m) {
  629. return this._weekdaysMin[m.day()];
  630. },
  631. weekdaysParse : function (weekdayName) {
  632. var i, mom, regex;
  633. if (!this._weekdaysParse) {
  634. this._weekdaysParse = [];
  635. }
  636. for (i = 0; i < 7; i++) {
  637. // make the regex if we don't have it already
  638. if (!this._weekdaysParse[i]) {
  639. mom = moment([2000, 1]).day(i);
  640. regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');
  641. this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');
  642. }
  643. // test the regex
  644. if (this._weekdaysParse[i].test(weekdayName)) {
  645. return i;
  646. }
  647. }
  648. },
  649. _longDateFormat : {
  650. LT : "h:mm A",
  651. L : "MM/DD/YYYY",
  652. LL : "MMMM D YYYY",
  653. LLL : "MMMM D YYYY LT",
  654. LLLL : "dddd, MMMM D YYYY LT"
  655. },
  656. longDateFormat : function (key) {
  657. var output = this._longDateFormat[key];
  658. if (!output && this._longDateFormat[key.toUpperCase()]) {
  659. output = this._longDateFormat[key.toUpperCase()].replace(/MMMM|MM|DD|dddd/g, function (val) {
  660. return val.slice(1);
  661. });
  662. this._longDateFormat[key] = output;
  663. }
  664. return output;
  665. },
  666. isPM : function (input) {
  667. // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays
  668. // Using charAt should be more compatible.
  669. return ((input + '').toLowerCase().charAt(0) === 'p');
  670. },
  671. _meridiemParse : /[ap]\.?m?\.?/i,
  672. meridiem : function (hours, minutes, isLower) {
  673. if (hours > 11) {
  674. return isLower ? 'pm' : 'PM';
  675. } else {
  676. return isLower ? 'am' : 'AM';
  677. }
  678. },
  679. _calendar : {
  680. sameDay : '[Today at] LT',
  681. nextDay : '[Tomorrow at] LT',
  682. nextWeek : 'dddd [at] LT',
  683. lastDay : '[Yesterday at] LT',
  684. lastWeek : '[Last] dddd [at] LT',
  685. sameElse : 'L'
  686. },
  687. calendar : function (key, mom) {
  688. var output = this._calendar[key];
  689. return typeof output === 'function' ? output.apply(mom) : output;
  690. },
  691. _relativeTime : {
  692. future : "in %s",
  693. past : "%s ago",
  694. s : "a few seconds",
  695. m : "a minute",
  696. mm : "%d minutes",
  697. h : "an hour",
  698. hh : "%d hours",
  699. d : "a day",
  700. dd : "%d days",
  701. M : "a month",
  702. MM : "%d months",
  703. y : "a year",
  704. yy : "%d years"
  705. },
  706. relativeTime : function (number, withoutSuffix, string, isFuture) {
  707. var output = this._relativeTime[string];
  708. return (typeof output === 'function') ?
  709. output(number, withoutSuffix, string, isFuture) :
  710. output.replace(/%d/i, number);
  711. },
  712. pastFuture : function (diff, output) {
  713. var format = this._relativeTime[diff > 0 ? 'future' : 'past'];
  714. return typeof format === 'function' ? format(output) : format.replace(/%s/i, output);
  715. },
  716. ordinal : function (number) {
  717. return this._ordinal.replace("%d", number);
  718. },
  719. _ordinal : "%d",
  720. preparse : function (string) {
  721. return string;
  722. },
  723. postformat : function (string) {
  724. return string;
  725. },
  726. week : function (mom) {
  727. return weekOfYear(mom, this._week.dow, this._week.doy).week;
  728. },
  729. _week : {
  730. dow : 0, // Sunday is the first day of the week.
  731. doy : 6 // The week that contains Jan 1st is the first week of the year.
  732. },
  733. _invalidDate: 'Invalid date',
  734. invalidDate: function () {
  735. return this._invalidDate;
  736. }
  737. });
  738. // Loads a language definition into the `languages` cache. The function
  739. // takes a key and optionally values. If not in the browser and no values
  740. // are provided, it will load the language file module. As a convenience,
  741. // this function also returns the language values.
  742. function loadLang(key, values) {
  743. values.abbr = key;
  744. if (!languages[key]) {
  745. languages[key] = new Language();
  746. }
  747. languages[key].set(values);
  748. return languages[key];
  749. }
  750. // Remove a language from the `languages` cache. Mostly useful in tests.
  751. function unloadLang(key) {
  752. delete languages[key];
  753. }
  754. // Determines which language definition to use and returns it.
  755. //
  756. // With no parameters, it will return the global language. If you
  757. // pass in a language key, such as 'en', it will return the
  758. // definition for 'en', so long as 'en' has already been loaded using
  759. // moment.lang.
  760. function getLangDefinition(key) {
  761. var i = 0, j, lang, next, split,
  762. get = function (k) {
  763. if (!languages[k] && hasModule) {
  764. try {
  765. require('./lang/' + k);
  766. } catch (e) { }
  767. }
  768. return languages[k];
  769. };
  770. if (!key) {
  771. return moment.fn._lang;
  772. }
  773. if (!isArray(key)) {
  774. //short-circuit everything else
  775. lang = get(key);
  776. if (lang) {
  777. return lang;
  778. }
  779. key = [key];
  780. }
  781. //pick the language from the array
  782. //try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each
  783. //substring from most specific to least, but move to the next array item if it's a more specific variant than the current root
  784. while (i < key.length) {
  785. split = normalizeLanguage(key[i]).split('-');
  786. j = split.length;
  787. next = normalizeLanguage(key[i + 1]);
  788. next = next ? next.split('-') : null;
  789. while (j > 0) {
  790. lang = get(split.slice(0, j).join('-'));
  791. if (lang) {
  792. return lang;
  793. }
  794. if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {
  795. //the next array item is better than a shallower substring of this one
  796. break;
  797. }
  798. j--;
  799. }
  800. i++;
  801. }
  802. return moment.fn._lang;
  803. }
  804. /************************************
  805. Formatting
  806. ************************************/
  807. function removeFormattingTokens(input) {
  808. if (input.match(/\[[\s\S]/)) {
  809. return input.replace(/^\[|\]$/g, "");
  810. }
  811. return input.replace(/\\/g, "");
  812. }
  813. function makeFormatFunction(format) {
  814. var array = format.match(formattingTokens), i, length;
  815. for (i = 0, length = array.length; i < length; i++) {
  816. if (formatTokenFunctions[array[i]]) {
  817. array[i] = formatTokenFunctions[array[i]];
  818. } else {
  819. array[i] = removeFormattingTokens(array[i]);
  820. }
  821. }
  822. return function (mom) {
  823. var output = "";
  824. for (i = 0; i < length; i++) {
  825. output += array[i] instanceof Function ? array[i].call(mom, format) : array[i];
  826. }
  827. return output;
  828. };
  829. }
  830. // format date using native date object
  831. function formatMoment(m, format) {
  832. if (!m.isValid()) {
  833. return m.lang().invalidDate();
  834. }
  835. format = expandFormat(format, m.lang());
  836. if (!formatFunctions[format]) {
  837. formatFunctions[format] = makeFormatFunction(format);
  838. }
  839. return formatFunctions[format](m);
  840. }
  841. function expandFormat(format, lang) {
  842. var i = 5;
  843. function replaceLongDateFormatTokens(input) {
  844. return lang.longDateFormat(input) || input;
  845. }
  846. localFormattingTokens.lastIndex = 0;
  847. while (i >= 0 && localFormattingTokens.test(format)) {
  848. format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);
  849. localFormattingTokens.lastIndex = 0;
  850. i -= 1;
  851. }
  852. return format;
  853. }
  854. /************************************
  855. Parsing
  856. ************************************/
  857. // get the regex to find the next token
  858. function getParseRegexForToken(token, config) {
  859. var a, strict = config._strict;
  860. switch (token) {
  861. case 'Q':
  862. return parseTokenOneDigit;
  863. case 'DDDD':
  864. return parseTokenThreeDigits;
  865. case 'YYYY':
  866. case 'GGGG':
  867. case 'gggg':
  868. return strict ? parseTokenFourDigits : parseTokenOneToFourDigits;
  869. case 'Y':
  870. case 'G':
  871. case 'g':
  872. return parseTokenSignedNumber;
  873. case 'YYYYYY':
  874. case 'YYYYY':
  875. case 'GGGGG':
  876. case 'ggggg':
  877. return strict ? parseTokenSixDigits : parseTokenOneToSixDigits;
  878. case 'S':
  879. if (strict) { return parseTokenOneDigit; }
  880. /* falls through */
  881. case 'SS':
  882. if (strict) { return parseTokenTwoDigits; }
  883. /* falls through */
  884. case 'SSS':
  885. if (strict) { return parseTokenThreeDigits; }
  886. /* falls through */
  887. case 'DDD':
  888. return parseTokenOneToThreeDigits;
  889. case 'MMM':
  890. case 'MMMM':
  891. case 'dd':
  892. case 'ddd':
  893. case 'dddd':
  894. return parseTokenWord;
  895. case 'a':
  896. case 'A':
  897. return getLangDefinition(config._l)._meridiemParse;
  898. case 'X':
  899. return parseTokenTimestampMs;
  900. case 'Z':
  901. case 'ZZ':
  902. return parseTokenTimezone;
  903. case 'T':
  904. return parseTokenT;
  905. case 'SSSS':
  906. return parseTokenDigits;
  907. case 'MM':
  908. case 'DD':
  909. case 'YY':
  910. case 'GG':
  911. case 'gg':
  912. case 'HH':
  913. case 'hh':
  914. case 'mm':
  915. case 'ss':
  916. case 'ww':
  917. case 'WW':
  918. return strict ? parseTokenTwoDigits : parseTokenOneOrTwoDigits;
  919. case 'M':
  920. case 'D':
  921. case 'd':
  922. case 'H':
  923. case 'h':
  924. case 'm':
  925. case 's':
  926. case 'w':
  927. case 'W':
  928. case 'e':
  929. case 'E':
  930. return parseTokenOneOrTwoDigits;
  931. case 'Do':
  932. return parseTokenOrdinal;
  933. default :
  934. a = new RegExp(regexpEscape(unescapeFormat(token.replace('\\', '')), "i"));
  935. return a;
  936. }
  937. }
  938. function timezoneMinutesFromString(string) {
  939. string = string || "";
  940. var possibleTzMatches = (string.match(parseTokenTimezone) || []),
  941. tzChunk = possibleTzMatches[possibleTzMatches.length - 1] || [],
  942. parts = (tzChunk + '').match(parseTimezoneChunker) || ['-', 0, 0],
  943. minutes = +(parts[1] * 60) + toInt(parts[2]);
  944. return parts[0] === '+' ? -minutes : minutes;
  945. }
  946. // function to convert string input to date
  947. function addTimeToArrayFromToken(token, input, config) {
  948. var a, datePartArray = config._a;
  949. switch (token) {
  950. // QUARTER
  951. case 'Q':
  952. if (input != null) {
  953. datePartArray[MONTH] = (toInt(input) - 1) * 3;
  954. }
  955. break;
  956. // MONTH
  957. case 'M' : // fall through to MM
  958. case 'MM' :
  959. if (input != null) {
  960. datePartArray[MONTH] = toInt(input) - 1;
  961. }
  962. break;
  963. case 'MMM' : // fall through to MMMM
  964. case 'MMMM' :
  965. a = getLangDefinition(config._l).monthsParse(input);
  966. // if we didn't find a month name, mark the date as invalid.
  967. if (a != null) {
  968. datePartArray[MONTH] = a;
  969. } else {
  970. config._pf.invalidMonth = input;
  971. }
  972. break;
  973. // DAY OF MONTH
  974. case 'D' : // fall through to DD
  975. case 'DD' :
  976. if (input != null) {
  977. datePartArray[DATE] = toInt(input);
  978. }
  979. break;
  980. case 'Do' :
  981. if (input != null) {
  982. datePartArray[DATE] = toInt(parseInt(input, 10));
  983. }
  984. break;
  985. // DAY OF YEAR
  986. case 'DDD' : // fall through to DDDD
  987. case 'DDDD' :
  988. if (input != null) {
  989. config._dayOfYear = toInt(input);
  990. }
  991. break;
  992. // YEAR
  993. case 'YY' :
  994. datePartArray[YEAR] = moment.parseTwoDigitYear(input);
  995. break;
  996. case 'YYYY' :
  997. case 'YYYYY' :
  998. case 'YYYYYY' :
  999. datePartArray[YEAR] = toInt(input);
  1000. break;
  1001. // AM / PM
  1002. case 'a' : // fall through to A
  1003. case 'A' :
  1004. config._isPm = getLangDefinition(config._l).isPM(input);
  1005. break;
  1006. // 24 HOUR
  1007. case 'H' : // fall through to hh
  1008. case 'HH' : // fall through to hh
  1009. case 'h' : // fall through to hh
  1010. case 'hh' :
  1011. datePartArray[HOUR] = toInt(input);
  1012. break;
  1013. // MINUTE
  1014. case 'm' : // fall through to mm
  1015. case 'mm' :
  1016. datePartArray[MINUTE] = toInt(input);
  1017. break;
  1018. // SECOND
  1019. case 's' : // fall through to ss
  1020. case 'ss' :
  1021. datePartArray[SECOND] = toInt(input);
  1022. break;
  1023. // MILLISECOND
  1024. case 'S' :
  1025. case 'SS' :
  1026. case 'SSS' :
  1027. case 'SSSS' :
  1028. datePartArray[MILLISECOND] = toInt(('0.' + input) * 1000);
  1029. break;
  1030. // UNIX TIMESTAMP WITH MS
  1031. case 'X':
  1032. config._d = new Date(parseFloat(input) * 1000);
  1033. break;
  1034. // TIMEZONE
  1035. case 'Z' : // fall through to ZZ
  1036. case 'ZZ' :
  1037. config._useUTC = true;
  1038. config._tzm = timezoneMinutesFromString(input);
  1039. break;
  1040. // WEEKDAY - human
  1041. case 'dd':
  1042. case 'ddd':
  1043. case 'dddd':
  1044. a = getLangDefinition(config._l).weekdaysParse(input);
  1045. // if we didn't get a weekday name, mark the date as invalid
  1046. if (a != null) {
  1047. config._w = config._w || {};
  1048. config._w['d'] = a;
  1049. } else {
  1050. config._pf.invalidWeekday = input;
  1051. }
  1052. break;
  1053. // WEEK, WEEK DAY - numeric
  1054. case 'w':
  1055. case 'ww':
  1056. case 'W':
  1057. case 'WW':
  1058. case 'd':
  1059. case 'e':
  1060. case 'E':
  1061. token = token.substr(0, 1);
  1062. /* falls through */
  1063. case 'gggg':
  1064. case 'GGGG':
  1065. case 'GGGGG':
  1066. token = token.substr(0, 2);
  1067. if (input) {
  1068. config._w = config._w || {};
  1069. config._w[token] = toInt(input);
  1070. }
  1071. break;
  1072. case 'gg':
  1073. case 'GG':
  1074. config._w = config._w || {};
  1075. config._w[token] = moment.parseTwoDigitYear(input);
  1076. }
  1077. }
  1078. function dayOfYearFromWeekInfo(config) {
  1079. var w, weekYear, week, weekday, dow, doy, temp, lang;
  1080. w = config._w;
  1081. if (w.GG != null || w.W != null || w.E != null) {
  1082. dow = 1;
  1083. doy = 4;
  1084. // TODO: We need to take the current isoWeekYear, but that depends on
  1085. // how we interpret now (local, utc, fixed offset). So create
  1086. // a now version of current config (take local/utc/offset flags, and
  1087. // create now).
  1088. weekYear = dfl(w.GG, config._a[YEAR], weekOfYear(moment(), 1, 4).year);
  1089. week = dfl(w.W, 1);
  1090. weekday = dfl(w.E, 1);
  1091. } else {
  1092. lang = getLangDefinition(config._l);
  1093. dow = lang._week.dow;
  1094. doy = lang._week.doy;
  1095. weekYear = dfl(w.gg, config._a[YEAR], weekOfYear(moment(), dow, doy).year);
  1096. week = dfl(w.w, 1);
  1097. if (w.d != null) {
  1098. // weekday -- low day numbers are considered next week
  1099. weekday = w.d;
  1100. if (weekday < dow) {
  1101. ++week;
  1102. }
  1103. } else if (w.e != null) {
  1104. // local weekday -- counting starts from begining of week
  1105. weekday = w.e + dow;
  1106. } else {
  1107. // default to begining of week
  1108. weekday = dow;
  1109. }
  1110. }
  1111. temp = dayOfYearFromWeeks(weekYear, week, weekday, doy, dow);
  1112. config._a[YEAR] = temp.year;
  1113. config._dayOfYear = temp.dayOfYear;
  1114. }
  1115. // convert an array to a date.
  1116. // the array should mirror the parameters below
  1117. // note: all values past the year are optional and will default to the lowest possible value.
  1118. // [year, month, day , hour, minute, second, millisecond]
  1119. function dateFromConfig(config) {
  1120. var i, date, input = [], currentDate, yearToUse;
  1121. if (config._d) {
  1122. return;
  1123. }
  1124. currentDate = currentDateArray(config);
  1125. //compute day of the year from weeks and weekdays
  1126. if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {
  1127. dayOfYearFromWeekInfo(config);
  1128. }
  1129. //if the day of the year is set, figure out what it is
  1130. if (config._dayOfYear) {
  1131. yearToUse = dfl(config._a[YEAR], currentDate[YEAR]);
  1132. if (config._dayOfYear > daysInYear(yearToUse)) {
  1133. config._pf._overflowDayOfYear = true;
  1134. }
  1135. date = makeUTCDate(yearToUse, 0, config._dayOfYear);
  1136. config._a[MONTH] = date.getUTCMonth();
  1137. config._a[DATE] = date.getUTCDate();
  1138. }
  1139. // Default to current date.
  1140. // * if no year, month, day of month are given, default to today
  1141. // * if day of month is given, default month and year
  1142. // * if month is given, default only year
  1143. // * if year is given, don't default anything
  1144. for (i = 0; i < 3 && config._a[i] == null; ++i) {
  1145. config._a[i] = input[i] = currentDate[i];
  1146. }
  1147. // Zero out whatever was not defaulted, including time
  1148. for (; i < 7; i++) {
  1149. config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];
  1150. }
  1151. config._d = (config._useUTC ? makeUTCDate : makeDate).apply(null, input);
  1152. // Apply timezone offset from input. The actual zone can be changed
  1153. // with parseZone.
  1154. if (config._tzm != null) {
  1155. config._d.setUTCMinutes(config._d.getUTCMinutes() + config._tzm);
  1156. }
  1157. }
  1158. function dateFromObject(config) {
  1159. var normalizedInput;
  1160. if (config._d) {
  1161. return;
  1162. }
  1163. normalizedInput = normalizeObjectUnits(config._i);
  1164. config._a = [
  1165. normalizedInput.year,
  1166. normalizedInput.month,
  1167. normalizedInput.day,
  1168. normalizedInput.hour,
  1169. normalizedInput.minute,
  1170. normalizedInput.second,
  1171. normalizedInput.millisecond
  1172. ];
  1173. dateFromConfig(config);
  1174. }
  1175. function currentDateArray(config) {
  1176. var now = new Date();
  1177. if (config._useUTC) {
  1178. return [
  1179. now.getUTCFullYear(),
  1180. now.getUTCMonth(),
  1181. now.getUTCDate()
  1182. ];
  1183. } else {
  1184. return [now.getFullYear(), now.getMonth(), now.getDate()];
  1185. }
  1186. }
  1187. // date from string and format string
  1188. function makeDateFromStringAndFormat(config) {
  1189. if (config._f === moment.ISO_8601) {
  1190. parseISO(config);
  1191. return;
  1192. }
  1193. config._a = [];
  1194. config._pf.empty = true;
  1195. // This array is used to make a Date, either with `new Date` or `Date.UTC`
  1196. var lang = getLangDefinition(config._l),
  1197. string = '' + config._i,
  1198. i, parsedInput, tokens, token, skipped,
  1199. stringLength = string.length,
  1200. totalParsedInputLength = 0;
  1201. tokens = expandFormat(config._f, lang).match(formattingTokens) || [];
  1202. for (i = 0; i < tokens.length; i++) {
  1203. token = tokens[i];
  1204. parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];
  1205. if (parsedInput) {
  1206. skipped = string.substr(0, string.indexOf(parsedInput));
  1207. if (skipped.length > 0) {
  1208. config._pf.unusedInput.push(skipped);
  1209. }
  1210. string = string.slice(string.indexOf(parsedInput) + parsedInput.length);
  1211. totalParsedInputLength += parsedInput.length;
  1212. }
  1213. // don't parse if it's not a known token
  1214. if (formatTokenFunctions[token]) {
  1215. if (parsedInput) {
  1216. config._pf.empty = false;
  1217. }
  1218. else {
  1219. config._pf.unusedTokens.push(token);
  1220. }
  1221. addTimeToArrayFromToken(token, parsedInput, config);
  1222. }
  1223. else if (config._strict && !parsedInput) {
  1224. config._pf.unusedTokens.push(token);
  1225. }
  1226. }
  1227. // add remaining unparsed input length to the string
  1228. config._pf.charsLeftOver = stringLength - totalParsedInputLength;
  1229. if (string.length > 0) {
  1230. config._pf.unusedInput.push(string);
  1231. }
  1232. // handle am pm
  1233. if (config._isPm && config._a[HOUR] < 12) {
  1234. config._a[HOUR] += 12;
  1235. }
  1236. // if is 12 am, change hours to 0
  1237. if (config._isPm === false && config._a[HOUR] === 12) {
  1238. config._a[HOUR] = 0;
  1239. }
  1240. dateFromConfig(config);
  1241. checkOverflow(config);
  1242. }
  1243. function unescapeFormat(s) {
  1244. return s.replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function (matched, p1, p2, p3, p4) {
  1245. return p1 || p2 || p3 || p4;
  1246. });
  1247. }
  1248. // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript
  1249. function regexpEscape(s) {
  1250. return s.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
  1251. }
  1252. // date from string and array of format strings
  1253. function makeDateFromStringAndArray(config) {
  1254. var tempConfig,
  1255. bestMoment,
  1256. scoreToBeat,
  1257. i,
  1258. currentScore;
  1259. if (config._f.length === 0) {
  1260. config._pf.invalidFormat = true;
  1261. config._d = new Date(NaN);
  1262. return;
  1263. }
  1264. for (i = 0; i < config._f.length; i++) {
  1265. currentScore = 0;
  1266. tempConfig = extend({}, config);
  1267. tempConfig._pf = defaultParsingFlags();
  1268. tempConfig._f = config._f[i];
  1269. makeDateFromStringAndFormat(tempConfig);
  1270. if (!isValid(tempConfig)) {
  1271. continue;
  1272. }
  1273. // if there is any input that was not parsed add a penalty for that format
  1274. currentScore += tempConfig._pf.charsLeftOver;
  1275. //or tokens
  1276. currentScore += tempConfig._pf.unusedTokens.length * 10;
  1277. tempConfig._pf.score = currentScore;
  1278. if (scoreToBeat == null || currentScore < scoreToBeat) {
  1279. scoreToBeat = currentScore;
  1280. bestMoment = tempConfig;
  1281. }
  1282. }
  1283. extend(config, bestMoment || tempConfig);
  1284. }
  1285. // date from iso format
  1286. function parseISO(config) {
  1287. var i, l,
  1288. string = config._i,
  1289. match = isoRegex.exec(string);
  1290. if (match) {
  1291. config._pf.iso = true;
  1292. for (i = 0, l = isoDates.length; i < l; i++) {
  1293. if (isoDates[i][1].exec(string)) {
  1294. // match[5] should be "T" or undefined
  1295. config._f = isoDates[i][0] + (match[6] || " ");
  1296. break;
  1297. }
  1298. }
  1299. for (i = 0, l = isoTimes.length; i < l; i++) {
  1300. if (isoTimes[i][1].exec(string)) {
  1301. config._f += isoTimes[i][0];
  1302. break;
  1303. }
  1304. }
  1305. if (string.match(parseTokenTimezone)) {
  1306. config._f += "Z";
  1307. }
  1308. makeDateFromStringAndFormat(config);
  1309. } else {
  1310. config._isValid = false;
  1311. }
  1312. }
  1313. // date from iso format or fallback
  1314. function makeDateFromString(config) {
  1315. parseISO(config);
  1316. if (config._isValid === false) {
  1317. delete config._isValid;
  1318. moment.createFromInputFallback(config);
  1319. }
  1320. }
  1321. function makeDateFromInput(config) {
  1322. var input = config._i,
  1323. matched = aspNetJsonRegex.exec(input);
  1324. if (input === undefined) {
  1325. config._d = new Date();
  1326. } else if (matched) {
  1327. config._d = new Date(+matched[1]);
  1328. } else if (typeof input === 'string') {
  1329. makeDateFromString(config);
  1330. } else if (isArray(input)) {
  1331. config._a = input.slice(0);
  1332. dateFromConfig(config);
  1333. } else if (isDate(input)) {
  1334. config._d = new Date(+input);
  1335. } else if (typeof(input) === 'object') {
  1336. dateFromObject(config);
  1337. } else if (typeof(input) === 'number') {
  1338. // from milliseconds
  1339. config._d = new Date(input);
  1340. } else {
  1341. moment.createFromInputFallback(config);
  1342. }
  1343. }
  1344. function makeDate(y, m, d, h, M, s, ms) {
  1345. //can't just apply() to create a date:
  1346. //http://stackoverflow.com/questions/181348/instantiating-a-javascript-object-by-calling-prototype-constructor-apply
  1347. var date = new Date(y, m, d, h, M, s, ms);
  1348. //the date constructor doesn't accept years < 1970
  1349. if (y < 1970) {
  1350. date.setFullYear(y);
  1351. }
  1352. return date;
  1353. }
  1354. function makeUTCDate(y) {
  1355. var date = new Date(Date.UTC.apply(null, arguments));
  1356. if (y < 1970) {
  1357. date.setUTCFullYear(y);
  1358. }
  1359. return date;
  1360. }
  1361. function parseWeekday(input, language) {
  1362. if (typeof input === 'string') {
  1363. if (!isNaN(input)) {
  1364. input = parseInt(input, 10);
  1365. }
  1366. else {
  1367. input = language.weekdaysParse(input);
  1368. if (typeof input !== 'number') {
  1369. return null;
  1370. }
  1371. }
  1372. }
  1373. return input;
  1374. }
  1375. /************************************
  1376. Relative Time
  1377. ************************************/
  1378. // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize
  1379. function substituteTimeAgo(string, number, withoutSuffix, isFuture, lang) {
  1380. return lang.relativeTime(number || 1, !!withoutSuffix, string, isFuture);
  1381. }
  1382. function relativeTime(milliseconds, withoutSuffix, lang) {
  1383. var seconds = round(Math.abs(milliseconds) / 1000),
  1384. minutes = round(seconds / 60),
  1385. hours = round(minutes / 60),
  1386. days = round(hours / 24),
  1387. years = round(days / 365),
  1388. args = seconds < relativeTimeThresholds.s && ['s', seconds] ||
  1389. minutes === 1 && ['m'] ||
  1390. minutes < relativeTimeThresholds.m && ['mm', minutes] ||
  1391. hours === 1 && ['h'] ||
  1392. hours < relativeTimeThresholds.h && ['hh', hours] ||
  1393. days === 1 && ['d'] ||
  1394. days <= relativeTimeThresholds.dd && ['dd', days] ||
  1395. days <= relativeTimeThresholds.dm && ['M'] ||
  1396. days < relativeTimeThresholds.dy && ['MM', round(days / 30)] ||
  1397. years === 1 && ['y'] || ['yy', years];
  1398. args[2] = withoutSuffix;
  1399. args[3] = milliseconds > 0;
  1400. args[4] = lang;
  1401. return substituteTimeAgo.apply({}, args);
  1402. }
  1403. /************************************
  1404. Week of Year
  1405. ************************************/
  1406. // firstDayOfWeek 0 = sun, 6 = sat
  1407. // the day of the week that starts the week
  1408. // (usually sunday or monday)
  1409. // firstDayOfWeekOfYear 0 = sun, 6 = sat
  1410. // the first week is the week that contains the first
  1411. // of this day of the week
  1412. // (eg. ISO weeks use thursday (4))
  1413. function weekOfYear(mom, firstDayOfWeek, firstDayOfWeekOfYear) {
  1414. var end = firstDayOfWeekOfYear - firstDayOfWeek,
  1415. daysToDayOfWeek = firstDayOfWeekOfYear - mom.day(),
  1416. adjustedMoment;
  1417. if (daysToDayOfWeek > end) {
  1418. daysToDayOfWeek -= 7;
  1419. }
  1420. if (daysToDayOfWeek < end - 7) {
  1421. daysToDayOfWeek += 7;
  1422. }
  1423. adjustedMoment = moment(mom).add('d', daysToDayOfWeek);
  1424. return {
  1425. week: Math.ceil(adjustedMoment.dayOfYear() / 7),
  1426. year: adjustedMoment.year()
  1427. };
  1428. }
  1429. //http://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday
  1430. function dayOfYearFromWeeks(year, week, weekday, firstDayOfWeekOfYear, firstDayOfWeek) {
  1431. var d = makeUTCDate(year, 0, 1).getUTCDay(), daysToAdd, dayOfYear;
  1432. d = d === 0 ? 7 : d;
  1433. weekday = weekday != null ? weekday : firstDayOfWeek;
  1434. daysToAdd = firstDayOfWeek - d + (d > firstDayOfWeekOfYear ? 7 : 0) - (d < firstDayOfWeek ? 7 : 0);
  1435. dayOfYear = 7 * (week - 1) + (weekday - firstDayOfWeek) + daysToAdd + 1;
  1436. return {
  1437. year: dayOfYear > 0 ? year : year - 1,
  1438. dayOfYear: dayOfYear > 0 ? dayOfYear : daysInYear(year - 1) + dayOfYear
  1439. };
  1440. }
  1441. /************************************
  1442. Top Level Functions
  1443. ************************************/
  1444. function makeMoment(config) {
  1445. var input = config._i,
  1446. format = config._f;
  1447. if (input === null || (format === undefined && input === '')) {
  1448. return moment.invalid({nullInput: true});
  1449. }
  1450. if (typeof input === 'string') {
  1451. config._i = input = getLangDefinition().preparse(input);
  1452. }
  1453. if (moment.isMoment(input)) {
  1454. config = cloneMoment(input);
  1455. config._d = new Date(+input._d);
  1456. } else if (format) {
  1457. if (isArray(format)) {
  1458. makeDateFromStringAndArray(config);
  1459. } else {
  1460. makeDateFromStringAndFormat(config);
  1461. }
  1462. } else {
  1463. makeDateFromInput(config);
  1464. }
  1465. return new Moment(config);
  1466. }
  1467. moment = function (input, format, lang, strict) {
  1468. var c;
  1469. if (typeof(lang) === "boolean") {
  1470. strict = lang;
  1471. lang = undefined;
  1472. }
  1473. // object construction must be done this way.
  1474. // https://github.com/moment/moment/issues/1423
  1475. c = {};
  1476. c._isAMomentObject = true;
  1477. c._i = input;
  1478. c._f = format;
  1479. c._l = lang;
  1480. c._strict = strict;
  1481. c._isUTC = false;
  1482. c._pf = defaultParsingFlags();
  1483. return makeMoment(c);
  1484. };
  1485. moment.suppressDeprecationWarnings = false;
  1486. moment.createFromInputFallback = deprecate(
  1487. "moment construction falls back to js Date. This is " +
  1488. "discouraged and will be removed in upcoming major " +
  1489. "release. Please refer to " +
  1490. "https://github.com/moment/moment/issues/1407 for more info.",
  1491. function (config) {
  1492. config._d = new Date(config._i);
  1493. });
  1494. // Pick a moment m from moments so that m[fn](other) is true for all
  1495. // other. This relies on the function fn to be transitive.
  1496. //
  1497. // moments should either be an array of moment objects or an array, whose
  1498. // first element is an array of moment objects.
  1499. function pickBy(fn, moments) {
  1500. var res, i;
  1501. if (moments.length === 1 && isArray(moments[0])) {
  1502. moments = moments[0];
  1503. }
  1504. if (!moments.length) {
  1505. return moment();
  1506. }
  1507. res = moments[0];
  1508. for (i = 1; i < moments.length; ++i) {
  1509. if (moments[i][fn](res)) {
  1510. res = moments[i];
  1511. }
  1512. }
  1513. return res;
  1514. }
  1515. moment.min = function () {
  1516. var args = [].slice.call(arguments, 0);
  1517. return pickBy('isBefore', args);
  1518. };
  1519. moment.max = function () {
  1520. var args = [].slice.call(arguments, 0);
  1521. return pickBy('isAfter', args);
  1522. };
  1523. // creating with utc
  1524. moment.utc = function (input, format, lang, strict) {
  1525. var c;
  1526. if (typeof(lang) === "boolean") {
  1527. strict = lang;
  1528. lang = undefined;
  1529. }
  1530. // object construction must be done this way.
  1531. // https://github.com/moment/moment/issues/1423
  1532. c = {};
  1533. c._isAMomentObject = true;
  1534. c._useUTC = true;
  1535. c._isUTC = true;
  1536. c._l = lang;
  1537. c._i = input;
  1538. c._f = format;
  1539. c._strict = strict;
  1540. c._pf = defaultParsingFlags();
  1541. return makeMoment(c).utc();
  1542. };
  1543. // creating with unix timestamp (in seconds)
  1544. moment.unix = function (input) {
  1545. return moment(input * 1000);
  1546. };
  1547. // duration
  1548. moment.duration = function (input, key) {
  1549. var duration = input,
  1550. // matching against regexp is expensive, do it on demand
  1551. match = null,
  1552. sign,
  1553. ret,
  1554. parseIso;
  1555. if (moment.isDuration(input)) {
  1556. duration = {
  1557. ms: input._milliseconds,
  1558. d: input._days,
  1559. M: input._months
  1560. };
  1561. } else if (typeof input === 'number') {
  1562. duration = {};
  1563. if (key) {
  1564. duration[key] = input;
  1565. } else {
  1566. duration.milliseconds = input;
  1567. }
  1568. } else if (!!(match = aspNetTimeSpanJsonRegex.exec(input))) {
  1569. sign = (match[1] === "-") ? -1 : 1;
  1570. duration = {
  1571. y: 0,
  1572. d: toInt(match[DATE]) * sign,
  1573. h: toInt(match[HOUR]) * sign,
  1574. m: toInt(match[MINUTE]) * sign,
  1575. s: toInt(match[SECOND]) * sign,
  1576. ms: toInt(match[MILLISECOND]) * sign
  1577. };
  1578. } else if (!!(match = isoDurationRegex.exec(input))) {
  1579. sign = (match[1] === "-") ? -1 : 1;
  1580. parseIso = function (inp) {
  1581. // We'd normally use ~~inp for this, but unfortunately it also
  1582. // converts floats to ints.
  1583. // inp may be undefined, so careful calling replace on it.
  1584. var res = inp && parseFloat(inp.replace(',', '.'));
  1585. // apply sign while we're at it
  1586. return (isNaN(res) ? 0 : res) * sign;
  1587. };
  1588. duration = {
  1589. y: parseIso(match[2]),
  1590. M: parseIso(match[3]),
  1591. d: parseIso(match[4]),
  1592. h: parseIso(match[5]),
  1593. m: parseIso(match[6]),
  1594. s: parseIso(match[7]),
  1595. w: parseIso(match[8])
  1596. };
  1597. }
  1598. ret = new Duration(duration);
  1599. if (moment.isDuration(input) && input.hasOwnProperty('_lang')) {
  1600. ret._lang = input._lang;
  1601. }
  1602. return ret;
  1603. };
  1604. // version number
  1605. moment.version = VERSION;
  1606. // default format
  1607. moment.defaultFormat = isoFormat;
  1608. // constant that refers to the ISO standard
  1609. moment.ISO_8601 = function () {};
  1610. // Plugins that add properties should also add the key here (null value),
  1611. // so we can properly clone ourselves.
  1612. moment.momentProperties = momentProperties;
  1613. // This function will be called whenever a moment is mutated.
  1614. // It is intended to keep the offset in sync with the timezone.
  1615. moment.updateOffset = function () {};
  1616. // This function allows you to set a threshold for relative time strings
  1617. moment.relativeTimeThreshold = function(threshold, limit) {
  1618. if (relativeTimeThresholds[threshold] === undefined) {
  1619. return false;
  1620. }
  1621. relativeTimeThresholds[threshold] = limit;
  1622. return true;
  1623. };
  1624. // This function will load languages and then set the global language. If
  1625. // no arguments are passed in, it will simply return the current global
  1626. // language key.
  1627. moment.lang = function (key, values) {
  1628. var r;
  1629. if (!key) {
  1630. return moment.fn._lang._abbr;
  1631. }
  1632. if (values) {
  1633. loadLang(normalizeLanguage(key), values);
  1634. } else if (values === null) {
  1635. unloadLang(key);
  1636. key = 'en';
  1637. } else if (!languages[key]) {
  1638. getLangDefinition(key);
  1639. }
  1640. r = moment.duration.fn._lang = moment.fn._lang = getLangDefinition(key);
  1641. return r._abbr;
  1642. };
  1643. // returns language data
  1644. moment.langData = function (key) {
  1645. if (key && key._lang && key._lang._abbr) {
  1646. key = key._lang._abbr;
  1647. }
  1648. return getLangDefinition(key);
  1649. };
  1650. // compare moment object
  1651. moment.isMoment = function (obj) {
  1652. return obj instanceof Moment ||
  1653. (obj != null && obj.hasOwnProperty('_isAMomentObject'));
  1654. };
  1655. // for typechecking Duration objects
  1656. moment.isDuration = function (obj) {
  1657. return obj instanceof Duration;
  1658. };
  1659. for (i = lists.length - 1; i >= 0; --i) {
  1660. makeList(lists[i]);
  1661. }
  1662. moment.normalizeUnits = function (units) {
  1663. return normalizeUnits(units);
  1664. };
  1665. moment.invalid = function (flags) {
  1666. var m = moment.utc(NaN);
  1667. if (flags != null) {
  1668. extend(m._pf, flags);
  1669. }
  1670. else {
  1671. m._pf.userInvalidated = true;
  1672. }
  1673. return m;
  1674. };
  1675. moment.parseZone = function () {
  1676. return moment.apply(null, arguments).parseZone();
  1677. };
  1678. moment.parseTwoDigitYear = function (input) {
  1679. return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);
  1680. };
  1681. /************************************
  1682. Moment Prototype
  1683. ************************************/
  1684. extend(moment.fn = Moment.prototype, {
  1685. clone : function () {
  1686. return moment(this);
  1687. },
  1688. valueOf : function () {
  1689. return +this._d + ((this._offset || 0) * 60000);
  1690. },
  1691. unix : function () {
  1692. return Math.floor(+this / 1000);
  1693. },
  1694. toString : function () {
  1695. return this.clone().lang('en').format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ");
  1696. },
  1697. toDate : function () {
  1698. return this._offset ? new Date(+this) : this._d;
  1699. },
  1700. toISOString : function () {
  1701. var m = moment(this).utc();
  1702. if (0 < m.year() && m.year() <= 9999) {
  1703. return formatMoment(m, 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
  1704. } else {
  1705. return formatMoment(m, 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]');
  1706. }
  1707. },
  1708. toArray : function () {
  1709. var m = this;
  1710. return [
  1711. m.year(),
  1712. m.month(),
  1713. m.date(),
  1714. m.hours(),
  1715. m.minutes(),
  1716. m.seconds(),
  1717. m.milliseconds()
  1718. ];
  1719. },
  1720. isValid : function () {
  1721. return isValid(this);
  1722. },
  1723. isDSTShifted : function () {
  1724. if (this._a) {
  1725. return this.isValid() && compareArrays(this._a, (this._isUTC ? moment.utc(this._a) : moment(this._a)).toArray()) > 0;
  1726. }
  1727. return false;
  1728. },
  1729. parsingFlags : function () {
  1730. return extend({}, this._pf);
  1731. },
  1732. invalidAt: function () {
  1733. return this._pf.overflow;
  1734. },
  1735. utc : function () {
  1736. return this.zone(0);
  1737. },
  1738. local : function () {
  1739. this.zone(0);
  1740. this._isUTC = false;
  1741. return this;
  1742. },
  1743. format : function (inputString) {
  1744. var output = formatMoment(this, inputString || moment.defaultFormat);
  1745. return this.lang().postformat(output);
  1746. },
  1747. add : function (input, val) {
  1748. var dur;
  1749. // switch args to support add('s', 1) and add(1, 's')
  1750. if (typeof input === 'string' && typeof val === 'string') {
  1751. dur = moment.duration(isNaN(+val) ? +input : +val, isNaN(+val) ? val : input);
  1752. } else if (typeof input === 'string') {
  1753. dur = moment.duration(+val, input);
  1754. } else {
  1755. dur = moment.duration(input, val);
  1756. }
  1757. addOrSubtractDurationFromMoment(this, dur, 1);
  1758. return this;
  1759. },
  1760. subtract : function (input, val) {
  1761. var dur;
  1762. // switch args to support subtract('s', 1) and subtract(1, 's')
  1763. if (typeof input === 'string' && typeof val === 'string') {
  1764. dur = moment.duration(isNaN(+val) ? +input : +val, isNaN(+val) ? val : input);
  1765. } else if (typeof input === 'string') {
  1766. dur = moment.duration(+val, input);
  1767. } else {
  1768. dur = moment.duration(input, val);
  1769. }
  1770. addOrSubtractDurationFromMoment(this, dur, -1);
  1771. return this;
  1772. },
  1773. diff : function (input, units, asFloat) {
  1774. var that = makeAs(input, this),
  1775. zoneDiff = (this.zone() - that.zone()) * 6e4,
  1776. diff, output;
  1777. units = normalizeUnits(units);
  1778. if (units === 'year' || units === 'month') {
  1779. // average number of days in the months in the given dates
  1780. diff = (this.daysInMonth() + that.daysInMonth()) * 432e5; // 24 * 60 * 60 * 1000 / 2
  1781. // difference in months
  1782. output = ((this.year() - that.year()) * 12) + (this.month() - that.month());
  1783. // adjust by taking difference in days, average number of days
  1784. // and dst in the given months.
  1785. output += ((this - moment(this).startOf('month')) -
  1786. (that - moment(that).startOf('month'))) / diff;
  1787. // same as above but with zones, to negate all dst
  1788. output -= ((this.zone() - moment(this).startOf('month').zone()) -
  1789. (that.zone() - moment(that).startOf('month').zone())) * 6e4 / diff;
  1790. if (units === 'year') {
  1791. output = output / 12;
  1792. }
  1793. } else {
  1794. diff = (this - that);
  1795. output = units === 'second' ? diff / 1e3 : // 1000
  1796. units === 'minute' ? diff / 6e4 : // 1000 * 60
  1797. units === 'hour' ? diff / 36e5 : // 1000 * 60 * 60
  1798. units === 'day' ? (diff - zoneDiff) / 864e5 : // 1000 * 60 * 60 * 24, negate dst
  1799. units === 'week' ? (diff - zoneDiff) / 6048e5 : // 1000 * 60 * 60 * 24 * 7, negate dst
  1800. diff;
  1801. }
  1802. return asFloat ? output : absRound(output);
  1803. },
  1804. from : function (time, withoutSuffix) {
  1805. return moment.duration(this.diff(time)).lang(this.lang()._abbr).humanize(!withoutSuffix);
  1806. },
  1807. fromNow : function (withoutSuffix) {
  1808. return this.from(moment(), withoutSuffix);
  1809. },
  1810. calendar : function (time) {
  1811. // We want to compare the start of today, vs this.
  1812. // Getting start-of-today depends on whether we're zone'd or not.
  1813. var now = time || moment(),
  1814. sod = makeAs(now, this).startOf('day'),
  1815. diff = this.diff(sod, 'days', true),
  1816. format = diff < -6 ? 'sameElse' :
  1817. diff < -1 ? 'lastWeek' :
  1818. diff < 0 ? 'lastDay' :
  1819. diff < 1 ? 'sameDay' :
  1820. diff < 2 ? 'nextDay' :
  1821. diff < 7 ? 'nextWeek' : 'sameElse';
  1822. return this.format(this.lang().calendar(format, this));
  1823. },
  1824. isLeapYear : function () {
  1825. return isLeapYear(this.year());
  1826. },
  1827. isDST : function () {
  1828. return (this.zone() < this.clone().month(0).zone() ||
  1829. this.zone() < this.clone().month(5).zone());
  1830. },
  1831. day : function (input) {
  1832. var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();
  1833. if (input != null) {
  1834. input = parseWeekday(input, this.lang());
  1835. return this.add({ d : input - day });
  1836. } else {
  1837. return day;
  1838. }
  1839. },
  1840. month : makeAccessor('Month', true),
  1841. startOf: function (units) {
  1842. units = normalizeUnits(units);
  1843. // the following switch intentionally omits break keywords
  1844. // to utilize falling through the cases.
  1845. switch (units) {
  1846. case 'year':
  1847. this.month(0);
  1848. /* falls through */
  1849. case 'quarter':
  1850. case 'month':
  1851. this.date(1);
  1852. /* falls through */
  1853. case 'week':
  1854. case 'isoWeek':
  1855. case 'day':
  1856. this.hours(0);
  1857. /* falls through */
  1858. case 'hour':
  1859. this.minutes(0);
  1860. /* falls through */
  1861. case 'minute':
  1862. this.seconds(0);
  1863. /* falls through */
  1864. case 'second':
  1865. this.milliseconds(0);
  1866. /* falls through */
  1867. }
  1868. // weeks are a special case
  1869. if (units === 'week') {
  1870. this.weekday(0);
  1871. } else if (units === 'isoWeek') {
  1872. this.isoWeekday(1);
  1873. }
  1874. // quarters are also special
  1875. if (units === 'quarter') {
  1876. this.month(Math.floor(this.month() / 3) * 3);
  1877. }
  1878. return this;
  1879. },
  1880. endOf: function (units) {
  1881. units = normalizeUnits(units);
  1882. return this.startOf(units).add((units === 'isoWeek' ? 'week' : units), 1).subtract('ms', 1);
  1883. },
  1884. isAfter: function (input, units) {
  1885. units = typeof units !== 'undefined' ? units : 'millisecond';
  1886. return +this.clone().startOf(units) > +moment(input).startOf(units);
  1887. },
  1888. isBefore: function (input, units) {
  1889. units = typeof units !== 'undefined' ? units : 'millisecond';
  1890. return +this.clone().startOf(units) < +moment(input).startOf(units);
  1891. },
  1892. isSame: function (input, units) {
  1893. units = units || 'ms';
  1894. return +this.clone().startOf(units) === +makeAs(input, this).startOf(units);
  1895. },
  1896. min: deprecate(
  1897. "moment().min is deprecated, use moment.min instead. https://github.com/moment/moment/issues/1548",
  1898. function (other) {
  1899. other = moment.apply(null, arguments);
  1900. return other < this ? this : other;
  1901. }
  1902. ),
  1903. max: deprecate(
  1904. "moment().max is deprecated, use moment.max instead. https://github.com/moment/moment/issues/1548",
  1905. function (other) {
  1906. other = moment.apply(null, arguments);
  1907. return other > this ? this : other;
  1908. }
  1909. ),
  1910. // keepTime = true means only change the timezone, without affecting
  1911. // the local hour. So 5:31:26 +0300 --[zone(2, true)]--> 5:31:26 +0200
  1912. // It is possible that 5:31:26 doesn't exist int zone +0200, so we
  1913. // adjust the time as needed, to be valid.
  1914. //
  1915. // Keeping the time actually adds/subtracts (one hour)
  1916. // from the actual represented time. That is why we call updateOffset
  1917. // a second time. In case it wants us to change the offset again
  1918. // _changeInProgress == true case, then we have to adjust, because
  1919. // there is no such time in the given timezone.
  1920. zone : function (input, keepTime) {
  1921. var offset = this._offset || 0;
  1922. if (input != null) {
  1923. if (typeof input === "string") {
  1924. input = timezoneMinutesFromString(input);
  1925. }
  1926. if (Math.abs(input) < 16) {
  1927. input = input * 60;
  1928. }
  1929. this._offset = input;
  1930. this._isUTC = true;
  1931. if (offset !== input) {
  1932. if (!keepTime || this._changeInProgress) {
  1933. addOrSubtractDurationFromMoment(this,
  1934. moment.duration(offset - input, 'm'), 1, false);
  1935. } else if (!this._changeInProgress) {
  1936. this._changeInProgress = true;
  1937. moment.updateOffset(this, true);
  1938. this._changeInProgress = null;
  1939. }
  1940. }
  1941. } else {
  1942. return this._isUTC ? offset : this._d.getTimezoneOffset();
  1943. }
  1944. return this;
  1945. },
  1946. zoneAbbr : function () {
  1947. return this._isUTC ? "UTC" : "";
  1948. },
  1949. zoneName : function () {
  1950. return this._isUTC ? "Coordinated Universal Time" : "";
  1951. },
  1952. parseZone : function () {
  1953. if (this._tzm) {
  1954. this.zone(this._tzm);
  1955. } else if (typeof this._i === 'string') {
  1956. this.zone(this._i);
  1957. }
  1958. return this;
  1959. },
  1960. hasAlignedHourOffset : function (input) {
  1961. if (!input) {
  1962. input = 0;
  1963. }
  1964. else {
  1965. input = moment(input).zone();
  1966. }
  1967. return (this.zone() - input) % 60 === 0;
  1968. },
  1969. daysInMonth : function () {
  1970. return daysInMonth(this.year(), this.month());
  1971. },
  1972. dayOfYear : function (input) {
  1973. var dayOfYear = round((moment(this).startOf('day') - moment(this).startOf('year')) / 864e5) + 1;
  1974. return input == null ? dayOfYear : this.add("d", (input - dayOfYear));
  1975. },
  1976. quarter : function (input) {
  1977. return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);
  1978. },
  1979. weekYear : function (input) {
  1980. var year = weekOfYear(this, this.lang()._week.dow, this.lang()._week.doy).year;
  1981. return input == null ? year : this.add("y", (input - year));
  1982. },
  1983. isoWeekYear : function (input) {
  1984. var year = weekOfYear(this, 1, 4).year;
  1985. return input == null ? year : this.add("y", (input - year));
  1986. },
  1987. week : function (input) {
  1988. var week = this.lang().week(this);
  1989. return input == null ? week : this.add("d", (input - week) * 7);
  1990. },
  1991. isoWeek : function (input) {
  1992. var week = weekOfYear(this, 1, 4).week;
  1993. return input == null ? week : this.add("d", (input - week) * 7);
  1994. },
  1995. weekday : function (input) {
  1996. var weekday = (this.day() + 7 - this.lang()._week.dow) % 7;
  1997. return input == null ? weekday : this.add("d", input - weekday);
  1998. },
  1999. isoWeekday : function (input) {
  2000. // behaves the same as moment#day except
  2001. // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)
  2002. // as a setter, sunday should belong to the previous week.
  2003. return input == null ? this.day() || 7 : this.day(this.day() % 7 ? input : input - 7);
  2004. },
  2005. isoWeeksInYear : function () {
  2006. return weeksInYear(this.year(), 1, 4);
  2007. },
  2008. weeksInYear : function () {
  2009. var weekInfo = this._lang._week;
  2010. return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);
  2011. },
  2012. get : function (units) {
  2013. units = normalizeUnits(units);
  2014. return this[units]();
  2015. },
  2016. set : function (units, value) {
  2017. units = normalizeUnits(units);
  2018. if (typeof this[units] === 'function') {
  2019. this[units](value);
  2020. }
  2021. return this;
  2022. },
  2023. // If passed a language key, it will set the language for this
  2024. // instance. Otherwise, it will return the language configuration
  2025. // variables for this instance.
  2026. lang : function (key) {
  2027. if (key === undefined) {
  2028. return this._lang;
  2029. } else {
  2030. this._lang = getLangDefinition(key);
  2031. return this;
  2032. }
  2033. }
  2034. });
  2035. function rawMonthSetter(mom, value) {
  2036. var dayOfMonth;
  2037. // TODO: Move this out of here!
  2038. if (typeof value === 'string') {
  2039. value = mom.lang().monthsParse(value);
  2040. // TODO: Another silent failure?
  2041. if (typeof value !== 'number') {
  2042. return mom;
  2043. }
  2044. }
  2045. dayOfMonth = Math.min(mom.date(),
  2046. daysInMonth(mom.year(), value));
  2047. mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);
  2048. return mom;
  2049. }
  2050. function rawGetter(mom, unit) {
  2051. return mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]();
  2052. }
  2053. function rawSetter(mom, unit, value) {
  2054. if (unit === 'Month') {
  2055. return rawMonthSetter(mom, value);
  2056. } else {
  2057. return mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);
  2058. }
  2059. }
  2060. function makeAccessor(unit, keepTime) {
  2061. return function (value) {
  2062. if (value != null) {
  2063. rawSetter(this, unit, value);
  2064. moment.updateOffset(this, keepTime);
  2065. return this;
  2066. } else {
  2067. return rawGetter(this, unit);
  2068. }
  2069. };
  2070. }
  2071. moment.fn.millisecond = moment.fn.milliseconds = makeAccessor('Milliseconds', false);
  2072. moment.fn.second = moment.fn.seconds = makeAccessor('Seconds', false);
  2073. moment.fn.minute = moment.fn.minutes = makeAccessor('Minutes', false);
  2074. // Setting the hour should keep the time, because the user explicitly
  2075. // specified which hour he wants. So trying to maintain the same hour (in
  2076. // a new timezone) makes sense. Adding/subtracting hours does not follow
  2077. // this rule.
  2078. moment.fn.hour = moment.fn.hours = makeAccessor('Hours', true);
  2079. // moment.fn.month is defined separately
  2080. moment.fn.date = makeAccessor('Date', true);
  2081. moment.fn.dates = deprecate("dates accessor is deprecated. Use date instead.", makeAccessor('Date', true));
  2082. moment.fn.year = makeAccessor('FullYear', true);
  2083. moment.fn.years = deprecate("years accessor is deprecated. Use year instead.", makeAccessor('FullYear', true));
  2084. // add plural methods
  2085. moment.fn.days = moment.fn.day;
  2086. moment.fn.months = moment.fn.month;
  2087. moment.fn.weeks = moment.fn.week;
  2088. moment.fn.isoWeeks = moment.fn.isoWeek;
  2089. moment.fn.quarters = moment.fn.quarter;
  2090. // add aliased format methods
  2091. moment.fn.toJSON = moment.fn.toISOString;
  2092. /************************************
  2093. Duration Prototype
  2094. ************************************/
  2095. extend(moment.duration.fn = Duration.prototype, {
  2096. _bubble : function () {
  2097. var milliseconds = this._milliseconds,
  2098. days = this._days,
  2099. months = this._months,
  2100. data = this._data,
  2101. seconds, minutes, hours, years;
  2102. // The following code bubbles up values, see the tests for
  2103. // examples of what that means.
  2104. data.milliseconds = milliseconds % 1000;
  2105. seconds = absRound(milliseconds / 1000);
  2106. data.seconds = seconds % 60;
  2107. minutes = absRound(seconds / 60);
  2108. data.minutes = minutes % 60;
  2109. hours = absRound(minutes / 60);
  2110. data.hours = hours % 24;
  2111. days += absRound(hours / 24);
  2112. data.days = days % 30;
  2113. months += absRound(days / 30);
  2114. data.months = months % 12;
  2115. years = absRound(months / 12);
  2116. data.years = years;
  2117. },
  2118. weeks : function () {
  2119. return absRound(this.days() / 7);
  2120. },
  2121. valueOf : function () {
  2122. return this._milliseconds +
  2123. this._days * 864e5 +
  2124. (this._months % 12) * 2592e6 +
  2125. toInt(this._months / 12) * 31536e6;
  2126. },
  2127. humanize : function (withSuffix) {
  2128. var difference = +this,
  2129. output = relativeTime(difference, !withSuffix, this.lang());
  2130. if (withSuffix) {
  2131. output = this.lang().pastFuture(difference, output);
  2132. }
  2133. return this.lang().postformat(output);
  2134. },
  2135. add : function (input, val) {
  2136. // supports only 2.0-style add(1, 's') or add(moment)
  2137. var dur = moment.duration(input, val);
  2138. this._milliseconds += dur._milliseconds;
  2139. this._days += dur._days;
  2140. this._months += dur._months;
  2141. this._bubble();
  2142. return this;
  2143. },
  2144. subtract : function (input, val) {
  2145. var dur = moment.duration(input, val);
  2146. this._milliseconds -= dur._milliseconds;
  2147. this._days -= dur._days;
  2148. this._months -= dur._months;
  2149. this._bubble();
  2150. return this;
  2151. },
  2152. get : function (units) {
  2153. units = normalizeUnits(units);
  2154. return this[units.toLowerCase() + 's']();
  2155. },
  2156. as : function (units) {
  2157. units = normalizeUnits(units);
  2158. return this['as' + units.charAt(0).toUpperCase() + units.slice(1) + 's']();
  2159. },
  2160. lang : moment.fn.lang,
  2161. toIsoString : function () {
  2162. // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js
  2163. var years = Math.abs(this.years()),
  2164. months = Math.abs(this.months()),
  2165. days = Math.abs(this.days()),
  2166. hours = Math.abs(this.hours()),
  2167. minutes = Math.abs(this.minutes()),
  2168. seconds = Math.abs(this.seconds() + this.milliseconds() / 1000);
  2169. if (!this.asSeconds()) {
  2170. // this is the same as C#'s (Noda) and python (isodate)...
  2171. // but not other JS (goog.date)
  2172. return 'P0D';
  2173. }
  2174. return (this.asSeconds() < 0 ? '-' : '') +
  2175. 'P' +
  2176. (years ? years + 'Y' : '') +
  2177. (months ? months + 'M' : '') +
  2178. (days ? days + 'D' : '') +
  2179. ((hours || minutes || seconds) ? 'T' : '') +
  2180. (hours ? hours + 'H' : '') +
  2181. (minutes ? minutes + 'M' : '') +
  2182. (seconds ? seconds + 'S' : '');
  2183. }
  2184. });
  2185. function makeDurationGetter(name) {
  2186. moment.duration.fn[name] = function () {
  2187. return this._data[name];
  2188. };
  2189. }
  2190. function makeDurationAsGetter(name, factor) {
  2191. moment.duration.fn['as' + name] = function () {
  2192. return +this / factor;
  2193. };
  2194. }
  2195. for (i in unitMillisecondFactors) {
  2196. if (unitMillisecondFactors.hasOwnProperty(i)) {
  2197. makeDurationAsGetter(i, unitMillisecondFactors[i]);
  2198. makeDurationGetter(i.toLowerCase());
  2199. }
  2200. }
  2201. makeDurationAsGetter('Weeks', 6048e5);
  2202. moment.duration.fn.asMonths = function () {
  2203. return (+this - this.years() * 31536e6) / 2592e6 + this.years() * 12;
  2204. };
  2205. /************************************
  2206. Default Lang
  2207. ************************************/
  2208. // Set default language, other languages will inherit from English.
  2209. moment.lang('en', {
  2210. ordinal : function (number) {
  2211. var b = number % 10,
  2212. output = (toInt(number % 100 / 10) === 1) ? 'th' :
  2213. (b === 1) ? 'st' :
  2214. (b === 2) ? 'nd' :
  2215. (b === 3) ? 'rd' : 'th';
  2216. return number + output;
  2217. }
  2218. });
  2219. // moment.js language configuration
  2220. // language : Moroccan Arabic (ar-ma)
  2221. // author : ElFadili Yassine : https://github.com/ElFadiliY
  2222. // author : Abdel Said : https://github.com/abdelsaid
  2223. (function (factory) {
  2224. factory(moment);
  2225. }(function (moment) {
  2226. return moment.lang('ar-ma', {
  2227. months : "يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),
  2228. monthsShort : "يناير_فبراير_مارس_أبريل_ماي_يونيو_يوليوز_غشت_شتنبر_أكتوبر_نونبر_دجنبر".split("_"),
  2229. weekdays : "الأحد_الإتنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),
  2230. weekdaysShort : "احد_اتنين_ثلاثاء_اربعاء_خميس_جمعة_سبت".split("_"),
  2231. weekdaysMin : "ح_ن_ث_ر_خ_ج_س".split("_"),
  2232. longDateFormat : {
  2233. LT : "HH:mm",
  2234. L : "DD/MM/YYYY",
  2235. LL : "D MMMM YYYY",
  2236. LLL : "D MMMM YYYY LT",
  2237. LLLL : "dddd D MMMM YYYY LT"
  2238. },
  2239. calendar : {
  2240. sameDay: "[اليوم على الساعة] LT",
  2241. nextDay: '[غدا على الساعة] LT',
  2242. nextWeek: 'dddd [على الساعة] LT',
  2243. lastDay: '[أمس على الساعة] LT',
  2244. lastWeek: 'dddd [على الساعة] LT',
  2245. sameElse: 'L'
  2246. },
  2247. relativeTime : {
  2248. future : "في %s",
  2249. past : "منذ %s",
  2250. s : "ثوان",
  2251. m : "دقيقة",
  2252. mm : "%d دقائق",
  2253. h : "ساعة",
  2254. hh : "%d ساعات",
  2255. d : "يوم",
  2256. dd : "%d أيام",
  2257. M : "شهر",
  2258. MM : "%d أشهر",
  2259. y : "سنة",
  2260. yy : "%d سنوات"
  2261. },
  2262. week : {
  2263. dow : 6, // Saturday is the first day of the week.
  2264. doy : 12 // The week that contains Jan 1st is the first week of the year.
  2265. }
  2266. });
  2267. }));
  2268. // moment.js language configuration
  2269. // language : Arabic Saudi Arabia (ar-sa)
  2270. // author : Suhail Alkowaileet : https://github.com/xsoh
  2271. (function (factory) {
  2272. factory(moment);
  2273. }(function (moment) {
  2274. var symbolMap = {
  2275. '1': '١',
  2276. '2': '٢',
  2277. '3': '٣',
  2278. '4': '٤',
  2279. '5': '٥',
  2280. '6': '٦',
  2281. '7': '٧',
  2282. '8': '٨',
  2283. '9': '٩',
  2284. '0': '٠'
  2285. }, numberMap = {
  2286. '١': '1',
  2287. '٢': '2',
  2288. '٣': '3',
  2289. '٤': '4',
  2290. '٥': '5',
  2291. '٦': '6',
  2292. '٧': '7',
  2293. '٨': '8',
  2294. '٩': '9',
  2295. '٠': '0'
  2296. };
  2297. return moment.lang('ar-sa', {
  2298. months : "يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),
  2299. monthsShort : "يناير_فبراير_مارس_أبريل_مايو_يونيو_يوليو_أغسطس_سبتمبر_أكتوبر_نوفمبر_ديسمبر".split("_"),
  2300. weekdays : "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),
  2301. weekdaysShort : "أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),
  2302. weekdaysMin : "ح_ن_ث_ر_خ_ج_س".split("_"),
  2303. longDateFormat : {
  2304. LT : "HH:mm",
  2305. L : "DD/MM/YYYY",
  2306. LL : "D MMMM YYYY",
  2307. LLL : "D MMMM YYYY LT",
  2308. LLLL : "dddd D MMMM YYYY LT"
  2309. },
  2310. meridiem : function (hour, minute, isLower) {
  2311. if (hour < 12) {
  2312. return "ص";
  2313. } else {
  2314. return "م";
  2315. }
  2316. },
  2317. calendar : {
  2318. sameDay: "[اليوم على الساعة] LT",
  2319. nextDay: '[غدا على الساعة] LT',
  2320. nextWeek: 'dddd [على الساعة] LT',
  2321. lastDay: '[أمس على الساعة] LT',
  2322. lastWeek: 'dddd [على الساعة] LT',
  2323. sameElse: 'L'
  2324. },
  2325. relativeTime : {
  2326. future : "في %s",
  2327. past : "منذ %s",
  2328. s : "ثوان",
  2329. m : "دقيقة",
  2330. mm : "%d دقائق",
  2331. h : "ساعة",
  2332. hh : "%d ساعات",
  2333. d : "يوم",
  2334. dd : "%d أيام",
  2335. M : "شهر",
  2336. MM : "%d أشهر",
  2337. y : "سنة",
  2338. yy : "%d سنوات"
  2339. },
  2340. preparse: function (string) {
  2341. return string.replace(/[۰-۹]/g, function (match) {
  2342. return numberMap[match];
  2343. }).replace(/،/g, ',');
  2344. },
  2345. postformat: function (string) {
  2346. return string.replace(/\d/g, function (match) {
  2347. return symbolMap[match];
  2348. }).replace(/,/g, '،');
  2349. },
  2350. week : {
  2351. dow : 6, // Saturday is the first day of the week.
  2352. doy : 12 // The week that contains Jan 1st is the first week of the year.
  2353. }
  2354. });
  2355. }));
  2356. // moment.js language configuration
  2357. // language : Arabic (ar)
  2358. // author : Abdel Said : https://github.com/abdelsaid
  2359. // changes in months, weekdays : Ahmed Elkhatib
  2360. (function (factory) {
  2361. factory(moment);
  2362. }(function (moment) {
  2363. var symbolMap = {
  2364. '1': '١',
  2365. '2': '٢',
  2366. '3': '٣',
  2367. '4': '٤',
  2368. '5': '٥',
  2369. '6': '٦',
  2370. '7': '٧',
  2371. '8': '٨',
  2372. '9': '٩',
  2373. '0': '٠'
  2374. }, numberMap = {
  2375. '١': '1',
  2376. '٢': '2',
  2377. '٣': '3',
  2378. '٤': '4',
  2379. '٥': '5',
  2380. '٦': '6',
  2381. '٧': '7',
  2382. '٨': '8',
  2383. '٩': '9',
  2384. '٠': '0'
  2385. };
  2386. return moment.lang('ar', {
  2387. months : "يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول".split("_"),
  2388. monthsShort : "يناير/ كانون الثاني_فبراير/ شباط_مارس/ آذار_أبريل/ نيسان_مايو/ أيار_يونيو/ حزيران_يوليو/ تموز_أغسطس/ آب_سبتمبر/ أيلول_أكتوبر/ تشرين الأول_نوفمبر/ تشرين الثاني_ديسمبر/ كانون الأول".split("_"),
  2389. weekdays : "الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت".split("_"),
  2390. weekdaysShort : "أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت".split("_"),
  2391. weekdaysMin : "ح_ن_ث_ر_خ_ج_س".split("_"),
  2392. longDateFormat : {
  2393. LT : "HH:mm",
  2394. L : "DD/MM/YYYY",
  2395. LL : "D MMMM YYYY",
  2396. LLL : "D MMMM YYYY LT",
  2397. LLLL : "dddd D MMMM YYYY LT"
  2398. },
  2399. meridiem : function (hour, minute, isLower) {
  2400. if (hour < 12) {
  2401. return "ص";
  2402. } else {
  2403. return "م";
  2404. }
  2405. },
  2406. calendar : {
  2407. sameDay: "[اليوم على الساعة] LT",
  2408. nextDay: '[غدا على الساعة] LT',
  2409. nextWeek: 'dddd [على الساعة] LT',
  2410. lastDay: '[أمس على الساعة] LT',
  2411. lastWeek: 'dddd [على الساعة] LT',
  2412. sameElse: 'L'
  2413. },
  2414. relativeTime : {
  2415. future : "في %s",
  2416. past : "منذ %s",
  2417. s : "ثوان",
  2418. m : "دقيقة",
  2419. mm : "%d دقائق",
  2420. h : "ساعة",
  2421. hh : "%d ساعات",
  2422. d : "يوم",
  2423. dd : "%d أيام",
  2424. M : "شهر",
  2425. MM : "%d أشهر",
  2426. y : "سنة",
  2427. yy : "%d سنوات"
  2428. },
  2429. preparse: function (string) {
  2430. return string.replace(/[۰-۹]/g, function (match) {
  2431. return numberMap[match];
  2432. }).replace(/،/g, ',');
  2433. },
  2434. postformat: function (string) {
  2435. return string.replace(/\d/g, function (match) {
  2436. return symbolMap[match];
  2437. }).replace(/,/g, '،');
  2438. },
  2439. week : {
  2440. dow : 6, // Saturday is the first day of the week.
  2441. doy : 12 // The week that contains Jan 1st is the first week of the year.
  2442. }
  2443. });
  2444. }));
  2445. // moment.js language configuration
  2446. // language : azerbaijani (az)
  2447. // author : topchiyev : https://github.com/topchiyev
  2448. (function (factory) {
  2449. factory(moment);
  2450. }(function (moment) {
  2451. var suffixes = {
  2452. 1: "-inci",
  2453. 5: "-inci",
  2454. 8: "-inci",
  2455. 70: "-inci",
  2456. 80: "-inci",
  2457. 2: "-nci",
  2458. 7: "-nci",
  2459. 20: "-nci",
  2460. 50: "-nci",
  2461. 3: "-üncü",
  2462. 4: "-üncü",
  2463. 100: "-üncü",
  2464. 6: "-ncı",
  2465. 9: "-uncu",
  2466. 10: "-uncu",
  2467. 30: "-uncu",
  2468. 60: "-ıncı",
  2469. 90: "-ıncı"
  2470. };
  2471. return moment.lang('az', {
  2472. months : "yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr".split("_"),
  2473. monthsShort : "yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek".split("_"),
  2474. weekdays : "Bazar_Bazar ertəsi_Çərşənbə axşamı_Çərşənbə_Cümə axşamı_Cümə_Şənbə".split("_"),
  2475. weekdaysShort : "Baz_BzE_ÇAx_Çər_CAx_Cüm_Şən".split("_"),
  2476. weekdaysMin : "Bz_BE_ÇA_Çə_CA_Cü_Şə".split("_"),
  2477. longDateFormat : {
  2478. LT : "HH:mm",
  2479. L : "DD.MM.YYYY",
  2480. LL : "D MMMM YYYY",
  2481. LLL : "D MMMM YYYY LT",
  2482. LLLL : "dddd, D MMMM YYYY LT"
  2483. },
  2484. calendar : {
  2485. sameDay : '[bugün saat] LT',
  2486. nextDay : '[sabah saat] LT',
  2487. nextWeek : '[gələn həftə] dddd [saat] LT',
  2488. lastDay : '[dünən] LT',
  2489. lastWeek : '[keçən həftə] dddd [saat] LT',
  2490. sameElse : 'L'
  2491. },
  2492. relativeTime : {
  2493. future : "%s sonra",
  2494. past : "%s əvvəl",
  2495. s : "birneçə saniyyə",
  2496. m : "bir dəqiqə",
  2497. mm : "%d dəqiqə",
  2498. h : "bir saat",
  2499. hh : "%d saat",
  2500. d : "bir gün",
  2501. dd : "%d gün",
  2502. M : "bir ay",
  2503. MM : "%d ay",
  2504. y : "bir il",
  2505. yy : "%d il"
  2506. },
  2507. meridiem : function (hour, minute, isLower) {
  2508. if (hour < 4) {
  2509. return "gecə";
  2510. } else if (hour < 12) {
  2511. return "səhər";
  2512. } else if (hour < 17) {
  2513. return "gündüz";
  2514. } else {
  2515. return "axşam";
  2516. }
  2517. },
  2518. ordinal : function (number) {
  2519. if (number === 0) { // special case for zero
  2520. return number + "-ıncı";
  2521. }
  2522. var a = number % 10,
  2523. b = number % 100 - a,
  2524. c = number >= 100 ? 100 : null;
  2525. return number + (suffixes[a] || suffixes[b] || suffixes[c]);
  2526. },
  2527. week : {
  2528. dow : 1, // Monday is the first day of the week.
  2529. doy : 7 // The week that contains Jan 1st is the first week of the year.
  2530. }
  2531. });
  2532. }));
  2533. // moment.js language configuration
  2534. // language : bulgarian (bg)
  2535. // author : Krasen Borisov : https://github.com/kraz
  2536. (function (factory) {
  2537. factory(moment);
  2538. }(function (moment) {
  2539. return moment.lang('bg', {
  2540. months : "януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"),
  2541. monthsShort : "янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"),
  2542. weekdays : "неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"),
  2543. weekdaysShort : "нед_пон_вто_сря_чет_пет_съб".split("_"),
  2544. weekdaysMin : "нд_пн_вт_ср_чт_пт_сб".split("_"),
  2545. longDateFormat : {
  2546. LT : "H:mm",
  2547. L : "D.MM.YYYY",
  2548. LL : "D MMMM YYYY",
  2549. LLL : "D MMMM YYYY LT",
  2550. LLLL : "dddd, D MMMM YYYY LT"
  2551. },
  2552. calendar : {
  2553. sameDay : '[Днес в] LT',
  2554. nextDay : '[Утре в] LT',
  2555. nextWeek : 'dddd [в] LT',
  2556. lastDay : '[Вчера в] LT',
  2557. lastWeek : function () {
  2558. switch (this.day()) {
  2559. case 0:
  2560. case 3:
  2561. case 6:
  2562. return '[В изминалата] dddd [в] LT';
  2563. case 1:
  2564. case 2:
  2565. case 4:
  2566. case 5:
  2567. return '[В изминалия] dddd [в] LT';
  2568. }
  2569. },
  2570. sameElse : 'L'
  2571. },
  2572. relativeTime : {
  2573. future : "след %s",
  2574. past : "преди %s",
  2575. s : "няколко секунди",
  2576. m : "минута",
  2577. mm : "%d минути",
  2578. h : "час",
  2579. hh : "%d часа",
  2580. d : "ден",
  2581. dd : "%d дни",
  2582. M : "месец",
  2583. MM : "%d месеца",
  2584. y : "година",
  2585. yy : "%d години"
  2586. },
  2587. ordinal : function (number) {
  2588. var lastDigit = number % 10,
  2589. last2Digits = number % 100;
  2590. if (number === 0) {
  2591. return number + '-ев';
  2592. } else if (last2Digits === 0) {
  2593. return number + '-ен';
  2594. } else if (last2Digits > 10 && last2Digits < 20) {
  2595. return number + '-ти';
  2596. } else if (lastDigit === 1) {
  2597. return number + '-ви';
  2598. } else if (lastDigit === 2) {
  2599. return number + '-ри';
  2600. } else if (lastDigit === 7 || lastDigit === 8) {
  2601. return number + '-ми';
  2602. } else {
  2603. return number + '-ти';
  2604. }
  2605. },
  2606. week : {
  2607. dow : 1, // Monday is the first day of the week.
  2608. doy : 7 // The week that contains Jan 1st is the first week of the year.
  2609. }
  2610. });
  2611. }));
  2612. // moment.js language configuration
  2613. // language : Bengali (bn)
  2614. // author : Kaushik Gandhi : https://github.com/kaushikgandhi
  2615. (function (factory) {
  2616. factory(moment);
  2617. }(function (moment) {
  2618. var symbolMap = {
  2619. '1': '১',
  2620. '2': '২',
  2621. '3': '৩',
  2622. '4': '৪',
  2623. '5': '৫',
  2624. '6': '৬',
  2625. '7': '৭',
  2626. '8': '৮',
  2627. '9': '৯',
  2628. '0': '০'
  2629. },
  2630. numberMap = {
  2631. '১': '1',
  2632. '২': '2',
  2633. '৩': '3',
  2634. '৪': '4',
  2635. '৫': '5',
  2636. '৬': '6',
  2637. '৭': '7',
  2638. '৮': '8',
  2639. '৯': '9',
  2640. '০': '0'
  2641. };
  2642. return moment.lang('bn', {
  2643. months : 'জানুয়ারী_ফেবুয়ারী_মার্চ_এপ্রিল_মে_জুন_জুলাই_অগাস্ট_সেপ্টেম্বর_অক্টোবর_নভেম্বর_ডিসেম্বর'.split("_"),
  2644. monthsShort : 'জানু_ফেব_মার্চ_এপর_মে_জুন_জুল_অগ_সেপ্ট_অক্টো_নভ_ডিসেম্'.split("_"),
  2645. weekdays : 'রবিবার_সোমবার_মঙ্গলবার_বুধবার_বৃহস্পত্তিবার_শুক্রুবার_শনিবার'.split("_"),
  2646. weekdaysShort : 'রবি_সোম_মঙ্গল_বুধ_বৃহস্পত্তি_শুক্রু_শনি'.split("_"),
  2647. weekdaysMin : 'রব_সম_মঙ্গ_বু_ব্রিহ_শু_শনি'.split("_"),
  2648. longDateFormat : {
  2649. LT : "A h:mm সময়",
  2650. L : "DD/MM/YYYY",
  2651. LL : "D MMMM YYYY",
  2652. LLL : "D MMMM YYYY, LT",
  2653. LLLL : "dddd, D MMMM YYYY, LT"
  2654. },
  2655. calendar : {
  2656. sameDay : '[আজ] LT',
  2657. nextDay : '[আগামীকাল] LT',
  2658. nextWeek : 'dddd, LT',
  2659. lastDay : '[গতকাল] LT',
  2660. lastWeek : '[গত] dddd, LT',
  2661. sameElse : 'L'
  2662. },
  2663. relativeTime : {
  2664. future : "%s পরে",
  2665. past : "%s আগে",
  2666. s : "কএক সেকেন্ড",
  2667. m : "এক মিনিট",
  2668. mm : "%d মিনিট",
  2669. h : "এক ঘন্টা",
  2670. hh : "%d ঘন্টা",
  2671. d : "এক দিন",
  2672. dd : "%d দিন",
  2673. M : "এক মাস",
  2674. MM : "%d মাস",
  2675. y : "এক বছর",
  2676. yy : "%d বছর"
  2677. },
  2678. preparse: function (string) {
  2679. return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {
  2680. return numberMap[match];
  2681. });
  2682. },
  2683. postformat: function (string) {
  2684. return string.replace(/\d/g, function (match) {
  2685. return symbolMap[match];
  2686. });
  2687. },
  2688. //Bengali is a vast language its spoken
  2689. //in different forms in various parts of the world.
  2690. //I have just generalized with most common one used
  2691. meridiem : function (hour, minute, isLower) {
  2692. if (hour < 4) {
  2693. return "রাত";
  2694. } else if (hour < 10) {
  2695. return "শকাল";
  2696. } else if (hour < 17) {
  2697. return "দুপুর";
  2698. } else if (hour < 20) {
  2699. return "বিকেল";
  2700. } else {
  2701. return "রাত";
  2702. }
  2703. },
  2704. week : {
  2705. dow : 0, // Sunday is the first day of the week.
  2706. doy : 6 // The week that contains Jan 1st is the first week of the year.
  2707. }
  2708. });
  2709. }));
  2710. // moment.js language configuration
  2711. // language : breton (br)
  2712. // author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou
  2713. (function (factory) {
  2714. factory(moment);
  2715. }(function (moment) {
  2716. function relativeTimeWithMutation(number, withoutSuffix, key) {
  2717. var format = {
  2718. 'mm': "munutenn",
  2719. 'MM': "miz",
  2720. 'dd': "devezh"
  2721. };
  2722. return number + ' ' + mutation(format[key], number);
  2723. }
  2724. function specialMutationForYears(number) {
  2725. switch (lastNumber(number)) {
  2726. case 1:
  2727. case 3:
  2728. case 4:
  2729. case 5:
  2730. case 9:
  2731. return number + ' bloaz';
  2732. default:
  2733. return number + ' vloaz';
  2734. }
  2735. }
  2736. function lastNumber(number) {
  2737. if (number > 9) {
  2738. return lastNumber(number % 10);
  2739. }
  2740. return number;
  2741. }
  2742. function mutation(text, number) {
  2743. if (number === 2) {
  2744. return softMutation(text);
  2745. }
  2746. return text;
  2747. }
  2748. function softMutation(text) {
  2749. var mutationTable = {
  2750. 'm': 'v',
  2751. 'b': 'v',
  2752. 'd': 'z'
  2753. };
  2754. if (mutationTable[text.charAt(0)] === undefined) {
  2755. return text;
  2756. }
  2757. return mutationTable[text.charAt(0)] + text.substring(1);
  2758. }
  2759. return moment.lang('br', {
  2760. months : "Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split("_"),
  2761. monthsShort : "Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split("_"),
  2762. weekdays : "Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split("_"),
  2763. weekdaysShort : "Sul_Lun_Meu_Mer_Yao_Gwe_Sad".split("_"),
  2764. weekdaysMin : "Su_Lu_Me_Mer_Ya_Gw_Sa".split("_"),
  2765. longDateFormat : {
  2766. LT : "h[e]mm A",
  2767. L : "DD/MM/YYYY",
  2768. LL : "D [a viz] MMMM YYYY",
  2769. LLL : "D [a viz] MMMM YYYY LT",
  2770. LLLL : "dddd, D [a viz] MMMM YYYY LT"
  2771. },
  2772. calendar : {
  2773. sameDay : '[Hiziv da] LT',
  2774. nextDay : '[Warc\'hoazh da] LT',
  2775. nextWeek : 'dddd [da] LT',
  2776. lastDay : '[Dec\'h da] LT',
  2777. lastWeek : 'dddd [paset da] LT',
  2778. sameElse : 'L'
  2779. },
  2780. relativeTime : {
  2781. future : "a-benn %s",
  2782. past : "%s 'zo",
  2783. s : "un nebeud segondennoù",
  2784. m : "ur vunutenn",
  2785. mm : relativeTimeWithMutation,
  2786. h : "un eur",
  2787. hh : "%d eur",
  2788. d : "un devezh",
  2789. dd : relativeTimeWithMutation,
  2790. M : "ur miz",
  2791. MM : relativeTimeWithMutation,
  2792. y : "ur bloaz",
  2793. yy : specialMutationForYears
  2794. },
  2795. ordinal : function (number) {
  2796. var output = (number === 1) ? 'añ' : 'vet';
  2797. return number + output;
  2798. },
  2799. week : {
  2800. dow : 1, // Monday is the first day of the week.
  2801. doy : 4 // The week that contains Jan 4th is the first week of the year.
  2802. }
  2803. });
  2804. }));
  2805. // moment.js language configuration
  2806. // language : bosnian (bs)
  2807. // author : Nedim Cholich : https://github.com/frontyard
  2808. // based on (hr) translation by Bojan Marković
  2809. (function (factory) {
  2810. factory(moment);
  2811. }(function (moment) {
  2812. function translate(number, withoutSuffix, key) {
  2813. var result = number + " ";
  2814. switch (key) {
  2815. case 'm':
  2816. return withoutSuffix ? 'jedna minuta' : 'jedne minute';
  2817. case 'mm':
  2818. if (number === 1) {
  2819. result += 'minuta';
  2820. } else if (number === 2 || number === 3 || number === 4) {
  2821. result += 'minute';
  2822. } else {
  2823. result += 'minuta';
  2824. }
  2825. return result;
  2826. case 'h':
  2827. return withoutSuffix ? 'jedan sat' : 'jednog sata';
  2828. case 'hh':
  2829. if (number === 1) {
  2830. result += 'sat';
  2831. } else if (number === 2 || number === 3 || number === 4) {
  2832. result += 'sata';
  2833. } else {
  2834. result += 'sati';
  2835. }
  2836. return result;
  2837. case 'dd':
  2838. if (number === 1) {
  2839. result += 'dan';
  2840. } else {
  2841. result += 'dana';
  2842. }
  2843. return result;
  2844. case 'MM':
  2845. if (number === 1) {
  2846. result += 'mjesec';
  2847. } else if (number === 2 || number === 3 || number === 4) {
  2848. result += 'mjeseca';
  2849. } else {
  2850. result += 'mjeseci';
  2851. }
  2852. return result;
  2853. case 'yy':
  2854. if (number === 1) {
  2855. result += 'godina';
  2856. } else if (number === 2 || number === 3 || number === 4) {
  2857. result += 'godine';
  2858. } else {
  2859. result += 'godina';
  2860. }
  2861. return result;
  2862. }
  2863. }
  2864. return moment.lang('bs', {
  2865. months : "januar_februar_mart_april_maj_juni_juli_avgust_septembar_oktobar_novembar_decembar".split("_"),
  2866. monthsShort : "jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),
  2867. weekdays : "nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),
  2868. weekdaysShort : "ned._pon._uto._sri._čet._pet._sub.".split("_"),
  2869. weekdaysMin : "ne_po_ut_sr_če_pe_su".split("_"),
  2870. longDateFormat : {
  2871. LT : "H:mm",
  2872. L : "DD. MM. YYYY",
  2873. LL : "D. MMMM YYYY",
  2874. LLL : "D. MMMM YYYY LT",
  2875. LLLL : "dddd, D. MMMM YYYY LT"
  2876. },
  2877. calendar : {
  2878. sameDay : '[danas u] LT',
  2879. nextDay : '[sutra u] LT',
  2880. nextWeek : function () {
  2881. switch (this.day()) {
  2882. case 0:
  2883. return '[u] [nedjelju] [u] LT';
  2884. case 3:
  2885. return '[u] [srijedu] [u] LT';
  2886. case 6:
  2887. return '[u] [subotu] [u] LT';
  2888. case 1:
  2889. case 2:
  2890. case 4:
  2891. case 5:
  2892. return '[u] dddd [u] LT';
  2893. }
  2894. },
  2895. lastDay : '[jučer u] LT',
  2896. lastWeek : function () {
  2897. switch (this.day()) {
  2898. case 0:
  2899. case 3:
  2900. return '[prošlu] dddd [u] LT';
  2901. case 6:
  2902. return '[prošle] [subote] [u] LT';
  2903. case 1:
  2904. case 2:
  2905. case 4:
  2906. case 5:
  2907. return '[prošli] dddd [u] LT';
  2908. }
  2909. },
  2910. sameElse : 'L'
  2911. },
  2912. relativeTime : {
  2913. future : "za %s",
  2914. past : "prije %s",
  2915. s : "par sekundi",
  2916. m : translate,
  2917. mm : translate,
  2918. h : translate,
  2919. hh : translate,
  2920. d : "dan",
  2921. dd : translate,
  2922. M : "mjesec",
  2923. MM : translate,
  2924. y : "godinu",
  2925. yy : translate
  2926. },
  2927. ordinal : '%d.',
  2928. week : {
  2929. dow : 1, // Monday is the first day of the week.
  2930. doy : 7 // The week that contains Jan 1st is the first week of the year.
  2931. }
  2932. });
  2933. }));
  2934. // moment.js language configuration
  2935. // language : catalan (ca)
  2936. // author : Juan G. Hurtado : https://github.com/juanghurtado
  2937. (function (factory) {
  2938. factory(moment);
  2939. }(function (moment) {
  2940. return moment.lang('ca', {
  2941. months : "gener_febrer_març_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre".split("_"),
  2942. monthsShort : "gen._febr._mar._abr._mai._jun._jul._ag._set._oct._nov._des.".split("_"),
  2943. weekdays : "diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte".split("_"),
  2944. weekdaysShort : "dg._dl._dt._dc._dj._dv._ds.".split("_"),
  2945. weekdaysMin : "Dg_Dl_Dt_Dc_Dj_Dv_Ds".split("_"),
  2946. longDateFormat : {
  2947. LT : "H:mm",
  2948. L : "DD/MM/YYYY",
  2949. LL : "D MMMM YYYY",
  2950. LLL : "D MMMM YYYY LT",
  2951. LLLL : "dddd D MMMM YYYY LT"
  2952. },
  2953. calendar : {
  2954. sameDay : function () {
  2955. return '[avui a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  2956. },
  2957. nextDay : function () {
  2958. return '[demà a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  2959. },
  2960. nextWeek : function () {
  2961. return 'dddd [a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  2962. },
  2963. lastDay : function () {
  2964. return '[ahir a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  2965. },
  2966. lastWeek : function () {
  2967. return '[el] dddd [passat a ' + ((this.hours() !== 1) ? 'les' : 'la') + '] LT';
  2968. },
  2969. sameElse : 'L'
  2970. },
  2971. relativeTime : {
  2972. future : "en %s",
  2973. past : "fa %s",
  2974. s : "uns segons",
  2975. m : "un minut",
  2976. mm : "%d minuts",
  2977. h : "una hora",
  2978. hh : "%d hores",
  2979. d : "un dia",
  2980. dd : "%d dies",
  2981. M : "un mes",
  2982. MM : "%d mesos",
  2983. y : "un any",
  2984. yy : "%d anys"
  2985. },
  2986. ordinal : '%dº',
  2987. week : {
  2988. dow : 1, // Monday is the first day of the week.
  2989. doy : 4 // The week that contains Jan 4th is the first week of the year.
  2990. }
  2991. });
  2992. }));
  2993. // moment.js language configuration
  2994. // language : czech (cs)
  2995. // author : petrbela : https://github.com/petrbela
  2996. (function (factory) {
  2997. factory(moment);
  2998. }(function (moment) {
  2999. var months = "leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec".split("_"),
  3000. monthsShort = "led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro".split("_");
  3001. function plural(n) {
  3002. return (n > 1) && (n < 5) && (~~(n / 10) !== 1);
  3003. }
  3004. function translate(number, withoutSuffix, key, isFuture) {
  3005. var result = number + " ";
  3006. switch (key) {
  3007. case 's': // a few seconds / in a few seconds / a few seconds ago
  3008. return (withoutSuffix || isFuture) ? 'pár sekund' : 'pár sekundami';
  3009. case 'm': // a minute / in a minute / a minute ago
  3010. return withoutSuffix ? 'minuta' : (isFuture ? 'minutu' : 'minutou');
  3011. case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
  3012. if (withoutSuffix || isFuture) {
  3013. return result + (plural(number) ? 'minuty' : 'minut');
  3014. } else {
  3015. return result + 'minutami';
  3016. }
  3017. break;
  3018. case 'h': // an hour / in an hour / an hour ago
  3019. return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
  3020. case 'hh': // 9 hours / in 9 hours / 9 hours ago
  3021. if (withoutSuffix || isFuture) {
  3022. return result + (plural(number) ? 'hodiny' : 'hodin');
  3023. } else {
  3024. return result + 'hodinami';
  3025. }
  3026. break;
  3027. case 'd': // a day / in a day / a day ago
  3028. return (withoutSuffix || isFuture) ? 'den' : 'dnem';
  3029. case 'dd': // 9 days / in 9 days / 9 days ago
  3030. if (withoutSuffix || isFuture) {
  3031. return result + (plural(number) ? 'dny' : 'dní');
  3032. } else {
  3033. return result + 'dny';
  3034. }
  3035. break;
  3036. case 'M': // a month / in a month / a month ago
  3037. return (withoutSuffix || isFuture) ? 'měsíc' : 'měsícem';
  3038. case 'MM': // 9 months / in 9 months / 9 months ago
  3039. if (withoutSuffix || isFuture) {
  3040. return result + (plural(number) ? 'měsíce' : 'měsíců');
  3041. } else {
  3042. return result + 'měsíci';
  3043. }
  3044. break;
  3045. case 'y': // a year / in a year / a year ago
  3046. return (withoutSuffix || isFuture) ? 'rok' : 'rokem';
  3047. case 'yy': // 9 years / in 9 years / 9 years ago
  3048. if (withoutSuffix || isFuture) {
  3049. return result + (plural(number) ? 'roky' : 'let');
  3050. } else {
  3051. return result + 'lety';
  3052. }
  3053. break;
  3054. }
  3055. }
  3056. return moment.lang('cs', {
  3057. months : months,
  3058. monthsShort : monthsShort,
  3059. monthsParse : (function (months, monthsShort) {
  3060. var i, _monthsParse = [];
  3061. for (i = 0; i < 12; i++) {
  3062. // use custom parser to solve problem with July (červenec)
  3063. _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
  3064. }
  3065. return _monthsParse;
  3066. }(months, monthsShort)),
  3067. weekdays : "neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota".split("_"),
  3068. weekdaysShort : "ne_po_út_st_čt_pá_so".split("_"),
  3069. weekdaysMin : "ne_po_út_st_čt_pá_so".split("_"),
  3070. longDateFormat : {
  3071. LT: "H.mm",
  3072. L : "DD. MM. YYYY",
  3073. LL : "D. MMMM YYYY",
  3074. LLL : "D. MMMM YYYY LT",
  3075. LLLL : "dddd D. MMMM YYYY LT"
  3076. },
  3077. calendar : {
  3078. sameDay: "[dnes v] LT",
  3079. nextDay: '[zítra v] LT',
  3080. nextWeek: function () {
  3081. switch (this.day()) {
  3082. case 0:
  3083. return '[v neděli v] LT';
  3084. case 1:
  3085. case 2:
  3086. return '[v] dddd [v] LT';
  3087. case 3:
  3088. return '[ve středu v] LT';
  3089. case 4:
  3090. return '[ve čtvrtek v] LT';
  3091. case 5:
  3092. return '[v pátek v] LT';
  3093. case 6:
  3094. return '[v sobotu v] LT';
  3095. }
  3096. },
  3097. lastDay: '[včera v] LT',
  3098. lastWeek: function () {
  3099. switch (this.day()) {
  3100. case 0:
  3101. return '[minulou neděli v] LT';
  3102. case 1:
  3103. case 2:
  3104. return '[minulé] dddd [v] LT';
  3105. case 3:
  3106. return '[minulou středu v] LT';
  3107. case 4:
  3108. case 5:
  3109. return '[minulý] dddd [v] LT';
  3110. case 6:
  3111. return '[minulou sobotu v] LT';
  3112. }
  3113. },
  3114. sameElse: "L"
  3115. },
  3116. relativeTime : {
  3117. future : "za %s",
  3118. past : "před %s",
  3119. s : translate,
  3120. m : translate,
  3121. mm : translate,
  3122. h : translate,
  3123. hh : translate,
  3124. d : translate,
  3125. dd : translate,
  3126. M : translate,
  3127. MM : translate,
  3128. y : translate,
  3129. yy : translate
  3130. },
  3131. ordinal : '%d.',
  3132. week : {
  3133. dow : 1, // Monday is the first day of the week.
  3134. doy : 4 // The week that contains Jan 4th is the first week of the year.
  3135. }
  3136. });
  3137. }));
  3138. // moment.js language configuration
  3139. // language : chuvash (cv)
  3140. // author : Anatoly Mironov : https://github.com/mirontoli
  3141. (function (factory) {
  3142. factory(moment);
  3143. }(function (moment) {
  3144. return moment.lang('cv', {
  3145. months : "кăрлач_нарăс_пуш_ака_май_çĕртме_утă_çурла_авăн_юпа_чӳк_раштав".split("_"),
  3146. monthsShort : "кăр_нар_пуш_ака_май_çĕр_утă_çур_ав_юпа_чӳк_раш".split("_"),
  3147. weekdays : "вырсарникун_тунтикун_ытларикун_юнкун_кĕçнерникун_эрнекун_шăматкун".split("_"),
  3148. weekdaysShort : "выр_тун_ытл_юн_кĕç_эрн_шăм".split("_"),
  3149. weekdaysMin : "вр_тн_ыт_юн_кç_эр_шм".split("_"),
  3150. longDateFormat : {
  3151. LT : "HH:mm",
  3152. L : "DD-MM-YYYY",
  3153. LL : "YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ]",
  3154. LLL : "YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT",
  3155. LLLL : "dddd, YYYY [çулхи] MMMM [уйăхĕн] D[-мĕшĕ], LT"
  3156. },
  3157. calendar : {
  3158. sameDay: '[Паян] LT [сехетре]',
  3159. nextDay: '[Ыран] LT [сехетре]',
  3160. lastDay: '[Ĕнер] LT [сехетре]',
  3161. nextWeek: '[Çитес] dddd LT [сехетре]',
  3162. lastWeek: '[Иртнĕ] dddd LT [сехетре]',
  3163. sameElse: 'L'
  3164. },
  3165. relativeTime : {
  3166. future : function (output) {
  3167. var affix = /сехет$/i.exec(output) ? "рен" : /çул$/i.exec(output) ? "тан" : "ран";
  3168. return output + affix;
  3169. },
  3170. past : "%s каялла",
  3171. s : "пĕр-ик çеккунт",
  3172. m : "пĕр минут",
  3173. mm : "%d минут",
  3174. h : "пĕр сехет",
  3175. hh : "%d сехет",
  3176. d : "пĕр кун",
  3177. dd : "%d кун",
  3178. M : "пĕр уйăх",
  3179. MM : "%d уйăх",
  3180. y : "пĕр çул",
  3181. yy : "%d çул"
  3182. },
  3183. ordinal : '%d-мĕш',
  3184. week : {
  3185. dow : 1, // Monday is the first day of the week.
  3186. doy : 7 // The week that contains Jan 1st is the first week of the year.
  3187. }
  3188. });
  3189. }));
  3190. // moment.js language configuration
  3191. // language : Welsh (cy)
  3192. // author : Robert Allen
  3193. (function (factory) {
  3194. factory(moment);
  3195. }(function (moment) {
  3196. return moment.lang("cy", {
  3197. months: "Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr".split("_"),
  3198. monthsShort: "Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag".split("_"),
  3199. weekdays: "Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn".split("_"),
  3200. weekdaysShort: "Sul_Llun_Maw_Mer_Iau_Gwe_Sad".split("_"),
  3201. weekdaysMin: "Su_Ll_Ma_Me_Ia_Gw_Sa".split("_"),
  3202. // time formats are the same as en-gb
  3203. longDateFormat: {
  3204. LT: "HH:mm",
  3205. L: "DD/MM/YYYY",
  3206. LL: "D MMMM YYYY",
  3207. LLL: "D MMMM YYYY LT",
  3208. LLLL: "dddd, D MMMM YYYY LT"
  3209. },
  3210. calendar: {
  3211. sameDay: '[Heddiw am] LT',
  3212. nextDay: '[Yfory am] LT',
  3213. nextWeek: 'dddd [am] LT',
  3214. lastDay: '[Ddoe am] LT',
  3215. lastWeek: 'dddd [diwethaf am] LT',
  3216. sameElse: 'L'
  3217. },
  3218. relativeTime: {
  3219. future: "mewn %s",
  3220. past: "%s yn ôl",
  3221. s: "ychydig eiliadau",
  3222. m: "munud",
  3223. mm: "%d munud",
  3224. h: "awr",
  3225. hh: "%d awr",
  3226. d: "diwrnod",
  3227. dd: "%d diwrnod",
  3228. M: "mis",
  3229. MM: "%d mis",
  3230. y: "blwyddyn",
  3231. yy: "%d flynedd"
  3232. },
  3233. // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh
  3234. ordinal: function (number) {
  3235. var b = number,
  3236. output = '',
  3237. lookup = [
  3238. '', 'af', 'il', 'ydd', 'ydd', 'ed', 'ed', 'ed', 'fed', 'fed', 'fed', // 1af to 10fed
  3239. 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'eg', 'fed', 'eg', 'fed' // 11eg to 20fed
  3240. ];
  3241. if (b > 20) {
  3242. if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {
  3243. output = 'fed'; // not 30ain, 70ain or 90ain
  3244. } else {
  3245. output = 'ain';
  3246. }
  3247. } else if (b > 0) {
  3248. output = lookup[b];
  3249. }
  3250. return number + output;
  3251. },
  3252. week : {
  3253. dow : 1, // Monday is the first day of the week.
  3254. doy : 4 // The week that contains Jan 4th is the first week of the year.
  3255. }
  3256. });
  3257. }));
  3258. // moment.js language configuration
  3259. // language : danish (da)
  3260. // author : Ulrik Nielsen : https://github.com/mrbase
  3261. (function (factory) {
  3262. factory(moment);
  3263. }(function (moment) {
  3264. return moment.lang('da', {
  3265. months : "januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december".split("_"),
  3266. monthsShort : "jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),
  3267. weekdays : "søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),
  3268. weekdaysShort : "søn_man_tir_ons_tor_fre_lør".split("_"),
  3269. weekdaysMin : "sø_ma_ti_on_to_fr_lø".split("_"),
  3270. longDateFormat : {
  3271. LT : "HH:mm",
  3272. L : "DD/MM/YYYY",
  3273. LL : "D. MMMM YYYY",
  3274. LLL : "D. MMMM YYYY LT",
  3275. LLLL : "dddd [d.] D. MMMM YYYY LT"
  3276. },
  3277. calendar : {
  3278. sameDay : '[I dag kl.] LT',
  3279. nextDay : '[I morgen kl.] LT',
  3280. nextWeek : 'dddd [kl.] LT',
  3281. lastDay : '[I går kl.] LT',
  3282. lastWeek : '[sidste] dddd [kl] LT',
  3283. sameElse : 'L'
  3284. },
  3285. relativeTime : {
  3286. future : "om %s",
  3287. past : "%s siden",
  3288. s : "få sekunder",
  3289. m : "et minut",
  3290. mm : "%d minutter",
  3291. h : "en time",
  3292. hh : "%d timer",
  3293. d : "en dag",
  3294. dd : "%d dage",
  3295. M : "en måned",
  3296. MM : "%d måneder",
  3297. y : "et år",
  3298. yy : "%d år"
  3299. },
  3300. ordinal : '%d.',
  3301. week : {
  3302. dow : 1, // Monday is the first day of the week.
  3303. doy : 4 // The week that contains Jan 4th is the first week of the year.
  3304. }
  3305. });
  3306. }));
  3307. // moment.js language configuration
  3308. // language : austrian german (de-at)
  3309. // author : lluchs : https://github.com/lluchs
  3310. // author: Menelion Elensúle: https://github.com/Oire
  3311. // author : Martin Groller : https://github.com/MadMG
  3312. (function (factory) {
  3313. factory(moment);
  3314. }(function (moment) {
  3315. function processRelativeTime(number, withoutSuffix, key, isFuture) {
  3316. var format = {
  3317. 'm': ['eine Minute', 'einer Minute'],
  3318. 'h': ['eine Stunde', 'einer Stunde'],
  3319. 'd': ['ein Tag', 'einem Tag'],
  3320. 'dd': [number + ' Tage', number + ' Tagen'],
  3321. 'M': ['ein Monat', 'einem Monat'],
  3322. 'MM': [number + ' Monate', number + ' Monaten'],
  3323. 'y': ['ein Jahr', 'einem Jahr'],
  3324. 'yy': [number + ' Jahre', number + ' Jahren']
  3325. };
  3326. return withoutSuffix ? format[key][0] : format[key][1];
  3327. }
  3328. return moment.lang('de-at', {
  3329. months : "Jänner_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),
  3330. monthsShort : "Jän._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),
  3331. weekdays : "Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),
  3332. weekdaysShort : "So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),
  3333. weekdaysMin : "So_Mo_Di_Mi_Do_Fr_Sa".split("_"),
  3334. longDateFormat : {
  3335. LT: "HH:mm [Uhr]",
  3336. L : "DD.MM.YYYY",
  3337. LL : "D. MMMM YYYY",
  3338. LLL : "D. MMMM YYYY LT",
  3339. LLLL : "dddd, D. MMMM YYYY LT"
  3340. },
  3341. calendar : {
  3342. sameDay: "[Heute um] LT",
  3343. sameElse: "L",
  3344. nextDay: '[Morgen um] LT',
  3345. nextWeek: 'dddd [um] LT',
  3346. lastDay: '[Gestern um] LT',
  3347. lastWeek: '[letzten] dddd [um] LT'
  3348. },
  3349. relativeTime : {
  3350. future : "in %s",
  3351. past : "vor %s",
  3352. s : "ein paar Sekunden",
  3353. m : processRelativeTime,
  3354. mm : "%d Minuten",
  3355. h : processRelativeTime,
  3356. hh : "%d Stunden",
  3357. d : processRelativeTime,
  3358. dd : processRelativeTime,
  3359. M : processRelativeTime,
  3360. MM : processRelativeTime,
  3361. y : processRelativeTime,
  3362. yy : processRelativeTime
  3363. },
  3364. ordinal : '%d.',
  3365. week : {
  3366. dow : 1, // Monday is the first day of the week.
  3367. doy : 4 // The week that contains Jan 4th is the first week of the year.
  3368. }
  3369. });
  3370. }));
  3371. // moment.js language configuration
  3372. // language : german (de)
  3373. // author : lluchs : https://github.com/lluchs
  3374. // author: Menelion Elensúle: https://github.com/Oire
  3375. (function (factory) {
  3376. factory(moment);
  3377. }(function (moment) {
  3378. function processRelativeTime(number, withoutSuffix, key, isFuture) {
  3379. var format = {
  3380. 'm': ['eine Minute', 'einer Minute'],
  3381. 'h': ['eine Stunde', 'einer Stunde'],
  3382. 'd': ['ein Tag', 'einem Tag'],
  3383. 'dd': [number + ' Tage', number + ' Tagen'],
  3384. 'M': ['ein Monat', 'einem Monat'],
  3385. 'MM': [number + ' Monate', number + ' Monaten'],
  3386. 'y': ['ein Jahr', 'einem Jahr'],
  3387. 'yy': [number + ' Jahre', number + ' Jahren']
  3388. };
  3389. return withoutSuffix ? format[key][0] : format[key][1];
  3390. }
  3391. return moment.lang('de', {
  3392. months : "Januar_Februar_März_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),
  3393. monthsShort : "Jan._Febr._Mrz._Apr._Mai_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),
  3394. weekdays : "Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag".split("_"),
  3395. weekdaysShort : "So._Mo._Di._Mi._Do._Fr._Sa.".split("_"),
  3396. weekdaysMin : "So_Mo_Di_Mi_Do_Fr_Sa".split("_"),
  3397. longDateFormat : {
  3398. LT: "HH:mm [Uhr]",
  3399. L : "DD.MM.YYYY",
  3400. LL : "D. MMMM YYYY",
  3401. LLL : "D. MMMM YYYY LT",
  3402. LLLL : "dddd, D. MMMM YYYY LT"
  3403. },
  3404. calendar : {
  3405. sameDay: "[Heute um] LT",
  3406. sameElse: "L",
  3407. nextDay: '[Morgen um] LT',
  3408. nextWeek: 'dddd [um] LT',
  3409. lastDay: '[Gestern um] LT',
  3410. lastWeek: '[letzten] dddd [um] LT'
  3411. },
  3412. relativeTime : {
  3413. future : "in %s",
  3414. past : "vor %s",
  3415. s : "ein paar Sekunden",
  3416. m : processRelativeTime,
  3417. mm : "%d Minuten",
  3418. h : processRelativeTime,
  3419. hh : "%d Stunden",
  3420. d : processRelativeTime,
  3421. dd : processRelativeTime,
  3422. M : processRelativeTime,
  3423. MM : processRelativeTime,
  3424. y : processRelativeTime,
  3425. yy : processRelativeTime
  3426. },
  3427. ordinal : '%d.',
  3428. week : {
  3429. dow : 1, // Monday is the first day of the week.
  3430. doy : 4 // The week that contains Jan 4th is the first week of the year.
  3431. }
  3432. });
  3433. }));
  3434. // moment.js language configuration
  3435. // language : modern greek (el)
  3436. // author : Aggelos Karalias : https://github.com/mehiel
  3437. (function (factory) {
  3438. factory(moment);
  3439. }(function (moment) {
  3440. return moment.lang('el', {
  3441. monthsNominativeEl : "Ιανουάριος_Φεβρουάριος_Μάρτιος_Απρίλιος_Μάιος_Ιούνιος_Ιούλιος_Αύγουστος_Σεπτέμβριος_Οκτώβριος_Νοέμβριος_Δεκέμβριος".split("_"),
  3442. monthsGenitiveEl : "Ιανουαρίου_Φεβρουαρίου_Μαρτίου_Απριλίου_Μαΐου_Ιουνίου_Ιουλίου_Αυγούστου_Σεπτεμβρίου_Οκτωβρίου_Νοεμβρίου_Δεκεμβρίου".split("_"),
  3443. months : function (momentToFormat, format) {
  3444. if (/D/.test(format.substring(0, format.indexOf("MMMM")))) { // if there is a day number before 'MMMM'
  3445. return this._monthsGenitiveEl[momentToFormat.month()];
  3446. } else {
  3447. return this._monthsNominativeEl[momentToFormat.month()];
  3448. }
  3449. },
  3450. monthsShort : "Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_Οκτ_Νοε_Δεκ".split("_"),
  3451. weekdays : "Κυριακή_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Παρασκευή_Σάββατο".split("_"),
  3452. weekdaysShort : "Κυρ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ".split("_"),
  3453. weekdaysMin : "Κυ_Δε_Τρ_Τε_Πε_Πα_Σα".split("_"),
  3454. meridiem : function (hours, minutes, isLower) {
  3455. if (hours > 11) {
  3456. return isLower ? 'μμ' : 'ΜΜ';
  3457. } else {
  3458. return isLower ? 'πμ' : 'ΠΜ';
  3459. }
  3460. },
  3461. longDateFormat : {
  3462. LT : "h:mm A",
  3463. L : "DD/MM/YYYY",
  3464. LL : "D MMMM YYYY",
  3465. LLL : "D MMMM YYYY LT",
  3466. LLLL : "dddd, D MMMM YYYY LT"
  3467. },
  3468. calendarEl : {
  3469. sameDay : '[Σήμερα {}] LT',
  3470. nextDay : '[Αύριο {}] LT',
  3471. nextWeek : 'dddd [{}] LT',
  3472. lastDay : '[Χθες {}] LT',
  3473. lastWeek : function() {
  3474. switch (this.day()) {
  3475. case 6:
  3476. return '[το προηγούμενο] dddd [{}] LT';
  3477. default:
  3478. return '[την προηγούμενη] dddd [{}] LT';
  3479. }
  3480. },
  3481. sameElse : 'L'
  3482. },
  3483. calendar : function (key, mom) {
  3484. var output = this._calendarEl[key],
  3485. hours = mom && mom.hours();
  3486. if (typeof output === 'function') {
  3487. output = output.apply(mom);
  3488. }
  3489. return output.replace("{}", (hours % 12 === 1 ? "στη" : "στις"));
  3490. },
  3491. relativeTime : {
  3492. future : "σε %s",
  3493. past : "%s πριν",
  3494. s : "δευτερόλεπτα",
  3495. m : "ένα λεπτό",
  3496. mm : "%d λεπτά",
  3497. h : "μία ώρα",
  3498. hh : "%d ώρες",
  3499. d : "μία μέρα",
  3500. dd : "%d μέρες",
  3501. M : "ένας μήνας",
  3502. MM : "%d μήνες",
  3503. y : "ένας χρόνος",
  3504. yy : "%d χρόνια"
  3505. },
  3506. ordinal : function (number) {
  3507. return number + 'η';
  3508. },
  3509. week : {
  3510. dow : 1, // Monday is the first day of the week.
  3511. doy : 4 // The week that contains Jan 4st is the first week of the year.
  3512. }
  3513. });
  3514. }));
  3515. // moment.js language configuration
  3516. // language : australian english (en-au)
  3517. (function (factory) {
  3518. factory(moment);
  3519. }(function (moment) {
  3520. return moment.lang('en-au', {
  3521. months : "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
  3522. monthsShort : "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
  3523. weekdays : "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
  3524. weekdaysShort : "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
  3525. weekdaysMin : "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
  3526. longDateFormat : {
  3527. LT : "h:mm A",
  3528. L : "DD/MM/YYYY",
  3529. LL : "D MMMM YYYY",
  3530. LLL : "D MMMM YYYY LT",
  3531. LLLL : "dddd, D MMMM YYYY LT"
  3532. },
  3533. calendar : {
  3534. sameDay : '[Today at] LT',
  3535. nextDay : '[Tomorrow at] LT',
  3536. nextWeek : 'dddd [at] LT',
  3537. lastDay : '[Yesterday at] LT',
  3538. lastWeek : '[Last] dddd [at] LT',
  3539. sameElse : 'L'
  3540. },
  3541. relativeTime : {
  3542. future : "in %s",
  3543. past : "%s ago",
  3544. s : "a few seconds",
  3545. m : "a minute",
  3546. mm : "%d minutes",
  3547. h : "an hour",
  3548. hh : "%d hours",
  3549. d : "a day",
  3550. dd : "%d days",
  3551. M : "a month",
  3552. MM : "%d months",
  3553. y : "a year",
  3554. yy : "%d years"
  3555. },
  3556. ordinal : function (number) {
  3557. var b = number % 10,
  3558. output = (~~ (number % 100 / 10) === 1) ? 'th' :
  3559. (b === 1) ? 'st' :
  3560. (b === 2) ? 'nd' :
  3561. (b === 3) ? 'rd' : 'th';
  3562. return number + output;
  3563. },
  3564. week : {
  3565. dow : 1, // Monday is the first day of the week.
  3566. doy : 4 // The week that contains Jan 4th is the first week of the year.
  3567. }
  3568. });
  3569. }));
  3570. // moment.js language configuration
  3571. // language : canadian english (en-ca)
  3572. // author : Jonathan Abourbih : https://github.com/jonbca
  3573. (function (factory) {
  3574. factory(moment);
  3575. }(function (moment) {
  3576. return moment.lang('en-ca', {
  3577. months : "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
  3578. monthsShort : "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
  3579. weekdays : "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
  3580. weekdaysShort : "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
  3581. weekdaysMin : "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
  3582. longDateFormat : {
  3583. LT : "h:mm A",
  3584. L : "YYYY-MM-DD",
  3585. LL : "D MMMM, YYYY",
  3586. LLL : "D MMMM, YYYY LT",
  3587. LLLL : "dddd, D MMMM, YYYY LT"
  3588. },
  3589. calendar : {
  3590. sameDay : '[Today at] LT',
  3591. nextDay : '[Tomorrow at] LT',
  3592. nextWeek : 'dddd [at] LT',
  3593. lastDay : '[Yesterday at] LT',
  3594. lastWeek : '[Last] dddd [at] LT',
  3595. sameElse : 'L'
  3596. },
  3597. relativeTime : {
  3598. future : "in %s",
  3599. past : "%s ago",
  3600. s : "a few seconds",
  3601. m : "a minute",
  3602. mm : "%d minutes",
  3603. h : "an hour",
  3604. hh : "%d hours",
  3605. d : "a day",
  3606. dd : "%d days",
  3607. M : "a month",
  3608. MM : "%d months",
  3609. y : "a year",
  3610. yy : "%d years"
  3611. },
  3612. ordinal : function (number) {
  3613. var b = number % 10,
  3614. output = (~~ (number % 100 / 10) === 1) ? 'th' :
  3615. (b === 1) ? 'st' :
  3616. (b === 2) ? 'nd' :
  3617. (b === 3) ? 'rd' : 'th';
  3618. return number + output;
  3619. }
  3620. });
  3621. }));
  3622. // moment.js language configuration
  3623. // language : great britain english (en-gb)
  3624. // author : Chris Gedrim : https://github.com/chrisgedrim
  3625. (function (factory) {
  3626. factory(moment);
  3627. }(function (moment) {
  3628. return moment.lang('en-gb', {
  3629. months : "January_February_March_April_May_June_July_August_September_October_November_December".split("_"),
  3630. monthsShort : "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"),
  3631. weekdays : "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),
  3632. weekdaysShort : "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),
  3633. weekdaysMin : "Su_Mo_Tu_We_Th_Fr_Sa".split("_"),
  3634. longDateFormat : {
  3635. LT : "HH:mm",
  3636. L : "DD/MM/YYYY",
  3637. LL : "D MMMM YYYY",
  3638. LLL : "D MMMM YYYY LT",
  3639. LLLL : "dddd, D MMMM YYYY LT"
  3640. },
  3641. calendar : {
  3642. sameDay : '[Today at] LT',
  3643. nextDay : '[Tomorrow at] LT',
  3644. nextWeek : 'dddd [at] LT',
  3645. lastDay : '[Yesterday at] LT',
  3646. lastWeek : '[Last] dddd [at] LT',
  3647. sameElse : 'L'
  3648. },
  3649. relativeTime : {
  3650. future : "in %s",
  3651. past : "%s ago",
  3652. s : "a few seconds",
  3653. m : "a minute",
  3654. mm : "%d minutes",
  3655. h : "an hour",
  3656. hh : "%d hours",
  3657. d : "a day",
  3658. dd : "%d days",
  3659. M : "a month",
  3660. MM : "%d months",
  3661. y : "a year",
  3662. yy : "%d years"
  3663. },
  3664. ordinal : function (number) {
  3665. var b = number % 10,
  3666. output = (~~ (number % 100 / 10) === 1) ? 'th' :
  3667. (b === 1) ? 'st' :
  3668. (b === 2) ? 'nd' :
  3669. (b === 3) ? 'rd' : 'th';
  3670. return number + output;
  3671. },
  3672. week : {
  3673. dow : 1, // Monday is the first day of the week.
  3674. doy : 4 // The week that contains Jan 4th is the first week of the year.
  3675. }
  3676. });
  3677. }));
  3678. // moment.js language configuration
  3679. // language : esperanto (eo)
  3680. // author : Colin Dean : https://github.com/colindean
  3681. // komento: Mi estas malcerta se mi korekte traktis akuzativojn en tiu traduko.
  3682. // Se ne, bonvolu korekti kaj avizi min por ke mi povas lerni!
  3683. (function (factory) {
  3684. factory(moment);
  3685. }(function (moment) {
  3686. return moment.lang('eo', {
  3687. months : "januaro_februaro_marto_aprilo_majo_junio_julio_aŭgusto_septembro_oktobro_novembro_decembro".split("_"),
  3688. monthsShort : "jan_feb_mar_apr_maj_jun_jul_aŭg_sep_okt_nov_dec".split("_"),
  3689. weekdays : "Dimanĉo_Lundo_Mardo_Merkredo_Ĵaŭdo_Vendredo_Sabato".split("_"),
  3690. weekdaysShort : "Dim_Lun_Mard_Merk_Ĵaŭ_Ven_Sab".split("_"),
  3691. weekdaysMin : "Di_Lu_Ma_Me_Ĵa_Ve_Sa".split("_"),
  3692. longDateFormat : {
  3693. LT : "HH:mm",
  3694. L : "YYYY-MM-DD",
  3695. LL : "D[-an de] MMMM, YYYY",
  3696. LLL : "D[-an de] MMMM, YYYY LT",
  3697. LLLL : "dddd, [la] D[-an de] MMMM, YYYY LT"
  3698. },
  3699. meridiem : function (hours, minutes, isLower) {
  3700. if (hours > 11) {
  3701. return isLower ? 'p.t.m.' : 'P.T.M.';
  3702. } else {
  3703. return isLower ? 'a.t.m.' : 'A.T.M.';
  3704. }
  3705. },
  3706. calendar : {
  3707. sameDay : '[Hodiaŭ je] LT',
  3708. nextDay : '[Morgaŭ je] LT',
  3709. nextWeek : 'dddd [je] LT',
  3710. lastDay : '[Hieraŭ je] LT',
  3711. lastWeek : '[pasinta] dddd [je] LT',
  3712. sameElse : 'L'
  3713. },
  3714. relativeTime : {
  3715. future : "je %s",
  3716. past : "antaŭ %s",
  3717. s : "sekundoj",
  3718. m : "minuto",
  3719. mm : "%d minutoj",
  3720. h : "horo",
  3721. hh : "%d horoj",
  3722. d : "tago",//ne 'diurno', ĉar estas uzita por proksimumo
  3723. dd : "%d tagoj",
  3724. M : "monato",
  3725. MM : "%d monatoj",
  3726. y : "jaro",
  3727. yy : "%d jaroj"
  3728. },
  3729. ordinal : "%da",
  3730. week : {
  3731. dow : 1, // Monday is the first day of the week.
  3732. doy : 7 // The week that contains Jan 1st is the first week of the year.
  3733. }
  3734. });
  3735. }));
  3736. // moment.js language configuration
  3737. // language : spanish (es)
  3738. // author : Julio Napurí : https://github.com/julionc
  3739. (function (factory) {
  3740. factory(moment);
  3741. }(function (moment) {
  3742. var monthsShortDot = "ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.".split("_"),
  3743. monthsShort = "ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic".split("_");
  3744. return moment.lang('es', {
  3745. months : "enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre".split("_"),
  3746. monthsShort : function (m, format) {
  3747. if (/-MMM-/.test(format)) {
  3748. return monthsShort[m.month()];
  3749. } else {
  3750. return monthsShortDot[m.month()];
  3751. }
  3752. },
  3753. weekdays : "domingo_lunes_martes_miércoles_jueves_viernes_sábado".split("_"),
  3754. weekdaysShort : "dom._lun._mar._mié._jue._vie._sáb.".split("_"),
  3755. weekdaysMin : "Do_Lu_Ma_Mi_Ju_Vi_Sá".split("_"),
  3756. longDateFormat : {
  3757. LT : "H:mm",
  3758. L : "DD/MM/YYYY",
  3759. LL : "D [de] MMMM [del] YYYY",
  3760. LLL : "D [de] MMMM [del] YYYY LT",
  3761. LLLL : "dddd, D [de] MMMM [del] YYYY LT"
  3762. },
  3763. calendar : {
  3764. sameDay : function () {
  3765. return '[hoy a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  3766. },
  3767. nextDay : function () {
  3768. return '[mañana a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  3769. },
  3770. nextWeek : function () {
  3771. return 'dddd [a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  3772. },
  3773. lastDay : function () {
  3774. return '[ayer a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  3775. },
  3776. lastWeek : function () {
  3777. return '[el] dddd [pasado a la' + ((this.hours() !== 1) ? 's' : '') + '] LT';
  3778. },
  3779. sameElse : 'L'
  3780. },
  3781. relativeTime : {
  3782. future : "en %s",
  3783. past : "hace %s",
  3784. s : "unos segundos",
  3785. m : "un minuto",
  3786. mm : "%d minutos",
  3787. h : "una hora",
  3788. hh : "%d horas",
  3789. d : "un día",
  3790. dd : "%d días",
  3791. M : "un mes",
  3792. MM : "%d meses",
  3793. y : "un año",
  3794. yy : "%d años"
  3795. },
  3796. ordinal : '%dº',
  3797. week : {
  3798. dow : 1, // Monday is the first day of the week.
  3799. doy : 4 // The week that contains Jan 4th is the first week of the year.
  3800. }
  3801. });
  3802. }));
  3803. // moment.js language configuration
  3804. // language : estonian (et)
  3805. // author : Henry Kehlmann : https://github.com/madhenry
  3806. // improvements : Illimar Tambek : https://github.com/ragulka
  3807. (function (factory) {
  3808. factory(moment);
  3809. }(function (moment) {
  3810. function processRelativeTime(number, withoutSuffix, key, isFuture) {
  3811. var format = {
  3812. 's' : ['mõne sekundi', 'mõni sekund', 'paar sekundit'],
  3813. 'm' : ['ühe minuti', 'üks minut'],
  3814. 'mm': [number + ' minuti', number + ' minutit'],
  3815. 'h' : ['ühe tunni', 'tund aega', 'üks tund'],
  3816. 'hh': [number + ' tunni', number + ' tundi'],
  3817. 'd' : ['ühe päeva', 'üks päev'],
  3818. 'M' : ['kuu aja', 'kuu aega', 'üks kuu'],
  3819. 'MM': [number + ' kuu', number + ' kuud'],
  3820. 'y' : ['ühe aasta', 'aasta', 'üks aasta'],
  3821. 'yy': [number + ' aasta', number + ' aastat']
  3822. };
  3823. if (withoutSuffix) {
  3824. return format[key][2] ? format[key][2] : format[key][1];
  3825. }
  3826. return isFuture ? format[key][0] : format[key][1];
  3827. }
  3828. return moment.lang('et', {
  3829. months : "jaanuar_veebruar_märts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember".split("_"),
  3830. monthsShort : "jaan_veebr_märts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets".split("_"),
  3831. weekdays : "pühapäev_esmaspäev_teisipäev_kolmapäev_neljapäev_reede_laupäev".split("_"),
  3832. weekdaysShort : "P_E_T_K_N_R_L".split("_"),
  3833. weekdaysMin : "P_E_T_K_N_R_L".split("_"),
  3834. longDateFormat : {
  3835. LT : "H:mm",
  3836. L : "DD.MM.YYYY",
  3837. LL : "D. MMMM YYYY",
  3838. LLL : "D. MMMM YYYY LT",
  3839. LLLL : "dddd, D. MMMM YYYY LT"
  3840. },
  3841. calendar : {
  3842. sameDay : '[Täna,] LT',
  3843. nextDay : '[Homme,] LT',
  3844. nextWeek : '[Järgmine] dddd LT',
  3845. lastDay : '[Eile,] LT',
  3846. lastWeek : '[Eelmine] dddd LT',
  3847. sameElse : 'L'
  3848. },
  3849. relativeTime : {
  3850. future : "%s pärast",
  3851. past : "%s tagasi",
  3852. s : processRelativeTime,
  3853. m : processRelativeTime,
  3854. mm : processRelativeTime,
  3855. h : processRelativeTime,
  3856. hh : processRelativeTime,
  3857. d : processRelativeTime,
  3858. dd : '%d päeva',
  3859. M : processRelativeTime,
  3860. MM : processRelativeTime,
  3861. y : processRelativeTime,
  3862. yy : processRelativeTime
  3863. },
  3864. ordinal : '%d.',
  3865. week : {
  3866. dow : 1, // Monday is the first day of the week.
  3867. doy : 4 // The week that contains Jan 4th is the first week of the year.
  3868. }
  3869. });
  3870. }));
  3871. // moment.js language configuration
  3872. // language : euskara (eu)
  3873. // author : Eneko Illarramendi : https://github.com/eillarra
  3874. (function (factory) {
  3875. factory(moment);
  3876. }(function (moment) {
  3877. return moment.lang('eu', {
  3878. months : "urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua".split("_"),
  3879. monthsShort : "urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.".split("_"),
  3880. weekdays : "igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata".split("_"),
  3881. weekdaysShort : "ig._al._ar._az._og._ol._lr.".split("_"),
  3882. weekdaysMin : "ig_al_ar_az_og_ol_lr".split("_"),
  3883. longDateFormat : {
  3884. LT : "HH:mm",
  3885. L : "YYYY-MM-DD",
  3886. LL : "YYYY[ko] MMMM[ren] D[a]",
  3887. LLL : "YYYY[ko] MMMM[ren] D[a] LT",
  3888. LLLL : "dddd, YYYY[ko] MMMM[ren] D[a] LT",
  3889. l : "YYYY-M-D",
  3890. ll : "YYYY[ko] MMM D[a]",
  3891. lll : "YYYY[ko] MMM D[a] LT",
  3892. llll : "ddd, YYYY[ko] MMM D[a] LT"
  3893. },
  3894. calendar : {
  3895. sameDay : '[gaur] LT[etan]',
  3896. nextDay : '[bihar] LT[etan]',
  3897. nextWeek : 'dddd LT[etan]',
  3898. lastDay : '[atzo] LT[etan]',
  3899. lastWeek : '[aurreko] dddd LT[etan]',
  3900. sameElse : 'L'
  3901. },
  3902. relativeTime : {
  3903. future : "%s barru",
  3904. past : "duela %s",
  3905. s : "segundo batzuk",
  3906. m : "minutu bat",
  3907. mm : "%d minutu",
  3908. h : "ordu bat",
  3909. hh : "%d ordu",
  3910. d : "egun bat",
  3911. dd : "%d egun",
  3912. M : "hilabete bat",
  3913. MM : "%d hilabete",
  3914. y : "urte bat",
  3915. yy : "%d urte"
  3916. },
  3917. ordinal : '%d.',
  3918. week : {
  3919. dow : 1, // Monday is the first day of the week.
  3920. doy : 7 // The week that contains Jan 1st is the first week of the year.
  3921. }
  3922. });
  3923. }));
  3924. // moment.js language configuration
  3925. // language : Persian Language
  3926. // author : Ebrahim Byagowi : https://github.com/ebraminio
  3927. (function (factory) {
  3928. factory(moment);
  3929. }(function (moment) {
  3930. var symbolMap = {
  3931. '1': '۱',
  3932. '2': '۲',
  3933. '3': '۳',
  3934. '4': '۴',
  3935. '5': '۵',
  3936. '6': '۶',
  3937. '7': '۷',
  3938. '8': '۸',
  3939. '9': '۹',
  3940. '0': '۰'
  3941. }, numberMap = {
  3942. '۱': '1',
  3943. '۲': '2',
  3944. '۳': '3',
  3945. '۴': '4',
  3946. '۵': '5',
  3947. '۶': '6',
  3948. '۷': '7',
  3949. '۸': '8',
  3950. '۹': '9',
  3951. '۰': '0'
  3952. };
  3953. return moment.lang('fa', {
  3954. months : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
  3955. monthsShort : 'ژانویه_فوریه_مارس_آوریل_مه_ژوئن_ژوئیه_اوت_سپتامبر_اکتبر_نوامبر_دسامبر'.split('_'),
  3956. weekdays : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
  3957. weekdaysShort : 'یک\u200cشنبه_دوشنبه_سه\u200cشنبه_چهارشنبه_پنج\u200cشنبه_جمعه_شنبه'.split('_'),
  3958. weekdaysMin : 'ی_د_س_چ_پ_ج_ش'.split('_'),
  3959. longDateFormat : {
  3960. LT : 'HH:mm',
  3961. L : 'DD/MM/YYYY',
  3962. LL : 'D MMMM YYYY',
  3963. LLL : 'D MMMM YYYY LT',
  3964. LLLL : 'dddd, D MMMM YYYY LT'
  3965. },
  3966. meridiem : function (hour, minute, isLower) {
  3967. if (hour < 12) {
  3968. return "قبل از ظهر";
  3969. } else {
  3970. return "بعد از ظهر";
  3971. }
  3972. },
  3973. calendar : {
  3974. sameDay : '[امروز ساعت] LT',
  3975. nextDay : '[فردا ساعت] LT',
  3976. nextWeek : 'dddd [ساعت] LT',
  3977. lastDay : '[دیروز ساعت] LT',
  3978. lastWeek : 'dddd [پیش] [ساعت] LT',
  3979. sameElse : 'L'
  3980. },
  3981. relativeTime : {
  3982. future : 'در %s',
  3983. past : '%s پیش',
  3984. s : 'چندین ثانیه',
  3985. m : 'یک دقیقه',
  3986. mm : '%d دقیقه',
  3987. h : 'یک ساعت',
  3988. hh : '%d ساعت',
  3989. d : 'یک روز',
  3990. dd : '%d روز',
  3991. M : 'یک ماه',
  3992. MM : '%d ماه',
  3993. y : 'یک سال',
  3994. yy : '%d سال'
  3995. },
  3996. preparse: function (string) {
  3997. return string.replace(/[۰-۹]/g, function (match) {
  3998. return numberMap[match];
  3999. }).replace(/،/g, ',');
  4000. },
  4001. postformat: function (string) {
  4002. return string.replace(/\d/g, function (match) {
  4003. return symbolMap[match];
  4004. }).replace(/,/g, '،');
  4005. },
  4006. ordinal : '%dم',
  4007. week : {
  4008. dow : 6, // Saturday is the first day of the week.
  4009. doy : 12 // The week that contains Jan 1st is the first week of the year.
  4010. }
  4011. });
  4012. }));
  4013. // moment.js language configuration
  4014. // language : finnish (fi)
  4015. // author : Tarmo Aidantausta : https://github.com/bleadof
  4016. (function (factory) {
  4017. factory(moment);
  4018. }(function (moment) {
  4019. var numbersPast = 'nolla yksi kaksi kolme neljä viisi kuusi seitsemän kahdeksan yhdeksän'.split(' '),
  4020. numbersFuture = ['nolla', 'yhden', 'kahden', 'kolmen', 'neljän', 'viiden', 'kuuden',
  4021. numbersPast[7], numbersPast[8], numbersPast[9]];
  4022. function translate(number, withoutSuffix, key, isFuture) {
  4023. var result = "";
  4024. switch (key) {
  4025. case 's':
  4026. return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';
  4027. case 'm':
  4028. return isFuture ? 'minuutin' : 'minuutti';
  4029. case 'mm':
  4030. result = isFuture ? 'minuutin' : 'minuuttia';
  4031. break;
  4032. case 'h':
  4033. return isFuture ? 'tunnin' : 'tunti';
  4034. case 'hh':
  4035. result = isFuture ? 'tunnin' : 'tuntia';
  4036. break;
  4037. case 'd':
  4038. return isFuture ? 'päivän' : 'päivä';
  4039. case 'dd':
  4040. result = isFuture ? 'päivän' : 'päivää';
  4041. break;
  4042. case 'M':
  4043. return isFuture ? 'kuukauden' : 'kuukausi';
  4044. case 'MM':
  4045. result = isFuture ? 'kuukauden' : 'kuukautta';
  4046. break;
  4047. case 'y':
  4048. return isFuture ? 'vuoden' : 'vuosi';
  4049. case 'yy':
  4050. result = isFuture ? 'vuoden' : 'vuotta';
  4051. break;
  4052. }
  4053. result = verbalNumber(number, isFuture) + " " + result;
  4054. return result;
  4055. }
  4056. function verbalNumber(number, isFuture) {
  4057. return number < 10 ? (isFuture ? numbersFuture[number] : numbersPast[number]) : number;
  4058. }
  4059. return moment.lang('fi', {
  4060. months : "tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesäkuu_heinäkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu".split("_"),
  4061. monthsShort : "tammi_helmi_maalis_huhti_touko_kesä_heinä_elo_syys_loka_marras_joulu".split("_"),
  4062. weekdays : "sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai".split("_"),
  4063. weekdaysShort : "su_ma_ti_ke_to_pe_la".split("_"),
  4064. weekdaysMin : "su_ma_ti_ke_to_pe_la".split("_"),
  4065. longDateFormat : {
  4066. LT : "HH.mm",
  4067. L : "DD.MM.YYYY",
  4068. LL : "Do MMMM[ta] YYYY",
  4069. LLL : "Do MMMM[ta] YYYY, [klo] LT",
  4070. LLLL : "dddd, Do MMMM[ta] YYYY, [klo] LT",
  4071. l : "D.M.YYYY",
  4072. ll : "Do MMM YYYY",
  4073. lll : "Do MMM YYYY, [klo] LT",
  4074. llll : "ddd, Do MMM YYYY, [klo] LT"
  4075. },
  4076. calendar : {
  4077. sameDay : '[tänään] [klo] LT',
  4078. nextDay : '[huomenna] [klo] LT',
  4079. nextWeek : 'dddd [klo] LT',
  4080. lastDay : '[eilen] [klo] LT',
  4081. lastWeek : '[viime] dddd[na] [klo] LT',
  4082. sameElse : 'L'
  4083. },
  4084. relativeTime : {
  4085. future : "%s päästä",
  4086. past : "%s sitten",
  4087. s : translate,
  4088. m : translate,
  4089. mm : translate,
  4090. h : translate,
  4091. hh : translate,
  4092. d : translate,
  4093. dd : translate,
  4094. M : translate,
  4095. MM : translate,
  4096. y : translate,
  4097. yy : translate
  4098. },
  4099. ordinal : "%d.",
  4100. week : {
  4101. dow : 1, // Monday is the first day of the week.
  4102. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4103. }
  4104. });
  4105. }));
  4106. // moment.js language configuration
  4107. // language : faroese (fo)
  4108. // author : Ragnar Johannesen : https://github.com/ragnar123
  4109. (function (factory) {
  4110. factory(moment);
  4111. }(function (moment) {
  4112. return moment.lang('fo', {
  4113. months : "januar_februar_mars_apríl_mai_juni_juli_august_september_oktober_november_desember".split("_"),
  4114. monthsShort : "jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),
  4115. weekdays : "sunnudagur_mánadagur_týsdagur_mikudagur_hósdagur_fríggjadagur_leygardagur".split("_"),
  4116. weekdaysShort : "sun_mán_týs_mik_hós_frí_ley".split("_"),
  4117. weekdaysMin : "su_má_tý_mi_hó_fr_le".split("_"),
  4118. longDateFormat : {
  4119. LT : "HH:mm",
  4120. L : "DD/MM/YYYY",
  4121. LL : "D MMMM YYYY",
  4122. LLL : "D MMMM YYYY LT",
  4123. LLLL : "dddd D. MMMM, YYYY LT"
  4124. },
  4125. calendar : {
  4126. sameDay : '[Í dag kl.] LT',
  4127. nextDay : '[Í morgin kl.] LT',
  4128. nextWeek : 'dddd [kl.] LT',
  4129. lastDay : '[Í gjár kl.] LT',
  4130. lastWeek : '[síðstu] dddd [kl] LT',
  4131. sameElse : 'L'
  4132. },
  4133. relativeTime : {
  4134. future : "um %s",
  4135. past : "%s síðani",
  4136. s : "fá sekund",
  4137. m : "ein minutt",
  4138. mm : "%d minuttir",
  4139. h : "ein tími",
  4140. hh : "%d tímar",
  4141. d : "ein dagur",
  4142. dd : "%d dagar",
  4143. M : "ein mánaði",
  4144. MM : "%d mánaðir",
  4145. y : "eitt ár",
  4146. yy : "%d ár"
  4147. },
  4148. ordinal : '%d.',
  4149. week : {
  4150. dow : 1, // Monday is the first day of the week.
  4151. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4152. }
  4153. });
  4154. }));
  4155. // moment.js language configuration
  4156. // language : canadian french (fr-ca)
  4157. // author : Jonathan Abourbih : https://github.com/jonbca
  4158. (function (factory) {
  4159. factory(moment);
  4160. }(function (moment) {
  4161. return moment.lang('fr-ca', {
  4162. months : "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),
  4163. monthsShort : "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),
  4164. weekdays : "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),
  4165. weekdaysShort : "dim._lun._mar._mer._jeu._ven._sam.".split("_"),
  4166. weekdaysMin : "Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),
  4167. longDateFormat : {
  4168. LT : "HH:mm",
  4169. L : "YYYY-MM-DD",
  4170. LL : "D MMMM YYYY",
  4171. LLL : "D MMMM YYYY LT",
  4172. LLLL : "dddd D MMMM YYYY LT"
  4173. },
  4174. calendar : {
  4175. sameDay: "[Aujourd'hui à] LT",
  4176. nextDay: '[Demain à] LT',
  4177. nextWeek: 'dddd [à] LT',
  4178. lastDay: '[Hier à] LT',
  4179. lastWeek: 'dddd [dernier à] LT',
  4180. sameElse: 'L'
  4181. },
  4182. relativeTime : {
  4183. future : "dans %s",
  4184. past : "il y a %s",
  4185. s : "quelques secondes",
  4186. m : "une minute",
  4187. mm : "%d minutes",
  4188. h : "une heure",
  4189. hh : "%d heures",
  4190. d : "un jour",
  4191. dd : "%d jours",
  4192. M : "un mois",
  4193. MM : "%d mois",
  4194. y : "un an",
  4195. yy : "%d ans"
  4196. },
  4197. ordinal : function (number) {
  4198. return number + (number === 1 ? 'er' : '');
  4199. }
  4200. });
  4201. }));
  4202. // moment.js language configuration
  4203. // language : french (fr)
  4204. // author : John Fischer : https://github.com/jfroffice
  4205. (function (factory) {
  4206. factory(moment);
  4207. }(function (moment) {
  4208. return moment.lang('fr', {
  4209. months : "janvier_février_mars_avril_mai_juin_juillet_août_septembre_octobre_novembre_décembre".split("_"),
  4210. monthsShort : "janv._févr._mars_avr._mai_juin_juil._août_sept._oct._nov._déc.".split("_"),
  4211. weekdays : "dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi".split("_"),
  4212. weekdaysShort : "dim._lun._mar._mer._jeu._ven._sam.".split("_"),
  4213. weekdaysMin : "Di_Lu_Ma_Me_Je_Ve_Sa".split("_"),
  4214. longDateFormat : {
  4215. LT : "HH:mm",
  4216. L : "DD/MM/YYYY",
  4217. LL : "D MMMM YYYY",
  4218. LLL : "D MMMM YYYY LT",
  4219. LLLL : "dddd D MMMM YYYY LT"
  4220. },
  4221. calendar : {
  4222. sameDay: "[Aujourd'hui à] LT",
  4223. nextDay: '[Demain à] LT',
  4224. nextWeek: 'dddd [à] LT',
  4225. lastDay: '[Hier à] LT',
  4226. lastWeek: 'dddd [dernier à] LT',
  4227. sameElse: 'L'
  4228. },
  4229. relativeTime : {
  4230. future : "dans %s",
  4231. past : "il y a %s",
  4232. s : "quelques secondes",
  4233. m : "une minute",
  4234. mm : "%d minutes",
  4235. h : "une heure",
  4236. hh : "%d heures",
  4237. d : "un jour",
  4238. dd : "%d jours",
  4239. M : "un mois",
  4240. MM : "%d mois",
  4241. y : "un an",
  4242. yy : "%d ans"
  4243. },
  4244. ordinal : function (number) {
  4245. return number + (number === 1 ? 'er' : '');
  4246. },
  4247. week : {
  4248. dow : 1, // Monday is the first day of the week.
  4249. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4250. }
  4251. });
  4252. }));
  4253. // moment.js language configuration
  4254. // language : galician (gl)
  4255. // author : Juan G. Hurtado : https://github.com/juanghurtado
  4256. (function (factory) {
  4257. factory(moment);
  4258. }(function (moment) {
  4259. return moment.lang('gl', {
  4260. months : "Xaneiro_Febreiro_Marzo_Abril_Maio_Xuño_Xullo_Agosto_Setembro_Outubro_Novembro_Decembro".split("_"),
  4261. monthsShort : "Xan._Feb._Mar._Abr._Mai._Xuñ._Xul._Ago._Set._Out._Nov._Dec.".split("_"),
  4262. weekdays : "Domingo_Luns_Martes_Mércores_Xoves_Venres_Sábado".split("_"),
  4263. weekdaysShort : "Dom._Lun._Mar._Mér._Xov._Ven._Sáb.".split("_"),
  4264. weekdaysMin : "Do_Lu_Ma_Mé_Xo_Ve_Sá".split("_"),
  4265. longDateFormat : {
  4266. LT : "H:mm",
  4267. L : "DD/MM/YYYY",
  4268. LL : "D MMMM YYYY",
  4269. LLL : "D MMMM YYYY LT",
  4270. LLLL : "dddd D MMMM YYYY LT"
  4271. },
  4272. calendar : {
  4273. sameDay : function () {
  4274. return '[hoxe ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
  4275. },
  4276. nextDay : function () {
  4277. return '[mañá ' + ((this.hours() !== 1) ? 'ás' : 'á') + '] LT';
  4278. },
  4279. nextWeek : function () {
  4280. return 'dddd [' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
  4281. },
  4282. lastDay : function () {
  4283. return '[onte ' + ((this.hours() !== 1) ? 'á' : 'a') + '] LT';
  4284. },
  4285. lastWeek : function () {
  4286. return '[o] dddd [pasado ' + ((this.hours() !== 1) ? 'ás' : 'a') + '] LT';
  4287. },
  4288. sameElse : 'L'
  4289. },
  4290. relativeTime : {
  4291. future : function (str) {
  4292. if (str === "uns segundos") {
  4293. return "nuns segundos";
  4294. }
  4295. return "en " + str;
  4296. },
  4297. past : "hai %s",
  4298. s : "uns segundos",
  4299. m : "un minuto",
  4300. mm : "%d minutos",
  4301. h : "unha hora",
  4302. hh : "%d horas",
  4303. d : "un día",
  4304. dd : "%d días",
  4305. M : "un mes",
  4306. MM : "%d meses",
  4307. y : "un ano",
  4308. yy : "%d anos"
  4309. },
  4310. ordinal : '%dº',
  4311. week : {
  4312. dow : 1, // Monday is the first day of the week.
  4313. doy : 7 // The week that contains Jan 1st is the first week of the year.
  4314. }
  4315. });
  4316. }));
  4317. // moment.js language configuration
  4318. // language : Hebrew (he)
  4319. // author : Tomer Cohen : https://github.com/tomer
  4320. // author : Moshe Simantov : https://github.com/DevelopmentIL
  4321. // author : Tal Ater : https://github.com/TalAter
  4322. (function (factory) {
  4323. factory(moment);
  4324. }(function (moment) {
  4325. return moment.lang('he', {
  4326. months : "ינואר_פברואר_מרץ_אפריל_מאי_יוני_יולי_אוגוסט_ספטמבר_אוקטובר_נובמבר_דצמבר".split("_"),
  4327. monthsShort : "ינו׳_פבר׳_מרץ_אפר׳_מאי_יוני_יולי_אוג׳_ספט׳_אוק׳_נוב׳_דצמ׳".split("_"),
  4328. weekdays : "ראשון_שני_שלישי_רביעי_חמישי_שישי_שבת".split("_"),
  4329. weekdaysShort : "א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳".split("_"),
  4330. weekdaysMin : "א_ב_ג_ד_ה_ו_ש".split("_"),
  4331. longDateFormat : {
  4332. LT : "HH:mm",
  4333. L : "DD/MM/YYYY",
  4334. LL : "D [ב]MMMM YYYY",
  4335. LLL : "D [ב]MMMM YYYY LT",
  4336. LLLL : "dddd, D [ב]MMMM YYYY LT",
  4337. l : "D/M/YYYY",
  4338. ll : "D MMM YYYY",
  4339. lll : "D MMM YYYY LT",
  4340. llll : "ddd, D MMM YYYY LT"
  4341. },
  4342. calendar : {
  4343. sameDay : '[היום ב־]LT',
  4344. nextDay : '[מחר ב־]LT',
  4345. nextWeek : 'dddd [בשעה] LT',
  4346. lastDay : '[אתמול ב־]LT',
  4347. lastWeek : '[ביום] dddd [האחרון בשעה] LT',
  4348. sameElse : 'L'
  4349. },
  4350. relativeTime : {
  4351. future : "בעוד %s",
  4352. past : "לפני %s",
  4353. s : "מספר שניות",
  4354. m : "דקה",
  4355. mm : "%d דקות",
  4356. h : "שעה",
  4357. hh : function (number) {
  4358. if (number === 2) {
  4359. return "שעתיים";
  4360. }
  4361. return number + " שעות";
  4362. },
  4363. d : "יום",
  4364. dd : function (number) {
  4365. if (number === 2) {
  4366. return "יומיים";
  4367. }
  4368. return number + " ימים";
  4369. },
  4370. M : "חודש",
  4371. MM : function (number) {
  4372. if (number === 2) {
  4373. return "חודשיים";
  4374. }
  4375. return number + " חודשים";
  4376. },
  4377. y : "שנה",
  4378. yy : function (number) {
  4379. if (number === 2) {
  4380. return "שנתיים";
  4381. }
  4382. return number + " שנים";
  4383. }
  4384. }
  4385. });
  4386. }));
  4387. // moment.js language configuration
  4388. // language : hindi (hi)
  4389. // author : Mayank Singhal : https://github.com/mayanksinghal
  4390. (function (factory) {
  4391. factory(moment);
  4392. }(function (moment) {
  4393. var symbolMap = {
  4394. '1': '१',
  4395. '2': '२',
  4396. '3': '३',
  4397. '4': '४',
  4398. '5': '५',
  4399. '6': '६',
  4400. '7': '७',
  4401. '8': '८',
  4402. '9': '९',
  4403. '0': '०'
  4404. },
  4405. numberMap = {
  4406. '१': '1',
  4407. '२': '2',
  4408. '३': '3',
  4409. '४': '4',
  4410. '५': '5',
  4411. '६': '6',
  4412. '७': '7',
  4413. '८': '8',
  4414. '९': '9',
  4415. '०': '0'
  4416. };
  4417. return moment.lang('hi', {
  4418. months : 'जनवरी_फ़रवरी_मार्च_अप्रैल_मई_जून_जुलाई_अगस्त_सितम्बर_अक्टूबर_नवम्बर_दिसम्बर'.split("_"),
  4419. monthsShort : 'जन._फ़र._मार्च_अप्रै._मई_जून_जुल._अग._सित._अक्टू._नव._दिस.'.split("_"),
  4420. weekdays : 'रविवार_सोमवार_मंगलवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split("_"),
  4421. weekdaysShort : 'रवि_सोम_मंगल_बुध_गुरू_शुक्र_शनि'.split("_"),
  4422. weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split("_"),
  4423. longDateFormat : {
  4424. LT : "A h:mm बजे",
  4425. L : "DD/MM/YYYY",
  4426. LL : "D MMMM YYYY",
  4427. LLL : "D MMMM YYYY, LT",
  4428. LLLL : "dddd, D MMMM YYYY, LT"
  4429. },
  4430. calendar : {
  4431. sameDay : '[आज] LT',
  4432. nextDay : '[कल] LT',
  4433. nextWeek : 'dddd, LT',
  4434. lastDay : '[कल] LT',
  4435. lastWeek : '[पिछले] dddd, LT',
  4436. sameElse : 'L'
  4437. },
  4438. relativeTime : {
  4439. future : "%s में",
  4440. past : "%s पहले",
  4441. s : "कुछ ही क्षण",
  4442. m : "एक मिनट",
  4443. mm : "%d मिनट",
  4444. h : "एक घंटा",
  4445. hh : "%d घंटे",
  4446. d : "एक दिन",
  4447. dd : "%d दिन",
  4448. M : "एक महीने",
  4449. MM : "%d महीने",
  4450. y : "एक वर्ष",
  4451. yy : "%d वर्ष"
  4452. },
  4453. preparse: function (string) {
  4454. return string.replace(/[१२३४५६७८९०]/g, function (match) {
  4455. return numberMap[match];
  4456. });
  4457. },
  4458. postformat: function (string) {
  4459. return string.replace(/\d/g, function (match) {
  4460. return symbolMap[match];
  4461. });
  4462. },
  4463. // Hindi notation for meridiems are quite fuzzy in practice. While there exists
  4464. // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.
  4465. meridiem : function (hour, minute, isLower) {
  4466. if (hour < 4) {
  4467. return "रात";
  4468. } else if (hour < 10) {
  4469. return "सुबह";
  4470. } else if (hour < 17) {
  4471. return "दोपहर";
  4472. } else if (hour < 20) {
  4473. return "शाम";
  4474. } else {
  4475. return "रात";
  4476. }
  4477. },
  4478. week : {
  4479. dow : 0, // Sunday is the first day of the week.
  4480. doy : 6 // The week that contains Jan 1st is the first week of the year.
  4481. }
  4482. });
  4483. }));
  4484. // moment.js language configuration
  4485. // language : hrvatski (hr)
  4486. // author : Bojan Marković : https://github.com/bmarkovic
  4487. // based on (sl) translation by Robert Sedovšek
  4488. (function (factory) {
  4489. factory(moment);
  4490. }(function (moment) {
  4491. function translate(number, withoutSuffix, key) {
  4492. var result = number + " ";
  4493. switch (key) {
  4494. case 'm':
  4495. return withoutSuffix ? 'jedna minuta' : 'jedne minute';
  4496. case 'mm':
  4497. if (number === 1) {
  4498. result += 'minuta';
  4499. } else if (number === 2 || number === 3 || number === 4) {
  4500. result += 'minute';
  4501. } else {
  4502. result += 'minuta';
  4503. }
  4504. return result;
  4505. case 'h':
  4506. return withoutSuffix ? 'jedan sat' : 'jednog sata';
  4507. case 'hh':
  4508. if (number === 1) {
  4509. result += 'sat';
  4510. } else if (number === 2 || number === 3 || number === 4) {
  4511. result += 'sata';
  4512. } else {
  4513. result += 'sati';
  4514. }
  4515. return result;
  4516. case 'dd':
  4517. if (number === 1) {
  4518. result += 'dan';
  4519. } else {
  4520. result += 'dana';
  4521. }
  4522. return result;
  4523. case 'MM':
  4524. if (number === 1) {
  4525. result += 'mjesec';
  4526. } else if (number === 2 || number === 3 || number === 4) {
  4527. result += 'mjeseca';
  4528. } else {
  4529. result += 'mjeseci';
  4530. }
  4531. return result;
  4532. case 'yy':
  4533. if (number === 1) {
  4534. result += 'godina';
  4535. } else if (number === 2 || number === 3 || number === 4) {
  4536. result += 'godine';
  4537. } else {
  4538. result += 'godina';
  4539. }
  4540. return result;
  4541. }
  4542. }
  4543. return moment.lang('hr', {
  4544. months : "sječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac".split("_"),
  4545. monthsShort : "sje._vel._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.".split("_"),
  4546. weekdays : "nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota".split("_"),
  4547. weekdaysShort : "ned._pon._uto._sri._čet._pet._sub.".split("_"),
  4548. weekdaysMin : "ne_po_ut_sr_če_pe_su".split("_"),
  4549. longDateFormat : {
  4550. LT : "H:mm",
  4551. L : "DD. MM. YYYY",
  4552. LL : "D. MMMM YYYY",
  4553. LLL : "D. MMMM YYYY LT",
  4554. LLLL : "dddd, D. MMMM YYYY LT"
  4555. },
  4556. calendar : {
  4557. sameDay : '[danas u] LT',
  4558. nextDay : '[sutra u] LT',
  4559. nextWeek : function () {
  4560. switch (this.day()) {
  4561. case 0:
  4562. return '[u] [nedjelju] [u] LT';
  4563. case 3:
  4564. return '[u] [srijedu] [u] LT';
  4565. case 6:
  4566. return '[u] [subotu] [u] LT';
  4567. case 1:
  4568. case 2:
  4569. case 4:
  4570. case 5:
  4571. return '[u] dddd [u] LT';
  4572. }
  4573. },
  4574. lastDay : '[jučer u] LT',
  4575. lastWeek : function () {
  4576. switch (this.day()) {
  4577. case 0:
  4578. case 3:
  4579. return '[prošlu] dddd [u] LT';
  4580. case 6:
  4581. return '[prošle] [subote] [u] LT';
  4582. case 1:
  4583. case 2:
  4584. case 4:
  4585. case 5:
  4586. return '[prošli] dddd [u] LT';
  4587. }
  4588. },
  4589. sameElse : 'L'
  4590. },
  4591. relativeTime : {
  4592. future : "za %s",
  4593. past : "prije %s",
  4594. s : "par sekundi",
  4595. m : translate,
  4596. mm : translate,
  4597. h : translate,
  4598. hh : translate,
  4599. d : "dan",
  4600. dd : translate,
  4601. M : "mjesec",
  4602. MM : translate,
  4603. y : "godinu",
  4604. yy : translate
  4605. },
  4606. ordinal : '%d.',
  4607. week : {
  4608. dow : 1, // Monday is the first day of the week.
  4609. doy : 7 // The week that contains Jan 1st is the first week of the year.
  4610. }
  4611. });
  4612. }));
  4613. // moment.js language configuration
  4614. // language : hungarian (hu)
  4615. // author : Adam Brunner : https://github.com/adambrunner
  4616. (function (factory) {
  4617. factory(moment);
  4618. }(function (moment) {
  4619. var weekEndings = 'vasárnap hétfőn kedden szerdán csütörtökön pénteken szombaton'.split(' ');
  4620. function translate(number, withoutSuffix, key, isFuture) {
  4621. var num = number,
  4622. suffix;
  4623. switch (key) {
  4624. case 's':
  4625. return (isFuture || withoutSuffix) ? 'néhány másodperc' : 'néhány másodperce';
  4626. case 'm':
  4627. return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');
  4628. case 'mm':
  4629. return num + (isFuture || withoutSuffix ? ' perc' : ' perce');
  4630. case 'h':
  4631. return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órája');
  4632. case 'hh':
  4633. return num + (isFuture || withoutSuffix ? ' óra' : ' órája');
  4634. case 'd':
  4635. return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');
  4636. case 'dd':
  4637. return num + (isFuture || withoutSuffix ? ' nap' : ' napja');
  4638. case 'M':
  4639. return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
  4640. case 'MM':
  4641. return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');
  4642. case 'y':
  4643. return 'egy' + (isFuture || withoutSuffix ? ' év' : ' éve');
  4644. case 'yy':
  4645. return num + (isFuture || withoutSuffix ? ' év' : ' éve');
  4646. }
  4647. return '';
  4648. }
  4649. function week(isFuture) {
  4650. return (isFuture ? '' : '[múlt] ') + '[' + weekEndings[this.day()] + '] LT[-kor]';
  4651. }
  4652. return moment.lang('hu', {
  4653. months : "január_február_március_április_május_június_július_augusztus_szeptember_október_november_december".split("_"),
  4654. monthsShort : "jan_feb_márc_ápr_máj_jún_júl_aug_szept_okt_nov_dec".split("_"),
  4655. weekdays : "vasárnap_hétfő_kedd_szerda_csütörtök_péntek_szombat".split("_"),
  4656. weekdaysShort : "vas_hét_kedd_sze_csüt_pén_szo".split("_"),
  4657. weekdaysMin : "v_h_k_sze_cs_p_szo".split("_"),
  4658. longDateFormat : {
  4659. LT : "H:mm",
  4660. L : "YYYY.MM.DD.",
  4661. LL : "YYYY. MMMM D.",
  4662. LLL : "YYYY. MMMM D., LT",
  4663. LLLL : "YYYY. MMMM D., dddd LT"
  4664. },
  4665. meridiem : function (hours, minutes, isLower) {
  4666. if (hours < 12) {
  4667. return isLower === true ? 'de' : 'DE';
  4668. } else {
  4669. return isLower === true ? 'du' : 'DU';
  4670. }
  4671. },
  4672. calendar : {
  4673. sameDay : '[ma] LT[-kor]',
  4674. nextDay : '[holnap] LT[-kor]',
  4675. nextWeek : function () {
  4676. return week.call(this, true);
  4677. },
  4678. lastDay : '[tegnap] LT[-kor]',
  4679. lastWeek : function () {
  4680. return week.call(this, false);
  4681. },
  4682. sameElse : 'L'
  4683. },
  4684. relativeTime : {
  4685. future : "%s múlva",
  4686. past : "%s",
  4687. s : translate,
  4688. m : translate,
  4689. mm : translate,
  4690. h : translate,
  4691. hh : translate,
  4692. d : translate,
  4693. dd : translate,
  4694. M : translate,
  4695. MM : translate,
  4696. y : translate,
  4697. yy : translate
  4698. },
  4699. ordinal : '%d.',
  4700. week : {
  4701. dow : 1, // Monday is the first day of the week.
  4702. doy : 7 // The week that contains Jan 1st is the first week of the year.
  4703. }
  4704. });
  4705. }));
  4706. // moment.js language configuration
  4707. // language : Armenian (hy-am)
  4708. // author : Armendarabyan : https://github.com/armendarabyan
  4709. (function (factory) {
  4710. factory(moment);
  4711. }(function (moment) {
  4712. function monthsCaseReplace(m, format) {
  4713. var months = {
  4714. 'nominative': 'հունվար_փետրվար_մարտ_ապրիլ_մայիս_հունիս_հուլիս_օգոստոս_սեպտեմբեր_հոկտեմբեր_նոյեմբեր_դեկտեմբեր'.split('_'),
  4715. 'accusative': 'հունվարի_փետրվարի_մարտի_ապրիլի_մայիսի_հունիսի_հուլիսի_օգոստոսի_սեպտեմբերի_հոկտեմբերի_նոյեմբերի_դեկտեմբերի'.split('_')
  4716. },
  4717. nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
  4718. 'accusative' :
  4719. 'nominative';
  4720. return months[nounCase][m.month()];
  4721. }
  4722. function monthsShortCaseReplace(m, format) {
  4723. var monthsShort = 'հնվ_փտր_մրտ_ապր_մյս_հնս_հլս_օգս_սպտ_հկտ_նմբ_դկտ'.split('_');
  4724. return monthsShort[m.month()];
  4725. }
  4726. function weekdaysCaseReplace(m, format) {
  4727. var weekdays = 'կիրակի_երկուշաբթի_երեքշաբթի_չորեքշաբթի_հինգշաբթի_ուրբաթ_շաբաթ'.split('_');
  4728. return weekdays[m.day()];
  4729. }
  4730. return moment.lang('hy-am', {
  4731. months : monthsCaseReplace,
  4732. monthsShort : monthsShortCaseReplace,
  4733. weekdays : weekdaysCaseReplace,
  4734. weekdaysShort : "կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),
  4735. weekdaysMin : "կրկ_երկ_երք_չրք_հնգ_ուրբ_շբթ".split("_"),
  4736. longDateFormat : {
  4737. LT : "HH:mm",
  4738. L : "DD.MM.YYYY",
  4739. LL : "D MMMM YYYY թ.",
  4740. LLL : "D MMMM YYYY թ., LT",
  4741. LLLL : "dddd, D MMMM YYYY թ., LT"
  4742. },
  4743. calendar : {
  4744. sameDay: '[այսօր] LT',
  4745. nextDay: '[վաղը] LT',
  4746. lastDay: '[երեկ] LT',
  4747. nextWeek: function () {
  4748. return 'dddd [օրը ժամը] LT';
  4749. },
  4750. lastWeek: function () {
  4751. return '[անցած] dddd [օրը ժամը] LT';
  4752. },
  4753. sameElse: 'L'
  4754. },
  4755. relativeTime : {
  4756. future : "%s հետո",
  4757. past : "%s առաջ",
  4758. s : "մի քանի վայրկյան",
  4759. m : "րոպե",
  4760. mm : "%d րոպե",
  4761. h : "ժամ",
  4762. hh : "%d ժամ",
  4763. d : "օր",
  4764. dd : "%d օր",
  4765. M : "ամիս",
  4766. MM : "%d ամիս",
  4767. y : "տարի",
  4768. yy : "%d տարի"
  4769. },
  4770. meridiem : function (hour) {
  4771. if (hour < 4) {
  4772. return "գիշերվա";
  4773. } else if (hour < 12) {
  4774. return "առավոտվա";
  4775. } else if (hour < 17) {
  4776. return "ցերեկվա";
  4777. } else {
  4778. return "երեկոյան";
  4779. }
  4780. },
  4781. ordinal: function (number, period) {
  4782. switch (period) {
  4783. case 'DDD':
  4784. case 'w':
  4785. case 'W':
  4786. case 'DDDo':
  4787. if (number === 1) {
  4788. return number + '-ին';
  4789. }
  4790. return number + '-րդ';
  4791. default:
  4792. return number;
  4793. }
  4794. },
  4795. week : {
  4796. dow : 1, // Monday is the first day of the week.
  4797. doy : 7 // The week that contains Jan 1st is the first week of the year.
  4798. }
  4799. });
  4800. }));
  4801. // moment.js language configuration
  4802. // language : Bahasa Indonesia (id)
  4803. // author : Mohammad Satrio Utomo : https://github.com/tyok
  4804. // reference: http://id.wikisource.org/wiki/Pedoman_Umum_Ejaan_Bahasa_Indonesia_yang_Disempurnakan
  4805. (function (factory) {
  4806. factory(moment);
  4807. }(function (moment) {
  4808. return moment.lang('id', {
  4809. months : "Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember".split("_"),
  4810. monthsShort : "Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nov_Des".split("_"),
  4811. weekdays : "Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu".split("_"),
  4812. weekdaysShort : "Min_Sen_Sel_Rab_Kam_Jum_Sab".split("_"),
  4813. weekdaysMin : "Mg_Sn_Sl_Rb_Km_Jm_Sb".split("_"),
  4814. longDateFormat : {
  4815. LT : "HH.mm",
  4816. L : "DD/MM/YYYY",
  4817. LL : "D MMMM YYYY",
  4818. LLL : "D MMMM YYYY [pukul] LT",
  4819. LLLL : "dddd, D MMMM YYYY [pukul] LT"
  4820. },
  4821. meridiem : function (hours, minutes, isLower) {
  4822. if (hours < 11) {
  4823. return 'pagi';
  4824. } else if (hours < 15) {
  4825. return 'siang';
  4826. } else if (hours < 19) {
  4827. return 'sore';
  4828. } else {
  4829. return 'malam';
  4830. }
  4831. },
  4832. calendar : {
  4833. sameDay : '[Hari ini pukul] LT',
  4834. nextDay : '[Besok pukul] LT',
  4835. nextWeek : 'dddd [pukul] LT',
  4836. lastDay : '[Kemarin pukul] LT',
  4837. lastWeek : 'dddd [lalu pukul] LT',
  4838. sameElse : 'L'
  4839. },
  4840. relativeTime : {
  4841. future : "dalam %s",
  4842. past : "%s yang lalu",
  4843. s : "beberapa detik",
  4844. m : "semenit",
  4845. mm : "%d menit",
  4846. h : "sejam",
  4847. hh : "%d jam",
  4848. d : "sehari",
  4849. dd : "%d hari",
  4850. M : "sebulan",
  4851. MM : "%d bulan",
  4852. y : "setahun",
  4853. yy : "%d tahun"
  4854. },
  4855. week : {
  4856. dow : 1, // Monday is the first day of the week.
  4857. doy : 7 // The week that contains Jan 1st is the first week of the year.
  4858. }
  4859. });
  4860. }));
  4861. // moment.js language configuration
  4862. // language : icelandic (is)
  4863. // author : Hinrik Örn Sigurðsson : https://github.com/hinrik
  4864. (function (factory) {
  4865. factory(moment);
  4866. }(function (moment) {
  4867. function plural(n) {
  4868. if (n % 100 === 11) {
  4869. return true;
  4870. } else if (n % 10 === 1) {
  4871. return false;
  4872. }
  4873. return true;
  4874. }
  4875. function translate(number, withoutSuffix, key, isFuture) {
  4876. var result = number + " ";
  4877. switch (key) {
  4878. case 's':
  4879. return withoutSuffix || isFuture ? 'nokkrar sekúndur' : 'nokkrum sekúndum';
  4880. case 'm':
  4881. return withoutSuffix ? 'mínúta' : 'mínútu';
  4882. case 'mm':
  4883. if (plural(number)) {
  4884. return result + (withoutSuffix || isFuture ? 'mínútur' : 'mínútum');
  4885. } else if (withoutSuffix) {
  4886. return result + 'mínúta';
  4887. }
  4888. return result + 'mínútu';
  4889. case 'hh':
  4890. if (plural(number)) {
  4891. return result + (withoutSuffix || isFuture ? 'klukkustundir' : 'klukkustundum');
  4892. }
  4893. return result + 'klukkustund';
  4894. case 'd':
  4895. if (withoutSuffix) {
  4896. return 'dagur';
  4897. }
  4898. return isFuture ? 'dag' : 'degi';
  4899. case 'dd':
  4900. if (plural(number)) {
  4901. if (withoutSuffix) {
  4902. return result + 'dagar';
  4903. }
  4904. return result + (isFuture ? 'daga' : 'dögum');
  4905. } else if (withoutSuffix) {
  4906. return result + 'dagur';
  4907. }
  4908. return result + (isFuture ? 'dag' : 'degi');
  4909. case 'M':
  4910. if (withoutSuffix) {
  4911. return 'mánuður';
  4912. }
  4913. return isFuture ? 'mánuð' : 'mánuði';
  4914. case 'MM':
  4915. if (plural(number)) {
  4916. if (withoutSuffix) {
  4917. return result + 'mánuðir';
  4918. }
  4919. return result + (isFuture ? 'mánuði' : 'mánuðum');
  4920. } else if (withoutSuffix) {
  4921. return result + 'mánuður';
  4922. }
  4923. return result + (isFuture ? 'mánuð' : 'mánuði');
  4924. case 'y':
  4925. return withoutSuffix || isFuture ? 'ár' : 'ári';
  4926. case 'yy':
  4927. if (plural(number)) {
  4928. return result + (withoutSuffix || isFuture ? 'ár' : 'árum');
  4929. }
  4930. return result + (withoutSuffix || isFuture ? 'ár' : 'ári');
  4931. }
  4932. }
  4933. return moment.lang('is', {
  4934. months : "janúar_febrúar_mars_apríl_maí_júní_júlí_ágúst_september_október_nóvember_desember".split("_"),
  4935. monthsShort : "jan_feb_mar_apr_maí_jún_júl_ágú_sep_okt_nóv_des".split("_"),
  4936. weekdays : "sunnudagur_mánudagur_þriðjudagur_miðvikudagur_fimmtudagur_föstudagur_laugardagur".split("_"),
  4937. weekdaysShort : "sun_mán_þri_mið_fim_fös_lau".split("_"),
  4938. weekdaysMin : "Su_Má_Þr_Mi_Fi_Fö_La".split("_"),
  4939. longDateFormat : {
  4940. LT : "H:mm",
  4941. L : "DD/MM/YYYY",
  4942. LL : "D. MMMM YYYY",
  4943. LLL : "D. MMMM YYYY [kl.] LT",
  4944. LLLL : "dddd, D. MMMM YYYY [kl.] LT"
  4945. },
  4946. calendar : {
  4947. sameDay : '[í dag kl.] LT',
  4948. nextDay : '[á morgun kl.] LT',
  4949. nextWeek : 'dddd [kl.] LT',
  4950. lastDay : '[í gær kl.] LT',
  4951. lastWeek : '[síðasta] dddd [kl.] LT',
  4952. sameElse : 'L'
  4953. },
  4954. relativeTime : {
  4955. future : "eftir %s",
  4956. past : "fyrir %s síðan",
  4957. s : translate,
  4958. m : translate,
  4959. mm : translate,
  4960. h : "klukkustund",
  4961. hh : translate,
  4962. d : translate,
  4963. dd : translate,
  4964. M : translate,
  4965. MM : translate,
  4966. y : translate,
  4967. yy : translate
  4968. },
  4969. ordinal : '%d.',
  4970. week : {
  4971. dow : 1, // Monday is the first day of the week.
  4972. doy : 4 // The week that contains Jan 4th is the first week of the year.
  4973. }
  4974. });
  4975. }));
  4976. // moment.js language configuration
  4977. // language : italian (it)
  4978. // author : Lorenzo : https://github.com/aliem
  4979. // author: Mattia Larentis: https://github.com/nostalgiaz
  4980. (function (factory) {
  4981. factory(moment);
  4982. }(function (moment) {
  4983. return moment.lang('it', {
  4984. months : "gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre".split("_"),
  4985. monthsShort : "gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic".split("_"),
  4986. weekdays : "Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato".split("_"),
  4987. weekdaysShort : "Dom_Lun_Mar_Mer_Gio_Ven_Sab".split("_"),
  4988. weekdaysMin : "D_L_Ma_Me_G_V_S".split("_"),
  4989. longDateFormat : {
  4990. LT : "HH:mm",
  4991. L : "DD/MM/YYYY",
  4992. LL : "D MMMM YYYY",
  4993. LLL : "D MMMM YYYY LT",
  4994. LLLL : "dddd, D MMMM YYYY LT"
  4995. },
  4996. calendar : {
  4997. sameDay: '[Oggi alle] LT',
  4998. nextDay: '[Domani alle] LT',
  4999. nextWeek: 'dddd [alle] LT',
  5000. lastDay: '[Ieri alle] LT',
  5001. lastWeek: '[lo scorso] dddd [alle] LT',
  5002. sameElse: 'L'
  5003. },
  5004. relativeTime : {
  5005. future : function (s) {
  5006. return ((/^[0-9].+$/).test(s) ? "tra" : "in") + " " + s;
  5007. },
  5008. past : "%s fa",
  5009. s : "alcuni secondi",
  5010. m : "un minuto",
  5011. mm : "%d minuti",
  5012. h : "un'ora",
  5013. hh : "%d ore",
  5014. d : "un giorno",
  5015. dd : "%d giorni",
  5016. M : "un mese",
  5017. MM : "%d mesi",
  5018. y : "un anno",
  5019. yy : "%d anni"
  5020. },
  5021. ordinal: '%dº',
  5022. week : {
  5023. dow : 1, // Monday is the first day of the week.
  5024. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5025. }
  5026. });
  5027. }));
  5028. // moment.js language configuration
  5029. // language : japanese (ja)
  5030. // author : LI Long : https://github.com/baryon
  5031. (function (factory) {
  5032. factory(moment);
  5033. }(function (moment) {
  5034. return moment.lang('ja', {
  5035. months : "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
  5036. monthsShort : "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
  5037. weekdays : "日曜日_月曜日_火曜日_水曜日_木曜日_金曜日_土曜日".split("_"),
  5038. weekdaysShort : "日_月_火_水_木_金_土".split("_"),
  5039. weekdaysMin : "日_月_火_水_木_金_土".split("_"),
  5040. longDateFormat : {
  5041. LT : "Ah時m分",
  5042. L : "YYYY/MM/DD",
  5043. LL : "YYYY年M月D日",
  5044. LLL : "YYYY年M月D日LT",
  5045. LLLL : "YYYY年M月D日LT dddd"
  5046. },
  5047. meridiem : function (hour, minute, isLower) {
  5048. if (hour < 12) {
  5049. return "午前";
  5050. } else {
  5051. return "午後";
  5052. }
  5053. },
  5054. calendar : {
  5055. sameDay : '[今日] LT',
  5056. nextDay : '[明日] LT',
  5057. nextWeek : '[来週]dddd LT',
  5058. lastDay : '[昨日] LT',
  5059. lastWeek : '[前週]dddd LT',
  5060. sameElse : 'L'
  5061. },
  5062. relativeTime : {
  5063. future : "%s後",
  5064. past : "%s前",
  5065. s : "数秒",
  5066. m : "1分",
  5067. mm : "%d分",
  5068. h : "1時間",
  5069. hh : "%d時間",
  5070. d : "1日",
  5071. dd : "%d日",
  5072. M : "1ヶ月",
  5073. MM : "%dヶ月",
  5074. y : "1年",
  5075. yy : "%d年"
  5076. }
  5077. });
  5078. }));
  5079. // moment.js language configuration
  5080. // language : Georgian (ka)
  5081. // author : Irakli Janiashvili : https://github.com/irakli-janiashvili
  5082. (function (factory) {
  5083. factory(moment);
  5084. }(function (moment) {
  5085. function monthsCaseReplace(m, format) {
  5086. var months = {
  5087. 'nominative': 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),
  5088. 'accusative': 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')
  5089. },
  5090. nounCase = (/D[oD] *MMMM?/).test(format) ?
  5091. 'accusative' :
  5092. 'nominative';
  5093. return months[nounCase][m.month()];
  5094. }
  5095. function weekdaysCaseReplace(m, format) {
  5096. var weekdays = {
  5097. 'nominative': 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),
  5098. 'accusative': 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_')
  5099. },
  5100. nounCase = (/(წინა|შემდეგ)/).test(format) ?
  5101. 'accusative' :
  5102. 'nominative';
  5103. return weekdays[nounCase][m.day()];
  5104. }
  5105. return moment.lang('ka', {
  5106. months : monthsCaseReplace,
  5107. monthsShort : "იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ".split("_"),
  5108. weekdays : weekdaysCaseReplace,
  5109. weekdaysShort : "კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ".split("_"),
  5110. weekdaysMin : "კვ_ორ_სა_ოთ_ხუ_პა_შა".split("_"),
  5111. longDateFormat : {
  5112. LT : "h:mm A",
  5113. L : "DD/MM/YYYY",
  5114. LL : "D MMMM YYYY",
  5115. LLL : "D MMMM YYYY LT",
  5116. LLLL : "dddd, D MMMM YYYY LT"
  5117. },
  5118. calendar : {
  5119. sameDay : '[დღეს] LT[-ზე]',
  5120. nextDay : '[ხვალ] LT[-ზე]',
  5121. lastDay : '[გუშინ] LT[-ზე]',
  5122. nextWeek : '[შემდეგ] dddd LT[-ზე]',
  5123. lastWeek : '[წინა] dddd LT-ზე',
  5124. sameElse : 'L'
  5125. },
  5126. relativeTime : {
  5127. future : function (s) {
  5128. return (/(წამი|წუთი|საათი|წელი)/).test(s) ?
  5129. s.replace(/ი$/, "ში") :
  5130. s + "ში";
  5131. },
  5132. past : function (s) {
  5133. if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {
  5134. return s.replace(/(ი|ე)$/, "ის წინ");
  5135. }
  5136. if ((/წელი/).test(s)) {
  5137. return s.replace(/წელი$/, "წლის წინ");
  5138. }
  5139. },
  5140. s : "რამდენიმე წამი",
  5141. m : "წუთი",
  5142. mm : "%d წუთი",
  5143. h : "საათი",
  5144. hh : "%d საათი",
  5145. d : "დღე",
  5146. dd : "%d დღე",
  5147. M : "თვე",
  5148. MM : "%d თვე",
  5149. y : "წელი",
  5150. yy : "%d წელი"
  5151. },
  5152. ordinal : function (number) {
  5153. if (number === 0) {
  5154. return number;
  5155. }
  5156. if (number === 1) {
  5157. return number + "-ლი";
  5158. }
  5159. if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {
  5160. return "მე-" + number;
  5161. }
  5162. return number + "-ე";
  5163. },
  5164. week : {
  5165. dow : 1,
  5166. doy : 7
  5167. }
  5168. });
  5169. }));
  5170. // moment.js language configuration
  5171. // language : khmer (km)
  5172. // author : Kruy Vanna : https://github.com/kruyvanna
  5173. (function (factory) {
  5174. factory(moment);
  5175. }(function (moment) {
  5176. return moment.lang('km', {
  5177. months: "មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),
  5178. monthsShort: "មករា_កុម្ភៈ_មិនា_មេសា_ឧសភា_មិថុនា_កក្កដា_សីហា_កញ្ញា_តុលា_វិច្ឆិកា_ធ្នូ".split("_"),
  5179. weekdays: "អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),
  5180. weekdaysShort: "អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),
  5181. weekdaysMin: "អាទិត្យ_ច័ន្ទ_អង្គារ_ពុធ_ព្រហស្បតិ៍_សុក្រ_សៅរ៍".split("_"),
  5182. longDateFormat: {
  5183. LT: "HH:mm",
  5184. L: "DD/MM/YYYY",
  5185. LL: "D MMMM YYYY",
  5186. LLL: "D MMMM YYYY LT",
  5187. LLLL: "dddd, D MMMM YYYY LT"
  5188. },
  5189. calendar: {
  5190. sameDay: '[ថ្ងៃនៈ ម៉ោង] LT',
  5191. nextDay: '[ស្អែក ម៉ោង] LT',
  5192. nextWeek: 'dddd [ម៉ោង] LT',
  5193. lastDay: '[ម្សិលមិញ ម៉ោង] LT',
  5194. lastWeek: 'dddd [សប្តាហ៍មុន] [ម៉ោង] LT',
  5195. sameElse: 'L'
  5196. },
  5197. relativeTime: {
  5198. future: "%sទៀត",
  5199. past: "%sមុន",
  5200. s: "ប៉ុន្មានវិនាទី",
  5201. m: "មួយនាទី",
  5202. mm: "%d នាទី",
  5203. h: "មួយម៉ោង",
  5204. hh: "%d ម៉ោង",
  5205. d: "មួយថ្ងៃ",
  5206. dd: "%d ថ្ងៃ",
  5207. M: "មួយខែ",
  5208. MM: "%d ខែ",
  5209. y: "មួយឆ្នាំ",
  5210. yy: "%d ឆ្នាំ"
  5211. },
  5212. week: {
  5213. dow: 1, // Monday is the first day of the week.
  5214. doy: 4 // The week that contains Jan 4th is the first week of the year.
  5215. }
  5216. });
  5217. }));
  5218. // moment.js language configuration
  5219. // language : korean (ko)
  5220. //
  5221. // authors
  5222. //
  5223. // - Kyungwook, Park : https://github.com/kyungw00k
  5224. // - Jeeeyul Lee <jeeeyul@gmail.com>
  5225. (function (factory) {
  5226. factory(moment);
  5227. }(function (moment) {
  5228. return moment.lang('ko', {
  5229. months : "1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),
  5230. monthsShort : "1월_2월_3월_4월_5월_6월_7월_8월_9월_10월_11월_12월".split("_"),
  5231. weekdays : "일요일_월요일_화요일_수요일_목요일_금요일_토요일".split("_"),
  5232. weekdaysShort : "일_월_화_수_목_금_토".split("_"),
  5233. weekdaysMin : "일_월_화_수_목_금_토".split("_"),
  5234. longDateFormat : {
  5235. LT : "A h시 mm분",
  5236. L : "YYYY.MM.DD",
  5237. LL : "YYYY년 MMMM D일",
  5238. LLL : "YYYY년 MMMM D일 LT",
  5239. LLLL : "YYYY년 MMMM D일 dddd LT"
  5240. },
  5241. meridiem : function (hour, minute, isUpper) {
  5242. return hour < 12 ? '오전' : '오후';
  5243. },
  5244. calendar : {
  5245. sameDay : '오늘 LT',
  5246. nextDay : '내일 LT',
  5247. nextWeek : 'dddd LT',
  5248. lastDay : '어제 LT',
  5249. lastWeek : '지난주 dddd LT',
  5250. sameElse : 'L'
  5251. },
  5252. relativeTime : {
  5253. future : "%s 후",
  5254. past : "%s 전",
  5255. s : "몇초",
  5256. ss : "%d초",
  5257. m : "일분",
  5258. mm : "%d분",
  5259. h : "한시간",
  5260. hh : "%d시간",
  5261. d : "하루",
  5262. dd : "%d일",
  5263. M : "한달",
  5264. MM : "%d달",
  5265. y : "일년",
  5266. yy : "%d년"
  5267. },
  5268. ordinal : '%d일',
  5269. meridiemParse : /(오전|오후)/,
  5270. isPM : function (token) {
  5271. return token === "오후";
  5272. }
  5273. });
  5274. }));
  5275. // moment.js language configuration
  5276. // language : Luxembourgish (lb)
  5277. // author : mweimerskirch : https://github.com/mweimerskirch
  5278. // Note: Luxembourgish has a very particular phonological rule ("Eifeler Regel") that causes the
  5279. // deletion of the final "n" in certain contexts. That's what the "eifelerRegelAppliesToWeekday"
  5280. // and "eifelerRegelAppliesToNumber" methods are meant for
  5281. (function (factory) {
  5282. factory(moment);
  5283. }(function (moment) {
  5284. function processRelativeTime(number, withoutSuffix, key, isFuture) {
  5285. var format = {
  5286. 'm': ['eng Minutt', 'enger Minutt'],
  5287. 'h': ['eng Stonn', 'enger Stonn'],
  5288. 'd': ['een Dag', 'engem Dag'],
  5289. 'dd': [number + ' Deeg', number + ' Deeg'],
  5290. 'M': ['ee Mount', 'engem Mount'],
  5291. 'MM': [number + ' Méint', number + ' Méint'],
  5292. 'y': ['ee Joer', 'engem Joer'],
  5293. 'yy': [number + ' Joer', number + ' Joer']
  5294. };
  5295. return withoutSuffix ? format[key][0] : format[key][1];
  5296. }
  5297. function processFutureTime(string) {
  5298. var number = string.substr(0, string.indexOf(' '));
  5299. if (eifelerRegelAppliesToNumber(number)) {
  5300. return "a " + string;
  5301. }
  5302. return "an " + string;
  5303. }
  5304. function processPastTime(string) {
  5305. var number = string.substr(0, string.indexOf(' '));
  5306. if (eifelerRegelAppliesToNumber(number)) {
  5307. return "viru " + string;
  5308. }
  5309. return "virun " + string;
  5310. }
  5311. function processLastWeek(string1) {
  5312. var weekday = this.format('d');
  5313. if (eifelerRegelAppliesToWeekday(weekday)) {
  5314. return '[Leschte] dddd [um] LT';
  5315. }
  5316. return '[Leschten] dddd [um] LT';
  5317. }
  5318. /**
  5319. * Returns true if the word before the given week day loses the "-n" ending.
  5320. * e.g. "Leschten Dënschdeg" but "Leschte Méindeg"
  5321. *
  5322. * @param weekday {integer}
  5323. * @returns {boolean}
  5324. */
  5325. function eifelerRegelAppliesToWeekday(weekday) {
  5326. weekday = parseInt(weekday, 10);
  5327. switch (weekday) {
  5328. case 0: // Sonndeg
  5329. case 1: // Méindeg
  5330. case 3: // Mëttwoch
  5331. case 5: // Freideg
  5332. case 6: // Samschdeg
  5333. return true;
  5334. default: // 2 Dënschdeg, 4 Donneschdeg
  5335. return false;
  5336. }
  5337. }
  5338. /**
  5339. * Returns true if the word before the given number loses the "-n" ending.
  5340. * e.g. "an 10 Deeg" but "a 5 Deeg"
  5341. *
  5342. * @param number {integer}
  5343. * @returns {boolean}
  5344. */
  5345. function eifelerRegelAppliesToNumber(number) {
  5346. number = parseInt(number, 10);
  5347. if (isNaN(number)) {
  5348. return false;
  5349. }
  5350. if (number < 0) {
  5351. // Negative Number --> always true
  5352. return true;
  5353. } else if (number < 10) {
  5354. // Only 1 digit
  5355. if (4 <= number && number <= 7) {
  5356. return true;
  5357. }
  5358. return false;
  5359. } else if (number < 100) {
  5360. // 2 digits
  5361. var lastDigit = number % 10, firstDigit = number / 10;
  5362. if (lastDigit === 0) {
  5363. return eifelerRegelAppliesToNumber(firstDigit);
  5364. }
  5365. return eifelerRegelAppliesToNumber(lastDigit);
  5366. } else if (number < 10000) {
  5367. // 3 or 4 digits --> recursively check first digit
  5368. while (number >= 10) {
  5369. number = number / 10;
  5370. }
  5371. return eifelerRegelAppliesToNumber(number);
  5372. } else {
  5373. // Anything larger than 4 digits: recursively check first n-3 digits
  5374. number = number / 1000;
  5375. return eifelerRegelAppliesToNumber(number);
  5376. }
  5377. }
  5378. return moment.lang('lb', {
  5379. months: "Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember".split("_"),
  5380. monthsShort: "Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.".split("_"),
  5381. weekdays: "Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg".split("_"),
  5382. weekdaysShort: "So._Mé._Dë._Më._Do._Fr._Sa.".split("_"),
  5383. weekdaysMin: "So_Mé_Dë_Më_Do_Fr_Sa".split("_"),
  5384. longDateFormat: {
  5385. LT: "H:mm [Auer]",
  5386. L: "DD.MM.YYYY",
  5387. LL: "D. MMMM YYYY",
  5388. LLL: "D. MMMM YYYY LT",
  5389. LLLL: "dddd, D. MMMM YYYY LT"
  5390. },
  5391. calendar: {
  5392. sameDay: "[Haut um] LT",
  5393. sameElse: "L",
  5394. nextDay: '[Muer um] LT',
  5395. nextWeek: 'dddd [um] LT',
  5396. lastDay: '[Gëschter um] LT',
  5397. lastWeek: processLastWeek
  5398. },
  5399. relativeTime: {
  5400. future: processFutureTime,
  5401. past: processPastTime,
  5402. s: "e puer Sekonnen",
  5403. m: processRelativeTime,
  5404. mm: "%d Minutten",
  5405. h: processRelativeTime,
  5406. hh: "%d Stonnen",
  5407. d: processRelativeTime,
  5408. dd: processRelativeTime,
  5409. M: processRelativeTime,
  5410. MM: processRelativeTime,
  5411. y: processRelativeTime,
  5412. yy: processRelativeTime
  5413. },
  5414. ordinal: '%d.',
  5415. week: {
  5416. dow: 1, // Monday is the first day of the week.
  5417. doy: 4 // The week that contains Jan 4th is the first week of the year.
  5418. }
  5419. });
  5420. }));
  5421. // moment.js language configuration
  5422. // language : Lithuanian (lt)
  5423. // author : Mindaugas Mozūras : https://github.com/mmozuras
  5424. (function (factory) {
  5425. factory(moment);
  5426. }(function (moment) {
  5427. var units = {
  5428. "m" : "minutė_minutės_minutę",
  5429. "mm": "minutės_minučių_minutes",
  5430. "h" : "valanda_valandos_valandą",
  5431. "hh": "valandos_valandų_valandas",
  5432. "d" : "diena_dienos_dieną",
  5433. "dd": "dienos_dienų_dienas",
  5434. "M" : "mėnuo_mėnesio_mėnesį",
  5435. "MM": "mėnesiai_mėnesių_mėnesius",
  5436. "y" : "metai_metų_metus",
  5437. "yy": "metai_metų_metus"
  5438. },
  5439. weekDays = "sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_šeštadienis".split("_");
  5440. function translateSeconds(number, withoutSuffix, key, isFuture) {
  5441. if (withoutSuffix) {
  5442. return "kelios sekundės";
  5443. } else {
  5444. return isFuture ? "kelių sekundžių" : "kelias sekundes";
  5445. }
  5446. }
  5447. function translateSingular(number, withoutSuffix, key, isFuture) {
  5448. return withoutSuffix ? forms(key)[0] : (isFuture ? forms(key)[1] : forms(key)[2]);
  5449. }
  5450. function special(number) {
  5451. return number % 10 === 0 || (number > 10 && number < 20);
  5452. }
  5453. function forms(key) {
  5454. return units[key].split("_");
  5455. }
  5456. function translate(number, withoutSuffix, key, isFuture) {
  5457. var result = number + " ";
  5458. if (number === 1) {
  5459. return result + translateSingular(number, withoutSuffix, key[0], isFuture);
  5460. } else if (withoutSuffix) {
  5461. return result + (special(number) ? forms(key)[1] : forms(key)[0]);
  5462. } else {
  5463. if (isFuture) {
  5464. return result + forms(key)[1];
  5465. } else {
  5466. return result + (special(number) ? forms(key)[1] : forms(key)[2]);
  5467. }
  5468. }
  5469. }
  5470. function relativeWeekDay(moment, format) {
  5471. var nominative = format.indexOf('dddd HH:mm') === -1,
  5472. weekDay = weekDays[moment.day()];
  5473. return nominative ? weekDay : weekDay.substring(0, weekDay.length - 2) + "į";
  5474. }
  5475. return moment.lang("lt", {
  5476. months : "sausio_vasario_kovo_balandžio_gegužės_biržėlio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio".split("_"),
  5477. monthsShort : "sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd".split("_"),
  5478. weekdays : relativeWeekDay,
  5479. weekdaysShort : "Sek_Pir_Ant_Tre_Ket_Pen_Šeš".split("_"),
  5480. weekdaysMin : "S_P_A_T_K_Pn_Š".split("_"),
  5481. longDateFormat : {
  5482. LT : "HH:mm",
  5483. L : "YYYY-MM-DD",
  5484. LL : "YYYY [m.] MMMM D [d.]",
  5485. LLL : "YYYY [m.] MMMM D [d.], LT [val.]",
  5486. LLLL : "YYYY [m.] MMMM D [d.], dddd, LT [val.]",
  5487. l : "YYYY-MM-DD",
  5488. ll : "YYYY [m.] MMMM D [d.]",
  5489. lll : "YYYY [m.] MMMM D [d.], LT [val.]",
  5490. llll : "YYYY [m.] MMMM D [d.], ddd, LT [val.]"
  5491. },
  5492. calendar : {
  5493. sameDay : "[Šiandien] LT",
  5494. nextDay : "[Rytoj] LT",
  5495. nextWeek : "dddd LT",
  5496. lastDay : "[Vakar] LT",
  5497. lastWeek : "[Praėjusį] dddd LT",
  5498. sameElse : "L"
  5499. },
  5500. relativeTime : {
  5501. future : "po %s",
  5502. past : "prieš %s",
  5503. s : translateSeconds,
  5504. m : translateSingular,
  5505. mm : translate,
  5506. h : translateSingular,
  5507. hh : translate,
  5508. d : translateSingular,
  5509. dd : translate,
  5510. M : translateSingular,
  5511. MM : translate,
  5512. y : translateSingular,
  5513. yy : translate
  5514. },
  5515. ordinal : function (number) {
  5516. return number + '-oji';
  5517. },
  5518. week : {
  5519. dow : 1, // Monday is the first day of the week.
  5520. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5521. }
  5522. });
  5523. }));
  5524. // moment.js language configuration
  5525. // language : latvian (lv)
  5526. // author : Kristaps Karlsons : https://github.com/skakri
  5527. (function (factory) {
  5528. factory(moment);
  5529. }(function (moment) {
  5530. var units = {
  5531. 'mm': 'minūti_minūtes_minūte_minūtes',
  5532. 'hh': 'stundu_stundas_stunda_stundas',
  5533. 'dd': 'dienu_dienas_diena_dienas',
  5534. 'MM': 'mēnesi_mēnešus_mēnesis_mēneši',
  5535. 'yy': 'gadu_gadus_gads_gadi'
  5536. };
  5537. function format(word, number, withoutSuffix) {
  5538. var forms = word.split('_');
  5539. if (withoutSuffix) {
  5540. return number % 10 === 1 && number !== 11 ? forms[2] : forms[3];
  5541. } else {
  5542. return number % 10 === 1 && number !== 11 ? forms[0] : forms[1];
  5543. }
  5544. }
  5545. function relativeTimeWithPlural(number, withoutSuffix, key) {
  5546. return number + ' ' + format(units[key], number, withoutSuffix);
  5547. }
  5548. return moment.lang('lv', {
  5549. months : "janvāris_februāris_marts_aprīlis_maijs_jūnijs_jūlijs_augusts_septembris_oktobris_novembris_decembris".split("_"),
  5550. monthsShort : "jan_feb_mar_apr_mai_jūn_jūl_aug_sep_okt_nov_dec".split("_"),
  5551. weekdays : "svētdiena_pirmdiena_otrdiena_trešdiena_ceturtdiena_piektdiena_sestdiena".split("_"),
  5552. weekdaysShort : "Sv_P_O_T_C_Pk_S".split("_"),
  5553. weekdaysMin : "Sv_P_O_T_C_Pk_S".split("_"),
  5554. longDateFormat : {
  5555. LT : "HH:mm",
  5556. L : "DD.MM.YYYY",
  5557. LL : "YYYY. [gada] D. MMMM",
  5558. LLL : "YYYY. [gada] D. MMMM, LT",
  5559. LLLL : "YYYY. [gada] D. MMMM, dddd, LT"
  5560. },
  5561. calendar : {
  5562. sameDay : '[Šodien pulksten] LT',
  5563. nextDay : '[Rīt pulksten] LT',
  5564. nextWeek : 'dddd [pulksten] LT',
  5565. lastDay : '[Vakar pulksten] LT',
  5566. lastWeek : '[Pagājušā] dddd [pulksten] LT',
  5567. sameElse : 'L'
  5568. },
  5569. relativeTime : {
  5570. future : "%s vēlāk",
  5571. past : "%s agrāk",
  5572. s : "dažas sekundes",
  5573. m : "minūti",
  5574. mm : relativeTimeWithPlural,
  5575. h : "stundu",
  5576. hh : relativeTimeWithPlural,
  5577. d : "dienu",
  5578. dd : relativeTimeWithPlural,
  5579. M : "mēnesi",
  5580. MM : relativeTimeWithPlural,
  5581. y : "gadu",
  5582. yy : relativeTimeWithPlural
  5583. },
  5584. ordinal : '%d.',
  5585. week : {
  5586. dow : 1, // Monday is the first day of the week.
  5587. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5588. }
  5589. });
  5590. }));
  5591. // moment.js language configuration
  5592. // language : macedonian (mk)
  5593. // author : Borislav Mickov : https://github.com/B0k0
  5594. (function (factory) {
  5595. factory(moment);
  5596. }(function (moment) {
  5597. return moment.lang('mk', {
  5598. months : "јануари_февруари_март_април_мај_јуни_јули_август_септември_октомври_ноември_декември".split("_"),
  5599. monthsShort : "јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_дек".split("_"),
  5600. weekdays : "недела_понеделник_вторник_среда_четврток_петок_сабота".split("_"),
  5601. weekdaysShort : "нед_пон_вто_сре_чет_пет_саб".split("_"),
  5602. weekdaysMin : "нe_пo_вт_ср_че_пе_сa".split("_"),
  5603. longDateFormat : {
  5604. LT : "H:mm",
  5605. L : "D.MM.YYYY",
  5606. LL : "D MMMM YYYY",
  5607. LLL : "D MMMM YYYY LT",
  5608. LLLL : "dddd, D MMMM YYYY LT"
  5609. },
  5610. calendar : {
  5611. sameDay : '[Денес во] LT',
  5612. nextDay : '[Утре во] LT',
  5613. nextWeek : 'dddd [во] LT',
  5614. lastDay : '[Вчера во] LT',
  5615. lastWeek : function () {
  5616. switch (this.day()) {
  5617. case 0:
  5618. case 3:
  5619. case 6:
  5620. return '[Во изминатата] dddd [во] LT';
  5621. case 1:
  5622. case 2:
  5623. case 4:
  5624. case 5:
  5625. return '[Во изминатиот] dddd [во] LT';
  5626. }
  5627. },
  5628. sameElse : 'L'
  5629. },
  5630. relativeTime : {
  5631. future : "после %s",
  5632. past : "пред %s",
  5633. s : "неколку секунди",
  5634. m : "минута",
  5635. mm : "%d минути",
  5636. h : "час",
  5637. hh : "%d часа",
  5638. d : "ден",
  5639. dd : "%d дена",
  5640. M : "месец",
  5641. MM : "%d месеци",
  5642. y : "година",
  5643. yy : "%d години"
  5644. },
  5645. ordinal : function (number) {
  5646. var lastDigit = number % 10,
  5647. last2Digits = number % 100;
  5648. if (number === 0) {
  5649. return number + '-ев';
  5650. } else if (last2Digits === 0) {
  5651. return number + '-ен';
  5652. } else if (last2Digits > 10 && last2Digits < 20) {
  5653. return number + '-ти';
  5654. } else if (lastDigit === 1) {
  5655. return number + '-ви';
  5656. } else if (lastDigit === 2) {
  5657. return number + '-ри';
  5658. } else if (lastDigit === 7 || lastDigit === 8) {
  5659. return number + '-ми';
  5660. } else {
  5661. return number + '-ти';
  5662. }
  5663. },
  5664. week : {
  5665. dow : 1, // Monday is the first day of the week.
  5666. doy : 7 // The week that contains Jan 1st is the first week of the year.
  5667. }
  5668. });
  5669. }));
  5670. // moment.js language configuration
  5671. // language : malayalam (ml)
  5672. // author : Floyd Pink : https://github.com/floydpink
  5673. (function (factory) {
  5674. factory(moment);
  5675. }(function (moment) {
  5676. return moment.lang('ml', {
  5677. months : 'ജനുവരി_ഫെബ്രുവരി_മാർച്ച്_ഏപ്രിൽ_മേയ്_ജൂൺ_ജൂലൈ_ഓഗസ്റ്റ്_സെപ്റ്റംബർ_ഒക്ടോബർ_നവംബർ_ഡിസംബർ'.split("_"),
  5678. monthsShort : 'ജനു._ഫെബ്രു._മാർ._ഏപ്രി._മേയ്_ജൂൺ_ജൂലൈ._ഓഗ._സെപ്റ്റ._ഒക്ടോ._നവം._ഡിസം.'.split("_"),
  5679. weekdays : 'ഞായറാഴ്ച_തിങ്കളാഴ്ച_ചൊവ്വാഴ്ച_ബുധനാഴ്ച_വ്യാഴാഴ്ച_വെള്ളിയാഴ്ച_ശനിയാഴ്ച'.split("_"),
  5680. weekdaysShort : 'ഞായർ_തിങ്കൾ_ചൊവ്വ_ബുധൻ_വ്യാഴം_വെള്ളി_ശനി'.split("_"),
  5681. weekdaysMin : 'ഞാ_തി_ചൊ_ബു_വ്യാ_വെ_ശ'.split("_"),
  5682. longDateFormat : {
  5683. LT : "A h:mm -നു",
  5684. L : "DD/MM/YYYY",
  5685. LL : "D MMMM YYYY",
  5686. LLL : "D MMMM YYYY, LT",
  5687. LLLL : "dddd, D MMMM YYYY, LT"
  5688. },
  5689. calendar : {
  5690. sameDay : '[ഇന്ന്] LT',
  5691. nextDay : '[നാളെ] LT',
  5692. nextWeek : 'dddd, LT',
  5693. lastDay : '[ഇന്നലെ] LT',
  5694. lastWeek : '[കഴിഞ്ഞ] dddd, LT',
  5695. sameElse : 'L'
  5696. },
  5697. relativeTime : {
  5698. future : "%s കഴിഞ്ഞ്",
  5699. past : "%s മുൻപ്",
  5700. s : "അൽപ നിമിഷങ്ങൾ",
  5701. m : "ഒരു മിനിറ്റ്",
  5702. mm : "%d മിനിറ്റ്",
  5703. h : "ഒരു മണിക്കൂർ",
  5704. hh : "%d മണിക്കൂർ",
  5705. d : "ഒരു ദിവസം",
  5706. dd : "%d ദിവസം",
  5707. M : "ഒരു മാസം",
  5708. MM : "%d മാസം",
  5709. y : "ഒരു വർഷം",
  5710. yy : "%d വർഷം"
  5711. },
  5712. meridiem : function (hour, minute, isLower) {
  5713. if (hour < 4) {
  5714. return "രാത്രി";
  5715. } else if (hour < 12) {
  5716. return "രാവിലെ";
  5717. } else if (hour < 17) {
  5718. return "ഉച്ച കഴിഞ്ഞ്";
  5719. } else if (hour < 20) {
  5720. return "വൈകുന്നേരം";
  5721. } else {
  5722. return "രാത്രി";
  5723. }
  5724. }
  5725. });
  5726. }));
  5727. // moment.js language configuration
  5728. // language : Marathi (mr)
  5729. // author : Harshad Kale : https://github.com/kalehv
  5730. (function (factory) {
  5731. factory(moment);
  5732. }(function (moment) {
  5733. var symbolMap = {
  5734. '1': '१',
  5735. '2': '२',
  5736. '3': '३',
  5737. '4': '४',
  5738. '5': '५',
  5739. '6': '६',
  5740. '7': '७',
  5741. '8': '८',
  5742. '9': '९',
  5743. '0': '०'
  5744. },
  5745. numberMap = {
  5746. '१': '1',
  5747. '२': '2',
  5748. '३': '3',
  5749. '४': '4',
  5750. '५': '5',
  5751. '६': '6',
  5752. '७': '7',
  5753. '८': '8',
  5754. '९': '9',
  5755. '०': '0'
  5756. };
  5757. return moment.lang('mr', {
  5758. months : 'जानेवारी_फेब्रुवारी_मार्च_एप्रिल_मे_जून_जुलै_ऑगस्ट_सप्टेंबर_ऑक्टोबर_नोव्हेंबर_डिसेंबर'.split("_"),
  5759. monthsShort: 'जाने._फेब्रु._मार्च._एप्रि._मे._जून._जुलै._ऑग._सप्टें._ऑक्टो._नोव्हें._डिसें.'.split("_"),
  5760. weekdays : 'रविवार_सोमवार_मंगळवार_बुधवार_गुरूवार_शुक्रवार_शनिवार'.split("_"),
  5761. weekdaysShort : 'रवि_सोम_मंगळ_बुध_गुरू_शुक्र_शनि'.split("_"),
  5762. weekdaysMin : 'र_सो_मं_बु_गु_शु_श'.split("_"),
  5763. longDateFormat : {
  5764. LT : "A h:mm वाजता",
  5765. L : "DD/MM/YYYY",
  5766. LL : "D MMMM YYYY",
  5767. LLL : "D MMMM YYYY, LT",
  5768. LLLL : "dddd, D MMMM YYYY, LT"
  5769. },
  5770. calendar : {
  5771. sameDay : '[आज] LT',
  5772. nextDay : '[उद्या] LT',
  5773. nextWeek : 'dddd, LT',
  5774. lastDay : '[काल] LT',
  5775. lastWeek: '[मागील] dddd, LT',
  5776. sameElse : 'L'
  5777. },
  5778. relativeTime : {
  5779. future : "%s नंतर",
  5780. past : "%s पूर्वी",
  5781. s : "सेकंद",
  5782. m: "एक मिनिट",
  5783. mm: "%d मिनिटे",
  5784. h : "एक तास",
  5785. hh : "%d तास",
  5786. d : "एक दिवस",
  5787. dd : "%d दिवस",
  5788. M : "एक महिना",
  5789. MM : "%d महिने",
  5790. y : "एक वर्ष",
  5791. yy : "%d वर्षे"
  5792. },
  5793. preparse: function (string) {
  5794. return string.replace(/[१२३४५६७८९०]/g, function (match) {
  5795. return numberMap[match];
  5796. });
  5797. },
  5798. postformat: function (string) {
  5799. return string.replace(/\d/g, function (match) {
  5800. return symbolMap[match];
  5801. });
  5802. },
  5803. meridiem: function (hour, minute, isLower)
  5804. {
  5805. if (hour < 4) {
  5806. return "रात्री";
  5807. } else if (hour < 10) {
  5808. return "सकाळी";
  5809. } else if (hour < 17) {
  5810. return "दुपारी";
  5811. } else if (hour < 20) {
  5812. return "सायंकाळी";
  5813. } else {
  5814. return "रात्री";
  5815. }
  5816. },
  5817. week : {
  5818. dow : 0, // Sunday is the first day of the week.
  5819. doy : 6 // The week that contains Jan 1st is the first week of the year.
  5820. }
  5821. });
  5822. }));
  5823. // moment.js language configuration
  5824. // language : Bahasa Malaysia (ms-MY)
  5825. // author : Weldan Jamili : https://github.com/weldan
  5826. (function (factory) {
  5827. factory(moment);
  5828. }(function (moment) {
  5829. return moment.lang('ms-my', {
  5830. months : "Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember".split("_"),
  5831. monthsShort : "Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis".split("_"),
  5832. weekdays : "Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu".split("_"),
  5833. weekdaysShort : "Ahd_Isn_Sel_Rab_Kha_Jum_Sab".split("_"),
  5834. weekdaysMin : "Ah_Is_Sl_Rb_Km_Jm_Sb".split("_"),
  5835. longDateFormat : {
  5836. LT : "HH.mm",
  5837. L : "DD/MM/YYYY",
  5838. LL : "D MMMM YYYY",
  5839. LLL : "D MMMM YYYY [pukul] LT",
  5840. LLLL : "dddd, D MMMM YYYY [pukul] LT"
  5841. },
  5842. meridiem : function (hours, minutes, isLower) {
  5843. if (hours < 11) {
  5844. return 'pagi';
  5845. } else if (hours < 15) {
  5846. return 'tengahari';
  5847. } else if (hours < 19) {
  5848. return 'petang';
  5849. } else {
  5850. return 'malam';
  5851. }
  5852. },
  5853. calendar : {
  5854. sameDay : '[Hari ini pukul] LT',
  5855. nextDay : '[Esok pukul] LT',
  5856. nextWeek : 'dddd [pukul] LT',
  5857. lastDay : '[Kelmarin pukul] LT',
  5858. lastWeek : 'dddd [lepas pukul] LT',
  5859. sameElse : 'L'
  5860. },
  5861. relativeTime : {
  5862. future : "dalam %s",
  5863. past : "%s yang lepas",
  5864. s : "beberapa saat",
  5865. m : "seminit",
  5866. mm : "%d minit",
  5867. h : "sejam",
  5868. hh : "%d jam",
  5869. d : "sehari",
  5870. dd : "%d hari",
  5871. M : "sebulan",
  5872. MM : "%d bulan",
  5873. y : "setahun",
  5874. yy : "%d tahun"
  5875. },
  5876. week : {
  5877. dow : 1, // Monday is the first day of the week.
  5878. doy : 7 // The week that contains Jan 1st is the first week of the year.
  5879. }
  5880. });
  5881. }));
  5882. // moment.js language configuration
  5883. // language : norwegian bokmål (nb)
  5884. // authors : Espen Hovlandsdal : https://github.com/rexxars
  5885. // Sigurd Gartmann : https://github.com/sigurdga
  5886. (function (factory) {
  5887. factory(moment);
  5888. }(function (moment) {
  5889. return moment.lang('nb', {
  5890. months : "januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),
  5891. monthsShort : "jan._feb._mars_april_mai_juni_juli_aug._sep._okt._nov._des.".split("_"),
  5892. weekdays : "søndag_mandag_tirsdag_onsdag_torsdag_fredag_lørdag".split("_"),
  5893. weekdaysShort : "sø._ma._ti._on._to._fr._lø.".split("_"),
  5894. weekdaysMin : "sø_ma_ti_on_to_fr_lø".split("_"),
  5895. longDateFormat : {
  5896. LT : "H.mm",
  5897. L : "DD.MM.YYYY",
  5898. LL : "D. MMMM YYYY",
  5899. LLL : "D. MMMM YYYY [kl.] LT",
  5900. LLLL : "dddd D. MMMM YYYY [kl.] LT"
  5901. },
  5902. calendar : {
  5903. sameDay: '[i dag kl.] LT',
  5904. nextDay: '[i morgen kl.] LT',
  5905. nextWeek: 'dddd [kl.] LT',
  5906. lastDay: '[i går kl.] LT',
  5907. lastWeek: '[forrige] dddd [kl.] LT',
  5908. sameElse: 'L'
  5909. },
  5910. relativeTime : {
  5911. future : "om %s",
  5912. past : "for %s siden",
  5913. s : "noen sekunder",
  5914. m : "ett minutt",
  5915. mm : "%d minutter",
  5916. h : "en time",
  5917. hh : "%d timer",
  5918. d : "en dag",
  5919. dd : "%d dager",
  5920. M : "en måned",
  5921. MM : "%d måneder",
  5922. y : "ett år",
  5923. yy : "%d år"
  5924. },
  5925. ordinal : '%d.',
  5926. week : {
  5927. dow : 1, // Monday is the first day of the week.
  5928. doy : 4 // The week that contains Jan 4th is the first week of the year.
  5929. }
  5930. });
  5931. }));
  5932. // moment.js language configuration
  5933. // language : nepali/nepalese
  5934. // author : suvash : https://github.com/suvash
  5935. (function (factory) {
  5936. factory(moment);
  5937. }(function (moment) {
  5938. var symbolMap = {
  5939. '1': '१',
  5940. '2': '२',
  5941. '3': '३',
  5942. '4': '४',
  5943. '5': '५',
  5944. '6': '६',
  5945. '7': '७',
  5946. '8': '८',
  5947. '9': '९',
  5948. '0': '०'
  5949. },
  5950. numberMap = {
  5951. '१': '1',
  5952. '२': '2',
  5953. '३': '3',
  5954. '४': '4',
  5955. '५': '5',
  5956. '६': '6',
  5957. '७': '7',
  5958. '८': '8',
  5959. '९': '9',
  5960. '०': '0'
  5961. };
  5962. return moment.lang('ne', {
  5963. months : 'जनवरी_फेब्रुवरी_मार्च_अप्रिल_मई_जुन_जुलाई_अगष्ट_सेप्टेम्बर_अक्टोबर_नोभेम्बर_डिसेम्बर'.split("_"),
  5964. monthsShort : 'जन._फेब्रु._मार्च_अप्रि._मई_जुन_जुलाई._अग._सेप्ट._अक्टो._नोभे._डिसे.'.split("_"),
  5965. weekdays : 'आइतबार_सोमबार_मङ्गलबार_बुधबार_बिहिबार_शुक्रबार_शनिबार'.split("_"),
  5966. weekdaysShort : 'आइत._सोम._मङ्गल._बुध._बिहि._शुक्र._शनि.'.split("_"),
  5967. weekdaysMin : 'आइ._सो._मङ्_बु._बि._शु._श.'.split("_"),
  5968. longDateFormat : {
  5969. LT : "Aको h:mm बजे",
  5970. L : "DD/MM/YYYY",
  5971. LL : "D MMMM YYYY",
  5972. LLL : "D MMMM YYYY, LT",
  5973. LLLL : "dddd, D MMMM YYYY, LT"
  5974. },
  5975. preparse: function (string) {
  5976. return string.replace(/[१२३४५६७८९०]/g, function (match) {
  5977. return numberMap[match];
  5978. });
  5979. },
  5980. postformat: function (string) {
  5981. return string.replace(/\d/g, function (match) {
  5982. return symbolMap[match];
  5983. });
  5984. },
  5985. meridiem : function (hour, minute, isLower) {
  5986. if (hour < 3) {
  5987. return "राती";
  5988. } else if (hour < 10) {
  5989. return "बिहान";
  5990. } else if (hour < 15) {
  5991. return "दिउँसो";
  5992. } else if (hour < 18) {
  5993. return "बेलुका";
  5994. } else if (hour < 20) {
  5995. return "साँझ";
  5996. } else {
  5997. return "राती";
  5998. }
  5999. },
  6000. calendar : {
  6001. sameDay : '[आज] LT',
  6002. nextDay : '[भोली] LT',
  6003. nextWeek : '[आउँदो] dddd[,] LT',
  6004. lastDay : '[हिजो] LT',
  6005. lastWeek : '[गएको] dddd[,] LT',
  6006. sameElse : 'L'
  6007. },
  6008. relativeTime : {
  6009. future : "%sमा",
  6010. past : "%s अगाडी",
  6011. s : "केही समय",
  6012. m : "एक मिनेट",
  6013. mm : "%d मिनेट",
  6014. h : "एक घण्टा",
  6015. hh : "%d घण्टा",
  6016. d : "एक दिन",
  6017. dd : "%d दिन",
  6018. M : "एक महिना",
  6019. MM : "%d महिना",
  6020. y : "एक बर्ष",
  6021. yy : "%d बर्ष"
  6022. },
  6023. week : {
  6024. dow : 1, // Monday is the first day of the week.
  6025. doy : 7 // The week that contains Jan 1st is the first week of the year.
  6026. }
  6027. });
  6028. }));
  6029. // moment.js language configuration
  6030. // language : dutch (nl)
  6031. // author : Joris Röling : https://github.com/jjupiter
  6032. (function (factory) {
  6033. factory(moment);
  6034. }(function (moment) {
  6035. var monthsShortWithDots = "jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.".split("_"),
  6036. monthsShortWithoutDots = "jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec".split("_");
  6037. return moment.lang('nl', {
  6038. months : "januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december".split("_"),
  6039. monthsShort : function (m, format) {
  6040. if (/-MMM-/.test(format)) {
  6041. return monthsShortWithoutDots[m.month()];
  6042. } else {
  6043. return monthsShortWithDots[m.month()];
  6044. }
  6045. },
  6046. weekdays : "zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag".split("_"),
  6047. weekdaysShort : "zo._ma._di._wo._do._vr._za.".split("_"),
  6048. weekdaysMin : "Zo_Ma_Di_Wo_Do_Vr_Za".split("_"),
  6049. longDateFormat : {
  6050. LT : "HH:mm",
  6051. L : "DD-MM-YYYY",
  6052. LL : "D MMMM YYYY",
  6053. LLL : "D MMMM YYYY LT",
  6054. LLLL : "dddd D MMMM YYYY LT"
  6055. },
  6056. calendar : {
  6057. sameDay: '[vandaag om] LT',
  6058. nextDay: '[morgen om] LT',
  6059. nextWeek: 'dddd [om] LT',
  6060. lastDay: '[gisteren om] LT',
  6061. lastWeek: '[afgelopen] dddd [om] LT',
  6062. sameElse: 'L'
  6063. },
  6064. relativeTime : {
  6065. future : "over %s",
  6066. past : "%s geleden",
  6067. s : "een paar seconden",
  6068. m : "één minuut",
  6069. mm : "%d minuten",
  6070. h : "één uur",
  6071. hh : "%d uur",
  6072. d : "één dag",
  6073. dd : "%d dagen",
  6074. M : "één maand",
  6075. MM : "%d maanden",
  6076. y : "één jaar",
  6077. yy : "%d jaar"
  6078. },
  6079. ordinal : function (number) {
  6080. return number + ((number === 1 || number === 8 || number >= 20) ? 'ste' : 'de');
  6081. },
  6082. week : {
  6083. dow : 1, // Monday is the first day of the week.
  6084. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6085. }
  6086. });
  6087. }));
  6088. // moment.js language configuration
  6089. // language : norwegian nynorsk (nn)
  6090. // author : https://github.com/mechuwind
  6091. (function (factory) {
  6092. factory(moment);
  6093. }(function (moment) {
  6094. return moment.lang('nn', {
  6095. months : "januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember".split("_"),
  6096. monthsShort : "jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des".split("_"),
  6097. weekdays : "sundag_måndag_tysdag_onsdag_torsdag_fredag_laurdag".split("_"),
  6098. weekdaysShort : "sun_mån_tys_ons_tor_fre_lau".split("_"),
  6099. weekdaysMin : "su_må_ty_on_to_fr_lø".split("_"),
  6100. longDateFormat : {
  6101. LT : "HH:mm",
  6102. L : "DD.MM.YYYY",
  6103. LL : "D MMMM YYYY",
  6104. LLL : "D MMMM YYYY LT",
  6105. LLLL : "dddd D MMMM YYYY LT"
  6106. },
  6107. calendar : {
  6108. sameDay: '[I dag klokka] LT',
  6109. nextDay: '[I morgon klokka] LT',
  6110. nextWeek: 'dddd [klokka] LT',
  6111. lastDay: '[I går klokka] LT',
  6112. lastWeek: '[Føregåande] dddd [klokka] LT',
  6113. sameElse: 'L'
  6114. },
  6115. relativeTime : {
  6116. future : "om %s",
  6117. past : "for %s sidan",
  6118. s : "nokre sekund",
  6119. m : "eit minutt",
  6120. mm : "%d minutt",
  6121. h : "ein time",
  6122. hh : "%d timar",
  6123. d : "ein dag",
  6124. dd : "%d dagar",
  6125. M : "ein månad",
  6126. MM : "%d månader",
  6127. y : "eit år",
  6128. yy : "%d år"
  6129. },
  6130. ordinal : '%d.',
  6131. week : {
  6132. dow : 1, // Monday is the first day of the week.
  6133. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6134. }
  6135. });
  6136. }));
  6137. // moment.js language configuration
  6138. // language : polish (pl)
  6139. // author : Rafal Hirsz : https://github.com/evoL
  6140. (function (factory) {
  6141. factory(moment);
  6142. }(function (moment) {
  6143. var monthsNominative = "styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_październik_listopad_grudzień".split("_"),
  6144. monthsSubjective = "stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_października_listopada_grudnia".split("_");
  6145. function plural(n) {
  6146. return (n % 10 < 5) && (n % 10 > 1) && ((~~(n / 10) % 10) !== 1);
  6147. }
  6148. function translate(number, withoutSuffix, key) {
  6149. var result = number + " ";
  6150. switch (key) {
  6151. case 'm':
  6152. return withoutSuffix ? 'minuta' : 'minutę';
  6153. case 'mm':
  6154. return result + (plural(number) ? 'minuty' : 'minut');
  6155. case 'h':
  6156. return withoutSuffix ? 'godzina' : 'godzinę';
  6157. case 'hh':
  6158. return result + (plural(number) ? 'godziny' : 'godzin');
  6159. case 'MM':
  6160. return result + (plural(number) ? 'miesiące' : 'miesięcy');
  6161. case 'yy':
  6162. return result + (plural(number) ? 'lata' : 'lat');
  6163. }
  6164. }
  6165. return moment.lang('pl', {
  6166. months : function (momentToFormat, format) {
  6167. if (/D MMMM/.test(format)) {
  6168. return monthsSubjective[momentToFormat.month()];
  6169. } else {
  6170. return monthsNominative[momentToFormat.month()];
  6171. }
  6172. },
  6173. monthsShort : "sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paź_lis_gru".split("_"),
  6174. weekdays : "niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota".split("_"),
  6175. weekdaysShort : "nie_pon_wt_śr_czw_pt_sb".split("_"),
  6176. weekdaysMin : "N_Pn_Wt_Śr_Cz_Pt_So".split("_"),
  6177. longDateFormat : {
  6178. LT : "HH:mm",
  6179. L : "DD.MM.YYYY",
  6180. LL : "D MMMM YYYY",
  6181. LLL : "D MMMM YYYY LT",
  6182. LLLL : "dddd, D MMMM YYYY LT"
  6183. },
  6184. calendar : {
  6185. sameDay: '[Dziś o] LT',
  6186. nextDay: '[Jutro o] LT',
  6187. nextWeek: '[W] dddd [o] LT',
  6188. lastDay: '[Wczoraj o] LT',
  6189. lastWeek: function () {
  6190. switch (this.day()) {
  6191. case 0:
  6192. return '[W zeszłą niedzielę o] LT';
  6193. case 3:
  6194. return '[W zeszłą środę o] LT';
  6195. case 6:
  6196. return '[W zeszłą sobotę o] LT';
  6197. default:
  6198. return '[W zeszły] dddd [o] LT';
  6199. }
  6200. },
  6201. sameElse: 'L'
  6202. },
  6203. relativeTime : {
  6204. future : "za %s",
  6205. past : "%s temu",
  6206. s : "kilka sekund",
  6207. m : translate,
  6208. mm : translate,
  6209. h : translate,
  6210. hh : translate,
  6211. d : "1 dzień",
  6212. dd : '%d dni',
  6213. M : "miesiąc",
  6214. MM : translate,
  6215. y : "rok",
  6216. yy : translate
  6217. },
  6218. ordinal : '%d.',
  6219. week : {
  6220. dow : 1, // Monday is the first day of the week.
  6221. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6222. }
  6223. });
  6224. }));
  6225. // moment.js language configuration
  6226. // language : brazilian portuguese (pt-br)
  6227. // author : Caio Ribeiro Pereira : https://github.com/caio-ribeiro-pereira
  6228. (function (factory) {
  6229. factory(moment);
  6230. }(function (moment) {
  6231. return moment.lang('pt-br', {
  6232. months : "janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),
  6233. monthsShort : "jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),
  6234. weekdays : "domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),
  6235. weekdaysShort : "dom_seg_ter_qua_qui_sex_sáb".split("_"),
  6236. weekdaysMin : "dom_2ª_3ª_4ª_5ª_6ª_sáb".split("_"),
  6237. longDateFormat : {
  6238. LT : "HH:mm",
  6239. L : "DD/MM/YYYY",
  6240. LL : "D [de] MMMM [de] YYYY",
  6241. LLL : "D [de] MMMM [de] YYYY [às] LT",
  6242. LLLL : "dddd, D [de] MMMM [de] YYYY [às] LT"
  6243. },
  6244. calendar : {
  6245. sameDay: '[Hoje às] LT',
  6246. nextDay: '[Amanhã às] LT',
  6247. nextWeek: 'dddd [às] LT',
  6248. lastDay: '[Ontem às] LT',
  6249. lastWeek: function () {
  6250. return (this.day() === 0 || this.day() === 6) ?
  6251. '[Último] dddd [às] LT' : // Saturday + Sunday
  6252. '[Última] dddd [às] LT'; // Monday - Friday
  6253. },
  6254. sameElse: 'L'
  6255. },
  6256. relativeTime : {
  6257. future : "em %s",
  6258. past : "%s atrás",
  6259. s : "segundos",
  6260. m : "um minuto",
  6261. mm : "%d minutos",
  6262. h : "uma hora",
  6263. hh : "%d horas",
  6264. d : "um dia",
  6265. dd : "%d dias",
  6266. M : "um mês",
  6267. MM : "%d meses",
  6268. y : "um ano",
  6269. yy : "%d anos"
  6270. },
  6271. ordinal : '%dº'
  6272. });
  6273. }));
  6274. // moment.js language configuration
  6275. // language : portuguese (pt)
  6276. // author : Jefferson : https://github.com/jalex79
  6277. (function (factory) {
  6278. factory(moment);
  6279. }(function (moment) {
  6280. return moment.lang('pt', {
  6281. months : "janeiro_fevereiro_março_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro".split("_"),
  6282. monthsShort : "jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez".split("_"),
  6283. weekdays : "domingo_segunda-feira_terça-feira_quarta-feira_quinta-feira_sexta-feira_sábado".split("_"),
  6284. weekdaysShort : "dom_seg_ter_qua_qui_sex_sáb".split("_"),
  6285. weekdaysMin : "dom_2ª_3ª_4ª_5ª_6ª_sáb".split("_"),
  6286. longDateFormat : {
  6287. LT : "HH:mm",
  6288. L : "DD/MM/YYYY",
  6289. LL : "D [de] MMMM [de] YYYY",
  6290. LLL : "D [de] MMMM [de] YYYY LT",
  6291. LLLL : "dddd, D [de] MMMM [de] YYYY LT"
  6292. },
  6293. calendar : {
  6294. sameDay: '[Hoje às] LT',
  6295. nextDay: '[Amanhã às] LT',
  6296. nextWeek: 'dddd [às] LT',
  6297. lastDay: '[Ontem às] LT',
  6298. lastWeek: function () {
  6299. return (this.day() === 0 || this.day() === 6) ?
  6300. '[Último] dddd [às] LT' : // Saturday + Sunday
  6301. '[Última] dddd [às] LT'; // Monday - Friday
  6302. },
  6303. sameElse: 'L'
  6304. },
  6305. relativeTime : {
  6306. future : "em %s",
  6307. past : "há %s",
  6308. s : "segundos",
  6309. m : "um minuto",
  6310. mm : "%d minutos",
  6311. h : "uma hora",
  6312. hh : "%d horas",
  6313. d : "um dia",
  6314. dd : "%d dias",
  6315. M : "um mês",
  6316. MM : "%d meses",
  6317. y : "um ano",
  6318. yy : "%d anos"
  6319. },
  6320. ordinal : '%dº',
  6321. week : {
  6322. dow : 1, // Monday is the first day of the week.
  6323. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6324. }
  6325. });
  6326. }));
  6327. // moment.js language configuration
  6328. // language : romanian (ro)
  6329. // author : Vlad Gurdiga : https://github.com/gurdiga
  6330. // author : Valentin Agachi : https://github.com/avaly
  6331. (function (factory) {
  6332. factory(moment);
  6333. }(function (moment) {
  6334. function relativeTimeWithPlural(number, withoutSuffix, key) {
  6335. var format = {
  6336. 'mm': 'minute',
  6337. 'hh': 'ore',
  6338. 'dd': 'zile',
  6339. 'MM': 'luni',
  6340. 'yy': 'ani'
  6341. },
  6342. separator = ' ';
  6343. if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {
  6344. separator = ' de ';
  6345. }
  6346. return number + separator + format[key];
  6347. }
  6348. return moment.lang('ro', {
  6349. months : "ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie".split("_"),
  6350. monthsShort : "ian._febr._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.".split("_"),
  6351. weekdays : "duminică_luni_marți_miercuri_joi_vineri_sâmbătă".split("_"),
  6352. weekdaysShort : "Dum_Lun_Mar_Mie_Joi_Vin_Sâm".split("_"),
  6353. weekdaysMin : "Du_Lu_Ma_Mi_Jo_Vi_Sâ".split("_"),
  6354. longDateFormat : {
  6355. LT : "H:mm",
  6356. L : "DD.MM.YYYY",
  6357. LL : "D MMMM YYYY",
  6358. LLL : "D MMMM YYYY H:mm",
  6359. LLLL : "dddd, D MMMM YYYY H:mm"
  6360. },
  6361. calendar : {
  6362. sameDay: "[azi la] LT",
  6363. nextDay: '[mâine la] LT',
  6364. nextWeek: 'dddd [la] LT',
  6365. lastDay: '[ieri la] LT',
  6366. lastWeek: '[fosta] dddd [la] LT',
  6367. sameElse: 'L'
  6368. },
  6369. relativeTime : {
  6370. future : "peste %s",
  6371. past : "%s în urmă",
  6372. s : "câteva secunde",
  6373. m : "un minut",
  6374. mm : relativeTimeWithPlural,
  6375. h : "o oră",
  6376. hh : relativeTimeWithPlural,
  6377. d : "o zi",
  6378. dd : relativeTimeWithPlural,
  6379. M : "o lună",
  6380. MM : relativeTimeWithPlural,
  6381. y : "un an",
  6382. yy : relativeTimeWithPlural
  6383. },
  6384. week : {
  6385. dow : 1, // Monday is the first day of the week.
  6386. doy : 7 // The week that contains Jan 1st is the first week of the year.
  6387. }
  6388. });
  6389. }));
  6390. // moment.js language configuration
  6391. // language : russian (ru)
  6392. // author : Viktorminator : https://github.com/Viktorminator
  6393. // Author : Menelion Elensúle : https://github.com/Oire
  6394. (function (factory) {
  6395. factory(moment);
  6396. }(function (moment) {
  6397. function plural(word, num) {
  6398. var forms = word.split('_');
  6399. return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
  6400. }
  6401. function relativeTimeWithPlural(number, withoutSuffix, key) {
  6402. var format = {
  6403. 'mm': withoutSuffix ? 'минута_минуты_минут' : 'минуту_минуты_минут',
  6404. 'hh': 'час_часа_часов',
  6405. 'dd': 'день_дня_дней',
  6406. 'MM': 'месяц_месяца_месяцев',
  6407. 'yy': 'год_года_лет'
  6408. };
  6409. if (key === 'm') {
  6410. return withoutSuffix ? 'минута' : 'минуту';
  6411. }
  6412. else {
  6413. return number + ' ' + plural(format[key], +number);
  6414. }
  6415. }
  6416. function monthsCaseReplace(m, format) {
  6417. var months = {
  6418. 'nominative': 'январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь'.split('_'),
  6419. 'accusative': 'января_февраля_марта_апреля_мая_июня_июля_августа_сентября_октября_ноября_декабря'.split('_')
  6420. },
  6421. nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
  6422. 'accusative' :
  6423. 'nominative';
  6424. return months[nounCase][m.month()];
  6425. }
  6426. function monthsShortCaseReplace(m, format) {
  6427. var monthsShort = {
  6428. 'nominative': 'янв_фев_мар_апр_май_июнь_июль_авг_сен_окт_ноя_дек'.split('_'),
  6429. 'accusative': 'янв_фев_мар_апр_мая_июня_июля_авг_сен_окт_ноя_дек'.split('_')
  6430. },
  6431. nounCase = (/D[oD]?(\[[^\[\]]*\]|\s+)+MMMM?/).test(format) ?
  6432. 'accusative' :
  6433. 'nominative';
  6434. return monthsShort[nounCase][m.month()];
  6435. }
  6436. function weekdaysCaseReplace(m, format) {
  6437. var weekdays = {
  6438. 'nominative': 'воскресенье_понедельник_вторник_среда_четверг_пятница_суббота'.split('_'),
  6439. 'accusative': 'воскресенье_понедельник_вторник_среду_четверг_пятницу_субботу'.split('_')
  6440. },
  6441. nounCase = (/\[ ?[Вв] ?(?:прошлую|следующую)? ?\] ?dddd/).test(format) ?
  6442. 'accusative' :
  6443. 'nominative';
  6444. return weekdays[nounCase][m.day()];
  6445. }
  6446. return moment.lang('ru', {
  6447. months : monthsCaseReplace,
  6448. monthsShort : monthsShortCaseReplace,
  6449. weekdays : weekdaysCaseReplace,
  6450. weekdaysShort : "вс_пн_вт_ср_чт_пт_сб".split("_"),
  6451. weekdaysMin : "вс_пн_вт_ср_чт_пт_сб".split("_"),
  6452. monthsParse : [/^янв/i, /^фев/i, /^мар/i, /^апр/i, /^ма[й|я]/i, /^июн/i, /^июл/i, /^авг/i, /^сен/i, /^окт/i, /^ноя/i, /^дек/i],
  6453. longDateFormat : {
  6454. LT : "HH:mm",
  6455. L : "DD.MM.YYYY",
  6456. LL : "D MMMM YYYY г.",
  6457. LLL : "D MMMM YYYY г., LT",
  6458. LLLL : "dddd, D MMMM YYYY г., LT"
  6459. },
  6460. calendar : {
  6461. sameDay: '[Сегодня в] LT',
  6462. nextDay: '[Завтра в] LT',
  6463. lastDay: '[Вчера в] LT',
  6464. nextWeek: function () {
  6465. return this.day() === 2 ? '[Во] dddd [в] LT' : '[В] dddd [в] LT';
  6466. },
  6467. lastWeek: function () {
  6468. switch (this.day()) {
  6469. case 0:
  6470. return '[В прошлое] dddd [в] LT';
  6471. case 1:
  6472. case 2:
  6473. case 4:
  6474. return '[В прошлый] dddd [в] LT';
  6475. case 3:
  6476. case 5:
  6477. case 6:
  6478. return '[В прошлую] dddd [в] LT';
  6479. }
  6480. },
  6481. sameElse: 'L'
  6482. },
  6483. relativeTime : {
  6484. future : "через %s",
  6485. past : "%s назад",
  6486. s : "несколько секунд",
  6487. m : relativeTimeWithPlural,
  6488. mm : relativeTimeWithPlural,
  6489. h : "час",
  6490. hh : relativeTimeWithPlural,
  6491. d : "день",
  6492. dd : relativeTimeWithPlural,
  6493. M : "месяц",
  6494. MM : relativeTimeWithPlural,
  6495. y : "год",
  6496. yy : relativeTimeWithPlural
  6497. },
  6498. meridiemParse: /ночи|утра|дня|вечера/i,
  6499. isPM : function (input) {
  6500. return /^(дня|вечера)$/.test(input);
  6501. },
  6502. meridiem : function (hour, minute, isLower) {
  6503. if (hour < 4) {
  6504. return "ночи";
  6505. } else if (hour < 12) {
  6506. return "утра";
  6507. } else if (hour < 17) {
  6508. return "дня";
  6509. } else {
  6510. return "вечера";
  6511. }
  6512. },
  6513. ordinal: function (number, period) {
  6514. switch (period) {
  6515. case 'M':
  6516. case 'd':
  6517. case 'DDD':
  6518. return number + '-й';
  6519. case 'D':
  6520. return number + '-го';
  6521. case 'w':
  6522. case 'W':
  6523. return number + '-я';
  6524. default:
  6525. return number;
  6526. }
  6527. },
  6528. week : {
  6529. dow : 1, // Monday is the first day of the week.
  6530. doy : 7 // The week that contains Jan 1st is the first week of the year.
  6531. }
  6532. });
  6533. }));
  6534. // moment.js language configuration
  6535. // language : slovak (sk)
  6536. // author : Martin Minka : https://github.com/k2s
  6537. // based on work of petrbela : https://github.com/petrbela
  6538. (function (factory) {
  6539. factory(moment);
  6540. }(function (moment) {
  6541. var months = "január_február_marec_apríl_máj_jún_júl_august_september_október_november_december".split("_"),
  6542. monthsShort = "jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec".split("_");
  6543. function plural(n) {
  6544. return (n > 1) && (n < 5);
  6545. }
  6546. function translate(number, withoutSuffix, key, isFuture) {
  6547. var result = number + " ";
  6548. switch (key) {
  6549. case 's': // a few seconds / in a few seconds / a few seconds ago
  6550. return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami';
  6551. case 'm': // a minute / in a minute / a minute ago
  6552. return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou');
  6553. case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
  6554. if (withoutSuffix || isFuture) {
  6555. return result + (plural(number) ? 'minúty' : 'minút');
  6556. } else {
  6557. return result + 'minútami';
  6558. }
  6559. break;
  6560. case 'h': // an hour / in an hour / an hour ago
  6561. return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou');
  6562. case 'hh': // 9 hours / in 9 hours / 9 hours ago
  6563. if (withoutSuffix || isFuture) {
  6564. return result + (plural(number) ? 'hodiny' : 'hodín');
  6565. } else {
  6566. return result + 'hodinami';
  6567. }
  6568. break;
  6569. case 'd': // a day / in a day / a day ago
  6570. return (withoutSuffix || isFuture) ? 'deň' : 'dňom';
  6571. case 'dd': // 9 days / in 9 days / 9 days ago
  6572. if (withoutSuffix || isFuture) {
  6573. return result + (plural(number) ? 'dni' : 'dní');
  6574. } else {
  6575. return result + 'dňami';
  6576. }
  6577. break;
  6578. case 'M': // a month / in a month / a month ago
  6579. return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom';
  6580. case 'MM': // 9 months / in 9 months / 9 months ago
  6581. if (withoutSuffix || isFuture) {
  6582. return result + (plural(number) ? 'mesiace' : 'mesiacov');
  6583. } else {
  6584. return result + 'mesiacmi';
  6585. }
  6586. break;
  6587. case 'y': // a year / in a year / a year ago
  6588. return (withoutSuffix || isFuture) ? 'rok' : 'rokom';
  6589. case 'yy': // 9 years / in 9 years / 9 years ago
  6590. if (withoutSuffix || isFuture) {
  6591. return result + (plural(number) ? 'roky' : 'rokov');
  6592. } else {
  6593. return result + 'rokmi';
  6594. }
  6595. break;
  6596. }
  6597. }
  6598. return moment.lang('sk', {
  6599. months : months,
  6600. monthsShort : monthsShort,
  6601. monthsParse : (function (months, monthsShort) {
  6602. var i, _monthsParse = [];
  6603. for (i = 0; i < 12; i++) {
  6604. // use custom parser to solve problem with July (červenec)
  6605. _monthsParse[i] = new RegExp('^' + months[i] + '$|^' + monthsShort[i] + '$', 'i');
  6606. }
  6607. return _monthsParse;
  6608. }(months, monthsShort)),
  6609. weekdays : "nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota".split("_"),
  6610. weekdaysShort : "ne_po_ut_st_št_pi_so".split("_"),
  6611. weekdaysMin : "ne_po_ut_st_št_pi_so".split("_"),
  6612. longDateFormat : {
  6613. LT: "H:mm",
  6614. L : "DD.MM.YYYY",
  6615. LL : "D. MMMM YYYY",
  6616. LLL : "D. MMMM YYYY LT",
  6617. LLLL : "dddd D. MMMM YYYY LT"
  6618. },
  6619. calendar : {
  6620. sameDay: "[dnes o] LT",
  6621. nextDay: '[zajtra o] LT',
  6622. nextWeek: function () {
  6623. switch (this.day()) {
  6624. case 0:
  6625. return '[v nedeľu o] LT';
  6626. case 1:
  6627. case 2:
  6628. return '[v] dddd [o] LT';
  6629. case 3:
  6630. return '[v stredu o] LT';
  6631. case 4:
  6632. return '[vo štvrtok o] LT';
  6633. case 5:
  6634. return '[v piatok o] LT';
  6635. case 6:
  6636. return '[v sobotu o] LT';
  6637. }
  6638. },
  6639. lastDay: '[včera o] LT',
  6640. lastWeek: function () {
  6641. switch (this.day()) {
  6642. case 0:
  6643. return '[minulú nedeľu o] LT';
  6644. case 1:
  6645. case 2:
  6646. return '[minulý] dddd [o] LT';
  6647. case 3:
  6648. return '[minulú stredu o] LT';
  6649. case 4:
  6650. case 5:
  6651. return '[minulý] dddd [o] LT';
  6652. case 6:
  6653. return '[minulú sobotu o] LT';
  6654. }
  6655. },
  6656. sameElse: "L"
  6657. },
  6658. relativeTime : {
  6659. future : "za %s",
  6660. past : "pred %s",
  6661. s : translate,
  6662. m : translate,
  6663. mm : translate,
  6664. h : translate,
  6665. hh : translate,
  6666. d : translate,
  6667. dd : translate,
  6668. M : translate,
  6669. MM : translate,
  6670. y : translate,
  6671. yy : translate
  6672. },
  6673. ordinal : '%d.',
  6674. week : {
  6675. dow : 1, // Monday is the first day of the week.
  6676. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6677. }
  6678. });
  6679. }));
  6680. // moment.js language configuration
  6681. // language : slovenian (sl)
  6682. // author : Robert Sedovšek : https://github.com/sedovsek
  6683. (function (factory) {
  6684. factory(moment);
  6685. }(function (moment) {
  6686. function translate(number, withoutSuffix, key) {
  6687. var result = number + " ";
  6688. switch (key) {
  6689. case 'm':
  6690. return withoutSuffix ? 'ena minuta' : 'eno minuto';
  6691. case 'mm':
  6692. if (number === 1) {
  6693. result += 'minuta';
  6694. } else if (number === 2) {
  6695. result += 'minuti';
  6696. } else if (number === 3 || number === 4) {
  6697. result += 'minute';
  6698. } else {
  6699. result += 'minut';
  6700. }
  6701. return result;
  6702. case 'h':
  6703. return withoutSuffix ? 'ena ura' : 'eno uro';
  6704. case 'hh':
  6705. if (number === 1) {
  6706. result += 'ura';
  6707. } else if (number === 2) {
  6708. result += 'uri';
  6709. } else if (number === 3 || number === 4) {
  6710. result += 'ure';
  6711. } else {
  6712. result += 'ur';
  6713. }
  6714. return result;
  6715. case 'dd':
  6716. if (number === 1) {
  6717. result += 'dan';
  6718. } else {
  6719. result += 'dni';
  6720. }
  6721. return result;
  6722. case 'MM':
  6723. if (number === 1) {
  6724. result += 'mesec';
  6725. } else if (number === 2) {
  6726. result += 'meseca';
  6727. } else if (number === 3 || number === 4) {
  6728. result += 'mesece';
  6729. } else {
  6730. result += 'mesecev';
  6731. }
  6732. return result;
  6733. case 'yy':
  6734. if (number === 1) {
  6735. result += 'leto';
  6736. } else if (number === 2) {
  6737. result += 'leti';
  6738. } else if (number === 3 || number === 4) {
  6739. result += 'leta';
  6740. } else {
  6741. result += 'let';
  6742. }
  6743. return result;
  6744. }
  6745. }
  6746. return moment.lang('sl', {
  6747. months : "januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december".split("_"),
  6748. monthsShort : "jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.".split("_"),
  6749. weekdays : "nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota".split("_"),
  6750. weekdaysShort : "ned._pon._tor._sre._čet._pet._sob.".split("_"),
  6751. weekdaysMin : "ne_po_to_sr_če_pe_so".split("_"),
  6752. longDateFormat : {
  6753. LT : "H:mm",
  6754. L : "DD. MM. YYYY",
  6755. LL : "D. MMMM YYYY",
  6756. LLL : "D. MMMM YYYY LT",
  6757. LLLL : "dddd, D. MMMM YYYY LT"
  6758. },
  6759. calendar : {
  6760. sameDay : '[danes ob] LT',
  6761. nextDay : '[jutri ob] LT',
  6762. nextWeek : function () {
  6763. switch (this.day()) {
  6764. case 0:
  6765. return '[v] [nedeljo] [ob] LT';
  6766. case 3:
  6767. return '[v] [sredo] [ob] LT';
  6768. case 6:
  6769. return '[v] [soboto] [ob] LT';
  6770. case 1:
  6771. case 2:
  6772. case 4:
  6773. case 5:
  6774. return '[v] dddd [ob] LT';
  6775. }
  6776. },
  6777. lastDay : '[včeraj ob] LT',
  6778. lastWeek : function () {
  6779. switch (this.day()) {
  6780. case 0:
  6781. case 3:
  6782. case 6:
  6783. return '[prejšnja] dddd [ob] LT';
  6784. case 1:
  6785. case 2:
  6786. case 4:
  6787. case 5:
  6788. return '[prejšnji] dddd [ob] LT';
  6789. }
  6790. },
  6791. sameElse : 'L'
  6792. },
  6793. relativeTime : {
  6794. future : "čez %s",
  6795. past : "%s nazaj",
  6796. s : "nekaj sekund",
  6797. m : translate,
  6798. mm : translate,
  6799. h : translate,
  6800. hh : translate,
  6801. d : "en dan",
  6802. dd : translate,
  6803. M : "en mesec",
  6804. MM : translate,
  6805. y : "eno leto",
  6806. yy : translate
  6807. },
  6808. ordinal : '%d.',
  6809. week : {
  6810. dow : 1, // Monday is the first day of the week.
  6811. doy : 7 // The week that contains Jan 1st is the first week of the year.
  6812. }
  6813. });
  6814. }));
  6815. // moment.js language configuration
  6816. // language : Albanian (sq)
  6817. // author : Flakërim Ismani : https://github.com/flakerimi
  6818. // author: Menelion Elensúle: https://github.com/Oire (tests)
  6819. // author : Oerd Cukalla : https://github.com/oerd (fixes)
  6820. (function (factory) {
  6821. factory(moment);
  6822. }(function (moment) {
  6823. return moment.lang('sq', {
  6824. months : "Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_Nëntor_Dhjetor".split("_"),
  6825. monthsShort : "Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_Nën_Dhj".split("_"),
  6826. weekdays : "E Diel_E Hënë_E Martë_E Mërkurë_E Enjte_E Premte_E Shtunë".split("_"),
  6827. weekdaysShort : "Die_Hën_Mar_Mër_Enj_Pre_Sht".split("_"),
  6828. weekdaysMin : "D_H_Ma_Më_E_P_Sh".split("_"),
  6829. meridiem : function (hours, minutes, isLower) {
  6830. return hours < 12 ? 'PD' : 'MD';
  6831. },
  6832. longDateFormat : {
  6833. LT : "HH:mm",
  6834. L : "DD/MM/YYYY",
  6835. LL : "D MMMM YYYY",
  6836. LLL : "D MMMM YYYY LT",
  6837. LLLL : "dddd, D MMMM YYYY LT"
  6838. },
  6839. calendar : {
  6840. sameDay : '[Sot në] LT',
  6841. nextDay : '[Nesër në] LT',
  6842. nextWeek : 'dddd [në] LT',
  6843. lastDay : '[Dje në] LT',
  6844. lastWeek : 'dddd [e kaluar në] LT',
  6845. sameElse : 'L'
  6846. },
  6847. relativeTime : {
  6848. future : "në %s",
  6849. past : "%s më parë",
  6850. s : "disa sekonda",
  6851. m : "një minutë",
  6852. mm : "%d minuta",
  6853. h : "një orë",
  6854. hh : "%d orë",
  6855. d : "një ditë",
  6856. dd : "%d ditë",
  6857. M : "një muaj",
  6858. MM : "%d muaj",
  6859. y : "një vit",
  6860. yy : "%d vite"
  6861. },
  6862. ordinal : '%d.',
  6863. week : {
  6864. dow : 1, // Monday is the first day of the week.
  6865. doy : 4 // The week that contains Jan 4th is the first week of the year.
  6866. }
  6867. });
  6868. }));
  6869. // moment.js language configuration
  6870. // language : Serbian-cyrillic (sr-cyrl)
  6871. // author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j
  6872. (function (factory) {
  6873. factory(moment);
  6874. }(function (moment) {
  6875. var translator = {
  6876. words: { //Different grammatical cases
  6877. m: ['један минут', 'једне минуте'],
  6878. mm: ['минут', 'минуте', 'минута'],
  6879. h: ['један сат', 'једног сата'],
  6880. hh: ['сат', 'сата', 'сати'],
  6881. dd: ['дан', 'дана', 'дана'],
  6882. MM: ['месец', 'месеца', 'месеци'],
  6883. yy: ['година', 'године', 'година']
  6884. },
  6885. correctGrammaticalCase: function (number, wordKey) {
  6886. return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
  6887. },
  6888. translate: function (number, withoutSuffix, key) {
  6889. var wordKey = translator.words[key];
  6890. if (key.length === 1) {
  6891. return withoutSuffix ? wordKey[0] : wordKey[1];
  6892. } else {
  6893. return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
  6894. }
  6895. }
  6896. };
  6897. return moment.lang('sr-cyrl', {
  6898. months: ['јануар', 'фебруар', 'март', 'април', 'мај', 'јун', 'јул', 'август', 'септембар', 'октобар', 'новембар', 'децембар'],
  6899. monthsShort: ['јан.', 'феб.', 'мар.', 'апр.', 'мај', 'јун', 'јул', 'авг.', 'сеп.', 'окт.', 'нов.', 'дец.'],
  6900. weekdays: ['недеља', 'понедељак', 'уторак', 'среда', 'четвртак', 'петак', 'субота'],
  6901. weekdaysShort: ['нед.', 'пон.', 'уто.', 'сре.', 'чет.', 'пет.', 'суб.'],
  6902. weekdaysMin: ['не', 'по', 'ут', 'ср', 'че', 'пе', 'су'],
  6903. longDateFormat: {
  6904. LT: "H:mm",
  6905. L: "DD. MM. YYYY",
  6906. LL: "D. MMMM YYYY",
  6907. LLL: "D. MMMM YYYY LT",
  6908. LLLL: "dddd, D. MMMM YYYY LT"
  6909. },
  6910. calendar: {
  6911. sameDay: '[данас у] LT',
  6912. nextDay: '[сутра у] LT',
  6913. nextWeek: function () {
  6914. switch (this.day()) {
  6915. case 0:
  6916. return '[у] [недељу] [у] LT';
  6917. case 3:
  6918. return '[у] [среду] [у] LT';
  6919. case 6:
  6920. return '[у] [суботу] [у] LT';
  6921. case 1:
  6922. case 2:
  6923. case 4:
  6924. case 5:
  6925. return '[у] dddd [у] LT';
  6926. }
  6927. },
  6928. lastDay : '[јуче у] LT',
  6929. lastWeek : function () {
  6930. var lastWeekDays = [
  6931. '[прошле] [недеље] [у] LT',
  6932. '[прошлог] [понедељка] [у] LT',
  6933. '[прошлог] [уторка] [у] LT',
  6934. '[прошле] [среде] [у] LT',
  6935. '[прошлог] [четвртка] [у] LT',
  6936. '[прошлог] [петка] [у] LT',
  6937. '[прошле] [суботе] [у] LT'
  6938. ];
  6939. return lastWeekDays[this.day()];
  6940. },
  6941. sameElse : 'L'
  6942. },
  6943. relativeTime : {
  6944. future : "за %s",
  6945. past : "пре %s",
  6946. s : "неколико секунди",
  6947. m : translator.translate,
  6948. mm : translator.translate,
  6949. h : translator.translate,
  6950. hh : translator.translate,
  6951. d : "дан",
  6952. dd : translator.translate,
  6953. M : "месец",
  6954. MM : translator.translate,
  6955. y : "годину",
  6956. yy : translator.translate
  6957. },
  6958. ordinal : '%d.',
  6959. week : {
  6960. dow : 1, // Monday is the first day of the week.
  6961. doy : 7 // The week that contains Jan 1st is the first week of the year.
  6962. }
  6963. });
  6964. }));
  6965. // moment.js language configuration
  6966. // language : Serbian-latin (sr)
  6967. // author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j
  6968. (function (factory) {
  6969. factory(moment);
  6970. }(function (moment) {
  6971. var translator = {
  6972. words: { //Different grammatical cases
  6973. m: ['jedan minut', 'jedne minute'],
  6974. mm: ['minut', 'minute', 'minuta'],
  6975. h: ['jedan sat', 'jednog sata'],
  6976. hh: ['sat', 'sata', 'sati'],
  6977. dd: ['dan', 'dana', 'dana'],
  6978. MM: ['mesec', 'meseca', 'meseci'],
  6979. yy: ['godina', 'godine', 'godina']
  6980. },
  6981. correctGrammaticalCase: function (number, wordKey) {
  6982. return number === 1 ? wordKey[0] : (number >= 2 && number <= 4 ? wordKey[1] : wordKey[2]);
  6983. },
  6984. translate: function (number, withoutSuffix, key) {
  6985. var wordKey = translator.words[key];
  6986. if (key.length === 1) {
  6987. return withoutSuffix ? wordKey[0] : wordKey[1];
  6988. } else {
  6989. return number + ' ' + translator.correctGrammaticalCase(number, wordKey);
  6990. }
  6991. }
  6992. };
  6993. return moment.lang('sr', {
  6994. months: ['januar', 'februar', 'mart', 'april', 'maj', 'jun', 'jul', 'avgust', 'septembar', 'oktobar', 'novembar', 'decembar'],
  6995. monthsShort: ['jan.', 'feb.', 'mar.', 'apr.', 'maj', 'jun', 'jul', 'avg.', 'sep.', 'okt.', 'nov.', 'dec.'],
  6996. weekdays: ['nedelja', 'ponedeljak', 'utorak', 'sreda', 'četvrtak', 'petak', 'subota'],
  6997. weekdaysShort: ['ned.', 'pon.', 'uto.', 'sre.', 'čet.', 'pet.', 'sub.'],
  6998. weekdaysMin: ['ne', 'po', 'ut', 'sr', 'če', 'pe', 'su'],
  6999. longDateFormat: {
  7000. LT: "H:mm",
  7001. L: "DD. MM. YYYY",
  7002. LL: "D. MMMM YYYY",
  7003. LLL: "D. MMMM YYYY LT",
  7004. LLLL: "dddd, D. MMMM YYYY LT"
  7005. },
  7006. calendar: {
  7007. sameDay: '[danas u] LT',
  7008. nextDay: '[sutra u] LT',
  7009. nextWeek: function () {
  7010. switch (this.day()) {
  7011. case 0:
  7012. return '[u] [nedelju] [u] LT';
  7013. case 3:
  7014. return '[u] [sredu] [u] LT';
  7015. case 6:
  7016. return '[u] [subotu] [u] LT';
  7017. case 1:
  7018. case 2:
  7019. case 4:
  7020. case 5:
  7021. return '[u] dddd [u] LT';
  7022. }
  7023. },
  7024. lastDay : '[juče u] LT',
  7025. lastWeek : function () {
  7026. var lastWeekDays = [
  7027. '[prošle] [nedelje] [u] LT',
  7028. '[prošlog] [ponedeljka] [u] LT',
  7029. '[prošlog] [utorka] [u] LT',
  7030. '[prošle] [srede] [u] LT',
  7031. '[prošlog] [četvrtka] [u] LT',
  7032. '[prošlog] [petka] [u] LT',
  7033. '[prošle] [subote] [u] LT'
  7034. ];
  7035. return lastWeekDays[this.day()];
  7036. },
  7037. sameElse : 'L'
  7038. },
  7039. relativeTime : {
  7040. future : "za %s",
  7041. past : "pre %s",
  7042. s : "nekoliko sekundi",
  7043. m : translator.translate,
  7044. mm : translator.translate,
  7045. h : translator.translate,
  7046. hh : translator.translate,
  7047. d : "dan",
  7048. dd : translator.translate,
  7049. M : "mesec",
  7050. MM : translator.translate,
  7051. y : "godinu",
  7052. yy : translator.translate
  7053. },
  7054. ordinal : '%d.',
  7055. week : {
  7056. dow : 1, // Monday is the first day of the week.
  7057. doy : 7 // The week that contains Jan 1st is the first week of the year.
  7058. }
  7059. });
  7060. }));
  7061. // moment.js language configuration
  7062. // language : swedish (sv)
  7063. // author : Jens Alm : https://github.com/ulmus
  7064. (function (factory) {
  7065. factory(moment);
  7066. }(function (moment) {
  7067. return moment.lang('sv', {
  7068. months : "januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december".split("_"),
  7069. monthsShort : "jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec".split("_"),
  7070. weekdays : "söndag_måndag_tisdag_onsdag_torsdag_fredag_lördag".split("_"),
  7071. weekdaysShort : "sön_mån_tis_ons_tor_fre_lör".split("_"),
  7072. weekdaysMin : "sö_må_ti_on_to_fr_lö".split("_"),
  7073. longDateFormat : {
  7074. LT : "HH:mm",
  7075. L : "YYYY-MM-DD",
  7076. LL : "D MMMM YYYY",
  7077. LLL : "D MMMM YYYY LT",
  7078. LLLL : "dddd D MMMM YYYY LT"
  7079. },
  7080. calendar : {
  7081. sameDay: '[Idag] LT',
  7082. nextDay: '[Imorgon] LT',
  7083. lastDay: '[Igår] LT',
  7084. nextWeek: 'dddd LT',
  7085. lastWeek: '[Förra] dddd[en] LT',
  7086. sameElse: 'L'
  7087. },
  7088. relativeTime : {
  7089. future : "om %s",
  7090. past : "för %s sedan",
  7091. s : "några sekunder",
  7092. m : "en minut",
  7093. mm : "%d minuter",
  7094. h : "en timme",
  7095. hh : "%d timmar",
  7096. d : "en dag",
  7097. dd : "%d dagar",
  7098. M : "en månad",
  7099. MM : "%d månader",
  7100. y : "ett år",
  7101. yy : "%d år"
  7102. },
  7103. ordinal : function (number) {
  7104. var b = number % 10,
  7105. output = (~~ (number % 100 / 10) === 1) ? 'e' :
  7106. (b === 1) ? 'a' :
  7107. (b === 2) ? 'a' :
  7108. (b === 3) ? 'e' : 'e';
  7109. return number + output;
  7110. },
  7111. week : {
  7112. dow : 1, // Monday is the first day of the week.
  7113. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7114. }
  7115. });
  7116. }));
  7117. // moment.js language configuration
  7118. // language : tamil (ta)
  7119. // author : Arjunkumar Krishnamoorthy : https://github.com/tk120404
  7120. (function (factory) {
  7121. factory(moment);
  7122. }(function (moment) {
  7123. /*var symbolMap = {
  7124. '1': '௧',
  7125. '2': '௨',
  7126. '3': '௩',
  7127. '4': '௪',
  7128. '5': '௫',
  7129. '6': '௬',
  7130. '7': '௭',
  7131. '8': '௮',
  7132. '9': '௯',
  7133. '0': '௦'
  7134. },
  7135. numberMap = {
  7136. '௧': '1',
  7137. '௨': '2',
  7138. '௩': '3',
  7139. '௪': '4',
  7140. '௫': '5',
  7141. '௬': '6',
  7142. '௭': '7',
  7143. '௮': '8',
  7144. '௯': '9',
  7145. '௦': '0'
  7146. }; */
  7147. return moment.lang('ta', {
  7148. months : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split("_"),
  7149. monthsShort : 'ஜனவரி_பிப்ரவரி_மார்ச்_ஏப்ரல்_மே_ஜூன்_ஜூலை_ஆகஸ்ட்_செப்டெம்பர்_அக்டோபர்_நவம்பர்_டிசம்பர்'.split("_"),
  7150. weekdays : 'ஞாயிற்றுக்கிழமை_திங்கட்கிழமை_செவ்வாய்கிழமை_புதன்கிழமை_வியாழக்கிழமை_வெள்ளிக்கிழமை_சனிக்கிழமை'.split("_"),
  7151. weekdaysShort : 'ஞாயிறு_திங்கள்_செவ்வாய்_புதன்_வியாழன்_வெள்ளி_சனி'.split("_"),
  7152. weekdaysMin : 'ஞா_தி_செ_பு_வி_வெ_ச'.split("_"),
  7153. longDateFormat : {
  7154. LT : "HH:mm",
  7155. L : "DD/MM/YYYY",
  7156. LL : "D MMMM YYYY",
  7157. LLL : "D MMMM YYYY, LT",
  7158. LLLL : "dddd, D MMMM YYYY, LT"
  7159. },
  7160. calendar : {
  7161. sameDay : '[இன்று] LT',
  7162. nextDay : '[நாளை] LT',
  7163. nextWeek : 'dddd, LT',
  7164. lastDay : '[நேற்று] LT',
  7165. lastWeek : '[கடந்த வாரம்] dddd, LT',
  7166. sameElse : 'L'
  7167. },
  7168. relativeTime : {
  7169. future : "%s இல்",
  7170. past : "%s முன்",
  7171. s : "ஒரு சில விநாடிகள்",
  7172. m : "ஒரு நிமிடம்",
  7173. mm : "%d நிமிடங்கள்",
  7174. h : "ஒரு மணி நேரம்",
  7175. hh : "%d மணி நேரம்",
  7176. d : "ஒரு நாள்",
  7177. dd : "%d நாட்கள்",
  7178. M : "ஒரு மாதம்",
  7179. MM : "%d மாதங்கள்",
  7180. y : "ஒரு வருடம்",
  7181. yy : "%d ஆண்டுகள்"
  7182. },
  7183. /* preparse: function (string) {
  7184. return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {
  7185. return numberMap[match];
  7186. });
  7187. },
  7188. postformat: function (string) {
  7189. return string.replace(/\d/g, function (match) {
  7190. return symbolMap[match];
  7191. });
  7192. },*/
  7193. ordinal : function (number) {
  7194. return number + 'வது';
  7195. },
  7196. // refer http://ta.wikipedia.org/s/1er1
  7197. meridiem : function (hour, minute, isLower) {
  7198. if (hour >= 6 && hour <= 10) {
  7199. return " காலை";
  7200. } else if (hour >= 10 && hour <= 14) {
  7201. return " நண்பகல்";
  7202. } else if (hour >= 14 && hour <= 18) {
  7203. return " எற்பாடு";
  7204. } else if (hour >= 18 && hour <= 20) {
  7205. return " மாலை";
  7206. } else if (hour >= 20 && hour <= 24) {
  7207. return " இரவு";
  7208. } else if (hour >= 0 && hour <= 6) {
  7209. return " வைகறை";
  7210. }
  7211. },
  7212. week : {
  7213. dow : 0, // Sunday is the first day of the week.
  7214. doy : 6 // The week that contains Jan 1st is the first week of the year.
  7215. }
  7216. });
  7217. }));
  7218. // moment.js language configuration
  7219. // language : thai (th)
  7220. // author : Kridsada Thanabulpong : https://github.com/sirn
  7221. (function (factory) {
  7222. factory(moment);
  7223. }(function (moment) {
  7224. return moment.lang('th', {
  7225. months : "มกราคม_กุมภาพันธ์_มีนาคม_เมษายน_พฤษภาคม_มิถุนายน_กรกฎาคม_สิงหาคม_กันยายน_ตุลาคม_พฤศจิกายน_ธันวาคม".split("_"),
  7226. monthsShort : "มกรา_กุมภา_มีนา_เมษา_พฤษภา_มิถุนา_กรกฎา_สิงหา_กันยา_ตุลา_พฤศจิกา_ธันวา".split("_"),
  7227. weekdays : "อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัสบดี_ศุกร์_เสาร์".split("_"),
  7228. weekdaysShort : "อาทิตย์_จันทร์_อังคาร_พุธ_พฤหัส_ศุกร์_เสาร์".split("_"), // yes, three characters difference
  7229. weekdaysMin : "อา._จ._อ._พ._พฤ._ศ._ส.".split("_"),
  7230. longDateFormat : {
  7231. LT : "H นาฬิกา m นาที",
  7232. L : "YYYY/MM/DD",
  7233. LL : "D MMMM YYYY",
  7234. LLL : "D MMMM YYYY เวลา LT",
  7235. LLLL : "วันddddที่ D MMMM YYYY เวลา LT"
  7236. },
  7237. meridiem : function (hour, minute, isLower) {
  7238. if (hour < 12) {
  7239. return "ก่อนเที่ยง";
  7240. } else {
  7241. return "หลังเที่ยง";
  7242. }
  7243. },
  7244. calendar : {
  7245. sameDay : '[วันนี้ เวลา] LT',
  7246. nextDay : '[พรุ่งนี้ เวลา] LT',
  7247. nextWeek : 'dddd[หน้า เวลา] LT',
  7248. lastDay : '[เมื่อวานนี้ เวลา] LT',
  7249. lastWeek : '[วัน]dddd[ที่แล้ว เวลา] LT',
  7250. sameElse : 'L'
  7251. },
  7252. relativeTime : {
  7253. future : "อีก %s",
  7254. past : "%sที่แล้ว",
  7255. s : "ไม่กี่วินาที",
  7256. m : "1 นาที",
  7257. mm : "%d นาที",
  7258. h : "1 ชั่วโมง",
  7259. hh : "%d ชั่วโมง",
  7260. d : "1 วัน",
  7261. dd : "%d วัน",
  7262. M : "1 เดือน",
  7263. MM : "%d เดือน",
  7264. y : "1 ปี",
  7265. yy : "%d ปี"
  7266. }
  7267. });
  7268. }));
  7269. // moment.js language configuration
  7270. // language : Tagalog/Filipino (tl-ph)
  7271. // author : Dan Hagman
  7272. (function (factory) {
  7273. factory(moment);
  7274. }(function (moment) {
  7275. return moment.lang('tl-ph', {
  7276. months : "Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre".split("_"),
  7277. monthsShort : "Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis".split("_"),
  7278. weekdays : "Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado".split("_"),
  7279. weekdaysShort : "Lin_Lun_Mar_Miy_Huw_Biy_Sab".split("_"),
  7280. weekdaysMin : "Li_Lu_Ma_Mi_Hu_Bi_Sab".split("_"),
  7281. longDateFormat : {
  7282. LT : "HH:mm",
  7283. L : "MM/D/YYYY",
  7284. LL : "MMMM D, YYYY",
  7285. LLL : "MMMM D, YYYY LT",
  7286. LLLL : "dddd, MMMM DD, YYYY LT"
  7287. },
  7288. calendar : {
  7289. sameDay: "[Ngayon sa] LT",
  7290. nextDay: '[Bukas sa] LT',
  7291. nextWeek: 'dddd [sa] LT',
  7292. lastDay: '[Kahapon sa] LT',
  7293. lastWeek: 'dddd [huling linggo] LT',
  7294. sameElse: 'L'
  7295. },
  7296. relativeTime : {
  7297. future : "sa loob ng %s",
  7298. past : "%s ang nakalipas",
  7299. s : "ilang segundo",
  7300. m : "isang minuto",
  7301. mm : "%d minuto",
  7302. h : "isang oras",
  7303. hh : "%d oras",
  7304. d : "isang araw",
  7305. dd : "%d araw",
  7306. M : "isang buwan",
  7307. MM : "%d buwan",
  7308. y : "isang taon",
  7309. yy : "%d taon"
  7310. },
  7311. ordinal : function (number) {
  7312. return number;
  7313. },
  7314. week : {
  7315. dow : 1, // Monday is the first day of the week.
  7316. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7317. }
  7318. });
  7319. }));
  7320. // moment.js language configuration
  7321. // language : turkish (tr)
  7322. // authors : Erhan Gundogan : https://github.com/erhangundogan,
  7323. // Burak Yiğit Kaya: https://github.com/BYK
  7324. (function (factory) {
  7325. factory(moment);
  7326. }(function (moment) {
  7327. var suffixes = {
  7328. 1: "'inci",
  7329. 5: "'inci",
  7330. 8: "'inci",
  7331. 70: "'inci",
  7332. 80: "'inci",
  7333. 2: "'nci",
  7334. 7: "'nci",
  7335. 20: "'nci",
  7336. 50: "'nci",
  7337. 3: "'üncü",
  7338. 4: "'üncü",
  7339. 100: "'üncü",
  7340. 6: "'ncı",
  7341. 9: "'uncu",
  7342. 10: "'uncu",
  7343. 30: "'uncu",
  7344. 60: "'ıncı",
  7345. 90: "'ıncı"
  7346. };
  7347. return moment.lang('tr', {
  7348. months : "Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık".split("_"),
  7349. monthsShort : "Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara".split("_"),
  7350. weekdays : "Pazar_Pazartesi_Salı_Çarşamba_Perşembe_Cuma_Cumartesi".split("_"),
  7351. weekdaysShort : "Paz_Pts_Sal_Çar_Per_Cum_Cts".split("_"),
  7352. weekdaysMin : "Pz_Pt_Sa_Ça_Pe_Cu_Ct".split("_"),
  7353. longDateFormat : {
  7354. LT : "HH:mm",
  7355. L : "DD.MM.YYYY",
  7356. LL : "D MMMM YYYY",
  7357. LLL : "D MMMM YYYY LT",
  7358. LLLL : "dddd, D MMMM YYYY LT"
  7359. },
  7360. calendar : {
  7361. sameDay : '[bugün saat] LT',
  7362. nextDay : '[yarın saat] LT',
  7363. nextWeek : '[haftaya] dddd [saat] LT',
  7364. lastDay : '[dün] LT',
  7365. lastWeek : '[geçen hafta] dddd [saat] LT',
  7366. sameElse : 'L'
  7367. },
  7368. relativeTime : {
  7369. future : "%s sonra",
  7370. past : "%s önce",
  7371. s : "birkaç saniye",
  7372. m : "bir dakika",
  7373. mm : "%d dakika",
  7374. h : "bir saat",
  7375. hh : "%d saat",
  7376. d : "bir gün",
  7377. dd : "%d gün",
  7378. M : "bir ay",
  7379. MM : "%d ay",
  7380. y : "bir yıl",
  7381. yy : "%d yıl"
  7382. },
  7383. ordinal : function (number) {
  7384. if (number === 0) { // special case for zero
  7385. return number + "'ıncı";
  7386. }
  7387. var a = number % 10,
  7388. b = number % 100 - a,
  7389. c = number >= 100 ? 100 : null;
  7390. return number + (suffixes[a] || suffixes[b] || suffixes[c]);
  7391. },
  7392. week : {
  7393. dow : 1, // Monday is the first day of the week.
  7394. doy : 7 // The week that contains Jan 1st is the first week of the year.
  7395. }
  7396. });
  7397. }));
  7398. // moment.js language configuration
  7399. // language : Morocco Central Atlas Tamaziɣt in Latin (tzm-latn)
  7400. // author : Abdel Said : https://github.com/abdelsaid
  7401. (function (factory) {
  7402. factory(moment);
  7403. }(function (moment) {
  7404. return moment.lang('tzm-latn', {
  7405. months : "innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),
  7406. monthsShort : "innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_ɣwšt_šwtanbir_ktˤwbrˤ_nwwanbir_dwjnbir".split("_"),
  7407. weekdays : "asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),
  7408. weekdaysShort : "asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),
  7409. weekdaysMin : "asamas_aynas_asinas_akras_akwas_asimwas_asiḍyas".split("_"),
  7410. longDateFormat : {
  7411. LT : "HH:mm",
  7412. L : "DD/MM/YYYY",
  7413. LL : "D MMMM YYYY",
  7414. LLL : "D MMMM YYYY LT",
  7415. LLLL : "dddd D MMMM YYYY LT"
  7416. },
  7417. calendar : {
  7418. sameDay: "[asdkh g] LT",
  7419. nextDay: '[aska g] LT',
  7420. nextWeek: 'dddd [g] LT',
  7421. lastDay: '[assant g] LT',
  7422. lastWeek: 'dddd [g] LT',
  7423. sameElse: 'L'
  7424. },
  7425. relativeTime : {
  7426. future : "dadkh s yan %s",
  7427. past : "yan %s",
  7428. s : "imik",
  7429. m : "minuḍ",
  7430. mm : "%d minuḍ",
  7431. h : "saɛa",
  7432. hh : "%d tassaɛin",
  7433. d : "ass",
  7434. dd : "%d ossan",
  7435. M : "ayowr",
  7436. MM : "%d iyyirn",
  7437. y : "asgas",
  7438. yy : "%d isgasn"
  7439. },
  7440. week : {
  7441. dow : 6, // Saturday is the first day of the week.
  7442. doy : 12 // The week that contains Jan 1st is the first week of the year.
  7443. }
  7444. });
  7445. }));
  7446. // moment.js language configuration
  7447. // language : Morocco Central Atlas Tamaziɣt (tzm)
  7448. // author : Abdel Said : https://github.com/abdelsaid
  7449. (function (factory) {
  7450. factory(moment);
  7451. }(function (moment) {
  7452. return moment.lang('tzm', {
  7453. months : "ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),
  7454. monthsShort : "ⵉⵏⵏⴰⵢⵔ_ⴱⵕⴰⵢⵕ_ⵎⴰⵕⵚ_ⵉⴱⵔⵉⵔ_ⵎⴰⵢⵢⵓ_ⵢⵓⵏⵢⵓ_ⵢⵓⵍⵢⵓⵣ_ⵖⵓⵛⵜ_ⵛⵓⵜⴰⵏⴱⵉⵔ_ⴽⵟⵓⴱⵕ_ⵏⵓⵡⴰⵏⴱⵉⵔ_ⴷⵓⵊⵏⴱⵉⵔ".split("_"),
  7455. weekdays : "ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),
  7456. weekdaysShort : "ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),
  7457. weekdaysMin : "ⴰⵙⴰⵎⴰⵙ_ⴰⵢⵏⴰⵙ_ⴰⵙⵉⵏⴰⵙ_ⴰⴽⵔⴰⵙ_ⴰⴽⵡⴰⵙ_ⴰⵙⵉⵎⵡⴰⵙ_ⴰⵙⵉⴹⵢⴰⵙ".split("_"),
  7458. longDateFormat : {
  7459. LT : "HH:mm",
  7460. L : "DD/MM/YYYY",
  7461. LL : "D MMMM YYYY",
  7462. LLL : "D MMMM YYYY LT",
  7463. LLLL : "dddd D MMMM YYYY LT"
  7464. },
  7465. calendar : {
  7466. sameDay: "[ⴰⵙⴷⵅ ⴴ] LT",
  7467. nextDay: '[ⴰⵙⴽⴰ ⴴ] LT',
  7468. nextWeek: 'dddd [ⴴ] LT',
  7469. lastDay: '[ⴰⵚⴰⵏⵜ ⴴ] LT',
  7470. lastWeek: 'dddd [ⴴ] LT',
  7471. sameElse: 'L'
  7472. },
  7473. relativeTime : {
  7474. future : "ⴷⴰⴷⵅ ⵙ ⵢⴰⵏ %s",
  7475. past : "ⵢⴰⵏ %s",
  7476. s : "ⵉⵎⵉⴽ",
  7477. m : "ⵎⵉⵏⵓⴺ",
  7478. mm : "%d ⵎⵉⵏⵓⴺ",
  7479. h : "ⵙⴰⵄⴰ",
  7480. hh : "%d ⵜⴰⵙⵙⴰⵄⵉⵏ",
  7481. d : "ⴰⵙⵙ",
  7482. dd : "%d oⵙⵙⴰⵏ",
  7483. M : "ⴰⵢoⵓⵔ",
  7484. MM : "%d ⵉⵢⵢⵉⵔⵏ",
  7485. y : "ⴰⵙⴳⴰⵙ",
  7486. yy : "%d ⵉⵙⴳⴰⵙⵏ"
  7487. },
  7488. week : {
  7489. dow : 6, // Saturday is the first day of the week.
  7490. doy : 12 // The week that contains Jan 1st is the first week of the year.
  7491. }
  7492. });
  7493. }));
  7494. // moment.js language configuration
  7495. // language : ukrainian (uk)
  7496. // author : zemlanin : https://github.com/zemlanin
  7497. // Author : Menelion Elensúle : https://github.com/Oire
  7498. (function (factory) {
  7499. factory(moment);
  7500. }(function (moment) {
  7501. function plural(word, num) {
  7502. var forms = word.split('_');
  7503. return num % 10 === 1 && num % 100 !== 11 ? forms[0] : (num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20) ? forms[1] : forms[2]);
  7504. }
  7505. function relativeTimeWithPlural(number, withoutSuffix, key) {
  7506. var format = {
  7507. 'mm': 'хвилина_хвилини_хвилин',
  7508. 'hh': 'година_години_годин',
  7509. 'dd': 'день_дні_днів',
  7510. 'MM': 'місяць_місяці_місяців',
  7511. 'yy': 'рік_роки_років'
  7512. };
  7513. if (key === 'm') {
  7514. return withoutSuffix ? 'хвилина' : 'хвилину';
  7515. }
  7516. else if (key === 'h') {
  7517. return withoutSuffix ? 'година' : 'годину';
  7518. }
  7519. else {
  7520. return number + ' ' + plural(format[key], +number);
  7521. }
  7522. }
  7523. function monthsCaseReplace(m, format) {
  7524. var months = {
  7525. 'nominative': 'січень_лютий_березень_квітень_травень_червень_липень_серпень_вересень_жовтень_листопад_грудень'.split('_'),
  7526. 'accusative': 'січня_лютого_березня_квітня_травня_червня_липня_серпня_вересня_жовтня_листопада_грудня'.split('_')
  7527. },
  7528. nounCase = (/D[oD]? *MMMM?/).test(format) ?
  7529. 'accusative' :
  7530. 'nominative';
  7531. return months[nounCase][m.month()];
  7532. }
  7533. function weekdaysCaseReplace(m, format) {
  7534. var weekdays = {
  7535. 'nominative': 'неділя_понеділок_вівторок_середа_четвер_п’ятниця_субота'.split('_'),
  7536. 'accusative': 'неділю_понеділок_вівторок_середу_четвер_п’ятницю_суботу'.split('_'),
  7537. 'genitive': 'неділі_понеділка_вівторка_середи_четверга_п’ятниці_суботи'.split('_')
  7538. },
  7539. nounCase = (/(\[[ВвУу]\]) ?dddd/).test(format) ?
  7540. 'accusative' :
  7541. ((/\[?(?:минулої|наступної)? ?\] ?dddd/).test(format) ?
  7542. 'genitive' :
  7543. 'nominative');
  7544. return weekdays[nounCase][m.day()];
  7545. }
  7546. function processHoursFunction(str) {
  7547. return function () {
  7548. return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';
  7549. };
  7550. }
  7551. return moment.lang('uk', {
  7552. months : monthsCaseReplace,
  7553. monthsShort : "січ_лют_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_груд".split("_"),
  7554. weekdays : weekdaysCaseReplace,
  7555. weekdaysShort : "нд_пн_вт_ср_чт_пт_сб".split("_"),
  7556. weekdaysMin : "нд_пн_вт_ср_чт_пт_сб".split("_"),
  7557. longDateFormat : {
  7558. LT : "HH:mm",
  7559. L : "DD.MM.YYYY",
  7560. LL : "D MMMM YYYY р.",
  7561. LLL : "D MMMM YYYY р., LT",
  7562. LLLL : "dddd, D MMMM YYYY р., LT"
  7563. },
  7564. calendar : {
  7565. sameDay: processHoursFunction('[Сьогодні '),
  7566. nextDay: processHoursFunction('[Завтра '),
  7567. lastDay: processHoursFunction('[Вчора '),
  7568. nextWeek: processHoursFunction('[У] dddd ['),
  7569. lastWeek: function () {
  7570. switch (this.day()) {
  7571. case 0:
  7572. case 3:
  7573. case 5:
  7574. case 6:
  7575. return processHoursFunction('[Минулої] dddd [').call(this);
  7576. case 1:
  7577. case 2:
  7578. case 4:
  7579. return processHoursFunction('[Минулого] dddd [').call(this);
  7580. }
  7581. },
  7582. sameElse: 'L'
  7583. },
  7584. relativeTime : {
  7585. future : "за %s",
  7586. past : "%s тому",
  7587. s : "декілька секунд",
  7588. m : relativeTimeWithPlural,
  7589. mm : relativeTimeWithPlural,
  7590. h : "годину",
  7591. hh : relativeTimeWithPlural,
  7592. d : "день",
  7593. dd : relativeTimeWithPlural,
  7594. M : "місяць",
  7595. MM : relativeTimeWithPlural,
  7596. y : "рік",
  7597. yy : relativeTimeWithPlural
  7598. },
  7599. // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason
  7600. meridiem : function (hour, minute, isLower) {
  7601. if (hour < 4) {
  7602. return "ночі";
  7603. } else if (hour < 12) {
  7604. return "ранку";
  7605. } else if (hour < 17) {
  7606. return "дня";
  7607. } else {
  7608. return "вечора";
  7609. }
  7610. },
  7611. ordinal: function (number, period) {
  7612. switch (period) {
  7613. case 'M':
  7614. case 'd':
  7615. case 'DDD':
  7616. case 'w':
  7617. case 'W':
  7618. return number + '-й';
  7619. case 'D':
  7620. return number + '-го';
  7621. default:
  7622. return number;
  7623. }
  7624. },
  7625. week : {
  7626. dow : 1, // Monday is the first day of the week.
  7627. doy : 7 // The week that contains Jan 1st is the first week of the year.
  7628. }
  7629. });
  7630. }));
  7631. // moment.js language configuration
  7632. // language : uzbek
  7633. // author : Sardor Muminov : https://github.com/muminoff
  7634. (function (factory) {
  7635. factory(moment);
  7636. }(function (moment) {
  7637. return moment.lang('uz', {
  7638. months : "январь_февраль_март_апрель_май_июнь_июль_август_сентябрь_октябрь_ноябрь_декабрь".split("_"),
  7639. monthsShort : "янв_фев_мар_апр_май_июн_июл_авг_сен_окт_ноя_дек".split("_"),
  7640. weekdays : "Якшанба_Душанба_Сешанба_Чоршанба_Пайшанба_Жума_Шанба".split("_"),
  7641. weekdaysShort : "Якш_Душ_Сеш_Чор_Пай_Жум_Шан".split("_"),
  7642. weekdaysMin : "Як_Ду_Се_Чо_Па_Жу_Ша".split("_"),
  7643. longDateFormat : {
  7644. LT : "HH:mm",
  7645. L : "DD/MM/YYYY",
  7646. LL : "D MMMM YYYY",
  7647. LLL : "D MMMM YYYY LT",
  7648. LLLL : "D MMMM YYYY, dddd LT"
  7649. },
  7650. calendar : {
  7651. sameDay : '[Бугун соат] LT [да]',
  7652. nextDay : '[Эртага] LT [да]',
  7653. nextWeek : 'dddd [куни соат] LT [да]',
  7654. lastDay : '[Кеча соат] LT [да]',
  7655. lastWeek : '[Утган] dddd [куни соат] LT [да]',
  7656. sameElse : 'L'
  7657. },
  7658. relativeTime : {
  7659. future : "Якин %s ичида",
  7660. past : "Бир неча %s олдин",
  7661. s : "фурсат",
  7662. m : "бир дакика",
  7663. mm : "%d дакика",
  7664. h : "бир соат",
  7665. hh : "%d соат",
  7666. d : "бир кун",
  7667. dd : "%d кун",
  7668. M : "бир ой",
  7669. MM : "%d ой",
  7670. y : "бир йил",
  7671. yy : "%d йил"
  7672. },
  7673. week : {
  7674. dow : 1, // Monday is the first day of the week.
  7675. doy : 7 // The week that contains Jan 4th is the first week of the year.
  7676. }
  7677. });
  7678. }));
  7679. // moment.js language configuration
  7680. // language : vietnamese (vi)
  7681. // author : Bang Nguyen : https://github.com/bangnk
  7682. (function (factory) {
  7683. factory(moment);
  7684. }(function (moment) {
  7685. return moment.lang('vi', {
  7686. months : "tháng 1_tháng 2_tháng 3_tháng 4_tháng 5_tháng 6_tháng 7_tháng 8_tháng 9_tháng 10_tháng 11_tháng 12".split("_"),
  7687. monthsShort : "Th01_Th02_Th03_Th04_Th05_Th06_Th07_Th08_Th09_Th10_Th11_Th12".split("_"),
  7688. weekdays : "chủ nhật_thứ hai_thứ ba_thứ tư_thứ năm_thứ sáu_thứ bảy".split("_"),
  7689. weekdaysShort : "CN_T2_T3_T4_T5_T6_T7".split("_"),
  7690. weekdaysMin : "CN_T2_T3_T4_T5_T6_T7".split("_"),
  7691. longDateFormat : {
  7692. LT : "HH:mm",
  7693. L : "DD/MM/YYYY",
  7694. LL : "D MMMM [năm] YYYY",
  7695. LLL : "D MMMM [năm] YYYY LT",
  7696. LLLL : "dddd, D MMMM [năm] YYYY LT",
  7697. l : "DD/M/YYYY",
  7698. ll : "D MMM YYYY",
  7699. lll : "D MMM YYYY LT",
  7700. llll : "ddd, D MMM YYYY LT"
  7701. },
  7702. calendar : {
  7703. sameDay: "[Hôm nay lúc] LT",
  7704. nextDay: '[Ngày mai lúc] LT',
  7705. nextWeek: 'dddd [tuần tới lúc] LT',
  7706. lastDay: '[Hôm qua lúc] LT',
  7707. lastWeek: 'dddd [tuần rồi lúc] LT',
  7708. sameElse: 'L'
  7709. },
  7710. relativeTime : {
  7711. future : "%s tới",
  7712. past : "%s trước",
  7713. s : "vài giây",
  7714. m : "một phút",
  7715. mm : "%d phút",
  7716. h : "một giờ",
  7717. hh : "%d giờ",
  7718. d : "một ngày",
  7719. dd : "%d ngày",
  7720. M : "một tháng",
  7721. MM : "%d tháng",
  7722. y : "một năm",
  7723. yy : "%d năm"
  7724. },
  7725. ordinal : function (number) {
  7726. return number;
  7727. },
  7728. week : {
  7729. dow : 1, // Monday is the first day of the week.
  7730. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7731. }
  7732. });
  7733. }));
  7734. // moment.js language configuration
  7735. // language : chinese
  7736. // author : suupic : https://github.com/suupic
  7737. // author : Zeno Zeng : https://github.com/zenozeng
  7738. (function (factory) {
  7739. factory(moment);
  7740. }(function (moment) {
  7741. return moment.lang('zh-cn', {
  7742. months : "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),
  7743. monthsShort : "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
  7744. weekdays : "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),
  7745. weekdaysShort : "周日_周一_周二_周三_周四_周五_周六".split("_"),
  7746. weekdaysMin : "日_一_二_三_四_五_六".split("_"),
  7747. longDateFormat : {
  7748. LT : "Ah点mm",
  7749. L : "YYYY-MM-DD",
  7750. LL : "YYYY年MMMD日",
  7751. LLL : "YYYY年MMMD日LT",
  7752. LLLL : "YYYY年MMMD日ddddLT",
  7753. l : "YYYY-MM-DD",
  7754. ll : "YYYY年MMMD日",
  7755. lll : "YYYY年MMMD日LT",
  7756. llll : "YYYY年MMMD日ddddLT"
  7757. },
  7758. meridiem : function (hour, minute, isLower) {
  7759. var hm = hour * 100 + minute;
  7760. if (hm < 600) {
  7761. return "凌晨";
  7762. } else if (hm < 900) {
  7763. return "早上";
  7764. } else if (hm < 1130) {
  7765. return "上午";
  7766. } else if (hm < 1230) {
  7767. return "中午";
  7768. } else if (hm < 1800) {
  7769. return "下午";
  7770. } else {
  7771. return "晚上";
  7772. }
  7773. },
  7774. calendar : {
  7775. sameDay : function () {
  7776. return this.minutes() === 0 ? "[今天]Ah[点整]" : "[今天]LT";
  7777. },
  7778. nextDay : function () {
  7779. return this.minutes() === 0 ? "[明天]Ah[点整]" : "[明天]LT";
  7780. },
  7781. lastDay : function () {
  7782. return this.minutes() === 0 ? "[昨天]Ah[点整]" : "[昨天]LT";
  7783. },
  7784. nextWeek : function () {
  7785. var startOfWeek, prefix;
  7786. startOfWeek = moment().startOf('week');
  7787. prefix = this.unix() - startOfWeek.unix() >= 7 * 24 * 3600 ? '[下]' : '[本]';
  7788. return this.minutes() === 0 ? prefix + "dddAh点整" : prefix + "dddAh点mm";
  7789. },
  7790. lastWeek : function () {
  7791. var startOfWeek, prefix;
  7792. startOfWeek = moment().startOf('week');
  7793. prefix = this.unix() < startOfWeek.unix() ? '[上]' : '[本]';
  7794. return this.minutes() === 0 ? prefix + "dddAh点整" : prefix + "dddAh点mm";
  7795. },
  7796. sameElse : 'LL'
  7797. },
  7798. ordinal : function (number, period) {
  7799. switch (period) {
  7800. case "d":
  7801. case "D":
  7802. case "DDD":
  7803. return number + "日";
  7804. case "M":
  7805. return number + "月";
  7806. case "w":
  7807. case "W":
  7808. return number + "周";
  7809. default:
  7810. return number;
  7811. }
  7812. },
  7813. relativeTime : {
  7814. future : "%s内",
  7815. past : "%s前",
  7816. s : "几秒",
  7817. m : "1分钟",
  7818. mm : "%d分钟",
  7819. h : "1小时",
  7820. hh : "%d小时",
  7821. d : "1天",
  7822. dd : "%d天",
  7823. M : "1个月",
  7824. MM : "%d个月",
  7825. y : "1年",
  7826. yy : "%d年"
  7827. },
  7828. week : {
  7829. // GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
  7830. dow : 1, // Monday is the first day of the week.
  7831. doy : 4 // The week that contains Jan 4th is the first week of the year.
  7832. }
  7833. });
  7834. }));
  7835. // moment.js language configuration
  7836. // language : traditional chinese (zh-tw)
  7837. // author : Ben : https://github.com/ben-lin
  7838. (function (factory) {
  7839. factory(moment);
  7840. }(function (moment) {
  7841. return moment.lang('zh-tw', {
  7842. months : "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),
  7843. monthsShort : "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
  7844. weekdays : "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),
  7845. weekdaysShort : "週日_週一_週二_週三_週四_週五_週六".split("_"),
  7846. weekdaysMin : "日_一_二_三_四_五_六".split("_"),
  7847. longDateFormat : {
  7848. LT : "Ah點mm",
  7849. L : "YYYY年MMMD日",
  7850. LL : "YYYY年MMMD日",
  7851. LLL : "YYYY年MMMD日LT",
  7852. LLLL : "YYYY年MMMD日ddddLT",
  7853. l : "YYYY年MMMD日",
  7854. ll : "YYYY年MMMD日",
  7855. lll : "YYYY年MMMD日LT",
  7856. llll : "YYYY年MMMD日ddddLT"
  7857. },
  7858. meridiem : function (hour, minute, isLower) {
  7859. var hm = hour * 100 + minute;
  7860. if (hm < 900) {
  7861. return "早上";
  7862. } else if (hm < 1130) {
  7863. return "上午";
  7864. } else if (hm < 1230) {
  7865. return "中午";
  7866. } else if (hm < 1800) {
  7867. return "下午";
  7868. } else {
  7869. return "晚上";
  7870. }
  7871. },
  7872. calendar : {
  7873. sameDay : '[今天]LT',
  7874. nextDay : '[明天]LT',
  7875. nextWeek : '[下]ddddLT',
  7876. lastDay : '[昨天]LT',
  7877. lastWeek : '[上]ddddLT',
  7878. sameElse : 'L'
  7879. },
  7880. ordinal : function (number, period) {
  7881. switch (period) {
  7882. case "d" :
  7883. case "D" :
  7884. case "DDD" :
  7885. return number + "日";
  7886. case "M" :
  7887. return number + "月";
  7888. case "w" :
  7889. case "W" :
  7890. return number + "週";
  7891. default :
  7892. return number;
  7893. }
  7894. },
  7895. relativeTime : {
  7896. future : "%s內",
  7897. past : "%s前",
  7898. s : "幾秒",
  7899. m : "一分鐘",
  7900. mm : "%d分鐘",
  7901. h : "一小時",
  7902. hh : "%d小時",
  7903. d : "一天",
  7904. dd : "%d天",
  7905. M : "一個月",
  7906. MM : "%d個月",
  7907. y : "一年",
  7908. yy : "%d年"
  7909. }
  7910. });
  7911. }));
  7912. moment.lang('en');
  7913. /************************************
  7914. Exposing Moment
  7915. ************************************/
  7916. function makeGlobal(shouldDeprecate) {
  7917. /*global ender:false */
  7918. if (typeof ender !== 'undefined') {
  7919. return;
  7920. }
  7921. oldGlobalMoment = globalScope.moment;
  7922. if (shouldDeprecate) {
  7923. globalScope.moment = deprecate(
  7924. "Accessing Moment through the global scope is " +
  7925. "deprecated, and will be removed in an upcoming " +
  7926. "release.",
  7927. moment);
  7928. } else {
  7929. globalScope.moment = moment;
  7930. }
  7931. }
  7932. // CommonJS module is defined
  7933. if (hasModule) {
  7934. module.exports = moment;
  7935. } else if (typeof define === "function" && define.amd) {
  7936. define("moment", function (require, exports, module) {
  7937. if (module.config && module.config() && module.config().noGlobal === true) {
  7938. // release the global variable
  7939. globalScope.moment = oldGlobalMoment;
  7940. }
  7941. return moment;
  7942. });
  7943. makeGlobal(true);
  7944. } else {
  7945. makeGlobal();
  7946. }
  7947. }).call(this);