solidus_reviews 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.
Files changed (100) hide show
  1. checksums.yaml +5 -5
  2. data/.rubocop.yml +322 -0
  3. data/.travis.yml +27 -14
  4. data/Gemfile +23 -8
  5. data/LICENSE.md +2 -2
  6. data/README.md +9 -11
  7. data/Rakefile +2 -0
  8. data/app/controllers/spree/admin/feedback_reviews_controller.rb +3 -1
  9. data/app/controllers/spree/admin/review_settings_controller.rb +3 -1
  10. data/app/controllers/spree/admin/reviews_controller.rb +9 -6
  11. data/app/controllers/spree/feedback_reviews_controller.rb +25 -19
  12. data/app/controllers/spree/products_controller_decorator.rb +2 -0
  13. data/app/controllers/spree/reviews_controller.rb +11 -7
  14. data/app/helpers/spree/api/api_helpers_decorator.rb +12 -0
  15. data/app/helpers/spree/reviews_helper.rb +15 -5
  16. data/app/models/spree/feedback_review.rb +5 -4
  17. data/app/models/spree/product_decorator.rb +5 -4
  18. data/app/models/spree/review.rb +28 -10
  19. data/app/models/spree/reviews_ability.rb +17 -3
  20. data/app/models/spree/reviews_configuration.rb +16 -8
  21. data/app/models/spree/user_decorator.rb +3 -0
  22. data/app/overrides/add_reviews_after_product_properties.rb +7 -5
  23. data/app/overrides/add_reviews_tab_to_admin.rb +12 -4
  24. data/app/overrides/add_reviews_to_admin_configuration_sidebar.rb +13 -5
  25. data/app/views/spree/admin/feedback_reviews/index.html.erb +9 -9
  26. data/app/views/spree/admin/review_settings/edit.html.erb +64 -35
  27. data/app/views/spree/admin/reviews/_form.html.erb +26 -5
  28. data/app/views/spree/admin/reviews/edit.html.erb +2 -2
  29. data/app/views/spree/admin/reviews/index.html.erb +100 -88
  30. data/app/views/spree/api/reviews/_review.json.jbuilder +8 -0
  31. data/app/views/spree/api/reviews/index.json.jbuilder +6 -0
  32. data/app/views/spree/api/reviews/show.json.jbuilder +3 -0
  33. data/app/views/spree/feedback_reviews/_form.html.erb +5 -5
  34. data/app/views/spree/feedback_reviews/_summary.html.erb +3 -3
  35. data/app/views/spree/feedback_reviews/create.js.erb +2 -2
  36. data/app/views/spree/reviews/_form.html.erb +15 -10
  37. data/app/views/spree/reviews/new.html.erb +2 -2
  38. data/app/views/spree/shared/_rating.html.erb +3 -3
  39. data/app/views/spree/shared/_review.html.erb +29 -19
  40. data/app/views/spree/shared/_review_summary.html.erb +3 -3
  41. data/app/views/spree/shared/_reviews.html.erb +6 -6
  42. data/app/views/spree/shared/_shortrating.html.erb +2 -2
  43. data/bin/rails +4 -2
  44. data/config/initializers/constants.rb +2 -0
  45. data/config/initializers/load_preferences.rb +2 -0
  46. data/config/locales/de-CH.yml +14 -1
  47. data/config/locales/de.yml +14 -1
  48. data/config/locales/en-GB.yml +14 -2
  49. data/config/locales/en.yml +14 -1
  50. data/config/locales/es.yml +14 -2
  51. data/config/locales/fr.yml +14 -2
  52. data/config/locales/it.yml +79 -0
  53. data/config/locales/pl.yml +14 -2
  54. data/config/locales/pt-BR.yml +14 -2
  55. data/config/locales/pt.yml +14 -2
  56. data/config/locales/ro.yml +15 -3
  57. data/config/locales/ru.yml +14 -2
  58. data/config/locales/sv.yml +14 -1
  59. data/config/locales/tr.yml +14 -2
  60. data/config/locales/uk.yml +14 -1
  61. data/config/locales/zh-CN.yml +14 -1
  62. data/config/locales/zh-TW.yml +14 -1
  63. data/config/routes.rb +18 -1
  64. data/db/migrate/20081020220724_create_reviews.rb +4 -2
  65. data/db/migrate/20101222083309_create_feedback_reviews.rb +5 -3
  66. data/db/migrate/20110406083603_add_rating_to_products.rb +7 -5
  67. data/db/migrate/20110606150524_add_user_to_reviews.rb +4 -2
  68. data/db/migrate/20110806093221_add_ip_address_to_reviews.rb +3 -1
  69. data/db/migrate/20120110172331_namespace_tables.rb +3 -1
  70. data/db/migrate/20120123141326_recalculate_ratings.rb +6 -5
  71. data/db/migrate/20120712182514_add_locale_to_reviews.rb +4 -2
  72. data/db/migrate/20120712182627_add_locale_to_feedback_reviews.rb +4 -2
  73. data/db/migrate/20140703200946_add_show_identifier_to_reviews.rb +3 -1
  74. data/db/migrate/20190613165528_add_verified_purchaser_to_reviews.rb +5 -0
  75. data/lib/controllers/spree/api/reviews_controller.rb +111 -0
  76. data/lib/generators/solidus_reviews/install/install_generator.rb +5 -4
  77. data/lib/solidus_reviews.rb +3 -1
  78. data/lib/solidus_reviews/factories.rb +3 -1
  79. data/lib/solidus_reviews/factories/feedback_review_factory.rb +6 -5
  80. data/lib/solidus_reviews/factories/review_factory.rb +19 -9
  81. data/lib/spree_reviews/engine.rb +7 -0
  82. data/solidus_reviews.gemspec +20 -18
  83. data/spec/controllers/admin/feedback_reviews_controller_spec.rb +9 -7
  84. data/spec/controllers/admin/review_settings_controller_spec.rb +18 -16
  85. data/spec/controllers/admin/reviews_controller_spec.rb +18 -16
  86. data/spec/controllers/feedback_reviews_controller_spec.rb +29 -25
  87. data/spec/controllers/products_controller_spec.rb +4 -2
  88. data/spec/controllers/reviews_controller_spec.rb +67 -40
  89. data/spec/controllers/spree/api/reviews_controller_spec.rb +233 -0
  90. data/spec/features/admin_spec.rb +3 -0
  91. data/spec/features/reviews_spec.rb +27 -11
  92. data/spec/helpers/review_helper_spec.rb +3 -2
  93. data/spec/models/feedback_review_spec.rb +19 -17
  94. data/spec/models/product_spec.rb +41 -19
  95. data/spec/models/review_spec.rb +100 -42
  96. data/spec/models/reviews_ability_spec.rb +10 -8
  97. data/spec/models/reviews_configuration_spec.rb +28 -19
  98. data/spec/spec_helper.rb +21 -35
  99. data/vendor/assets/javascripts/jquery.rating.js +389 -376
  100. metadata +108 -59
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.reviews(@reviews) do |review|
4
+ json.partial!("spree/api/reviews/review", review: review)
5
+ end
6
+ json.avg_rating(@product&.avg_rating)
@@ -0,0 +1,3 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.partial!("spree/api/reviews/review", review: @review)
@@ -1,13 +1,13 @@
1
- <%= render 'spree/feedback_reviews/summary', :review => review %>
2
- <%= form_for((@feedback_review ||= review.feedback_reviews.build), :url => feedback_reviews_path(review), :method => :post, :remote => true) do |f| %>
1
+ <%= render 'spree/feedback_reviews/summary', review: review %>
2
+ <%= form_for((@feedback_review ||= review.feedback_reviews.build), url: feedback_reviews_path(review), method: :post, remote: true) do |f| %>
3
3
  <% unless @feedback_review.errors.empty? %>
