twitter_cldr 6.9.0 → 6.10.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.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +31 -28
  3. data/lib/twitter_cldr/resources/calendars_importer.rb +48 -46
  4. data/lib/twitter_cldr/resources/cldr_data_builder.rb +36 -0
  5. data/lib/twitter_cldr/resources/cldr_document_set.rb +149 -0
  6. data/lib/twitter_cldr/resources/cldr_dtd.rb +110 -0
  7. data/lib/twitter_cldr/resources/cldr_locale.rb +78 -0
  8. data/lib/twitter_cldr/resources/list_formats_importer.rb +1 -1
  9. data/lib/twitter_cldr/resources/number_formats_importer.rb +1 -1
  10. data/lib/twitter_cldr/resources/readme_renderer.rb +6 -2
  11. data/lib/twitter_cldr/resources/requirements/cldr_requirement.rb +12 -61
  12. data/lib/twitter_cldr/resources/territories_importer.rb +1 -1
  13. data/lib/twitter_cldr/resources/timezones_importer.rb +1 -1
  14. data/lib/twitter_cldr/resources/unicode_property_aliases_importer.rb +2 -0
  15. data/lib/twitter_cldr/resources/units_importer.rb +1 -1
  16. data/lib/twitter_cldr/resources.rb +8 -3
  17. data/lib/twitter_cldr/shared/calendar.rb +1 -1
  18. data/lib/twitter_cldr/version.rb +1 -1
  19. data/resources/locales/ar/calendars.yml +2 -1
  20. data/resources/locales/az/calendars.yml +2 -1
  21. data/resources/locales/be/calendars.yml +2 -1
  22. data/resources/locales/bg/calendars.yml +2 -1
  23. data/resources/locales/bn/calendars.yml +2 -1
  24. data/resources/locales/bo/calendars.yml +34 -2
  25. data/resources/locales/bs/calendars.yml +1 -0
  26. data/resources/locales/cy/calendars.yml +1 -0
  27. data/resources/locales/el/calendars.yml +2 -1
  28. data/resources/locales/en/calendars.yml +15 -0
  29. data/resources/locales/en-001/calendars.yml +6 -0
  30. data/resources/locales/en-150/calendars.yml +6 -0
  31. data/resources/locales/en-AU/calendars.yml +4 -0
  32. data/resources/locales/en-CA/calendars.yml +11 -5
  33. data/resources/locales/en-GB/calendars.yml +3 -0
  34. data/resources/locales/en-IE/calendars.yml +6 -0
  35. data/resources/locales/en-IN/calendars.yml +6 -0
  36. data/resources/locales/en-NZ/calendars.yml +6 -0
  37. data/resources/locales/en-SG/calendars.yml +6 -0
  38. data/resources/locales/en-US/calendars.yml +15 -0
  39. data/resources/locales/en-ZA/calendars.yml +6 -0
  40. data/resources/locales/eo/calendars.yml +27 -0
  41. data/resources/locales/es/calendars.yml +2 -1
  42. data/resources/locales/es-419/calendars.yml +2 -1
  43. data/resources/locales/es-AR/calendars.yml +2 -1
  44. data/resources/locales/es-CO/calendars.yml +2 -1
  45. data/resources/locales/es-MX/calendars.yml +2 -1
  46. data/resources/locales/es-US/calendars.yml +2 -1
  47. data/resources/locales/fil/calendars.yml +4 -3
  48. data/resources/locales/gl/calendars.yml +2 -1
  49. data/resources/locales/hi/calendars.yml +2 -1
  50. data/resources/locales/hy/calendars.yml +4 -3
  51. data/resources/locales/ka/calendars.yml +2 -1
  52. data/resources/locales/kk/calendars.yml +2 -1
  53. data/resources/locales/km/calendars.yml +2 -1
  54. data/resources/locales/kn/calendars.yml +2 -1
  55. data/resources/locales/ko/calendars.yml +2 -1
  56. data/resources/locales/lo/calendars.yml +2 -1
  57. data/resources/locales/mk/calendars.yml +1 -1
  58. data/resources/locales/mr/calendars.yml +2 -1
  59. data/resources/locales/mt/calendars.yml +2 -1
  60. data/resources/locales/my/calendars.yml +2 -1
  61. data/resources/locales/pl/calendars.yml +2 -1
  62. data/resources/locales/pt/calendars.yml +2 -1
  63. data/resources/locales/pt-PT/calendars.yml +2 -1
  64. data/resources/locales/sk/calendars.yml +2 -1
  65. data/resources/locales/sl/calendars.yml +2 -1
  66. data/resources/locales/sr/calendars.yml +2 -0
  67. data/resources/locales/sr-Cyrl-ME/calendars.yml +3 -1
  68. data/resources/locales/sr-Latn-ME/calendars.yml +3 -1
  69. data/resources/locales/sw/calendars.yml +2 -1
  70. data/resources/locales/ta/calendars.yml +2 -1
  71. data/resources/locales/th/calendars.yml +1 -0
  72. data/resources/locales/tr/calendars.yml +2 -1
  73. data/resources/locales/ur/calendars.yml +2 -1
  74. data/resources/locales/xh/calendars.yml +32 -1
  75. data/resources/locales/zu/calendars.yml +3 -1
  76. data/spec/formatters/calendars/datetime_formatter_spec.rb +2 -2
  77. data/spec/shared/calendar_spec.rb +8 -8
  78. metadata +6 -2
