return mutationTable[text.charAt(0)] + text.substring(1);
}
+var monthsParse = [
+ /^gen/i,
+ /^c[ʼ\']hwe/i,
+ /^meu/i,
+ /^ebr/i,
+ /^mae/i,
+ /^(mez|eve)/i,
+ /^gou/i,
+ /^eos/i,
+ /^gwe/i,
+ /^her/i,
+ /^du/i,
+ /^ker/i,
+ ],
+ monthsRegex = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
+ monthsStrictRegex = /^(genver|c[ʼ\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,
+ monthsShortStrictRegex = /^(gen|c[ʼ\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,
+ fullWeekdaysParse = [
+ /^sul/i,
+ /^lun/i,
+ /^meurzh/i,
+ /^merc[ʼ\']her/i,
+ /^yaou/i,
+ /^gwener/i,
+ /^sadorn/i,
+ ],
+ shortWeekdaysParse = [
+ /^Sul/i,
+ /^Lun/i,
+ /^Meu/i,
+ /^Mer/i,
+ /^Yao/i,
+ /^Gwe/i,
+ /^Sad/i,
+ ],
+ minWeekdaysParse = [
+ /^Su/i,
+ /^Lu/i,
+ /^Me([^r]|$)/i,
+ /^Mer/i,
+ /^Ya/i,
+ /^Gw/i,
+ /^Sa/i,
+ ];
+
export default moment.defineLocale('br', {
- months: "Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split(
+ months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(
'_'
),
- monthsShort: "Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split('_'),
- weekdays: "Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split('_'),
+ monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),
+ weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),
weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
- weekdaysParseExact: true,
+ weekdaysParse: minWeekdaysParse,
+ fullWeekdaysParse: fullWeekdaysParse,
+ shortWeekdaysParse: shortWeekdaysParse,
+ minWeekdaysParse: minWeekdaysParse,
+
+ monthsRegex: monthsRegex,
+ monthsShortRegex: monthsRegex,
+ monthsStrictRegex: monthsStrictRegex,
+ monthsShortStrictRegex: monthsShortStrictRegex,
+ monthsParse: monthsParse,
+ longMonthsParse: monthsParse,
+ shortMonthsParse: monthsParse,
+
longDateFormat: {
LT: 'HH:mm',
LTS: 'HH:mm:ss',
},
calendar: {
sameDay: '[Hiziv da] LT',
- nextDay: "[Warc'hoazh da] LT",
+ nextDay: '[Warcʼhoazh da] LT',
nextWeek: 'dddd [da] LT',
- lastDay: "[Dec'h da] LT",
+ lastDay: '[Decʼh da] LT',
lastWeek: 'dddd [paset da] LT',
sameElse: 'L',
},
relativeTime: {
future: 'a-benn %s',
- past: "%s 'zo",
+ past: '%s ʼzo',
s: 'un nebeud segondennoù',
ss: '%d eilenn',
m: 'ur vunutenn',
dow: 1, // Monday is the first day of the week.
doy: 4, // The week that contains Jan 4th is the first week of the year.
},
+ meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn
+ isPM: function (token) {
+ return token === 'g.m.';
+ },
+ meridiem: function (hour, minute, isLower) {
+ return hour < 12 ? 'a.m.' : 'g.m.';
+ },
});
localeModule('br');
test('parse', function (assert) {
- var tests = "Genver Gen_C'hwevrer C'hwe_Meurzh Meu_Ebrel Ebr_Mae Mae_Mezheven Eve_Gouere Gou_Eost Eos_Gwengolo Gwe_Here Her_Du Du_Kerzu Ker".split(
+ var tests = 'Genver Gen_Cʼhwevrer Cʼhwe_Meurzh Meu_Ebrel Ebr_Mae Mae_Mezheven Eve_Gouere Gou_Eost Eos_Gwengolo Gwe_Here Her_Du Du_Kerzu Ker'.split(
'_'
),
- i;
+ i,
+ monthsWithRegularQuoteMark = ["C'hwevrer", "C'hwe"];
+
function equalTest(input, mmm, i) {
assert.equal(
moment(input, mmm).month(),
equalTestStrict(tests[i][0].toLocaleLowerCase(), 'MMMM', i);
equalTestStrict(tests[i][0].toLocaleUpperCase(), 'MMMM', i);
}
+
+ // check with regular quote mark
+ equalTest(monthsWithRegularQuoteMark[0], 'MMM', 1);
+ equalTest(monthsWithRegularQuoteMark[1], 'MMM', 1);
+ equalTest(monthsWithRegularQuoteMark[0], 'MMMM', 1);
+ equalTest(monthsWithRegularQuoteMark[1], 'MMMM', 1);
+ equalTest(monthsWithRegularQuoteMark[0].toLocaleLowerCase(), 'MMM', 1);
+ equalTest(monthsWithRegularQuoteMark[1].toLocaleLowerCase(), 'MMM', 1);
+ equalTest(monthsWithRegularQuoteMark[0].toLocaleUpperCase(), 'MMMM', 1);
+ equalTest(monthsWithRegularQuoteMark[1].toLocaleUpperCase(), 'MMMM', 1);
+
+ assert.notEqual(
+ moment(monthsWithRegularQuoteMark[0], 'MMM', true).month(),
+ 1
+ );
+ equalTestStrict(monthsWithRegularQuoteMark[1], 'MMM', 1);
+ equalTest(monthsWithRegularQuoteMark[0], 'MMMM', 1);
+ assert.notEqual(
+ moment(monthsWithRegularQuoteMark[1], 'MMMM', true).month(),
+ 1
+ );
+ equalTest(monthsWithRegularQuoteMark[1].toLocaleLowerCase(), 'MMM', 1);
+ equalTest(monthsWithRegularQuoteMark[0].toLocaleUpperCase(), 'MMMM', 1);
+
+ // check weekday with regular quote mark
+ assert.equal(
+ moment("merc'her", 'dddd', true).day(),
+ 3,
+ "merc'her (regular quote)"
+ );
+ assert.equal(
+ moment('mercʼher', 'dddd', true).day(),
+ 3,
+ 'mercʼher (special quote)'
+ );
});
test('format', function (assert) {
var a = [
[
'dddd, MMMM Do YYYY, h:mm:ss a',
- "Sul, C'hwevrer 14vet 2010, 3:25:50 pm",
+ 'Sul, Cʼhwevrer 14vet 2010, 3:25:50 g.m.',
],
- ['ddd, h A', 'Sul, 3 PM'],
- ['M Mo MM MMMM MMM', "2 2vet 02 C'hwevrer C'hwe"],
+ ['ddd, h A', 'Sul, 3 g.m.'],
+ ['M Mo MM MMMM MMM', '2 2vet 02 Cʼhwevrer Cʼhwe'],
['YYYY YY', '2010 10'],
['D Do DD', '14 14vet 14'],
['d do dddd ddd dd', '0 0vet Sul Sul Su'],
['s ss', '50 50'],
['DDDo [devezh] [ar] [vloaz]', '45vet devezh ar vloaz'],
['L', '14/02/2010'],
- ['LL', "14 a viz C'hwevrer 2010"],
- ['LLL', "14 a viz C'hwevrer 2010 15:25"],
- ['LLLL', "Sul, 14 a viz C'hwevrer 2010 15:25"],
+ ['LL', '14 a viz Cʼhwevrer 2010'],
+ ['LLL', '14 a viz Cʼhwevrer 2010 15:25'],
+ ['LLLL', 'Sul, 14 a viz Cʼhwevrer 2010 15:25'],
],
b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)),
i;
test('format month', function (assert) {
moment.locale('br');
- var expected = "Genver Gen_C'hwevrer C'hwe_Meurzh Meu_Ebrel Ebr_Mae Mae_Mezheven Eve_Gouere Gou_Eost Eos_Gwengolo Gwe_Here Her_Du Du_Kerzu Ker".split(
+ var expected = 'Genver Gen_Cʼhwevrer Cʼhwe_Meurzh Meu_Ebrel Ebr_Mae Mae_Mezheven Eve_Gouere Gou_Eost Eos_Gwengolo Gwe_Here Her_Du Du_Kerzu Ker'.split(
'_'
),
i;
test('format week', function (assert) {
moment.locale('br');
- var expected = "Sul Sul Su_Lun Lun Lu_Meurzh Meu Me_Merc'her Mer Mer_Yaou Yao Ya_Gwener Gwe Gw_Sadorn Sad Sa".split(
+ var expected = 'Sul Sul Su_Lun Lun Lu_Meurzh Meu Me_Mercʼher Mer Mer_Yaou Yao Ya_Gwener Gwe Gw_Sadorn Sad Sa'.split(
'_'
),
i;
'a-benn un nebeud segondennoù',
'prefix'
);
- assert.equal(moment(0).from(30000), "un nebeud segondennoù 'zo", 'suffix');
+ assert.equal(moment(0).from(30000), 'un nebeud segondennoù ʼzo', 'suffix');
});
test('now from now', function (assert) {
moment.locale('br');
assert.equal(
moment().fromNow(),
- "un nebeud segondennoù 'zo",
+ 'un nebeud segondennoù ʼzo',
'now from now should display as in the past'
);
});
);
assert.equal(
moment(a).add({ d: 1 }).calendar(),
- "Warc'hoazh da 12:00",
+ 'Warcʼhoazh da 12:00',
'tomorrow at the same time'
);
assert.equal(
moment(a).subtract({ d: 1 }).calendar(),
- "Dec'h da 12:00",
+ 'Decʼh da 12:00',
'yesterday at the same time'
);
});