4
4
  <span class="error"><%= @feedback_review.errors[:rating] %></span>
5
5
  <br />
6
6
  <% end %>
7
- <%= Spree.t(:was_this_review_helpful) %>
7
+ <%= I18n.t("spree.was_this_review_helpful") %>
8
8
  <% for i in 1..NB_STARS %>
9
9
  <%= radio_button_tag "feedback_review[rating]",
10
- Spree.t('star', :count => i), false, :class => "star" %>
10
+ I18n.t("spree.star", count: i), false, class: "star" %>
11
11
  <% end %>
12
- <button class="feedback-review"><span><%= Spree.t(:say_yes) %></span></button>
12
+ <button class="feedback-review"><span><%= I18n.t("spree.say_yes") %></span></button>
13
13
  <% end %>
@@ -1,6 +1,6 @@
1
1
  <p>
2
- <%= Spree.t('voice', :count => review.feedback_reviews.count) %>.
3
- <span title="<%= pluralize(review.feedback_stars, 'star') %> <%= Spree.t('out_of_5') %>">
4
- <%= render 'spree/reviews/stars', :stars => review.feedback_stars %>
2
+ <%= I18n.t('spree.voice', count: review.feedback_reviews.count) %>.
3
+ <span title="<%= pluralize(review.feedback_stars, 'star') %> <%= I18n.t('spree.out_of_5') %>">
4
+ <%= render 'spree/reviews/stars', stars: review.feedback_stars %>
5
5
  </span> &nbsp;