@@ -0,0 +1,78 @@
1
+ # encoding: UTF-8
2
+
3
+ # Copyright 2012 Twitter, Inc
4
+ # http://www.apache.org/licenses/LICENSE-2.0
5
+
6
+ require 'nokogiri'
7
+
8
+ module TwitterCldr
9
+ module Resources
10
+
11
+ class CldrLocale
12
+ attr_reader :base_locale, :cldr_requirement
13
+
14
+ def initialize(base_locale, cldr_requirement)
15
+ @base_locale = base_locale
16
+ @cldr_requirement = cldr_requirement
17
+ end
18
+
19
+ def ancestors
20
+ @ancestors ||= [].tap do |ancestry|
21
+ locale = from_fs(base_locale)
22
+ ancestry << locale
23
+
24
+ loop do
25
+ cur = from_fs(ancestry.last)
26
+
27
+ if parents = parent_locales[cur]
28
+ ancestry << to_fs(parents)
29
+ elsif I18n::Locale::Tag.tag(cur).self_and_parents.count > 1
30
+ ancestry << I18n::Locale::Tag.tag(cur).self_and_parents.last.to_sym
31
+ else
32
+ parents = TwitterCldr::Shared::Locale
33
+ .parse(cur)
34
+ .permutations
35
+ .select do |loc|
36
+ File.exist?(File.join(cldr_requirement.common_path, 'main', "#{loc}.xml"))
37
+ end
38
+
39
+ ancestry.concat(parents - [cur])
40
+ break
41
+ end
42
+ end
43
+
44
+ ancestry << "root"
45
+ ancestry.freeze
46
+ end
47
+ end
48
+
49
+ private
50
+
51
+ def to_fs(locale)
52
+ locale.to_s.gsub('_', '-').to_sym
53
+ end
54
+
55
+ def from_fs(locale)
56
+ locale.to_s.gsub('-', '_')
57
+ end
58
+
59
+ def parent_locales
60
+ @parent_locales ||= supplemental_data.xpath('//parentLocales/parentLocale').each_with_object({}) do |node, ret|
61
+ parent = node.attr('parent')
62
+ locales = node.attr('locales').split(' ')
63
+
64
+ locales.each do |locale|
65
+ ret[locale] = parent
66
+ end
67
+ end
68
+ end
69
+
70
+ def supplemental_data
71
+ @supplemental_data ||= Nokogiri.XML(
72
+ File.read(File.join(cldr_requirement.common_path, 'supplemental', 'supplementalData.xml'))
73
+ )
74
+ end
75
+ end
76
+
77
+ end
78
+ end
@@ -49,7 +49,7 @@ module TwitterCldr
49
49
  # locales, we fill in any missing parts at the minor risk of being slightly wrong
50
50
  # when formatting lists. In my opinion, it's far better to produce a slightly wrong
51
51
  # string than to error or produce an entirely empty string.
