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.
Files changed (75) hide show
  1. data/CHANGELOG.textile +57 -0
  2. data/README.textile +43 -9
  3. data/Rakefile +21 -0
  4. data/VERSION +1 -0
  5. data/lib/i18n.rb +87 -16
  6. data/lib/i18n/backend/base.rb +251 -0
  7. data/lib/i18n/backend/cache.rb +71 -0
  8. data/lib/i18n/backend/chain.rb +64 -0
  9. data/lib/i18n/backend/fallbacks.rb +53 -0
  10. data/lib/i18n/backend/fast.rb +53 -22
  11. data/lib/i18n/backend/fast/interpolation_compiler.rb +84 -0
  12. data/lib/i18n/backend/gettext.rb +65 -0
  13. data/lib/i18n/backend/lazy_reloading.rb +60 -0
  14. data/lib/i18n/backend/pluralization.rb +56 -0
  15. data/lib/i18n/backend/simple.rb +17 -240
  16. data/lib/i18n/exceptions.rb +13 -5
  17. data/lib/i18n/gettext.rb +25 -0
  18. data/lib/i18n/helpers/gettext.rb +35 -0
  19. data/lib/i18n/locale/fallbacks.rb +100 -0
  20. data/lib/i18n/locale/tag.rb +27 -0
  21. data/lib/i18n/locale/tag/parents.rb +24 -0
  22. data/lib/i18n/locale/tag/rfc4646.rb +78 -0
  23. data/lib/i18n/locale/tag/simple.rb +44 -0
  24. data/test/all.rb +5 -7
  25. data/test/api/basics.rb +15 -0
  26. data/test/api/interpolation.rb +85 -0
  27. data/test/api/lambda.rb +52 -0
  28. data/test/api/link.rb +47 -0
  29. data/test/api/localization/date.rb +65 -0
  30. data/test/api/localization/date_time.rb +63 -0
  31. data/test/api/localization/lambda.rb +26 -0
  32. data/test/api/localization/time.rb +63 -0
  33. data/test/api/pluralization.rb +37 -0
  34. data/test/api/translation.rb +51 -0
  35. data/test/backend/cache/cache_test.rb +57 -0
  36. data/test/backend/chain/api_test.rb +80 -0
  37. data/test/backend/chain/chain_test.rb +64 -0
  38. data/test/backend/fallbacks/api_test.rb +79 -0
  39. data/test/backend/fallbacks/fallbacks_test.rb +29 -0
  40. data/test/backend/fast/all.rb +5 -0
  41. data/test/backend/fast/api_test.rb +91 -0
  42. data/test/backend/fast/interpolation_compiler_test.rb +84 -0
  43. data/test/backend/fast/lookup_test.rb +24 -0
  44. data/test/backend/fast/setup.rb +22 -0
  45. data/test/backend/fast/translations_test.rb +89 -0
  46. data/test/backend/lazy_reloading/reloading_test.rb +67 -0
  47. data/test/backend/pluralization/api_test.rb +81 -0
  48. data/test/backend/pluralization/pluralization_test.rb +39 -0
  49. data/test/backend/simple/all.rb +5 -0
  50. data/test/backend/simple/api_test.rb +90 -0
  51. data/test/backend/simple/lookup_test.rb +24 -0
  52. data/test/backend/simple/setup.rb +151 -0
  53. data/test/backend/simple/translations_test.rb +89 -0
  54. data/test/fixtures/locales/de.po +61 -0
  55. data/test/fixtures/locales/en.rb +3 -0
  56. data/test/fixtures/locales/en.yml +3 -0
  57. data/test/fixtures/locales/plurals.rb +112 -0
  58. data/test/gettext/api_test.rb +78 -0
  59. data/test/gettext/backend_test.rb +35 -0
  60. data/test/i18n_exceptions_test.rb +6 -25
  61. data/test/i18n_load_path_test.rb +23 -0
  62. data/test/i18n_test.rb +56 -18
  63. data/test/locale/fallbacks_test.rb +128 -0
  64. data/test/locale/tag/rfc4646_test.rb +147 -0
  65. data/test/locale/tag/simple_test.rb +35 -0
  66. data/test/test_helper.rb +72 -0
  67. data/test/with_options.rb +34 -0
  68. metadata +109 -19
  69. data/i18n.gemspec +0 -31
  70. data/lib/i18n/backend/fast/pluralization_compiler.rb +0 -50
  71. data/test/backend_test.rb +0 -633
  72. data/test/fast_backend_test.rb +0 -34
  73. data/test/locale/en.rb +0 -1
  74. data/test/locale/en.yml +0 -3
  75. data/test/pluralization_compiler_test.rb +0 -35
@@ -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,3 +0,0 @@
1
- en-Yaml:
2
- foo:
3
- bar: baz
@@ -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