1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
|
# encoding: utf-8
module CommonLanguages
#
# Language data, sorted by number of native speakers
# https://en.wikipedia.org/wiki/List_of_languages_by_number_of_native_speakers
#
# fields: code, name, english name, right to left?
#
DATA = [
['zh', '中文', 'Chinese'],
['es', 'Español', 'Spanish'],
['en', 'English'],
['hi', 'हिन्दी', 'Hindi'],
['ar', 'العربية', 'Arabic', true],
['pt', 'Português', 'Portugues'],
['bn', 'বাংলা', 'Bengali'],
['ru', 'Pyccĸий', 'Russian'],
['ja', '日本語', 'Japanese'],
['pa', 'ਪੰਜਾਬੀ', 'Punjabi'],
['de', 'Deutsch', 'German'],
['ms', 'بهاس ملايو', 'Malay'],
['te', 'తెలుగు', 'Telugu'],
['vi', 'Tiếng Việt', 'Vietnamese'],
['ko', '한국어', 'Korean'],
['fr', 'Français', 'French'],
['mr', 'मराठी', 'Marathi'],
['ta', 'தமிழ்', 'Tamil'],
['ur', 'اُردُو', 'Urdu'],
['fa', 'فارسی', 'Farsi'],
['tr', 'Türkçe', 'Turkish'],
['it', 'Italiano', 'Italian'],
['th', 'ภาษาไทย', 'Thai'],
['gu', 'Gujarati'],
['pl', 'Polski', 'Polish'],
['ml', 'Malayalam'],
['uk', 'Ukrainian'],
['sw', 'Swahili'],
['uz', 'Uzbek'],
['ro', 'Romanian'],
['nl', 'Nederlands', 'Dutch'],
['sr', 'Serbian'],
['el', 'Ελληνικά', 'Greek'],
['ca', 'Català', 'Catalan'],
['he', 'עברית', 'Hebrew', true],
['sl', 'Slovenščina', 'Slovenian'],
['lt', 'Lietuvių kalba', 'Lithuanian']
]
# just the codes, in sorted order
def self.codes
@codes ||= DATA.map {|d| d[0]}
end
# a regexp that will match the possible codes
def self.match
@match ||= /(#{@codes.join('|')})/
end
# map of codes to Language objects
# e.g. languages['en'] => <Language>
def self.languages
@languages ||= Hash[
DATA.map {|data|
[data[0], Language.new(data)]
}
]
end
end
#
# TO BE ADDED
#
# [:bn, 'Bengali']
# [:bo, 'Tibetan']
# [:bg, 'Bulgarian']
# [:ca, 'Catalan']
# [:cs, 'Czech']
# [:cy, 'Welsh']
# [:da, 'Danish']
# [:et, 'Estonian']
# [:eu, 'Basque']
# [:fj, 'Fijian']
# [:fi, 'Finnish']
# [:ga, 'Irish']
# [:hr, 'Croatian']
# [:hu, 'Hungarian']
# [:hy, 'Armenian']
# [:id, 'Indonesian']
# [:is, 'Icelandic']
# [:ka, 'Georgian']
# [:km, 'Central Khmer']
# [:lv, 'Latvian']
# [:mr, 'Marathi']
# [:mk, 'Macedonian']
# [:mt, 'Maltese']
# [:mn, 'Mongolian']
# [:mi, 'Maori']
# [:ms, 'Malay']
# [:ne, 'Nepali']
# [:no, 'Norwegian']
# [:pa, 'Panjabi']
# [:qu, 'Quechua']
# [:sk, 'Slovak']
# [:sm, 'Samoan']
# [:sq, 'Albanian']
# [:sv, 'Swedish']
# [:ta, 'Tamil']
# [:tt, 'Tatar']
# [:te, 'Telugu']
# [:to, 'Tonga']
# [:ur, 'Urdu']
# [:xh, 'Xhosa']
|