human_languages 0.6.0 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +5 -0
- data/CHANGELOG.md +16 -0
- data/Gemfile +3 -3
- data/Gemfile.lock +19 -17
- data/README.adoc +70 -4
- data/data/iso-639-3-macrolanguages.tsv +455 -0
- data/data/iso-639-3.tsv +27 -21
- data/human_languages.gemspec +41 -0
- data/lib/languages/language.rb +1 -1
- data/lib/languages/version.rb +1 -1
- data/lib/languages.rb +31 -16
- data/sig/languages.rbs +2 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 20b8b867dd0dfd832d335d36654c4694f052f3ac27678126a52b8c5a642f84ca
|
4
|
+
data.tar.gz: ec6824a865759f3996fa88b451e08df60f5b0dc5b3b7e7ac65da69b21aa999f6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 90e86425845dbc672d8b83f49f47c9d52daefe3cfe19f538297696e76c62e9e79636f7a29c83e7a2db50afdcc07b0af5802ee43114105c30924741bdaf1ea349
|
7
|
+
data.tar.gz: 6a11b163c23981727ee4192663438a5734b15b1af953eeb00841a389a45bca7d3a4e4e858ef384f803b3fe6906ce15c6c2c11fd1f593f5286fb5b297f0b0455f
|
data/.rubocop.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
7
7
|
|
8
8
|
## [Unreleased]
|
9
9
|
|
10
|
+
## [0.7.0] - 2023-03-08
|
11
|
+
|
12
|
+
### Added
|
13
|
+
|
14
|
+
- Add `macrolanguage` reference for languages of scope `individual` that belong to a macrolanguage.
|
15
|
+
- Add overview table in README about related and similar gems.
|
16
|
+
- Add option to search language by name case insensitively.
|
17
|
+
|
18
|
+
### Fixed
|
19
|
+
|
20
|
+
- Installation instruction in README: wrong gem name, correct is `human_languages`
|
21
|
+
|
22
|
+
### Changed
|
23
|
+
|
24
|
+
- Update ISO 639 data incorporating approved [2022 changes](https://iso639-3.sil.org/sites/iso639-3/files/reports/639-3_ChangeRequests_2022_Summary.pdf).
|
25
|
+
|
10
26
|
## [0.6.0] - 2022-06-08
|
11
27
|
|
12
28
|
### Changed
|
data/Gemfile
CHANGED
@@ -5,8 +5,8 @@ source 'https://rubygems.org'
|
|
5
5
|
# Specify your gem's dependencies in languages.gemspec
|
6
6
|
gemspec
|
7
7
|
|
8
|
-
gem 'minitest', '~> 5.
|
8
|
+
gem 'minitest', '~> 5.18'
|
9
9
|
gem 'rake', '~> 13.0'
|
10
|
-
gem 'rubocop', '~> 1.
|
11
|
-
gem 'rubocop-minitest', '~> 0.
|
10
|
+
gem 'rubocop', '~> 1.48'
|
11
|
+
gem 'rubocop-minitest', '~> 0.29.0'
|
12
12
|
gem 'rubocop-rake', '~> 0.6.0'
|
data/Gemfile.lock
CHANGED
@@ -1,47 +1,49 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
human_languages (0.
|
4
|
+
human_languages (0.7.0)
|
5
5
|
|
6
6
|
GEM
|
7
7
|
remote: https://rubygems.org/
|
8
8
|
specs:
|
9
9
|
ast (2.4.2)
|
10
|
-
|
10
|
+
json (2.6.3)
|
11
|
+
minitest (5.18.0)
|
11
12
|
parallel (1.22.1)
|
12
|
-
parser (3.1.
|
13
|
+
parser (3.2.1.0)
|
13
14
|
ast (~> 2.4.1)
|
14
15
|
rainbow (3.1.1)
|
15
16
|
rake (13.0.6)
|
16
|
-
regexp_parser (2.
|
17
|
+
regexp_parser (2.7.0)
|
17
18
|
rexml (3.2.5)
|
18
|
-
rubocop (1.
|
19
|
+
rubocop (1.48.0)
|
20
|
+
json (~> 2.3)
|
19
21
|
parallel (~> 1.10)
|
20
|
-
parser (>= 3.
|
22
|
+
parser (>= 3.2.0.0)
|
21
23
|
rainbow (>= 2.2.2, < 4.0)
|
22
24
|
regexp_parser (>= 1.8, < 3.0)
|
23
25
|
rexml (>= 3.2.5, < 4.0)
|
24
|
-
rubocop-ast (>= 1.
|
26
|
+
rubocop-ast (>= 1.26.0, < 2.0)
|
25
27
|
ruby-progressbar (~> 1.7)
|
26
|
-
unicode-display_width (>=
|
27
|
-
rubocop-ast (1.
|
28
|
-
parser (>= 3.
|
29
|
-
rubocop-minitest (0.
|
30
|
-
rubocop (>=
|
28
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
29
|
+
rubocop-ast (1.27.0)
|
30
|
+
parser (>= 3.2.1.0)
|
31
|
+
rubocop-minitest (0.29.0)
|
32
|
+
rubocop (>= 1.39, < 2.0)
|
31
33
|
rubocop-rake (0.6.0)
|
32
34
|
rubocop (~> 1.0)
|
33
|
-
ruby-progressbar (1.
|
34
|
-
unicode-display_width (2.
|
35
|
+
ruby-progressbar (1.13.0)
|
36
|
+
unicode-display_width (2.4.2)
|
35
37
|
|
36
38
|
PLATFORMS
|
37
39
|
x86_64-linux
|
38
40
|
|
39
41
|
DEPENDENCIES
|
40
42
|
human_languages!
|
41
|
-
minitest (~> 5.
|
43
|
+
minitest (~> 5.18)
|
42
44
|
rake (~> 13.0)
|
43
|
-
rubocop (~> 1.
|
44
|
-
rubocop-minitest (~> 0.
|
45
|
+
rubocop (~> 1.48)
|
46
|
+
rubocop-minitest (~> 0.29.0)
|
45
47
|
rubocop-rake (~> 0.6.0)
|
46
48
|
|
47
49
|
BUNDLED WITH
|
data/README.adoc
CHANGED
@@ -5,7 +5,7 @@ Benno Bielmeier
|
|
5
5
|
image:https://api.reuse.software/badge/github.com/bbenno/languages[link="https://api.reuse.software/info/github.com/bbenno/languages", alt="REUSE status"]
|
6
6
|
image:https://badge.fury.io/rb/human_languages.svg["Gem Version", link="https://badge.fury.io/rb/human_languages"]
|
7
7
|
|
8
|
-
image:https://img.shields.io/maintenance/yes/
|
8
|
+
image:https://img.shields.io/maintenance/yes/2023[Maintenance]
|
9
9
|
image:https://github.com/bbenno/languages/actions/workflows/main.yml/badge.svg[link="https://github.com/bbenno/languages/actions/workflows/main.yml"]
|
10
10
|
|
11
11
|
Simple, dependency-less gem providing all known human languagesfootnote:[This includes all individual languages already accounted for in ISO 639-2 as well as extinct, ancient, constructed, and historical languages.] defined in ISO 639-3
|
@@ -17,7 +17,7 @@ The ISO code set in link:data/[data/] is taken from the official ISO 639-3 regis
|
|
17
17
|
Add this line to your application’s Gemfile:
|
18
18
|
[source]
|
19
19
|
----
|
20
|
-
gem '
|
20
|
+
gem 'human_languages'
|
21
21
|
----
|
22
22
|
|
23
23
|
And then execute:
|
@@ -27,7 +27,7 @@ $ bundle install
|
|
27
27
|
|
28
28
|
Or install it yourself as:
|
29
29
|
....
|
30
|
-
$ gem install
|
30
|
+
$ gem install human_languages
|
31
31
|
....
|
32
32
|
|
33
33
|
== Usage
|
@@ -65,7 +65,13 @@ Languages.search "^Germ"
|
|
65
65
|
Languages.search /\AJapan/
|
66
66
|
----
|
67
67
|
|
68
|
-
CAUTION
|
68
|
+
[CAUTION]
|
69
|
+
--
|
70
|
+
Passing a string to `Languages.search` results in case-sensitive search.
|
71
|
+
If case-insensitive search is intended, use ignorecase regexp like `/search_pattern/i` or pass optional `case_sensitive` parameter.
|
72
|
+
[source]
|
73
|
+
Languages.search('search_pattern', case_sensitive: false)
|
74
|
+
--
|
69
75
|
|
70
76
|
.Since ISO 639-3 categorizes the languages by scope and type, one can filter by them
|
71
77
|
[source]
|
@@ -109,6 +115,66 @@ language.living? # => true
|
|
109
115
|
language.individual_language? # => true
|
110
116
|
----
|
111
117
|
|
118
|
+
Some languages of scope `individual` have a reference to their macrolanguage (scope `macrolanguage) that they belong to.
|
119
|
+
More information on macrolanguages can be found https://iso639-3.sil.org/about/scope#Macrolanguages[here].
|
120
|
+
|
121
|
+
[source]
|
122
|
+
----
|
123
|
+
language = Language[:wuu]
|
124
|
+
language.individual_language? # => true
|
125
|
+
|
126
|
+
macrolanguage = language.macrolanguage
|
127
|
+
|
128
|
+
macrolanguage.alpha3 # => "zho"
|
129
|
+
macrolanguage.name # => "Chinese"
|
130
|
+
macrolanguage.scope # => :macrolanguage
|
131
|
+
macrolanguage.macrolanguage # => nil
|
132
|
+
----
|
133
|
+
|
134
|
+
== Related Gems and Differences
|
135
|
+
|
136
|
+
Why to build another gem for ISO 639?
|
137
|
+
|
138
|
+
.Overview
|
139
|
+
[%header,cols="2,1,2,2,3"]
|
140
|
+
|===
|
141
|
+
|Gem
|
142
|
+
|ISO 639-1/-2
|
143
|
+
|ISO 639-3
|
144
|
+
|Translations
|
145
|
+
|Data Storage
|
146
|
+
|
147
|
+
|https://rubygems.org/gems/iso639[iso639]
|
148
|
+
|✅
|
149
|
+
|❌
|
150
|
+
|French
|
151
|
+
|Collection of Hashes
|
152
|
+
|
153
|
+
|https://rubygems.org/gems/iso-639[iso-639]
|
154
|
+
|✅
|
155
|
+
|❌
|
156
|
+
|French
|
157
|
+
|Array of Arrays
|
158
|
+
|
159
|
+
|https://rubygems.org/gems/iso-639-data[iso-639-data]
|
160
|
+
|✅
|
161
|
+
|(✅) only scope individual
|
162
|
+
|French for ISO 639-2
|
163
|
+
|Hash of Hashes
|
164
|
+
|
165
|
+
|https://rubygems.org/gems/language_list[language_list]
|
166
|
+
|✅
|
167
|
+
|(✅) only scope individual
|
168
|
+
|-
|
169
|
+
|Array of Language-Objects
|
170
|
+
|
171
|
+
|https://rubygems.org/gems/human_languages[human_languages]
|
172
|
+
|✅
|
173
|
+
|✅
|
174
|
+
|-
|
175
|
+
|Array of Language-Objects
|
176
|
+
|===
|
177
|
+
|
112
178
|
== Development
|
113
179
|
|
114
180
|
After checking out the repo, run `bin/setup` to install dependencies.
|
@@ -0,0 +1,455 @@
|
|
1
|
+
M_Id I_Id I_Status
|
2
|
+
aka fat A
|
3
|
+
aka twi A
|
4
|
+
ara aao A
|
5
|
+
ara abh A
|
6
|
+
ara abv A
|
7
|
+
ara acm A
|
8
|
+
ara acq A
|
9
|
+
ara acw A
|
10
|
+
ara acx A
|
11
|
+
ara acy A
|
12
|
+
ara adf A
|
13
|
+
ara aeb A
|
14
|
+
ara aec A
|
15
|
+
ara afb A
|
16
|
+
ara ajp R
|
17
|
+
ara apc A
|
18
|
+
ara apd A
|
19
|
+
ara arb A
|
20
|
+
ara arq A
|
21
|
+
ara ars A
|
22
|
+
ara ary A
|
23
|
+
ara arz A
|
24
|
+
ara auz A
|
25
|
+
ara avl A
|
26
|
+
ara ayh A
|
27
|
+
ara ayl A
|
28
|
+
ara ayn A
|
29
|
+
ara ayp A
|
30
|
+
ara bbz R
|
31
|
+
ara pga A
|
32
|
+
ara shu A
|
33
|
+
ara ssh A
|
34
|
+
aym ayc A
|
35
|
+
aym ayr A
|
36
|
+
aze azb A
|
37
|
+
aze azj A
|
38
|
+
bal bcc A
|
39
|
+
bal bgn A
|
40
|
+
bal bgp A
|
41
|
+
bik bcl A
|
42
|
+
bik bhk R
|
43
|
+
bik bln A
|
44
|
+
bik bto A
|
45
|
+
bik cts A
|
46
|
+
bik fbl A
|
47
|
+
bik lbl A
|
48
|
+
bik rbl A
|
49
|
+
bik ubl A
|
50
|
+
bnc ebk A
|
51
|
+
bnc lbk A
|
52
|
+
bnc obk A
|
53
|
+
bnc rbk A
|
54
|
+
bnc vbk A
|
55
|
+
bua bxm A
|
56
|
+
bua bxr A
|
57
|
+
bua bxu A
|
58
|
+
chm mhr A
|
59
|
+
chm mrj A
|
60
|
+
cre crj A
|
61
|
+
cre crk A
|
62
|
+
cre crl A
|
63
|
+
cre crm A
|
64
|
+
cre csw A
|
65
|
+
cre cwd A
|
66
|
+
del umu A
|
67
|
+
del unm A
|
68
|
+
den scs A
|
69
|
+
den xsl A
|
70
|
+
din dib A
|
71
|
+
din dik A
|
72
|
+
din dip A
|
73
|
+
din diw A
|
74
|
+
din dks A
|
75
|
+
doi dgo A
|
76
|
+
doi xnr A
|
77
|
+
est ekk A
|
78
|
+
est vro A
|
79
|
+
fas pes A
|
80
|
+
fas prs A
|
81
|
+
ful ffm A
|
82
|
+
ful fub A
|
83
|
+
ful fuc A
|
84
|
+
ful fue A
|
85
|
+
ful fuf A
|
86
|
+
ful fuh A
|
87
|
+
ful fui A
|
88
|
+
ful fuq A
|
89
|
+
ful fuv A
|
90
|
+
gba bdt A
|
91
|
+
gba gbp A
|
92
|
+
gba gbq A
|
93
|
+
gba gmm A
|
94
|
+
gba gso A
|
95
|
+
gba gya A
|
96
|
+
gba mdo R
|
97
|
+
gon esg A
|
98
|
+
gon ggo R
|
99
|
+
gon gno A
|
100
|
+
gon wsg A
|
101
|
+
grb gbo A
|
102
|
+
grb gec A
|
103
|
+
grb grj A
|
104
|
+
grb grv A
|
105
|
+
grb gry A
|
106
|
+
grn gnw A
|
107
|
+
grn gug A
|
108
|
+
grn gui A
|
109
|
+
grn gun A
|
110
|
+
grn nhd A
|
111
|
+
hai hax A
|
112
|
+
hai hdn A
|
113
|
+
hbs bos A
|
114
|
+
hbs cnr A
|
115
|
+
hbs hrv A
|
116
|
+
hbs srp A
|
117
|
+
hmn blu R
|
118
|
+
hmn cqd A
|
119
|
+
hmn hea A
|
120
|
+
hmn hma A
|
121
|
+
hmn hmc A
|
122
|
+
hmn hmd A
|
123
|
+
hmn hme A
|
124
|
+
hmn hmg A
|
125
|
+
hmn hmh A
|
126
|
+
hmn hmi A
|
127
|
+
hmn hmj A
|
128
|
+
hmn hml A
|
129
|
+
hmn hmm A
|
130
|
+
hmn hmp A
|
131
|
+
hmn hmq A
|
132
|
+
hmn hms A
|
133
|
+
hmn hmw A
|
134
|
+
hmn hmy A
|
135
|
+
hmn hmz A
|
136
|
+
hmn hnj A
|
137
|
+
hmn hrm A
|
138
|
+
hmn huj A
|
139
|
+
hmn mmr A
|
140
|
+
hmn muq A
|
141
|
+
hmn mww A
|
142
|
+
hmn sfm A
|
143
|
+
iku ike A
|
144
|
+
iku ikt A
|
145
|
+
ipk esi A
|
146
|
+
ipk esk A
|
147
|
+
jrb ajt R
|
148
|
+
jrb aju A
|
149
|
+
jrb jye A
|
150
|
+
jrb yhd A
|
151
|
+
jrb yud A
|
152
|
+
kau kby A
|
153
|
+
kau knc A
|
154
|
+
kau krt A
|
155
|
+
kln enb A
|
156
|
+
kln eyo A
|
157
|
+
kln niq A
|
158
|
+
kln oki A
|
159
|
+
kln pko A
|
160
|
+
kln sgc A
|
161
|
+
kln spy A
|
162
|
+
kln tec A
|
163
|
+
kln tuy A
|
164
|
+
kok gom A
|
165
|
+
kok knn A
|
166
|
+
kom koi A
|
167
|
+
kom kpv A
|
168
|
+
kon kng A
|
169
|
+
kon kwy A
|
170
|
+
kon ldi A
|
171
|
+
kpe gkp A
|
172
|
+
kpe xpe A
|
173
|
+
kur ckb A
|
174
|
+
kur kmr A
|
175
|
+
kur sdh A
|
176
|
+
lah hnd A
|
177
|
+
lah hno A
|
178
|
+
lah jat A
|
179
|
+
lah phr A
|
180
|
+
lah pmu R
|
181
|
+
lah pnb A
|
182
|
+
lah skr A
|
183
|
+
lah xhe A
|
184
|
+
lav ltg A
|
185
|
+
lav lvs A
|
186
|
+
luy bxk A
|
187
|
+
luy ida A
|
188
|
+
luy lkb A
|
189
|
+
luy lko A
|
190
|
+
luy lks A
|
191
|
+
luy lri A
|
192
|
+
luy lrm A
|
193
|
+
luy lsm A
|
194
|
+
luy lto A
|
195
|
+
luy lts A
|
196
|
+
luy lwg A
|
197
|
+
luy nle A
|
198
|
+
luy nyd A
|
199
|
+
luy rag A
|
200
|
+
man emk A
|
201
|
+
man mku A
|
202
|
+
man mlq A
|
203
|
+
man mnk A
|
204
|
+
man msc A
|
205
|
+
man mwk A
|
206
|
+
man myq R
|
207
|
+
mlg bhr A
|
208
|
+
mlg bjq R
|
209
|
+
mlg bmm A
|
210
|
+
mlg bzc A
|
211
|
+
mlg msh A
|
212
|
+
mlg plt A
|
213
|
+
mlg skg A
|
214
|
+
mlg tdx A
|
215
|
+
mlg tkg A
|
216
|
+
mlg txy A
|
217
|
+
mlg xmv A
|
218
|
+
mlg xmw A
|
219
|
+
mon khk A
|
220
|
+
mon mvf A
|
221
|
+
msa bjn A
|
222
|
+
msa btj A
|
223
|
+
msa bve A
|
224
|
+
msa bvu A
|
225
|
+
msa coa A
|
226
|
+
msa dup A
|
227
|
+
msa hji A
|
228
|
+
msa ind A
|
229
|
+
msa jak A
|
230
|
+
msa jax A
|
231
|
+
msa kvb A
|
232
|
+
msa kvr A
|
233
|
+
msa kxd A
|
234
|
+
msa lce A
|
235
|
+
msa lcf A
|
236
|
+
msa liw A
|
237
|
+
msa max A
|
238
|
+
msa meo A
|
239
|
+
msa mfa A
|
240
|
+
msa mfb A
|
241
|
+
msa min A
|
242
|
+
msa mly R
|
243
|
+
msa mqg A
|
244
|
+
msa msi A
|
245
|
+
msa mui A
|
246
|
+
msa orn A
|
247
|
+
msa ors A
|
248
|
+
msa pel A
|
249
|
+
msa pse A
|
250
|
+
msa tmw A
|
251
|
+
msa urk A
|
252
|
+
msa vkk A
|
253
|
+
msa vkt A
|
254
|
+
msa xmm A
|
255
|
+
msa zlm A
|
256
|
+
msa zmi A
|
257
|
+
msa zsm A
|
258
|
+
mwr dhd A
|
259
|
+
mwr mtr A
|
260
|
+
mwr mve A
|
261
|
+
mwr rwr A
|
262
|
+
mwr swv A
|
263
|
+
mwr wry A
|
264
|
+
nep dty A
|
265
|
+
nep npi A
|
266
|
+
nor nno A
|
267
|
+
nor nob A
|
268
|
+
oji ciw A
|
269
|
+
oji ojb A
|
270
|
+
oji ojc A
|
271
|
+
oji ojg A
|
272
|
+
oji ojs A
|
273
|
+
oji ojw A
|
274
|
+
oji otw A
|
275
|
+
ori ory A
|
276
|
+
ori spv A
|
277
|
+
orm gax A
|
278
|
+
orm gaz A
|
279
|
+
orm hae A
|
280
|
+
orm orc A
|
281
|
+
pus pbt A
|
282
|
+
pus pbu A
|
283
|
+
pus pst A
|
284
|
+
que cqu R
|
285
|
+
que qub A
|
286
|
+
que qud A
|
287
|
+
que quf A
|
288
|
+
que qug A
|
289
|
+
que quh A
|
290
|
+
que quk A
|
291
|
+
que qul A
|
292
|
+
que qup A
|
293
|
+
que qur A
|
294
|
+
que qus A
|
295
|
+
que quw A
|
296
|
+
que qux A
|
297
|
+
que quy A
|
298
|
+
que quz A
|
299
|
+
que qva A
|
300
|
+
que qvc A
|
301
|
+
que qve A
|
302
|
+
que qvh A
|
303
|
+
que qvi A
|
304
|
+
que qvj A
|
305
|
+
que qvl A
|
306
|
+
que qvm A
|
307
|
+
que qvn A
|
308
|
+
que qvo A
|
309
|
+
que qvp A
|
310
|
+
que qvs A
|
311
|
+
que qvw A
|
312
|
+
que qvz A
|
313
|
+
que qwa A
|
314
|
+
que qwc A
|
315
|
+
que qwh A
|
316
|
+
que qws A
|
317
|
+
que qxa A
|
318
|
+
que qxc A
|
319
|
+
que qxh A
|
320
|
+
que qxl A
|
321
|
+
que qxn A
|
322
|
+
que qxo A
|
323
|
+
que qxp A
|
324
|
+
que qxr A
|
325
|
+
que qxt A
|
326
|
+
que qxu A
|
327
|
+
que qxw A
|
328
|
+
raj bgq A
|
329
|
+
raj gda A
|
330
|
+
raj gju A
|
331
|
+
raj hoj A
|
332
|
+
raj mup A
|
333
|
+
raj wbr A
|
334
|
+
rom rmc A
|
335
|
+
rom rmf A
|
336
|
+
rom rml A
|
337
|
+
rom rmn A
|
338
|
+
rom rmo A
|
339
|
+
rom rmw A
|
340
|
+
rom rmy A
|
341
|
+
sqi aae A
|
342
|
+
sqi aat A
|
343
|
+
sqi aln A
|
344
|
+
sqi als A
|
345
|
+
srd sdc A
|
346
|
+
srd sdn A
|
347
|
+
srd src A
|
348
|
+
srd sro A
|
349
|
+
swa swc A
|
350
|
+
swa swh A
|
351
|
+
syr aii A
|
352
|
+
syr cld A
|
353
|
+
tmh taq A
|
354
|
+
tmh thv A
|
355
|
+
tmh thz A
|
356
|
+
tmh ttq A
|
357
|
+
uzb uzn A
|
358
|
+
uzb uzs A
|
359
|
+
yid ydd A
|
360
|
+
yid yih A
|
361
|
+
zap zaa A
|
362
|
+
zap zab A
|
363
|
+
zap zac A
|
364
|
+
zap zad A
|
365
|
+
zap zae A
|
366
|
+
zap zaf A
|
367
|
+
zap zai A
|
368
|
+
zap zam A
|
369
|
+
zap zao A
|
370
|
+
zap zaq A
|
371
|
+
zap zar A
|
372
|
+
zap zas A
|
373
|
+
zap zat A
|
374
|
+
zap zav A
|
375
|
+
zap zaw A
|
376
|
+
zap zax A
|
377
|
+
zap zca A
|
378
|
+
zap zcd A
|
379
|
+
zap zoo A
|
380
|
+
zap zpa A
|
381
|
+
zap zpb A
|
382
|
+
zap zpc A
|
383
|
+
zap zpd A
|
384
|
+
zap zpe A
|
385
|
+
zap zpf A
|
386
|
+
zap zpg A
|
387
|
+
zap zph A
|
388
|
+
zap zpi A
|
389
|
+
zap zpj A
|
390
|
+
zap zpk A
|
391
|
+
zap zpl A
|
392
|
+
zap zpm A
|
393
|
+
zap zpn A
|
394
|
+
zap zpo A
|
395
|
+
zap zpp A
|
396
|
+
zap zpq A
|
397
|
+
zap zpr A
|
398
|
+
zap zps A
|
399
|
+
zap zpt A
|
400
|
+
zap zpu A
|
401
|
+
zap zpv A
|
402
|
+
zap zpw A
|
403
|
+
zap zpx A
|
404
|
+
zap zpy A
|
405
|
+
zap zpz A
|
406
|
+
zap zsr A
|
407
|
+
zap ztc R
|
408
|
+
zap zte A
|
409
|
+
zap ztg A
|
410
|
+
zap ztl A
|
411
|
+
zap ztm A
|
412
|
+
zap ztn A
|
413
|
+
zap ztp A
|
414
|
+
zap ztq A
|
415
|
+
zap zts A
|
416
|
+
zap ztt A
|
417
|
+
zap ztu A
|
418
|
+
zap ztx A
|
419
|
+
zap zty A
|
420
|
+
zha ccx R
|
421
|
+
zha ccy R
|
422
|
+
zha zch A
|
423
|
+
zha zeh A
|
424
|
+
zha zgb A
|
425
|
+
zha zgm A
|
426
|
+
zha zgn A
|
427
|
+
zha zhd A
|
428
|
+
zha zhn A
|
429
|
+
zha zlj A
|
430
|
+
zha zln A
|
431
|
+
zha zlq A
|
432
|
+
zha zqe A
|
433
|
+
zha zyb A
|
434
|
+
zha zyg A
|
435
|
+
zha zyj A
|
436
|
+
zha zyn A
|
437
|
+
zha zzj A
|
438
|
+
zho cdo A
|
439
|
+
zho cjy A
|
440
|
+
zho cmn A
|
441
|
+
zho cnp A
|
442
|
+
zho cpx A
|
443
|
+
zho csp A
|
444
|
+
zho czh A
|
445
|
+
zho czo A
|
446
|
+
zho gan A
|
447
|
+
zho hak A
|
448
|
+
zho hsn A
|
449
|
+
zho lzh A
|
450
|
+
zho mnp A
|
451
|
+
zho nan A
|
452
|
+
zho wuu A
|
453
|
+
zho yue A
|
454
|
+
zza diq A
|
455
|
+
zza kiu A
|
data/data/iso-639-3.tsv
CHANGED
@@ -186,7 +186,6 @@ aja I L Aja (South Sudan)
|
|
186
186
|
ajg I L Aja (Benin)
|
187
187
|
aji I L Ajië
|
188
188
|
ajn I L Andajin
|
189
|
-
ajp I L South Levantine Arabic
|
190
189
|
ajs I L Algerian Jewish Sign Language
|
191
190
|
aju I L Judeo-Moroccan Arabic
|
192
191
|
ajw I E Ajawa
|
@@ -310,7 +309,7 @@ aou I L A'ou
|
|
310
309
|
aox I L Atorada
|
311
310
|
aoz I L Uab Meto
|
312
311
|
apb I L Sa'a
|
313
|
-
apc I L
|
312
|
+
apc I L Levantine Arabic
|
314
313
|
apd I L Sudanese Arabic
|
315
314
|
ape I L Bukiyip
|
316
315
|
apf I L Pahanan Agta
|
@@ -1459,6 +1458,7 @@ cwd I L Woods Cree
|
|
1459
1458
|
cwe I L Kwere
|
1460
1459
|
cwg I L Chewong
|
1461
1460
|
cwt I L Kuwaataay
|
1461
|
+
cxh I L Cha'ari
|
1462
1462
|
cya I L Nopala Chatino
|
1463
1463
|
cyb I E Cayubaba
|
1464
1464
|
cym wel cym cy I L Welsh
|
@@ -1693,6 +1693,7 @@ dsb dsb dsb I L Lower Sorbian
|
|
1693
1693
|
dse I L Dutch Sign Language
|
1694
1694
|
dsh I L Daasanach
|
1695
1695
|
dsi I L Disa
|
1696
|
+
dsk I L Dokshi
|
1696
1697
|
dsl I L Danish Sign Language
|
1697
1698
|
dsn I E Dusner
|
1698
1699
|
dso I L Desiya
|
@@ -1753,9 +1754,11 @@ dyi I L Djimini Senoufo
|
|
1753
1754
|
dym I L Yanda Dom Dogon
|
1754
1755
|
dyn I L Dyangadi
|
1755
1756
|
dyo I L Jola-Fonyi
|
1757
|
+
dyr I L Dyarim
|
1756
1758
|
dyu dyu dyu I L Dyula
|
1757
1759
|
dyy I L Djabugay
|
1758
1760
|
dza I L Tunzu
|
1761
|
+
dzd I L Daza
|
1759
1762
|
dze I E Djiwarli
|
1760
1763
|
dzg I L Dazaga
|
1761
1764
|
dzl I L Dzalakha
|
@@ -1877,6 +1880,7 @@ ett I A Etruscan
|
|
1877
1880
|
etu I L Ejagham
|
1878
1881
|
etx I L Eten
|
1879
1882
|
etz I L Semimi
|
1883
|
+
eud I L Eudeve
|
1880
1884
|
eus baq eus eu I L Basque
|
1881
1885
|
eve I L Even
|
1882
1886
|
evh I L Uvbie
|
@@ -2576,6 +2580,7 @@ ijj I L Ede Ije
|
|
2576
2580
|
ijn I L Kalabari
|
2577
2581
|
ijs I L Southeast Ijo
|
2578
2582
|
ike I L Eastern Canadian Inuktitut
|
2583
|
+
ikh I L Ikhin-Arokho
|
2579
2584
|
iki I L Iko
|
2580
2585
|
ikk I L Ika
|
2581
2586
|
ikl I L Ikulu
|
@@ -2686,6 +2691,7 @@ iya I L Iyayu
|
|
2686
2691
|
iyo I L Mesaka
|
2687
2692
|
iyx I L Yaka (Congo)
|
2688
2693
|
izh I L Ingrian
|
2694
|
+
izm I L Kizamani
|
2689
2695
|
izr I L Izere
|
2690
2696
|
izz I L Izii
|
2691
2697
|
jaa I L Jamamadí
|
@@ -2804,7 +2810,7 @@ jru I L Japrería
|
|
2804
2810
|
jsl I L Japanese Sign Language
|
2805
2811
|
jua I L Júma
|
2806
2812
|
jub I L Wannu
|
2807
|
-
juc I
|
2813
|
+
juc I H Jurchen
|
2808
2814
|
jud I L Worodougou
|
2809
2815
|
juh I L Hõne
|
2810
2816
|
jui I E Ngadjuri
|
@@ -2985,7 +2991,6 @@ kgi I L Selangor Sign Language
|
|
2985
2991
|
kgj I L Gamale Kham
|
2986
2992
|
kgk I L Kaiwá
|
2987
2993
|
kgl I E Kunggari
|
2988
|
-
kgm I E Karipúna
|
2989
2994
|
kgn I L Karingani
|
2990
2995
|
kgo I L Krongo
|
2991
2996
|
kgp I L Kaingang
|
@@ -3262,7 +3267,7 @@ krj I L Kinaray-A
|
|
3262
3267
|
krk I E Kerek
|
3263
3268
|
krl krl krl I L Karelian
|
3264
3269
|
krn I L Sapo
|
3265
|
-
krp I L
|
3270
|
+
krp I L Durop
|
3266
3271
|
krr I L Krung
|
3267
3272
|
krs I L Gbaya (Sudan)
|
3268
3273
|
krt I L Tumari Kanuri
|
@@ -3272,7 +3277,6 @@ krw I L Western Krahn
|
|
3272
3277
|
krx I L Karon
|
3273
3278
|
kry I L Kryts
|
3274
3279
|
krz I L Sota Kanum
|
3275
|
-
ksa I L Shuwa-Zamani
|
3276
3280
|
ksb I L Shambala
|
3277
3281
|
ksc I L Southern Kalinga
|
3278
3282
|
ksd I L Kuanua
|
@@ -3476,7 +3480,7 @@ lac I L Lacandon
|
|
3476
3480
|
lad lad lad I L Ladino
|
3477
3481
|
lae I L Pattani
|
3478
3482
|
laf I L Lafofa
|
3479
|
-
lag I L
|
3483
|
+
lag I L Rangi
|
3480
3484
|
lah lah lah M L Lahnda
|
3481
3485
|
lai I L Lambya
|
3482
3486
|
laj I L Lango (Uganda)
|
@@ -3580,6 +3584,7 @@ lgn I L T'apo
|
|
3580
3584
|
lgo I L Lango (South Sudan)
|
3581
3585
|
lgq I L Logba
|
3582
3586
|
lgr I L Lengo
|
3587
|
+
lgs I L Guinea-Bissau Sign Language
|
3583
3588
|
lgt I L Pahi
|
3584
3589
|
lgu I L Longgu
|
3585
3590
|
lgz I L Ligenza
|
@@ -3703,7 +3708,7 @@ loc I L Inonhan
|
|
3703
3708
|
loe I L Saluan
|
3704
3709
|
lof I L Logol
|
3705
3710
|
log I L Logo
|
3706
|
-
loh I L
|
3711
|
+
loh I L Laarim
|
3707
3712
|
loi I L Loma (Côte d'Ivoire)
|
3708
3713
|
loj I L Lou
|
3709
3714
|
lok I L Loko
|
@@ -3796,6 +3801,7 @@ luz I L Southern Luri
|
|
3796
3801
|
lva I L Maku'a
|
3797
3802
|
lvi I L Lavi
|
3798
3803
|
lvk I L Lavukaleve
|
3804
|
+
lvl I L Lwel
|
3799
3805
|
lvs I L Standard Latvian
|
3800
3806
|
lvu I L Levuka
|
3801
3807
|
lwa I L Lwalu
|
@@ -4766,7 +4772,6 @@ noi I L Noiri
|
|
4766
4772
|
noj I L Nonuya
|
4767
4773
|
nok I E Nooksack
|
4768
4774
|
nol I E Nomlaki
|
4769
|
-
nom I E Nocamán
|
4770
4775
|
non non non I H Old Norse
|
4771
4776
|
nop I L Numanggang
|
4772
4777
|
noq I L Ngongo
|
@@ -4940,6 +4945,7 @@ nzd I L Nzadi
|
|
4940
4945
|
nzi nzi nzi I L Nzima
|
4941
4946
|
nzk I L Nzakara
|
4942
4947
|
nzm I L Zeme Naga
|
4948
|
+
nzr I L Dir-Nyamzak-Mbarimi
|
4943
4949
|
nzs I L New Zealand Sign Language
|
4944
4950
|
nzu I L Teke-Nzikou
|
4945
4951
|
nzy I L Nzakambay
|
@@ -5276,7 +5282,6 @@ ple I L Palu'e
|
|
5276
5282
|
plg I L Pilagá
|
5277
5283
|
plh I L Paulohi
|
5278
5284
|
pli pli pli pi I A Pali
|
5279
|
-
plj I L Polci
|
5280
5285
|
plk I L Kohistani Shina
|
5281
5286
|
pll I L Shwe Palaung
|
5282
5287
|
pln I L Palenquero
|
@@ -5298,7 +5303,6 @@ pmf I L Pamona
|
|
5298
5303
|
pmh I H Māhārāṣṭri Prākrit
|
5299
5304
|
pmi I L Northern Pumi
|
5300
5305
|
pmj I L Southern Pumi
|
5301
|
-
pmk I E Pamlico
|
5302
5306
|
pml I E Lingua Franca
|
5303
5307
|
pmm I L Pomo
|
5304
5308
|
pmn I L Pam
|
@@ -5382,7 +5386,6 @@ prl I L Peruvian Sign Language
|
|
5382
5386
|
prm I L Kibiri
|
5383
5387
|
prn I L Prasuni
|
5384
5388
|
pro pro pro I H Old Provençal (to 1500)
|
5385
|
-
prp I L Parsi
|
5386
5389
|
prq I L Ashéninka Perené
|
5387
5390
|
prr I E Puri
|
5388
5391
|
prs I L Dari
|
@@ -5460,6 +5463,7 @@ pys I L Paraguayan Sign Language
|
|
5460
5463
|
pyu I L Puyuma
|
5461
5464
|
pyx I A Pyu (Myanmar)
|
5462
5465
|
pyy I L Pyen
|
5466
|
+
pze I L Pesse
|
5463
5467
|
pzh I L Pazeh
|
5464
5468
|
pzn I L Jejara Naga
|
5465
5469
|
qua I L Quapaw
|
@@ -5649,6 +5653,7 @@ rsk I L Ruthenian
|
|
5649
5653
|
rsl I L Russian Sign Language
|
5650
5654
|
rsm I L Miriwoong Sign Language
|
5651
5655
|
rsn I L Rwandan Sign Language
|
5656
|
+
rsw I L Rishiwa
|
5652
5657
|
rtc I L Rungtu Chin
|
5653
5658
|
rth I L Ratahan
|
5654
5659
|
rtm I L Rotuman
|
@@ -5920,7 +5925,6 @@ sll I L Salt-Yui
|
|
5920
5925
|
slm I L Pangutaran Sama
|
5921
5926
|
sln I E Salinan
|
5922
5927
|
slp I L Lamaholot
|
5923
|
-
slq I E Salchuq
|
5924
5928
|
slr I L Salar
|
5925
5929
|
sls I L Singapore Sign Language
|
5926
5930
|
slt I L Sila
|
@@ -6189,7 +6193,6 @@ syy I L Al-Sayyid Bedouin Sign Language
|
|
6189
6193
|
sza I L Semelai
|
6190
6194
|
szb I L Ngalum
|
6191
6195
|
szc I L Semaq Beri
|
6192
|
-
szd I E Seru
|
6193
6196
|
sze I L Seze
|
6194
6197
|
szg I L Sengele
|
6195
6198
|
szl I L Silesian
|
@@ -6453,7 +6456,6 @@ tmg I E Ternateño
|
|
6453
6456
|
tmh tmh tmh M L Tamashek
|
6454
6457
|
tmi I L Tutuba
|
6455
6458
|
tmj I L Samarokena
|
6456
|
-
tmk I L Northwestern Tamang
|
6457
6459
|
tml I L Tamnim Citak
|
6458
6460
|
tmm I L Tai Thanh
|
6459
6461
|
tmn I L Taman (Indonesia)
|
@@ -6531,7 +6533,6 @@ tpr I L Tuparí
|
|
6531
6533
|
tpt I L Tlachichilco Tepehua
|
6532
6534
|
tpu I L Tampuan
|
6533
6535
|
tpv I L Tanapag
|
6534
|
-
tpw I E Tupí
|
6535
6536
|
tpx I L Acatepec Me'phaa
|
6536
6537
|
tpy I L Trumai
|
6537
6538
|
tpz I L Tinputz
|
@@ -6647,6 +6648,7 @@ tuz I L Turka
|
|
6647
6648
|
tva I L Vaghua
|
6648
6649
|
tvd I L Tsuvadi
|
6649
6650
|
tve I L Te'un
|
6651
|
+
tvi I L Tulai
|
6650
6652
|
tvk I L Southeast Ambrym
|
6651
6653
|
tvl tvl tvl I L Tuvalu
|
6652
6654
|
tvm I L Tela-Masbuar
|
@@ -6779,6 +6781,7 @@ ulm I L Ulumanda'
|
|
6779
6781
|
uln I L Unserdeutsch
|
6780
6782
|
ulu I L Uma' Lung
|
6781
6783
|
ulw I L Ulwa
|
6784
|
+
uly I L Buli
|
6782
6785
|
uma I L Umatilla
|
6783
6786
|
umb umb umb I L Umbundu
|
6784
6787
|
umc I A Marrucinian
|
@@ -6893,6 +6896,7 @@ vin I L Vinza
|
|
6893
6896
|
vis I L Vishavan
|
6894
6897
|
vit I L Viti
|
6895
6898
|
viv I L Iduna
|
6899
|
+
vjk I L Bajjika
|
6896
6900
|
vka I E Kariyarra
|
6897
6901
|
vkj I L Kujarge
|
6898
6902
|
vkk I L Kaur
|
@@ -7083,7 +7087,7 @@ wms I L Wambon
|
|
7083
7087
|
wmt I L Walmajarri
|
7084
7088
|
wmw I L Mwani
|
7085
7089
|
wmx I L Womo
|
7086
|
-
wnb I L
|
7090
|
+
wnb I L Mokati
|
7087
7091
|
wnc I L Wantoat
|
7088
7092
|
wnd I E Wandarang
|
7089
7093
|
wne I L Waneci
|
@@ -7141,6 +7145,7 @@ wsr I L Owenia
|
|
7141
7145
|
wss I L Wasa
|
7142
7146
|
wsu I E Wasu
|
7143
7147
|
wsv I E Wotapuri-Katarqalai
|
7148
|
+
wtb I L Matambwe
|
7144
7149
|
wtf I L Watiwa
|
7145
7150
|
wth I E Wathawurrung
|
7146
7151
|
wti I L Berta
|
@@ -7418,7 +7423,6 @@ xso I E Solano
|
|
7418
7423
|
xsp I L Silopi
|
7419
7424
|
xsq I L Makhuwa-Saka
|
7420
7425
|
xsr I L Sherpa
|
7421
|
-
xss I E Assan
|
7422
7426
|
xsu I L Sanumá
|
7423
7427
|
xsv I E Sudovian
|
7424
7428
|
xsy I L Saisiyat
|
@@ -7532,6 +7536,7 @@ ych I L Chesu
|
|
7532
7536
|
ycl I L Lolopo
|
7533
7537
|
ycn I L Yucuna
|
7534
7538
|
ycp I L Chepya
|
7539
|
+
ycr I L Yilan Creole
|
7535
7540
|
yda I E Yanda
|
7536
7541
|
ydd I L Eastern Yiddish
|
7537
7542
|
yde I L Yangum Dey
|
@@ -7584,6 +7589,7 @@ yix I L Axi Yi
|
|
7584
7589
|
yiz I L Azhe
|
7585
7590
|
yka I L Yakan
|
7586
7591
|
ykg I L Northern Yukaghir
|
7592
|
+
ykh I L Khamnigan Mongol
|
7587
7593
|
yki I L Yoke
|
7588
7594
|
ykk I L Yakaikeke
|
7589
7595
|
ykl I L Khlula
|
@@ -7758,12 +7764,13 @@ zbt I L Batui
|
|
7758
7764
|
zbu I L Bu (Bauchi State)
|
7759
7765
|
zbw I L West Berawan
|
7760
7766
|
zca I L Coatecas Altas Zapotec
|
7761
|
-
zcd
|
7767
|
+
zcd I L Las Delicias Zapotec
|
7762
7768
|
zch I L Central Hongshuihe Zhuang
|
7763
7769
|
zdj I L Ngazidja Comorian
|
7764
7770
|
zea I L Zeeuws
|
7765
7771
|
zeg I L Zenag
|
7766
7772
|
zeh I L Eastern Hongshuihe Zhuang
|
7773
|
+
zem I L Zeem
|
7767
7774
|
zen zen zen I L Zenaga
|
7768
7775
|
zga I L Kinga
|
7769
7776
|
zgb I L Guibei Zhuang
|
@@ -7787,7 +7794,6 @@ zin I L Zinza
|
|
7787
7794
|
ziw I L Zigula
|
7788
7795
|
ziz I L Zizilivakan
|
7789
7796
|
zka I L Kaimbulawa
|
7790
|
-
zkb I E Koibal
|
7791
7797
|
zkd I L Kadu
|
7792
7798
|
zkg I A Koguryo
|
7793
7799
|
zkh I H Khorezmian
|
@@ -7805,6 +7811,7 @@ zlj I L Liujiang Zhuang
|
|
7805
7811
|
zlm I L Malay (individual language)
|
7806
7812
|
zln I L Lianshan Zhuang
|
7807
7813
|
zlq I L Liuqian Zhuang
|
7814
|
+
zlu I L Zul
|
7808
7815
|
zma I L Manda (Australia)
|
7809
7816
|
zmb I L Zimba
|
7810
7817
|
zmc I E Margany
|
@@ -7894,7 +7901,6 @@ ztt I L Tejalapan Zapotec
|
|
7894
7901
|
ztu I L Güilá Zapotec
|
7895
7902
|
ztx I L Zaachila Zapotec
|
7896
7903
|
zty I L Yatee Zapotec
|
7897
|
-
zua I L Zeem
|
7898
7904
|
zuh I L Tokano
|
7899
7905
|
zul zul zul zu I L Zulu
|
7900
7906
|
zum I L Kumzari
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require_relative 'lib/languages/version'
|
4
|
+
|
5
|
+
Gem::Specification.new do |spec|
|
6
|
+
spec.name = 'human_languages'
|
7
|
+
spec.version = Languages::VERSION
|
8
|
+
spec.authors = ['Benno Bielmeier']
|
9
|
+
spec.email = ['git@bbenno.com']
|
10
|
+
|
11
|
+
spec.summary = 'ISO 639-3 languages'
|
12
|
+
spec.description = 'ISO 639-3 is a set of codes that defines three-letter identifiers for all known human languages.'
|
13
|
+
spec.homepage = 'https://github.com/bbenno/languages'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
spec.required_ruby_version = '>= 2.7.0'
|
16
|
+
|
17
|
+
# spec.metadata["allowed_push_host"] = "TODO: Set to your gem server 'https://example.com'"
|
18
|
+
|
19
|
+
spec.metadata['homepage_uri'] = spec.homepage
|
20
|
+
spec.metadata['source_code_uri'] = spec.homepage
|
21
|
+
spec.metadata['changelog_uri'] = "#{spec.metadata['source_code_uri']}/blob/HEAD/CHANGELOG.md"
|
22
|
+
spec.metadata['rubygems_mfa_required'] = 'true'
|
23
|
+
spec.metadata['github_repo'] = 'git@github.com:bbenno/languages.git'
|
24
|
+
|
25
|
+
# Specify which files should be added to the gem when it is released.
|
26
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
27
|
+
spec.files = Dir.chdir(File.expand_path(__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/languages/language.rb
CHANGED
@@ -5,7 +5,7 @@ module Languages
|
|
5
5
|
class Language
|
6
6
|
include Comparable
|
7
7
|
|
8
|
-
attr_reader :iso639_1, :iso639_2b, :iso639_2t, :iso639_3, :scope, :type, :name # , :comment
|
8
|
+
attr_reader :iso639_1, :iso639_2b, :iso639_2t, :iso639_3, :scope, :type, :name, :macrolanguage # , :comment
|
9
9
|
|
10
10
|
def initialize(csv_attributes) # rubocop:disable Metrics/AbcSize, Metrics/CyclomaticComplexity
|
11
11
|
@iso639_3 = csv_attributes.fetch(:id).to_sym
|
data/lib/languages/version.rb
CHANGED
data/lib/languages.rb
CHANGED
@@ -8,15 +8,10 @@ require_relative 'languages/language'
|
|
8
8
|
|
9
9
|
# Provides living, extinct, ancient, historic, and constructed languages, specified in ISO 639-3
|
10
10
|
module Languages
|
11
|
-
@@data = CSV.read(File.join(File.dirname(__FILE__), '../data/iso-639-3.tsv'), headers: true, col_sep: "\t") # rubocop:disable Style/ClassVars
|
12
|
-
.map { |row| row.to_h.transform_keys { |k| k.downcase.to_sym } }
|
13
|
-
.map { |h| Language.new(h) }
|
14
|
-
.freeze
|
15
|
-
|
16
11
|
class << self
|
17
12
|
TYPES.each do |type|
|
18
13
|
define_method type do
|
19
|
-
|
14
|
+
all.select { |l| l.public_send("#{type}?") }
|
20
15
|
end
|
21
16
|
end
|
22
17
|
|
@@ -25,7 +20,7 @@ module Languages
|
|
25
20
|
scope = "#{scope}_language" unless scope.end_with? 'language'
|
26
21
|
|
27
22
|
define_method "#{scope}s" do
|
28
|
-
|
23
|
+
all.select { |l| l.public_send("#{scope}?") }
|
29
24
|
end
|
30
25
|
end
|
31
26
|
|
@@ -38,25 +33,26 @@ module Languages
|
|
38
33
|
end
|
39
34
|
end
|
40
35
|
|
41
|
-
def search(pattern)
|
42
|
-
|
36
|
+
def search(pattern, case_sensitive: true)
|
37
|
+
pattern = Regexp.new(pattern, Regexp::IGNORECASE).freeze unless case_sensitive
|
38
|
+
all.select { |l| l.name.match? pattern }
|
43
39
|
end
|
44
40
|
|
45
41
|
# Returns all human known languages, specified in ISO 639-3
|
46
42
|
def all
|
47
|
-
|
43
|
+
data.values
|
48
44
|
end
|
49
45
|
|
50
46
|
def names
|
51
|
-
|
47
|
+
all.map(&:name)
|
52
48
|
end
|
53
49
|
|
54
50
|
def alpha2_codes
|
55
|
-
|
51
|
+
all.map(&:alpha2).compact
|
56
52
|
end
|
57
53
|
|
58
54
|
def alpha3_codes
|
59
|
-
|
55
|
+
all.map(&:alpha3)
|
60
56
|
end
|
61
57
|
|
62
58
|
private
|
@@ -65,21 +61,40 @@ module Languages
|
|
65
61
|
# @param [Symbol] key ISO 639-1 identifier
|
66
62
|
# @return [Language,NilClass] language with associated with the identifier; otherwise +nil+
|
67
63
|
def get_by_alpha2(key)
|
68
|
-
|
64
|
+
all.detect { |l| l.iso639_1 == key }
|
69
65
|
end
|
70
66
|
|
71
67
|
# Returns language associated with ISO 639-2 or ISO 639-3 identifier
|
72
68
|
# @param [Symbol] key ISO 639-2 or ISO 639-3 identifier
|
73
69
|
# @return [Language,NilClass] language with associated with the identifier; otherwise +nil+
|
74
70
|
def get_by_alpha3(key)
|
75
|
-
|
71
|
+
data[key] || all.detect { |l| l.iso639_2b == key || l.iso639_2t == key }
|
76
72
|
end
|
77
73
|
|
78
74
|
# Returns language associated with ISO 639-3 reference name
|
79
75
|
# @param [String] name reference name (english)
|
80
76
|
# @return [Language,NilClass] language with associated with the name; otherwise +nil+
|
81
77
|
def get_by_name(name)
|
82
|
-
|
78
|
+
all.detect { |l| l.name.downcase == name.downcase }
|
79
|
+
end
|
80
|
+
|
81
|
+
private # rubocop:disable Lint/UselessAccessModifier
|
82
|
+
|
83
|
+
def data
|
84
|
+
@@data
|
85
|
+
end
|
86
|
+
|
87
|
+
def load_tsv_data(filename)
|
88
|
+
CSV.read(File.join(File.dirname(__FILE__), "../data/#{filename}"), headers: true, col_sep: "\t")
|
83
89
|
end
|
84
90
|
end
|
91
|
+
|
92
|
+
@@data = load_tsv_data('iso-639-3.tsv') # rubocop:disable Style/ClassVars
|
93
|
+
.map { |row| row.to_h.transform_keys { |k| k.downcase.to_sym } }
|
94
|
+
.each_with_object({}) { |l, h| h[l[:id].to_sym] = Language.new(l) }
|
95
|
+
.freeze
|
96
|
+
|
97
|
+
load_tsv_data('iso-639-3-macrolanguages.tsv')
|
98
|
+
# Ignore deprecated mappings (i.e. row[2] = 'R')
|
99
|
+
.each { |row| data[row[1].to_sym].instance_variable_set(:@macrolanguage, data[row[0].to_sym]) if row[2] == 'A' }
|
85
100
|
end
|
data/sig/languages.rbs
CHANGED
@@ -8,7 +8,7 @@ module Languages
|
|
8
8
|
@@data: Array[Language]
|
9
9
|
|
10
10
|
def self?.[]: (String | Symbol) -> Language?
|
11
|
-
def self?.search: (String|Regexp) -> Array[Language]
|
11
|
+
def self?.search: (String|Regexp pattern, ?bool case_sensitive) -> Array[Language]
|
12
12
|
|
13
13
|
def self?.all: () -> Array[Language]
|
14
14
|
def self?.names: () -> Array[String]
|
@@ -34,6 +34,7 @@ module Languages
|
|
34
34
|
attr_reader scope: String
|
35
35
|
attr_reader type: String
|
36
36
|
attr_reader name: String
|
37
|
+
attr_reader macrolanguage: Language?
|
37
38
|
|
38
39
|
alias iso639_2 iso639_2t
|
39
40
|
alias iso639_5 iso639_2
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: human_languages
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Benno Bielmeier
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-03-08 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: ISO 639-3 is a set of codes that defines three-letter identifiers for
|
14
14
|
all known human languages.
|
@@ -27,7 +27,9 @@ files:
|
|
27
27
|
- LICENSES/MIT.txt
|
28
28
|
- README.adoc
|
29
29
|
- Rakefile
|
30
|
+
- data/iso-639-3-macrolanguages.tsv
|
30
31
|
- data/iso-639-3.tsv
|
32
|
+
- human_languages.gemspec
|
31
33
|
- lib/languages.rb
|
32
34
|
- lib/languages/constants.rb
|
33
35
|
- lib/languages/language.rb
|
@@ -57,7 +59,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
57
59
|
- !ruby/object:Gem::Version
|
58
60
|
version: '0'
|
59
61
|
requirements: []
|
60
|
-
rubygems_version: 3.
|
62
|
+
rubygems_version: 3.4.7
|
61
63
|
signing_key:
|
62
64
|
specification_version: 4
|
63
65
|
summary: ISO 639-3 languages
|