i18n_routing 0.3.5 → 0.3.6

Sign up to get free protection for your applications and to get access to all the features.
data/CHANGELOG.rdoc CHANGED
@@ -1,3 +1,7 @@
1
+ 0.3.5 (June 13, 2010)
2
+
3
+ * Works even if translations are the same as the translated name
4
+
1
5
  0.3.5 (June 9, 2010)
2
6
 
3
7
  * Clean up some .to_sym in order to avoid unnecessary symbols during runtime
data/README.rdoc CHANGED
@@ -6,13 +6,11 @@ All necessary informations are available on the wiki: http://wiki.github.com/kwi
6
6
 
7
7
  For any question, use the i18_routing google group: http://groups.google.com/group/i18n-routing
8
8
 
9
- Works with Rails 2.3 and Rails3 beta3 !
9
+ Works with Rails 2.3 and Rails3 beta4 !
10
10
 
11
11
  == TODO for next releases (written the 9th of June)
12
12
 
13
13
  * Handle multiple translations for same resources name (Example: nested and not nested resources)
14
- * Find a way to force translation when the translation is the same
15
- * Do the translation if only the path names are translated and not the path
16
14
  * Handle namespace translation
17
15
 
18
16
  == I18n gem version warning
@@ -7,16 +7,19 @@ module I18nRouting
7
7
 
8
8
  # First, if an option is given, try to get the translation in the routes scope
9
9
  if option
10
- t = I18n.t(option, :scope => "routes.#{name}.#{type}", :default => option.to_s)
11
-
12
- return (t || name)
10
+ default = "{option}Noi18nRoutingTranslation"
11
+ t = I18n.t(option, :scope => "routes.#{name}.#{type}", :default => default)
12
+ return (t == default ? nil : t)
13
13
  else
14
+ default = "{name}Noi18nRoutingTranslation"
15
+
14
16
  # Try to get the translation in routes namescope first
15
- t = I18n.t(:as, :scope => "routes.#{name}", :default => name.to_s)
16
-
17
- return t if t and t != name.to_s
17
+ t = I18n.t(:as, :scope => "routes.#{name}", :default => default)
18
+
19
+ return t if t and t != default
18
20
 
19
- I18n.t(name.to_s, :scope => type, :default => name.to_s)
21
+ t = I18n.t(name.to_s, :scope => type, :default => default)
22
+ return (t == default ? nil : t)
20
23
  end
21
24
  end
22
25
 
@@ -99,7 +99,7 @@ module ActionController
99
99
  @locales.each do |l|
100
100
  I18n.locale = l
101
101
  nt = "#{l}_#{name}"
102
- if nt != name and ((t = I18nRouting.translation_for(path, :named_routes_path)) != path)
102
+ if nt != name and (t = I18nRouting.translation_for(path, :named_routes_path))
103
103
  gl_add_named_route(nt, t, options.merge(:glang => l))
104
104
  puts("[I18n] > localize %-10s: %40s (%s) => %s" % ['route', name, l, t]) if @i18n_verbose
105
105
  end
@@ -169,7 +169,7 @@ module ActionController
169
169
  locales.each do |l|
170
170
  I18n.locale = l
171
171
  nt = "#{l}_#{name}"
172
- if nt != name and ((t = I18nRouting.translation_for(name, namespace)) != name)
172
+ if nt != name and (t = I18nRouting.translation_for(name, namespace))
173
173
  nt = "#{l}_#{name}"
174
174
  opts[:as] = t
175
175
  opts[:glang] = l
@@ -36,7 +36,7 @@ module I18nRouting
36
36
  localized_path = I18nRouting.translation_for(resource.name, type)
37
37
 
38
38
  # A translated route exists :
39
- if localized_path and localized_path != resource.name.to_s and String === localized_path
39
+ if localized_path and String === localized_path
40
40
  puts("[I18n] > localize %-10s: %40s (%s) => /%s" % [type, resource.name, locale, localized_path]) if @i18n_verbose
41
41
  opts = options.dup
42
42
  opts[:path] = localized_path
@@ -279,7 +279,7 @@ module I18nRouting
279
279
  # try to get translated path :