6
6
  </p>
@@ -1,7 +1,7 @@
1
1
  <% if @feedback_review.valid? %>
2
- $("div#feedback_review_<%= @review.id %>").html("<%= escape_javascript(render('spree/feedback_reviews/summary', :review => @review)) %>");
2
+ $("div#feedback_review_<%= @review.id %>").html("<%= escape_javascript(render('spree/feedback_reviews/summary', review: @review)) %>");
3
3
  <% else %>
4
- $("div#feedback_review_<%= @review.id %>").html("<%= escape_javascript(render('spree/feedback_reviews/form', :review => @review)) %>");
4
+ $("div#feedback_review_<%= @review.id %>").html("<%= escape_javascript(render('spree/feedback_reviews/form', review: @review)) %>");
5
5
 
6
6
  <% end %>
7
7
  $(document).ready(function(){$("div#feedback_review_<%= @review.id %>").find(".star").rating({required:true});});
@@ -1,34 +1,39 @@
1
- <%= form_for review, :url => product_reviews_path(product), :html => {:method => :post} do |f| %>
2
- <%= render "spree/shared/error_messages", :target => review %>
1
+ <%= form_for review, url: product_reviews_path(product), html: { method: :post, multipart: true} do |f| %>
2
+ <%= render "spree/shared/error_messages", target: review %>
3
3
 
4
4
  <p class="review_rating_field">
5
5
  <%= f.label :rating %> <span class="required">*</span><br />
6
- <%= render "spree/reviews/stars", :stars => review.rating, :edit_enabled => true %>
6
+ <%= render "spree/reviews/stars", stars: review.rating, edit_enabled: true %>
7
7
  </p>
8
8
 
9
9
  <p class="review_name_field">
10
- <%= f.label :name %> <span class="required">*</span><br />
11
- <%= f.text_field :name, :maxlength => "255", :size => "50" %>
10
+ <%= f.label :name %><br />
11
+ <%= f.text_field :name, maxlength: "255", size: "50" %>
12
12
  </p>
13
13
 
14
14
  <p class="review_title_field">
15
15
  <%= f.label :title %><br />
16
- <%= f.text_field :title, :maxlength => "255", :size => "50" %>
16
+ <%= f.text_field :title, maxlength: "255", size: "50" %>
17
17
  </p>
18
18
 
19
19
  <p class="review_review_field">
20
- <%= f.label :review %> <span class="required">*</span><br />
21
- <%= f.text_area :review, :wrap => "virtual", :rows => "10", :cols => "50" %>
20
+ <%= f.label :review %><br />
21
+ <%= f.text_area :review, wrap: "virtual", rows: "10", cols: "50" %>
22
+ </p>
23
+
24
+ <p class="review_images_field">
25
+ <%= f.label :images %><br>
26
+ <%= f.file_field :images, :accept => "image/*", multiple: true %>
22
27
  </p>
23
28
 
24
29
  <% if Spree::Reviews::Config[:render_show_identifier_checkbox] %>
25
30
  <p class="review_show_identifier_field">
26
31
  <%= f.label :show_identifier %><br />
27
- <%= f.check_box :show_identifier, :wrap => "virtual", :rows => "10", :cols => "50", :checked => true %>
32
+ <%= f.check_box :show_identifier, wrap: "virtual", rows: "10", cols: "50", checked: true %>
28
33
  </p>
29
34
  <% end %>
30
35
 
31
36
  <p class="review_submit">
32
- <%= f.submit Spree.t(:submit_your_review), :class => "button bg_darkfirst" %>
37
+ <%= f.submit I18n.t("spree.submit_your_review"), class: "button bg_darkfirst" %>
33
38
  </p>
34
39
  <% end %>
