i18n_countries 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.byebug_history +88 -0
- data/Gemfile +0 -1
- data/Gemfile.lock +1 -3
- data/README.md +10 -5
- data/i18n_countries.gemspec +41 -0
- data/lib/data/codes.csv +249 -0
- data/lib/i18n_countries/version.rb +1 -1
- data/lib/i18n_countries.rb +13 -3
- metadata +5 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 33287df6b658b287adf9029ebbed3cb70677d47698ce8e7b03efb5daf2818901
|
4
|
+
data.tar.gz: 67e0d8c07f89034899256ec22cf79f4e907815f929132fa93d07b2ef9f6531fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 20addd4ed222c3459d0c8043e3c6afba0ca8a5af36df983ac00f1a1a8780178468bbea94ce0dda75e5f893ec0bda39c07f4c7cdc0741d8f23bd8ac3c031b19be
|
7
|
+
data.tar.gz: 26f4f13d3758d4732318726c89a6082e41d385280c370fea08c2ed444be62c2edb67eefb487ffa4b4dd5dff4af17c57c2736b67c4f3269d5f1e19db3b29f3851
|
data/.byebug_history
CHANGED
@@ -1,4 +1,92 @@
|
|
1
1
|
c
|
2
|
+
e
|
3
|
+
n
|
4
|
+
name
|
5
|
+
s
|
6
|
+
exit
|
7
|
+
l
|
8
|
+
i18n_countries.codes.length
|
9
|
+
i18n_countries.instance_variables_get(:@codes)
|
10
|
+
i18n_countries.instance_variables
|
11
|
+
i18n_countries.codes
|
12
|
+
i18n_countries.method(:codes)
|
13
|
+
i18n_countries.methods
|
14
|
+
i18n_countries.methods(:codes)
|
15
|
+
i18n_countries.methods[:codes]
|
16
|
+
i18n_countries.codes
|
17
|
+
c
|
18
|
+
@codes['US']['a3']
|
19
|
+
@codes['US']['numeric']
|
20
|
+
@codes['AF']['numeric']
|
21
|
+
@codes['AF']['a3']
|
22
|
+
@codes.count
|
23
|
+
@codes['AF']
|
24
|
+
@codes
|
25
|
+
exit
|
26
|
+
@codes
|
27
|
+
c
|
28
|
+
exit
|
29
|
+
@codes
|
30
|
+
c
|
31
|
+
n
|
32
|
+
exit
|
33
|
+
@codes['AF']
|
34
|
+
c
|
35
|
+
exit
|
36
|
+
@codes.keys.first.strip.length
|
37
|
+
@codes.keys.first.length
|
38
|
+
@codes.keys.first
|
39
|
+
@codes['AF']
|
40
|
+
@codes
|
41
|
+
c
|
42
|
+
exit
|
43
|
+
row[0][0].ord
|
44
|
+
row[0][0]
|
45
|
+
row[0].length
|
46
|
+
row[0]
|
47
|
+
c
|
48
|
+
exit
|
49
|
+
@codes['AF']
|
50
|
+
@codes
|
51
|
+
c
|
52
|
+
exit
|
53
|
+
c
|
54
|
+
@codes.keys.first.length
|
55
|
+
@codes.keys.first.len
|
56
|
+
@codes.keys.first[2]
|
57
|
+
@codes.keys.first[1]
|
58
|
+
@codes.keys.first[0]
|
59
|
+
@codes[@codes.keys.first]
|
60
|
+
@codes['AF']
|
61
|
+
@codes['AL']
|
62
|
+
@codes
|
63
|
+
c
|
64
|
+
@codes["AF"]
|
65
|
+
@codes.keys
|
66
|
+
@codes['AF']
|
67
|
+
@codes
|
68
|
+
c
|
69
|
+
@codes
|
70
|
+
c
|
71
|
+
@codes
|
72
|
+
row
|
73
|
+
c
|
74
|
+
i18n_countries.codes.first.key
|
75
|
+
i18n_countries.codes.first
|
76
|
+
i18n_countries.codes
|
77
|
+
c
|
78
|
+
my_dir
|
79
|
+
File.directory?(dirs.first)
|
80
|
+
dirs.first
|
81
|
+
dirs
|
82
|
+
c
|
83
|
+
localized_country_files
|
84
|
+
c
|
85
|
+
i18n_countries.countries
|
86
|
+
i18n_countries
|
87
|
+
i18n.countries
|
88
|
+
locales
|
89
|
+
c
|
2
90
|
i18n_countries.countries['en_US']['JP']
|
3
91
|
i18n_countries.countries['en_US']['JA']
|
4
92
|
i18n_countries.countries['en_US']
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,12 +1,11 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
i18n_countries (0.1.
|
4
|
+
i18n_countries (0.1.3)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
|
-
byebug (11.1.3)
|
10
9
|
diff-lcs (1.5.0)
|
11
10
|
rake (13.0.6)
|
12
11
|
rspec (3.11.0)
|
@@ -27,7 +26,6 @@ PLATFORMS
|
|
27
26
|
x86_64-darwin-21
|
28
27
|
|
29
28
|
DEPENDENCIES
|
30
|
-
byebug
|
31
29
|
i18n_countries!
|
32
30
|
rake (~> 13.0)
|
33
31
|
rspec (~> 3.0)
|
data/README.md
CHANGED
@@ -13,14 +13,19 @@ If bundler is not being used to manage dependencies, install the gem by executin
|
|
13
13
|
$ gem install i18n_countries
|
14
14
|
|
15
15
|
## Usage
|
16
|
-
|
16
|
+
Country lookup is done with ISO Alpha-2 code:
|
17
17
|
$ require 'i18n_countries'
|
18
|
-
$
|
19
|
-
$ countries['en_US']['JP']) # -> 'Japan'
|
18
|
+
$ i18nc = I18nCountries.new
|
20
19
|
|
21
|
-
|
20
|
+
The returned object has two hashes. 'countries' contains a hash of hashes keyed
|
21
|
+
on locale and Alpha-2 code:
|
22
|
+
$ i18nc.countries['en_US']['JP']) # -> 'Japan'
|
22
23
|
|
23
|
-
|
24
|
+
Alpha 3 and numeric codes are available in the 'codes' hash:
|
25
|
+
$ i18nc.codes['JP']['a3'] # -> 'JPN'
|
26
|
+
$ i18nc.codes['JP']['numeric'] # -> 392
|
27
|
+
|
28
|
+
## Development
|
24
29
|
|
25
30
|
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
26
31
|
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative "lib/i18n_countries"
|
4
|
+
require_relative "lib/i18n_countries/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "i18n_countries"
|
8
|
+
spec.version = I18nCountries::VERSION
|
9
|
+
spec.authors = ["Steve Brown"]
|
10
|
+
spec.email = ["steve@zergsoft.com"]
|
11
|
+
|
12
|
+
spec.summary = "Generate a hash of multilingual country names."
|
13
|
+
spec.description = "Generates a hash of mulitilingual country names for 628 locales."
|
14
|
+
spec.homepage = "https://github.com/jpgeek/i18n_countries"
|
15
|
+
spec.license = "MIT"
|
16
|
+
spec.required_ruby_version = ">= 2.6.0"
|
17
|
+
|
18
|
+
#spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"
|
19
|
+
|
20
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
21
|
+
spec.metadata["source_code_uri"] = spec.homepage
|
22
|
+
spec.metadata["changelog_uri"] = spec.homepage + '/CHANGES'
|
23
|
+
|
24
|
+
# Specify which files should be added to the gem when it is released. The
|
25
|
+
# `git ls-files -z` loads the files in the RubyGem that have been added into
|
26
|
+
# git.
|
27
|
+
spec.files = Dir.chdir(__dir__) do
|
28
|
+
`git ls-files -z`.split("\x0").reject do |f|
|
29
|
+
(f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|travis|circleci)|appveyor)})
|
30
|
+
end
|
31
|
+
end
|
32
|
+
spec.bindir = "exe"
|
33
|
+
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
|
34
|
+
spec.require_paths = ["lib"]
|
35
|
+
|
36
|
+
# Uncomment to register a new dependency of your gem
|
37
|
+
# spec.add_dependency "example-gem", "~> 1.0"
|
38
|
+
|
39
|
+
# For more information and examples about making a new gem, check out our
|
40
|
+
# guide at: https://bundler.io/guides/creating_gem.html
|
41
|
+
end
|
data/lib/data/codes.csv
ADDED
@@ -0,0 +1,249 @@
|
|
1
|
+
AF,AFG,4
|
2
|
+
AL,ALB,8
|
3
|
+
DZ,DZA,12
|
4
|
+
AS,ASM,16
|
5
|
+
AD,AND,20
|
6
|
+
AO,AGO,24
|
7
|
+
AI,AIA,660
|
8
|
+
AQ,ATA,10
|
9
|
+
AG,ATG,28
|
10
|
+
AR,ARG,32
|
11
|
+
AM,ARM,51
|
12
|
+
AW,ABW,533
|
13
|
+
AU,AUS,36
|
14
|
+
AT,AUT,40
|
15
|
+
AZ,AZE,31
|
16
|
+
BS,BHS,44
|
17
|
+
BH,BHR,48
|
18
|
+
BD,BGD,50
|
19
|
+
BB,BRB,52
|
20
|
+
BY,BLR,112
|
21
|
+
BE,BEL,56
|
22
|
+
BZ,BLZ,84
|
23
|
+
BJ,BEN,204
|
24
|
+
BM,BMU,60
|
25
|
+
BT,BTN,64
|
26
|
+
BO,BOL,68
|
27
|
+
BQ,BES,535
|
28
|
+
BA,BIH,70
|
29
|
+
BW,BWA,72
|
30
|
+
BV,BVT,74
|
31
|
+
BR,BRA,76
|
32
|
+
IO,IOT,86
|
33
|
+
BN,BRN,96
|
34
|
+
BG,BGR,100
|
35
|
+
BF,BFA,854
|
36
|
+
BI,BDI,108
|
37
|
+
CV,CPV,132
|
38
|
+
KH,KHM,116
|
39
|
+
CM,CMR,120
|
40
|
+
CA,CAN,124
|
41
|
+
KY,CYM,136
|
42
|
+
CF,CAF,140
|
43
|
+
TD,TCD,148
|
44
|
+
CL,CHL,152
|
45
|
+
CN,CHN,156
|
46
|
+
CX,CXR,162
|
47
|
+
CC,CCK,166
|
48
|
+
CO,COL,170
|
49
|
+
KM,COM,174
|
50
|
+
CD,COD,180
|
51
|
+
CG,COG,178
|
52
|
+
CK,COK,184
|
53
|
+
CR,CRI,188
|
54
|
+
HR,HRV,191
|
55
|
+
CU,CUB,192
|
56
|
+
CW,CUW,531
|
57
|
+
CY,CYP,196
|
58
|
+
CZ,CZE,203
|
59
|
+
CI,CIV,384
|
60
|
+
DK,DNK,208
|
61
|
+
DJ,DJI,262
|
62
|
+
DM,DMA,212
|
63
|
+
DO,DOM,214
|
64
|
+
EC,ECU,218
|
65
|
+
EG,EGY,818
|
66
|
+
SV,SLV,222
|
67
|
+
GQ,GNQ,226
|
68
|
+
ER,ERI,232
|
69
|
+
EE,EST,233
|
70
|
+
SZ,SWZ,748
|
71
|
+
ET,ETH,231
|
72
|
+
FK,FLK,238
|
73
|
+
FO,FRO,234
|
74
|
+
FJ,FJI,242
|
75
|
+
FI,FIN,246
|
76
|
+
FR,FRA,250
|
77
|
+
GF,GUF,254
|
78
|
+
PF,PYF,258
|
79
|
+
TF,ATF,260
|
80
|
+
GA,GAB,266
|
81
|
+
GM,GMB,270
|
82
|
+
GE,GEO,268
|
83
|
+
DE,DEU,276
|
84
|
+
GH,GHA,288
|
85
|
+
GI,GIB,292
|
86
|
+
GR,GRC,300
|
87
|
+
GL,GRL,304
|
88
|
+
GD,GRD,308
|
89
|
+
GP,GLP,312
|
90
|
+
GU,GUM,316
|
91
|
+
GT,GTM,320
|
92
|
+
GG,GGY,831
|
93
|
+
GN,GIN,324
|
94
|
+
GW,GNB,624
|
95
|
+
GY,GUY,328
|
96
|
+
HT,HTI,332
|
97
|
+
HM,HMD,334
|
98
|
+
VA,VAT,336
|
99
|
+
HN,HND,340
|
100
|
+
HK,HKG,344
|
101
|
+
HU,HUN,348
|
102
|
+
IS,ISL,352
|
103
|
+
IN,IND,356
|
104
|
+
ID,IDN,360
|
105
|
+
IR,IRN,364
|
106
|
+
IQ,IRQ,368
|
107
|
+
IE,IRL,372
|
108
|
+
IM,IMN,833
|
109
|
+
IL,ISR,376
|
110
|
+
IT,ITA,380
|
111
|
+
JM,JAM,388
|
112
|
+
JP,JPN,392
|
113
|
+
JE,JEY,832
|
114
|
+
JO,JOR,400
|
115
|
+
KZ,KAZ,398
|
116
|
+
KE,KEN,404
|
117
|
+
KI,KIR,296
|
118
|
+
KP,PRK,408
|
119
|
+
KR,KOR,410
|
120
|
+
KW,KWT,414
|
121
|
+
KG,KGZ,417
|
122
|
+
LA,LAO,418
|
123
|
+
LV,LVA,428
|
124
|
+
LB,LBN,422
|
125
|
+
LS,LSO,426
|
126
|
+
LR,LBR,430
|
127
|
+
LY,LBY,434
|
128
|
+
LI,LIE,438
|
129
|
+
LT,LTU,440
|
130
|
+
LU,LUX,442
|
131
|
+
MO,MAC,446
|
132
|
+
MG,MDG,450
|
133
|
+
MW,MWI,454
|
134
|
+
MY,MYS,458
|
135
|
+
MV,MDV,462
|
136
|
+
ML,MLI,466
|
137
|
+
MT,MLT,470
|
138
|
+
MH,MHL,584
|
139
|
+
MQ,MTQ,474
|
140
|
+
MR,MRT,478
|
141
|
+
MU,MUS,480
|
142
|
+
YT,MYT,175
|
143
|
+
MX,MEX,484
|
144
|
+
FM,FSM,583
|
145
|
+
MD,MDA,498
|
146
|
+
MC,MCO,492
|
147
|
+
MN,MNG,496
|
148
|
+
ME,MNE,499
|
149
|
+
MS,MSR,500
|
150
|
+
MA,MAR,504
|
151
|
+
MZ,MOZ,508
|
152
|
+
MM,MMR,104
|
153
|
+
NA,NAM,516
|
154
|
+
NR,NRU,520
|
155
|
+
NP,NPL,524
|
156
|
+
NL,NLD,528
|
157
|
+
NC,NCL,540
|
158
|
+
NZ,NZL,554
|
159
|
+
NI,NIC,558
|
160
|
+
NE,NER,562
|
161
|
+
NG,NGA,566
|
162
|
+
NU,NIU,570
|
163
|
+
NF,NFK,574
|
164
|
+
MK,MKD,807
|
165
|
+
MP,MNP,580
|
166
|
+
NO,NOR,578
|
167
|
+
OM,OMN,512
|
168
|
+
PK,PAK,586
|
169
|
+
PW,PLW,585
|
170
|
+
PS,PSE,275
|
171
|
+
PA,PAN,591
|
172
|
+
PG,PNG,598
|
173
|
+
PY,PRY,600
|
174
|
+
PE,PER,604
|
175
|
+
PH,PHL,608
|
176
|
+
PN,PCN,612
|
177
|
+
PL,POL,616
|
178
|
+
PT,PRT,620
|
179
|
+
PR,PRI,630
|
180
|
+
QA,QAT,634
|
181
|
+
RO,ROU,642
|
182
|
+
RU,RUS,643
|
183
|
+
RW,RWA,646
|
184
|
+
RE,REU,638
|
185
|
+
BL,BLM,652
|
186
|
+
SH,SHN,654
|
187
|
+
KN,KNA,659
|
188
|
+
LC,LCA,662
|
189
|
+
MF,MAF,663
|
190
|
+
PM,SPM,666
|
191
|
+
VC,VCT,670
|
192
|
+
WS,WSM,882
|
193
|
+
SM,SMR,674
|
194
|
+
ST,STP,678
|
195
|
+
SA,SAU,682
|
196
|
+
SN,SEN,686
|
197
|
+
RS,SRB,688
|
198
|
+
SC,SYC,690
|
199
|
+
SL,SLE,694
|
200
|
+
SG,SGP,702
|
201
|
+
SX,SXM,534
|
202
|
+
SK,SVK,703
|
203
|
+
SI,SVN,705
|
204
|
+
SB,SLB,90
|
205
|
+
SO,SOM,706
|
206
|
+
ZA,ZAF,710
|
207
|
+
GS,SGS,239
|
208
|
+
SS,SSD,728
|
209
|
+
ES,ESP,724
|
210
|
+
LK,LKA,144
|
211
|
+
SD,SDN,729
|
212
|
+
SR,SUR,740
|
213
|
+
SJ,SJM,744
|
214
|
+
SE,SWE,752
|
215
|
+
CH,CHE,756
|
216
|
+
SY,SYR,760
|
217
|
+
TW,TWN,158
|
218
|
+
TJ,TJK,762
|
219
|
+
TZ,TZA,834
|
220
|
+
TH,THA,764
|
221
|
+
TL,TLS,626
|
222
|
+
TG,TGO,768
|
223
|
+
TK,TKL,772
|
224
|
+
TO,TON,776
|
225
|
+
TT,TTO,780
|
226
|
+
TN,TUN,788
|
227
|
+
TM,TKM,795
|
228
|
+
TC,TCA,796
|
229
|
+
TV,TUV,798
|
230
|
+
TR,TUR,792
|
231
|
+
UG,UGA,800
|
232
|
+
UA,UKR,804
|
233
|
+
AE,ARE,784
|
234
|
+
GB,GBR,826
|
235
|
+
UM,UMI,581
|
236
|
+
US,USA,840
|
237
|
+
UY,URY,858
|
238
|
+
UZ,UZB,860
|
239
|
+
VU,VUT,548
|
240
|
+
VE,VEN,862
|
241
|
+
VN,VNM,704
|
242
|
+
VG,VGB,92
|
243
|
+
VI,VIR,850
|
244
|
+
WF,WLF,876
|
245
|
+
EH,ESH,732
|
246
|
+
YE,YEM,887
|
247
|
+
ZM,ZMB,894
|
248
|
+
ZW,ZWE,716
|
249
|
+
AX,ALA,248
|
data/lib/i18n_countries.rb
CHANGED
@@ -1,15 +1,20 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'yaml'
|
4
|
+
require 'csv'
|
4
5
|
|
5
6
|
class I18nCountries
|
6
|
-
attr_reader :countries
|
7
|
+
attr_reader :countries, :codes
|
7
8
|
|
8
9
|
def initialize()
|
9
10
|
@countries ||= {}
|
10
|
-
|
11
|
+
@codes ||= {}
|
12
|
+
localized_country_files.each_pair do |locale, file_path|
|
11
13
|
@countries[locale] = Psych.load_file(file_path)
|
12
14
|
end
|
15
|
+
CSV.foreach(codes_file) do |row|
|
16
|
+
@codes[row[0]] = { 'a3' => row[1], 'numeric' => row[2].to_i }
|
17
|
+
end
|
13
18
|
end
|
14
19
|
|
15
20
|
def locales
|
@@ -17,11 +22,16 @@ class I18nCountries
|
|
17
22
|
end
|
18
23
|
|
19
24
|
private
|
20
|
-
def
|
25
|
+
def localized_country_files()
|
21
26
|
dirs = Dir.entries(File.join(my_dir, 'data')) - %w(. ..)
|
27
|
+
dirs = dirs.select { |dir| File.directory?(File.join(my_dir, 'data', dir)) }
|
22
28
|
dirs.to_h { |dir| [dir, File.join(my_dir, 'data', dir, 'country.yaml')] }
|
23
29
|
end
|
24
30
|
|
31
|
+
def codes_file()
|
32
|
+
file = File.join(my_dir, 'data', 'codes.csv')
|
33
|
+
end
|
34
|
+
|
25
35
|
def my_dir()
|
26
36
|
__dir__
|
27
37
|
end
|
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: i18n_countries
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Steve Brown
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-07-
|
12
|
-
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: byebug
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - ">="
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0'
|
20
|
-
type: :development
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - ">="
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '0'
|
11
|
+
date: 2022-07-28 00:00:00.000000000 Z
|
12
|
+
dependencies: []
|
27
13
|
description: Generates a hash of mulitilingual country names for 628 locales.
|
28
14
|
email:
|
29
15
|
- steve@zergsoft.com
|
@@ -40,6 +26,7 @@ files:
|
|
40
26
|
- LICENSE.txt
|
41
27
|
- README.md
|
42
28
|
- Rakefile
|
29
|
+
- i18n_countries.gemspec
|
43
30
|
- lib/data/af/country.yaml
|
44
31
|
- lib/data/af_NA/country.yaml
|
45
32
|
- lib/data/af_ZA/country.yaml
|
@@ -113,6 +100,7 @@ files:
|
|
113
100
|
- lib/data/ca_IT/country.yaml
|
114
101
|
- lib/data/ce/country.yaml
|
115
102
|
- lib/data/ce_RU/country.yaml
|
103
|
+
- lib/data/codes.csv
|
116
104
|
- lib/data/cs/country.yaml
|
117
105
|
- lib/data/cs_CZ/country.yaml
|
118
106
|
- lib/data/cy/country.yaml
|