52
- data = requirements[:cldr].merge_each_ancestor(locale) do |ancestor_locale|
52
+ data = requirements[:cldr].build_data(locale) do |ancestor_locale|
53
53
  ListFormats.new(ancestor_locale, requirements[:cldr]).to_h
54
54
  end
55
55
 
@@ -36,7 +36,7 @@ module TwitterCldr
36
36
  end
37
37
 
38
38
  def import_locale(locale)
39
- data = requirements[:cldr].merge_each_ancestor(locale) do |ancestor_locale|
39
+ data = requirements[:cldr].build_data(locale) do |ancestor_locale|
40
40
  NumberFormats.new(ancestor_locale, requirements[:cldr]).to_h
41
41
  end
42
42
 
@@ -4,6 +4,7 @@
4
4
  # http://www.apache.org/licenses/LICENSE-2.0
5
5
 
6
6
  require 'erb'
7
+ require 'yaml'
7
8
 
8
9
  module TwitterCldr
9
10
  module Resources
@@ -79,8 +80,6 @@ module TwitterCldr
79
80
  end
80
81
  end
81
82
 
82
- private
83
-
84
83
  def line_num_from_stack_trace(trace)
85
84
  trace[0].split(":")[1].to_i # kind of a hack...
86
85
  end
@@ -101,6 +100,11 @@ module TwitterCldr
101
100
  ret
102
101
  end
103
102
  end
103
+
104
+ def tested_ruby_versions
105
+ workflow = YAML.load_file(File.join(*%w(.github workflows unit_tests.yml)))
106
+ workflow["jobs"]["build"]["strategy"]["matrix"]["ruby-version"].join(", ")
107
+ end
104
108
  end
105
109
 
106
110
  end
@@ -42,15 +42,6 @@ module TwitterCldr
42
42
  File.join(source_path, 'common')
43
43
  end
44
44
 
45
- def merge_each_ancestor(locale, merge_root: true)
46
- locales = locale_chain(locale)
47
- locales << :root if merge_root
48
-
49
- locales.inject({}) do |result, ancestor_locale|
50
- deep_merge(yield(ancestor_locale), result)
51
- end
52
- end
53
-
54
45
  def alt?(node)
55
46
  !node.attribute('alt').nil?
56
47
  end
@@ -62,49 +53,26 @@ module TwitterCldr
62
53
  )
63
54
  end
64
55
 
65
- private
66
-
67
- def locale_chain(locale)
68
- locale = from_fs(locale)
69
- ancestry = [locale]
70
-
71
- loop do
72
- cur = from_fs(ancestry.last)
73
-
74
- if parents = parent_locales[cur]
75
- ancestry << to_fs(parents)
76
- elsif I18n::Locale::Tag.tag(cur).self_and_parents.count > 1
77
- ancestry << I18n::Locale::Tag.tag(cur).self_and_parents.last.to_sym
78
- else
79
- parents = TwitterCldr::Shared::Locale
80
- .parse(cur)
81
- .permutations
82
- .select do |loc|
83
- File.exist?(File.join(common_path, 'main', "#{loc}.xml"))
84
- end
85
-
86
- ancestry += parents - [cur]
87
- break
88
- end
89
- end
90
-
91
- ancestry
56
+ def build_data(locale, &block)
57
+ CldrDataBuilder.new(locale_for(locale)).merge_each_ancestor(&block)
92
58
  end
93
59
 
94
- def to_fs(locale)
95
- locale.to_s.gsub('_', '-').to_sym
60
+ def docset(path, root_locale)
61
+ CldrDocumentSet.new(path, locale_for(root_locale), self)
96
62
  end
97
63
 
98
- def from_fs(locale)
99
- locale.to_s.gsub('-', '_')
64
+ def dtd
65
+ @dtd ||= CldrDTD.new(self)
100
66
  end
101
67
 
102
- DEEP_MERGER = proc do |key, v1, v2|
103
- Hash === v1 && Hash === v2 ? v1.merge(v2, &DEEP_MERGER) : (v2 || v1)
68
+ private
69
+
70
+ def locale_for(locale)
71
+ locales[locale] ||= CldrLocale.new(locale, self)
104
72
  end
105
73
 
106
- def deep_merge(h1, h2)
107
- h1.merge(h2, &DEEP_MERGER)
74
+ def locales
75
+ @locales ||= {}
108
76
  end
