thedarkone-i18n 0.1.4 → 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.
- 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
|