whowish_word 0.4.0 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -50,7 +50,7 @@ if defined?(ActionView) and defined?(ActionView::Base)
50
50
  if @whowish_word_config.edit_mode == true
51
51
  s = PREFIX + \
52
52
  SEPARATOR + \
53
- uid.to_s + \
53
+ scope_key_by_partial(uid.to_s) + \
54
54
  SEPARATOR + \
55
55
  previous_t(uid, *variables)
56
56
  return "<dfn>#{s}</dfn>".html_safe
@@ -63,7 +63,7 @@ if defined?(ActionView) and defined?(ActionView::Base)
63
63
  if @whowish_word_config.edit_mode == true
64
64
  s = PREFIX + \
65
65
  SEPARATOR + \
66
- uid.to_s + \
66
+ scope_key_by_partial(uid.to_s) + \
67
67
  SEPARATOR + \
68
68
  previous_t(uid, *variables)
69
69
  return s.html_safe
@@ -27,7 +27,23 @@ class WhowishWordController < ApplicationController
27
27
  end
28
28
 
29
29
  def change_word
30
- locale_file = File.join(Rails.root, "config", "locales", "whowish_word", "#{I18n.locale}.yml")
30
+
31
+ keys = params[:word_id].split(".")
32
+ uid = keys.pop
33
+ filename = "#{I18n.locale}.yml"
34
+
35
+ if keys.length > 1
36
+ filename = "#{keys[1..-1].join("_")}_#{filename}"
37
+ end
38
+
39
+ paths = [Rails.root, "config", "locales", "whowish_word"]
40
+ paths.push(keys[0]) if keys.length > 0
41
+ paths.push(filename)
42
+
43
+ locale_file = File.join(*paths)
44
+ FileUtils.mkdir_p(File.join(*paths[0..-2]))
45
+
46
+ translation_keys = I18n.normalize_keys(I18n.locale, params[:word_id], nil, ".")
31
47
 
32
48
  file = nil
33
49
  data = {}
@@ -48,8 +64,14 @@ class WhowishWordController < ApplicationController
48
64
  data = {}
49
65
  end
50
66
 
51
- data[I18n.locale.to_s] ||= {}
52
- data[I18n.locale.to_s][params[:word_id]] = params[:content]
67
+ direct = data
68
+ translation_keys[0..-2].each { |k|
69
+ k = k.to_s
70
+ direct[k] ||= {}
71
+ direct = direct[k]
72
+ }
73
+
74
+ direct[translation_keys.last.to_s] = params[:content]
53
75
 
54
76
  file.rewind
55
77
  file.write(YAML.dump(data))
@@ -60,9 +82,13 @@ class WhowishWordController < ApplicationController
60
82
  file.close
61
83
  end
62
84
 
63
- I18n.translations[I18n.locale.to_sym] ||= {}
64
- I18n.translations[I18n.locale.to_sym][params[:word_id].to_sym] = params[:content]
65
-
85
+ direct = I18n.translations
86
+ translation_keys[0..-2].each { |k|
87
+ direct[k] ||= {}
88
+ direct = direct[k]
89
+ }
90
+ direct[translation_keys.last] = params[:content]
91
+
66
92
  render :json=>{
67
93
  :ok => true
68
94
  }
@@ -5,7 +5,11 @@ class ApplicationController < ActionController::Base
5
5
  before_filter :activate_whowish_word, :set_locale
6
6
 
7
7
  def activate_whowish_word
8
- if params[:edit_mode] == "yes"
8
+ if params[:edit_mode]
9
+ session[:edit_mode] = params[:edit_mode]
10
+ end
11
+
12
+ if session[:edit_mode] == "yes"
9
13
  whowish_word.activate_edit_mode
10
14
  end
11
15
  end
@@ -5,5 +5,4 @@ class HomeController < ApplicationController
5
5
  def edit_nested
6
6
  render :edit, :layout=>"nested"
7
7
  end
8
-
9
8
  end
@@ -1,24 +1,40 @@
1
- <%=I18n.locale%>
2
- <a href="/home?locale=en">en</a><br/>
3
- <a href="/home?locale=th">th</a><br/>
4
- <a href="/home?locale=jp">jp</a>
1
+ <h1>
2
+ This is the test page for
3
+ <a href="http://www.github.com/tanin47/whowish_word">whowish_word</a>
4
+ </h1>
5
+ <h3>Choose the language</h3>
6
+ <ul class="Menu">
7
+ <li class="<%='Active' if I18n.locale == :en%>">
8
+ <a href="/home?locale=en">en</a>
9
+ </li>
10
+ <li class="<%='Active' if I18n.locale == :th%>">
11
+ <a href="/home?locale=th">th</a>
12
+ </li>
13
+ <li class="<%='Active' if I18n.locale == :jp%>">
14
+ <a href="/home?locale=jp">jp</a>
15
+ </li>
16
+ <li>
17
+ <%
18
+ if @whowish_word_config.edit_mode == true
19
+ %>
20
+ <a href="/home?edit_mode=no" style="font-weight: bold;color: green;">Edit-Mode: ON</a>
21
+ <%
22
+ else
23
+ %>
24
+ <a href="/home?edit_mode=yes" style="font-weight: bold;color: red;">Edit-Mode: OFF</a>
25
+ <%
26
+ end
27
+ %>
28
+ </li>
29
+ </ul>
30
+
5
31
  <form autocomplete="off" onsubmit="return false;">
