iso639 1.0.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.
- data/.gitignore +17 -0
- data/.travis.yml +8 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +98 -0
- data/Rakefile +10 -0
- data/iso639.gemspec +23 -0
- data/lib/iso639.rb +80 -0
- data/lib/iso639/ISO-639-2_utf-8.txt +485 -0
- data/lib/iso639/insensitive_hash.rb +11 -0
- data/lib/iso639/version.rb +3 -0
- data/test/insensitive_hash_test.rb +14 -0
- data/test/iso639_test.rb +84 -0
- data/test/language_test.rb +46 -0
- data/test/test_helper.rb +11 -0
- metadata +112 -0
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
data/LICENSE.txt
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Copyright (c) 2012 Ryan McGeary
|
2
|
+
|
3
|
+
MIT License
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
6
|
+
a copy of this software and associated documentation files (the
|
7
|
+
"Software"), to deal in the Software without restriction, including
|
8
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
9
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
10
|
+
permit persons to whom the Software is furnished to do so, subject to
|
11
|
+
the following conditions:
|
12
|
+
|
13
|
+
The above copyright notice and this permission notice shall be
|
14
|
+
included in all copies or substantial portions of the Software.
|
15
|
+
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
17
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
18
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
19
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
20
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
21
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
22
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
# iso639 [](https://travis-ci.org/rmm5t/iso639)
|
2
|
+
|
3
|
+
The iso639 gem provides convenience methods for looking up ISO-639-1 or
|
4
|
+
ISO-639-2 language codes by their english name, 2-char, or 3-char counterpart
|
5
|
+
|
6
|
+
## Installation
|
7
|
+
|
8
|
+
Add this line to your application's Gemfile:
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
gem "iso639"
|
12
|
+
```
|
13
|
+
|
14
|
+
And then execute:
|
15
|
+
|
16
|
+
```bash
|
17
|
+
$ bundle
|
18
|
+
```
|
19
|
+
|
20
|
+
Or install it yourself as:
|
21
|
+
|
22
|
+
```bash
|
23
|
+
$ gem install iso639
|
24
|
+
```
|
25
|
+
|
26
|
+
## Usage
|
27
|
+
|
28
|
+
```ruby
|
29
|
+
require "iso639"
|
30
|
+
|
31
|
+
# Lookup by alpha-2 codes
|
32
|
+
Iso639["en"] # => #<Iso639::Language:...>
|
33
|
+
Iso639["en"].alpha2 # => "en"
|
34
|
+
Iso639["en"].alpha3 # => "eng"
|
35
|
+
Iso639["en"].alpha3_bibliographic # => "eng"
|
36
|
+
Iso639["en"].alpha3_terminology # => nil
|
37
|
+
Iso639["en"].name # => "English"
|
38
|
+
Iso639["en"].english_name # => "English"
|
39
|
+
Iso639["en"].french_name # => "anglais"
|
40
|
+
|
41
|
+
# Lookup by alpha-3-bibliographic codes
|
42
|
+
Iso639["fre"] # => #<Iso639::Language:...>
|
43
|
+
Iso639["fre"].alpha2 # => "fr"
|
44
|
+
Iso639["fre"].alpha3 # => "fre"
|
45
|
+
Iso639["fre"].alpha3_bibliographic # => "fre"
|
46
|
+
Iso639["fre"].alpha3_terminology # => "fra"
|
47
|
+
Iso639["fre"].name # => "French"
|
48
|
+
Iso639["fre"].english_name # => "French"
|
49
|
+
Iso639["fre"].french_name # => "français"
|
50
|
+
|
51
|
+
# Lookup by alpha-3-terminology codes
|
52
|
+
Iso639["fra"] # => #<Iso639::Language:...>
|
53
|
+
Iso639["fra"].alpha2 # => "fr"
|
54
|
+
Iso639["fra"].alpha3 # => "fre"
|
55
|
+
Iso639["fra"].alpha3_bibliographic # => "fre"
|
56
|
+
Iso639["fra"].alpha3_terminology # => "fra"
|
57
|
+
Iso639["fra"].name # => "French"
|
58
|
+
Iso639["fra"].english_name # => "French"
|
59
|
+
Iso639["fra"].french_name # => "français"
|
60
|
+
|
61
|
+
# Lookup by name
|
62
|
+
Iso639["German"] # => #<Iso639::Language:...>
|
63
|
+
Iso639["German"].alpha2 # => "de"
|
64
|
+
Iso639["German"].alpha3 # => "ger"
|
65
|
+
Iso639["German"].alpha3_bibliographic # => "ger"
|
66
|
+
Iso639["German"].alpha3_terminology # => "deu"
|
67
|
+
Iso639["German"].name # => "German"
|
68
|
+
Iso639["German"].english_name # => "German"
|
69
|
+
Iso639["German"].french_name # => "allemand"
|
70
|
+
|
71
|
+
# Retrieve alpha-2 codes
|
72
|
+
Iso639["English"].alpha2 # => "en"
|
73
|
+
Iso639["fre"].alpha2 # => "fr"
|
74
|
+
Iso639["deu"].alpha2 # => "de"
|
75
|
+
Iso639["pl"].alpha2 # => "pl"
|
76
|
+
|
77
|
+
# Retrieve alpha-3 codes
|
78
|
+
Iso639["english"].alpha3 # => "eng"
|
79
|
+
Iso639["fr"].alpha3 # => "fre"
|
80
|
+
Iso639["ger"].alpha3 # => "ger"
|
81
|
+
|
82
|
+
# Retrieve names
|
83
|
+
Iso639["eng"].name # => "English"
|
84
|
+
Iso639["fr"].name # => "French"
|
85
|
+
Iso639["de"].name # => "German"
|
86
|
+
Iso639["deu"].name # => "German"
|
87
|
+
Iso639["ger"].name # => "German"
|
88
|
+
Iso639["german"].name # => "German"
|
89
|
+
Iso639["GeRmAn"].name # => "German"
|
90
|
+
```
|
91
|
+
|
92
|
+
## Contributing
|
93
|
+
|
94
|
+
1. Fork it
|
95
|
+
2. Create your feature branch (`git checkout -b my-new-feature`)
|
96
|
+
3. Commit your changes (`git commit -am 'Add some feature'`)
|
97
|
+
4. Push to the branch (`git push origin my-new-feature`)
|
98
|
+
5. Create new Pull Request
|
data/Rakefile
ADDED
data/iso639.gemspec
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'iso639/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = "iso639"
|
8
|
+
gem.version = Iso639::VERSION
|
9
|
+
gem.authors = ["Ryan McGeary"]
|
10
|
+
gem.email = ["ryan@mcgeary.org"]
|
11
|
+
gem.description = %q{ISO 639-1 and ISO 639-2 lookups by name, alpha-2 code, or alpha-3 code}
|
12
|
+
gem.summary = gem.description
|
13
|
+
gem.homepage = "https://github.com/rmm5t/iso639"
|
14
|
+
|
15
|
+
gem.files = `git ls-files`.split($/)
|
16
|
+
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
|
+
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
|
+
gem.require_paths = ["lib"]
|
19
|
+
|
20
|
+
gem.add_development_dependency "minitest", "~> 4.3"
|
21
|
+
gem.add_development_dependency "minitest-emoji", "~> 1.0"
|
22
|
+
gem.add_development_dependency "rake", "~> 10.0"
|
23
|
+
end
|
data/lib/iso639.rb
ADDED
@@ -0,0 +1,80 @@
|
|
1
|
+
require "iso639/version"
|
2
|
+
require "iso639/insensitive_hash"
|
3
|
+
|
4
|
+
# Public: Various methods useful for performing ISO-639 language code lookup
|
5
|
+
# either given their ISO-639-1 or ISO-639-2 character code value or from human
|
6
|
+
# input.
|
7
|
+
#
|
8
|
+
# Examples
|
9
|
+
#
|
10
|
+
# Iso639["en"] # => #<Iso639::Language:...>
|
11
|
+
# Iso639["en"].alpha2 # => "en"
|
12
|
+
# Iso639["en"].alpha3 # => "eng"
|
13
|
+
# Iso639["en"].alpha3_bibliographic # => "eng"
|
14
|
+
# Iso639["en"].alpha3_terminology # => nil
|
15
|
+
# Iso639["en"].name # => "English"
|
16
|
+
# Iso639["en"].english_name # => "English"
|
17
|
+
# Iso639["en"].french_name # => "anglais"
|
18
|
+
#
|
19
|
+
# Iso639["German"] # => #<Iso639::Language:...>
|
20
|
+
# Iso639["German"].alpha2 # => "de"
|
21
|
+
# Iso639["German"].alpha3 # => "ger"
|
22
|
+
# Iso639["German"].alpha3_bibliographic # => "ger"
|
23
|
+
# Iso639["German"].alpha3_terminology # => "deu"
|
24
|
+
# Iso639["German"].name # => "German"
|
25
|
+
# Iso639["German"].english_name # => "German"
|
26
|
+
# Iso639["German"].french_name # => "allemand"
|
27
|
+
module Iso639
|
28
|
+
class Language
|
29
|
+
attr_reader :alpha3_bibliographic, :alpha3_terminology, :alpha2, :english_name, :french_name
|
30
|
+
alias_method :alpha3, :alpha3_bibliographic
|
31
|
+
alias_method :name, :english_name
|
32
|
+
|
33
|
+
# Public: Initialize a Language.
|
34
|
+
#
|
35
|
+
# alpha3_bibliographic - A String representing the alpha-3 bibliographic code
|
36
|
+
# alpha3_terminology - A String representing the alpha-3 terminology code
|
37
|
+
# alpha2 - A String representing the alpha-2 code
|
38
|
+
# english_name - A String representing the English name
|
39
|
+
# french_name - A String representing the French name
|
40
|
+
def initialize(alpha3_bibliographic, alpha3_terminology, alpha2, english_name, french_name)
|
41
|
+
@alpha3_bibliographic = strip_to_nil(alpha3_bibliographic)
|
42
|
+
@alpha3_terminology = strip_to_nil(alpha3_terminology)
|
43
|
+
@alpha2 = strip_to_nil(alpha2)
|
44
|
+
@english_name = strip_to_nil(english_name)
|
45
|
+
@french_name = strip_to_nil(french_name)
|
46
|
+
end
|
47
|
+
|
48
|
+
private
|
49
|
+
|
50
|
+
def strip_to_nil(val)
|
51
|
+
val = val.strip if val
|
52
|
+
return val unless val.nil? || val.empty?
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
LanguagesByAlpha2 = InsensitiveHash.new
|
57
|
+
LanguagesByAlpha3Bibliographic = LanguagesByAlpha3 = InsensitiveHash.new
|
58
|
+
LanguagesByAlpha3Terminology = InsensitiveHash.new
|
59
|
+
LanguagesByEnglishName = LanguagesByName = InsensitiveHash.new
|
60
|
+
LanguagesByFrenchName = InsensitiveHash.new
|
61
|
+
|
62
|
+
iso639_file = File.expand_path(File.join("..", "iso639", "ISO-639-2_utf-8.txt"), __FILE__)
|
63
|
+
File.readlines(iso639_file, mode: "r:UTF-8").each do |line|
|
64
|
+
lang = Language.new *line.split("|")
|
65
|
+
LanguagesByAlpha2[lang.alpha2.downcase.strip] = lang if lang.alpha2
|
66
|
+
LanguagesByAlpha3[lang.alpha3.downcase.strip] = lang if lang.alpha3
|
67
|
+
LanguagesByAlpha3Terminology[lang.alpha3_terminology.downcase.strip] = lang if lang.alpha3_terminology
|
68
|
+
LanguagesByName[lang.name.downcase.strip] = lang if lang.name
|
69
|
+
LanguagesByFrenchName[lang.french_name.downcase.strip] = lang if lang.french_name
|
70
|
+
end
|
71
|
+
|
72
|
+
def self.[](alpha_code_or_name)
|
73
|
+
lookup = alpha_code_or_name.to_s.downcase.strip
|
74
|
+
LanguagesByAlpha2[lookup] ||
|
75
|
+
LanguagesByAlpha3Bibliographic[lookup] ||
|
76
|
+
LanguagesByAlpha3Terminology[lookup] ||
|
77
|
+
LanguagesByEnglishName[lookup] ||
|
78
|
+
LanguagesByFrenchName[lookup]
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,485 @@
|
|
1
|
+
aar||aa|Afar|afar
|
2
|
+
abk||ab|Abkhazian|abkhaze
|
3
|
+
ace|||Achinese|aceh
|
4
|
+
ach|||Acoli|acoli
|
5
|
+
ada|||Adangme|adangme
|
6
|
+
ady|||Adyghe; Adygei|adyghé
|
7
|
+
afa|||Afro-Asiatic languages|afro-asiatiques, langues
|
8
|
+
afh|||Afrihili|afrihili
|
9
|
+
afr||af|Afrikaans|afrikaans
|
10
|
+
ain|||Ainu|aïnou
|
11
|
+
aka||ak|Akan|akan
|
12
|
+
akk|||Akkadian|akkadien
|
13
|
+
alb|sqi|sq|Albanian|albanais
|
14
|
+
ale|||Aleut|aléoute
|
15
|
+
alg|||Algonquian languages|algonquines, langues
|
16
|
+
alt|||Southern Altai|altai du Sud
|
17
|
+
amh||am|Amharic|amharique
|
18
|
+
ang|||English, Old (ca.450-1100)|anglo-saxon (ca.450-1100)
|
19
|
+
anp|||Angika|angika
|
20
|
+
apa|||Apache languages|apaches, langues
|
21
|
+
ara||ar|Arabic|arabe
|
22
|
+
arc|||Official Aramaic (700-300 BCE); Imperial Aramaic (700-300 BCE)|araméen d'empire (700-300 BCE)
|
23
|
+
arg||an|Aragonese|aragonais
|
24
|
+
arm|hye|hy|Armenian|arménien
|
25
|
+
arn|||Mapudungun; Mapuche|mapudungun; mapuche; mapuce
|
26
|
+
arp|||Arapaho|arapaho
|
27
|
+
art|||Artificial languages|artificielles, langues
|
28
|
+
arw|||Arawak|arawak
|
29
|
+
asm||as|Assamese|assamais
|
30
|
+
ast|||Asturian; Bable; Leonese; Asturleonese|asturien; bable; léonais; asturoléonais
|
31
|
+
ath|||Athapascan languages|athapascanes, langues
|
32
|
+
aus|||Australian languages|australiennes, langues
|
33
|
+
ava||av|Avaric|avar
|
34
|
+
ave||ae|Avestan|avestique
|
35
|
+
awa|||Awadhi|awadhi
|
36
|
+
aym||ay|Aymara|aymara
|
37
|
+
aze||az|Azerbaijani|azéri
|
38
|
+
bad|||Banda languages|banda, langues
|
39
|
+
bai|||Bamileke languages|bamiléké, langues
|
40
|
+
bak||ba|Bashkir|bachkir
|
41
|
+
bal|||Baluchi|baloutchi
|
42
|
+
bam||bm|Bambara|bambara
|
43
|
+
ban|||Balinese|balinais
|
44
|
+
baq|eus|eu|Basque|basque
|
45
|
+
bas|||Basa|basa
|
46
|
+
bat|||Baltic languages|baltes, langues
|
47
|
+
bej|||Beja; Bedawiyet|bedja
|
48
|
+
bel||be|Belarusian|biélorusse
|
49
|
+
bem|||Bemba|bemba
|
50
|
+
ben||bn|Bengali|bengali
|
51
|
+
ber|||Berber languages|berbères, langues
|
52
|
+
bho|||Bhojpuri|bhojpuri
|
53
|
+
bih||bh|Bihari languages|langues biharis
|
54
|
+
bik|||Bikol|bikol
|
55
|
+
bin|||Bini; Edo|bini; edo
|
56
|
+
bis||bi|Bislama|bichlamar
|
57
|
+
bla|||Siksika|blackfoot
|
58
|
+
bnt|||Bantu (Other)|bantoues, autres langues
|
59
|
+
bos||bs|Bosnian|bosniaque
|
60
|
+
bra|||Braj|braj
|
61
|
+
bre||br|Breton|breton
|
62
|
+
btk|||Batak languages|batak, langues
|
63
|
+
bua|||Buriat|bouriate
|
64
|
+
bug|||Buginese|bugi
|
65
|
+
bul||bg|Bulgarian|bulgare
|
66
|
+
bur|mya|my|Burmese|birman
|
67
|
+
byn|||Blin; Bilin|blin; bilen
|
68
|
+
cad|||Caddo|caddo
|
69
|
+
cai|||Central American Indian languages|amérindiennes de L'Amérique centrale, langues
|
70
|
+
car|||Galibi Carib|karib; galibi; carib
|
71
|
+
cat||ca|Catalan; Valencian|catalan; valencien
|
72
|
+
cau|||Caucasian languages|caucasiennes, langues
|
73
|
+
ceb|||Cebuano|cebuano
|
74
|
+
cel|||Celtic languages|celtiques, langues; celtes, langues
|
75
|
+
cha||ch|Chamorro|chamorro
|
76
|
+
chb|||Chibcha|chibcha
|
77
|
+
che||ce|Chechen|tchétchène
|
78
|
+
chg|||Chagatai|djaghataï
|
79
|
+
chi|zho|zh|Chinese|chinois
|
80
|
+
chk|||Chuukese|chuuk
|
81
|
+
chm|||Mari|mari
|
82
|
+
chn|||Chinook jargon|chinook, jargon
|
83
|
+
cho|||Choctaw|choctaw
|
84
|
+
chp|||Chipewyan; Dene Suline|chipewyan
|
85
|
+
chr|||Cherokee|cherokee
|
86
|
+
chu||cu|Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic|slavon d'église; vieux slave; slavon liturgique; vieux bulgare
|
87
|
+
chv||cv|Chuvash|tchouvache
|
88
|
+
chy|||Cheyenne|cheyenne
|
89
|
+
cmc|||Chamic languages|chames, langues
|
90
|
+
cop|||Coptic|copte
|
91
|
+
cor||kw|Cornish|cornique
|
92
|
+
cos||co|Corsican|corse
|
93
|
+
cpe|||Creoles and pidgins, English based|créoles et pidgins basés sur l'anglais
|
94
|
+
cpf|||Creoles and pidgins, French-based |créoles et pidgins basés sur le français
|
95
|
+
cpp|||Creoles and pidgins, Portuguese-based |créoles et pidgins basés sur le portugais
|
96
|
+
cre||cr|Cree|cree
|
97
|
+
crh|||Crimean Tatar; Crimean Turkish|tatar de Crimé
|
98
|
+
crp|||Creoles and pidgins |créoles et pidgins
|
99
|
+
csb|||Kashubian|kachoube
|
100
|
+
cus|||Cushitic languages|couchitiques, langues
|
101
|
+
cze|ces|cs|Czech|tchèque
|
102
|
+
dak|||Dakota|dakota
|
103
|
+
dan||da|Danish|danois
|
104
|
+
dar|||Dargwa|dargwa
|
105
|
+
day|||Land Dayak languages|dayak, langues
|
106
|
+
del|||Delaware|delaware
|
107
|
+
den|||Slave (Athapascan)|esclave (athapascan)
|
108
|
+
dgr|||Dogrib|dogrib
|
109
|
+
din|||Dinka|dinka
|
110
|
+
div||dv|Divehi; Dhivehi; Maldivian|maldivien
|
111
|
+
doi|||Dogri|dogri
|
112
|
+
dra|||Dravidian languages|dravidiennes, langues
|
113
|
+
dsb|||Lower Sorbian|bas-sorabe
|
114
|
+
dua|||Duala|douala
|
115
|
+
dum|||Dutch, Middle (ca.1050-1350)|néerlandais moyen (ca. 1050-1350)
|
116
|
+
dut|nld|nl|Dutch; Flemish|néerlandais; flamand
|
117
|
+
dyu|||Dyula|dioula
|
118
|
+
dzo||dz|Dzongkha|dzongkha
|
119
|
+
efi|||Efik|efik
|
120
|
+
egy|||Egyptian (Ancient)|égyptien
|
121
|
+
eka|||Ekajuk|ekajuk
|
122
|
+
elx|||Elamite|élamite
|
123
|
+
eng||en|English|anglais
|
124
|
+
enm|||English, Middle (1100-1500)|anglais moyen (1100-1500)
|
125
|
+
epo||eo|Esperanto|espéranto
|
126
|
+
est||et|Estonian|estonien
|
127
|
+
ewe||ee|Ewe|éwé
|
128
|
+
ewo|||Ewondo|éwondo
|
129
|
+
fan|||Fang|fang
|
130
|
+
fao||fo|Faroese|féroïen
|
131
|
+
fat|||Fanti|fanti
|
132
|
+
fij||fj|Fijian|fidjien
|
133
|
+
fil|||Filipino; Pilipino|filipino; pilipino
|
134
|
+
fin||fi|Finnish|finnois
|
135
|
+
fiu|||Finno-Ugrian languages|finno-ougriennes, langues
|
136
|
+
fon|||Fon|fon
|
137
|
+
fre|fra|fr|French|français
|
138
|
+
frm|||French, Middle (ca.1400-1600)|français moyen (1400-1600)
|
139
|
+
fro|||French, Old (842-ca.1400)|français ancien (842-ca.1400)
|
140
|
+
frr|||Northern Frisian|frison septentrional
|
141
|
+
frs|||Eastern Frisian|frison oriental
|
142
|
+
fry||fy|Western Frisian|frison occidental
|
143
|
+
ful||ff|Fulah|peul
|
144
|
+
fur|||Friulian|frioulan
|
145
|
+
gaa|||Ga|ga
|
146
|
+
gay|||Gayo|gayo
|
147
|
+
gba|||Gbaya|gbaya
|
148
|
+
gem|||Germanic languages|germaniques, langues
|
149
|
+
geo|kat|ka|Georgian|géorgien
|
150
|
+
ger|deu|de|German|allemand
|
151
|
+
gez|||Geez|guèze
|
152
|
+
gil|||Gilbertese|kiribati
|
153
|
+
gla||gd|Gaelic; Scottish Gaelic|gaélique; gaélique écossais
|
154
|
+
gle||ga|Irish|irlandais
|
155
|
+
glg||gl|Galician|galicien
|
156
|
+
glv||gv|Manx|manx; mannois
|
157
|
+
gmh|||German, Middle High (ca.1050-1500)|allemand, moyen haut (ca. 1050-1500)
|
158
|
+
goh|||German, Old High (ca.750-1050)|allemand, vieux haut (ca. 750-1050)
|
159
|
+
gon|||Gondi|gond
|
160
|
+
gor|||Gorontalo|gorontalo
|
161
|
+
got|||Gothic|gothique
|
162
|
+
grb|||Grebo|grebo
|
163
|
+
grc|||Greek, Ancient (to 1453)|grec ancien (jusqu'à 1453)
|
164
|
+
gre|ell|el|Greek, Modern (1453-)|grec moderne (après 1453)
|
165
|
+
grn||gn|Guarani|guarani
|
166
|
+
gsw|||Swiss German; Alemannic; Alsatian|suisse alémanique; alémanique; alsacien
|
167
|
+
guj||gu|Gujarati|goudjrati
|
168
|
+
gwi|||Gwich'in|gwich'in
|
169
|
+
hai|||Haida|haida
|
170
|
+
hat||ht|Haitian; Haitian Creole|haïtien; créole haïtien
|
171
|
+
hau||ha|Hausa|haoussa
|
172
|
+
haw|||Hawaiian|hawaïen
|
173
|
+
heb||he|Hebrew|hébreu
|
174
|
+
her||hz|Herero|herero
|
175
|
+
hil|||Hiligaynon|hiligaynon
|
176
|
+
him|||Himachali languages; Western Pahari languages|langues himachalis; langues paharis occidentales
|
177
|
+
hin||hi|Hindi|hindi
|
178
|
+
hit|||Hittite|hittite
|
179
|
+
hmn|||Hmong; Mong|hmong
|
180
|
+
hmo||ho|Hiri Motu|hiri motu
|
181
|
+
hrv||hr|Croatian|croate
|
182
|
+
hsb|||Upper Sorbian|haut-sorabe
|
183
|
+
hun||hu|Hungarian|hongrois
|
184
|
+
hup|||Hupa|hupa
|
185
|
+
iba|||Iban|iban
|
186
|
+
ibo||ig|Igbo|igbo
|
187
|
+
ice|isl|is|Icelandic|islandais
|
188
|
+
ido||io|Ido|ido
|
189
|
+
iii||ii|Sichuan Yi; Nuosu|yi de Sichuan
|
190
|
+
ijo|||Ijo languages|ijo, langues
|
191
|
+
iku||iu|Inuktitut|inuktitut
|
192
|
+
ile||ie|Interlingue; Occidental|interlingue
|
193
|
+
ilo|||Iloko|ilocano
|
194
|
+
ina||ia|Interlingua (International Auxiliary Language Association)|interlingua (langue auxiliaire internationale)
|
195
|
+
inc|||Indic languages|indo-aryennes, langues
|
196
|
+
ind||id|Indonesian|indonésien
|
197
|
+
ine|||Indo-European languages|indo-européennes, langues
|
198
|
+
inh|||Ingush|ingouche
|
199
|
+
ipk||ik|Inupiaq|inupiaq
|
200
|
+
ira|||Iranian languages|iraniennes, langues
|
201
|
+
iro|||Iroquoian languages|iroquoises, langues
|
202
|
+
ita||it|Italian|italien
|
203
|
+
jav||jv|Javanese|javanais
|
204
|
+
jbo|||Lojban|lojban
|
205
|
+
jpn||ja|Japanese|japonais
|
206
|
+
jpr|||Judeo-Persian|judéo-persan
|
207
|
+
jrb|||Judeo-Arabic|judéo-arabe
|
208
|
+
kaa|||Kara-Kalpak|karakalpak
|
209
|
+
kab|||Kabyle|kabyle
|
210
|
+
kac|||Kachin; Jingpho|kachin; jingpho
|
211
|
+
kal||kl|Kalaallisut; Greenlandic|groenlandais
|
212
|
+
kam|||Kamba|kamba
|
213
|
+
kan||kn|Kannada|kannada
|
214
|
+
kar|||Karen languages|karen, langues
|
215
|
+
kas||ks|Kashmiri|kashmiri
|
216
|
+
kau||kr|Kanuri|kanouri
|
217
|
+
kaw|||Kawi|kawi
|
218
|
+
kaz||kk|Kazakh|kazakh
|
219
|
+
kbd|||Kabardian|kabardien
|
220
|
+
kha|||Khasi|khasi
|
221
|
+
khi|||Khoisan languages|khoïsan, langues
|
222
|
+
khm||km|Central Khmer|khmer central
|
223
|
+
kho|||Khotanese; Sakan|khotanais; sakan
|
224
|
+
kik||ki|Kikuyu; Gikuyu|kikuyu
|
225
|
+
kin||rw|Kinyarwanda|rwanda
|
226
|
+
kir||ky|Kirghiz; Kyrgyz|kirghiz
|
227
|
+
kmb|||Kimbundu|kimbundu
|
228
|
+
kok|||Konkani|konkani
|
229
|
+
kom||kv|Komi|kom
|
230
|
+
kon||kg|Kongo|kongo
|
231
|
+
kor||ko|Korean|coréen
|
232
|
+
kos|||Kosraean|kosrae
|
233
|
+
kpe|||Kpelle|kpellé
|
234
|
+
krc|||Karachay-Balkar|karatchai balkar
|
235
|
+
krl|||Karelian|carélien
|
236
|
+
kro|||Kru languages|krou, langues
|
237
|
+
kru|||Kurukh|kurukh
|
238
|
+
kua||kj|Kuanyama; Kwanyama|kuanyama; kwanyama
|
239
|
+
kum|||Kumyk|koumyk
|
240
|
+
kur||ku|Kurdish|kurde
|
241
|
+
kut|||Kutenai|kutenai
|
242
|
+
lad|||Ladino|judéo-espagnol
|
243
|
+
lah|||Lahnda|lahnda
|
244
|
+
lam|||Lamba|lamba
|
245
|
+
lao||lo|Lao|lao
|
246
|
+
lat||la|Latin|latin
|
247
|
+
lav||lv|Latvian|letton
|
248
|
+
lez|||Lezghian|lezghien
|
249
|
+
lim||li|Limburgan; Limburger; Limburgish|limbourgeois
|
250
|
+
lin||ln|Lingala|lingala
|
251
|
+
lit||lt|Lithuanian|lituanien
|
252
|
+
lol|||Mongo|mongo
|
253
|
+
loz|||Lozi|lozi
|
254
|
+
ltz||lb|Luxembourgish; Letzeburgesch|luxembourgeois
|
255
|
+
lua|||Luba-Lulua|luba-lulua
|
256
|
+
lub||lu|Luba-Katanga|luba-katanga
|
257
|
+
lug||lg|Ganda|ganda
|
258
|
+
lui|||Luiseno|luiseno
|
259
|
+
lun|||Lunda|lunda
|
260
|
+
luo|||Luo (Kenya and Tanzania)|luo (Kenya et Tanzanie)
|
261
|
+
lus|||Lushai|lushai
|
262
|
+
mac|mkd|mk|Macedonian|macédonien
|
263
|
+
mad|||Madurese|madourais
|
264
|
+
mag|||Magahi|magahi
|
265
|
+
mah||mh|Marshallese|marshall
|
266
|
+
mai|||Maithili|maithili
|
267
|
+
mak|||Makasar|makassar
|
268
|
+
mal||ml|Malayalam|malayalam
|
269
|
+
man|||Mandingo|mandingue
|
270
|
+
mao|mri|mi|Maori|maori
|
271
|
+
map|||Austronesian languages|austronésiennes, langues
|
272
|
+
mar||mr|Marathi|marathe
|
273
|
+
mas|||Masai|massaï
|
274
|
+
may|msa|ms|Malay|malais
|
275
|
+
mdf|||Moksha|moksa
|
276
|
+
mdr|||Mandar|mandar
|
277
|
+
men|||Mende|mendé
|
278
|
+
mga|||Irish, Middle (900-1200)|irlandais moyen (900-1200)
|
279
|
+
mic|||Mi'kmaq; Micmac|mi'kmaq; micmac
|
280
|
+
min|||Minangkabau|minangkabau
|
281
|
+
mis|||Uncoded languages|langues non codées
|
282
|
+
mkh|||Mon-Khmer languages|môn-khmer, langues
|
283
|
+
mlg||mg|Malagasy|malgache
|
284
|
+
mlt||mt|Maltese|maltais
|
285
|
+
mnc|||Manchu|mandchou
|
286
|
+
mni|||Manipuri|manipuri
|
287
|
+
mno|||Manobo languages|manobo, langues
|
288
|
+
moh|||Mohawk|mohawk
|
289
|
+
mon||mn|Mongolian|mongol
|
290
|
+
mos|||Mossi|moré
|
291
|
+
mul|||Multiple languages|multilingue
|
292
|
+
mun|||Munda languages|mounda, langues
|
293
|
+
mus|||Creek|muskogee
|
294
|
+
mwl|||Mirandese|mirandais
|
295
|
+
mwr|||Marwari|marvari
|
296
|
+
myn|||Mayan languages|maya, langues
|
297
|
+
myv|||Erzya|erza
|
298
|
+
nah|||Nahuatl languages|nahuatl, langues
|
299
|
+
nai|||North American Indian languages|nord-amérindiennes, langues
|
300
|
+
nap|||Neapolitan|napolitain
|
301
|
+
nau||na|Nauru|nauruan
|
302
|
+
nav||nv|Navajo; Navaho|navaho
|
303
|
+
nbl||nr|Ndebele, South; South Ndebele|ndébélé du Sud
|
304
|
+
nde||nd|Ndebele, North; North Ndebele|ndébélé du Nord
|
305
|
+
ndo||ng|Ndonga|ndonga
|
306
|
+
nds|||Low German; Low Saxon; German, Low; Saxon, Low|bas allemand; bas saxon; allemand, bas; saxon, bas
|
307
|
+
nep||ne|Nepali|népalais
|
308
|
+
new|||Nepal Bhasa; Newari|nepal bhasa; newari
|
309
|
+
nia|||Nias|nias
|
310
|
+
nic|||Niger-Kordofanian languages|nigéro-kordofaniennes, langues
|
311
|
+
niu|||Niuean|niué
|
312
|
+
nno||nn|Norwegian Nynorsk; Nynorsk, Norwegian|norvégien nynorsk; nynorsk, norvégien
|
313
|
+
nob||nb|Bokmål, Norwegian; Norwegian Bokmål|norvégien bokmål
|
314
|
+
nog|||Nogai|nogaï; nogay
|
315
|
+
non|||Norse, Old|norrois, vieux
|
316
|
+
nor||no|Norwegian|norvégien
|
317
|
+
nqo|||N'Ko|n'ko
|
318
|
+
nso|||Pedi; Sepedi; Northern Sotho|pedi; sepedi; sotho du Nord
|
319
|
+
nub|||Nubian languages|nubiennes, langues
|
320
|
+
nwc|||Classical Newari; Old Newari; Classical Nepal Bhasa|newari classique
|
321
|
+
nya||ny|Chichewa; Chewa; Nyanja|chichewa; chewa; nyanja
|
322
|
+
nym|||Nyamwezi|nyamwezi
|
323
|
+
nyn|||Nyankole|nyankolé
|
324
|
+
nyo|||Nyoro|nyoro
|
325
|
+
nzi|||Nzima|nzema
|
326
|
+
oci||oc|Occitan (post 1500); Provençal|occitan (après 1500); provençal
|
327
|
+
oji||oj|Ojibwa|ojibwa
|
328
|
+
ori||or|Oriya|oriya
|
329
|
+
orm||om|Oromo|galla
|
330
|
+
osa|||Osage|osage
|
331
|
+
oss||os|Ossetian; Ossetic|ossète
|
332
|
+
ota|||Turkish, Ottoman (1500-1928)|turc ottoman (1500-1928)
|
333
|
+
oto|||Otomian languages|otomi, langues
|
334
|
+
paa|||Papuan languages|papoues, langues
|
335
|
+
pag|||Pangasinan|pangasinan
|
336
|
+
pal|||Pahlavi|pahlavi
|
337
|
+
pam|||Pampanga; Kapampangan|pampangan
|
338
|
+
pan||pa|Panjabi; Punjabi|pendjabi
|
339
|
+
pap|||Papiamento|papiamento
|
340
|
+
pau|||Palauan|palau
|
341
|
+
peo|||Persian, Old (ca.600-400 B.C.)|perse, vieux (ca. 600-400 av. J.-C.)
|
342
|
+
per|fas|fa|Persian|persan
|
343
|
+
phi|||Philippine languages|philippines, langues
|
344
|
+
phn|||Phoenician|phénicien
|
345
|
+
pli||pi|Pali|pali
|
346
|
+
pol||pl|Polish|polonais
|
347
|
+
pon|||Pohnpeian|pohnpei
|
348
|
+
por||pt|Portuguese|portugais
|
349
|
+
pra|||Prakrit languages|prâkrit, langues
|
350
|
+
pro|||Provençal, Old (to 1500)|provençal ancien (jusqu'à 1500)
|
351
|
+
pus||ps|Pushto; Pashto|pachto
|
352
|
+
qaa-qtz|||Reserved for local use|réservée à l'usage local
|
353
|
+
que||qu|Quechua|quechua
|
354
|
+
raj|||Rajasthani|rajasthani
|
355
|
+
rap|||Rapanui|rapanui
|
356
|
+
rar|||Rarotongan; Cook Islands Maori|rarotonga; maori des îles Cook
|
357
|
+
roa|||Romance languages|romanes, langues
|
358
|
+
roh||rm|Romansh|romanche
|
359
|
+
rom|||Romany|tsigane
|
360
|
+
rum|ron|ro|Romanian; Moldavian; Moldovan|roumain; moldave
|
361
|
+
run||rn|Rundi|rundi
|
362
|
+
rup|||Aromanian; Arumanian; Macedo-Romanian|aroumain; macédo-roumain
|
363
|
+
rus||ru|Russian|russe
|
364
|
+
sad|||Sandawe|sandawe
|
365
|
+
sag||sg|Sango|sango
|
366
|
+
sah|||Yakut|iakoute
|
367
|
+
sai|||South American Indian (Other)|indiennes d'Amérique du Sud, autres langues
|
368
|
+
sal|||Salishan languages|salishennes, langues
|
369
|
+
sam|||Samaritan Aramaic|samaritain
|
370
|
+
san||sa|Sanskrit|sanskrit
|
371
|
+
sas|||Sasak|sasak
|
372
|
+
sat|||Santali|santal
|
373
|
+
scn|||Sicilian|sicilien
|
374
|
+
sco|||Scots|écossais
|
375
|
+
sel|||Selkup|selkoupe
|
376
|
+
sem|||Semitic languages|sémitiques, langues
|
377
|
+
sga|||Irish, Old (to 900)|irlandais ancien (jusqu'à 900)
|
378
|
+
sgn|||Sign Languages|langues des signes
|
379
|
+
shn|||Shan|chan
|
380
|
+
sid|||Sidamo|sidamo
|
381
|
+
sin||si|Sinhala; Sinhalese|singhalais
|
382
|
+
sio|||Siouan languages|sioux, langues
|
383
|
+
sit|||Sino-Tibetan languages|sino-tibétaines, langues
|
384
|
+
sla|||Slavic languages|slaves, langues
|
385
|
+
slo|slk|sk|Slovak|slovaque
|
386
|
+
slv||sl|Slovenian|slovène
|
387
|
+
sma|||Southern Sami|sami du Sud
|
388
|
+
sme||se|Northern Sami|sami du Nord
|
389
|
+
smi|||Sami languages|sames, langues
|
390
|
+
smj|||Lule Sami|sami de Lule
|
391
|
+
smn|||Inari Sami|sami d'Inari
|
392
|
+
smo||sm|Samoan|samoan
|
393
|
+
sms|||Skolt Sami|sami skolt
|
394
|
+
sna||sn|Shona|shona
|
395
|
+
snd||sd|Sindhi|sindhi
|
396
|
+
snk|||Soninke|soninké
|
397
|
+
sog|||Sogdian|sogdien
|
398
|
+
som||so|Somali|somali
|
399
|
+
son|||Songhai languages|songhai, langues
|
400
|
+
sot||st|Sotho, Southern|sotho du Sud
|
401
|
+
spa||es|Spanish; Castilian|espagnol; castillan
|
402
|
+
srd||sc|Sardinian|sarde
|
403
|
+
srn|||Sranan Tongo|sranan tongo
|
404
|
+
srp||sr|Serbian|serbe
|
405
|
+
srr|||Serer|sérère
|
406
|
+
ssa|||Nilo-Saharan languages|nilo-sahariennes, langues
|
407
|
+
ssw||ss|Swati|swati
|
408
|
+
suk|||Sukuma|sukuma
|
409
|
+
sun||su|Sundanese|soundanais
|
410
|
+
sus|||Susu|soussou
|
411
|
+
sux|||Sumerian|sumérien
|
412
|
+
swa||sw|Swahili|swahili
|
413
|
+
swe||sv|Swedish|suédois
|
414
|
+
syc|||Classical Syriac|syriaque classique
|
415
|
+
syr|||Syriac|syriaque
|
416
|
+
tah||ty|Tahitian|tahitien
|
417
|
+
tai|||Tai languages|tai, langues
|
418
|
+
tam||ta|Tamil|tamoul
|
419
|
+
tat||tt|Tatar|tatar
|
420
|
+
tel||te|Telugu|télougou
|
421
|
+
tem|||Timne|temne
|
422
|
+
ter|||Tereno|tereno
|
423
|
+
tet|||Tetum|tetum
|
424
|
+
tgk||tg|Tajik|tadjik
|
425
|
+
tgl||tl|Tagalog|tagalog
|
426
|
+
tha||th|Thai|thaï
|
427
|
+
tib|bod|bo|Tibetan|tibétain
|
428
|
+
tig|||Tigre|tigré
|
429
|
+
tir||ti|Tigrinya|tigrigna
|
430
|
+
tiv|||Tiv|tiv
|
431
|
+
tkl|||Tokelau|tokelau
|
432
|
+
tlh|||Klingon; tlhIngan-Hol|klingon
|
433
|
+
tli|||Tlingit|tlingit
|
434
|
+
tmh|||Tamashek|tamacheq
|
435
|
+
tog|||Tonga (Nyasa)|tonga (Nyasa)
|
436
|
+
ton||to|Tonga (Tonga Islands)|tongan (Îles Tonga)
|
437
|
+
tpi|||Tok Pisin|tok pisin
|
438
|
+
tsi|||Tsimshian|tsimshian
|
439
|
+
tsn||tn|Tswana|tswana
|
440
|
+
tso||ts|Tsonga|tsonga
|
441
|
+
tuk||tk|Turkmen|turkmène
|
442
|
+
tum|||Tumbuka|tumbuka
|
443
|
+
tup|||Tupi languages|tupi, langues
|
444
|
+
tur||tr|Turkish|turc
|
445
|
+
tut|||Altaic languages|altaïques, langues
|
446
|
+
tvl|||Tuvalu|tuvalu
|
447
|
+
twi||tw|Twi|twi
|
448
|
+
tyv|||Tuvinian|touva
|
449
|
+
udm|||Udmurt|oudmourte
|
450
|
+
uga|||Ugaritic|ougaritique
|
451
|
+
uig||ug|Uighur; Uyghur|ouïgour
|
452
|
+
ukr||uk|Ukrainian|ukrainien
|
453
|
+
umb|||Umbundu|umbundu
|
454
|
+
und|||Undetermined|indéterminée
|
455
|
+
urd||ur|Urdu|ourdou
|
456
|
+
uzb||uz|Uzbek|ouszbek
|
457
|
+
vai|||Vai|vaï
|
458
|
+
ven||ve|Venda|venda
|
459
|
+
vie||vi|Vietnamese|vietnamien
|
460
|
+
vol||vo|Volapük|volapük
|
461
|
+
vot|||Votic|vote
|
462
|
+
wak|||Wakashan languages|wakashanes, langues
|
463
|
+
wal|||Walamo|walamo
|
464
|
+
war|||Waray|waray
|
465
|
+
was|||Washo|washo
|
466
|
+
wel|cym|cy|Welsh|gallois
|
467
|
+
wen|||Sorbian languages|sorabes, langues
|
468
|
+
wln||wa|Walloon|wallon
|
469
|
+
wol||wo|Wolof|wolof
|
470
|
+
xal|||Kalmyk; Oirat|kalmouk; oïrat
|
471
|
+
xho||xh|Xhosa|xhosa
|
472
|
+
yao|||Yao|yao
|
473
|
+
yap|||Yapese|yapois
|
474
|
+
yid||yi|Yiddish|yiddish
|
475
|
+
yor||yo|Yoruba|yoruba
|
476
|
+
ypk|||Yupik languages|yupik, langues
|
477
|
+
zap|||Zapotec|zapotèque
|
478
|
+
zbl|||Blissymbols; Blissymbolics; Bliss|symboles Bliss; Bliss
|
479
|
+
zen|||Zenaga|zenaga
|
480
|
+
zha||za|Zhuang; Chuang|zhuang; chuang
|
481
|
+
znd|||Zande languages|zandé, langues
|
482
|
+
zul||zu|Zulu|zoulou
|
483
|
+
zun|||Zuni|zuni
|
484
|
+
zxx|||No linguistic content; Not applicable|pas de contenu linguistique; non applicable
|
485
|
+
zza|||Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki|zaza; dimili; dimli; kirdki; kirmanjki; zazaki
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module Iso639
|
2
|
+
class InsensitiveHash < Hash # :nodoc:
|
3
|
+
def [](key)
|
4
|
+
key.respond_to?(:downcase) ? super(key.downcase) : super(key)
|
5
|
+
end
|
6
|
+
|
7
|
+
def []=(key, value)
|
8
|
+
key.respond_to?(:downcase) ? super(key.downcase, value) : super(key, value)
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
require "test_helper"
|
2
|
+
|
3
|
+
describe Iso639::InsensitiveHash do
|
4
|
+
it "should returns results ignore case" do
|
5
|
+
hash = Iso639::InsensitiveHash.new
|
6
|
+
hash["foo"] = "one thing"
|
7
|
+
hash["Bar"] = "another thing"
|
8
|
+
hash["BAZ"] = "last thing"
|
9
|
+
|
10
|
+
assert_equal hash["foo"], hash["FOO"]
|
11
|
+
assert_equal hash["BAR"], hash["bar"]
|
12
|
+
assert_equal hash["Baz"], hash["baz"]
|
13
|
+
end
|
14
|
+
end
|
data/test/iso639_test.rb
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require "test_helper"
|
3
|
+
|
4
|
+
describe Iso639::LanguagesByAlpha2 do
|
5
|
+
it "should return valid languages by alpha-2 code" do
|
6
|
+
assert_equal "en", Iso639::LanguagesByAlpha2["EN"].alpha2
|
7
|
+
assert_equal "fre", Iso639::LanguagesByAlpha2["fr"].alpha3
|
8
|
+
assert_equal "German", Iso639::LanguagesByAlpha2["de"].name
|
9
|
+
end
|
10
|
+
|
11
|
+
it "should return nil for unknown codes" do
|
12
|
+
assert_nil Iso639::LanguagesByAlpha2["xx"]
|
13
|
+
assert_nil Iso639::LanguagesByAlpha2["eng"]
|
14
|
+
assert_nil Iso639::LanguagesByAlpha2["English"]
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
describe Iso639::LanguagesByAlpha3Bibliographic do
|
19
|
+
it "should return valid languages by alpha-3 bibliographic code" do
|
20
|
+
assert_equal "en", Iso639::LanguagesByAlpha3Bibliographic["ENG"].alpha2
|
21
|
+
assert_equal "en", Iso639::LanguagesByAlpha3["eng"].alpha2
|
22
|
+
assert_equal "fre", Iso639::LanguagesByAlpha3["fre"].alpha3
|
23
|
+
assert_equal "German", Iso639::LanguagesByAlpha3["ger"].name
|
24
|
+
end
|
25
|
+
|
26
|
+
it "should return nil for unknown codes" do
|
27
|
+
assert_nil Iso639::LanguagesByAlpha3["xxx"]
|
28
|
+
assert_nil Iso639::LanguagesByAlpha3["en"]
|
29
|
+
assert_nil Iso639::LanguagesByAlpha3["English"]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
describe Iso639::LanguagesByAlpha3Terminology do
|
34
|
+
it "should return valid languages by alpha-3 terminology code" do
|
35
|
+
assert_equal "fre", Iso639::LanguagesByAlpha3Terminology["fra"].alpha3
|
36
|
+
assert_equal "German", Iso639::LanguagesByAlpha3Terminology["DEU"].name
|
37
|
+
end
|
38
|
+
|
39
|
+
it "should return nil for unknown codes" do
|
40
|
+
assert_nil Iso639::LanguagesByAlpha3Terminology["xxx"]
|
41
|
+
assert_nil Iso639::LanguagesByAlpha3Terminology["en"]
|
42
|
+
assert_nil Iso639::LanguagesByAlpha3Terminology["eng"]
|
43
|
+
assert_nil Iso639::LanguagesByAlpha3Terminology["English"]
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
describe Iso639::LanguagesByEnglishName do
|
48
|
+
it "should return valid languages by name" do
|
49
|
+
assert_equal "en", Iso639::LanguagesByName["ENGLISH"].alpha2
|
50
|
+
assert_equal "fre", Iso639::LanguagesByName["French"].alpha3
|
51
|
+
assert_equal "German", Iso639::LanguagesByName["German"].name
|
52
|
+
assert_equal "German", Iso639::LanguagesByName["german"].name
|
53
|
+
end
|
54
|
+
|
55
|
+
it "should return nil for unknown codes" do
|
56
|
+
assert_nil Iso639::LanguagesByName["xxxxxx"]
|
57
|
+
assert_nil Iso639::LanguagesByName["en"]
|
58
|
+
assert_nil Iso639::LanguagesByName["eng"]
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
describe Iso639::LanguagesByFrenchName do
|
63
|
+
it "should return valid languages by name" do
|
64
|
+
assert_equal "fre", Iso639::LanguagesByFrenchName["français"].alpha3
|
65
|
+
assert_equal "German", Iso639::LanguagesByFrenchName["allemand"].name
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should return nil for unknown codes" do
|
69
|
+
assert_nil Iso639::LanguagesByFrenchName["xxxxxx"]
|
70
|
+
assert_nil Iso639::LanguagesByFrenchName["an"]
|
71
|
+
assert_nil Iso639::LanguagesByFrenchName["English"]
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
describe Iso639 do
|
76
|
+
it "should return valid langauge by alpha-2, alpha-3, or name" do
|
77
|
+
assert_equal "en", Iso639["en"].alpha2
|
78
|
+
assert_equal "en", Iso639["EN"].alpha2
|
79
|
+
assert_equal "fr", Iso639["fre"].alpha2
|
80
|
+
assert_equal "fr", Iso639["fra"].alpha2
|
81
|
+
assert_equal "fr", Iso639["FRENCH"].alpha2
|
82
|
+
assert_equal "fr", Iso639["français"].alpha2
|
83
|
+
end
|
84
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require "test_helper"
|
3
|
+
|
4
|
+
describe Iso639::Language do
|
5
|
+
it "should respond to char codes and names" do
|
6
|
+
lang = Iso639::Language.new "eng", "", "en", "English", "anglais"
|
7
|
+
assert lang.respond_to? :alpha3_bibliographic
|
8
|
+
assert lang.respond_to? :alpha3_terminology
|
9
|
+
assert lang.respond_to? :alpha3
|
10
|
+
assert lang.respond_to? :alpha2
|
11
|
+
assert lang.respond_to? :english_name
|
12
|
+
assert lang.respond_to? :french_name
|
13
|
+
assert lang.respond_to? :name
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should assign the proper accessor from the constructor" do
|
17
|
+
lang = Iso639::Language.new "fre", "fra", "fr", "French", "français"
|
18
|
+
assert_equal "fre", lang.alpha3_bibliographic
|
19
|
+
assert_equal "fre", lang.alpha3
|
20
|
+
assert_equal "fra", lang.alpha3_terminology
|
21
|
+
assert_equal "fr", lang.alpha2
|
22
|
+
assert_equal "French", lang.english_name
|
23
|
+
assert_equal "French", lang.name
|
24
|
+
assert_equal "français", lang.french_name
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should resolve blank values to nil" do
|
28
|
+
lang = Iso639::Language.new "", "", "", "", ""
|
29
|
+
assert_nil lang.alpha3_bibliographic
|
30
|
+
assert_nil lang.alpha3_terminology
|
31
|
+
assert_nil lang.alpha2
|
32
|
+
assert_nil lang.english_name
|
33
|
+
assert_nil lang.french_name
|
34
|
+
end
|
35
|
+
|
36
|
+
it "should not be mutable" do
|
37
|
+
lang = Iso639::Language.new("eng", nil, "en", "English", "anglais").freeze
|
38
|
+
begin
|
39
|
+
lang.name = "British English"
|
40
|
+
lang.alpha2 = "br"
|
41
|
+
assert false
|
42
|
+
rescue NoMethodError
|
43
|
+
assert true
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/test/test_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: iso639
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease:
|
5
|
+
version: 1.0.0
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Ryan McGeary
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-12-24 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
version_requirements: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '4.3'
|
20
|
+
none: false
|
21
|
+
name: minitest
|
22
|
+
type: :development
|
23
|
+
prerelease: false
|
24
|
+
requirement: !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - ~>
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
version: '4.3'
|
29
|
+
none: false
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
version_requirements: !ruby/object:Gem::Requirement
|
32
|
+
requirements:
|
33
|
+
- - ~>
|
34
|
+
- !ruby/object:Gem::Version
|
35
|
+
version: '1.0'
|
36
|
+
none: false
|
37
|
+
name: minitest-emoji
|
38
|
+
type: :development
|
39
|
+
prerelease: false
|
40
|
+
requirement: !ruby/object:Gem::Requirement
|
41
|
+
requirements:
|
42
|
+
- - ~>
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '1.0'
|
45
|
+
none: false
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
version_requirements: !ruby/object:Gem::Requirement
|
48
|
+
requirements:
|
49
|
+
- - ~>
|
50
|
+
- !ruby/object:Gem::Version
|
51
|
+
version: '10.0'
|
52
|
+
none: false
|
53
|
+
name: rake
|
54
|
+
type: :development
|
55
|
+
prerelease: false
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
57
|
+
requirements:
|
58
|
+
- - ~>
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '10.0'
|
61
|
+
none: false
|
62
|
+
description: ISO 639-1 and ISO 639-2 lookups by name, alpha-2 code, or alpha-3 code
|
63
|
+
email:
|
64
|
+
- ryan@mcgeary.org
|
65
|
+
executables: []
|
66
|
+
extensions: []
|
67
|
+
extra_rdoc_files: []
|
68
|
+
files:
|
69
|
+
- .gitignore
|
70
|
+
- .travis.yml
|
71
|
+
- Gemfile
|
72
|
+
- LICENSE.txt
|
73
|
+
- README.md
|
74
|
+
- Rakefile
|
75
|
+
- iso639.gemspec
|
76
|
+
- lib/iso639.rb
|
77
|
+
- lib/iso639/ISO-639-2_utf-8.txt
|
78
|
+
- lib/iso639/insensitive_hash.rb
|
79
|
+
- lib/iso639/version.rb
|
80
|
+
- test/insensitive_hash_test.rb
|
81
|
+
- test/iso639_test.rb
|
82
|
+
- test/language_test.rb
|
83
|
+
- test/test_helper.rb
|
84
|
+
homepage: https://github.com/rmm5t/iso639
|
85
|
+
licenses: []
|
86
|
+
post_install_message:
|
87
|
+
rdoc_options: []
|
88
|
+
require_paths:
|
89
|
+
- lib
|
90
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ! '>='
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
95
|
+
none: false
|
96
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - ! '>='
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '0'
|
101
|
+
none: false
|
102
|
+
requirements: []
|
103
|
+
rubyforge_project:
|
104
|
+
rubygems_version: 1.8.23
|
105
|
+
signing_key:
|
106
|
+
specification_version: 3
|
107
|
+
summary: ISO 639-1 and ISO 639-2 lookups by name, alpha-2 code, or alpha-3 code
|
108
|
+
test_files:
|
109
|
+
- test/insensitive_hash_test.rb
|
110
|
+
- test/iso639_test.rb
|
111
|
+
- test/language_test.rb
|
112
|
+
- test/test_helper.rb
|