109
77
 
110
78
  def cldr_url
@@ -134,23 +102,6 @@ module TwitterCldr
134
102
  end
135
103
  end
136
104
  end
137
-
138
- def parent_locales
139
- @parent_locales ||= supplemental_data.xpath('//parentLocales/parentLocale').each_with_object({}) do |node, ret|
140
- parent = node.attr('parent')
141
- locales = node.attr('locales').split(' ')
142
-
143
- locales.each do |locale|
144
- ret[locale] = parent
145
- end
146
- end
147
- end
148
-
149
- def supplemental_data
150
- @supplemental_data ||= Nokogiri.XML(
151
- File.read(File.join(common_path, 'supplemental', 'supplementalData.xml'))
152
- )
153
- end
154
105
  end
155
106
 
156
107
  end
@@ -26,7 +26,7 @@ module TwitterCldr
26
26
  end
27
27
 
28
28
  def import_locale(locale)
29
- data = requirements[:cldr].merge_each_ancestor(locale) do |ancestor_locale|
29
+ data = requirements[:cldr].build_data(locale) do |ancestor_locale|
30
30
  TerritoryData.new(ancestor_locale, requirements[:cldr]).to_h
31
31
  end
32
32
 
@@ -38,7 +38,7 @@ module TwitterCldr
38
38
  end
39
39
 
40
40
  def import_locale(locale)
41
- data = requirements[:cldr].merge_each_ancestor(locale) do |ancestor_locale|
41
+ data = requirements[:cldr].build_data(locale) do |ancestor_locale|
42
42
  TimezoneData.new(ancestor_locale, requirements[:cldr]).to_h
43
43
  end
44
44
 
@@ -17,6 +17,8 @@ module TwitterCldr
17
17
  private
18
18
 
19
19
  def execute
20
+ FileUtils.mkdir_p(output_path)
21
+
20
22
  File.write(
21
23
  File.join(output_path, 'property_value_aliases.yml'),
22
24
  YAML.dump(parse_property_value_aliases)
@@ -36,7 +36,7 @@ module TwitterCldr
36
36
  end
37
37
 
38
38
  def import_locale(locale)
39
- data = requirements[:cldr].merge_each_ancestor(locale) do |ancestor_locale|
39
+ data = requirements[:cldr].build_data(locale) do |ancestor_locale|
40
40
  Units.new(ancestor_locale, requirements[:cldr]).to_h
41
41
  end
42
42
 
@@ -10,6 +10,10 @@ module TwitterCldr
10
10
  autoload :BidiTestImporter, 'twitter_cldr/resources/bidi_test_importer'
11
11
  autoload :CalendarsImporter, 'twitter_cldr/resources/calendars_importer'
12
12
  autoload :CasefolderClassGenerator, 'twitter_cldr/resources/casefolder_class_generator'
13
+ autoload :CldrDataBuilder, 'twitter_cldr/resources/cldr_data_builder'
14
+ autoload :CldrDocumentSet, 'twitter_cldr/resources/cldr_document_set'
15
+ autoload :CldrDTD, 'twitter_cldr/resources/cldr_dtd'
16
+ autoload :CldrLocale, 'twitter_cldr/resources/cldr_locale'
13
17
  autoload :CollationTestsImporter, 'twitter_cldr/resources/collation_tests_importer'
14
18
  autoload :CollationTriesImporter, 'twitter_cldr/resources/collation_tries_importer'
15
19
  autoload :CurrencySymbolsImporter, 'twitter_cldr/resources/currency_symbols_importer'
@@ -25,6 +29,7 @@ module TwitterCldr
25
29
  autoload :ParentLocalesImporter, 'twitter_cldr/resources/parent_locales_importer'
26
30
  autoload :PostalCodesImporter, 'twitter_cldr/resources/postal_codes_importer'
27
31
  autoload :Properties, 'twitter_cldr/resources/properties'
32
+ autoload :ResourceLoadError, 'twitter_cldr/resources/loader'
28
33
  autoload :SegmentDictionariesImporter, 'twitter_cldr/resources/segment_dictionaries_importer'
29
34
  autoload :SegmentRulesImporter, 'twitter_cldr/resources/segment_rules_importer'
30
35
  autoload :SegmentTestsImporter, 'twitter_cldr/resources/segment_tests_importer'
@@ -54,6 +59,8 @@ module TwitterCldr
54
59
  AliasesImporter,
55
60
  Bcp47TimezoneMetadataImporter,
56
61
  BidiTestImporter,
62
+ ValidityDataImporter,
63
+ UnicodePropertyAliasesImporter,
57
64
  CalendarsImporter,
58
65
  CasefolderClassGenerator,
59
66
  CollationTestsImporter,
@@ -79,9 +86,7 @@ module TwitterCldr
79
86
  TransformTestsImporter,
80
87
  TransformsImporter,
81
88
  UnicodeDataImporter,
82
- UnicodePropertyAliasesImporter,
83
- UnitsImporter,
84
- ValidityDataImporter,
89
+ UnitsImporter
85
90
  ]
