summaryrefslogtreecommitdiff
path: root/vendor/gems/common_languages/lib/common_languages/data.rb
blob: 965e18b5e02370dbeb66662a4d1335e1a7cf4803 (plain)
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
116
# 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]
  ]

  # 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']
# [:lt, 'Lithuanian']
# [:mr, 'Marathi']
# [:mk, 'Macedonian']
# [:mt, 'Maltese']
# [:mn, 'Mongolian']
# [:mi, 'Maori']
# [:ms, 'Malay']
# [:ne, 'Nepali']
# [:no, 'Norwegian']
# [:pa, 'Panjabi']
# [:qu, 'Quechua']
# [:sk, 'Slovak']
# [:sl, 'Slovenian']
# [:sm, 'Samoan']
# [:sq, 'Albanian']
# [:sv, 'Swedish']
# [:ta, 'Tamil']
# [:tt, 'Tatar']
# [:te, 'Telugu']
# [:to, 'Tonga']
# [:tr, 'Turkish']
# [:ur, 'Urdu']
# [:xh, 'Xhosa']