thedarkone-i18n 0.1.4 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.textile +57 -0
- data/README.textile +43 -9
- data/Rakefile +21 -0
- data/VERSION +1 -0
- data/lib/i18n.rb +87 -16
- data/lib/i18n/backend/base.rb +251 -0
- data/lib/i18n/backend/cache.rb +71 -0
- data/lib/i18n/backend/chain.rb +64 -0
- data/lib/i18n/backend/fallbacks.rb +53 -0
- data/lib/i18n/backend/fast.rb +53 -22
- data/lib/i18n/backend/fast/interpolation_compiler.rb +84 -0
- data/lib/i18n/backend/gettext.rb +65 -0
- data/lib/i18n/backend/lazy_reloading.rb +60 -0
- data/lib/i18n/backend/pluralization.rb +56 -0
- data/lib/i18n/backend/simple.rb +17 -240
- data/lib/i18n/exceptions.rb +13 -5
- data/lib/i18n/gettext.rb +25 -0
- data/lib/i18n/helpers/gettext.rb +35 -0
- data/lib/i18n/locale/fallbacks.rb +100 -0
- data/lib/i18n/locale/tag.rb +27 -0
- data/lib/i18n/locale/tag/parents.rb +24 -0
- data/lib/i18n/locale/tag/rfc4646.rb +78 -0
- data/lib/i18n/locale/tag/simple.rb +44 -0
- data/test/all.rb +5 -7
- data/test/api/basics.rb +15 -0
- data/test/api/interpolation.rb +85 -0
- data/test/api/lambda.rb +52 -0
- data/test/api/link.rb +47 -0
- data/test/api/localization/date.rb +65 -0
- data/test/api/localization/date_time.rb +63 -0
- data/test/api/localization/lambda.rb +26 -0
- data/test/api/localization/time.rb +63 -0
- data/test/api/pluralization.rb +37 -0
- data/test/api/translation.rb +51 -0
- data/test/backend/cache/cache_test.rb +57 -0
- data/test/backend/chain/api_test.rb +80 -0
- data/test/backend/chain/chain_test.rb +64 -0
- data/test/backend/fallbacks/api_test.rb +79 -0
- data/test/backend/fallbacks/fallbacks_test.rb +29 -0
- data/test/backend/fast/all.rb +5 -0
- data/test/backend/fast/api_test.rb +91 -0
- data/test/backend/fast/interpolation_compiler_test.rb +84 -0
- data/test/backend/fast/lookup_test.rb +24 -0
- data/test/backend/fast/setup.rb +22 -0
- data/test/backend/fast/translations_test.rb +89 -0
- data/test/backend/lazy_reloading/reloading_test.rb +67 -0
- data/test/backend/pluralization/api_test.rb +81 -0
- data/test/backend/pluralization/pluralization_test.rb +39 -0
- data/test/backend/simple/all.rb +5 -0
- data/test/backend/simple/api_test.rb +90 -0
- data/test/backend/simple/lookup_test.rb +24 -0
- data/test/backend/simple/setup.rb +151 -0
- data/test/backend/simple/translations_test.rb +89 -0
- data/test/fixtures/locales/de.po +61 -0
- data/test/fixtures/locales/en.rb +3 -0
- data/test/fixtures/locales/en.yml +3 -0
- data/test/fixtures/locales/plurals.rb +112 -0
- data/test/gettext/api_test.rb +78 -0
- data/test/gettext/backend_test.rb +35 -0
- data/test/i18n_exceptions_test.rb +6 -25
- data/test/i18n_load_path_test.rb +23 -0
- data/test/i18n_test.rb +56 -18
- data/test/locale/fallbacks_test.rb +128 -0
- data/test/locale/tag/rfc4646_test.rb +147 -0
- data/test/locale/tag/simple_test.rb +35 -0
- data/test/test_helper.rb +72 -0
- data/test/with_options.rb +34 -0
- metadata +109 -19
- data/i18n.gemspec +0 -31
- data/lib/i18n/backend/fast/pluralization_compiler.rb +0 -50
- data/test/backend_test.rb +0 -633
- data/test/fast_backend_test.rb +0 -34
- data/test/locale/en.rb +0 -1
- data/test/locale/en.yml +0 -3
- data/test/pluralization_compiler_test.rb +0 -35
data/test/fast_backend_test.rb
DELETED
@@ -1,34 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
$:.unshift "lib"
|
3
|
-
|
4
|
-
require 'rubygems'
|
5
|
-
require 'test/unit'
|
6
|
-
require 'mocha'
|
7
|
-
require 'i18n'
|
8
|
-
require 'time'
|
9
|
-
require 'yaml'
|
10
|
-
|
11
|
-
class FastBackendTest < Test::Unit::TestCase
|
12
|
-
def setup
|
13
|
-
@backend = I18n::Backend::Fast.new
|
14
|
-
end
|
15
|
-
|
16
|
-
def assert_flattens(expected, nested)
|
17
|
-
assert_equal expected, @backend.send(:flatten_hash, nested)
|
18
|
-
end
|
19
|
-
|
20
|
-
def test_hash_flattening_works
|
21
|
-
assert_flattens( {:"b.c"=>"c", :"b.f.x"=>"x", :"b.d"=>"d", :a=>"a"}, {:a=>'a', :b=>{:c=>'c', :d=>'d', :f=>{:x=>'x'}}} )
|
22
|
-
assert_flattens( {:"a.b"=>['a', 'b']}, {:a=>{:b =>['a', 'b']}} )
|
23
|
-
end
|
24
|
-
|
25
|
-
def test_hash_flattening_preserves_pluralization_hashes
|
26
|
-
assert_flattens({:'a.b.one'=>'one', :'a.b'=>{:one => 'one'}}, {:a=>{:b=>{:one => 'one'}}})
|
27
|
-
end
|
28
|
-
|
29
|
-
def test_pluralization_logic_and_lookup_works
|
30
|
-
counts_hash = {:zero => 'zero', :one => 'one', :other => 'other'}
|
31
|
-
@backend.store_translations :en, {:a => counts_hash}
|
32
|
-
assert_equal 'one', @backend.translate(:en, :a, :count => 1)
|
33
|
-
end
|
34
|
-
end
|
data/test/locale/en.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{:'en-Ruby' => {:foo => {:bar => "baz"}}}
|
data/test/locale/en.yml
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
$:.unshift "lib"
|
3
|
-
|
4
|
-
require 'rubygems'
|
5
|
-
require 'test/unit'
|
6
|
-
require 'i18n'
|
7
|
-
|
8
|
-
PluralizationCompiler = I18n::Backend::Fast::PluralizationCompiler
|
9
|
-
|
10
|
-
class PluralizationCompilerTest < Test::Unit::TestCase
|
11
|
-
def assert_escapes(expected, malicious_str)
|
12
|
-
assert_equal(expected, PluralizationCompiler.send(:escape_key_sym, malicious_str))
|
13
|
-
end
|
14
|
-
|
15
|
-
def test_escape_key_properly_escapes
|
16
|
-
assert_escapes ':"\""', '"'
|
17
|
-
assert_escapes ':"\\\\"', '\\'
|
18
|
-
assert_escapes ':"\\\\\""', '\\"'
|
19
|
-
assert_escapes ':"\#{}"', '#{}'
|
20
|
-
assert_escapes ':"\\\\\#{}"', '\#{}'
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_non_interpolated_strings_or_arrays_dont_get_compiled
|
24
|
-
['abc', '\\\\{{a}}', []].each do |obj|
|
25
|
-
PluralizationCompiler.compile_if_an_interpolation(obj)
|
26
|
-
assert_equal false, obj.respond_to?(:i18n_interpolate)
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_interpolated_string_gets_compiled
|
31
|
-
str = '-{{a}}-'
|
32
|
-
PluralizationCompiler.compile_if_an_interpolation(str)
|
33
|
-
assert_equal '-A-', str.i18n_interpolate(:a => 'A')
|
34
|
-
end
|
35
|
-
end
|