@@ -1,3 +1,3 @@
1
- <%= content_tag :h2, Spree.t(:leave_us_a_review_for, :name => @product.name), :class => 'new-review-title' %>
1
+ <%= content_tag :h2, I18n.t("spree.leave_us_a_review_for", name: @product.name), class: 'new-review-title' %>
2
2
 
3
- <%= render 'form', :review => @review, :product => @product %>
3
+ <%= render 'form', review: @review, product: @product %>
@@ -1,13 +1,13 @@
1
1
  <% stars = product.stars %>
2
2
  <% reviews_count = product.reviews_count %>
3
3
  <div class="ratings">
4
- <p><%= Spree.t('average_customer_rating') %>: </p>
4
+ <p><%= I18n.t('spree.average_customer_rating') %>: </p>
5
5
  <p class="ratings-stars">
6
6
  <span title="<%= txt_stars(stars) %>">
7
- <%= render 'spree/reviews/stars', :stars => stars %>
7
+ <%= render 'spree/reviews/stars', stars: stars %>
8
8
  </span>
9
9
  </p>
10
- <p class="ratings-basedupon">(<%= Spree.t('based_upon_review_count', :count => reviews_count) %>)</p>
10
+ <p class="ratings-basedupon">(<%= I18n.t('spree.based_upon_review_count', count: reviews_count) %>)</p>
11
11
  <div itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
12
12
  <meta itemprop="ratingValue" content="<%= stars %>" />
13
13
  <meta itemprop="reviewCount" content="<%= reviews_count %>" />
@@ -1,28 +1,38 @@
1
1
  <div class="review" itemprop="reviews" itemscope itemtype="http://schema.org/Review">
2
2
  <span class="reviews-rating" title="<%= txt_stars(review.rating) %>">
3
- <%= render "spree/reviews/stars", :stars => review.rating %>
3
+ <%= render "spree/reviews/stars", stars: review.rating %>
4
4
  </span>
5
- <span itemprop="name"><%= review.title %></span>
6
- <br/>
7
- <span class="attribution"><%= Spree.t(:submitted_on) %> <strong><%= l review.created_at.to_date %></strong></span>
8
- <meta itemprop="datePublished" content="<%= review.created_at.to_date.to_s %>" />
5
+ <% if review.approved? || Spree::Reviews::Config[:display_unapproved_reviews] %>
6
+ <span itemprop="name"><%= review.title %></span>
7
+ <br/>
8
+ <span class="attribution"><%= I18n.t("spree.submitted_on") %> <strong><%= l review.created_at.to_date %></strong></span>
9
+ <meta itemprop="datePublished" content="<%= review.created_at.to_date.to_s %>" />
9
10
 
10
- <meta itemprop="reviewRating" content="<%= review.rating %>" />
11
- <% if review.show_identifier %>
12
- <% if Spree::Reviews::Config[:show_email] && review.user %>
13
- <span itemprop="author"><%= review.user.email %></span>
11
+ <meta itemprop="reviewRating" content="<%= review.rating %>" />
12
+ <% if review.show_identifier %>
13
+ <% if Spree::Reviews::Config[:show_email] && review.user %>
14
+ <span itemprop="author"><%= review.user.email %></span>
15
+ <% else %>
16
+ <span itemprop="author"><%= review.name %></span>
17
+ <% end %>
14
18
  <% else %>
15
- <span itemprop="author"><%= review.name %></span>
19
+ <span itemprop="author"><%= I18n.t("spree.anonymous") %></span>
16
20
  <% end %>
17
- <% else %>
18
- <span itemprop="author"><%= Spree.t(:anonymous) %></span>
19
- <% end %>
20
- <div itemprop="reviewBody">
21
- <%= simple_format(review.review) %>
22
- </div>
23
- <% if Spree::Reviews::Config[:feedback_rating] && (!Spree::Reviews::Config[:require_login] || spree_current_user) %>
24
- <div class="feedback_review" id="feedback_review_<%= review.id %>">
25
- <%= render "spree/feedback_reviews/form", :review => review %>
21
+ <% if Spree::Reviews::Config[:show_verified_purchaser] && review.verified_purchaser? %>
22
+ <div><%= I18n.t("spree.verified_purchaser") %></div>
23
+ <% end %>
24
+ <div itemprop="reviewBody">
25
+ <%= simple_format(review.review) %>
26
26
  </div>