6
32
  <div>
7
33
  <span style="width:600px;">
8
34
  <p>This is the page that tests every element.</p>
9
35
  </span>
10
36
  <span>
11
- <%
12
- if @whowish_word_config.edit_mode == true
13
- %>
14
- <a href="/home">Dectivate edit mode</a>
15
- <%
16
- else
17
- %>
18
- <a href="/home?edit_mode=yes">Activate edit mode</a>
19
- <%
20
- end
21
- %>
37
+
22
38
  </span>
23
39
  <span>
24
40
  <b>Text: </b> <%=t :text%>
@@ -1,4 +1,2 @@
1
- <%=t :hello, :name => "Tanin" %><br/>
2
- <%=t :test%>
3
- <input type="text" name="<%=Time.now.to_i%>" value="<%=ta :test_attribute%>">
4
- <%=t :test_again%>
1
+ This is a global text <strong><%=t :hello%></strong><br/>
2
+ This is a local text <strong><%=t '.test'%></strong>
@@ -0,0 +1,3 @@
1
+ <h1>Another test page</h1><br/>
2
+ This is a global text <strong><%=t :hello%></strong><br/>
3
+ This is a local text <strong><%=t '.test'%></strong>
@@ -1,4 +1,3 @@
1
1
  ---
2
2
  en:
3
- text1: '456'
4
- text: '123'
3
+ hello: Hello123
@@ -0,0 +1,5 @@
1
+ ---
2
+ en:
3
+ home2:
4
+ index:
5
+ test: Test123
@@ -0,0 +1,5 @@
1
+ ---
2
+ en:
3
+ home2:
4
+ test:
5
+ test: Another Test
@@ -5,6 +5,28 @@ body, input, textarea, button, select, option, div, span {
5
5
  line-height: 30px;
6
6
  }
7
7
 
8
+ .Menu {
9
+ padding: 0px;
10
+ margin: 0px;
11
+ list-style: none;
12
+ }
13
+
14
+ .Menu > li {
15
+ display: inline-block;
16
+ padding: 10px;
17
+ margin: 0px;
18
+ }
19
+
20
+ .Menu > li.Active {
21
+ border: 1px solid #CCC;
22
+ background-color: #EFEFEF;
23
+ }
24
+
25
+ .Menu > li.Active > a {
26
+ font-weight: bold;
27
+ text-decoration: none;
28
+ }
29
+
8
30
  body > form > div {
9
31
  display:block;
10
32
  margin-left:25px;
data/whowish_word.gemspec CHANGED
@@ -3,7 +3,7 @@ $:.push File.expand_path("../lib", __FILE__)
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "whowish_word"
6
- s.version = "0.4.0"
6
+ s.version = "0.5.0"
7
7
  s.platform = Gem::Platform::RUBY
8
8
  s.authors = ["Tanin Na Nakorn"]
9
9
  s.email = ["tanin47@yahoo.com"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: whowish_word
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.5.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-18 00:00:00.000000000 Z
12
+ date: 2012-06-19 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Inline internationlization for Rails 3.2.*
15
15
  email:
@@ -92,6 +92,7 @@ files:
92
92
  - rails/app/views/home/static_edit.html.erb
93
93
  - rails/app/views/home/static_edit_select.html.erb
94
94
  - rails/app/views/home2/index.html.erb
95
+ - rails/app/views/home2/test.html.erb
95
96
  - rails/app/views/integration/attr.html.erb
96
97
  - rails/app/views/integration/index.html.erb
97
98
  - rails/app/views/integration/select.html.erb
@@ -113,6 +114,8 @@ files:
113
114
  - rails/config/environment.rb
114
115
  - rails/config/initializers/whowish_word.rb
115
116
  - rails/config/locales/whowish_word/en.yml
117
+ - rails/config/locales/whowish_word/home2/index_en.yml
118
+ - rails/config/locales/whowish_word/home2/test_en.yml
116
119
  - rails/config/locales/whowish_word/jp.yml
117
120
  - rails/config/locales/whowish_word/th.yml
118
121
  - rails/config/mongoid.rb