i18n_data 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,185 @@
1
+ AA;;阿法爾語
2
+ AB;;亞布卡薩語
3
+ AF;;南非語
4
+ AK;;迦納語
5
+ SQ;;阿爾巴尼亞語
6
+ AM;;阿姆哈拉語
7
+ AR;;阿拉伯語
8
+ AN;;阿拉貢語
9
+ HY;;亞美尼亞語
10
+ AS;;阿薩姆語
11
+ AV;;阿瓦爾語
12
+ AE;;阿維斯塔語
13
+ AY;;亞摩拉語
14
+ AZ;;亞塞拜然語
15
+ BA;;巴什喀爾語
16
+ BM;;班巴拉語
17
+ EU;;巴斯克語
18
+ BE;;白俄語
19
+ BN;;孟加拉語
20
+ BH;;泰語諸語言
21
+ BI;;比斯拉馬語
22
+ BS;;波士尼亞語
23
+ BR;;布里敦語
24
+ BG;;保加利亞語
25
+ MY;;緬甸語
26
+ CA;;加泰羅尼亞語
27
+ CH;;查莫羅語
28
+ CE;;車臣語
29
+ ZH;;漢語
30
+ CU;;Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic
31
+ CV;;楚瓦什語
32
+ KW;;康沃爾語
33
+ CO;;科西嘉語
34
+ CR;;克里語
35
+ CS;;捷克語
36
+ DA;;丹麥語
37
+ DV;;迪維西語
38
+ NL;;荷蘭語
39
+ DZ;;宗卡語(不丹)
40
+ EN;;英語
41
+ EO;;世界語
42
+ ET;;愛沙尼亞語
43
+ EE;;埃維語
44
+ FO;;法羅群島語
45
+ FJ;;斐濟語
46
+ FI;;芬蘭語
47
+ FR;;法語
48
+ FY;;西夫里斯蘭語
49
+ FF;;富拉語
50
+ KA;;喬治亞語
51
+ DE;;德語
52
+ GD;;蓋爾語
53
+ GA;;愛爾蘭語
54
+ GL;;加里斯亞語
55
+ GV;;馬恩語
56
+ EL;;現代希臘語 (1453-)
57
+ GN;;瓜拉尼語(西印度)
58
+ GU;;古吉拉特語
59
+ HT;;克里奧爾語(海地)
60
+ HA;;豪撒語(蘇丹)
61
+ HE;;希伯來語
62
+ HZ;;赫雷羅語
63
+ HI;;印地語(北印度)
64
+ HO;;希里莫圖語
65
+ HR;;克羅埃西亞語
66
+ HU;;匈牙利語
67
+ IG;;伊布語
68
+ IS;;冰島語
69
+ IO;;伊多語
70
+ II;;四川彝語
71
+ IU;;伊努特語
72
+ IE;;國際語
73
+ IA;;拉丁國際語
74
+ ID;;印尼語
75
+ IK;;依努庇克語
76
+ IT;;義大利語
77
+ JV;;爪哇語
78
+ JA;;日語
79
+ KL;;格陵蘭語
80
+ KN;;卡納達語(西南印度)
81
+ KS;;喀什米爾語
82
+ KR;;卡努里語
83
+ KK;;哈薩克語
84
+ KM;;中央高棉語
85
+ KI;;基庫尤語
86
+ RW;;盧安達語
87
+ KY;;吉爾吉斯語
88
+ KV;;科米語
89
+ KG;;剛果語
90
+ KO;;韓語
91
+ KJ;;寬亞瑪語
92
+ KU;;庫德語
93
+ LO;;老撾語
94
+ LA;;拉丁語
95
+ LV;;拉脫維亞語
96
+ LI;;林堡語
97
+ LN;;陵加拉語
98
+ LT;;立陶宛語
99
+ LB;;盧森堡語
100
+ LU;;盧巴-加丹加語
101
+ LG;;干達語
102
+ MK;;馬其頓語
103
+ MH;;馬紹爾語
104
+ ML;;馬來亞拉姆語
105
+ MI;;毛利語
106
+ MR;;馬拉提語(中西印度)
107
+ MS;;馬來語
108
+ MG;;馬達加斯加語
109
+ MT;;馬爾他語
110
+ MO;;摩爾達維亞語
111
+ MN;;蒙古語
112
+ NA;;諾魯語
113
+ NV;;納瓦霍語
114
+ NR;;南恩德貝勒語
115
+ ND;;北恩德貝勒語
116
+ NG;;恩敦加語
117
+ NE;;尼泊爾語
118
+ NN;;新挪威語
119
+ NB;;書面挪威語
120
+ NO;;挪威語
121
+ NY;;契切瓦語
122
+ OC;;奧克西坦語 (1500 之後)
123
+ OJ;;奧杰布瓦語
124
+ OR;;歐利亞語(印度)
125
+ OM;;奧洛莫語
126
+ OS;;奧塞提語
127
+ PA;;旁遮普語
128
+ FA;;波斯語
129
+ PI;;巴利語
130
+ PL;;波蘭語
131
+ PT;;葡萄牙語
132
+ PS;;普什圖語
133
+ QU;;印加語
134
+ RM;;里托羅曼語
135
+ RO;;羅馬尼亞語
136
+ RN;;克倫地語
137
+ RU;;俄語
138
+ SG;;桑戈語(中非)
139
+ SA;;梵語
140
+ SI;;僧加羅語(錫蘭)
141
+ SK;;斯洛伐克語
142
+ SL;;斯洛維尼亞語
143
+ SE;;北薩米語
144
+ SM;;薩摩亞語
145
+ SN;;紹納語
146
+ SD;;信德語(印度)
147
+ SO;;索馬利語
148
+ ST;;南索托語
149
+ ES;;西班牙語
150
+ SC;;薩丁尼亞語
151
+ SR;;塞爾維亞語
152
+ SS;;斯瓦齊語
153
+ SU;;巽他語
154
+ SW;;史瓦西里語
155
+ SV;;瑞典語
156
+ TY;;大溪地語
157
+ TA;;坦米爾語
158
+ TT;;韃靼語
159
+ TE;;特拉古語
160
+ TG;;塔吉克語
161
+ TL;;塔加拉語
162
+ TH;;泰語
163
+ BO;;藏語
164
+ TI;;提格利尼亞語
165
+ TO;;東加語(東加群島)
166
+ TN;;茨瓦納語
167
+ TS;;宋加語
168
+ TK;;土庫曼語
169
+ TR;;土耳其語
170
+ TW;;奇族語(迦那)
171
+ UG;;維吾爾語
172
+ UK;;烏克蘭語
173
+ UR;;烏爾都語
174
+ UZ;;烏茲別克語
175
+ VE;;溫達語
176
+ VI;;越南語
177
+ VO;;沃拉普克語
178
+ CY;;威爾斯語
179
+ WA;;瓦隆語(比利時)
180
+ WO;;渥魯夫語
181
+ XH;;科薩語
182
+ YI;;意第緒語
183
+ YO;;約魯巴語
184
+ ZA;;壯語
185
+ ZU;;祖魯語
@@ -4,11 +4,11 @@ module I18nData
4
4
  extend self