27
+ <% review.images.each do |image| %>
28
+ <div itemprop="image">
29
+ <%= link_to image_tag(image.url(:product)), image.url(:original) %>
30
+ </div>
31
+ <% end %>
32
+ <% if Spree::Reviews::Config[:feedback_rating] && (!Spree::Reviews::Config[:require_login] || spree_current_user) %>
33
+ <div class="feedback_review" id="feedback_review_<%= review.id %>">
34
+ <%= render "spree/feedback_reviews/form", review: review %>
35
+ </div>
36
+ <% end %>
27
37
  <% end %>
28
38
  </div>
@@ -1,9 +1,9 @@
1
1
  <div id="reviews">
2
- <%= render 'spree/shared/rating', :locals => @product, :review => 0 %>
2
+ <%= render 'spree/shared/rating', locals: @product, review: 0 %>
3
3
  <% for review in (Spree::Reviews::Config[:track_locale] ? @product.reviews.localized(I18n.locale) : @product.reviews).default_approval_filter.preview %>
4
- <%= render 'spree/shared/review', :review => review %>
4
+ <%= render 'spree/shared/review', review: review %>
5
5
  <% end %>
6
6
  <% if Spree::Reviews::Config[:feedback_rating] && (!Spree::Reviews::Config[:require_login] || spree_current_user) %>
7
- <%= link_to Spree.t('write_your_own_review'), new_product_review_path(@product), :class => "button" %>
7
+ <%= link_to I18n.t("spree.write_your_own_review"), new_product_review_path(@product), class: "button" %>
8
8
  <% end %>
9
9
  </div>
@@ -1,15 +1,15 @@
1
1
  <div id="reviews">
2
- <h6 class="product-section-title"><%= Spree.t(:reviews) %></h6>
2
+ <h6 class="product-section-title"><%= I18n.t("spree.reviews") %></h6>
3
3
  <% if Spree::Reviews::Config[:include_unapproved_reviews] == false and @product.reviews.approved.count == 0 %>
4
- <p class="reviews-none"><%= Spree.t('no_reviews_available') %></p>
4
+ <p class="reviews-none"><%= I18n.t("spree.no_reviews_available") %></p>
5
5
  <% else %>
6
- <%= render 'spree/shared/rating', :product => @product, :review => 0 %>
6
+ <%= render 'spree/shared/rating', product: @product, review: 0 %>
7
7
  <% for review in (Spree::Reviews::Config[:track_locale] ? @product.reviews.localized(I18n.locale) : @product.reviews).default_approval_filter.preview %>
8
- <%= render 'spree/shared/review', :review => review %>
8
+ <%= render 'spree/shared/review', review: review %>
9
9
  <% end %>
10
10
  <% end %>
11
11
  <% if !Spree::Reviews::Config[:require_login] || spree_current_user %>
12
- <%= link_to Spree.t('write_your_own_review'), new_product_review_path(@product), :class => "button",
13
- :rel => 'nofollow' %>
12
+ <%= link_to I18n.t("spree.write_your_own_review"), new_product_review_path(@product), class: "button",
13
+ rel: 'nofollow' %>
14
14
  <% end %>
15
15
  </div>
@@ -1,9 +1,9 @@
1
1
  <% stars = product.stars %>
2
2
  <% reviews_count = product.reviews_count %>
3
3
  <span style="float:left;" title="<%= txt_stars(stars) %>">
4
- <%= render 'spree/reviews/stars', :stars => stars %>
4
+ <%= render 'spree/reviews/stars', stars: stars %>
5
5
  </span>
6
6
  <span style="float:right;">
7
- <%= Spree::Review.model_name.human(:count => reviews_count) %>
7
+ <%= Spree::Review.model_name.human(count: reviews_count) %>
8
8
  </span>
9
9
  <br/>
data/bin/rails CHANGED
@@ -1,5 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
2
4
  # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
5
 
4
- ENGINE_PATH = File.expand_path('../..', __FILE__)
5
- load File.expand_path('../../spec/dummy/script/rails', __FILE__)
6
+ ENGINE_PATH = File.expand_path('..', __dir__)
7
+ load File.expand_path('../spec/dummy/script/rails', __dir__)
@@ -1 +1,3 @@
1
+ # frozen_string_literal: true
2
+
1
3
  NB_STARS = 5
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Spree
2
4
  module Reviews
3
5
  Config = Spree::ReviewsConfiguration.new
@@ -15,6 +15,16 @@ de-CH:
15
15
  spree/review:
