pepe-i18n 0.2.0

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.
Files changed (61) hide show
  1. data/CHANGELOG.textile +57 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.textile +42 -0
  4. data/Rakefile +21 -0
  5. data/VERSION +1 -0
  6. data/lib/i18n.rb +270 -0
  7. data/lib/i18n/backend/base.rb +251 -0
  8. data/lib/i18n/backend/cache.rb +71 -0
  9. data/lib/i18n/backend/chain.rb +64 -0
  10. data/lib/i18n/backend/fallbacks.rb +53 -0
  11. data/lib/i18n/backend/gettext.rb +65 -0
  12. data/lib/i18n/backend/pluralization.rb +56 -0
  13. data/lib/i18n/backend/simple.rb +23 -0
  14. data/lib/i18n/exceptions.rb +61 -0
  15. data/lib/i18n/gettext.rb +25 -0
  16. data/lib/i18n/helpers/gettext.rb +35 -0
  17. data/lib/i18n/locale/fallbacks.rb +100 -0
  18. data/lib/i18n/locale/tag.rb +27 -0
  19. data/lib/i18n/locale/tag/parents.rb +24 -0
  20. data/lib/i18n/locale/tag/rfc4646.rb +78 -0
  21. data/lib/i18n/locale/tag/simple.rb +44 -0
  22. data/lib/i18n/string.rb +95 -0
  23. data/test/all.rb +5 -0
  24. data/test/api/basics.rb +15 -0
  25. data/test/api/interpolation.rb +85 -0
  26. data/test/api/lambda.rb +52 -0
  27. data/test/api/link.rb +47 -0
  28. data/test/api/localization/date.rb +65 -0
  29. data/test/api/localization/date_time.rb +63 -0
  30. data/test/api/localization/lambda.rb +26 -0
  31. data/test/api/localization/time.rb +63 -0
  32. data/test/api/pluralization.rb +37 -0
  33. data/test/api/translation.rb +51 -0
  34. data/test/backend/cache/cache_test.rb +57 -0
  35. data/test/backend/chain/api_test.rb +80 -0
  36. data/test/backend/chain/chain_test.rb +64 -0
  37. data/test/backend/fallbacks/api_test.rb +79 -0
  38. data/test/backend/fallbacks/fallbacks_test.rb +29 -0
  39. data/test/backend/pluralization/api_test.rb +81 -0
  40. data/test/backend/pluralization/pluralization_test.rb +39 -0
  41. data/test/backend/simple/all.rb +5 -0
  42. data/test/backend/simple/api_test.rb +90 -0
  43. data/test/backend/simple/lookup_test.rb +24 -0
  44. data/test/backend/simple/setup.rb +147 -0
  45. data/test/backend/simple/translations_test.rb +89 -0
  46. data/test/fixtures/locales/de.po +61 -0
  47. data/test/fixtures/locales/en.rb +3 -0
  48. data/test/fixtures/locales/en.yml +3 -0
  49. data/test/fixtures/locales/plurals.rb +112 -0
  50. data/test/gettext/api_test.rb +78 -0
  51. data/test/gettext/backend_test.rb +35 -0
  52. data/test/i18n_exceptions_test.rb +97 -0
  53. data/test/i18n_load_path_test.rb +23 -0
  54. data/test/i18n_test.rb +163 -0
  55. data/test/locale/fallbacks_test.rb +128 -0
  56. data/test/locale/tag/rfc4646_test.rb +147 -0
  57. data/test/locale/tag/simple_test.rb +35 -0
  58. data/test/string_test.rb +94 -0
  59. data/test/test_helper.rb +71 -0
  60. data/test/with_options.rb +34 -0
  61. metadata +151 -0