5
5
 
6
6
  def languages(language_code='EN')
7
- data_provider.codes(:languages, language_code.to_s.upcase)
7
+ data_provider.codes(:languages, normal_to_region_code(language_code.to_s.upcase))
8
8
  end
9
9
 
10
10
  def countries(language_code='EN')
11
- data_provider.codes(:countries, language_code.to_s.upcase)
11
+ data_provider.codes(:countries, normal_to_region_code(language_code.to_s.upcase))
12
12
  end
13
13
 
14
14
  def country_code(name)
@@ -34,6 +34,15 @@ module I18nData
34
34
 
35
35
  private
36
36
 
37
+ # hardcode languages that do not have a default type
38
+ # e.g. zh does not exist, but zh_CN does
39
+ def normal_to_region_code(normal)
40
+ {
41
+ "ZH" => "ZH_CN",
42
+ "BN" => "BN_IN",
43
+ }[normal] || normal
44
+ end
45
+
37
46
  def recognise_code(type, search)
38
47
  search = search.strip
39
48
 
@@ -1,6 +1,6 @@
1
1
  module I18nData
2
2
  module FileDataProvider
3
- DATA_SEPERATOR = ";;"
3
+ DATA_SEPARATOR = ";;"
4
4
  extend self
5
5
 
6
6
  def codes(type, language_code)
@@ -11,7 +11,7 @@ module I18nData
11
11
  end
12
12
 
13
13
  def write_cache(provider)
14
- languages = provider.codes(:languages, 'EN').keys
14
+ languages = provider.codes(:languages, 'EN').keys + ['zh_CN', 'zh_TW', 'zh_HK','bn_IN','pt_BR']
15
15
  languages.each do |language_code|
16
16
  [:languages, :countries].each do |type|
17
17
  begin
@@ -29,7 +29,7 @@ module I18nData
29
29
  return nil unless File.exist?(file)
30
30
  data = {}
31
31
  File.readlines(file).each do |line|
32
- code, translation = line.strip.split(DATA_SEPERATOR, 2)
32
+ code, translation = line.strip.split(DATA_SEPARATOR, 2)
33
33
  data[code] = translation
34
34
  end
35
35
  data
@@ -39,7 +39,7 @@ module I18nData
39
39
  return if data.empty?
40
40
  FileUtils.mkdir_p File.dirname(file)
41
41
  File.open(file,'w') do |f|
42
- f.write data.map{|code, translation| "#{code}#{DATA_SEPERATOR}#{translation}" } * "\n"
42
+ f.write data.map{|code, translation| "#{code}#{DATA_SEPARATOR}#{translation}" } * "\n"
43
43
  end
44
44
  end
45
45
 
@@ -48,4 +48,4 @@ module I18nData
48
48
  File.join(File.dirname(__FILE__), '..', '..', 'cache', 'file_data_provider', "#{file}.txt")
