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.
- data/Gemfile.lock +1 -1
- data/Rakefile +3 -1
- data/Readme.md +7 -1
- data/cache/file_data_provider/countries-HR.txt +1 -1
- data/cache/file_data_provider/countries-WA.txt +10 -10
- data/cache/file_data_provider/countries-bn_IN.txt +249 -0
- data/cache/file_data_provider/countries-pt_BR.txt +249 -0
- data/cache/file_data_provider/countries-zh_CN.txt +249 -0
- data/cache/file_data_provider/countries-zh_HK.txt +249 -0
- data/cache/file_data_provider/countries-zh_TW.txt +249 -0
- data/cache/file_data_provider/languages-WA.txt +5 -5
- data/cache/file_data_provider/languages-bn_IN.txt +185 -0
- data/cache/file_data_provider/languages-pt_BR.txt +185 -0
- data/cache/file_data_provider/languages-zh_CN.txt +185 -0
- data/cache/file_data_provider/languages-zh_HK.txt +185 -0
- data/cache/file_data_provider/languages-zh_TW.txt +185 -0
- data/lib/i18n_data.rb +11 -2
- data/lib/i18n_data/file_data_provider.rb +5 -5
- data/lib/i18n_data/live_data_provider.rb +6 -2
- data/lib/i18n_data/version.rb +1 -1
- data/spec/i18n_data/live_data_provider_spec.rb +2 -1
- data/spec/i18n_data_spec.rb +17 -0
- metadata +14 -4
@@ -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;;祖魯語
|
data/lib/i18n_data.rb
CHANGED
@@ -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
|
-
|
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(
|
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}#{
|
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]+"#{
|
53
|
+
url = TRANSLATIONS[type]+"#{code}.po"
|
50
54
|
data = open(url).read
|
51
55
|
rescue
|
52
|
-
raise NoTranslationAvailable, "for #{type} and 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
|
data/lib/i18n_data/version.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require "spec_helper"
|
2
|
-
require
|
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)
|
data/spec/i18n_data_spec.rb
CHANGED
@@ -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.
|
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-
|
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: -
|
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: -
|
235
|
+
hash: -3872978820631193356
|
226
236
|
requirements: []
|
227
237
|
rubyforge_project:
|
228
238
|
rubygems_version: 1.8.24
|