From 7e7df78e51ebcd1fb0ebb4c9db6e1498fdff84f2 Mon Sep 17 00:00:00 2001 From: Denis Hernandez Date: Wed, 18 Sep 2019 16:07:39 +0100 Subject: [PATCH 1/5] Override relative times for Arabic, Brasil and Mundo --- .../utilities/psammead-locales/CHANGELOG.md | 1 + .../utilities/psammead-locales/moment/ar.js | 7 + .../psammead-locales/moment/ar.test.js | 485 +++++++++++++---- .../utilities/psammead-locales/moment/es.js | 12 + .../psammead-locales/moment/es.test.js | 492 ++++++++++++++++++ .../psammead-locales/moment/index.stories.jsx | 2 + .../psammead-locales/moment/pt-br.js | 7 + .../psammead-locales/moment/pt-br.test.js | 14 +- .../psammead-locales/package-lock.json | 2 +- .../utilities/psammead-locales/package.json | 2 +- 10 files changed, 907 insertions(+), 117 deletions(-) create mode 100644 packages/utilities/psammead-locales/moment/es.js create mode 100644 packages/utilities/psammead-locales/moment/es.test.js diff --git a/packages/utilities/psammead-locales/CHANGELOG.md b/packages/utilities/psammead-locales/CHANGELOG.md index c913d3fdb8..4ead07907a 100644 --- a/packages/utilities/psammead-locales/CHANGELOG.md +++ b/packages/utilities/psammead-locales/CHANGELOG.md @@ -3,6 +3,7 @@ | Version | Description | | ------- | ----------- | +| 2.10.0 | [PR#XXX](https://github.com/bbc/psammead/pull/XXX) Add `es` (Spanish) locale and update `ar` (Arabic) and `pt-br` (Brasil) locales | | 2.9.0 | [PR#2141](https://github.com/bbc/psammead/pull/2141) Add `ne` (Nepali) locale | | 2.8.0 | [PR#2149](https://github.com/bbc/psammead/pull/2149) Add `gu` (Gujarati) locale | | 2.7.0 | [PR#2114](https://github.com/bbc/psammead/pull/2114) Add some overrides for Brasil, Russian, Serbian and Ukrainian | diff --git a/packages/utilities/psammead-locales/moment/ar.js b/packages/utilities/psammead-locales/moment/ar.js index 5d38496ec3..d44f51137f 100644 --- a/packages/utilities/psammead-locales/moment/ar.js +++ b/packages/utilities/psammead-locales/moment/ar.js @@ -27,4 +27,11 @@ moment.updateLocale('ar', { // Suppress conversion to Eastern numerals from base `ar` locale but retain use of Arabic comma return string.replace(/,/g, '،'); }, + relativeTime: { + past: '%s', + m: 'قبل دقيقة واحدة', + mm: 'قبل %d دقيقة', + h: 'قبل ساعة واحدة', + hh: 'قبل %d ساع', + }, }); diff --git a/packages/utilities/psammead-locales/moment/ar.test.js b/packages/utilities/psammead-locales/moment/ar.test.js index 2fb63ef309..9994f6adb1 100644 --- a/packages/utilities/psammead-locales/moment/ar.test.js +++ b/packages/utilities/psammead-locales/moment/ar.test.js @@ -27,10 +27,19 @@ const dualMonthNames = [ 'ديسمبر/ كانون الأول', ]; -test('parse', function () { - var tests = dualMonthNames, i; +test('parse', function() { + var tests = dualMonthNames, + i; function equalTest(input, mmm, i) { - assert.equal(moment(input, mmm).month(), i, input + ' should be month ' + (i + 1) + ' instead is month ' + moment(input, mmm).month()); + assert.equal( + moment(input, mmm).month(), + i, + input + + ' should be month ' + + (i + 1) + + ' instead is month ' + + moment(input, mmm).month() + ); } for (i = 0; i < 12; i++) { equalTest(tests[i], 'MMM', i); @@ -44,33 +53,36 @@ test('parse', function () { } }); -test('format', function () { +test('format', function() { var a = [ - ['dddd, MMMM Do YYYY, h:mm:ss a', 'الأحد، فبراير/ شباط 14 2010، 3:25:50 م'], - ['ddd, hA', 'أحد، 3م'], - ['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', 'م م'], - ['[the] DDDo [day of the year]', 'the 45 day of the year'], - ['LT', '15:25'], - ['LTS', '15:25:50'], - ['L', '14/\u200f2/\u200f2010'], - ['LL', '14 فبراير/ شباط 2010'], - ['LLL', '14 فبراير/ شباط 2010 15:25'], - ['LLLL', 'الأحد 14 فبراير/ شباط 2010 15:25'], - ['l', '14/\u200f2/\u200f2010'], - ['ll', '14 فبراير/ شباط 2010'], - ['lll', '14 فبراير/ شباط 2010 15:25'], - ['llll', 'أحد 14 فبراير/ شباط 2010 15:25'] - ], + [ + 'dddd, MMMM Do YYYY, h:mm:ss a', + 'الأحد، فبراير/ شباط 14 2010، 3:25:50 م', + ], + ['ddd, hA', 'أحد، 3م'], + ['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', 'م م'], + ['[the] DDDo [day of the year]', 'the 45 day of the year'], + ['LT', '15:25'], + ['LTS', '15:25:50'], + ['L', '14/\u200f2/\u200f2010'], + ['LL', '14 فبراير/ شباط 2010'], + ['LLL', '14 فبراير/ شباط 2010 15:25'], + ['LLLL', 'الأحد 14 فبراير/ شباط 2010 15:25'], + ['l', '14/\u200f2/\u200f2010'], + ['ll', '14 فبراير/ شباط 2010'], + ['lll', '14 فبراير/ شباط 2010 15:25'], + ['llll', 'أحد 14 فبراير/ شباط 2010 15:25'], + ], b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), i; for (i = 0; i < a.length; i++) { @@ -78,7 +90,7 @@ test('format', function () { } }); -test('format ordinal', function () { +test('format ordinal', function() { assert.equal(moment([2011, 0, 1]).format('DDDo'), '1', '1'); assert.equal(moment([2011, 0, 2]).format('DDDo'), '2', '2'); assert.equal(moment([2011, 0, 3]).format('DDDo'), '3', '3'); @@ -115,103 +127,312 @@ test('format ordinal', function () { assert.equal(moment([2011, 0, 31]).format('DDDo'), '31', '31'); }); -test('format month', function () { - var expected = dualMonthNames, i; +test('format month', function() { + var expected = dualMonthNames, + i; for (i = 0; i < expected.length; i++) { assert.equal(moment([2011, i, 1]).format('MMMM'), expected[i], expected[i]); assert.equal(moment([2011, i, 1]).format('MMM'), expected[i], expected[i]); } }); -test('format week', function () { - var expected = 'الأحد أحد ح_الإثنين إثنين ن_الثلاثاء ثلاثاء ث_الأربعاء أربعاء ر_الخميس خميس خ_الجمعة جمعة ج_السبت سبت س'.split('_'), i; +test('format week', function() { + var expected = 'الأحد أحد ح_الإثنين إثنين ن_الثلاثاء ثلاثاء ث_الأربعاء أربعاء ر_الخميس خميس خ_الجمعة جمعة ج_السبت سبت س'.split( + '_' + ), + i; for (i = 0; i < expected.length; i++) { - assert.equal(moment([2011, 0, 2 + i]).format('dddd ddd dd'), expected[i], expected[i]); + assert.equal( + moment([2011, 0, 2 + i]).format('dddd ddd dd'), + expected[i], + expected[i] + ); } }); -test('from', function () { +test('from', function() { var start = moment([2007, 1, 28]); - assert.equal(start.from(moment([2007, 1, 28]).add({ s: 44 }), true), '44 ثانية', '44 seconds = a few seconds'); - assert.equal(start.from(moment([2007, 1, 28]).add({ s: 45 }), true), 'دقيقة واحدة', '45 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({ s: 89 }), true), 'دقيقة واحدة', '89 seconds = a minute'); - assert.equal(start.from(moment([2007, 1, 28]).add({ s: 90 }), true), 'دقيقتان', '90 seconds = 2 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({ m: 44 }), true), '44 دقيقة', '44 minutes = 44 minutes'); - assert.equal(start.from(moment([2007, 1, 28]).add({ m: 45 }), true), 'ساعة واحدة', '45 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({ m: 89 }), true), 'ساعة واحدة', '89 minutes = an hour'); - assert.equal(start.from(moment([2007, 1, 28]).add({ m: 90 }), true), 'ساعتان', '90 minutes = 2 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({ h: 5 }), true), '5 ساعات', '5 hours = 5 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({ h: 21 }), true), '21 ساعة', '21 hours = 21 hours'); - assert.equal(start.from(moment([2007, 1, 28]).add({ h: 22 }), true), 'يوم واحد', '22 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({ h: 35 }), true), 'يوم واحد', '35 hours = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({ h: 36 }), true), 'يومان', '36 hours = 2 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({ d: 1 }), true), 'يوم واحد', '1 day = a day'); - assert.equal(start.from(moment([2007, 1, 28]).add({ d: 5 }), true), '5 أيام', '5 days = 5 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({ d: 25 }), true), '25 يومًا', '25 days = 25 days'); - assert.equal(start.from(moment([2007, 1, 28]).add({ d: 26 }), true), 'شهر واحد', '26 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({ d: 30 }), true), 'شهر واحد', '30 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({ d: 43 }), true), 'شهر واحد', '43 days = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({ d: 46 }), true), 'شهران', '46 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({ d: 74 }), true), 'شهران', '75 days = 2 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({ d: 76 }), true), '3 أشهر', '76 days = 3 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({ M: 1 }), true), 'شهر واحد', '1 month = a month'); - assert.equal(start.from(moment([2007, 1, 28]).add({ M: 5 }), true), '5 أشهر', '5 months = 5 months'); - assert.equal(start.from(moment([2007, 1, 28]).add({ d: 345 }), true), 'عام واحد', '345 days = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({ d: 548 }), true), 'عامان', '548 days = 2 years'); - assert.equal(start.from(moment([2007, 1, 28]).add({ y: 1 }), true), 'عام واحد', '1 year = a year'); - assert.equal(start.from(moment([2007, 1, 28]).add({ y: 5 }), true), '5 أعوام', '5 years = 5 years'); + assert.equal( + start.from(moment([2007, 1, 28]).add({ s: 44 }), true), + '44 ثانية', + '44 seconds = a few seconds' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ s: 45 }), true), + 'قبل دقيقة واحدة', + '45 seconds = a minute' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ s: 89 }), true), + 'قبل دقيقة واحدة', + '89 seconds = a minute' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ s: 90 }), true), + 'قبل 2 دقيقة', + '90 seconds = 2 minutes' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ m: 44 }), true), + 'قبل 44 دقيقة', + '44 minutes = 44 minutes' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ m: 45 }), true), + 'قبل ساعة واحدة', + '45 minutes = an hour' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ m: 89 }), true), + 'قبل ساعة واحدة', + '89 minutes = an hour' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ m: 90 }), true), + 'قبل 2 ساع', + '90 minutes = 2 hours' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ h: 5 }), true), + 'قبل 5 ساع', + '5 hours = 5 hours' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ h: 21 }), true), + 'قبل 21 ساع', + '21 hours = 21 hours' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ h: 22 }), true), + 'يوم واحد', + '22 hours = a day' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ h: 35 }), true), + 'يوم واحد', + '35 hours = a day' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ h: 36 }), true), + 'يومان', + '36 hours = 2 days' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 1 }), true), + 'يوم واحد', + '1 day = a day' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 5 }), true), + '5 أيام', + '5 days = 5 days' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 25 }), true), + '25 يومًا', + '25 days = 25 days' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 26 }), true), + 'شهر واحد', + '26 days = a month' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 30 }), true), + 'شهر واحد', + '30 days = a month' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 43 }), true), + 'شهر واحد', + '43 days = a month' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 46 }), true), + 'شهران', + '46 days = 2 months' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 74 }), true), + 'شهران', + '75 days = 2 months' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 76 }), true), + '3 أشهر', + '76 days = 3 months' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ M: 1 }), true), + 'شهر واحد', + '1 month = a month' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ M: 5 }), true), + '5 أشهر', + '5 months = 5 months' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 345 }), true), + 'عام واحد', + '345 days = a year' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 548 }), true), + 'عامان', + '548 days = 2 years' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ y: 1 }), true), + 'عام واحد', + '1 year = a year' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ y: 5 }), true), + '5 أعوام', + '5 years = 5 years' + ); }); -test('suffix', function () { +test('suffix', function() { assert.equal(moment(30000).from(0), 'بعد 30 ثانية', 'prefix'); - assert.equal(moment(0).from(30000), 'منذ 30 ثانية', 'suffix'); + assert.equal(moment(0).from(30000), '30 ثانية', 'suffix'); }); -test('now from now', function () { - assert.equal(moment().fromNow(), 'منذ ثانية واحدة', 'now from now should display as in the past'); +test('now from now', function() { + assert.equal( + moment().fromNow(), + 'ثانية واحدة', + 'now from now should display as in the past' + ); }); -test('fromNow', function () { - assert.equal(moment().add({ s: 30 }).fromNow(), 'بعد 30 ثانية', 'in a few seconds'); - assert.equal(moment().add({ d: 5 }).fromNow(), 'بعد 5 أيام', 'in 5 days'); +test('fromNow', function() { + assert.equal( + moment() + .add({ s: 30 }) + .fromNow(), + 'بعد 30 ثانية', + 'in a few seconds' + ); + assert.equal( + moment() + .add({ d: 5 }) + .fromNow(), + 'بعد 5 أيام', + 'in 5 days' + ); }); -test('calendar day', function () { - var a = moment().hours(12).minutes(0).seconds(0); +test('calendar day', function() { + var a = moment() + .hours(12) + .minutes(0) + .seconds(0); - assert.equal(moment(a).calendar(), 'اليوم عند الساعة 12:00', 'today at the same time'); - assert.equal(moment(a).add({ m: 25 }).calendar(), 'اليوم عند الساعة 12:25', 'Now plus 25 min'); - assert.equal(moment(a).add({ h: 1 }).calendar(), 'اليوم عند الساعة 13:00', 'Now plus 1 hour'); - assert.equal(moment(a).add({ d: 1 }).calendar(), 'غدًا عند الساعة 12:00', 'tomorrow at the same time'); - assert.equal(moment(a).subtract({ h: 1 }).calendar(), 'اليوم عند الساعة 11:00', 'Now minus 1 hour'); - assert.equal(moment(a).subtract({ d: 1 }).calendar(), 'أمس عند الساعة 12:00', 'yesterday at the same time'); + assert.equal( + moment(a).calendar(), + 'اليوم عند الساعة 12:00', + 'today at the same time' + ); + assert.equal( + moment(a) + .add({ m: 25 }) + .calendar(), + 'اليوم عند الساعة 12:25', + 'Now plus 25 min' + ); + assert.equal( + moment(a) + .add({ h: 1 }) + .calendar(), + 'اليوم عند الساعة 13:00', + 'Now plus 1 hour' + ); + assert.equal( + moment(a) + .add({ d: 1 }) + .calendar(), + 'غدًا عند الساعة 12:00', + 'tomorrow at the same time' + ); + assert.equal( + moment(a) + .subtract({ h: 1 }) + .calendar(), + 'اليوم عند الساعة 11:00', + 'Now minus 1 hour' + ); + assert.equal( + moment(a) + .subtract({ d: 1 }) + .calendar(), + 'أمس عند الساعة 12:00', + 'yesterday at the same time' + ); }); -test('calendar next week', function () { +test('calendar next week', function() { var i, m; for (i = 2; i < 7; i++) { m = moment().add({ d: i }); - assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today + ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today + ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today + ' + i + ' days end of day'); + assert.equal( + m.calendar(), + m.format('dddd [عند الساعة] LT'), + 'Today + ' + i + ' days current time' + ); + m.hours(0) + .minutes(0) + .seconds(0) + .milliseconds(0); + assert.equal( + m.calendar(), + m.format('dddd [عند الساعة] LT'), + 'Today + ' + i + ' days beginning of day' + ); + m.hours(23) + .minutes(59) + .seconds(59) + .milliseconds(999); + assert.equal( + m.calendar(), + m.format('dddd [عند الساعة] LT'), + 'Today + ' + i + ' days end of day' + ); } }); -test('calendar last week', function () { +test('calendar last week', function() { var i, m; for (i = 2; i < 7; i++) { m = moment().subtract({ d: i }); - assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today - ' + i + ' days current time'); - m.hours(0).minutes(0).seconds(0).milliseconds(0); - assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today - ' + i + ' days beginning of day'); - m.hours(23).minutes(59).seconds(59).milliseconds(999); - assert.equal(m.calendar(), m.format('dddd [عند الساعة] LT'), 'Today - ' + i + ' days end of day'); + assert.equal( + m.calendar(), + m.format('dddd [عند الساعة] LT'), + 'Today - ' + i + ' days current time' + ); + m.hours(0) + .minutes(0) + .seconds(0) + .milliseconds(0); + assert.equal( + m.calendar(), + m.format('dddd [عند الساعة] LT'), + 'Today - ' + i + ' days beginning of day' + ); + m.hours(23) + .minutes(59) + .seconds(59) + .milliseconds(999); + assert.equal( + m.calendar(), + m.format('dddd [عند الساعة] LT'), + 'Today - ' + i + ' days end of day' + ); } }); -test('calendar all else', function () { +test('calendar all else', function() { var weeksAgo = moment().subtract({ w: 1 }), weeksFromNow = moment().add({ w: 1 }); @@ -225,37 +446,85 @@ test('calendar all else', function () { assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); }); -test('weeks year starting wednesday custom', function () { - assert.equal(moment('2003 1 6', 'gggg w d').format('YYYY-MM-DD'), '2002-12-28', 'Week 1 of 2003 should be Dec 28 2002'); - assert.equal(moment('2003 1 0', 'gggg w e').format('YYYY-MM-DD'), '2002-12-28', 'Week 1 of 2003 should be Dec 28 2002'); - assert.equal(moment('2003 1 6', 'gggg w d').format('gggg w d'), '2003 1 6', 'Saturday of week 1 of 2003 parsed should be formatted as 2003 1 6'); - assert.equal(moment('2003 1 0', 'gggg w e').format('gggg w e'), '2003 1 0', '1st day of week 1 of 2003 parsed should be formatted as 2003 1 0'); +test('weeks year starting wednesday custom', function() { + assert.equal( + moment('2003 1 6', 'gggg w d').format('YYYY-MM-DD'), + '2002-12-28', + 'Week 1 of 2003 should be Dec 28 2002' + ); + assert.equal( + moment('2003 1 0', 'gggg w e').format('YYYY-MM-DD'), + '2002-12-28', + 'Week 1 of 2003 should be Dec 28 2002' + ); + assert.equal( + moment('2003 1 6', 'gggg w d').format('gggg w d'), + '2003 1 6', + 'Saturday of week 1 of 2003 parsed should be formatted as 2003 1 6' + ); + assert.equal( + moment('2003 1 0', 'gggg w e').format('gggg w e'), + '2003 1 0', + '1st day of week 1 of 2003 parsed should be formatted as 2003 1 0' + ); }); -test('weeks year starting sunday formatted', function () { - assert.equal(moment([2011, 11, 31]).format('w ww wo'), '1 01 1', 'Dec 31 2011 should be week 1'); - assert.equal(moment([2012, 0, 6]).format('w ww wo'), '1 01 1', 'Jan 6 2012 should be week 1'); - assert.equal(moment([2012, 0, 7]).format('w ww wo'), '2 02 2', 'Jan 7 2012 should be week 2'); - assert.equal(moment([2012, 0, 13]).format('w ww wo'), '2 02 2', 'Jan 13 2012 should be week 2'); - assert.equal(moment([2012, 0, 14]).format('w ww wo'), '3 03 3', 'Jan 14 2012 should be week 3'); +test('weeks year starting sunday formatted', function() { + assert.equal( + moment([2011, 11, 31]).format('w ww wo'), + '1 01 1', + 'Dec 31 2011 should be week 1' + ); + assert.equal( + moment([2012, 0, 6]).format('w ww wo'), + '1 01 1', + 'Jan 6 2012 should be week 1' + ); + assert.equal( + moment([2012, 0, 7]).format('w ww wo'), + '2 02 2', + 'Jan 7 2012 should be week 2' + ); + assert.equal( + moment([2012, 0, 13]).format('w ww wo'), + '2 02 2', + 'Jan 13 2012 should be week 2' + ); + assert.equal( + moment([2012, 0, 14]).format('w ww wo'), + '3 03 3', + 'Jan 14 2012 should be week 3' + ); }); -test('no leading zeros in long date formats', function () { +test('no leading zeros in long date formats', function() { var i, j, longDateStr, shortDateStr; for (i = 1; i <= 9; ++i) { for (j = 1; j <= 9; ++j) { longDateStr = moment([2014, i, j]).format('L'); shortDateStr = moment([2014, i, j]).format('l'); - assert.equal(longDateStr, shortDateStr, 'should not have leading zeros in month or day'); + assert.equal( + longDateStr, + shortDateStr, + 'should not have leading zeros in month or day' + ); } } }); // locale-specific -test('ar strict mode parsing works', function () { +test('ar strict mode parsing works', function() { var m, formattedDate; m = moment().locale('ar'); formattedDate = m.format('l'); - assert.equal(moment.utc(formattedDate, 'l', 'ar', false).isValid(), true, 'Non-strict parsing works'); - assert.equal(moment.utc(formattedDate, 'l', 'ar', true).isValid(), true, 'Strict parsing must work'); + assert.equal( + moment.utc(formattedDate, 'l', 'ar', false).isValid(), + true, + 'Non-strict parsing works' + ); + assert.equal( + moment.utc(formattedDate, 'l', 'ar', true).isValid(), + true, + 'Strict parsing must work' + ); }); diff --git a/packages/utilities/psammead-locales/moment/es.js b/packages/utilities/psammead-locales/moment/es.js new file mode 100644 index 0000000000..843a3a57d0 --- /dev/null +++ b/packages/utilities/psammead-locales/moment/es.js @@ -0,0 +1,12 @@ +var moment = require('moment'); +require('moment/locale/es'); + +moment.updateLocale('es', { + relativeTime: { + past: '%s', + m: '1 minuto', + mm: '%d minutos', + h: '1 hora', + hh: '%d horas', + }, +}); diff --git a/packages/utilities/psammead-locales/moment/es.test.js b/packages/utilities/psammead-locales/moment/es.test.js new file mode 100644 index 0000000000..197416af85 --- /dev/null +++ b/packages/utilities/psammead-locales/moment/es.test.js @@ -0,0 +1,492 @@ +import moment from 'moment'; +import './es'; + +moment.locale('es'); + +// This asset overrides the gunit assertion done in the moment codebase. +// Format and styling of this file has been keep consistent with the official moment tests. +// An example of these tests can be seen at https://github.com/moment/moment/blob/develop/src/test/locale/en-gb.js +const assert = { equal: (val1, val2) => expect(val1).toEqual(val2) }; + +test('parse', function() { + var tests = 'enero ene._febrero feb._marzo mar._abril abr._mayo may._junio jun._julio jul._agosto ago._septiembre sep._octubre oct._noviembre nov._diciembre dic.'.split( + '_' + ), + i; + function equalTest(input, mmm, i) { + assert.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('format', function() { + var a = [ + [ + 'dddd, MMMM Do YYYY, h:mm:ss a', + 'domingo, febrero 14º 2010, 3:25:50 pm', + ], + ['ddd, hA', 'dom., 3PM'], + ['M Mo MM MMMM MMM', '2 2º 02 febrero feb.'], + ['YYYY YY', '2010 10'], + ['D Do DD', '14 14º 14'], + ['d do dddd ddd dd', '0 0º domingo dom. do'], + ['DDD DDDo DDDD', '45 45º 045'], + ['w wo ww', '6 6º 06'], + ['YYYY-MMM-DD', '2010-feb-14'], + ['h hh', '3 03'], + ['H HH', '15 15'], + ['m mm', '25 25'], + ['s ss', '50 50'], + ['a A', 'pm PM'], + ['[the] DDDo [day of the year]', 'the 45º day of the year'], + ['LTS', '15:25:50'], + ['L', '14/02/2010'], + ['LL', '14 de febrero de 2010'], + ['LLL', '14 de febrero de 2010 15:25'], + ['LLLL', 'domingo, 14 de febrero de 2010 15:25'], + ['l', '14/2/2010'], + ['ll', '14 de feb. de 2010'], + ['lll', '14 de feb. de 2010 15:25'], + ['llll', 'dom., 14 de feb. de 2010 15:25'], + ], + b = moment(new Date(2010, 1, 14, 15, 25, 50, 125)), + i; + for (i = 0; i < a.length; i++) { + assert.equal(b.format(a[i][0]), a[i][1], a[i][0] + ' ---> ' + a[i][1]); + } +}); + +test('format ordinal', function() { + assert.equal(moment([2011, 0, 1]).format('DDDo'), '1º', '1º'); + assert.equal(moment([2011, 0, 2]).format('DDDo'), '2º', '2º'); + assert.equal(moment([2011, 0, 3]).format('DDDo'), '3º', '3º'); + assert.equal(moment([2011, 0, 4]).format('DDDo'), '4º', '4º'); + assert.equal(moment([2011, 0, 5]).format('DDDo'), '5º', '5º'); + assert.equal(moment([2011, 0, 6]).format('DDDo'), '6º', '6º'); + assert.equal(moment([2011, 0, 7]).format('DDDo'), '7º', '7º'); + assert.equal(moment([2011, 0, 8]).format('DDDo'), '8º', '8º'); + assert.equal(moment([2011, 0, 9]).format('DDDo'), '9º', '9º'); + assert.equal(moment([2011, 0, 10]).format('DDDo'), '10º', '10º'); + + assert.equal(moment([2011, 0, 11]).format('DDDo'), '11º', '11º'); + assert.equal(moment([2011, 0, 12]).format('DDDo'), '12º', '12º'); + assert.equal(moment([2011, 0, 13]).format('DDDo'), '13º', '13º'); + assert.equal(moment([2011, 0, 14]).format('DDDo'), '14º', '14º'); + assert.equal(moment([2011, 0, 15]).format('DDDo'), '15º', '15º'); + assert.equal(moment([2011, 0, 16]).format('DDDo'), '16º', '16º'); + assert.equal(moment([2011, 0, 17]).format('DDDo'), '17º', '17º'); + assert.equal(moment([2011, 0, 18]).format('DDDo'), '18º', '18º'); + assert.equal(moment([2011, 0, 19]).format('DDDo'), '19º', '19º'); + assert.equal(moment([2011, 0, 20]).format('DDDo'), '20º', '20º'); + + assert.equal(moment([2011, 0, 21]).format('DDDo'), '21º', '21º'); + assert.equal(moment([2011, 0, 22]).format('DDDo'), '22º', '22º'); + assert.equal(moment([2011, 0, 23]).format('DDDo'), '23º', '23º'); + assert.equal(moment([2011, 0, 24]).format('DDDo'), '24º', '24º'); + assert.equal(moment([2011, 0, 25]).format('DDDo'), '25º', '25º'); + assert.equal(moment([2011, 0, 26]).format('DDDo'), '26º', '26º'); + assert.equal(moment([2011, 0, 27]).format('DDDo'), '27º', '27º'); + assert.equal(moment([2011, 0, 28]).format('DDDo'), '28º', '28º'); + assert.equal(moment([2011, 0, 29]).format('DDDo'), '29º', '29º'); + assert.equal(moment([2011, 0, 30]).format('DDDo'), '30º', '30º'); + + assert.equal(moment([2011, 0, 31]).format('DDDo'), '31º', '31º'); +}); + +test('format month', function() { + var expected = 'enero ene._febrero feb._marzo mar._abril abr._mayo may._junio jun._julio jul._agosto ago._septiembre sep._octubre oct._noviembre nov._diciembre dic.'.split( + '_' + ), + i; + for (i = 0; i < expected.length; i++) { + assert.equal( + moment([2011, i, 1]).format('MMMM MMM'), + expected[i], + expected[i] + ); + } +}); + +test('format week', function() { + var expected = 'domingo dom. do_lunes lun. lu_martes mar. ma_miércoles mié. mi_jueves jue. ju_viernes vie. vi_sábado sáb. sá'.split( + '_' + ), + i; + for (i = 0; i < expected.length; i++) { + assert.equal( + moment([2011, 0, 2 + i]).format('dddd ddd dd'), + expected[i], + expected[i] + ); + } +}); + +test('from', function() { + var start = moment([2007, 1, 28]); + assert.equal( + start.from(moment([2007, 1, 28]).add({ s: 44 }), true), + 'unos segundos', + '44 seconds = a few seconds' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ s: 45 }), true), + '1 minuto', + '45 seconds = a minute' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ s: 89 }), true), + '1 minuto', + '89 seconds = a minute' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ s: 90 }), true), + '2 minutos', + '90 seconds = 2 minutes' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ m: 44 }), true), + '44 minutos', + '44 minutes = 44 minutes' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ m: 45 }), true), + '1 hora', + '45 minutes = an hour' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ m: 89 }), true), + '1 hora', + '89 minutes = an hour' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ m: 90 }), true), + '2 horas', + '90 minutes = 2 hours' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ h: 5 }), true), + '5 horas', + '5 hours = 5 hours' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ h: 21 }), true), + '21 horas', + '21 hours = 21 hours' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ h: 22 }), true), + 'un día', + '22 hours = a day' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ h: 35 }), true), + 'un día', + '35 hours = a day' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ h: 36 }), true), + '2 días', + '36 hours = 2 days' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 1 }), true), + 'un día', + '1 day = a day' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 5 }), true), + '5 días', + '5 days = 5 days' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 25 }), true), + '25 días', + '25 days = 25 days' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 26 }), true), + 'un mes', + '26 days = a month' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 30 }), true), + 'un mes', + '30 days = a month' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 43 }), true), + 'un mes', + '43 days = a month' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 46 }), true), + '2 meses', + '46 days = 2 months' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 74 }), true), + '2 meses', + '75 days = 2 months' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 76 }), true), + '3 meses', + '76 days = 3 months' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ M: 1 }), true), + 'un mes', + '1 month = a month' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ M: 5 }), true), + '5 meses', + '5 months = 5 months' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 345 }), true), + 'un año', + '345 days = a year' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ d: 548 }), true), + '2 años', + '548 days = 2 years' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ y: 1 }), true), + 'un año', + '1 year = a year' + ); + assert.equal( + start.from(moment([2007, 1, 28]).add({ y: 5 }), true), + '5 años', + '5 years = 5 years' + ); +}); + +test('suffix', function() { + assert.equal(moment(30000).from(0), 'en unos segundos', 'prefix'); + assert.equal(moment(0).from(30000), 'unos segundos', 'suffix'); +}); + +test('now from now', function() { + assert.equal( + moment().fromNow(), + 'unos segundos', + 'now from now should display as in the past' + ); +}); + +test('fromNow', function() { + assert.equal( + moment() + .add({ s: 30 }) + .fromNow(), + 'en unos segundos', + 'en unos segundos' + ); + assert.equal( + moment() + .add({ d: 5 }) + .fromNow(), + 'en 5 días', + 'en 5 días' + ); +}); + +test('calendar day', function() { + var a = moment() + .hours(12) + .minutes(0) + .seconds(0); + + assert.equal( + moment(a).calendar(), + 'hoy a las 12:00', + 'today at the same time' + ); + assert.equal( + moment(a) + .add({ m: 25 }) + .calendar(), + 'hoy a las 12:25', + 'Now plus 25 min' + ); + assert.equal( + moment(a) + .add({ h: 1 }) + .calendar(), + 'hoy a las 13:00', + 'Now plus 1 hour' + ); + assert.equal( + moment(a) + .add({ d: 1 }) + .calendar(), + 'mañana a las 12:00', + 'tomorrow at the same time' + ); + assert.equal( + moment(a) + .add({ d: 1, h: -1 }) + .calendar(), + 'mañana a las 11:00', + 'tomorrow minus 1 hour' + ); + assert.equal( + moment(a) + .subtract({ h: 1 }) + .calendar(), + 'hoy a las 11:00', + 'Now minus 1 hour' + ); + assert.equal( + moment(a) + .subtract({ d: 1 }) + .calendar(), + 'ayer a las 12:00', + 'yesterday at the same time' + ); +}); + +test('calendar next week', function() { + var i, m; + + for (i = 2; i < 7; i++) { + m = moment().add({ d: i }); + assert.equal( + m.calendar(), + m.format('dddd [a la' + (m.hours() !== 1 ? 's' : '') + '] LT'), + 'Today + ' + i + ' days current time' + ); + m.hours(0) + .minutes(0) + .seconds(0) + .milliseconds(0); + assert.equal( + m.calendar(), + m.format('dddd [a la' + (m.hours() !== 1 ? 's' : '') + '] LT'), + 'Today + ' + i + ' days beginning of day' + ); + m.hours(23) + .minutes(59) + .seconds(59) + .milliseconds(999); + assert.equal( + m.calendar(), + m.format('dddd [a la' + (m.hours() !== 1 ? 's' : '') + '] LT'), + 'Today + ' + i + ' days end of day' + ); + } +}); + +test('calendar last week', function() { + var i, m; + + for (i = 2; i < 7; i++) { + m = moment().subtract({ d: i }); + assert.equal( + m.calendar(), + m.format( + '[el] dddd [pasado a la' + (m.hours() !== 1 ? 's' : '') + '] LT' + ), + 'Today - ' + i + ' days current time' + ); + m.hours(0) + .minutes(0) + .seconds(0) + .milliseconds(0); + assert.equal( + m.calendar(), + m.format( + '[el] dddd [pasado a la' + (m.hours() !== 1 ? 's' : '') + '] LT' + ), + 'Today - ' + i + ' days beginning of day' + ); + m.hours(23) + .minutes(59) + .seconds(59) + .milliseconds(999); + assert.equal( + m.calendar(), + m.format( + '[el] dddd [pasado a la' + (m.hours() !== 1 ? 's' : '') + '] LT' + ), + 'Today - ' + i + ' days end of day' + ); + } +}); + +test('calendar all else', function() { + var weeksAgo = moment().subtract({ w: 1 }), + weeksFromNow = moment().add({ w: 1 }); + + assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '1 week ago'); + assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 1 week'); + + weeksAgo = moment().subtract({ w: 2 }); + weeksFromNow = moment().add({ w: 2 }); + + assert.equal(weeksAgo.calendar(), weeksAgo.format('L'), '2 weeks ago'); + assert.equal(weeksFromNow.calendar(), weeksFromNow.format('L'), 'in 2 weeks'); +}); + +test('weeks year starting sunday formatted', function() { + assert.equal( + moment([2012, 0, 1]).format('w ww wo'), + '52 52 52º', + 'Jan 1 2012 should be week 52' + ); + assert.equal( + moment([2012, 0, 2]).format('w ww wo'), + '1 01 1º', + 'Jan 2 2012 should be week 1' + ); + assert.equal( + moment([2012, 0, 8]).format('w ww wo'), + '1 01 1º', + 'Jan 8 2012 should be week 1' + ); + assert.equal( + moment([2012, 0, 9]).format('w ww wo'), + '2 02 2º', + 'Jan 9 2012 should be week 2' + ); + assert.equal( + moment([2012, 0, 15]).format('w ww wo'), + '2 02 2º', + 'Jan 15 2012 should be week 2' + ); +}); + +test('test short months proper', function() { + var str = '02-ago-2016'; + assert.equal( + moment(str, 'DD-MMM-YYYY').month(), + 7, + '02-ago-2016 month should be 7' + ); +}); + +test('translated invalid date', function() { + assert.equal( + moment('nonsense', 'DD-MMM-YYYY').format(), + 'Invalid date', + 'Invalid date should translate' + ); +}); diff --git a/packages/utilities/psammead-locales/moment/index.stories.jsx b/packages/utilities/psammead-locales/moment/index.stories.jsx index abae535d97..e772a5a039 100644 --- a/packages/utilities/psammead-locales/moment/index.stories.jsx +++ b/packages/utilities/psammead-locales/moment/index.stories.jsx @@ -11,6 +11,7 @@ import { import { GEL_FF_REITH_SANS } from '@bbc/gel-foundations/typography'; import notes from '../README.md'; import './ar'; +import './es'; import './fa'; import './hi'; import './ig'; @@ -36,6 +37,7 @@ const locales = [ { name: 'Hindi', locale: 'hi' }, { name: 'Igbo', locale: 'ig' }, { name: 'Marathi', locale: 'mr' }, + { name: 'Mundo', locale: 'es' }, { name: 'Nepali', locale: 'ne' }, { name: 'Pashto', locale: 'ps' }, { name: 'Persian', locale: 'fa' }, diff --git a/packages/utilities/psammead-locales/moment/pt-br.js b/packages/utilities/psammead-locales/moment/pt-br.js index 175a21507b..9a6d458710 100644 --- a/packages/utilities/psammead-locales/moment/pt-br.js +++ b/packages/utilities/psammead-locales/moment/pt-br.js @@ -7,4 +7,11 @@ moment.updateLocale('pt-br', { LLL: 'D MMMM YYYY [às] HH:mm', LLLL: 'dddd, D MMMM YYYY [às] HH:mm', }, + relativeTime: { + past: 'Há %s', + m: '1 minuto', + mm: '%d minutos', + h: '1 hora', + hh: '%d horas', + }, }); diff --git a/packages/utilities/psammead-locales/moment/pt-br.test.js b/packages/utilities/psammead-locales/moment/pt-br.test.js index 84650d0345..93fbc9553d 100644 --- a/packages/utilities/psammead-locales/moment/pt-br.test.js +++ b/packages/utilities/psammead-locales/moment/pt-br.test.js @@ -145,12 +145,12 @@ test('from', function() { ); assert.equal( start.from(moment([2007, 1, 28]).add({ s: 45 }), true), - 'um minuto', + '1 minuto', '45 seconds = a minute' ); assert.equal( start.from(moment([2007, 1, 28]).add({ s: 89 }), true), - 'um minuto', + '1 minuto', '89 seconds = a minute' ); assert.equal( @@ -165,12 +165,12 @@ test('from', function() { ); assert.equal( start.from(moment([2007, 1, 28]).add({ m: 45 }), true), - 'uma hora', + '1 hora', '45 minutes = an hour' ); assert.equal( start.from(moment([2007, 1, 28]).add({ m: 89 }), true), - 'uma hora', + '1 hora', '89 minutes = an hour' ); assert.equal( @@ -282,7 +282,7 @@ test('from', function() { test('suffix', function() { assert.equal(moment(30000).from(0), 'em poucos segundos', 'prefix'); - assert.equal(moment(0).from(30000), 'há poucos segundos', 'prefix'); + assert.equal(moment(0).from(30000), 'Há poucos segundos', 'prefix'); }); test('fromNow', function() { @@ -469,13 +469,13 @@ test('relative time threshold', function() { rts.subtract(3, 'seconds'); assert.equal( rts.fromNow(), - 'há poucos segundos', + 'Há poucos segundos', 'Below custom a few seconds to seconds threshold' ); rts.subtract(1, 'seconds'); assert.equal( rts.fromNow(), - 'há 4 segundos', + 'Há 4 segundos', 'Above custom a few seconds to seconds threshold' ); diff --git a/packages/utilities/psammead-locales/package-lock.json b/packages/utilities/psammead-locales/package-lock.json index 264446a36d..9b76f5ca53 100644 --- a/packages/utilities/psammead-locales/package-lock.json +++ b/packages/utilities/psammead-locales/package-lock.json @@ -1,6 +1,6 @@ { "name": "@bbc/psammead-locales", - "version": "2.9.0", + "version": "2.10.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/utilities/psammead-locales/package.json b/packages/utilities/psammead-locales/package.json index 02e1824485..17a9f36d46 100644 --- a/packages/utilities/psammead-locales/package.json +++ b/packages/utilities/psammead-locales/package.json @@ -1,6 +1,6 @@ { "name": "@bbc/psammead-locales", - "version": "2.9.0", + "version": "2.10.0", "description": "A collection of locale configs, used in BBC World Service sites", "repository": { "type": "git", From ae5aca953deafc8f7a000c9bccd98e623c0ab7f2 Mon Sep 17 00:00:00 2001 From: Denis Hernandez Date: Wed, 18 Sep 2019 16:12:13 +0100 Subject: [PATCH 2/5] Update PR number --- packages/utilities/psammead-locales/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/utilities/psammead-locales/CHANGELOG.md b/packages/utilities/psammead-locales/CHANGELOG.md index 4ead07907a..88fb2167cf 100644 --- a/packages/utilities/psammead-locales/CHANGELOG.md +++ b/packages/utilities/psammead-locales/CHANGELOG.md @@ -3,7 +3,7 @@ | Version | Description | | ------- | ----------- | -| 2.10.0 | [PR#XXX](https://github.com/bbc/psammead/pull/XXX) Add `es` (Spanish) locale and update `ar` (Arabic) and `pt-br` (Brasil) locales | +| 2.10.0 | [PR#2176](https://github.com/bbc/psammead/pull/2176) Add `es` (Spanish) locale and update `ar` (Arabic) and `pt-br` (Brasil) locales | | 2.9.0 | [PR#2141](https://github.com/bbc/psammead/pull/2141) Add `ne` (Nepali) locale | | 2.8.0 | [PR#2149](https://github.com/bbc/psammead/pull/2149) Add `gu` (Gujarati) locale | | 2.7.0 | [PR#2114](https://github.com/bbc/psammead/pull/2114) Add some overrides for Brasil, Russian, Serbian and Ukrainian | From 30182e2500490635d6bd66ff8a51512bc3eb46c0 Mon Sep 17 00:00:00 2001 From: Denis Hernandez Date: Thu, 19 Sep 2019 12:43:02 +0100 Subject: [PATCH 3/5] Update README with es locale --- packages/utilities/psammead-locales/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/utilities/psammead-locales/README.md b/packages/utilities/psammead-locales/README.md index 8a07c70553..132678bf75 100644 --- a/packages/utilities/psammead-locales/README.md +++ b/packages/utilities/psammead-locales/README.md @@ -15,6 +15,7 @@ The following [Moment.js](https://momentjs.com/) locales have been added as they The following locales have overrides to meet BBC World Service requirements where these differ from the upstream locale. Note that importing them will also cause the upstream locale to be loaded. - `/moment/ar` - locale override for Arabic +- `/moment/es` - locale override for Spanish (Mundo) - `/moment/fa` - locale override for Persian (Farsi) - `/moment/pt-br` - locale override for Brasil - `/moment/ru` - locale override for Russian From 54643cd31d348ff377722aa3434efacf6b473286 Mon Sep 17 00:00:00 2001 From: Denis Hernandez Date: Thu, 19 Sep 2019 12:45:26 +0100 Subject: [PATCH 4/5] Sort README moments by locale name --- packages/utilities/psammead-locales/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/utilities/psammead-locales/README.md b/packages/utilities/psammead-locales/README.md index 132678bf75..ec4f372f06 100644 --- a/packages/utilities/psammead-locales/README.md +++ b/packages/utilities/psammead-locales/README.md @@ -17,18 +17,18 @@ The following locales have overrides to meet BBC World Service requirements wher - `/moment/ar` - locale override for Arabic - `/moment/es` - locale override for Spanish (Mundo) - `/moment/fa` - locale override for Persian (Farsi) +- `/moment/gu` - locale override for Gujarati +- `/moment/hi` - locale override for Hindi +- `/moment/mr` - locale override for Marathi +- `/moment/ne` - locale override for Nepali +- `/moment/pa-in` - locale override for Punjabi - `/moment/pt-br` - locale override for Brasil - `/moment/ru` - locale override for Russian - `/moment/sr` - locale override for Serbian - `/moment/sr-cyrl` - locale override for Serbian Cyrillic +- `/moment/ta` - locale override for Tamil - `/moment/uk` - locale override for Ukrainian - `/moment/yo` - locale override for Yoruba -- `/moment/ta` - locale override for Tamil -- `/moment/mr` - locale override for Marathi -- `/moment/pa-in` - locale override for Punjabi -- `/moment/hi` - locale override for Hindi -- `/moment/gu` - locale override for Gujarati -- `/moment/ne` - locale override for Nepali ### Numerals From 513271035858162b3eb3eaf70c946c7ba4d95f56 Mon Sep 17 00:00:00 2001 From: Denis Hernandez Date: Thu, 19 Sep 2019 14:20:48 +0100 Subject: [PATCH 5/5] Add pass dir attribute to psammead locales stories --- .../psammead-locales/moment/index.stories.jsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/utilities/psammead-locales/moment/index.stories.jsx b/packages/utilities/psammead-locales/moment/index.stories.jsx index e772a5a039..31d27d03b1 100644 --- a/packages/utilities/psammead-locales/moment/index.stories.jsx +++ b/packages/utilities/psammead-locales/moment/index.stories.jsx @@ -32,15 +32,15 @@ import './yo'; const stories = storiesOf('Utilities|Psammead Locales', module); const locales = [ - { name: 'Arabic', locale: 'ar' }, + { name: 'Arabic', locale: 'ar', dir: 'rtl' }, { name: 'Brasil', locale: 'pt-br' }, { name: 'Hindi', locale: 'hi' }, { name: 'Igbo', locale: 'ig' }, { name: 'Marathi', locale: 'mr' }, { name: 'Mundo', locale: 'es' }, { name: 'Nepali', locale: 'ne' }, - { name: 'Pashto', locale: 'ps' }, - { name: 'Persian', locale: 'fa' }, + { name: 'Pashto', locale: 'ps', dir: 'rtl' }, + { name: 'Persian', locale: 'fa', dir: 'rtl' }, { name: 'Pidgin', locale: 'pcm' }, { name: 'Punjabi', locale: 'pa-in' }, { name: 'Russian', locale: 'ru' }, @@ -202,7 +202,7 @@ const Paragraph = styled.p` const issueHref = localeName => `https://github.com/bbc/psammead/issues/new?labels=bug&title=Moment+translation+correction+for+${localeName}&projects=bbc/20`; -locales.forEach(({ name, locale }) => { +locales.forEach(({ name, locale, dir }) => { stories.add( `Moment - ${name}(${locale})`, () => ( @@ -217,7 +217,7 @@ locales.forEach(({ name, locale }) => { /* eslint-disable react/no-array-index-key */ {func('en-gb')} - {func(locale)} + {func(locale)} ))}