280
280
  I18n.locale = locale
281
281
  ts = @path.gsub(/^\//, '')
282
- @localized_path = '/' + I18nRouting.translation_for(ts, :named_routes_path)
282
+ @localized_path = '/' + (I18nRouting.translation_for(ts, :named_routes_path) || ts)
283
283
 
284
284
  # If a translated path exists, set localized infos
285
285
  if @localized_path and @localized_path != @path
@@ -193,7 +193,7 @@ describe :localized_routes do
193
193
  routes.send(:author_books_path, 1).should == "/#{I18n.t :authors, :scope => :resources}/1/#{I18n.t :books, :scope => :resources}"
194
194
  end
195
195
 
196
- it "deep nested resources generate routes using localized values" do
196
+ it "deep nested resources generate routes using localized values and translate routes even translated name is the same" do
197
197
  routes.send(:universes_path).should == "/#{I18n.t :universes, :scope => :resources}"
198
198
  routes.send(:universe_galaxies_path, 1).should == "/#{I18n.t :universes, :scope => :resources}/1/#{I18n.t :galaxies, :scope => :resources}"
199
199
  routes.send(:universe_galaxy_planets_path, 1, 1).should == "/#{I18n.t :universes, :scope => :resources}/1/#{I18n.t :galaxies, :scope => :resources}/1/#{I18n.t :planets, :scope => :resources}"
@@ -211,7 +211,7 @@ describe :localized_routes do
211
211
  routes.send(:new_user_path).should == "/#{I18n.t :users, :scope => :resources}/#{I18n.t :new, :scope => :'routes.users.path_names'}"
212
212
  routes.send(:edit_user_path, 42).should == "/#{I18n.t :users, :scope => :resources}/42/#{I18n.t :edit, :scope => :'routes.users.path_names'}"
213
213
  end
214
-
214
+
215
215
  end
216
216
 
217
217
  context "with member and collection" do
data/spec/locales/fr.yml CHANGED
@@ -11,7 +11,7 @@ fr:
11
11
  users: utilisateurs
12
12
  authors: 'auteurs'
13
13
  books: 'livres'
14
- galaxies: 'galaxies-en-francais'
14
+ galaxies: 'galaxies'
15
15
  planets: 'planetes'
16
16
  universes: 'univers'
17
17
  countries: 'pays'
@@ -24,4 +24,4 @@ fr:
24
24
  about: 'a-propos'
25
25
  path_names:
26
26
  new: 'nouveau'
27
- edit: 'edition'
27
+ edit: 'edition'
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 3
8
- - 5
9
- version: 0.3.5
8
+ - 6
9
+ version: 0.3.6
10
10
  platform: ruby
11
11
  authors:
12
12
  - Guillaume Luccisano
@@ -14,14 +14,13 @@ autorequire:
14
14
  bindir: bin
15
15
  cert_chain: []
16
16
 
17
- date: 2010-06-09 00:00:00 +02:00
17
+ date: 2010-06-13 00:00:00 -07:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: i18n
22
22
  prerelease: false
23
23
  requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
24
  requirements:
26
25
  - - ">"
27
26
  - !ruby/object:Gem::Version
@@ -64,7 +63,6 @@ rdoc_options: []
64
63
  require_paths:
65
64
  - lib
66
65
  required_ruby_version: !ruby/object:Gem::Requirement
67
- none: false
68
66
  requirements:
69
67
  - - ">="
70
68
  - !ruby/object:Gem::Version
@@ -72,7 +70,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
72
70
  - 0
73
71
  version: "0"
74
72
  required_rubygems_version: !ruby/object:Gem::Requirement
75
- none: false
76
73
  requirements:
77
74
  - - ">="
78
75
  - !ruby/object:Gem::Version
@@ -84,7 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
84
81
  requirements: []
85
82
 
86
83
  rubyforge_project: i18n_routing
87
- rubygems_version: 1.3.7
84
+ rubygems_version: 1.3.6
88
85
  signing_key:
89
86
  specification_version: 3
90
87
  summary: I18n routing module for Rails 2.3.x and Rails 3. Translate your routes with ease !