i18n-js 3.2.3 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 93630052fa81543fb1ef783fbd8ca5da0720a993604566928fd6d3357e05f12f
4
- data.tar.gz: 13abd2f4852f98b6545115d91ca2de93a09d9b96d15b4426edb6168220f12271
3
+ metadata.gz: 0e499400b911829bf876432a25d3bbb1e5c55af10e5cedd2fdbf06a88145e8f3
4
+ data.tar.gz: '0893d97d2e483f17c8c9a3af79227e6808a01a35275e10fceadc3b8ad507f70d'
5
5
  SHA512:
6
- metadata.gz: 990e561696fd331a7c92a8a02b83844bc977c7661cc66489e4cbb53396394038cd8f08a29e1d2daa80e8c5192dcc5b37205f3cd8373737b932cced0c786bb798
7
- data.tar.gz: 15ed6cce61c45067c0c7977ae9e02bd82973490a1964a5dd9ef5bb45716cedd5f2453d4db2e508e3dd6deff22c8bd1e4f868d93826e3fde0d99b652d5c36c3d0
6
+ metadata.gz: 66cc8573871132c0af819c87ffb10bf0e918799da4cd77aa01fb2298c422e7c5ae3f92409ae55575215360abba759b65d7410e9e0c1077dd4d75594cd5c1196e
7
+ data.tar.gz: e4072b5b511a0b39b875dc03258926afc0cc5fe7f512054efcf05ebc9b8df67ada3c937cfe4ce9902dde6a61f87aed2240c971c24f990ae07c8b1309df5a15dc
@@ -18,6 +18,13 @@ This project adheres to [Semantic Versioning](http://semver.org/).
18
18
  - Nothing
19
19
 
20
20
 
21
+ ## [3.3.0] - 2019-06-06
22
+
23
+ ### Added
24
+
25
+ - Support for `%P`, `%Z`, and `%l` strftime formats to match Ruby strftime
26
+
27
+
21
28
  ## [3.2.3] - 2019-05-24
22
29
 
23
30
  ### Changed
@@ -393,7 +400,8 @@ And today is not April Fools' Day
393
400
 
394
401
 
395
402
 
396
- [Unreleased]: https://github.com/fnando/i18n-js/compare/v3.2.3...HEAD
403
+ [Unreleased]: https://github.com/fnando/i18n-js/compare/v3.3.0...HEAD
404
+ [3.3.0]: https://github.com/fnando/i18n-js/compare/v3.2.3...v3.3.0
397
405
  [3.2.3]: https://github.com/fnando/i18n-js/compare/v3.2.2...v3.2.3
398
406
  [3.2.2]: https://github.com/fnando/i18n-js/compare/v3.2.1...v3.2.2
399
407
  [3.2.1]: https://github.com/fnando/i18n-js/compare/v3.2.0...v3.2.1
data/README.md CHANGED
@@ -591,28 +591,30 @@ I18n.strftime(date, "%d/%m/%Y");
591
591
 
592
592
  The accepted formats for `I18n.strftime` are:
593
593
 
594
- %a - The abbreviated weekday name (Sun)
595
- %A - The full weekday name (Sunday)
596
- %b - The abbreviated month name (Jan)
597
- %B - The full month name (January)
598
- %d - Day of the month (01..31)
599
- %-d - Day of the month (1..31)
600
- %H - Hour of the day, 24-hour clock (00..23)
601
- %-H - Hour of the day, 24-hour clock (0..23)
602
- %I - Hour of the day, 12-hour clock (01..12)
603
- %-I - Hour of the day, 12-hour clock (1..12)
604
- %m - Month of the year (01..12)
605
- %-m - Month of the year (1..12)
606
- %M - Minute of the hour (00..59)
607
- %-M - Minute of the hour (0..59)
608
- %p - Meridian indicator (AM or PM)
609
- %S - Second of the minute (00..60)
610
- %-S - Second of the minute (0..60)
611
- %w - Day of the week (Sunday is 0, 0..6)
612
- %y - Year without a century (00..99)
613
- %-y - Year without a century (0..99)
614
- %Y - Year with century
615
- %z - Timezone offset (+0545)
594
+ %a - The abbreviated weekday name (Sun)
595
+ %A - The full weekday name (Sunday)
596
+ %b - The abbreviated month name (Jan)
597
+ %B - The full month name (January)
598
+ %c - The preferred local date and time representation
599
+ %d - Day of the month (01..31)
600
+ %-d - Day of the month (1..31)
601
+ %H - Hour of the day, 24-hour clock (00..23)
602
+ %-H - Hour of the day, 24-hour clock (0..23)
603
+ %I - Hour of the day, 12-hour clock (01..12)
604
+ %-I/%l - Hour of the day, 12-hour clock (1..12)
605
+ %m - Month of the year (01..12)
606
+ %-m - Month of the year (1..12)
607
+ %M - Minute of the hour (00..59)
608
+ %-M - Minute of the hour (0..59)
609
+ %p - Meridian indicator (AM or PM)
610
+ %P - Meridian indicator (am or pm)
611
+ %S - Second of the minute (00..60)
612
+ %-S - Second of the minute (0..60)
613
+ %w - Day of the week (Sunday is 0, 0..6)
614
+ %y - Year without a century (00..99)
615
+ %-y - Year without a century (0..99)
616
+ %Y - Year with century
617
+ %z/%Z - Timezone offset (+0545)
616
618
 
617
619
  Check out `spec/*.spec.js` files for more examples!
618
620
 
@@ -889,29 +889,30 @@
889
889
  //
890
890
  // The accepted formats are:
891
891
  //
892
- // %a - The abbreviated weekday name (Sun)
893
- // %A - The full weekday name (Sunday)
894
- // %b - The abbreviated month name (Jan)
895
- // %B - The full month name (January)
896
- // %c - The preferred local date and time representation
897
- // %d - Day of the month (01..31)
898
- // %-d - Day of the month (1..31)
899
- // %H - Hour of the day, 24-hour clock (00..23)
900
- // %-H - Hour of the day, 24-hour clock (0..23)
901
- // %I - Hour of the day, 12-hour clock (01..12)
902
- // %-I - Hour of the day, 12-hour clock (1..12)
903
- // %m - Month of the year (01..12)
904
- // %-m - Month of the year (1..12)
905
- // %M - Minute of the hour (00..59)
906
- // %-M - Minute of the hour (0..59)
907
- // %p - Meridian indicator (AM or PM)
908
- // %S - Second of the minute (00..60)
909
- // %-S - Second of the minute (0..60)
910
- // %w - Day of the week (Sunday is 0, 0..6)
911
- // %y - Year without a century (00..99)
912
- // %-y - Year without a century (0..99)
913
- // %Y - Year with century
914
- // %z - Timezone offset (+0545)
892
+ // %a - The abbreviated weekday name (Sun)
893
+ // %A - The full weekday name (Sunday)
894
+ // %b - The abbreviated month name (Jan)
895
+ // %B - The full month name (January)
896
+ // %c - The preferred local date and time representation
897
+ // %d - Day of the month (01..31)
898
+ // %-d - Day of the month (1..31)
899
+ // %H - Hour of the day, 24-hour clock (00..23)
900
+ // %-H - Hour of the day, 24-hour clock (0..23)
901
+ // %I - Hour of the day, 12-hour clock (01..12)
902
+ // %-I/%l - Hour of the day, 12-hour clock (1..12)
903
+ // %m - Month of the year (01..12)
904
+ // %-m - Month of the year (1..12)
905
+ // %M - Minute of the hour (00..59)
906
+ // %-M - Minute of the hour (0..59)
907
+ // %p - Meridian indicator (AM or PM)
908
+ // %P - Meridian indicator (am or pm)
909
+ // %S - Second of the minute (00..60)
910
+ // %-S - Second of the minute (0..60)
911
+ // %w - Day of the week (Sunday is 0, 0..6)
912
+ // %y - Year without a century (00..99)
913
+ // %-y - Year without a century (0..99)
914
+ // %Y - Year with century
915
+ // %z/%Z - Timezone offset (+0545)
915
916
  //
916
917
  I18n.strftime = function(date, format) {
917
918
  var options = this.lookup("date")
@@ -962,11 +963,13 @@
962
963
  format = format.replace("%-H", hour);
963
964
  format = format.replace("%I", padding(hour12));
964
965
  format = format.replace("%-I", hour12);
966
+ format = format.replace("%l", hour12);
965
967
  format = format.replace("%m", padding(month));
966
968
  format = format.replace("%-m", month);
967
969
  format = format.replace("%M", padding(mins));
968
970
  format = format.replace("%-M", mins);
969
971
  format = format.replace("%p", meridianOptions[meridian]);
972
+ format = format.replace("%P", meridianOptions[meridian].toLowerCase());
970
973
  format = format.replace("%S", padding(secs));
971
974
  format = format.replace("%-S", secs);
972
975
  format = format.replace("%w", weekDay);
@@ -974,6 +977,7 @@
974
977
  format = format.replace("%-y", padding(year).replace(/^0+/, ""));
975
978
  format = format.replace("%Y", year);
976
979
  format = format.replace("%z", timezoneoffset);
980
+ format = format.replace("%Z", timezoneoffset);
977
981
 
978
982
  return format;
979
983
  };
@@ -2,6 +2,6 @@
2
2
 
3
3
  module I18n
4
4
  module JS
5
- VERSION = "3.2.3"
5
+ VERSION = "3.3.0"
6
6
  end
7
7
  end
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "i18n-js",
3
- "version": "3.2.2",
3
+ "version": "3.3.0",
4
4
  "description": "A javascript library similar to Ruby on Rails i18n gem",
5
5
  "author": "Nando Vieira",
6
6
  "license": "MIT",
@@ -135,6 +135,7 @@ describe("Dates", function(){
135
135
 
136
136
  // 12-hour without padding
137
137
  expect(I18n.strftime(date, "%-I")).toEqual("7");
138
+ expect(I18n.strftime(date, "%l")).toEqual("7");
138
139
 
139
140
  // minutes without padding
140
141
  expect(I18n.strftime(date, "%-M")).toEqual("8");
@@ -188,7 +189,9 @@ describe("Dates", function(){
188
189
  spyOn(date, "getTimezoneOffset").andReturn(345);
189
190
 
190
191
  expect(I18n.strftime(date, "%z")).toMatch(/^(\+|-)[\d]{4}$/);
192
+ expect(I18n.strftime(date, "%Z")).toMatch(/^(\+|-)[\d]{4}$/);
191
193
  expect(I18n.strftime(date, "%z")).toEqual("-0545");
194
+ expect(I18n.strftime(date, "%Z")).toEqual("-0545");
192
195
  });
193
196
 
194
197
  it("formats date with positive time zone", function(){
@@ -198,22 +201,27 @@ describe("Dates", function(){
198
201
  spyOn(date, "getTimezoneOffset").andReturn(-345);
199
202
 
200
203
  expect(I18n.strftime(date, "%z")).toMatch(/^(\+|-)[\d]{4}$/);
204
+ expect(I18n.strftime(date, "%Z")).toMatch(/^(\+|-)[\d]{4}$/);
201
205
  expect(I18n.strftime(date, "%z")).toEqual("+0545");
206
+ expect(I18n.strftime(date, "%Z")).toEqual("+0545");
202
207
  });
203
208
 
204
209
  it("formats date with custom meridian", function(){
205
210
  I18n.locale = "en-US";
206
211
  var date = new Date(2009, 3, 26, 19, 35, 44);
207
212
  expect(I18n.strftime(date, "%p")).toEqual("pm");
213
+ expect(I18n.strftime(date, "%P")).toEqual("pm");
208
214
  });
209
215
 
210
216
  it("formats date with meridian boundaries", function(){
211
217
  I18n.locale = "en-US";
212
218
  var date = new Date(2009, 3, 26, 0, 35, 44);
213
219
  expect(I18n.strftime(date, "%p")).toEqual("am");
220
+ expect(I18n.strftime(date, "%P")).toEqual("am");
214
221
 
215
222
  date = new Date(2009, 3, 26, 12, 35, 44);
216
223
  expect(I18n.strftime(date, "%p")).toEqual("pm");
224
+ expect(I18n.strftime(date, "%P")).toEqual("pm");
217
225
  });
218
226
 
219
227
  it("formats date using 12-hours format", function(){
@@ -251,9 +259,11 @@ describe("Dates", function(){
251
259
 
252
260
  var date = new Date(2009, 3, 26, 19, 35, 44);
253
261
  expect(I18n.strftime(date, "%p")).toEqual("de:PM");
262
+ expect(I18n.strftime(date, "%P")).toEqual("de:pm");
254
263
 
255
264
  date = new Date(2009, 3, 26, 7, 35, 44);
256
265
  expect(I18n.strftime(date, "%p")).toEqual("de:AM");
266
+ expect(I18n.strftime(date, "%P")).toEqual("de:am");
257
267
  });
258
268
 
259
269
  it("fails to format invalid date", function(){
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: i18n-js
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.3
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nando Vieira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-24 00:00:00.000000000 Z
11
+ date: 2019-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n