translation_panel 0.2.3 → 0.2.4

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.
@@ -2,21 +2,25 @@ h1. TranslationPanel
2
2
 
3
3
  h3. Using with Redis:
4
4
 
5
- # Run redis-server
5
+ * Run redis-server
6
6
 
7
- # Set up redis connection settings and register RedisTranslator::Backend as
7
+ * Set up redis connection settings and register RedisTranslator::Backend as
8
8
  i18n backend in initializers:
9
9
 
10
+ <pre><code>
10
11
  I18n.backend = TranslationPanel::RedisBackend.new(Redis.new)
11
12
  # or in chain with another backend
13
+ </code></pre>
12
14
 
13
- # Create predicate method +translation_panel?+ in ApplicationController,
15
+ * Create predicate method +translation_panel?+ in ApplicationController,
14
16
  define in it, when panel can be shown and when translates can be saved. By
15
17
  default always.
16
18
 
19
+ <pre><code>
17
20
  def translation_panel?
18
21
  params[:translator].present?
19
22
  end
23
+ </code></pre>
20
24
 
21
25
  h3. Dependencies
22
26
 
@@ -31,14 +35,18 @@ Redis backen
31
35
 
32
36
  1. You need to use Simple backend with included I18n::Pluralization in chain:
33
37
 
38
+ <pre><code>
34
39
  I18n::Backend::Simple.include I18n::Backend::Pluralization
35
40
  redis_backend = TranslationPanel::RedisBackend.new(Redis.new)
36
41
  I18n.backend = I18n::Backend::Chain.new(redis_backend, I18n::Backend::Simple.new)
42
+ </code></pre>
37
43
 
38
44
  2. You need to add in +config/locales/*.yml+ files rules for pluralization:
39
45
 
46
+ <pre><code>
40
47
  i18n:
41
48
  plural:
42
49
  keys:
43
50
  - one
44
51
  - other
52
+ </code></pre>
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.3
1
+ 0.2.4
@@ -52,15 +52,23 @@ module TranslationPanel
52
52
  # Creates empty translations for absented pluralization keys.
53
53
  # Returns hash with plural keys and their values (even from another backend)
54
54
  def get_count_keys(locale, key)
55
- I18n.t!('i18n.plural.keys', :locale => locale).inject({}) do |result, plural_key|
55
+ empty_translations = {}
56
+ store_empty_translations = false
57
+ count_keys = I18n.t!('i18n.plural.keys', :locale => locale).inject({}) do |result, plural_key|
56
58
  full_key = "#{key}.#{plural_key}"
57
59
  value = get_translate(locale, full_key)
58
- unless value
59
- I18n.backend.store_translations locale, {full_key => ""}, :escape => false
60
- value = ""
60
+ if value
61
+ store_empty_translations = true
62
+ result.merge plural_key.to_s => value
63
+ else
64
+ empty_translations.merge! full_key => ""
65
+ result
61
66
  end
62
- result.merge plural_key.to_s => value
63
67
  end
68
+ if store_empty_translations && empty_translations.present?
69
+ I18n.backend.store_translations locale, empty_translations, :escape => false
70
+ end
71
+ count_keys
64
72
  rescue
65
73
  {}
66
74
  end
@@ -82,5 +82,9 @@ describe TranslationPanel::RedisBackend do
82
82
  I18n.translate("some.missing", :count => 23).should == "23 пропажи"
83
83
  I18n.translate("some.missing", :count => 11).should == ""
84
84
  end
85
+
86
+ it "returns default value for empty translate" do
87
+ I18n.translate("all.missing", :count => 21, :default => "Abc").should == "Abc"
88
+ end
85
89
  end
86
90
  end
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{translation_panel}
8
- s.version = "0.2.3"
8
+ s.version = "0.2.4"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Mik-die"]
12
- s.date = %q{2011-08-13}
12
+ s.date = %q{2011-08-18}
13
13
  s.description = %q{I18n backend, based on redis, with frontend panel for translations}
14
14
  s.email = %q{MikDiet@gmail.com}
15
15
  s.extra_rdoc_files = [
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: translation_panel
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.2.3
5
+ version: 0.2.4
6
6
  platform: ruby
7
7
  authors:
8
8
  - Mik-die
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-08-13 00:00:00 +08:00
13
+ date: 2011-08-18 00:00:00 +08:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency
@@ -146,7 +146,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
146
146
  requirements:
147
147
  - - ">="
148
148
  - !ruby/object:Gem::Version
149
- hash: -593371821
149
+ hash: 760914177
150
150
  segments:
151
151
  - 0
152
152
  version: "0"