86
91
  end
87
92
 
@@ -7,7 +7,7 @@ module TwitterCldr
7
7
  module Shared
8
8
  class Calendar
9
9
 
10
- DEFAULT_FORMAT = :'stand-alone'
10
+ DEFAULT_FORMAT = :format
11
11
 
12
12
  NAMES_FORMS = [:wide, :narrow, :short, :abbreviated]
13
13
  ERAS_NAMES_FORMS = [:abbr, :name]
@@ -4,5 +4,5 @@
4
4
  # http://www.apache.org/licenses/LICENSE-2.0
5
5
 
6
6
  module TwitterCldr
7
- VERSION = '6.9.0'
7
+ VERSION = '6.10.0'
8
8
  end
@@ -129,7 +129,8 @@
129
129
  0: "قبل الحقبة الحالية"
130
130
  1: "بعد الميلاد"
131
131
  :narrow:
132
- 0: ""
132
+ 0: BCE
133
+ 1: CE
133
134
  :fields:
134
135
  :day: يوم
135
136
  :day-narrow: يوم
@@ -126,7 +126,8 @@
126
126
  0: "bizim eradan əvvəl"
127
127
  1: "bizim era"
128
128
  :narrow:
129
- 0: ""
129
+ 0: BCE
130
+ 1: CE
130
131
  :fields:
131
132
  :day: Gün
132
133
  :day-narrow: Gün
@@ -127,7 +127,8 @@
127
127
  0: "да нашай эры"
128
128
  1: "нашай эры"
129
129
  :narrow:
130
- 0: ""
130
+ 0: BCE
131
+ 1: CE
131
132
  :fields:
132
133
  :day: дзень
133
134
  :day-narrow: д.
@@ -134,7 +134,8 @@
134
134
  0: "преди новата ера"
135
135
  1: "след новата ера"
136
136
  :narrow:
137
- 0: ""
137
+ 0: BCE
138
+ 1: CE
138
139
  :fields:
139
140
  :day: ден
140
141
  :day-narrow: д
@@ -129,7 +129,8 @@
129
129
  0: খ্রিষ্টপূর্বাব্দ
130
130
  1: খ্রিষ্টাব্দ
131
131
  :narrow:
132
- 0: ""
132
+ 0: BCE
133
+ 1: CE
133
134
  :fields:
134
135
  :day: দিন
135
136
  :day-narrow: দিন
@@ -124,25 +124,57 @@
124
124
  0: སྤྱི་ལོ་སྔོན་
125
125
  1: སྤྱི་ལོ་
126
126
  :name:
127
- 0: ""
127
+ 0: BCE
128
+ 1: CE
128
129
  :narrow:
129
- 0: ""
130
+ 0: BCE
131
+ 1: CE
130
132
  :fields:
131
133
  :day: ཉིན།
134
+ :day-narrow: Day
135
+ :day-short: Day
132
136
  :dayOfYear: "Day Of Year"
137
+ :dayOfYear-narrow: "Day Of Year"
138
+ :dayOfYear-short: "Day Of Year"
133
139
  :dayperiod: "སྔ་དྲོ། ཕྱི་དྲོ།"
140
+ :dayperiod-narrow: Dayperiod
141
+ :dayperiod-short: Dayperiod
134
142
  :era: ལོ་རིམ།
143
+ :era-narrow: Era
144
+ :era-short: Era
135
145
  :hour: ཆུ་ཚོད་