16
16
  one: eine Rezension
17
17
  other: "%{count} Rezensionen"
18
+ errors:
19
+ models:
20
+ spree/review:
21
+ attributes:
22
+ rating:
23
+ you_must_enter_value_for_rating: "Bitte geben Sie eine Bewertung an."
24
+ spree/feedback_review:
25
+ attributes:
26
+ rating:
27
+ you_must_enter_value_for_rating: "Bitte geben Sie eine Bewertung an."
18
28
  spree:
19
29
  approval_status: Freischaltungsstatus
20
30
  approve: Freischalten
@@ -41,16 +51,19 @@ de-CH:
41
51
  reviews: Rezensionen
42
52
  admin:
43
53
  tab:
54
+ reviews: Rezensionen
44
55
  review_management: Rezensionen
45
56
  review_successfully_submitted: "Ihre Rezension wurde erfolgreich übertragen. Vielen Dank!"
46
57
  spree_reviews:
47
58
  feedback_rating: Feedback für Rezensionen erlauben
59
+ display_unapproved: Zeigen Sie nicht genehmigte Bewertungen in Auflistungen an
48
60
  include_unapproved: Unveröffentlichte Rezensionen anzeigen
49
61
  manage_review_settings: Einstellungen für die Darstellung von Rezensionen
50
62
  preview_size: Größe der Vorschau
51
63
  require_login: Login erforderlich
52
64
  review_settings: Rezensionseinstellungen
53
65
  show_email: E-Mail Adressen anzeigen
66
+ show_verified_purchaser: Verifizierten Käufer anzeigen
54
67
  track_locale: Sprache des Benutzers tracken
55
68
  star:
56
69
  one: "ein Sternchen"
@@ -59,10 +72,10 @@ de-CH:
59
72
  submit_your_review: Rezension abschicken
60
73
  submitted_on: Eingeschickt am
61
74
  unapproved_reviews: Nicht freigeschaltete Rezensionen
75
+ verified_purchaser: Verifizierter Käufer
62
76
  voice:
63
77
  one: "Eine Stimme"
64
78
  other: "%{count} Stimmen"
65
79
  was_this_review_helpful: War diese Rezension für Sie hilfreich?
66
80
  write_your_own_review: Rezension schreiben
67
- you_must_enter_value_for_rating: "Bitte geben Sie eine Bewertung an."
68
81
  anonymous: Anonym
@@ -15,6 +15,16 @@ de:
15
15
  spree/review:
16
16
  one: eine Rezension
17
17
  other: "%{count} Rezensionen"
18
+ errors:
19
+ models:
20
+ spree/review:
21
+ attributes:
22
+ rating:
23
+ you_must_enter_value_for_rating: "Bitte geben Sie eine Bewertung an."
24
+ spree/feedback_review:
25
+ attributes:
26
+ rating:
27
+ you_must_enter_value_for_rating: "Bitte geben Sie eine Bewertung an."
18
28
  spree:
19
29
  approval_status: Freischaltungsstatus
20
30
  approve: Freischalten
@@ -41,16 +51,19 @@ de:
41
51
  reviews: Rezensionen
42
52
  admin:
43
53
  tab:
54
+ reviews: Rezensionen
44
55
  review_management: Rezensionen
45
56
  review_successfully_submitted: Ihre Rezension wurde erfolgreich übertragen. Vielen Dank!
46
57
  spree_reviews:
47
58
  feedback_rating: Feedback für Rezensionen erlauben
59
+ display_unapproved: Zeigen Sie nicht genehmigte Bewertungen in Auflistungen an
48
60
  include_unapproved: Unveröffentlichte Rezensionen anzeigen
49
61
  manage_review_settings: Einstellungen für die Darstellung von Rezensionen
50
62
  preview_size: Größe der Vorschau
51
63
  require_login: Login erforderlich
52
64
  review_settings: Rezensionseinstellungen
53
65
  show_email: E-Mail Adressen anzeigen
66
+ show_verified_purchaser: Verifizierten Käufer anzeigen
54
67
  track_locale: Sprache des Benutzers tracken
55
68
  star:
56
69
  one: "ein Sternchen"
@@ -59,10 +72,10 @@ de:
59
72
  submit_your_review: Rezension abschicken
60
73
  submitted_on: Eingeschickt am
61
74
  unapproved_reviews: Nicht freigeschaltete Rezensionen
