route_localize 1.0.0 → 1.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: cca893b796c2a21728b27513a273af3f69081c1a
4
- data.tar.gz: 793b0fe5a3653b53279dd3c7554516b187c339f1
3
+ metadata.gz: 3213ab072255f6330c2f26ee072ade47f632bcff
4
+ data.tar.gz: bc248c471857e5b907d1f0dc17406911306cf8af
5
5
  SHA512:
6
- metadata.gz: 35330f4f8b663bc3750bd7db411e139b5fbcba6936ae297a577b43adb48dfaf4e10550d5d32d151438b284c0e74c4968a8d5087323f517a5f0567f8aa21d0fe3
7
- data.tar.gz: ab214de2024c22b2d991bed5631ff30bf5ba0ee095f2679ecb0e418647741caf78c85256355e260bd7e9ef1304969b2a63a3f955b4b729dd87da6d054291f465
6
+ metadata.gz: 6ef5b752784039c71ec50e115a04c325ed5783e7ee9816c993f794c13e209c5d7baf54a2c0fdc8f33048539140fc8e5ad7b7597eb30f044b7a36201ecc465606
7
+ data.tar.gz: f4849ca23b52085b7c28d7d96b84289daa11a8135918ca8a4c29379dea68872d07bbb9ab98d80de71964d119d65d8484443a7cc22180465426bca1e392c92de4
@@ -1,4 +1,4 @@
1
- Copyright 2013 Sunny Ripert
1
+ Copyright 2015 Sunny Ripert
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
data/README.md CHANGED
@@ -1,17 +1,20 @@
1
1
  # Route Localize
2
2
 
3
- Rails 4 engine to translate routes using locale files and subdomains.
3
+ Rails engine to translate routes using locale files and subdomains.
4
4
 
5
+ **Only works with Rails 4.0**. Check out
6
+ [route_translator](https://github.com/enriclluelles/route_translator/) for
7
+ Rails 4.2 and Rails 5 compatibility.
5
8
 
6
9
  ## Install
7
10
 
8
11
  In your Rails application's `Gemfile` add:
9
12
 
10
13
  ```rb
11
- gem "route_localize", github: "sunny/route_localize"
14
+ gem "route_localize"
12
15
  ```
13
16
 
14
- Install the plugin by running:
17
+ Install the gem by running:
15
18
 
16
19
  ```sh
17
20
  $ bundle
@@ -19,15 +22,18 @@ $ bundle
19
22
 
20
23
  ## Scopes
21
24
 
22
- Route Localize adds two routing scopes you can use on your routes:
25
+ Route Localize adds two scopes you can use in your routes:
23
26
 
24
- - `localize`: your locale is the first thing in the path (`http://example.com/en/foo`)
25
- - `localize_subdomain`: your locale is your subdomain (`http://en.example.com/foo`)
27
+ - `localize`: if your locale is the first parameter in the path.
28
+ For example `http://example.com/en/foo`.
29
+ - `localize_subdomain`: if your locale is your subdomain.
30
+ For example `http://en.example.com/foo`.
26
31
 
27
32
 
28
33
  ## Usage
29
34
 
30
- In your `config/routes.rb`, localize some routes with one of the scopes. For example:
35
+ In your `config/routes.rb`, add one of the scopes around your routes.
36
+ For example:
31
37
 
32
38
  ```rb
33
39
  scope localize: [:en, :fr] do
@@ -36,7 +42,8 @@ end
36
42
  root 'pages#index'
37
43
  ```
38
44
 
39
- Create a `config/locales/routes.yml` with translations for each part of your routes under the `routes` key. For example:
45
+ Then, create a `config/locales/routes.yml` with translations for each part
46
+ of your routes under the `routes` key. For example:
40
47
 
41
48
  ```yml
42
49
  fr:
@@ -66,31 +73,32 @@ module ApplicationHelper
66
73
  end
67
74
  ```
68
75
 
69
- You can then use the `locale_switch_url` or `locale_switch_subdomain_url` helpers in your views:
76
+ You can then use the `locale_switch_url` or `locale_switch_subdomain_url`
77
+ helpers in your views like so:
70
78
 
71
79
  ```erb
72
- <%= link_to "fr", locale_switch_url("fr") %>
73
- <%= link_to "en", locale_switch_url("en") %>
80
+ <%= link_to "Version française", locale_switch_url("fr") %>
81
+ <%= link_to "English version", locale_switch_url("en") %>
74
82
  ```
75
83
 
76
84
 
77
85
  ### Change the parameters in your switcher
78
86
 
79
- If your params are different depending on the language, you can override
87
+ If some of your params are different depending on the language, you can override
80
88
  the switcher's params by creating a `route_localize_options` method that
81
89
  takes the locale as a parameter.
82
90
 
83
91
  For example if you would like to switch from
84
92
  `http://en.example.org/products/keyboard`
85
93
  to `http://fr.example.org/produits/clavier`, where `keyboard` and `clavier`
86
- are the `:id` parameter.
94
+ are the `:id` parameter in your routes.
87
95
 
88
- In this case you might already have this in controller:
96
+ In this case you might already have something like this in controller:
89
97
 
90
98
  ```rb
91
99
  class ProductsController < ApplicationController
92
100
  def show
93
- if I18n.locale = "fr"
101
+ if I18n.locale == :fr
94
102
  @tree = Product.find_by_name_fr(params[:id])
95
103
  else
96
104
  @tree = Product.find_by_name_en(params[:id])
@@ -99,20 +107,24 @@ class ProductsController < ApplicationController
99
107
  end
100
108
  ```
101
109
 
102
- Then you would need to add this inside your controller:
110
+ In this case you would need to add the `route_localize_path_options` method
111
+ that returns a hash of params to change depending on the locale. Here, `:id`
112
+ needs to be different because we are looking at two different database fields.
103
113
 
104
114
  ```
105
115
  helper_method :route_localize_path_options
106
116
  def route_localize_path_options(locale)
107
- { id: (locale == "fr" ? @tree.name_fr : @tree.name_en) }
117
+ {
118
+ id: (locale == "fr" ? @tree.name_fr : @tree.name_en)
119
+ }
108
120
  end
109
121
  ```
110
122
 
111
123
 
112
- ## Caveats
124
+ ## Translate a single path
113
125
 
114
- Rails' `url_for` cannot find the translation url automatically,
115
- prefer to use the `_path` and `_url` methods instead.
126
+ Because Rails' `url_for` cannot find the translation url automatically,
127
+ prefer to use the `_path` and `_url` helpers instead.
116
128
 
117
129
  If you can't, one way around is to use `RouteLocalize.translate_path`.
118
130
 
@@ -123,7 +135,8 @@ RouteLocalize.translate_path(url_for(controller: 'trees', action: 'index'),
123
135
  I18n.locale)
124
136
  ```
125
137
 
126
- If you are using subdomains you should add `by_subdomain: true` option.
138
+ If you are using subdomains you should add the `by_subdomain: true` option to
139
+ `translate_path`.
127
140
 
128
141
 
129
142
  ## Development
@@ -143,7 +156,13 @@ The following gems could also be a good match for your project:
143
156
 
144
157
  Route Localize is different from these solutions because it:
145
158
 
146
- - can add a constraint to the subdomain instead of relying on the locale beeing in the url (`en/…` `fr/`)
147
- - plays well with gems that introduce extra locales, routes you don't want to translate, or reload routes before i18n is loaded (`activeadmin` for example)
148
- - includes a language switcher helper that returns the correct url in each other language
159
+ - can add a constraint to the subdomain instead of relying on the locale
160
+ beeing in the url (`en/…` `fr/`)
161
+ - plays well with gems that introduce extra locales, routes you don't want to
162
+ translate, or reload routes before i18n is loaded (`activeadmin` for example)
163
+ - includes a language switcher helper that returns the correct url in every
164
+ other language
149
165
 
166
+ ## License
167
+
168
+ By Sunny Ripert, Licensed under the MIT.
@@ -1,3 +1,3 @@
1
1
  module RouteLocalize
2
- VERSION = "1.0.0"
2
+ VERSION = "1.1.0"
3
3
  end
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: route_localize
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sunny Ripert
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-10-08 00:00:00.000000000 Z
11
+ date: 2016-08-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ~>
18
18
  - !ruby/object:Gem::Version
19
19
  version: 4.0.3
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ~>
25
25
  - !ruby/object:Gem::Version
26
26
  version: 4.0.3
27
27
  - !ruby/object:Gem::Dependency
@@ -89,7 +89,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
89
89
  version: '0'
90
90
  requirements: []
91
91
  rubyforge_project:
92
- rubygems_version: 2.4.1
92
+ rubygems_version: 2.4.5
93
93
  signing_key:
94
94
  specification_version: 4
95
95
  summary: Rails 4 engine to translate routes.