146
+ :hour-narrow: Hour
147
+ :hour-short: Hour
136
148
  :minute: སྐར་མ།
149
+ :minute-narrow: Minute
150
+ :minute-short: Minute
137
151
  :month: ཟླ་བ་
152
+ :month-narrow: Month
153
+ :month-short: Month
138
154
  :quarter: Quarter
155
+ :quarter-narrow: Quarter
156
+ :quarter-short: Quarter
139
157
  :second: སྐར་ཆ།
158
+ :second-narrow: Second
159
+ :second-short: Second
140
160
  :week: གཟའ་འཁོར།
161
+ :week-narrow: Week
162
+ :week-short: Week
141
163
  :weekOfMonth: "Week Of Month"
164
+ :weekOfMonth-narrow: "Week Of Month"
165
+ :weekOfMonth-short: "Week Of Month"
142
166
  :weekday: གཟའ་འཁོར་གཅིག
167
+ :weekday-narrow: "Day of the Week"
168
+ :weekday-short: "Day of the Week"
143
169
  :weekdayOfMonth: "Weekday Of Month"
170
+ :weekdayOfMonth-narrow: "Weekday Of Month"
171
+ :weekdayOfMonth-short: "Weekday Of Month"
144
172
  :year: ལོ།
173
+ :year-narrow: Year
174
+ :year-short: Year
145
175
  :zone: དུས་ཚོད།
176
+ :zone-narrow: Zone
177
+ :zone-short: Zone
146
178
  :formats:
147
179
  :date:
148
180
  :full:
@@ -130,6 +130,7 @@
130
130
  1: "Nove ere"
131
131
  :narrow:
132
132
  0: p.n.e.
133
+ 1: CE
133
134
  :fields:
134
135
  :day: dan
135
136
  :day-narrow: dan
@@ -132,6 +132,7 @@
132
132
  :fields:
133
133
  :day: diwrnod
134
134
  :day-narrow: diwrnod
135
+ :day-short: Day
135
136
  :dayOfYear: "rhif y dydd yn y flwyddyn"
136
137
  :dayOfYear-narrow: "dydd y fl."
137
138
  :dayOfYear-short: "rhif y dydd yn y fl."
@@ -127,7 +127,8 @@
127
127
  0: "πριν από την Κοινή Χρονολογία"
128
128
  1: "Κοινή Χρονολογία"
129
129
  :narrow:
130
- 0: ""
130
+ 0: BCE
131
+ 1: CE
131
132
  :fields:
132
133
  :day: ημέρα
133
134
  :day-narrow: ημ.
@@ -130,34 +130,49 @@
130
130
  1: A
131
131
  :fields:
132
132
  :day: day
133
+ :day-narrow: Day
133
134
  :day-short: day
134
135
  :dayOfYear: "day of year"
136
+ :dayOfYear-narrow: "Day Of Year"
135
137
  :dayOfYear-short: "day of yr."
136
138
  :dayperiod: AM/PM
139
+ :dayperiod-narrow: Dayperiod
137
140
  :dayperiod-short: AM/PM
138
141
  :era: era
142
+ :era-narrow: Era
139
143
  :era-short: era
140
144
  :hour: hour
145
+ :hour-narrow: Hour
141
146
  :hour-short: hr.
142
147
  :minute: minute
148
+ :minute-narrow: Minute
143
149
  :minute-short: min.
144
150
  :month: month
151
+ :month-narrow: Month
145
152
  :month-short: mo.
146
153
  :quarter: quarter
154
+ :quarter-narrow: Quarter
147
155
  :quarter-short: qtr.
148
156
  :second: second
157
+ :second-narrow: Second
149
158
  :second-short: sec.
150
159
  :week: week
160
+ :week-narrow: Week
151
161
  :week-short: wk.
152
162
  :weekOfMonth: "week of month"
163
+ :weekOfMonth-narrow: "Week Of Month"
153
164
  :weekOfMonth-short: "wk. of mo."
154
165
  :weekday: "day of the week"
166
+ :weekday-narrow: "Day of the Week"
155
167
  :weekday-short: "day of wk."
156
168
  :weekdayOfMonth: "weekday of the month"
