i18n_form_helper 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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