75
+ verified_purchaser: Verifizierter Käufer
62
76
  voice:
63
77
  one: "Eine Stimme"
64
78
  other: "%{count} Stimmen"
65
79
  was_this_review_helpful: War diese Rezension für Sie hilfreich?
66
80
  write_your_own_review: Rezension schreiben
67
- you_must_enter_value_for_rating: "Bitte geben Sie eine Bewertung an."
68
81
  anonymous: Anonym
@@ -14,6 +14,16 @@ en-GB:
14
14
  spree/review:
15
15
  one: one review
16
16
  other: "%{count} reviews"
17
+ errors:
18
+ models:
19
+ spree/review:
20
+ attributes:
21
+ rating:
22
+ you_must_enter_value_for_rating: "You must enter a value for rating."
23
+ spree/feedback_review:
24
+ attributes:
25
+ rating:
26
+ you_must_enter_value_for_rating: "You must enter a value for rating."
17
27
  spree:
18
28
  approval_status: Approval status
19
29
  approve: Approve
@@ -40,16 +50,19 @@ en-GB:
40
50
  reviews: Reviews
41
51
  admin:
42
52
  tab:
53
+ reviews: Reviews
43
54
  review_management: Reviews
44
55
  review_successfully_submitted: Review was successfully submitted
45
56
  spree_reviews:
46
57
  feedback_rating: Rate feedback
58
+ display_unapproved: Display unapproved reviews in listings
47
59
  include_unapproved: Include unapproved reviews in listings
48
60
  manage_review_settings: Control the display of reviews
49
61
  preview_size: Size of the review snippets
50
62
  require_login: Require user to be logged in
51
63
  review_settings: Review Settings
52
64
  show_email: Show email addresses
65
+ show_verified_purchaser: Show verified purchaser
53
66
  track_locale: Track user's locale
54
67
  star:
55
68
  one: "1"
@@ -58,11 +71,10 @@ en-GB:
58
71
  submit_your_review: Submit your review
59
72
  submitted_on: Submitted on
60
73
  unapproved_reviews: Unapproved
74
+ verified_purchaser: Verified purchaser
61
75
  voice:
62
76
  one: "1 voice"
63
77
  other: "%{count} voices"
64
78
  was_this_review_helpful: "Was this review helpful to you?"
65
79
  write_your_own_review: Write your own review
66
- you_must_enter_value_for_rating: "You must enter a value for rating."
67
80
  anonymous: Anonymous
68
-
@@ -15,6 +15,16 @@ en:
15
15
  spree/review:
16
16
  one: one review
17
17
  other: "%{count} reviews"
18
+ errors:
19
+ models:
20
+ spree/review:
21
+ attributes:
22
+ rating:
23
+ you_must_enter_value_for_rating: "You must enter a value for rating."
24
+ spree/feedback_review:
25
+ attributes:
26
+ rating:
27
+ you_must_enter_value_for_rating: "You must enter a value for rating."
18
28
  spree:
19
29
  approval_status: Approval status
20
30
  approve: Approve
@@ -40,16 +50,19 @@ en:
40
50
  reviews: Reviews
41
51
  admin:
42
52
  tab:
53
+ reviews: Reviews
43
54
  review_management: Reviews
44
55
  review_successfully_submitted: Review was successfully submitted
45
56
  spree_reviews:
46
57
  feedback_rating: Rate feedback
58
+ display_unapproved: Display unapproved reviews in listings
47
59
  include_unapproved: Include unapproved reviews in listings
48
60
  manage_review_settings: Control the display of reviews
49
61
  preview_size: Size of the review snippets
50
62
  require_login: Require user to be logged in
51
63
  review_settings: Review Settings
52
64
  show_email: Show email addresses
65
+ show_verified_purchaser: Show verified purchaser
53
66
  track_locale: Track user's locale
54
67
  star:
55
68
  one: "1"
@@ -58,10 +71,10 @@ en:
58
71
  submit_your_review: Submit your review
59
72
  submitted_on: Submitted on
60
73
  unapproved_reviews: Unapproved
74
+ verified_purchaser: Verified purchaser
61
75
  voice:
62
76
  one: "1 voice"
63
77
  other: "%{count} voices"
64
78
  was_this_review_helpful: "Was this review helpful to you?"
65
79
  write_your_own_review: Write your own review
66
- you_must_enter_value_for_rating: "You must enter a value for rating."
67
80
  anonymous: Anonymous