twitter_cldr 3.5.0 → 3.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +3 -6
- data/History.txt +3 -0
- data/README.md +15 -15
- data/lib/twitter_cldr/data_readers/data_reader.rb +2 -2
- data/lib/twitter_cldr/data_readers/timespan_data_reader.rb +23 -78
- data/lib/twitter_cldr/formatters/numbers/rbnf.rb +1 -1
- data/lib/twitter_cldr/resources/locales_resources_importer.rb +3 -3
- data/lib/twitter_cldr/tokenizers/numbers/rbnf_tokenizer.rb +1 -4
- data/lib/twitter_cldr/version.rb +1 -1
- data/resources/custom/shared/postal_codes.yml +8 -0
- data/resources/locales/af/fields.yml +325 -98
- data/resources/locales/ar/fields.yml +532 -210
- data/resources/locales/ar/plurals.yml +4 -3
- data/resources/locales/be/fields.yml +21 -112
- data/resources/locales/be/plurals.yml +6 -4
- data/resources/locales/bg/fields.yml +342 -98
- data/resources/locales/bn/fields.yml +342 -98
- data/resources/locales/bn/plurals.yml +2 -2
- data/resources/locales/ca/fields.yml +342 -98
- data/resources/locales/ca/plurals.yml +2 -2
- data/resources/locales/cs/fields.yml +438 -126
- data/resources/locales/cs/plurals.yml +3 -3
- data/resources/locales/cy/fields.yml +202 -98
- data/resources/locales/da/fields.yml +342 -98
- data/resources/locales/da/plurals.yml +2 -2
- data/resources/locales/de-CH/fields.yml +342 -98
- data/resources/locales/de-CH/plurals.yml +2 -2
- data/resources/locales/de/fields.yml +342 -98
- data/resources/locales/de/plurals.yml +2 -2
- data/resources/locales/el/fields.yml +342 -98
- data/resources/locales/en-150/fields.yml +283 -98
- data/resources/locales/en-150/plurals.yml +5 -5
- data/resources/locales/en-AU/fields.yml +283 -98
- data/resources/locales/en-AU/plurals.yml +5 -5
- data/resources/locales/en-CA/fields.yml +283 -98
- data/resources/locales/en-CA/plurals.yml +5 -5
- data/resources/locales/en-GB/fields.yml +357 -98
- data/resources/locales/en-GB/plurals.yml +5 -5
- data/resources/locales/en-IE/fields.yml +283 -98
- data/resources/locales/en-IE/plurals.yml +5 -5
- data/resources/locales/en-SG/fields.yml +283 -98
- data/resources/locales/en-SG/plurals.yml +5 -5
- data/resources/locales/en-ZA/fields.yml +283 -98
- data/resources/locales/en-ZA/plurals.yml +5 -5
- data/resources/locales/en/fields.yml +283 -98
- data/resources/locales/en/plurals.yml +5 -5
- data/resources/locales/es-419/fields.yml +342 -98
- data/resources/locales/es-CO/fields.yml +342 -98
- data/resources/locales/es-MX/fields.yml +342 -98
- data/resources/locales/es-US/fields.yml +342 -98
- data/resources/locales/es/fields.yml +342 -98
- data/resources/locales/eu/fields.yml +342 -98
- data/resources/locales/fa/fields.yml +342 -98
- data/resources/locales/fa/plurals.yml +2 -2
- data/resources/locales/fi/fields.yml +342 -98
- data/resources/locales/fi/plurals.yml +2 -2
- data/resources/locales/fil/fields.yml +342 -98
- data/resources/locales/fil/plurals.yml +4 -4
- data/resources/locales/fr-BE/fields.yml +342 -98
- data/resources/locales/fr-CA/fields.yml +342 -98
- data/resources/locales/fr-CH/fields.yml +342 -98
- data/resources/locales/fr/fields.yml +342 -98
- data/resources/locales/ga/fields.yml +484 -98
- data/resources/locales/ga/plurals.yml +3 -3
- data/resources/locales/gl/fields.yml +313 -98
- data/resources/locales/gl/plurals.yml +2 -2
- data/resources/locales/gu/fields.yml +342 -98
- data/resources/locales/gu/plurals.yml +7 -7
- data/resources/locales/he/fields.yml +438 -154
- data/resources/locales/he/plurals.yml +4 -3
- data/resources/locales/hi/fields.yml +342 -98
- data/resources/locales/hi/plurals.yml +2 -2
- data/resources/locales/hr/fields.yml +390 -154
- data/resources/locales/hr/plurals.yml +7 -4
- data/resources/locales/hu/fields.yml +342 -98
- data/resources/locales/id/fields.yml +294 -98
- data/resources/locales/is/fields.yml +342 -98
- data/resources/locales/is/plurals.yml +2 -2
- data/resources/locales/it-CH/fields.yml +342 -98
- data/resources/locales/it-CH/plurals.yml +2 -2
- data/resources/locales/it/fields.yml +342 -98
- data/resources/locales/it/plurals.yml +2 -2
- data/resources/locales/ja/fields.yml +294 -98
- data/resources/locales/kn/fields.yml +342 -98
- data/resources/locales/kn/plurals.yml +3 -3
- data/resources/locales/ko/fields.yml +294 -98
- data/resources/locales/lv/fields.yml +390 -126
- data/resources/locales/lv/plurals.yml +6 -4
- data/resources/locales/mr/fields.yml +340 -98
- data/resources/locales/mr/plurals.yml +6 -7
- data/resources/locales/ms/fields.yml +294 -98
- data/resources/locales/nb/fields.yml +342 -98
- data/resources/locales/nl/fields.yml +342 -98
- data/resources/locales/nl/plurals.yml +2 -2
- data/resources/locales/pl/fields.yml +438 -154
- data/resources/locales/pl/plurals.yml +8 -4
- data/resources/locales/pt/fields.yml +342 -98
- data/resources/locales/pt/plurals.yml +2 -2
- data/resources/locales/ro/fields.yml +390 -126
- data/resources/locales/ro/plurals.yml +4 -3
- data/resources/locales/ru/fields.yml +438 -154
- data/resources/locales/ru/plurals.yml +8 -4
- data/resources/locales/sk/fields.yml +438 -126
- data/resources/locales/sk/plurals.yml +3 -3
- data/resources/locales/sq/fields.yml +340 -98
- data/resources/locales/sq/plurals.yml +2 -2
- data/resources/locales/sr/fields.yml +390 -154
- data/resources/locales/sr/plurals.yml +7 -4
- data/resources/locales/sv/fields.yml +342 -98
- data/resources/locales/sv/plurals.yml +4 -4
- data/resources/locales/ta/fields.yml +342 -98
- data/resources/locales/th/fields.yml +294 -98
- data/resources/locales/tr/fields.yml +342 -98
- data/resources/locales/uk/fields.yml +438 -154
- data/resources/locales/uk/plurals.yml +10 -6
- data/resources/locales/ur/fields.yml +342 -98
- data/resources/locales/ur/plurals.yml +2 -2
- data/resources/locales/vi/fields.yml +294 -98
- data/resources/locales/zh-Hant/fields.yml +294 -98
- data/resources/locales/zh/fields.yml +294 -98
- data/spec/data_readers/timespan_data_reader_spec.rb +68 -3
- data/spec/localized/localized_date_spec.rb +13 -13
- data/spec/localized/localized_timespan_spec.rb +43 -84
- data/twitter_cldr.gemspec +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc6c6c92fe5dec780cafeb5fd8930add773c46d7
|
4
|
+
data.tar.gz: a7f4a52136cacf6e26d1b9bf0057dd19f9b852a8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1192dfcd1168d55d7c30c586a8ece42f49d5d854e99a4ccb35e167c4cf7aa12c2b0c6040db5b08375acbc0532afbdad1888a62fa7a2c1ed57ae301706cbb8366
|
7
|
+
data.tar.gz: cc0b77e683c92a52af0ecb76a77192e93bb1157e1c428651822f3b713b844abe1ada7aa21b635663da67ac68606bdb88a15e7662594fff09a55c6b74c5c27736
|
data/Gemfile
CHANGED
@@ -4,21 +4,17 @@ gemspec
|
|
4
4
|
|
5
5
|
group :development, :test do
|
6
6
|
gem 'rake'
|
7
|
-
|
8
|
-
gem 'pry'
|
9
7
|
gem 'pry-nav'
|
10
|
-
|
11
8
|
gem 'ruby-prof' unless RUBY_PLATFORM == 'java'
|
12
|
-
|
13
9
|
gem 'regexp_parser', '~> 0.1'
|
14
10
|
end
|
15
11
|
|
16
12
|
group :development do
|
17
13
|
gem 'nokogiri', "~> 1.5.9"
|
18
14
|
|
19
|
-
gem 'ruby-cldr', github: '
|
15
|
+
gem 'ruby-cldr', github: 'camertron/ruby-cldr', branch: 'fields'
|
20
16
|
gem 'i18n', '~> 0.6.11'
|
21
|
-
gem 'cldr-plurals', '~> 1.0
|
17
|
+
gem 'cldr-plurals', '~> 1.0'
|
22
18
|
|
23
19
|
gem 'rest-client', '~> 1.8'
|
24
20
|
end
|
@@ -28,6 +24,7 @@ group :test do
|
|
28
24
|
gem 'rr', '~> 1.1.2'
|
29
25
|
|
30
26
|
gem 'rubyzip'
|
27
|
+
gem 'term-ansicolor', '~> 1.3.0' # 1.4 breaks ruby 1.9 support
|
31
28
|
gem 'coveralls', require: false
|
32
29
|
gem 'tins', '~> 1.6.0', require: false # 1.7 breaks ruby 1.9 support
|
33
30
|
|
data/History.txt
CHANGED
data/README.md
CHANGED
@@ -268,29 +268,29 @@ In addition to formatting full dates and times, TwitterCLDR supports relative ti
|
|
268
268
|
(DateTime.now - 1).localize.ago.to_s # "1 day ago"
|
269
269
|
(DateTime.now - 0.5).localize.ago.to_s # "12 hours ago" (i.e. half a day)
|
270
270
|
|
271
|
-
(DateTime.now + 1).localize.until.to_s # "
|
272
|
-
(DateTime.now + 0.5).localize.until.to_s # "
|
271
|
+
(DateTime.now + 1).localize.until.to_s # "in 1 day"
|
272
|
+
(DateTime.now + 0.5).localize.until.to_s # "in 12 hours"
|
273
273
|
```
|
274
274
|
|
275
275
|
Specify other locales:
|
276
276
|
|
277
277
|
```ruby
|
278
|
-
(DateTime.now - 1).localize(:de).ago.to_s # "
|
279
|
-
(DateTime.now + 1).localize(:de).until.to_s # "
|
278
|
+
(DateTime.now - 1).localize(:de).ago.to_s # "vor 1 Tag"
|
279
|
+
(DateTime.now + 1).localize(:de).until.to_s # "in 1 Tag"
|
280
280
|
```
|
281
281
|
|
282
282
|
Force TwitterCLDR to use a specific time unit by including the `:unit` option:
|
283
283
|
|
284
284
|
```ruby
|
285
|
-
(DateTime.now - 1).localize(:de).ago.to_s(:unit => :hour) # "
|
286
|
-
(DateTime.now + 1).localize(:de).until.to_s(:unit => :hour) # "
|
285
|
+
(DateTime.now - 1).localize(:de).ago.to_s(:unit => :hour) # "vor 24 Stunden"
|
286
|
+
(DateTime.now + 1).localize(:de).until.to_s(:unit => :hour) # "in 24 Stunden"
|
287
287
|
```
|
288
288
|
|
289
289
|
Specify a different reference point for the time span calculation:
|
290
290
|
|
291
291
|
```ruby
|
292
292
|
# 86400 = 1 day in seconds, 259200 = 3 days in seconds
|
293
|
-
(Time.now + 86400).localize(:de).ago(:base_time => (Time.now + 259200)).to_s(:unit => :hour) # "
|
293
|
+
(Time.now + 86400).localize(:de).ago(:base_time => (Time.now + 259200)).to_s(:unit => :hour) # "vor 48 Stunden"
|
294
294
|
```
|
295
295
|
|
296
296
|
Behind the scenes, these convenience methods are creating instances of `LocalizedTimespan`, whose constructor accepts a number of seconds as the first argument. You can do the same thing if you're feeling adventurous:
|
@@ -298,21 +298,21 @@ Behind the scenes, these convenience methods are creating instances of `Localize
|
|
298
298
|
```ruby
|
299
299
|
|
300
300
|
ts = TwitterCldr::Localized::LocalizedTimespan.new(86400, :locale => :de)
|
301
|
-
ts.to_s # "
|
302
|
-
ts.to_s(:unit => :hour) # "
|
301
|
+
ts.to_s # "in 1 Tag"
|
302
|
+
ts.to_s(:unit => :hour) # "in 24 Stunden"
|
303
303
|
|
304
304
|
|
305
305
|
ts = TwitterCldr::Localized::LocalizedTimespan.new(-86400, :locale => :de)
|
306
|
-
ts.to_s # "
|
307
|
-
ts.to_s(:unit => :hour) # "
|
306
|
+
ts.to_s # "vor 1 Tag"
|
307
|
+
ts.to_s(:unit => :hour) # "vor 24 Stunden"
|
308
308
|
```
|
309
309
|
|
310
310
|
By default, timespans are exact representations of a given unit of elapsed time. TwitterCLDR also supports approximate timespans which round up to the nearest larger unit. For example, "44 seconds" remains "44 seconds" while "45 seconds" becomes "1 minute". To approximate, pass the `:approximate => true` option into `to_s`:
|
311
311
|
|
312
312
|
```ruby
|
313
|
-
TwitterCldr::Localized::LocalizedTimespan.new(44).to_s(:approximate => true) # "
|
314
|
-
TwitterCldr::Localized::LocalizedTimespan.new(45).to_s(:approximate => true) # "
|
315
|
-
TwitterCldr::Localized::LocalizedTimespan.new(52).to_s(:approximate => true) # "
|
313
|
+
TwitterCldr::Localized::LocalizedTimespan.new(44).to_s(:approximate => true) # "in 44 seconds"
|
314
|
+
TwitterCldr::Localized::LocalizedTimespan.new(45).to_s(:approximate => true) # "in 1 minute"
|
315
|
+
TwitterCldr::Localized::LocalizedTimespan.new(52).to_s(:approximate => true) # "in 1 minute"
|
316
316
|
```
|
317
317
|
|
318
318
|
### Calendar Data
|
@@ -548,7 +548,7 @@ postal_code.regexp # /(\d{5})(?:[ \-](\d{4}))?/
|
|
548
548
|
Get a sample of valid postal codes with the `#sample` method:
|
549
549
|
|
550
550
|
```ruby
|
551
|
-
postal_code.sample(5) # ["
|
551
|
+
postal_code.sample(5) # ["40741-8626", "87304", "02763-2183", "78302", "37171"]
|
552
552
|
```
|
553
553
|
|
554
554
|
### Phone Codes
|
@@ -6,48 +6,12 @@
|
|
6
6
|
module TwitterCldr
|
7
7
|
module DataReaders
|
8
8
|
class TimespanDataReader < DataReader
|
9
|
-
|
10
|
-
DEFAULT_DIRECTION = :none
|
9
|
+
DEFAULT_DIRECTION = :ago
|
11
10
|
DEFAULT_TYPE = :default
|
12
11
|
VALID_FIELDS = [:second, :minute, :hour, :day, :week, :month, :year]
|
13
12
|
BASE_PATH = [:fields]
|
14
13
|
|
15
|
-
|
16
|
-
ago: {
|
17
|
-
default: :'hour-past',
|
18
|
-
second: :'second-past',
|
19
|
-
minute: :'minute-past',
|
20
|
-
hour: :'hour-past',
|
21
|
-
day: :'day-past',
|
22
|
-
week: :'week-past',
|
23
|
-
month: :'month-past',
|
24
|
-
year: :'year-past'
|
25
|
-
},
|
26
|
-
|
27
|
-
until: {
|
28
|
-
default: :'hour-future',
|
29
|
-
second: :'second-future',
|
30
|
-
minute: :'minute-future',
|
31
|
-
hour: :'hour-future',
|
32
|
-
day: :'day-future',
|
33
|
-
week: :'week-future',
|
34
|
-
month: :'month-future',
|
35
|
-
year: :'year-future'
|
36
|
-
},
|
37
|
-
|
38
|
-
none: {
|
39
|
-
default: :second,
|
40
|
-
second: :second,
|
41
|
-
minute: :minute,
|
42
|
-
hour: :hour,
|
43
|
-
day: :day,
|
44
|
-
week: :week,
|
45
|
-
month: :month,
|
46
|
-
year: :year
|
47
|
-
}
|
48
|
-
}
|
49
|
-
|
50
|
-
attr_reader :direction, :unit, :type, :rule
|
14
|
+
attr_reader :direction, :unit, :type, :plural_rule
|
51
15
|
|
52
16
|
def initialize(locale, seconds, options = {})
|
53
17
|
super(locale)
|
@@ -56,67 +20,48 @@ module TwitterCldr
|
|
56
20
|
@direction = options[:direction] || DEFAULT_DIRECTION
|
57
21
|
@unit = options[:unit]
|
58
22
|
|
59
|
-
@
|
23
|
+
@plural_rule = options[:plural_rule] ||
|
60
24
|
TwitterCldr::Formatters::Plurals::Rules.rule_for(seconds, locale)
|
61
25
|
end
|
62
26
|
|
63
|
-
# type is stuff like :abbreviated, etc
|
64
27
|
def pattern
|
65
|
-
path = full_path_for(direction, unit, type)
|
66
|
-
available = traverse(path)
|
67
|
-
pluralization = pluralization_for(rule, available)
|
68
|
-
|
69
|
-
if available.include?(pluralization)
|
70
|
-
path << pluralization
|
71
|
-
else
|
72
|
-
return [] unless available.keys.first
|
73
|
-
path << available.keys.first
|
74
|
-
end
|
75
|
-
|
76
28
|
traverse(path)
|
77
29
|
end
|
78
30
|
|
79
31
|
def tokenizer
|
80
|
-
TwitterCldr::Tokenizers::TimespanTokenizer.new(self)
|
32
|
+
@tokenizer ||= TwitterCldr::Tokenizers::TimespanTokenizer.new(self)
|
81
33
|
end
|
82
34
|
|
83
35
|
def formatter
|
84
|
-
TwitterCldr::Formatters::TimespanFormatter.new(self)
|
36
|
+
@formatter ||= TwitterCldr::Formatters::TimespanFormatter.new(self)
|
85
37
|
end
|
86
38
|
|
87
|
-
|
39
|
+
private
|
40
|
+
|
41
|
+
def path
|
42
|
+
BASE_PATH + [type_field, :relative_time, direction_field, plural_rule]
|
43
|
+
end
|
88
44
|
|
89
|
-
def
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
available.include?(0) ? 0 : rule
|
94
|
-
when :one
|
95
|
-
available.include?(1) ? 1 : rule
|
96
|
-
when :two
|
97
|
-
available.include?(2) ? 2 : rule
|
45
|
+
def direction_field
|
46
|
+
case direction
|
47
|
+
when :ago
|
48
|
+
:past
|
98
49
|
else
|
99
|
-
|
50
|
+
:future
|
100
51
|
end
|
101
52
|
end
|
102
53
|
|
103
|
-
def
|
104
|
-
|
54
|
+
def type_field
|
55
|
+
case type
|
56
|
+
when :default
|
57
|
+
unit
|
58
|
+
else
|
59
|
+
:"#{unit}-#{type}"
|
60
|
+
end
|
105
61
|
end
|
106
62
|
|
107
63
|
def resource
|
108
|
-
@resource ||=
|
109
|
-
end
|
110
|
-
|
111
|
-
class << self
|
112
|
-
def all_types_for(locale, unit, direction)
|
113
|
-
TwitterCldr::Utils.traverse_hash(resource_for_locale(locale), BASE_PATH + [PATHS[direction][unit]]).keys
|
114
|
-
end
|
115
|
-
|
116
|
-
def resource_for_locale(locale)
|
117
|
-
@resources ||= {}
|
118
|
-
@resources[locale] ||= TwitterCldr.get_locale_resource(locale, :fields)[TwitterCldr.convert_locale(locale)]
|
119
|
-
end
|
64
|
+
@resource ||= TwitterCldr.get_locale_resource(locale, :fields)[locale]
|
120
65
|
end
|
121
66
|
end
|
122
67
|
end
|
@@ -37,7 +37,7 @@ module TwitterCldr
|
|
37
37
|
|
38
38
|
def format(number, options = {})
|
39
39
|
rule_group_name, rule_set_name = *if options[:rule_group].nil? && options[:rule_set].nil?
|
40
|
-
[
|
40
|
+
[DEFAULT_SPELLOUT_OPTIONS[:rule_group], DEFAULT_SPELLOUT_OPTIONS[:rule_set]]
|
41
41
|
else
|
42
42
|
[options[:rule_group], options[:rule_set]]
|
43
43
|
end
|
@@ -14,8 +14,6 @@ module TwitterCldr
|
|
14
14
|
|
15
15
|
class LocalesResourcesImporter
|
16
16
|
|
17
|
-
# NOTE: units.yml was NOT updated to cldr 24 (too many significant changes) - add back in when appropriate.
|
18
|
-
# Meanwhile, use ruby-cldr v0.0.2 and CLDR 22.1 to update units.yml files.
|
19
17
|
LOCALE_COMPONENTS = %w[
|
20
18
|
calendars
|
21
19
|
languages
|
@@ -24,7 +22,9 @@ module TwitterCldr
|
|
24
22
|
lists
|
25
23
|
territories
|
26
24
|
rbnf
|
27
|
-
|
25
|
+
units
|
26
|
+
fields
|
27
|
+
]
|
28
28
|
|
29
29
|
SHARED_COMPONENTS = %w[
|
30
30
|
currency_digits_and_rounding
|
@@ -15,9 +15,6 @@ module TwitterCldr
|
|
15
15
|
|
16
16
|
def tokenizer
|
17
17
|
@tokenizer ||= begin
|
18
|
-
# i.e. %spellout-numbering, %%2d-year
|
19
|
-
rule_regex = Regexp.new("%%?[[:word:]\-]+")
|
20
|
-
|
21
18
|
recognizers = [
|
22
19
|
# special rule descriptors
|
23
20
|
TokenRecognizer.new(:negative, /-x/),
|
@@ -27,7 +24,7 @@ module TwitterCldr
|
|
27
24
|
|
28
25
|
# normal rule descriptors
|
29
26
|
TokenRecognizer.new(:equals, /=/),
|
30
|
-
TokenRecognizer.new(:rule,
|
27
|
+
TokenRecognizer.new(:rule, /%%?[[:word:]-]+/), # i.e. %spellout-numbering, %%2d-year
|
31
28
|
TokenRecognizer.new(:right_arrow, />/),
|
32
29
|
TokenRecognizer.new(:left_arrow, /</),
|
33
30
|
TokenRecognizer.new(:open_bracket, /\[/),
|
data/lib/twitter_cldr/version.rb
CHANGED
@@ -0,0 +1,8 @@
|
|
1
|
+
# Override South Korean format, which hasn't been updated in i18napis.appspot.com's data yet.
|
2
|
+
:kr:
|
3
|
+
:regex: !ruby/regexp /\d{5}/
|
4
|
+
:ast: |
|
5
|
+
BAhvOihUd2l0dGVyQ2xkcjo6VXRpbHM6OlJlZ2V4cEFzdDo6Um9vdAc6EUBl
|
6
|
+
eHByZXNzaW9uc1sGbzopVHdpdHRlckNsZHI6OlV0aWxzOjpSZWdleHBBc3Q6
|
7
|
+
OkRpZ2l0BzsGWwA6EEBxdWFudGlmaWVybzouVHdpdHRlckNsZHI6OlV0aWxz
|
8
|
+
OjpSZWdleHBBc3Q6OlF1YW50aWZpZXIHOglAbWF4aQo6CUBtaW5pCjsIMA==
|
@@ -2,107 +2,334 @@
|
|
2
2
|
:af:
|
3
3
|
:fields:
|
4
4
|
:day:
|
5
|
-
:
|
6
|
-
|
7
|
-
:
|
8
|
-
|
9
|
-
:
|
10
|
-
:
|
11
|
-
|
12
|
-
:
|
13
|
-
:
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
5
|
+
:display_name: Dag
|
6
|
+
:relative:
|
7
|
+
-1: gister
|
8
|
+
-2: eergister
|
9
|
+
0: vandag
|
10
|
+
1: môre
|
11
|
+
2: oormôre
|
12
|
+
:relative_time:
|
13
|
+
:future:
|
14
|
+
:one: "Oor {0} dag"
|
15
|
+
:other: "Oor {0} dae"
|
16
|
+
:past:
|
17
|
+
:one: "{0} dag gelede"
|
18
|
+
:other: "{0} dae gelede"
|
19
|
+
:day-narrow:
|
20
|
+
:display_name: d.
|
21
|
+
:relative_time:
|
22
|
+
:future:
|
23
|
+
:one: "oor {0} dag"
|
24
|
+
:other: "oor {0} dae"
|
25
|
+
:past:
|
26
|
+
:one: "{0} dag gelede"
|
27
|
+
:other: "{0} dae gelede"
|
28
|
+
:day-short:
|
29
|
+
:display_name: d.
|
30
|
+
:relative_time:
|
31
|
+
:future:
|
32
|
+
:one: "oor {0} dag"
|
33
|
+
:other: "oor {0} dae"
|
34
|
+
:past:
|
35
|
+
:one: "{0} dag gelede"
|
36
|
+
:other: "{0} dae gelede"
|
37
|
+
:dayperiod:
|
38
|
+
:display_name: VM/NM
|
39
|
+
:era:
|
40
|
+
:display_name: Era
|
41
|
+
:fri:
|
42
|
+
:relative:
|
43
|
+
-1: "verlede Vrydag"
|
44
|
+
0: "hierdie Vrydag"
|
45
|
+
1: "volgende Vrydag"
|
46
|
+
:fri-short:
|
47
|
+
:relative:
|
48
|
+
-1: "verlede Vr."
|
19
49
|
:hour:
|
20
|
-
:
|
21
|
-
|
22
|
-
:
|
23
|
-
|
24
|
-
|
25
|
-
:
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
50
|
+
:display_name: Uur
|
51
|
+
:relative_time:
|
52
|
+
:future:
|
53
|
+
:one: "Oor {0} uur"
|
54
|
+
:other: "Oor {0} uur"
|
55
|
+
:past:
|
56
|
+
:one: "{0} uur gelede"
|
57
|
+
:other: "{0} uur gelede"
|
58
|
+
:hour-narrow:
|
59
|
+
:display_name: u.
|
60
|
+
:relative_time:
|
61
|
+
:future:
|
62
|
+
:one: "oor {0} uur"
|
63
|
+
:other: "oor {0} uur"
|
64
|
+
:past:
|
65
|
+
:one: "{0} uur gelede"
|
66
|
+
:other: "{0} uur gelede"
|
67
|
+
:hour-short:
|
68
|
+
:display_name: u.
|
69
|
+
:relative_time:
|
70
|
+
:future:
|
71
|
+
:one: "oor {0} uur"
|
72
|
+
:other: "oor {0} uur"
|
73
|
+
:past:
|
74
|
+
:one: "{0} uur gelede"
|
75
|
+
:other: "{0} uur gelede"
|
34
76
|
:minute:
|
35
|
-
:
|
36
|
-
|
37
|
-
:
|
38
|
-
|
39
|
-
|
40
|
-
:
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
77
|
+
:display_name: Minuut
|
78
|
+
:relative_time:
|
79
|
+
:future:
|
80
|
+
:one: "Oor {0} minuut"
|
81
|
+
:other: "Oor {0} minute"
|
82
|
+
:past:
|
83
|
+
:one: "{0} minuut gelede"
|
84
|
+
:other: "{0} minute gelede"
|
85
|
+
:minute-narrow:
|
86
|
+
:display_name: m.
|
87
|
+
:relative_time:
|
88
|
+
:future:
|
89
|
+
:one: "oor {0} min."
|
90
|
+
:other: "oor {0} min."
|
91
|
+
:past:
|
92
|
+
:one: "{0} min. gelede"
|
93
|
+
:other: "{0} min. gelede"
|
94
|
+
:minute-short:
|
95
|
+
:display_name: min.
|
96
|
+
:relative_time:
|
97
|
+
:future:
|
98
|
+
:one: "oor {0} min."
|
99
|
+
:other: "oor {0} min."
|
100
|
+
:past:
|
101
|
+
:one: "{0} min. gelede"
|
102
|
+
:other: "{0} min. gelede"
|
103
|
+
:mon:
|
104
|
+
:relative:
|
105
|
+
-1: "verlede Maandag"
|
106
|
+
0: "hierdie Maandag"
|
107
|
+
1: "volgende Maandag"
|
108
|
+
:mon-narrow:
|
109
|
+
:relative:
|
110
|
+
-1: "verlede Ma."
|
111
|
+
0: "hierdie Ma."
|
112
|
+
1: "volgende Ma."
|
113
|
+
:mon-short:
|
114
|
+
:relative:
|
115
|
+
-1: "verlede Ma."
|
116
|
+
0: "hierdie Ma."
|
117
|
+
1: "volgende Ma."
|
49
118
|
:month:
|
50
|
-
:
|
51
|
-
|
52
|
-
:
|
53
|
-
|
54
|
-
:
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
:
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
119
|
+
:display_name: Maand
|
120
|
+
:relative:
|
121
|
+
-1: "verlede maand"
|
122
|
+
0: vandeesmaand
|
123
|
+
1: "volgende maand"
|
124
|
+
:relative_time:
|
125
|
+
:future:
|
126
|
+
:one: "Oor {0} maand"
|
127
|
+
:other: "Oor {0} maande"
|
128
|
+
:past:
|
129
|
+
:one: "{0} maand gelede"
|
130
|
+
:other: "{0} maande gelede"
|
131
|
+
:month-narrow:
|
132
|
+
:display_name: md.
|
133
|
+
:relative_time:
|
134
|
+
:future:
|
135
|
+
:one: "oor {0} md."
|
136
|
+
:other: "oor {0} md."
|
137
|
+
:past:
|
138
|
+
:one: "{0} md. gelede"
|
139
|
+
:other: "{0} md. gelede"
|
140
|
+
:month-short:
|
141
|
+
:display_name: md.
|
142
|
+
:relative_time:
|
143
|
+
:future:
|
144
|
+
:one: "oor {0} md."
|
145
|
+
:other: "oor {0} md."
|
146
|
+
:past:
|
147
|
+
:one: "{0} md. gelede"
|
148
|
+
:other: "{0} md. gelede"
|
149
|
+
:quarter:
|
150
|
+
:display_name: Kwartaal
|
151
|
+
:relative_time:
|
152
|
+
:future:
|
153
|
+
:one: "oor {0} kwartaal"
|
154
|
+
:other: "oor {0} kwartale"
|
155
|
+
:past:
|
156
|
+
:one: "{0} kwartaal gelede"
|
157
|
+
:other: "{0} kwartale gelede"
|
158
|
+
:quarter-narrow:
|
159
|
+
:display_name: kw.
|
160
|
+
:relative_time:
|
161
|
+
:future:
|
162
|
+
:one: "oor {0} kwartale"
|
163
|
+
:other: "oor {0} kwartale"
|
164
|
+
:past:
|
165
|
+
:one: "{0} kwartale gelede"
|
166
|
+
:other: "{0} kwartale gelede"
|
167
|
+
:quarter-short:
|
168
|
+
:display_name: kw.
|
169
|
+
:relative_time:
|
170
|
+
:future:
|
171
|
+
:one: "oor {0} kwartaal"
|
172
|
+
:other: "oor {0} kwartale"
|
173
|
+
:past:
|
174
|
+
:one: "{0} kwartaal gelede"
|
175
|
+
:other: "{0} kwartale gelede"
|
176
|
+
:sat:
|
177
|
+
:relative:
|
178
|
+
-1: "verlede Saterdag"
|
179
|
+
0: "hierdie Saterdag"
|
180
|
+
1: "volgende Saterdag"
|
64
181
|
:second:
|
65
|
-
:
|
66
|
-
|
67
|
-
:
|
68
|
-
:
|
69
|
-
:
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
:second-
|
76
|
-
:
|
77
|
-
|
78
|
-
:
|
182
|
+
:display_name: Sekonde
|
183
|
+
:relative:
|
184
|
+
0: nou
|
185
|
+
:relative_time:
|
186
|
+
:future:
|
187
|
+
:one: "Oor {0} sekonde"
|
188
|
+
:other: "Oor {0} sekondes"
|
189
|
+
:past:
|
190
|
+
:one: "{0} sekonde gelede"
|
191
|
+
:other: "{0} sekondes gelede"
|
192
|
+
:second-narrow:
|
193
|
+
:display_name: s.
|
194
|
+
:relative_time:
|
195
|
+
:future:
|
196
|
+
:one: "oor {0} sek."
|
197
|
+
:other: "oor {0} sek."
|
198
|
+
:past:
|
199
|
+
:one: "{0} sek. gelede"
|
200
|
+
:other: "{0} sek. gelede"
|
201
|
+
:second-short:
|
202
|
+
:display_name: sek.
|
203
|
+
:relative_time:
|
204
|
+
:future:
|
205
|
+
:one: "oor {0} sek."
|
206
|
+
:other: "oor {0} sek."
|
207
|
+
:past:
|
208
|
+
:one: "{0} sek. gelede"
|
209
|
+
:other: "{0} sek. gelede"
|
210
|
+
:sun:
|
211
|
+
:relative:
|
212
|
+
-1: "verlede Sondag"
|
213
|
+
0: "hierdie Sondag"
|
214
|
+
1: "volgende Sondag"
|
215
|
+
:sun-narrow:
|
216
|
+
:relative:
|
217
|
+
-1: "verlede Son."
|
218
|
+
0: "hierdie Son."
|
219
|
+
1: "volgende Son."
|
220
|
+
:sun-short:
|
221
|
+
:relative:
|
222
|
+
-1: "verlede Son."
|
223
|
+
0: "hierdie Son."
|
224
|
+
1: "volgende Son."
|
225
|
+
:thu:
|
226
|
+
:relative:
|
227
|
+
-1: "verlede Donderdag"
|
228
|
+
0: "hierdie Donderdag"
|
229
|
+
1: "volgende Donderdag"
|
230
|
+
:thu-narrow:
|
231
|
+
:relative:
|
232
|
+
-1: "verlede Do."
|
233
|
+
0: "hierdie Do."
|
234
|
+
1: "volgende Do."
|
235
|
+
:thu-short:
|
236
|
+
:relative:
|
237
|
+
-1: "verlede Do."
|
238
|
+
0: "hierdie Do."
|
239
|
+
1: "volgende Do."
|
240
|
+
:tue:
|
241
|
+
:relative:
|
242
|
+
-1: "verlede Dinsdag"
|
243
|
+
0: "hierdie Dinsdag"
|
244
|
+
1: "volgende Dinsdag"
|
245
|
+
:tue-narrow:
|
246
|
+
:relative:
|
247
|
+
-1: "verlede Di."
|
248
|
+
0: "hierdie Di."
|
249
|
+
1: "volgende Di."
|
250
|
+
:tue-short:
|
251
|
+
:relative:
|
252
|
+
-1: "verlede Di."
|
253
|
+
0: "hierdie Di."
|
254
|
+
1: "volgende Di."
|
255
|
+
:wed:
|
256
|
+
:relative:
|
257
|
+
-1: "verlede Woensdag"
|
258
|
+
0: "hierdie Woensdag"
|
259
|
+
1: "volgende Woensdag"
|
260
|
+
:wed-narrow:
|
261
|
+
:relative:
|
262
|
+
-1: "verlede Wo."
|
263
|
+
0: "hierdie Wo."
|
264
|
+
1: "volgende Wo."
|
265
|
+
:wed-short:
|
266
|
+
:relative:
|
267
|
+
-1: "verlede Wo."
|
268
|
+
0: "hierdie Wo."
|
269
|
+
1: "volgende Wo."
|
79
270
|
:week:
|
80
|
-
:
|
81
|
-
|
82
|
-
:
|
83
|
-
|
84
|
-
:
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
:
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
271
|
+
:display_name: Week
|
272
|
+
:relative:
|
273
|
+
-1: "verlede week"
|
274
|
+
0: vandeesweek
|
275
|
+
1: "volgende week"
|
276
|
+
:relative_time:
|
277
|
+
:future:
|
278
|
+
:one: "Oor {0} week"
|
279
|
+
:other: "Oor {0} weke"
|
280
|
+
:past:
|
281
|
+
:one: "{0} week gelede"
|
282
|
+
:other: "{0} weke gelede"
|
283
|
+
:week-narrow:
|
284
|
+
:display_name: wk.
|
285
|
+
:relative_time:
|
286
|
+
:future:
|
287
|
+
:one: "oor {0} w."
|
288
|
+
:other: "oor {0} w."
|
289
|
+
:past:
|
290
|
+
:one: "{0} w. gelede"
|
291
|
+
:other: "{0} w. gelede"
|
292
|
+
:week-short:
|
293
|
+
:display_name: wk.
|
294
|
+
:relative_time:
|
295
|
+
:future:
|
296
|
+
:one: "oor {0} w."
|
297
|
+
:other: "oor {0} w."
|
298
|
+
:past:
|
299
|
+
:one: "{0} w. gelede"
|
300
|
+
:other: "{0} w. gelede"
|
301
|
+
:weekday:
|
302
|
+
:display_name: "Dag van die Week"
|
94
303
|
:year:
|
95
|
-
:
|
96
|
-
|
97
|
-
:
|
98
|
-
|
99
|
-
:
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
:
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
304
|
+
:display_name: Jaar
|
305
|
+
:relative:
|
306
|
+
-1: "verlede jaar"
|
307
|
+
0: "hierdie jaar"
|
308
|
+
1: "volgende jaar"
|
309
|
+
:relative_time:
|
310
|
+
:future:
|
311
|
+
:one: "Oor {0} jaar"
|
312
|
+
:other: "Oor {0} jaar"
|
313
|
+
:past:
|
314
|
+
:one: "{0} jaar gelede"
|
315
|
+
:other: "{0} jaar gelede"
|
316
|
+
:year-narrow:
|
317
|
+
:display_name: j.
|
318
|
+
:relative_time:
|
319
|
+
:future:
|
320
|
+
:one: "Oor {0} jaar"
|
321
|
+
:other: "Oor {0} jaar"
|
322
|
+
:past:
|
323
|
+
:one: "{0} jaar gelede"
|
324
|
+
:other: "{0} jaar gelede"
|
325
|
+
:year-short:
|
326
|
+
:display_name: j.
|
327
|
+
:relative_time:
|
328
|
+
:future:
|
329
|
+
:one: "Oor {0} jaar"
|
330
|
+
:other: "Oor {0} jaar"
|
331
|
+
:past:
|
332
|
+
:one: "{0} jaar gelede"
|
333
|
+
:other: "{0} jaar gelede"
|
334
|
+
:zone:
|
335
|
+
:display_name: Tydsone
|