i18n_data 0.3.1 → 0.3.2

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.
@@ -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