i18n_form_helper 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. checksums.yaml +15 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +38 -0
  5. data/lib/i18n_form_helper/form_select_options.rb +1292 -0
  6. data/lib/i18n_form_helper/version.rb +3 -0
  7. data/lib/i18n_form_helper.rb +35 -0
  8. data/lib/tasks/i18n_form_helper_tasks.rake +4 -0
  9. data/test/dummy/README.rdoc +261 -0
  10. data/test/dummy/Rakefile +7 -0
  11. data/test/dummy/app/assets/javascripts/application.js +13 -0
  12. data/test/dummy/app/assets/javascripts/languages.js +2 -0
  13. data/test/dummy/app/assets/stylesheets/application.css +13 -0
  14. data/test/dummy/app/assets/stylesheets/languages.css +4 -0
  15. data/test/dummy/app/controllers/application_controller.rb +3 -0
  16. data/test/dummy/app/controllers/languages_controller.rb +4 -0
  17. data/test/dummy/app/helpers/application_helper.rb +2 -0
  18. data/test/dummy/app/helpers/languages_helper.rb +2 -0
  19. data/test/dummy/app/models/language.rb +3 -0
  20. data/test/dummy/app/views/languages/index.html.erb +49 -0
  21. data/test/dummy/app/views/layouts/application.html.erb +21 -0
  22. data/test/dummy/config/application.rb +59 -0
  23. data/test/dummy/config/boot.rb +10 -0
  24. data/test/dummy/config/database.yml +25 -0
  25. data/test/dummy/config/environment.rb +5 -0
  26. data/test/dummy/config/environments/development.rb +37 -0
  27. data/test/dummy/config/environments/production.rb +67 -0
  28. data/test/dummy/config/environments/test.rb +37 -0
  29. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  30. data/test/dummy/config/initializers/inflections.rb +15 -0
  31. data/test/dummy/config/initializers/mime_types.rb +5 -0
  32. data/test/dummy/config/initializers/secret_token.rb +7 -0
  33. data/test/dummy/config/initializers/session_store.rb +8 -0
  34. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  35. data/test/dummy/config/locales/en.yml +5 -0
  36. data/test/dummy/config/routes.rb +60 -0
  37. data/test/dummy/config.ru +4 -0
  38. data/test/dummy/db/development.sqlite3 +0 -0
  39. data/test/dummy/db/migrate/20131217053022_create_languages.rb +9 -0
  40. data/test/dummy/db/schema.rb +22 -0
  41. data/test/dummy/db/test.sqlite3 +0 -0
  42. data/test/dummy/log/development.log +313 -0
  43. data/test/dummy/log/test.log +1318 -0
  44. data/test/dummy/public/404.html +26 -0
  45. data/test/dummy/public/422.html +26 -0
  46. data/test/dummy/public/500.html +25 -0
  47. data/test/dummy/public/favicon.ico +0 -0
  48. data/test/dummy/script/rails +6 -0
  49. data/test/dummy/test/fixtures/languages.yml +7 -0
  50. data/test/dummy/test/functional/languages_controller_test.rb +9 -0
  51. data/test/dummy/test/unit/helpers/languages_helper_test.rb +4 -0
  52. data/test/dummy/test/unit/language_test.rb +7 -0
  53. data/test/dummy/tmp/cache/assets/CA2/BF0/sprockets%2Fb56ac30a59512f109e072c6c351195a8 +0 -0
  54. data/test/dummy/tmp/cache/assets/CD8/370/sprockets%2F357970feca3ac29060c1e3861e2c0953 +0 -0
  55. data/test/dummy/tmp/cache/assets/D2F/B50/sprockets%2Feb222894dcb95bae4f2a7e227222b006 +0 -0
  56. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  57. data/test/dummy/tmp/cache/assets/D4E/1B0/sprockets%2Ff7cbd26ba1d28d48de824f0e94586655 +0 -0
  58. data/test/dummy/tmp/cache/assets/D5A/EA0/sprockets%2Fd771ace226fc8215a3572e0aa35bb0d6 +0 -0
  59. data/test/dummy/tmp/cache/assets/DAA/470/sprockets%2Fafb782256c9207973dfb6e63becb9b5c +0 -0
  60. data/test/dummy/tmp/cache/assets/DDC/400/sprockets%2Fcffd775d018f68ce5dba1ee0d951a994 +0 -0
  61. data/test/dummy/tmp/cache/assets/DEA/820/sprockets%2Fa3eb909f1fba592b6a225bc63abc1c2e +0 -0
  62. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  63. data/test/dummy/tmp/capybara/capybara-201312171702124011360920.html +203 -0
  64. data/test/dummy/tmp/capybara/capybara-201312171702595894767062.html +203 -0
  65. data/test/dummy/tmp/capybara/capybara-201312171703428962416286.html +203 -0
  66. data/test/dummy/tmp/capybara/capybara-201312171704117555796382.html +203 -0
  67. data/test/dummy/tmp/capybara/capybara-201312172053002673059159.html +1088 -0
  68. data/test/dummy/tmp/capybara/capybara-201312172056035791412287.html +1088 -0
  69. data/test/dummy/tmp/capybara/capybara-201312172100198351601528.html +1088 -0
  70. data/test/dummy/tmp/capybara/capybara-201312172107323114657460.html +1088 -0
  71. data/test/dummy/tmp/capybara/capybara-201312172108211650964312.html +1090 -0
  72. data/test/dummy/tmp/capybara/capybara-20131217211129299664262.html +1091 -0
  73. data/test/dummy/tmp/capybara/capybara-201312172113193631383614.html +1091 -0
  74. data/test/dummy/tmp/capybara/capybara-201312172117421338188983.html +1088 -0
  75. data/test/form_select_options_test.rb +38 -0
  76. data/test/i18n_form_helper_test.rb +20 -0
  77. data/test/test_helper.rb +22 -0
  78. metadata +203 -0