169
+ :weekdayOfMonth-narrow: "Weekday Of Month"
157
170
  :weekdayOfMonth-short: "wkday. of mo."
158
171
  :year: year
172
+ :year-narrow: Year
159
173
  :year-short: yr.
160
174
  :zone: "time zone"
175
+ :zone-narrow: Zone
161
176
  :zone-short: zone
162
177
  :formats:
163
178
  :date:
@@ -131,6 +131,7 @@
131
131
  1: A
132
132
  :fields:
133
133
  :day: day
134
+ :day-narrow: Day
134
135
  :day-short: day
135
136
  :dayOfYear: "day of year"
136
137
  :dayOfYear-narrow: "day of yr"
@@ -139,8 +140,10 @@
139
140
  :dayperiod-narrow: am/pm
140
141
  :dayperiod-short: am/pm
141
142
  :era: era
143
+ :era-narrow: Era
142
144
  :era-short: era
143
145
  :hour: hour
146
+ :hour-narrow: Hour
144
147
  :hour-short: hr
145
148
  :minute: minute
146
149
  :minute-narrow: min
@@ -152,6 +155,7 @@
152
155
  :quarter-narrow: qtr
153
156
  :quarter-short: qtr
154
157
  :second: second
158
+ :second-narrow: Second
155
159
  :second-short: sec
156
160
  :week: week
157
161
  :week-narrow: wk
@@ -166,8 +170,10 @@
166
170
  :weekdayOfMonth-narrow: "wkday of mo"
167
171
  :weekdayOfMonth-short: "wkday of mo"
168
172
  :year: year
173
+ :year-narrow: Year
169
174
  :year-short: yr
170
175
  :zone: "time zone"
176
+ :zone-narrow: Zone
171
177
  :zone-short: zone
172
178
  :formats:
173
179
  :date:
@@ -131,6 +131,7 @@
131
131
  1: A
132
132
  :fields:
133
133
  :day: day
134
+ :day-narrow: Day
134
135
  :day-short: day
135
136
  :dayOfYear: "day of year"
136
137
  :dayOfYear-narrow: "day of yr"
@@ -139,8 +140,10 @@
139
140
  :dayperiod-narrow: am/pm
140
141
  :dayperiod-short: am/pm
141
142
  :era: era
143
+ :era-narrow: Era
142
144
  :era-short: era
143
145
  :hour: hour
146
+ :hour-narrow: Hour
144
147
  :hour-short: hr
145
148
  :minute: minute
146
149
  :minute-narrow: min
@@ -152,6 +155,7 @@
152
155
  :quarter-narrow: qtr
153
156
  :quarter-short: qtr
154
157
  :second: second
158
+ :second-narrow: Second
155
159
  :second-short: sec
156
160
  :week: week
157
161
  :week-narrow: wk
@@ -166,8 +170,10 @@
166
170
  :weekdayOfMonth-narrow: "wkday of mo"
167
171
  :weekdayOfMonth-short: "wkday of mo"
168
172
  :year: year
173
+ :year-narrow: Year
169
174
  :year-short: yr
170
175
  :zone: "time zone"
176
+ :zone-narrow: Zone
171
177
  :zone-short: zone
172
178
  :formats:
173
179
  :date:
@@ -131,6 +131,7 @@
131
131
  1: A
132
132
  :fields:
133
133
  :day: day
134
+ :day-narrow: Day
134
135
  :day-short: day
135
136
  :dayOfYear: "day of year"
136
137
  :dayOfYear-narrow: "day of yr"
@@ -139,6 +140,7 @@
139
140
  :dayperiod-narrow: am/pm
140
141
  :dayperiod-short: am/pm
141
142
  :era: era
143
+ :era-narrow: Era
142
144
  :era-short: era
143
145
  :hour: hour
144
146
  :hour-narrow: h
@@ -168,8 +170,10 @@
168
170
  :weekdayOfMonth-narrow: "wkday of mo"
169
171
  :weekdayOfMonth-short: "wkday of mo."
170
172
  :year: year
173
+ :year-narrow: Year
171
174
  :year-short: yr
172
175
  :zone: "time zone"
176
+ :zone-narrow: Zone
173
177
  :zone-short: zone
174
178
  :formats:
175
179
  :date: