idioma 0.1.0 → 0.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +18 -8
- data/app/controllers/idioma/phrases_controller.rb +3 -3
- data/app/models/idioma/redis_backend.rb +27 -1
- data/app/views/idioma/phrases/index.html.haml +1 -5
- data/lib/idioma.rb +26 -1
- data/lib/idioma/version.rb +1 -1
- data/lib/tasks/idioma_tasks.rake +5 -0
- data/spec/dummy/log/development.log +428 -0
- data/spec/dummy/log/test.log +714 -0
- data/spec/models/redis_backend_spec.rb +47 -0
- metadata +22 -22
- data/spec/dummy/tmp/pids/server.pid +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 36df0e8c9fc4729c1a3b35160b0ca48488f1ce4d
|
4
|
+
data.tar.gz: 3531cab5054df5ae098321d3d78aad6a95eb4b48
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 571dd0934b36e5be2853d7fc6270b8885b6a482530c4f295b656b6797f677f712027ec5824769c9cfd68b8646ba9549f177f8fc691eaf3fc3203d77a3b5bab7c
|
7
|
+
data.tar.gz: 15970380e5411438a69d5c1190c331937204ce99bf743a9e95a59984824f8de6bfc89ece2d5b27b87617b91fcbf15b1e8680e409d5c66c9c12cd9f0f0536a2f1
|
data/README.md
CHANGED
@@ -55,15 +55,15 @@ end
|
|
55
55
|
```
|
56
56
|
|
57
57
|
### Configuration
|
58
|
-
Setting | Default | Description
|
59
|
-
------- | ------- | -----------
|
60
|
-
default_locale | :en | Used for showing the default translation (for translators to translate from) for a given phrase
|
61
|
-
locales | [:en] | Idioma will only import translations of locales in this list... ignoring the rest
|
62
|
-
ignore_keys | ["ransack", "simple_form"] | Gems sometimes bring their own phrases that you don't actually need translated
|
63
|
-
redis_backend | nil | Should be an I18n backend of a Redis store.
|
58
|
+
Setting | Default | Data Type | Description
|
59
|
+
------- | ------- | --------- | -----------
|
60
|
+
default_locale | :en | Symbol or lambda | Used for showing the default translation (for translators to translate from) for a given phrase
|
61
|
+
locales | [:en] | Array of symbols or lambda | Idioma will only import translations of locales in this list... ignoring the rest
|
62
|
+
ignore_keys | ["ransack", "simple_form"] | Array of strings | Gems sometimes bring their own phrases that you don't actually need translated
|
63
|
+
redis_backend | nil | I18n::Backend::KeyValue | Should be an I18n backend of a Redis store.
|
64
64
|
|
65
65
|
### Setup
|
66
|
-
Import the migrations into your application
|
66
|
+
Import the migrations into your application. These should be imported by default.
|
67
67
|
```
|
68
68
|
rake idioma:install:migrations
|
69
69
|
```
|
@@ -78,7 +78,7 @@ To duplicate all translations from a locale to a new locale (as untranslated).
|
|
78
78
|
rake idioma:duplicate_for_locales base_locale=en new_locale=es
|
79
79
|
```
|
80
80
|
|
81
|
-
###
|
81
|
+
### Examples
|
82
82
|
```ruby
|
83
83
|
$redis = Redis.new(:host => 'localhost', :port => 6379)
|
84
84
|
I18n.backend = I18n::Backend::KeyValue.new($redis)
|
@@ -89,3 +89,13 @@ Idioma.configure do |configure|
|
|
89
89
|
configure.redis_backend = I18n.backend
|
90
90
|
end
|
91
91
|
```
|
92
|
+
|
93
|
+
You can use procs for default_locale and locales options. If you'd like to query a database for these values.
|
94
|
+
```ruby
|
95
|
+
Idioma.configure do |configure|
|
96
|
+
configure.default_locale = :en
|
97
|
+
configure.locales = -> {
|
98
|
+
[:en, :es, :fr]
|
99
|
+
}
|
100
|
+
end
|
101
|
+
```
|
@@ -6,8 +6,8 @@ module Idioma
|
|
6
6
|
|
7
7
|
# GET /phrases
|
8
8
|
def index
|
9
|
-
params[:
|
10
|
-
scope = Phrase.where(locale: params[:
|
9
|
+
params[:locale_eq] ||= I18n.default_locale
|
10
|
+
scope = Phrase.where(locale: params[:locale_eq])
|
11
11
|
|
12
12
|
if params[:q].present?
|
13
13
|
scope = scope.where("i18n_key ilike ? OR i18n_value ilike ?", "%#{params[:q]}%", "%#{params[:q]}%")
|
@@ -55,7 +55,7 @@ module Idioma
|
|
55
55
|
respond_to do |format|
|
56
56
|
format.html {
|
57
57
|
if result
|
58
|
-
redirect_to [:edit, @phrase]
|
58
|
+
redirect_to [:edit, @phrase]
|
59
59
|
else
|
60
60
|
render :edit
|
61
61
|
end
|
@@ -15,8 +15,34 @@ module Idioma
|
|
15
15
|
# @param [Phrase] The Phrase to update or create
|
16
16
|
# @return [Boolean] Result of the store_translations command from the Redis backend (I18n::Backend)
|
17
17
|
def self.update_phrase(phrase)
|
18
|
+
value = self.parse_value(phrase.i18n_value)
|
19
|
+
|
18
20
|
Idioma.configuration.redis_backend.
|
19
|
-
store_translations(phrase.locale, {phrase.i18n_key =>
|
21
|
+
store_translations(phrase.locale, {phrase.i18n_key => value}, :escape => false)
|
22
|
+
end
|
23
|
+
|
24
|
+
def self.integer?(input)
|
25
|
+
!!(input =~ /^-?\d+$/)
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.float?(input)
|
29
|
+
true if Float(input) rescue false
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.parse_value(value)
|
33
|
+
case
|
34
|
+
when (value =~ /^\[.*\]$/) || (value =~ /^\{.*\}$/)
|
35
|
+
eval(value)
|
36
|
+
when value == "nil"
|
37
|
+
nil
|
38
|
+
when self.integer?(value)
|
39
|
+
Integer(value)
|
40
|
+
when self.float?(value)
|
41
|
+
Float(value)
|
42
|
+
else
|
43
|
+
value
|
44
|
+
end
|
20
45
|
end
|
46
|
+
|
21
47
|
end
|
22
48
|
end
|
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
.highlight
|
12
12
|
= form_tag(phrases_path, method: :get, class: "form-inline search") do
|
13
|
-
= select_tag :
|
13
|
+
= select_tag :locale_eq, options_for_select(Idioma.configuration.locales, selected: params[:locale_eq]), class: "form-control"
|
14
14
|
= text_field_tag :q, params[:q], placeholder: t('idioma.key_value'), class: "form-control"
|
15
15
|
= submit_tag t('idioma.search'), class: "btn btn-default"
|
16
16
|
|
@@ -20,7 +20,6 @@
|
|
20
20
|
%th= t('idioma.locale')
|
21
21
|
%th= t('idioma.key')
|
22
22
|
%th= t('idioma.value')
|
23
|
-
%th
|
24
23
|
- @phrases.each do |phrase|
|
25
24
|
%tr
|
26
25
|
%td= phrase.locale
|
@@ -33,9 +32,6 @@
|
|
33
32
|
%br/
|
34
33
|
.form-group
|
35
34
|
%input.i18n_value.form-control.col-sm-12{id: "PhraseI18nValue#{phrase.id}", value: phrase.i18n_value, data: {url: phrase_url(phrase)}}
|
36
|
-
%td
|
37
|
-
- if phrase.untranslated?
|
38
|
-
%span.label.label-warning= t('idioma.untranslated')
|
39
35
|
|
40
36
|
= will_paginate @posts
|
41
37
|
|
data/lib/idioma.rb
CHANGED
@@ -3,19 +3,44 @@ require "idioma/engine"
|
|
3
3
|
module Idioma
|
4
4
|
|
5
5
|
class Configuration
|
6
|
-
|
6
|
+
attr_writer :locales, :default_locale
|
7
|
+
attr_accessor :default_locale, :ignore_keys, :redis_backend
|
7
8
|
|
8
9
|
def initialize
|
9
10
|
self.default_locale = :en
|
10
11
|
self.locales = [self.default_locale]
|
11
12
|
self.ignore_keys = ["ransack", "simple_form"]
|
12
13
|
end
|
14
|
+
|
15
|
+
def locales
|
16
|
+
proc_or_value(@locales)
|
17
|
+
end
|
18
|
+
|
19
|
+
def default_locale
|
20
|
+
proc_or_value(@default_locale)
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def proc_or_value(var)
|
26
|
+
case
|
27
|
+
when var.is_a?(Proc)
|
28
|
+
var.call
|
29
|
+
else
|
30
|
+
var
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
13
34
|
end
|
14
35
|
|
15
36
|
def self.configuration
|
16
37
|
@configuration ||= Configuration.new
|
17
38
|
end
|
18
39
|
|
40
|
+
def self.conf
|
41
|
+
self.configuration
|
42
|
+
end
|
43
|
+
|
19
44
|
def self.configure
|
20
45
|
yield(configuration) if block_given?
|
21
46
|
end
|
data/lib/idioma/version.rb
CHANGED
data/lib/tasks/idioma_tasks.rake
CHANGED
@@ -4,6 +4,11 @@ namespace :idioma do
|
|
4
4
|
Idioma::PhraseImporter.import_from_extraction
|
5
5
|
end
|
6
6
|
|
7
|
+
desc "Prime backend"
|
8
|
+
task :prime_backend => :environment do
|
9
|
+
Idioma::Phrase.prime_backend
|
10
|
+
end
|
11
|
+
|
7
12
|
# rake idioma:duplicate_for_locales base_locale=en new_locale=es
|
8
13
|
desc "Duplicate for locales"
|
9
14
|
task :duplicate_for_locales => :environment do
|
@@ -25635,3 +25635,431 @@ Processing by Idioma::PhrasesController#index as CSV
|
|
25635
25635
|
[1m[36mIdioma::Phrase Load (0.9ms)[0m [1mSELECT "idioma_phrases".* FROM "idioma_phrases" WHERE "idioma_phrases"."locale" = 'en' AND (i18n_key ilike '%errors%' OR i18n_value ilike '%errors%') ORDER BY "idioma_phrases"."id" ASC LIMIT 1000[0m
|
25636
25636
|
Rendered text template (0.0ms)
|
25637
25637
|
Completed 200 OK in 10ms (Views: 0.4ms | ActiveRecord: 0.9ms)
|
25638
|
+
|
25639
|
+
|
25640
|
+
Started GET "/" for 127.0.0.1 at 2014-11-17 09:09:23 -0500
|
25641
|
+
[1m[36mActiveRecord::SchemaMigration Load (0.5ms)[0m [1mSELECT "schema_migrations".* FROM "schema_migrations"[0m
|
25642
|
+
Processing by Rails::WelcomeController#index as HTML
|
25643
|
+
Rendered /Users/lhalliday/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/railties-4.1.7/lib/rails/templates/rails/welcome/index.html.erb (2.4ms)
|
25644
|
+
Completed 200 OK in 11ms (Views: 10.4ms | ActiveRecord: 0.0ms)
|
25645
|
+
|
25646
|
+
|
25647
|
+
Started GET "/idioma" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25648
|
+
Processing by Idioma::PhrasesController#index as HTML
|
25649
|
+
[1m[35mIdioma::Phrase Load (1.0ms)[0m SELECT "idioma_phrases".* FROM "idioma_phrases" WHERE "idioma_phrases"."locale" = 'en' LIMIT 30 OFFSET 0
|
25650
|
+
[1m[36m (0.3ms)[0m [1mSELECT COUNT(*) FROM "idioma_phrases" WHERE "idioma_phrases"."locale" = 'en'[0m
|
25651
|
+
Rendered /Users/lhalliday/Sites/idioma/app/views/idioma/phrases/index.html.haml within layouts/idioma/application (101.2ms)
|
25652
|
+
Completed 200 OK in 340ms (Views: 329.4ms | ActiveRecord: 4.1ms)
|
25653
|
+
|
25654
|
+
|
25655
|
+
Started GET "/assets/idioma/forms.css?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25656
|
+
|
25657
|
+
|
25658
|
+
Started GET "/assets/idioma/phrases.css?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25659
|
+
|
25660
|
+
|
25661
|
+
Started GET "/assets/idioma/application.css?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25662
|
+
|
25663
|
+
|
25664
|
+
Started GET "/assets/idioma/phrases.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25665
|
+
|
25666
|
+
|
25667
|
+
Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25668
|
+
|
25669
|
+
|
25670
|
+
Started GET "/assets/bootstrap/affix.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25671
|
+
|
25672
|
+
|
25673
|
+
Started GET "/assets/bootstrap/alert.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25674
|
+
|
25675
|
+
|
25676
|
+
Started GET "/assets/bootstrap/button.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25677
|
+
|
25678
|
+
|
25679
|
+
Started GET "/assets/bootstrap/carousel.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25680
|
+
|
25681
|
+
|
25682
|
+
Started GET "/assets/bootstrap/collapse.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25683
|
+
|
25684
|
+
|
25685
|
+
Started GET "/assets/bootstrap/dropdown.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25686
|
+
|
25687
|
+
|
25688
|
+
Started GET "/assets/bootstrap/tab.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25689
|
+
|
25690
|
+
|
25691
|
+
Started GET "/assets/bootstrap/transition.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25692
|
+
|
25693
|
+
|
25694
|
+
Started GET "/assets/bootstrap/scrollspy.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25695
|
+
|
25696
|
+
|
25697
|
+
Started GET "/assets/bootstrap/modal.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25698
|
+
|
25699
|
+
|
25700
|
+
Started GET "/assets/bootstrap/tooltip.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25701
|
+
|
25702
|
+
|
25703
|
+
Started GET "/assets/bootstrap/popover.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25704
|
+
|
25705
|
+
|
25706
|
+
Started GET "/assets/bootstrap-sprockets.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25707
|
+
|
25708
|
+
|
25709
|
+
Started GET "/assets/idioma/application.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25710
|
+
|
25711
|
+
|
25712
|
+
Started GET "/assets/bootstrap/glyphicons-halflings-regular.woff" for 127.0.0.1 at 2014-11-17 09:09:28 -0500
|
25713
|
+
|
25714
|
+
|
25715
|
+
Started GET "/idioma/phrases?utf8=%E2%9C%93&locale=en&q=date.formats&commit=Search" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25716
|
+
Processing by Idioma::PhrasesController#index as HTML
|
25717
|
+
Parameters: {"utf8"=>"✓", "locale"=>"en", "q"=>"date.formats", "commit"=>"Search"}
|
25718
|
+
[1m[35mIdioma::Phrase Load (1.6ms)[0m SELECT "idioma_phrases".* FROM "idioma_phrases" WHERE "idioma_phrases"."locale" = 'en' AND (i18n_key ilike '%date.formats%' OR i18n_value ilike '%date.formats%') LIMIT 30 OFFSET 0
|
25719
|
+
Rendered /Users/lhalliday/Sites/idioma/app/views/idioma/phrases/index.html.haml within layouts/idioma/application (8.9ms)
|
25720
|
+
Completed 200 OK in 94ms (Views: 91.5ms | ActiveRecord: 1.6ms)
|
25721
|
+
|
25722
|
+
|
25723
|
+
Started GET "/assets/idioma/forms.css?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25724
|
+
|
25725
|
+
|
25726
|
+
Started GET "/assets/idioma/application.css?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25727
|
+
|
25728
|
+
|
25729
|
+
Started GET "/assets/idioma/phrases.css?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25730
|
+
|
25731
|
+
|
25732
|
+
Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25733
|
+
|
25734
|
+
|
25735
|
+
Started GET "/assets/bootstrap/affix.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25736
|
+
|
25737
|
+
|
25738
|
+
Started GET "/assets/idioma/phrases.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25739
|
+
|
25740
|
+
|
25741
|
+
Started GET "/assets/bootstrap/alert.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25742
|
+
|
25743
|
+
|
25744
|
+
Started GET "/assets/bootstrap/button.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25745
|
+
|
25746
|
+
|
25747
|
+
Started GET "/assets/bootstrap/carousel.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25748
|
+
|
25749
|
+
|
25750
|
+
Started GET "/assets/bootstrap/collapse.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25751
|
+
|
25752
|
+
|
25753
|
+
Started GET "/assets/bootstrap/dropdown.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25754
|
+
|
25755
|
+
|
25756
|
+
Started GET "/assets/bootstrap/tab.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25757
|
+
|
25758
|
+
|
25759
|
+
Started GET "/assets/bootstrap/transition.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25760
|
+
|
25761
|
+
|
25762
|
+
Started GET "/assets/bootstrap/scrollspy.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25763
|
+
|
25764
|
+
|
25765
|
+
Started GET "/assets/bootstrap/modal.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25766
|
+
|
25767
|
+
|
25768
|
+
Started GET "/assets/bootstrap/tooltip.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25769
|
+
|
25770
|
+
|
25771
|
+
Started GET "/assets/bootstrap/popover.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25772
|
+
|
25773
|
+
|
25774
|
+
Started GET "/assets/bootstrap-sprockets.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25775
|
+
|
25776
|
+
|
25777
|
+
Started GET "/assets/idioma/application.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25778
|
+
|
25779
|
+
|
25780
|
+
Started GET "/assets/bootstrap/glyphicons-halflings-regular.woff" for 127.0.0.1 at 2014-11-17 09:09:36 -0500
|
25781
|
+
|
25782
|
+
|
25783
|
+
Started GET "/idioma/phrases?utf8=%E2%9C%93&locale=en&q=&commit=Search" for 127.0.0.1 at 2014-11-17 09:09:44 -0500
|
25784
|
+
Processing by Idioma::PhrasesController#index as HTML
|
25785
|
+
Parameters: {"utf8"=>"✓", "locale"=>"en", "q"=>"", "commit"=>"Search"}
|
25786
|
+
[1m[36mIdioma::Phrase Load (0.5ms)[0m [1mSELECT "idioma_phrases".* FROM "idioma_phrases" WHERE "idioma_phrases"."locale" = 'en' LIMIT 30 OFFSET 0[0m
|
25787
|
+
[1m[35m (0.3ms)[0m SELECT COUNT(*) FROM "idioma_phrases" WHERE "idioma_phrases"."locale" = 'en'
|
25788
|
+
Rendered /Users/lhalliday/Sites/idioma/app/views/idioma/phrases/index.html.haml within layouts/idioma/application (17.2ms)
|
25789
|
+
Completed 200 OK in 104ms (Views: 102.9ms | ActiveRecord: 0.7ms)
|
25790
|
+
|
25791
|
+
|
25792
|
+
Started GET "/assets/idioma/forms.css?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25793
|
+
|
25794
|
+
|
25795
|
+
Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25796
|
+
|
25797
|
+
|
25798
|
+
Started GET "/assets/idioma/phrases.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25799
|
+
|
25800
|
+
|
25801
|
+
Started GET "/assets/idioma/phrases.css?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25802
|
+
|
25803
|
+
|
25804
|
+
Started GET "/assets/idioma/application.css?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25805
|
+
|
25806
|
+
|
25807
|
+
Started GET "/assets/bootstrap/affix.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25808
|
+
|
25809
|
+
|
25810
|
+
Started GET "/assets/bootstrap/alert.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25811
|
+
|
25812
|
+
|
25813
|
+
Started GET "/assets/bootstrap/button.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25814
|
+
|
25815
|
+
|
25816
|
+
Started GET "/assets/bootstrap/carousel.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25817
|
+
|
25818
|
+
|
25819
|
+
Started GET "/assets/bootstrap/collapse.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25820
|
+
|
25821
|
+
|
25822
|
+
Started GET "/assets/bootstrap/dropdown.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25823
|
+
|
25824
|
+
|
25825
|
+
Started GET "/assets/bootstrap/tab.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25826
|
+
|
25827
|
+
|
25828
|
+
Started GET "/assets/bootstrap/transition.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25829
|
+
|
25830
|
+
|
25831
|
+
Started GET "/assets/bootstrap/scrollspy.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25832
|
+
|
25833
|
+
|
25834
|
+
Started GET "/assets/bootstrap/modal.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25835
|
+
|
25836
|
+
|
25837
|
+
Started GET "/assets/bootstrap/tooltip.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25838
|
+
|
25839
|
+
|
25840
|
+
Started GET "/assets/bootstrap/popover.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25841
|
+
|
25842
|
+
|
25843
|
+
Started GET "/assets/bootstrap-sprockets.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25844
|
+
|
25845
|
+
|
25846
|
+
Started GET "/assets/idioma/application.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25847
|
+
|
25848
|
+
|
25849
|
+
Started GET "/assets/bootstrap/glyphicons-halflings-regular.woff" for 127.0.0.1 at 2014-11-17 09:09:45 -0500
|
25850
|
+
|
25851
|
+
|
25852
|
+
Started GET "/idioma/phrases?utf8=%E2%9C%93&locale=en&q=idioma&commit=Search" for 127.0.0.1 at 2014-11-17 09:09:47 -0500
|
25853
|
+
Processing by Idioma::PhrasesController#index as HTML
|
25854
|
+
Parameters: {"utf8"=>"✓", "locale"=>"en", "q"=>"idioma", "commit"=>"Search"}
|
25855
|
+
[1m[36mIdioma::Phrase Load (0.9ms)[0m [1mSELECT "idioma_phrases".* FROM "idioma_phrases" WHERE "idioma_phrases"."locale" = 'en' AND (i18n_key ilike '%idioma%' OR i18n_value ilike '%idioma%') LIMIT 30 OFFSET 0[0m
|
25856
|
+
Rendered /Users/lhalliday/Sites/idioma/app/views/idioma/phrases/index.html.haml within layouts/idioma/application (12.3ms)
|
25857
|
+
Completed 200 OK in 99ms (Views: 97.7ms | ActiveRecord: 0.9ms)
|
25858
|
+
|
25859
|
+
|
25860
|
+
Started GET "/assets/idioma/forms.css?body=1" for 127.0.0.1 at 2014-11-17 09:09:47 -0500
|
25861
|
+
|
25862
|
+
|
25863
|
+
Started GET "/assets/idioma/phrases.css?body=1" for 127.0.0.1 at 2014-11-17 09:09:47 -0500
|
25864
|
+
|
25865
|
+
|
25866
|
+
Started GET "/assets/idioma/phrases.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:47 -0500
|
25867
|
+
|
25868
|
+
|
25869
|
+
Started GET "/assets/idioma/application.css?body=1" for 127.0.0.1 at 2014-11-17 09:09:47 -0500
|
25870
|
+
|
25871
|
+
|
25872
|
+
Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:47 -0500
|
25873
|
+
|
25874
|
+
|
25875
|
+
Started GET "/assets/bootstrap/affix.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:47 -0500
|
25876
|
+
|
25877
|
+
|
25878
|
+
Started GET "/assets/bootstrap/alert.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:47 -0500
|
25879
|
+
|
25880
|
+
|
25881
|
+
Started GET "/assets/bootstrap/button.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:47 -0500
|
25882
|
+
|
25883
|
+
|
25884
|
+
Started GET "/assets/bootstrap/carousel.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:47 -0500
|
25885
|
+
|
25886
|
+
|
25887
|
+
Started GET "/assets/bootstrap/collapse.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:47 -0500
|
25888
|
+
|
25889
|
+
|
25890
|
+
Started GET "/assets/bootstrap/dropdown.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:48 -0500
|
25891
|
+
|
25892
|
+
|
25893
|
+
Started GET "/assets/bootstrap/tab.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:48 -0500
|
25894
|
+
|
25895
|
+
|
25896
|
+
Started GET "/assets/bootstrap/transition.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:48 -0500
|
25897
|
+
|
25898
|
+
|
25899
|
+
Started GET "/assets/bootstrap/scrollspy.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:48 -0500
|
25900
|
+
|
25901
|
+
|
25902
|
+
Started GET "/assets/bootstrap/modal.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:48 -0500
|
25903
|
+
|
25904
|
+
|
25905
|
+
Started GET "/assets/bootstrap/tooltip.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:48 -0500
|
25906
|
+
|
25907
|
+
|
25908
|
+
Started GET "/assets/bootstrap/popover.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:48 -0500
|
25909
|
+
|
25910
|
+
|
25911
|
+
Started GET "/assets/bootstrap-sprockets.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:48 -0500
|
25912
|
+
|
25913
|
+
|
25914
|
+
Started GET "/assets/idioma/application.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:48 -0500
|
25915
|
+
|
25916
|
+
|
25917
|
+
Started GET "/assets/bootstrap/glyphicons-halflings-regular.woff" for 127.0.0.1 at 2014-11-17 09:09:48 -0500
|
25918
|
+
|
25919
|
+
|
25920
|
+
Started PUT "/idioma/phrases/123" for 127.0.0.1 at 2014-11-17 09:09:52 -0500
|
25921
|
+
Processing by Idioma::PhrasesController#update as JSON
|
25922
|
+
Parameters: {"phrase"=>{"i18n_value"=>"Find"}, "id"=>"123"}
|
25923
|
+
[1m[35mIdioma::Phrase Load (0.3ms)[0m SELECT "idioma_phrases".* FROM "idioma_phrases" WHERE "idioma_phrases"."id" = $1 LIMIT 1 [["id", 123]]
|
25924
|
+
[1m[36m (0.1ms)[0m [1mBEGIN[0m
|
25925
|
+
[1m[35mIdioma::Phrase Exists (0.7ms)[0m SELECT 1 AS one FROM "idioma_phrases" WHERE ("idioma_phrases"."i18n_key" = 'idioma.search' AND "idioma_phrases"."id" != 123 AND "idioma_phrases"."locale" = 'en') LIMIT 1
|
25926
|
+
[1m[36mSQL (4.7ms)[0m [1mUPDATE "idioma_phrases" SET "i18n_value" = $1, "updated_at" = $2 WHERE "idioma_phrases"."id" = 123[0m [["i18n_value", "Find"], ["updated_at", "2014-11-17 14:09:52.699666"]]
|
25927
|
+
[1m[35m (1.3ms)[0m COMMIT
|
25928
|
+
Completed 200 OK in 25ms (Views: 0.5ms | ActiveRecord: 7.3ms)
|
25929
|
+
|
25930
|
+
|
25931
|
+
Started GET "/idioma/phrases?utf8=%E2%9C%93&locale=en&q=idioma&commit=Search" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25932
|
+
Processing by Idioma::PhrasesController#index as HTML
|
25933
|
+
Parameters: {"utf8"=>"✓", "locale"=>"en", "q"=>"idioma", "commit"=>"Search"}
|
25934
|
+
[1m[36mIdioma::Phrase Load (1.2ms)[0m [1mSELECT "idioma_phrases".* FROM "idioma_phrases" WHERE "idioma_phrases"."locale" = 'en' AND (i18n_key ilike '%idioma%' OR i18n_value ilike '%idioma%') LIMIT 30 OFFSET 0[0m
|
25935
|
+
Rendered /Users/lhalliday/Sites/idioma/app/views/idioma/phrases/index.html.haml within layouts/idioma/application (11.0ms)
|
25936
|
+
Completed 200 OK in 102ms (Views: 100.3ms | ActiveRecord: 1.2ms)
|
25937
|
+
|
25938
|
+
|
25939
|
+
Started GET "/assets/idioma/forms.css?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25940
|
+
|
25941
|
+
|
25942
|
+
Started GET "/assets/idioma/phrases.css?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25943
|
+
|
25944
|
+
|
25945
|
+
Started GET "/assets/idioma/application.css?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25946
|
+
|
25947
|
+
|
25948
|
+
Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25949
|
+
|
25950
|
+
|
25951
|
+
Started GET "/assets/idioma/phrases.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25952
|
+
|
25953
|
+
|
25954
|
+
Started GET "/assets/bootstrap/affix.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25955
|
+
|
25956
|
+
|
25957
|
+
Started GET "/assets/bootstrap/alert.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25958
|
+
|
25959
|
+
|
25960
|
+
Started GET "/assets/bootstrap/button.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25961
|
+
|
25962
|
+
|
25963
|
+
Started GET "/assets/bootstrap/carousel.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25964
|
+
|
25965
|
+
|
25966
|
+
Started GET "/assets/bootstrap/collapse.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25967
|
+
|
25968
|
+
|
25969
|
+
Started GET "/assets/bootstrap/dropdown.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25970
|
+
|
25971
|
+
|
25972
|
+
Started GET "/assets/bootstrap/tab.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25973
|
+
|
25974
|
+
|
25975
|
+
Started GET "/assets/bootstrap/transition.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25976
|
+
|
25977
|
+
|
25978
|
+
Started GET "/assets/bootstrap/scrollspy.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25979
|
+
|
25980
|
+
|
25981
|
+
Started GET "/assets/bootstrap/modal.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25982
|
+
|
25983
|
+
|
25984
|
+
Started GET "/assets/bootstrap/tooltip.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25985
|
+
|
25986
|
+
|
25987
|
+
Started GET "/assets/bootstrap/popover.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25988
|
+
|
25989
|
+
|
25990
|
+
Started GET "/assets/bootstrap-sprockets.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25991
|
+
|
25992
|
+
|
25993
|
+
Started GET "/assets/idioma/application.js?body=1" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25994
|
+
|
25995
|
+
|
25996
|
+
Started GET "/assets/bootstrap/glyphicons-halflings-regular.woff" for 127.0.0.1 at 2014-11-17 09:09:55 -0500
|
25997
|
+
|
25998
|
+
|
25999
|
+
Started GET "/idioma/phrases?utf8=%E2%9C%93&locale=en&q=&commit=Find" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26000
|
+
Processing by Idioma::PhrasesController#index as HTML
|
26001
|
+
Parameters: {"utf8"=>"✓", "locale"=>"en", "q"=>"", "commit"=>"Find"}
|
26002
|
+
[1m[35mIdioma::Phrase Load (0.5ms)[0m SELECT "idioma_phrases".* FROM "idioma_phrases" WHERE "idioma_phrases"."locale" = 'en' LIMIT 30 OFFSET 0
|
26003
|
+
[1m[36m (0.2ms)[0m [1mSELECT COUNT(*) FROM "idioma_phrases" WHERE "idioma_phrases"."locale" = 'en'[0m
|
26004
|
+
Rendered /Users/lhalliday/Sites/idioma/app/views/idioma/phrases/index.html.haml within layouts/idioma/application (21.5ms)
|
26005
|
+
Completed 200 OK in 107ms (Views: 105.9ms | ActiveRecord: 0.7ms)
|
26006
|
+
|
26007
|
+
|
26008
|
+
Started GET "/assets/idioma/forms.css?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26009
|
+
|
26010
|
+
|
26011
|
+
Started GET "/assets/idioma/application.css?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26012
|
+
|
26013
|
+
|
26014
|
+
Started GET "/assets/idioma/phrases.css?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26015
|
+
|
26016
|
+
|
26017
|
+
Started GET "/assets/jquery.js?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26018
|
+
|
26019
|
+
|
26020
|
+
Started GET "/assets/bootstrap/alert.js?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26021
|
+
|
26022
|
+
|
26023
|
+
Started GET "/assets/idioma/phrases.js?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26024
|
+
|
26025
|
+
|
26026
|
+
Started GET "/assets/bootstrap/affix.js?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26027
|
+
|
26028
|
+
|
26029
|
+
Started GET "/assets/bootstrap/button.js?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26030
|
+
|
26031
|
+
|
26032
|
+
Started GET "/assets/bootstrap/carousel.js?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26033
|
+
|
26034
|
+
|
26035
|
+
Started GET "/assets/bootstrap/collapse.js?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26036
|
+
|
26037
|
+
|
26038
|
+
Started GET "/assets/bootstrap/dropdown.js?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26039
|
+
|
26040
|
+
|
26041
|
+
Started GET "/assets/bootstrap/tab.js?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26042
|
+
|
26043
|
+
|
26044
|
+
Started GET "/assets/bootstrap/transition.js?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26045
|
+
|
26046
|
+
|
26047
|
+
Started GET "/assets/bootstrap/scrollspy.js?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26048
|
+
|
26049
|
+
|
26050
|
+
Started GET "/assets/bootstrap/modal.js?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26051
|
+
|
26052
|
+
|
26053
|
+
Started GET "/assets/bootstrap/tooltip.js?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26054
|
+
|
26055
|
+
|
26056
|
+
Started GET "/assets/bootstrap/popover.js?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26057
|
+
|
26058
|
+
|
26059
|
+
Started GET "/assets/bootstrap-sprockets.js?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26060
|
+
|
26061
|
+
|
26062
|
+
Started GET "/assets/idioma/application.js?body=1" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|
26063
|
+
|
26064
|
+
|
26065
|
+
Started GET "/assets/bootstrap/glyphicons-halflings-regular.woff" for 127.0.0.1 at 2014-11-17 09:11:50 -0500
|