@@ -0,0 +1,147 @@
1
+ # encoding: utf-8
2
+
3
+ require File.dirname(__FILE__) + '/../../test_helper.rb'
4
+ require 'i18n/locale/tag'
5
+ require 'i18n/locale/tag/rfc4646'
6
+
7
+ # Rfc4646::Parser
8
+
9
+ class I18nLocaleTagRfc4646ParserTest < Test::Unit::TestCase
10
+ include I18n::Locale
11
+
12
+ test "Rfc4646::Parser given a valid tag 'de' returns an array of subtags" do
13
+ assert_equal ['de', nil, nil, nil, nil, nil, nil], Tag::Rfc4646::Parser.match('de')
14
+ end
15
+
16
+ test "Rfc4646::Parser given a valid tag 'de' returns an array of subtags" do
17
+ assert_equal ['de', nil, 'DE', nil, nil, nil, nil], Tag::Rfc4646::Parser.match('de-DE')
18
+ end
19
+
20
+ test "Rfc4646::Parser given a valid lowercase tag 'de-latn-de-variant-x-phonebk' returns an array of subtags" do
21
+ assert_equal ['de', 'latn', 'de', 'variant', nil, 'x-phonebk', nil], Tag::Rfc4646::Parser.match('de-latn-de-variant-x-phonebk')
22
+ end
23
+
24
+ test "Rfc4646::Parser given a valid uppercase tag 'DE-LATN-DE-VARIANT-X-PHONEBK' returns an array of subtags" do
25
+ assert_equal ['DE', 'LATN', 'DE', 'VARIANT', nil, 'X-PHONEBK', nil], Tag::Rfc4646::Parser.match('DE-LATN-DE-VARIANT-X-PHONEBK')
26
+ end
27
+
28
+ test "Rfc4646::Parser given an invalid tag 'a-DE' it returns false" do
29
+ assert_equal false, Tag::Rfc4646::Parser.match('a-DE')
30
+ end
31
+
32
+ test "Rfc4646::Parser given an invalid tag 'de-419-DE' it returns false" do
33
+ assert_equal false, Tag::Rfc4646::Parser.match('de-419-DE')
34
+ end
35
+ end
36
+
37
+ # Tag for the locale 'de-Latn-DE-Variant-a-ext-x-phonebk-i-klingon'
38
+
39
+ class I18nLocaleTagSubtagsTest < Test::Unit::TestCase
40
+ include I18n::Locale
41
+
42
+ def setup
43
+ subtags = %w(de Latn DE variant a-ext x-phonebk i-klingon)
44
+ @tag = Tag::Rfc4646.new *subtags
45
+ end
46
+
47
+ test "returns 'de' as the language subtag in lowercase" do
48
+ assert_equal 'de', @tag.language
49
+ end
50
+
51
+ test "returns 'Latn' as the script subtag in titlecase" do
52
+ assert_equal 'Latn', @tag.script
53
+ end
54
+
55
+ test "returns 'DE' as the region subtag in uppercase" do
56
+ assert_equal 'DE', @tag.region
57
+ end
58
+
59
+ test "returns 'variant' as the variant subtag in lowercase" do
60
+ assert_equal 'variant', @tag.variant
61
+ end
62
+
63
+ test "returns 'a-ext' as the extension subtag" do
64
+ assert_equal 'a-ext', @tag.extension
65
+ end
66
+
67
+ test "returns 'x-phonebk' as the privateuse subtag" do
68
+ assert_equal 'x-phonebk', @tag.privateuse
69
+ end
70
+
71
+ test "returns 'i-klingon' as the grandfathered subtag" do
72
+ assert_equal 'i-klingon', @tag.grandfathered
73
+ end
74
+
75
+ test "returns a formatted tag string from #to_s" do
76
+ assert_equal 'de-Latn-DE-variant-a-ext-x-phonebk-i-klingon', @tag.to_s
77
+ end
78
+
79
+ test "returns an array containing the formatted subtags from #to_a" do
80
+ assert_equal %w(de Latn DE variant a-ext x-phonebk i-klingon), @tag.to_a
81
+ end
82
+ end
83
+
84
+ # Tag inheritance
85
+
86
+ class I18nLocaleTagSubtagsTest < Test::Unit::TestCase
87
+ test "#parent returns 'de-Latn-DE-variant-a-ext-x-phonebk' as the parent of 'de-Latn-DE-variant-a-ext-x-phonebk-i-klingon'" do
88
+ tag = Tag::Rfc4646.new *%w(de Latn DE variant a-ext x-phonebk i-klingon)
89
+ assert_equal 'de-Latn-DE-variant-a-ext-x-phonebk', tag.parent.to_s
90
+ end
91
+
92
+ test "#parent returns 'de-Latn-DE-variant-a-ext' as the parent of 'de-Latn-DE-variant-a-ext-x-phonebk'" do
93
+ tag = Tag::Rfc4646.new *%w(de Latn DE variant a-ext x-phonebk)
94
+ assert_equal 'de-Latn-DE-variant-a-ext', tag.parent.to_s
95
+ end
96
+
97
+ test "#parent returns 'de-Latn-DE-variant' as the parent of 'de-Latn-DE-variant-a-ext'" do
98
+ tag = Tag::Rfc4646.new *%w(de Latn DE variant a-ext)
99
+ assert_equal 'de-Latn-DE-variant', tag.parent.to_s
100
+ end
101
+
102
+ test "#parent returns 'de-Latn-DE' as the parent of 'de-Latn-DE-variant'" do
103
+ tag = Tag::Rfc4646.new *%w(de Latn DE variant)
104
+ assert_equal 'de-Latn-DE', tag.parent.to_s
105
+ end
106
+
107
+ test "#parent returns 'de-Latn' as the parent of 'de-Latn-DE'" do
108
+ tag = Tag::Rfc4646.new *%w(de Latn DE)
109
+ assert_equal 'de-Latn', tag.parent.to_s
110
+ end
111
+
112
+ test "#parent returns 'de' as the parent of 'de-Latn'" do
113
+ tag = Tag::Rfc4646.new *%w(de Latn)
114
+ assert_equal 'de', tag.parent.to_s
115
+ end
116
+
117
+ # TODO RFC4647 says: "If no language tag matches the request, the "default" value is returned."
118
+ # where should we set the default language?
119
+ # test "#parent returns '' as the parent of 'de'" do
120
+ # tag = Tag::Rfc4646.new *%w(de)
121
+ # assert_equal '', tag.parent.to_s
122
+ # end
123
+
124
+ test "#parent returns an array of 5 parents for 'de-Latn-DE-variant-a-ext-x-phonebk-i-klingon'" do
125
+ parents = %w(de-Latn-DE-variant-a-ext-x-phonebk-i-klingon
126
+ de-Latn-DE-variant-a-ext-x-phonebk
127
+ de-Latn-DE-variant-a-ext
128
+ de-Latn-DE-variant
129
+ de-Latn-DE
130
+ de-Latn
131
+ de)
132
+ tag = Tag::Rfc4646.new *%w(de Latn DE variant a-ext x-phonebk i-klingon)
133
+ assert_equal parents, tag.self_and_parents.map{|tag| tag.to_s}
134
+ end
135
+
136
+ test "returns an array of 5 parents for 'de-Latn-DE-variant-a-ext-x-phonebk-i-klingon'" do
137
+ parents = %w(de-Latn-DE-variant-a-ext-x-phonebk-i-klingon
138
+ de-Latn-DE-variant-a-ext-x-phonebk
139
+ de-Latn-DE-variant-a-ext
140
+ de-Latn-DE-variant
141
+ de-Latn-DE
142
+ de-Latn
143
+ de)
144
+ tag = Tag::Rfc4646.new *%w(de Latn DE variant a-ext x-phonebk i-klingon)
145
+ assert_equal parents, tag.self_and_parents.map{|tag| tag.to_s}
146
+ end
147
+ end
@@ -0,0 +1,35 @@
1
+ # encoding: utf-8
2
+
3
+ require File.dirname(__FILE__) + '/../../test_helper.rb'
4
+ require 'i18n/locale/tag'
5
+ require 'i18n/locale/tag/simple'
6
+
7
+ class I18nLocaleTagSimpleTest < Test::Unit::TestCase
8
+ include I18n::Locale
9
+
10
+ test "returns 'de' as the language subtag in lowercase" do
11
+ assert_equal %w(de Latn DE), Tag::Simple.new('de-Latn-DE').subtags
12
+ end
13
+
14
+ test "returns a formatted tag string from #to_s" do
15
+ assert_equal 'de-Latn-DE', Tag::Simple.new('de-Latn-DE').to_s
16
+ end
17
+
18
+ test "returns an array containing the formatted subtags from #to_a" do
19
+ assert_equal %w(de Latn DE), Tag::Simple.new('de-Latn-DE').to_a
20
+ end
21
+
22
+ # Tag inheritance
23
+
24
+ test "#parent returns 'de-Latn' as the parent of 'de-Latn-DE'" do
25
+ assert_equal 'de-Latn', Tag::Simple.new('de-Latn-DE').parent.to_s
26
+ end
27
+
28
+ test "#parent returns 'de' as the parent of 'de-Latn'" do
29
+ assert_equal 'de', Tag::Simple.new('de-Latn').parent.to_s
30
+ end
31
+
32
+ test "#self_and_parents returns an array of 3 tags for 'de-Latn-DE'" do
33
+ assert_equal %w(de-Latn-DE de-Latn de), Tag::Simple.new('de-Latn-DE').self_and_parents.map { |tag| tag.to_s}
34
+ end
35
+ end
@@ -0,0 +1,94 @@
1
+ # encoding: utf-8
2
+
3
+ require File.expand_path(File.dirname(__FILE__) + '/test_helper')
4
+
5
+ # thanks to Masao's String extensions these should work the same in
6
+ # Ruby 1.8 (patched) and Ruby 1.9 (native)
7
+ # some tests taken from Masao's tests
8
+ # http://github.com/mutoh/gettext/blob/edbbe1fa8238fa12c7f26f2418403015f0270e47/test/test_string.rb
9
+
10
+ class I18nStringTest < Test::Unit::TestCase
11
+ define_method :"test: String interpolates a single argument" do
12
+ assert_equal "Masao", "%s" % "Masao"
13
+ end
14
+
15
+ define_method :"test: String interpolates an array argument" do
16
+ assert_equal "1 message", "%d %s" % [1, 'message']
17
+ end
18
+
19
+ define_method :"test: String interpolates a hash argument w/ named placeholders" do
20
+ assert_equal "Masao Mutoh", "%{first} %{last}" % { :first => 'Masao', :last => 'Mutoh' }
21
+ end
22
+
23
+ define_method :"test: String interpolates a hash argument w/ named placeholders (reverse order)" do
24
+ assert_equal "Mutoh, Masao", "%{last}, %{first}" % { :first => 'Masao', :last => 'Mutoh' }
25
+ end
26
+
27
+ define_method :"test: String interpolates named placeholders with sprintf syntax" do
28
+ assert_equal "10, 43.4", "%<integer>d, %<float>.1f" % {:integer => 10, :float => 43.4}
29
+ end
30
+
31
+ define_method :"test: String interpolates named placeholders with sprintf syntax, does not recurse" do
32
+ assert_equal "%<not_translated>s", "%{msg}" % { :msg => '%<not_translated>s', :not_translated => 'should not happen' }
33
+ end
34
+
35
+ define_method :"test: String interpolation does not replace anything when no placeholders are given" do
36
+ assert_equal("aaa", "aaa" % {:num => 1})
37
+ assert_equal("bbb", "bbb" % [1])
38
+ end
39
+
40
+ define_method :"test: String interpolation sprintf behaviour equals Ruby 1.9 behaviour" do
41
+ assert_equal("1", "%<num>d" % {:num => 1})
42
+ assert_equal("0b1", "%<num>#b" % {:num => 1})
43
+ assert_equal("foo", "%<msg>s" % {:msg => "foo"})
44
+ assert_equal("1.000000", "%<num>f" % {:num => 1.0})
45
+ assert_equal(" 1", "%<num>3.0f" % {:num => 1.0})
46
+ assert_equal("100.00", "%<num>2.2f" % {:num => 100.0})
47
+ assert_equal("0x64", "%<num>#x" % {:num => 100.0})
48
+ assert_raise(ArgumentError) { "%<num>,d" % {:num => 100} }
49
+ assert_raise(ArgumentError) { "%<num>/d" % {:num => 100} }
50
+ end
51
+
52
+ define_method :"test: String interpolation old-style sprintf still works" do
53
+ assert_equal("foo 1.000000", "%s %f" % ["foo", 1.0])
54
+ end
55
+
56
+ define_method :"test: String interpolation raises an ArgumentError when the string has extra placeholders (Array)" do
57
+ assert_raises(ArgumentError) do # Ruby 1.9 msg: "too few arguments"
58
+ "%s %s" % %w(Masao)
59
+ end
60
+ end
61
+
62
+ define_method :"test: String interpolation raises a KeyError when the string has extra placeholders (Hash)" do
63
+ assert_raises(KeyError) do # Ruby 1.9 msg: "key not found"
64
+ "%{first} %{last}" % { :first => 'Masao' }
65
+ end
66
+ end
67
+
68
+ define_method :"test: String interpolation does not raise when passed extra values (Array)" do
69
+ assert_nothing_raised do
70
+ assert_equal "Masao", "%s" % %w(Masao Mutoh)
71
+ end
72
+ end
73
+
74
+ define_method :"test: String interpolation does not raise when passed extra values (Hash)" do
75
+ assert_nothing_raised do
76
+ assert_equal "Masao Mutoh", "%{first} %{last}" % { :first => 'Masao', :last => 'Mutoh', :salutation => 'Mr.' }
77
+ end
78
+ end
79
+
80
+ define_method :"test: % acts as escape character in String interpolation" do
81
+ assert_equal "%{first}", "%%{first}" % { :first => 'Masao' }
82
+ assert_equal("% 1", "%% %<num>d" % {:num => 1.0})
83
+ assert_equal("%{num} %<num>d", "%%{num} %%<num>d" % {:num => 1})
84
+ end
85
+
86
+ def test_sprintf_mix_unformatted_and_formatted_named_placeholders
87
+ assert_equal("foo 1.000000", "%{name} %<num>f" % {:name => "foo", :num => 1.0})
88
+ end
89
+
90
+ def test_string_interpolation_raises_an_argument_error_when_mixing_named_and_unnamed_placeholders
91
+ assert_raises(ArgumentError) { "%{name} %f" % [1.0] }
92
+ assert_raises(ArgumentError) { "%{name} %f" % [1.0, 2.0] }
93
+ end
94
+ end
@@ -0,0 +1,71 @@
1
+ # encoding: utf-8
2
+
3
+ $:.unshift "lib"
4
+
5
+ require 'rubygems'
6
+ require 'test/unit'
7
+ require 'mocha'
8
+ require 'i18n'
9
+ require 'time'
10
+ require 'yaml'
11
+
12
+ require File.dirname(__FILE__) + '/with_options'
13
+ require File.dirname(__FILE__) + '/backend/simple/setup'
14
+
15
+ Dir[File.dirname(__FILE__) + '/api/**/*.rb'].each do |filename|
16
+ require filename
17
+ end
18
+
19
+ $KCODE = 'u' unless RUBY_VERSION >= '1.9'
20
+
21
+ class Test::Unit::TestCase
22
+ def self.test(name, &block)
23
+ define_method("test: " + name, &block)
24
+ end
25
+
26
+ def euc_jp(string)
27
+ string.encode!(Encoding::EUC_JP)
28
+ end
29
+
30
+ def locales_dir
31
+ File.dirname(__FILE__) + '/fixtures/locales'
32
+ end
33
+
34
+ def backend_store_translations(*args)
35
+ I18n.backend.store_translations(*args)
36
+ end
37
+
38
+ def backend_get_translations
39
+ I18n.backend.instance_variable_get :@translations
40
+ end
41
+
42
+ def date
43
+ Date.new(2008, 3, 1)
44
+ end
45
+
46
+ def morning_datetime
47
+ DateTime.new(2008, 3, 1, 6)
48
+ end
49
+ alias :datetime :morning_datetime
50
+
51
+ def evening_datetime
52
+ DateTime.new(2008, 3, 1, 18)
53
+ end
54
+
55
+ def morning_time
56
+ Time.parse('2008-03-01 6:00 UTC')
57
+ end
58
+ alias :time :morning_time
59
+
60
+ def evening_time
61
+ Time.parse('2008-03-01 18:00 UTC')
62
+ end
63
+ end
64
+
65
+ class Object
66
+ def meta_class
67
+ class << self; self; end
68
+ end
69
+ end
70
+
71
+
@@ -0,0 +1,34 @@
1
+ # encoding: utf-8
2
+
3
+ # this is only here so we can test I18n works nicely with ActiveSupports
4
+ # with_options. Maybe we can just remove it?
5
+
6
+ class Object
7
+ def with_options(options)
8
+ yield ActiveSupport::OptionMerger.new(self, options)
9
+ end
10
+ end
11
+
12
+ module ActiveSupport
13
+ class OptionMerger #:nodoc:
14
+ instance_methods.each do |method|
15
+ undef_method(method) if method !~ /^(__|instance_eval|class|object_id)/
16
+ end
17
+
18
+ def initialize(context, options)
19
+ @context, @options = context, options
20
+ end
21
+
22
+ private
23
+ def method_missing(method, *arguments, &block)
24
+ if arguments.last.is_a?(Proc)
25
+ proc = arguments.pop
26
+ arguments << lambda { |*args| @options.deep_merge(proc.call(*args)) }
27
+ else
28
+ arguments << (arguments.last.respond_to?(:to_hash) ? @options.deep_merge(arguments.pop) : @options.dup)
29
+ end
30
+
31
+ @context.__send__(method, *arguments, &block)
32
+ end
33
+ end
34
+ end
metadata ADDED
@@ -0,0 +1,151 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: pepe-i18n
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.0
5
+ platform: ruby
6
+ authors:
7
+ - Sven Fuchs
8
+ - Joshua Harvey
9
+ - Matt Aimonetti
10
+ - Stephan Soller
11
+ - Saimon Moore
12
+ autorequire:
13
+ bindir: bin
14
+ cert_chain: []
15
+
16
+ date: 2009-09-09 00:00:00 -07:00
17
+ default_executable:
18
+ dependencies: []
19
+
20
+ description: Add Internationalization support to your Ruby application.
21
+ email: rails-i18n@googlegroups.com
22
+ executables: []
23
+
24
+ extensions: []
25
+
26
+ extra_rdoc_files:
27
+ - README.textile
28
+ files:
29
+ - CHANGELOG.textile
30
+ - MIT-LICENSE
31
+ - README.textile
32
+ - Rakefile
33
+ - VERSION
34
+ - lib/i18n.rb
35
+ - lib/i18n/backend/base.rb
36
+ - lib/i18n/backend/cache.rb
37
+ - lib/i18n/backend/chain.rb
38
+ - lib/i18n/backend/fallbacks.rb
39
+ - lib/i18n/backend/gettext.rb
40
+ - lib/i18n/backend/pluralization.rb
41
+ - lib/i18n/backend/simple.rb
42
+ - lib/i18n/exceptions.rb
43
+ - lib/i18n/gettext.rb
44
+ - lib/i18n/helpers/gettext.rb
45
+ - lib/i18n/locale/fallbacks.rb
46
+ - lib/i18n/locale/tag.rb
47
+ - lib/i18n/locale/tag/parents.rb
48
+ - lib/i18n/locale/tag/rfc4646.rb
49
+ - lib/i18n/locale/tag/simple.rb
50
+ - lib/i18n/string.rb
51
+ - test/all.rb
52
+ - test/api/basics.rb
53
+ - test/api/interpolation.rb
54
+ - test/api/lambda.rb
55
+ - test/api/link.rb
56
+ - test/api/localization/date.rb
57
+ - test/api/localization/date_time.rb
58
+ - test/api/localization/lambda.rb
59
+ - test/api/localization/time.rb
60
+ - test/api/pluralization.rb
61
+ - test/api/translation.rb
62
+ - test/backend/cache/cache_test.rb
63
+ - test/backend/chain/api_test.rb
64
+ - test/backend/chain/chain_test.rb
65
+ - test/backend/fallbacks/api_test.rb
66
+ - test/backend/fallbacks/fallbacks_test.rb
67
+ - test/backend/pluralization/api_test.rb
68
+ - test/backend/pluralization/pluralization_test.rb
69
+ - test/backend/simple/all.rb
70
+ - test/backend/simple/api_test.rb
71
+ - test/backend/simple/lookup_test.rb
72
+ - test/backend/simple/setup.rb
73
+ - test/backend/simple/translations_test.rb
74
+ - test/fixtures/locales/de.po
75
+ - test/fixtures/locales/en.rb
76
+ - test/fixtures/locales/en.yml
77
+ - test/fixtures/locales/plurals.rb
78
+ - test/gettext/api_test.rb
79
+ - test/gettext/backend_test.rb
80
+ - test/i18n_exceptions_test.rb
81
+ - test/i18n_load_path_test.rb
82
+ - test/i18n_test.rb
83
+ - test/locale/fallbacks_test.rb
84
+ - test/locale/tag/rfc4646_test.rb
85
+ - test/locale/tag/simple_test.rb
86
+ - test/string_test.rb
87
+ - test/test_helper.rb
88
+ - test/with_options.rb
89
+ has_rdoc: false
90
+ homepage: http://rails-i18n.org
91
+ post_install_message:
92
+ rdoc_options:
93
+ - --charset=UTF-8
94
+ require_paths:
95
+ - lib
96
+ required_ruby_version: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: "0"
101
+ version:
102
+ required_rubygems_version: !ruby/object:Gem::Requirement
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ version: "0"
107
+ version:
108
+ requirements: []
109
+
110
+ rubyforge_project: i18n
111
+ rubygems_version: 1.2.0
112
+ signing_key:
113
+ specification_version: 3
114
+ summary: New wave Internationalization support for Ruby
115
+ test_files:
116
+ - test/all.rb
117
+ - test/api/basics.rb
118
+ - test/api/interpolation.rb
119
+ - test/api/lambda.rb
120
+ - test/api/link.rb
121
+ - test/api/localization/date.rb
122
+ - test/api/localization/date_time.rb
123
+ - test/api/localization/lambda.rb
124
+ - test/api/localization/time.rb
125
+ - test/api/pluralization.rb
126
+ - test/api/translation.rb
127
+ - test/backend/cache/cache_test.rb
128
+ - test/backend/chain/api_test.rb
129
+ - test/backend/chain/chain_test.rb
130
+ - test/backend/fallbacks/api_test.rb
131
+ - test/backend/fallbacks/fallbacks_test.rb
132
+ - test/backend/pluralization/api_test.rb
133
+ - test/backend/pluralization/pluralization_test.rb
134
+ - test/backend/simple/all.rb
135
+ - test/backend/simple/api_test.rb
136
+ - test/backend/simple/lookup_test.rb
137
+ - test/backend/simple/setup.rb
138
+ - test/backend/simple/translations_test.rb
139
+ - test/fixtures/locales/en.rb
140
+ - test/fixtures/locales/plurals.rb
141
+ - test/gettext/api_test.rb
142
+ - test/gettext/backend_test.rb
143
+ - test/i18n_exceptions_test.rb
144
+ - test/i18n_load_path_test.rb
145
+ - test/i18n_test.rb
146
+ - test/locale/fallbacks_test.rb
147
+ - test/locale/tag/rfc4646_test.rb
148
+ - test/locale/tag/simple_test.rb
149
+ - test/string_test.rb
150
+ - test/test_helper.rb
151
+ - test/with_options.rb