From f90cd42c6eb2bd15e2b7f27c5b4522652b764bd1 Mon Sep 17 00:00:00 2001 From: Tim van der Horst Date: Thu, 22 Mar 2018 10:47:06 +1000 Subject: [PATCH 1/2] Added missing 'Saturday' string to locale-en --- src/locale-en.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/locale-en.js b/src/locale-en.js index a6805bd5c91..2cc1f28ae71 100644 --- a/src/locale-en.js +++ b/src/locale-en.js @@ -15,7 +15,7 @@ module.exports = { 'Click to enter Colorscale title': 'Click to enter Colourscale title' }, format: { - days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'], + days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'], shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], months: [ 'January', 'February', 'March', 'April', 'May', 'June', From c05c4afc304c9396d3488193aceed32c4ced1a59 Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Mon, 16 Apr 2018 15:16:44 -0400 Subject: [PATCH 2/2] test that the default locale is complete in date/time components --- test/jasmine/tests/localize_test.js | 86 +++++++++++++++++++++++++++++ 1 file changed, 86 insertions(+) diff --git a/test/jasmine/tests/localize_test.js b/test/jasmine/tests/localize_test.js index 440979e4c05..ec37e586f75 100644 --- a/test/jasmine/tests/localize_test.js +++ b/test/jasmine/tests/localize_test.js @@ -62,6 +62,92 @@ describe('localization', function() { .then(done); }); + function getLabels(axLetter) { + var out = []; + var s = d3.select(gd).selectAll('.' + axLetter + 'tick'); + s.each(function() { out.push(d3.select(this).text()); }); + return out; + } + + it('contains all short and long day and month names in the default locale', function(done) { + Plotly.newPlot(gd, [{ + x: ['2000-01-01', '2000-12-01'], + y: ['2000-01-02', '2000-01-08'], + mode: 'markers' + }], { + xaxis: {dtick: 'M1', tickformat: '%b'}, + yaxis: {dtick: 1000 * 3600 * 24, tickformat: '%a'} + }) + .then(function() { + expect(getLabels('x')).toEqual([ + 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', + 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' + ]); + expect(getLabels('y')).toEqual([ + 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' + ]); + + return Plotly.relayout(gd, { + 'xaxis.tickformat': '%B', + 'yaxis.tickformat': '%A' + }); + }) + .then(function() { + expect(getLabels('x')).toEqual([ + 'January', 'February', 'March', 'April', 'May', 'June', + 'July', 'August', 'September', 'October', 'November', 'December' + ]); + expect(getLabels('y')).toEqual([ + 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' + ]); + }) + .catch(failTest) + .then(done); + }); + + it('contains correct periods, dateTime, date, and time fields in the default locale', function(done) { + Plotly.newPlot(gd, [{ + x: ['2000-01-01 11:00', '2000-01-01 13:00'], + y: ['2000-01-01 23:00', '2000-01-02 01:00'], + mode: 'markers' + }], { + xaxis: {dtick: 1000 * 3600, tickformat: '%-I %p'}, + yaxis: {dtick: 1000 * 3600, tickformat: '%-I %p'} + }) + .then(function() { + expect(getLabels('x')).toEqual(['11 AM', '12 PM', '1 PM']); + expect(getLabels('y')).toEqual(['11 PM', '12 AM', '1 AM']); + + return Plotly.relayout(gd, { + 'xaxis.tickformat': '%c', + 'yaxis.tickformat': '%x~%X' + }); + }) + .then(function() { + expect(getLabels('x')).toEqual([ + 'Sat Jan 1 11:00:00 2000', 'Sat Jan 1 12:00:00 2000', 'Sat Jan 1 13:00:00 2000' + ]); + expect(getLabels('y')).toEqual([ + // here we're using British English, so day/month/year + '01/01/2000~23:00:00', '02/01/2000~00:00:00', '02/01/2000~01:00:00' + ]); + + Plotly.register(require('@src/locale-en-us')); + return Plotly.redraw(gd); + }) + .then(function() { + expect(getLabels('x')).toEqual([ + 'Sat Jan 1 11:00:00 2000', 'Sat Jan 1 12:00:00 2000', 'Sat Jan 1 13:00:00 2000' + ]); + expect(getLabels('y')).toEqual([ + // now with the US version + '01/01/2000~23:00:00', '01/02/2000~00:00:00', '01/02/2000~01:00:00' + ]); + }) + .catch(failTest) + .then(done); + }); + it('uses the region first, then language (registered case)', function(done) { plot('eg-AU') .then(function() {