forked from saleiva/moment
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adding support for bulgarian localization
- Loading branch information
Showing
2 changed files
with
331 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,66 @@ | ||
// moment.js language configuration | ||
// language : bulgarian (bg) | ||
// author : Krasen Borisov : https://github.com/kraz | ||
(function () { | ||
var lang = { | ||
months : "януари_февруари_март_април_май_юни_юли_август_септември_октомври_ноември_декември".split("_"), | ||
monthsShort : "янр_фев_мар_апр_май_юни_юли_авг_сеп_окт_ное_дек".split("_"), | ||
weekdays : "неделя_понеделник_вторник_сряда_четвъртък_петък_събота".split("_"), | ||
weekdaysShort : "нед_пон_вто_сря_чет_пет_съб".split("_"), | ||
weekdaysMin : "нд_пн_вт_ср_чт_пт_сб".split("_"), | ||
longDateFormat : { | ||
LT : "h:mm", | ||
L : "D.MM.YYYY", | ||
LL : "D MMMM YYYY", | ||
LLL : "D MMMM YYYY LT", | ||
LLLL : "dddd, D MMMM YYYY LT" | ||
}, | ||
calendar : { | ||
sameDay : '[Днес в] LT', | ||
nextDay : '[Утре в] LT', | ||
nextWeek : 'dddd [в] LT', | ||
lastDay : '[Вчера в] LT', | ||
lastWeek : function () { | ||
switch (this.day()) { | ||
case 0: | ||
case 3: | ||
case 6: | ||
return '[В изминалата] dddd [в] LT'; | ||
case 1: | ||
case 2: | ||
case 4: | ||
case 5: | ||
return '[В изминалия] dddd [в] LT'; | ||
} | ||
}, | ||
sameElse : 'L' | ||
}, | ||
relativeTime : { | ||
future : "след %s", | ||
past : "преди %s", | ||
s : "няколко секунди", | ||
m : "минута", | ||
mm : "%d минути", | ||
h : "час", | ||
hh : "%d часа", | ||
d : "ден", | ||
dd : "%d дни", | ||
M : "месец", | ||
MM : "%d месеца", | ||
y : "година", | ||
yy : "%d години" | ||
}, | ||
ordinal : function (number) { | ||
return '.'; | ||
} | ||
}; | ||
|
||
// Node | ||
if (typeof module !== 'undefined') { | ||
module.exports = lang; | ||
} | ||
// Browser | ||
if (typeof window !== 'undefined' && this.moment && this.moment.lang) { | ||
this.moment.lang('bg', lang); | ||
} | ||
}()); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,265 @@ | ||
var moment = require("../../moment"); | ||
|
||
|
||
/************************************************** | ||
Bulgarian | ||
*************************************************/ | ||
|
||
exports["lang:bg"] = { | ||
"parse" : function(test) { | ||
test.expect(96); | ||
moment.lang('bg'); | ||
var tests = 'януари янр_февруари фев_март мар_април апр_май май_юни юни_юли юли_август авг_септември сеп_октомври окт_ноември ное_декември дек'.split("_"); | ||
var i; | ||
function equalTest(input, mmm, i) { | ||
test.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1)); | ||
} | ||
for (i = 0; i < 12; i++) { | ||
tests[i] = tests[i].split(' '); | ||
equalTest(tests[i][0], 'MMM', i); | ||
equalTest(tests[i][1], 'MMM', i); | ||
equalTest(tests[i][0], 'MMMM', i); | ||
equalTest(tests[i][1], 'MMMM', i); | ||
equalTest(tests[i][0].toLocaleLowerCase(), 'MMMM', i); | ||
equalTest(tests[i][1].toLocaleLowerCase(), 'MMMM', i); | ||
equalTest(tests[i][0].toLocaleUpperCase(), 'MMMM', i); | ||
equalTest(tests[i][1].toLocaleUpperCase(), 'MMMM', i); | ||
} | ||
test.done(); | ||
}, | ||
|
||
"format" : function(test) { | ||
test.expect(18); | ||
moment.lang('bg'); | ||
var a = [ | ||
['dddd, MMMM Do YYYY, h:mm:ss a', 'неделя, февруари 14. 2010, 3:25:50 pm'], | ||
['ddd, hA', 'нед, 3PM'], | ||
['M Mo MM MMMM MMM', '2 2. 02 февруари фев'], | ||
['YYYY YY', '2010 10'], | ||
['D Do DD', '14 14. 14'], | ||
['d do dddd ddd dd', '0 0. неделя нед нд'], | ||
['DDD DDDo DDDD', '45 45. 045'], | ||
['w wo ww', '8 8. 08'], | ||
['h hh', '3 03'], | ||
['H HH', '15 15'], | ||
['m mm', '25 25'], | ||
['s ss', '50 50'], | ||
['a A', 'pm PM'], | ||
['t\\he DDDo \\d\\ay of t\\he ye\\ar', 'the 45. day of the year'], | ||
['L', '14.02.2010'], | ||
['LL', '14 февруари 2010'], | ||
['LLL', '14 февруари 2010 3:25'], | ||
['LLLL', 'неделя, 14 февруари 2010 3:25'] | ||
], | ||
b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), | ||
i; | ||
for (i = 0; i < a.length; i++) { | ||
test.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); | ||
} | ||
test.done(); | ||
}, | ||
|
||
"format ordinal" : function(test) { | ||
test.expect(31); | ||
moment.lang('bg'); | ||
test.equal(moment([2011, 0, 1]).format('DDDo'), '1.', '1.'); | ||
test.equal(moment([2011, 0, 2]).format('DDDo'), '2.', '2.'); | ||
test.equal(moment([2011, 0, 3]).format('DDDo'), '3.', '3.'); | ||
test.equal(moment([2011, 0, 4]).format('DDDo'), '4.', '4.'); | ||
test.equal(moment([2011, 0, 5]).format('DDDo'), '5.', '5.'); | ||
test.equal(moment([2011, 0, 6]).format('DDDo'), '6.', '6.'); | ||
test.equal(moment([2011, 0, 7]).format('DDDo'), '7.', '7.'); | ||
test.equal(moment([2011, 0, 8]).format('DDDo'), '8.', '8.'); | ||
test.equal(moment([2011, 0, 9]).format('DDDo'), '9.', '9.'); | ||
test.equal(moment([2011, 0, 10]).format('DDDo'), '10.', '10.'); | ||
|
||
test.equal(moment([2011, 0, 11]).format('DDDo'), '11.', '11.'); | ||
test.equal(moment([2011, 0, 12]).format('DDDo'), '12.', '12.'); | ||
test.equal(moment([2011, 0, 13]).format('DDDo'), '13.', '13.'); | ||
test.equal(moment([2011, 0, 14]).format('DDDo'), '14.', '14.'); | ||
test.equal(moment([2011, 0, 15]).format('DDDo'), '15.', '15.'); | ||
test.equal(moment([2011, 0, 16]).format('DDDo'), '16.', '16.'); | ||
test.equal(moment([2011, 0, 17]).format('DDDo'), '17.', '17.'); | ||
test.equal(moment([2011, 0, 18]).format('DDDo'), '18.', '18.'); | ||
test.equal(moment([2011, 0, 19]).format('DDDo'), '19.', '19.'); | ||
test.equal(moment([2011, 0, 20]).format('DDDo'), '20.', '20.'); | ||
|
||
test.equal(moment([2011, 0, 21]).format('DDDo'), '21.', '21.'); | ||
test.equal(moment([2011, 0, 22]).format('DDDo'), '22.', '22.'); | ||
test.equal(moment([2011, 0, 23]).format('DDDo'), '23.', '23.'); | ||
test.equal(moment([2011, 0, 24]).format('DDDo'), '24.', '24.'); | ||
test.equal(moment([2011, 0, 25]).format('DDDo'), '25.', '25.'); | ||
test.equal(moment([2011, 0, 26]).format('DDDo'), '26.', '26.'); | ||
test.equal(moment([2011, 0, 27]).format('DDDo'), '27.', '27.'); | ||
test.equal(moment([2011, 0, 28]).format('DDDo'), '28.', '28.'); | ||
test.equal(moment([2011, 0, 29]).format('DDDo'), '29.', '29.'); | ||
test.equal(moment([2011, 0, 30]).format('DDDo'), '30.', '30.'); | ||
|
||
test.equal(moment([2011, 0, 31]).format('DDDo'), '31.', '31.'); | ||
test.done(); | ||
}, | ||
|
||
"format month" : function(test) { | ||
test.expect(12); | ||
moment.lang('bg'); | ||
var expected = 'януари янр_февруари фев_март мар_април апр_май май_юни юни_юли юли_август авг_септември сеп_октомври окт_ноември ное_декември дек'.split("_"); | ||
var i; | ||
for (i = 0; i < expected.length; i++) { | ||
test.equal(moment([2011, i, 1]).format('MMMM MMM'), expected[i], expected[i]); | ||
} | ||
test.done(); | ||
}, | ||
|
||
"format week" : function(test) { | ||
test.expect(7); | ||
moment.lang('bg'); | ||
var expected = 'неделя нед нд_понеделник пон пн_вторник вто вт_сряда сря ср_четвъртък чет чт_петък пет пт_събота съб сб'.split("_"); | ||
var i; | ||
for (i = 0; i < expected.length; i++) { | ||
test.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); | ||
} | ||
test.done(); | ||
}, | ||
|
||
"from" : function(test) { | ||
test.expect(30); | ||
moment.lang('bg'); | ||
var start = moment([2007, 1, 28]); | ||
test.equal(start.from(moment([2007, 1, 28]).add({s:44}), true), "няколко секунди", "44 seconds = a few seconds"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({s:45}), true), "минута", "45 seconds = a minute"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({s:89}), true), "минута", "89 seconds = a minute"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({s:90}), true), "2 минути", "90 seconds = 2 minutes"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({m:44}), true), "44 минути", "44 minutes = 44 minutes"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({m:45}), true), "час", "45 minutes = an hour"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({m:89}), true), "час", "89 minutes = an hour"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({m:90}), true), "2 часа", "90 minutes = 2 hours"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({h:5}), true), "5 часа", "5 hours = 5 hours"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({h:21}), true), "21 часа", "21 hours = 21 hours"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({h:22}), true), "ден", "22 hours = a day"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({h:35}), true), "ден", "35 hours = a day"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({h:36}), true), "2 дни", "36 hours = 2 days"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({d:1}), true), "ден", "1 day = a day"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({d:5}), true), "5 дни", "5 days = 5 days"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({d:25}), true), "25 дни", "25 days = 25 days"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({d:26}), true), "месец", "26 days = a month"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({d:30}), true), "месец", "30 days = a month"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({d:45}), true), "месец", "45 days = a month"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({d:46}), true), "2 месеца", "46 days = 2 months"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({d:74}), true), "2 месеца", "75 days = 2 months"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({d:76}), true), "3 месеца", "76 days = 3 months"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({M:1}), true), "месец", "1 month = a month"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({M:5}), true), "5 месеца", "5 months = 5 months"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({d:344}), true), "11 месеца", "344 days = 11 months"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({d:345}), true), "година", "345 days = a year"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({d:547}), true), "година", "547 days = a year"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({d:548}), true), "2 години", "548 days = 2 years"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({y:1}), true), "година", "1 year = a year"); | ||
test.equal(start.from(moment([2007, 1, 28]).add({y:5}), true), "5 години", "5 years = 5 years"); | ||
test.done(); | ||
}, | ||
|
||
"suffix" : function(test) { | ||
test.expect(2); | ||
moment.lang('bg'); | ||
test.equal(moment(30000).from(0), "след няколко секунди", "prefix"); | ||
test.equal(moment(0).from(30000), "преди няколко секунди", "suffix"); | ||
test.done(); | ||
}, | ||
|
||
"now from now" : function(test) { | ||
test.expect(1); | ||
moment.lang('bg'); | ||
test.equal(moment().fromNow(), "преди няколко секунди", "now from now should display as in the past"); | ||
test.done(); | ||
}, | ||
|
||
"fromNow" : function(test) { | ||
test.expect(2); | ||
moment.lang('bg'); | ||
test.equal(moment().add({s:30}).fromNow(), "след няколко секунди", "in a few seconds"); | ||
test.equal(moment().add({d:5}).fromNow(), "след 5 дни", "in 5 days"); | ||
test.done(); | ||
}, | ||
|
||
"calendar day" : function(test) { | ||
test.expect(6); | ||
moment.lang('bg'); | ||
|
||
var a = moment().hours(2).minutes(0).seconds(0); | ||
|
||
test.equal(moment(a).calendar(), "Днес в 2:00", "today at the same time"); | ||
test.equal(moment(a).add({ m: 25 }).calendar(), "Днес в 2:25", "Now plus 25 min"); | ||
test.equal(moment(a).add({ h: 1 }).calendar(), "Днес в 3:00", "Now plus 1 hour"); | ||
test.equal(moment(a).add({ d: 1 }).calendar(), "Утре в 2:00", "tomorrow at the same time"); | ||
test.equal(moment(a).subtract({ h: 1 }).calendar(), "Днес в 1:00", "Now minus 1 hour"); | ||
test.equal(moment(a).subtract({ d: 1 }).calendar(), "Вчера в 2:00", "yesterday at the same time"); | ||
test.done(); | ||
}, | ||
|
||
"calendar next week" : function(test) { | ||
test.expect(15); | ||
moment.lang('bg'); | ||
|
||
var i; | ||
var m; | ||
|
||
for (i = 2; i < 7; i++) { | ||
m = moment().add({ d: i }); | ||
test.equal(m.calendar(), m.format('dddd [в] LT'), "Today + " + i + " days current time"); | ||
m.hours(0).minutes(0).seconds(0).milliseconds(0); | ||
test.equal(m.calendar(), m.format('dddd [в] LT'), "Today + " + i + " days beginning of day"); | ||
m.hours(23).minutes(59).seconds(59).milliseconds(999); | ||
test.equal(m.calendar(), m.format('dddd [в] LT'), "Today + " + i + " days end of day"); | ||
} | ||
test.done(); | ||
}, | ||
|
||
"calendar last week" : function(test) { | ||
test.expect(15); | ||
moment.lang('bg'); | ||
|
||
var i; | ||
var m; | ||
|
||
function makeFormat(d) { | ||
switch (d.day()) { | ||
case 0: | ||
case 3: | ||
case 6: | ||
return '[В изминалата] dddd [в] LT'; | ||
case 1: | ||
case 2: | ||
case 4: | ||
case 5: | ||
return '[В изминалия] dddd [в] LT'; | ||
} | ||
} | ||
|
||
for (i = 2; i < 7; i++) { | ||
m = moment().subtract({ d: i }); | ||
test.equal(m.calendar(), m.format(makeFormat(m)), "Today - " + i + " days current time"); | ||
m.hours(0).minutes(0).seconds(0).milliseconds(0); | ||
test.equal(m.calendar(), m.format(makeFormat(m)), "Today - " + i + " days beginning of day"); | ||
m.hours(23).minutes(59).seconds(59).milliseconds(999); | ||
test.equal(m.calendar(), m.format(makeFormat(m)), "Today - " + i + " days end of day"); | ||
} | ||
test.done(); | ||
}, | ||
|
||
"calendar all else" : function(test) { | ||
test.expect(4); | ||
moment.lang('bg'); | ||
var weeksAgo = moment().subtract({ w: 1 }); | ||
var weeksFromNow = moment().add({ w: 1 }); | ||
|
||
test.equal(weeksAgo.calendar(), weeksAgo.format('L'), "1 week ago"); | ||
test.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), "in 1 week"); | ||
|
||
weeksAgo = moment().subtract({ w: 2 }); | ||
weeksFromNow = moment().add({ w: 2 }); | ||
|
||
test.equal(weeksAgo.calendar(), weeksAgo.format('L'), "2 weeks ago"); | ||
test.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), "in 2 weeks"); | ||
test.done(); | ||
} | ||
}; |