@@ -0,0 +1,1292 @@
1
+ #encoding: utf-8
2
+
3
+ module FormSelectOptions
4
+
5
+ module LanguageOptions
6
+
7
+ def self.native_name_to_native_name
8
+ get_select_options(:native, :native)
9
+ end
10
+
11
+ def self.english_name_to_english_name
12
+ get_select_options(:name, :name)
13
+ end
14
+
15
+ def self.code_to_english_name
16
+ get_select_options(:code, :name)
17
+ end
18
+
19
+ def self.code_to_native_name
20
+ get_select_options(:code, :native)
21
+ end
22
+
23
+ private
24
+ def self.get_select_options(first_key, last_key)
25
+ options = []
26
+ FormSelectOptions.language_families.each do |family|
27
+ family.values.each do |values|
28
+ values.each { |v| options << [v[first_key], v[last_key]] }
29
+ end
30
+ end
31
+ options
32
+ end
33
+
34
+ end
35
+
36
+ module CountryOptions
37
+
38
+ # ISO 3166-1 alpha-2 code
39
+ def self.code_to_english_country_name
40
+ get_select_options(:code, :name)
41
+ end
42
+
43
+ def self.english_country_name_to_code
44
+ get_select_options(:name, :code)
45
+ end
46
+
47
+ def self.english_country_name_to_english_country_name
48
+ get_select_options(:name, :name)
49
+ end
50
+
51
+ private
52
+
53
+ def self.get_select_options(first_key, last_key)
54
+ FormSelectOptions.get_alpha_two_countries.map do |country|
55
+ [country[first_key], country[last_key]]
56
+ end
57
+ end
58
+
59
+ end
60
+
61
+ def self.get_alpha_two_countries
62
+ [
63
+ {code: "AD", name: "Andorra"},
64
+ {code: "AE", name: "United Arab Emirates"},
65
+ {code: "AF", name: "Afghanistan"},
66
+ {code: "AG", name: "Antigua and Barbuda"},
67
+ {code: "AI", name: "Anguilla"},
68
+ {code: "AL", name: "Albania"},
69
+ {code: "AM", name: "Armenia"},
70
+ {code: "AO", name: "Angola"},
71
+ {code: "AQ", name: "Antarctica"},
72
+ {code: "AR", name: "Argentina"},
73
+ {code: "AS", name: "American Samoa"},
74
+ {code: "AT", name: "Austria"},
75
+ {code: "AU", name: "Australia"},
76
+ {code: "AW", name: "Aruba"},
77
+ {code: "AX", name: "Åland Islands"},
78
+ {code: "AZ", name: "Azerbaijan"},
79
+ {code: "BA", name: "Bosnia and Herzegovina"},
80
+ {code: "BB", name: "Barbados"},
81
+ {code: "BD", name: "Bangladesh"},
82
+ {code: "BE", name: "Belgium"},
83
+ {code: "BF", name: "Burkina Faso"},
84
+ {code: "BG", name: "Bulgaria"},
85
+ {code: "BH", name: "Bahrain"},
86
+ {code: "BI", name: "Burundi"},
87
+ {code: "BJ", name: "Benin"},
88
+ {code: "BL", name: "Saint Barthélemy"},
89
+ {code: "BM", name: "Bermuda"},
90
+ {code: "BN", name: "Brunei Darussalam"},
91
+ {code: "BO", name: "Bolivia, Plurinational State of"},
92
+ {code: "BQ", name: "Bonaire, Sint Eustatius and Saba"},
93
+ {code: "BR", name: "Brazil"},
94
+ {code: "BS", name: "Bahamas"},
95
+ {code: "BT", name: "Bhutan"},
96
+ {code: "BV", name: "Bouvet Island"},
97
+ {code: "BW", name: "Botswana"},
98
+ {code: "BY", name: "Belarus"},
99
+ {code: "BZ", name: "Belize"},
100
+ {code: "CA", name: "Canada"},
101
+ {code: "CC", name: "Cocos (Keeling) Islands"},
102
+ {code: "CD", name: "Congo, the Democratic Republic of the"},
103
+ {code: "CF", name: "Central African Republic"},
104
+ {code: "CG", name: "Congo"},
105
+ {code: "CH", name: "Switzerland"},
106
+ {code: "CI", name: "Côte d'Ivoire"},
107
+ {code: "CK", name: "Cook Islands"},
108
+ {code: "CL", name: "Chile"},
109
+ {code: "CM", name: "Cameroon"},
110
+ {code: "CN", name: "China"},
111
+ {code: "CO", name: "Colombia"},
112
+ {code: "CR", name: "Costa Rica"},
113
+ {code: "CU", name: "Cuba"},
114
+ {code: "CV", name: "Cape Verde"},
115
+ {code: "CW", name: "Curaçao"},
116
+ {code: "CX", name: "Christmas Island"},
117
+ {code: "CY", name: "Cyprus"},
118
+ {code: "CZ", name: "Czech Republic"},
119
+ {code: "DE", name: "Germany"},
120
+ {code: "DJ", name: "Djibouti"},
121
+ {code: "DK", name: "Denmark"},
122
+ {code: "DM", name: "Dominica"},
123
+ {code: "DO", name: "Dominican Republic"},
124
+ {code: "DZ", name: "Algeria"},
125
+ {code: "EC", name: "Ecuador"},
126
+ {code: "EE", name: "Estonia"},
127
+ {code: "EG", name: "Egypt"},
128
+ {code: "EH", name: "Western Sahara"},
129
+ {code: "ER", name: "Eritrea"},
130
+ {code: "ES", name: "Spain"},
131
+ {code: "ET", name: "Ethiopia"},
132
+ {code: "FI", name: "Finland"},
133
+ {code: "FJ", name: "Fiji"},
134
+ {code: "FK", name: "Falkland Islands (Malvinas)"},
135
+ {code: "FM", name: "Micronesia, Federated States of"},
136
+ {code: "FO", name: "Faroe Islands"},
137
+ {code: "FR", name: "France"},
138
+ {code: "GA", name: "Gabon"},
139
+ {code: "GB", name: "United Kingdom"},
140
+ {code: "GD", name: "Grenada"},
141
+ {code: "GE", name: "Georgia"},
142
+ {code: "GF", name: "French Guiana"},
143
+ {code: "GG", name: "Guernsey"},
144
+ {code: "GH", name: "Ghana"},
145
+ {code: "GI", name: "Gibraltar"},
146
+ {code: "GL", name: "Greenland"},
147
+ {code: "GM", name: "Gambia"},
148
+ {code: "GN", name: "Guinea"},
149
+ {code: "GP", name: "Guadeloupe"},
150
+ {code: "GQ", name: "Equatorial Guinea"},
151
+ {code: "GR", name: "Greece"},
152
+ {code: "GS", name: "South Georgia and the South Sandwich Islands"},
153
+ {code: "GT", name: "Guatemala"},
154
+ {code: "GU", name: "Guam"},
155
+ {code: "GW", name: "Guinea-Bissau"},
156
+ {code: "GY", name: "Guyana"},
157
+ {code: "HK", name: "Hong Kong"},
158
+ {code: "HM", name: "Heard Island and McDonald Islands"},
159
+ {code: "HN", name: "Honduras"},
160
+ {code: "HR", name: "Croatia"},
161
+ {code: "HT", name: "Haiti"},
162
+ {code: "HU", name: "Hungary"},
163
+ {code: "ID", name: "Indonesia"},
164
+ {code: "IE", name: "Ireland"},
165
+ {code: "IL", name: "Israel"},
166
+ {code: "IM", name: "Isle of Man"},
167
+ {code: "IN", name: "India"},
168
+ {code: "IO", name: "British Indian Ocean Territory"},
169
+ {code: "IQ", name: "Iraq"},
170
+ {code: "IR", name: "Iran, Islamic Republic of"},
171
+ {code: "IS", name: "Iceland"},
172
+ {code: "IT", name: "Italy"},
173
+ {code: "JE", name: "Jersey"},
174
+ {code: "JM", name: "Jamaica"},
175
+ {code: "JO", name: "Jordan"},
176
+ {code: "JP", name: "Japan"},
177
+ {code: "KE", name: "Kenya"},
178
+ {code: "KG", name: "Kyrgyzstan"},
179
+ {code: "KH", name: "Cambodia"},
180
+ {code: "KI", name: "Kiribati"},
181
+ {code: "KM", name: "Comoros"},
182
+ {code: "KN", name: "Saint Kitts and Nevis"},
183
+ {code: "KP", name: "Korea, Democratic People's Republic of"},
184
+ {code: "KR", name: "Korea, Republic of"},
185
+ {code: "KW", name: "Kuwait"},
186
+ {code: "KY", name: "Cayman Islands"},
187
+ {code: "KZ", name: "Kazakhstan"},
188
+ {code: "LA", name: "Lao People's Democratic Republic"},
189
+ {code: "LB", name: "Lebanon"},
190
+ {code: "LC", name: "Saint Lucia"},
191
+ {code: "LI", name: "Liechtenstein"},
192
+ {code: "LK", name: "Sri Lanka"},
193
+ {code: "LR", name: "Liberia"},
194
+ {code: "LS", name: "Lesotho"},
195
+ {code: "LT", name: "Lithuania"},
196
+ {code: "LU", name: "Luxembourg"},
197
+ {code: "LV", name: "Latvia"},
198
+ {code: "LY", name: "Libya"},
199
+ {code: "MA", name: "Morocco"},
200
+ {code: "MC", name: "Monaco"},
201
+ {code: "MD", name: "Moldova, Republic of"},
202
+ {code: "ME", name: "Montenegro"},
203
+ {code: "MF", name: "Saint Martin (French part)"},
204
+ {code: "MG", name: "Madagascar"},
205
+ {code: "MH", name: "Marshall Islands"},
206
+ {code: "MK", name: "Macedonia, the former Yugoslav Republic of"},
207
+ {code: "ML", name: "Mali"},
208
+ {code: "MM", name: "Myanmar"},
209
+ {code: "MN", name: "Mongolia"},
210
+ {code: "MO", name: "Macao"},
211
+ {code: "MP", name: "Northern Mariana Islands"},
212
+ {code: "MQ", name: "Martinique"},
213
+ {code: "MR", name: "Mauritania"},
214
+ {code: "MS", name: "Montserrat"},
215
+ {code: "MT", name: "Malta"},
216
+ {code: "MU", name: "Mauritius"},
217
+ {code: "MV", name: "Maldives"},
218
+ {code: "MW", name: "Malawi"},
219
+ {code: "MX", name: "Mexico"},
220
+ {code: "MY", name: "Malaysia"},
221
+ {code: "MZ", name: "Mozambique"},
222
+ {code: "NA", name: "Namibia"},
223
+ {code: "NC", name: "New Caledonia"},
224
+ {code: "NE", name: "Niger"},
225
+ {code: "NF", name: "Norfolk Island"},
226
+ {code: "NG", name: "Nigeria"},
227
+ {code: "NI", name: "Nicaragua"},
228
+ {code: "NL", name: "Netherlands"},
229
+ {code: "NO", name: "Norway"},
230
+ {code: "NP", name: "Nepal"},
231
+ {code: "NR", name: "Nauru"},
232
+ {code: "NU", name: "Niue"},
233
+ {code: "NZ", name: "New Zealand"},
234
+ {code: "OM", name: "Oman"},
235
+ {code: "PA", name: "Panama"},
236
+ {code: "PE", name: "Peru"},
237
+ {code: "PF", name: "French Polynesia"},
238
+ {code: "PG", name: "Papua New Guinea"},
239
+ {code: "PH", name: "Philippines"},
240
+ {code: "PK", name: "Pakistan"},
241
+ {code: "PL", name: "Poland"},
242
+ {code: "PM", name: "Saint Pierre and Miquelon"},
243
+ {code: "PN", name: "Pitcairn"},
244
+ {code: "PR", name: "Puerto Rico"},
245
+ {code: "PS", name: "Palestine, State of"},
246
+ {code: "PT", name: "Portugal"},
247
+ {code: "PW", name: "Palau"},
248
+ {code: "PY", name: "Paraguay"},
249
+ {code: "QA", name: "Qatar"},
250
+ {code: "RE", name: "Réunion"},
251
+ {code: "RO", name: "Romania"},
252
+ {code: "RS", name: "Serbia"},
253
+ {code: "RU", name: "Russian Federation"},
254
+ {code: "RW", name: "Rwanda"},
255
+ {code: "SA", name: "Saudi Arabia"},
256
+ {code: "SB", name: "Solomon Islands"},
257
+ {code: "SC", name: "Seychelles"},
258
+ {code: "SD", name: "Sudan"},
259
+ {code: "SE", name: "Sweden"},
260
+ {code: "SG", name: "Singapore"},
261
+ {code: "SH", name: "Saint Helena, Ascension and Tristan da Cunha"},
262
+ {code: "SI", name: "Slovenia"},
263
+ {code: "SJ", name: "Svalbard and Jan Mayen"},
264
+ {code: "SK", name: "Slovakia"},
265
+ {code: "SL", name: "Sierra Leone"},
266
+ {code: "SM", name: "San Marino"},
267
+ {code: "SN", name: "Senegal"},
268
+ {code: "SO", name: "Somalia"},
269
+ {code: "SR", name: "Suriname"},
270
+ {code: "SS", name: "South Sudan", name: "2011", name: ".ss"},
271
+ {code: "ST", name: "Sao Tome and Principe"},
272
+ {code: "SV", name: "El Salvador"},
273
+ {code: "SX", name: "Sint Maarten (Dutch part)"},
274
+ {code: "SY", name: "Syrian Arab Republic"},
275
+ {code: "SZ", name: "Swaziland"},
276
+ {code: "TC", name: "Turks and Caicos Islands"},
277
+ {code: "TD", name: "Chad"},
278
+ {code: "TF", name: "French Southern Territories"},
279
+ {code: "TG", name: "Togo"},
280
+ {code: "TH", name: "Thailand"},
281
+ {code: "TJ", name: "Tajikistan"},
282
+ {code: "TK", name: "Tokelau"},
283
+ {code: "TL", name: "Timor-Leste"},
284
+ {code: "TM", name: "Turkmenistan"},
285
+ {code: "TN", name: "Tunisia"},
286
+ {code: "TO", name: "Tonga"},
287
+ {code: "TR", name: "Turkey"},
288
+ {code: "TT", name: "Trinidad and Tobago"},
289
+ {code: "TV", name: "Tuvalu"},
290
+ {code: "TW", name: "Taiwan, Province of China"},
291
+ {code: "TZ", name: "Tanzania, United Republic of"},
292
+ {code: "UA", name: "Ukraine"},
293
+ {code: "UG", name: "Uganda"},
294
+ {code: "UM", name: "United States Minor Outlying Islands"},
295
+ {code: "US", name: "United States"},
296
+ {code: "UY", name: "Uruguay"},
297
+ {code: "UZ", name: "Uzbekistan"},
298
+ {code: "VA", name: "Holy See (Vatican City State)"},
299
+ {code: "VC", name: "Saint Vincent and the Grenadines"},
300
+ {code: "VE", name: "Venezuela, Bolivarian Republic of"},
301
+ {code: "VG", name: "Virgin Islands, British"},
302
+ {code: "VI", name: "Virgin Islands, U.S."},
303
+ {code: "VN", name: "Viet Nam"},
304
+ {code: "VU", name: "Vanuatu"},
305
+ {code: "WF", name: "Wallis and Futuna"},
306
+ {code: "WS", name: "Samoa"},
307
+ {code: "YE", name: "Yemen"},
308
+ {code: "YT", name: "Mayotte"},
309
+ {code: "ZA", name: "South Africa"},
310
+ {code: "ZM", name: "Zambia"},
311
+ {code: "ZW", name: "Zimbabwe"}
312
+ ]
313
+ end
314
+
315
+ def self.language_families
316
+ [
317
+ "northwest caucasian" => [
318
+ {
319
+ name: "Abkhaz",
320
+ native: "аҧсуа бызшәа, аҧсшәа",
321
+ code: "AB"
322
+ },
323
+ ],
324
+ "afro-asiatic" => [
325
+ {
326
+ name: "Afar",
327
+ native: "Afaraf",
328
+ code: "AA"
329
+ },
330
+ {
331
+ name: "Amharic",
332
+ native: "አማርኛ",
333
+ code: "AM"
334
+ },
335
+ {
336
+ name: "Arabic",
337
+ native: "العربية",
338
+ code: "AR"
339
+ },
340
+ {
341
+ name: "Hausa",
342
+ native: "Hausa, هَوُسَ",
343
+ code: "HA"
344
+ },
345
+ {
346
+ name: "Hebrew (modern)",
347
+ native: "עברית",
348
+ code: "HE"
349
+ },
350
+ {
351
+ name: "Maltese",
352
+ native: "Malti",
353
+ code: "MT"
354
+ },
355
+ {
356
+ name: "Oromo",
357
+ native: "Afaan Oromoo",
358
+ code: "OM"
359
+ },
360
+ {
361
+ name: "Somali",
362
+ native: "Soomaaliga, af Soomaali",
363
+ code: "SO"
364
+ },
365
+ {
366
+ name: "Tigrinya",
367
+ native: "ትግርኛ",
368
+ code: "TI"
369
+ },
370
+ ],
371
+ "indo-european" => [
372
+ {
373
+ name: "Afrikaans",
374
+ native: "Afrikaans",
375
+ code: "AF"
376
+ },
377
+ {
378
+ name: "Albanian",
379
+ native: "gjuha shqipe",
380
+ code: "SQ"
381
+ },
382
+ {
383
+ name: "Aragonese",
384
+ native: "aragonés",
385
+ code: "AN"
386
+ },
387
+ {
388
+ name: "Armenian",
389
+ native: "Հայերեն",
390
+ code: "HY"
391
+ },
392
+ {
393
+ name: "Assamese",
394
+ native: "অসমীয়া",
395
+ code: "AS"
396
+ },
397
+ {
398
+ name: "Avestan",
399
+ native: "avesta",
400
+ code: "AE"
401
+ },
402
+ {
403
+ name: "Belarusian",
404
+ native: "беларуская мова",
405
+ code: "BE"
406
+ },
407
+ {
408
+ name: "Bengali; Bangla",
409
+ native: "বাংলা",
410
+ code: "BN"
411
+ },
412
+ {
413
+ name: "Bihari",
414
+ native: "भोजपुरी",
415
+ code: "BH"
416
+ },
417
+ {
418
+ name: "Bosnian",
419
+ native: "bosanski jezik",
420
+ code: "BS"
421
+ },
422
+ {
423
+ name: "Breton",
424
+ native: "brezhoneg",
425
+ code: "BR"
426
+ },
427
+ {
428
+ name: "Bulgarian",
429
+ native: "български език",
430
+ code: "BG"
431
+ },
432
+ {
433
+ name: "Catalan; Valencian",
434
+ native: "català, valencià",
435
+ code: "CA"
436
+ },
437
+ {
438
+ name: "Cornish",
439
+ native: "Kernewek",
440
+ code: "KW"
441
+ },
442
+ {
443
+ name: "Corsican",
444
+ native: "corsu, lingua corsa",
445
+ code: "CO"
446
+ },
447
+ {
448
+ name: "Croatian",
449
+ native: "hrvatski jezik",
450
+ code: "HR"
451
+ },
452
+ {
453
+ name: "Czech",
454
+ native: "čeština, český jazyk",
455
+ code: "CS"
456
+ },
457
+ {
458
+ name: "Danish",
459
+ native: "dansk",
460
+ code: "DA"
461
+ },
462
+ {
463
+ name: "Dutch",
464
+ native: "Nederlands, Vlaams",
465
+ code: "NL"
466
+ },
467
+ {
468
+ name: "English",
469
+ native: "English",
470
+ code: "EN"
471
+ },
472
+ {
473
+ name: "Faroese",
474
+ native: "føroyskt",
475
+ code: "FO"
476
+ },
477
+ {
478
+ name: "French",
479
+ native: "français",
480
+ code: "FR"
481
+ },
482
+ {
483
+ name: "Galician",
484
+ native: "galego",
485
+ code: "GL"
486
+ },
487
+ {
488
+ name: "German",
489
+ native: "Deutsch",
490
+ code: "DE"
491
+ },
492
+ {
493
+ name: "Greek, Modern",
494
+ native: "ελληνικά",
495
+ code: "EL"
496
+ },
497
+ {
498
+ name: "Gujarati",
499
+ native: "ગુજરાતી",
500
+ code: "GU"
501
+ },
502
+ {
503
+ name: "Hindi",
504
+ native: "हिन्दी, हिंदी",
505
+ code: "HI"
506
+ },
507
+ {
508
+ name: "Irish",
509
+ native: "Gaeilge",
510
+ code: "GA"
511
+ },
512
+ {
513
+ name: "Icelandic",
514
+ native: "Íslenska",
515
+ code: "IS"
516
+ },
517
+ {
518
+ name: "Italian",
519
+ native: "italiano",
520
+ code: "IT"
521
+ },
522
+ {
523
+ name: "Kashmiri",
524
+ native: "كشميري",
525
+ code: "KS"
526
+ },
527
+ {
528
+ name: "Kurdish",
529
+ native: "كوردی",
530
+ code: "KU"
531
+ },
532
+ {
533
+ name: "Latin",
534
+ native: "latine, lingua latina",
535
+ code: "LA"
536
+ },
537
+ {
538
+ name: "Luxembourgish, Letzeburgesch",
539
+ native: "Lëtzebuergesch",
540
+ code: "LB"
541
+ },
542
+ {
543
+ name: "Limburgish, Limburgan, Limburger",
544
+ native: "Limburgs",
545
+ code: "LI"
546
+ },
547
+ {
548
+ name: "Lithuanian",
549
+ native: "lietuvių kalba",
550
+ code: "LT"
551
+ },
552
+ {
553
+ name: "Latvian",
554
+ native: "latviešu valoda",
555
+ code: "LV"
556
+ },
557
+ {
558
+ name: "Manx",
559
+ native: "Gaelg, Gailck",
560
+ code: "GV"
561
+ },
562
+ {
563
+ name: "Macedonian",
564
+ native: "македонски јазик",
565
+ code: "MK"
566
+ },
567
+ {
568
+ name: "Marathi (Marāṭhī)",
569
+ native: "मराठी",
570
+ code: "MR"
571
+ },
572
+ {
573
+ name: "Norwegian Bokmål",
574
+ native: "Norsk bokmål",
575
+ code: "NB"
576
+ },
577
+ {
578
+ name: "Nepali",
579
+ native: "नेपाली",
580
+ code: "NE"
581
+ },
582
+ {
583
+ name: "Norwegian Nynorsk",
584
+ native: "Norsk nynorsk",
585
+ code: "NN"
586
+ },
587
+ {
588
+ name: "Norwegian",
589
+ native: "Norsk",
590
+ code: "NO"
591
+ },
592
+ {
593
+ name: "Occitan",
594
+ native: "occitan, lenga d'òc",
595
+ code: "OC"
596
+ },
597
+ {
598
+ name: "Old Slavonic",
599
+ native: "ѩзыкъ словѣньскъ",
600
+ code: "CU"
601
+ },
602
+ {
603
+ name: "Ossetian, Ossetic",
604
+ native: "ирон æвзаг",
605
+ code: "OS"
606
+ },
607
+ {
608
+ name: "Panjabi, Punjabi",
609
+ native: "پنجابی",
610
+ code: "PA"
611
+ },
612
+ {
613
+ name: "Pāli",
614
+ native: "पाऴि",
615
+ code: "PI"
616
+ },
617
+ {
618
+ name: "Persian (Farsi)",
619
+ native: "فارسی",
620
+ code: "FA"
621
+ },
622
+ {
623
+ name: "Polish",
624
+ native: "język polski, polszczyzna",
625
+ code: "PL"
626
+ },
627
+ {
628
+ name: "Pashto, Pushto",
629
+ native: "پښتو",
630
+ code: "PS"
631
+ },
632
+ {
633
+ name: "Portuguese",
634
+ native: "português",
635
+ code: "PT"
636
+ },
637
+ {
638
+ name: "Romansh",
639
+ native: "rumantsch grischun",
640
+ code: "RM"
641
+ },
642
+ {
643
+ name: "Romanian, )",
644
+ native: "limba română",
645
+ code: "RO"
646
+ },
647
+ {
648
+ name: "Russian",
649
+ native: "русский язык",
650
+ code: "RU"
651
+ },
652
+ {
653
+ name: "Sanskrit (Saṁskṛta)",
654
+ native: "संस्कृतम्",
655
+ code: "SA"
656
+ },
657
+ {
658
+ name: "Sardinian",
659
+ native: "sardu",
660
+ code: "SC"
661
+ },
662
+ {
663
+ name: "Sindhi",
664
+ native: "سنڌي، سندھی",
665
+ code: "SD"
666
+ },
667
+ {
668
+ name: "Serbian",
669
+ native: "српски језик",
670
+ code: "SR"
671
+ },
672
+ {
673
+ name: "Scottish Gaelic; Gaelic",
674
+ native: "Gàidhlig",
675
+ code: "GD"
676
+ },
677
+ {
678
+ name: "Sinhala, Sinhalese",
679
+ native: "සිංහල",
680
+ code: "SI"
681
+ },
682
+ {
683
+ name: "Slovak",
684
+ native: "slovenčina, slovenský jazyk",
685
+ code: "SK"
686
+ },
687
+ {
688
+ name: "Slovene",
689
+ native: "slovenski jezik, slovenščina",
690
+ code: "SL"
691
+ },
692
+ {
693
+ name: "Spanish; Castilian",
694
+ native: "español, castellano",
695
+ code: "ES"
696
+ },
697
+ {
698
+ name: "Swedish",
699
+ native: "Svenska",
700
+ code: "SV"
701
+ },
702
+ {
703
+ name: "Tajik",
704
+ native: "تاجیکی",
705
+ code: "TG"
706
+ },
707
+ {
708
+ name: "Ukrainian",
709
+ native: "українська мова",
710
+ code: "UK"
711
+ },
712
+ {
713
+ name: "Urdu",
714
+ native: "اردو",
715
+ code: "UR"
716
+ },
717
+ {
718
+ name: "Walloon",
719
+ native: "walon",
720
+ code: "WA"
721
+ },
722
+ {
723
+ name: "Welsh",
724
+ native: "Cymraeg",
725
+ code: "CY"
726
+ },
727
+ {
728
+ name: "Western Frisian",
729
+ native: "Frysk",
730
+ code: "FY"
731
+ },
732
+ {
733
+ name: "Yiddish",
734
+ native: "ייִדיש",
735
+ code: "YI"
736
+ },
737
+ ],
738
+ "niger–congo" => [
739
+ {
740
+ name: "Akan",
741
+ native: "Akan",
742
+ code: "AK"
743
+ },
744
+ {
745
+ name: "Bambara",
746
+ native: "bamanankan",
747
+ code: "BM"
748
+ },
749
+ {
750
+ name: "Chichewa; Chewa; Nyanja",
751
+ native: "chiCheŵa, chinyanja",
752
+ code: "NY"
753
+ },
754
+ {
755
+ name: "Ewe",
756
+ native: "Eʋegbe",
757
+ code: "EE"
758
+ },
759
+ {
760
+ name: "Fula; Fulah; Pulaar; Pular",
761
+ native: "Fulfulde, Pulaar, Pular",
762
+ code: "FF"
763
+ },
764
+ {
765
+ name: "Herero",
766
+ native: "Otjiherero",
767
+ code: "HZ"
768
+ },
769
+ {
770
+ name: "Igbo",
771
+ native: "Asụsụ Igbo",
772
+ code: "IG"
773
+ },
774
+ {
775
+ name: "Kikuyu, Gikuyu",
776
+ native: "Gĩkũyũ",
777
+ code: "KI"
778
+ },
779
+ {
780
+ name: "Kinyarwanda",
781
+ native: "Ikinyarwanda",
782
+ code: "RW"
783
+ },
784
+ {
785
+ name: "Kongo",
786
+ native: "KiKongo",
787
+ code: "KG"
788
+ },
789
+ {
790
+ name: "Kwanyama, Kuanyama",
791
+ native: "Kuanyama",
792
+ code: "KJ"
793
+ },
794
+ {
795
+ name: "Ganda",
796
+ native: "Luganda",
797
+ code: "LG"
798
+ },
799
+ {
800
+ name: "Lingala",
801
+ native: "Lingála",
802
+ code: "LN"
803
+ },
804
+ {
805
+ name: "Luba-Katanga",
806
+ native: "Tshiluba",
807
+ code: "LU"
808
+ },
809
+ {
810
+ name: "North Ndebele",
811
+ native: "isiNdebele",
812
+ code: "ND"
813
+ },
814
+ {
815
+ name: "Ndonga",
816
+ native: "Owambo",
817
+ code: "NG"
818
+ },
819
+ {
820
+ name: "South Ndebele",
821
+ native: "isiNdebele",
822
+ code: "NR"
823
+ },
824
+ {
825
+ name: "Kirundi",
826
+ native: "Ikirundi",
827
+ code: "RN"
828
+ },
829
+ {
830
+ name: "Shona",
831
+ native: "chiShona",
832
+ code: "SN"
833
+ },
834
+ {
835
+ name: "Southern Sotho",
836
+ native: "Sesotho",
837
+ code: "ST"
838
+ },
839
+ {
840
+ name: "Swahili",
841
+ native: "Kiswahili",
842
+ code: "SW"
843
+ },
844
+ {
845
+ name: "Swati",
846
+ native: "SiSwati",
847
+ code: "SS"
848
+ },
849
+ {
850
+ name: "Tswana",
851
+ native: "Setswana",
852
+ code: "TN"
853
+ },
854
+ {
855
+ name: "Tsonga",
856
+ native: "Xitsonga",
857
+ code: "TS"
858
+ },
859
+ {
860
+ name: "Twi",
861
+ native: "Twi",
862
+ code: "TW"
863
+ },
864
+ {
865
+ name: "Venda",
866
+ native: "Tshivenḓa",
867
+ code: "VE"
868
+ },
869
+ {
870
+ name: "Wolof",
871
+ native: "Wollof",
872
+ code: "WO"
873
+ },
874
+ {
875
+ name: "Xhosa",
876
+ native: "isiXhosa",
877
+ code: "XH"
878
+ },
879
+ {
880
+ name: "Yoruba",
881
+ native: "Yorùbá",
882
+ code: "YO"
883
+ },
884
+ {
885
+ name: "Zulu",
886
+ native: "isiZulu",
887
+ code: "ZU"
888
+ },
889
+ ],
890
+ "northeast caucasian" => [
891
+ {
892
+ name: "Avaric",
893
+ native: "авар мацӀ, магӀарул мацӀ",
894
+ code: "AV"
895
+ },
896
+ {
897
+ name: "Chechen",
898
+ native: "нохчийн мотт",
899
+ code: "CE"
900
+ },
901
+ ],
902
+ "aymaran" => [
903
+ {
904
+ name: "Aymara",
905
+ native: "aymar aru",
906
+ code: "|AY"
907
+ },
908
+ ],
909
+ "turkic" => [
910
+ {
911
+ name: "Azerbaijani",
912
+ native: "azərbaycan dili",
913
+ code: "AZ"
914
+ },
915
+ {
916
+ name: "Bashkir",
917
+ native: "башҡорт теле",
918
+ code: "BA"
919
+ },
920
+ {
921
+ name: "Chuvash",
922
+ native: "чӑваш чӗлхи",
923
+ code: "CV"
924
+ },
925
+ {
926
+ name: "Kazakh",
927
+ native: "қазақ тілі",
928
+ code: "KK"
929
+ },
930
+ {
931
+ name: "Kyrgyz",
932
+ native: "Кыргызча, Кыргыз тили",
933
+ code: "KY"
934
+ },
935
+ {
936
+ name: "South Azerbaijani",
937
+ native: "تورکجه",
938
+ code: "AZ"
939
+ },
940
+ {
941
+ name: "Turkmen",
942
+ native: "Türkmen, Түркмен",
943
+ code: "TK"
944
+ },
945
+ {
946
+ name: "Turkish",
947
+ native: "Türkçe",
948
+ code: "TR"
949
+ },
950
+ {
951
+ name: "Tatar",
952
+ native: "tatar tele",
953
+ code: "TT"
954
+ },
955
+ {
956
+ name: "Uyghur, Uighur",
957
+ native: "ئۇيغۇرچە",
958
+ code: "UG"
959
+ },
960
+ {
961
+ name: "Uzbek",
962
+ native: "أۇزبېك",
963
+ code: "UZ"
964
+ },
965
+ ],
966
+ "language isolate" => [
967
+ {
968
+ name: "Basque",
969
+ native: "euskara, euskera",
970
+ code: "EU"
971
+ },
972
+ {
973
+ name: "Korean",
974
+ native: "朝鮮語",
975
+ code: "KO"
976
+ },
977
+ ],
978
+ "creole" => [
979
+ {
980
+ name: "Bislama",
981
+ native: "Bislama",
982
+ code: "BI"
983
+ },
984
+ {
985
+ name: "Haitian; Haitian Creole",
986
+ native: "Kreyòl ayisyen",
987
+ code: "HT"
988
+ },
989
+ {
990
+ name: "Sango",
991
+ native: "yângâ tî sängö",
992
+ code: "SG"
993
+ },
994
+ ],
995
+ "sino-tibetan" => [
996
+ {
997
+ name: "Burmese",
998
+ native: "ဗမာစာ",
999
+ code: "MY"
1000
+ },
1001
+ {
1002
+ name: "Chinese",
1003
+ native: "漢語",
1004
+ code: "ZH"
1005
+ },
1006
+ {
1007
+ name: "Dzongkha",
1008
+ native: "རྫོང་ཁ",
1009
+ code: "DZ"
1010
+ },
1011
+ {
1012
+ name: "Nuosu",
1013
+ native: "ꆈꌠ꒿ Nuosuhxop",
1014
+ code: "II"
1015
+ },
1016
+ {
1017
+ name: "Tibetan Standard, Tibetan, Central",
1018
+ native: "བོད་ཡིག",
1019
+ code: "BO"
1020
+ },
1021
+ ],
1022
+ "austronesian" => [
1023
+ {
1024
+ name: "Chamorro",
1025
+ native: "Chamoru",
1026
+ code: "CH"
1027
+ },
1028
+ {
1029
+ name: "Fijian",
1030
+ native: "vosa Vakaviti",
1031
+ code: "FJ"
1032
+ },
1033
+ {
1034
+ name: "Hiri Motu",
1035
+ native: "Hiri Motu",
1036
+ code: "HO"
1037
+ },
1038
+ {
1039
+ name: "Indonesian",
1040
+ native: "Bahasa Indonesia",
1041
+ code: "ID"
1042
+ },
1043
+ {
1044
+ name: "Javanese",
1045
+ native: "basa Jawa",
1046
+ code: "JV"
1047
+ },
1048
+ {
1049
+ name: "Malagasy",
1050
+ native: "fiteny malagasy",
1051
+ code: "MG"
1052
+ },
1053
+ {
1054
+ name: "Malay",
1055
+ native: "بهاس ملايو",
1056
+ code: "MS"
1057
+ },
1058
+ {
1059
+ name: "Māori",
1060
+ native: "te reo Māori",
1061
+ code: "MI"
1062
+ },
1063
+ {
1064
+ name: "Marshallese",
1065
+ native: "Kajin M̧ajeļ",
1066
+ code: "MH"
1067
+ },
1068
+ {
1069
+ name: "Nauru",
1070
+ native: "Ekakairũ Naoero",
1071
+ code: "NA"
1072
+ },
1073
+ {
1074
+ name: "Samoan",
1075
+ native: "gagana fa'a Samoa",
1076
+ code: "SM"
1077
+ },
1078
+ {
1079
+ name: "Sundanese",
1080
+ native: "Basa Sunda",
1081
+ code: "SU"
1082
+ },
1083
+ {
1084
+ name: "Tagalog",
1085
+ native: "Wikang Tagalog",
1086
+ code: "TL"
1087
+ },
1088
+ {
1089
+ name: "Tonga (Tonga Islands)",
1090
+ native: "faka Tonga",
1091
+ code: "TO"
1092
+ },
1093
+ {
1094
+ name: "Tahitian",
1095
+ native: "Reo Tahiti",
1096
+ code: "TY"
1097
+ },
1098
+ ],
1099
+ "algonquian" => [
1100
+ {
1101
+ name: "Cree",
1102
+ native: "ᓀᐦᐃᔭᐍᐏᐣ",
1103
+ code: "CR"
1104
+ },
1105
+ {
1106
+ name: "Ojibwe, Ojibwa",
1107
+ native: "ᐊᓂᔑᓈᐯᒧᐎᓐ",
1108
+ code: "OJ"
1109
+ },
1110
+ ],
1111
+ "constructed" => [
1112
+ {
1113
+ name: "Esperanto",
1114
+ native: "Esperanto",
1115
+ code: "EO"
1116
+ },
1117
+ {
1118
+ name: "Interlingua",
1119
+ native: "Interlingua",
1120
+ code: "IA"
1121
+ },
1122
+ {
1123
+ name: "Interlingue",
1124
+ native: "Occidental",
1125
+ code: "IE"
1126
+ },
1127
+ {
1128
+ name: "Ido",
1129
+ native: "Ido",
1130
+ code: "IO"
1131
+ },
1132
+ {
1133
+ name: "Volapük",
1134
+ native: "Volapük",
1135
+ code: "VO"
1136
+ },
1137
+ ],
1138
+ "uralic" => [
1139
+ {
1140
+ name: "Estonian",
1141
+ native: "eesti, eesti keel",
1142
+ code: "ET"
1143
+ },
1144
+ {
1145
+ name: "Finnish",
1146
+ native: "suomi, suomen kieli",
1147
+ code: "FI"
1148
+ },
1149
+ {
1150
+ name: "Hungarian",
1151
+ native: "magyar",
1152
+ code: "HU"
1153
+ },
1154
+ {
1155
+ name: "Komi",
1156
+ native: "коми кыв",
1157
+ code: "KV"
1158
+ },
1159
+ {
1160
+ name: "Northern Sami",
1161
+ native: "Davvisámegiella",
1162
+ code: "SE"
1163
+ },
1164
+ ],
1165
+ "south caucasian" => [
1166
+ {
1167
+ name: "Georgian",
1168
+ native: "ქართული",
1169
+ code: "KA"
1170
+ },
1171
+ ],
1172
+ "tupian" => [
1173
+ {
1174
+ name: "Guaraní",
1175
+ native: "Avañe'ẽ",
1176
+ code: "GN"
1177
+ },
1178
+ ],
1179
+ "eskimo–aleut" => [
1180
+ {
1181
+ name: "Inupiaq",
1182
+ native: "Iñupiaq, Iñupiatun",
1183
+ code: "IK"
1184
+ },
1185
+ {
1186
+ name: "Inuktitut",
1187
+ native: "ᐃᓄᒃᑎᑐᑦ",
1188
+ code: "IU"
1189
+ },
1190
+ {
1191
+ name: "Kalaallisut, Greenlandic",
1192
+ native: "kalaallisut, kalaallit oqaasii",
1193
+ code: "KL"
1194
+ },
1195
+ ],
1196
+ "japonic" => [
1197
+ {
1198
+ name: "Japanese",
1199
+ native: "にほんご",
1200
+ code: "JA"
1201
+ },
1202
+ ],
1203
+ "dravidian" => [
1204
+ {
1205
+ name: "Kannada",
1206
+ native: "ಕನ್ನಡ",
1207
+ code: "KN"
1208
+ },
1209
+ {
1210
+ name: "Malayalam",
1211
+ native: "മലയാളം",
1212
+ code: "ML"
1213
+ },
1214
+ {
1215
+ name: "Tamil",
1216
+ native: "தமிழ்",
1217
+ code: "TA"
1218
+ },
1219
+ {
1220
+ name: "Telugu",
1221
+ native: "తెలుగు",
1222
+ code: "TE"
1223
+ },
1224
+ ],
1225
+ "nilo-saharan" => [
1226
+ {
1227
+ name: "Kanuri",
1228
+ native: "Kanuri",
1229
+ code: "KR"
1230
+ },
1231
+ ],
1232
+ "austroasiatic" => [
1233
+ {
1234
+ name: "Khmer",
1235
+ native: "ខ្មែរ, ខេមរភាសា, ភាសាខ្មែរ",
1236
+ code: "KM"
1237
+ },
1238
+ {
1239
+ name: "Vietnamese",
1240
+ native: "Tiếng Việt",
1241
+ code: "VI"
1242
+ },
1243
+ ],
1244
+ "tai–kadai" => [
1245
+ {
1246
+ name: "Lao",
1247
+ native: "ພາສາລາວ",
1248
+ code: "LO"
1249
+ },
1250
+ {
1251
+ name: "Thai",
1252
+ native: "ไทย",
1253
+ code: "TH"
1254
+ },
1255
+ {
1256
+ name: "Zhuang, Chuang",
1257
+ native: "Saɯ cueŋƅ, Saw cuengh",
1258
+ code: "ZA"
1259
+ },
1260
+ ],
1261
+ "mongolic" => [
1262
+ {
1263
+ name: "Mongolian",
1264
+ native: "монгол",
1265
+ code: "MN"
1266
+ },
1267
+ ],
1268
+ "dené–yeniseian" => [
1269
+ {
1270
+ name: "Navajo, Navaho",
1271
+ native: "Diné bizaad, Dinékʼehǰí",
1272
+ code: "NV"
1273
+ },
1274
+ ],
1275
+ "india-asia" => [
1276
+ {
1277
+ name: "Oriya",
1278
+ native: "ଓଡ଼ିଆ",
1279
+ code: "OR"
1280
+ },
1281
+ ],
1282
+ "quechuan" => [
1283
+ {
1284
+ name: "Quechua",
1285
+ native: "Runa Simi, Kichwa",
1286
+ code: "QU"
1287
+ },
1288
+ ],
1289
+ ]
1290
+ end
1291
+
1292
+ end