49
49
  end
50
50
  end
51
- end
51
+ end
@@ -45,11 +45,15 @@ module I18nData
45
45
  def translations(type, language_code)
46
46
  @translations ||= {}
47
47
  @translations["#{type}_#{language_code}"] ||= begin
48
+ code = language_code.split("_")
49
+ code[0].downcase!
50
+ code = code.join("_")
51
+
48
52
  begin
49
- url = TRANSLATIONS[type]+"#{language_code.downcase}.po"
53
+ url = TRANSLATIONS[type]+"#{code}.po"
50
54
  data = open(url).read
51
55
  rescue
52
- raise NoTranslationAvailable, "for #{type} and language code = #{language_code} (#{$!})"
56
+ raise NoTranslationAvailable, "for #{type} and language code = #{code} (#{$!})"
53
57
  end
54
58
 
55
59
  data = data.force_encoding('utf-8') if data.respond_to?(:force_encoding) # 1.9
@@ -1,3 +1,3 @@
1
1
  module I18nData
2
- VERSION = Version = "0.3.1"
2
+ VERSION = Version = "0.3.2"
3
3
  end
@@ -1,6 +1,7 @@
1
1
  require "spec_helper"
2
- require 'i18n_data/live_data_provider'
2
+ require "i18n_data/live_data_provider"
3
3
 
4
+ # fetching is tested via spec/i18n_data_spec.rb, these are just unit-tests
4
5
  describe I18nData::LiveDataProvider do
5
6
  describe :po_to_hash do
6
7
  def po_to_hash(text)
@@ -57,6 +57,14 @@ describe I18nData do
57
57
  it "is written in unicode" do
58
58
  I18nData.languages('DE')['DA'].should == 'Dänisch'
59
59
  end
60
+
61
+ it "has default for languages that only have subtypes" do
62
+ I18nData.languages('ZH')['DA'].should == '丹麦语'
63
+ end
64
+
65
+ it "has language subtypes" do
66
+ I18nData.languages('ZH_TW')['DA'].should == '丹麥語'
67
+ end
60
68
  end
61
69
  end
62
70
 
@@ -95,6 +103,15 @@ describe I18nData do
95
103
  it "is written in unicode" do
96
104
  I18nData.countries('DE')['DK'].should == 'Dänemark'
97
105
  end
106
+
107
+ it "has default for languages that only have subtypes" do
108
+ I18nData.countries('ZH')['DK'].should == '丹麦'
109
+ I18nData.countries('BN')['DK'].should == 'ডেনমার্ক'
110
+ end
111
+
112
+ it "has language subtypes" do
113
+ I18nData.countries('ZH_TW')['DK'].should == '丹麥'
114
+ end
98
115
  end
99
116
  end
100
117
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: i18n_data
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-20 00:00:00.000000000 Z
12
+ date: 2012-07-19 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description:
15
15
  email: michael@grosser.it
@@ -112,6 +112,11 @@ files:
112
112
  - cache/file_data_provider/countries-WO.txt
113
113
  - cache/file_data_provider/countries-XH.txt
114
114
  - cache/file_data_provider/countries-ZU.txt
115
+ - cache/file_data_provider/countries-bn_IN.txt
116
+ - cache/file_data_provider/countries-pt_BR.txt
117
+ - cache/file_data_provider/countries-zh_CN.txt
118
+ - cache/file_data_provider/countries-zh_HK.txt
119
+ - cache/file_data_provider/countries-zh_TW.txt
115
120
  - cache/file_data_provider/languages-AF.txt
116
121
  - cache/file_data_provider/languages-AM.txt
117
122
  - cache/file_data_provider/languages-AR.txt
@@ -185,6 +190,11 @@ files:
185
190
  - cache/file_data_provider/languages-WA.txt
186
191
  - cache/file_data_provider/languages-XH.txt
187
192
  - cache/file_data_provider/languages-ZU.txt
193
+ - cache/file_data_provider/languages-bn_IN.txt
194
+ - cache/file_data_provider/languages-pt_BR.txt
195
+ - cache/file_data_provider/languages-zh_CN.txt
196
+ - cache/file_data_provider/languages-zh_HK.txt
197
+ - cache/file_data_provider/languages-zh_TW.txt
188
198
  - example_output/all_names_for_DE.txt
189
199
  - example_output/all_names_for_FR.txt
190
200
  - example_output/all_names_for_GB.txt
@@ -213,7 +223,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
213
223
  version: '0'
214
224
  segments:
215
225
  - 0
216
- hash: -2127312502409329384
226
+ hash: -3872978820631193356
217
227
  required_rubygems_version: !ruby/object:Gem::Requirement
218
228
  none: false
219
229
  requirements:
@@ -222,7 +232,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
222
232
  version: '0'
223
233
  segments:
224
234
  - 0
225
- hash: -2127312502409329384
235
+ hash: -3872978820631193356
226
236
  requirements: []
227
237
  rubyforge_project:
228
238
  rubygems_version: 1.8.24