spree_reviews 0.30.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.
- data/README.markdown +43 -0
- data/Rakefile +120 -0
- data/TODO +8 -0
- data/app/controllers/admin/feedback_reviews_controller.rb +16 -0
- data/app/controllers/admin/review_settings_controller.rb +13 -0
- data/app/controllers/admin/reviews_controller.rb +36 -0
- data/app/controllers/feedback_reviews_controller.rb +17 -0
- data/app/controllers/reviews_controller.rb +30 -0
- data/app/helpers/admin/feedback_reviews_helper.rb +2 -0
- data/app/helpers/feedback_reviews_helper.rb +2 -0
- data/app/helpers/reviews_helper.rb +17 -0
- data/app/models/feedback_review.rb +10 -0
- data/app/models/product_decorator.rb +14 -0
- data/app/models/rating.rb +20 -0
- data/app/models/review.rb +20 -0
- data/app/models/reviews_configuration.rb +7 -0
- data/app/views/admin/feedback_reviews/index.html.erb +21 -0
- data/app/views/admin/review_settings/edit.html.erb +18 -0
- data/app/views/admin/review_settings/show.html.erb +18 -0
- data/app/views/admin/reviews/_form.html.erb +10 -0
- data/app/views/admin/reviews/edit.html.erb +17 -0
- data/app/views/admin/reviews/index.html.erb +45 -0
- data/app/views/feedback_reviews/_form.html.erb +14 -0
- data/app/views/feedback_reviews/_summary.html.erb +6 -0
- data/app/views/feedback_reviews/create.js.erb +7 -0
- data/app/views/reviews/_fine_print.html.erb +7 -0
- data/app/views/reviews/_stars.html.erb +21 -0
- data/app/views/reviews/_stars0.html.erb +1 -0
- data/app/views/reviews/_stars1.html.erb +1 -0
- data/app/views/reviews/_stars2.html.erb +1 -0
- data/app/views/reviews/_stars3.html.erb +1 -0
- data/app/views/reviews/_stars4.html.erb +1 -0
- data/app/views/reviews/_stars5.html.erb +1 -0
- data/app/views/reviews/index.html.erb +2 -0
- data/app/views/reviews/new.html.erb +47 -0
- data/app/views/reviews/submissionguidelines.html.erb +6 -0
- data/app/views/reviews/terms.html.erb +6 -0
- data/app/views/shared/_rating.html.erb +16 -0
- data/app/views/shared/_review.html.erb +14 -0
- data/app/views/shared/_review_summary.html.erb +13 -0
- data/app/views/shared/_reviews.html.erb +9 -0
- data/app/views/shared/_shortrating.html.erb +11 -0
- data/config/locales/de.yml +40 -0
- data/config/locales/en-GB.yml +23 -0
- data/config/locales/en.yml +53 -0
- data/config/locales/fr-FR.yml +19 -0
- data/config/locales/ru.yml +47 -0
- data/config/routes.rb +22 -0
- data/db/migrate/20081020220700_create_ratings.rb +14 -0
- data/db/migrate/20081020220724_create_reviews.rb +18 -0
- data/db/migrate/20101222083309_create_feedback_reviews.rb +17 -0
- data/db/sample/ratings.yml +16 -0
- data/db/sample/reviews.yml +59 -0
- data/lib/spree/reviews/config.rb +11 -0
- data/lib/spree_reviews.rb +17 -0
- data/lib/spree_reviews_hook.rb +17 -0
- data/lib/tasks/reviews_extension_tasks.rake +25 -0
- data/public/images/delete.gif +0 -0
- data/public/images/star.gif +0 -0
- data/public/javascripts/jquery.rating.js +11 -0
- data/public/stylesheets/reviews.css +44 -0
- data/spec/controllers/reviews_controller_spec.rb +15 -0
- data/spec/helpers/reviews_helper_spec.rb +11 -0
- data/spec/models/ratings_spec.rb +11 -0
- data/spec/models/reviews_spec.rb +11 -0
- data/spec/spec.opts +6 -0
- data/spec/spec_helper.rb +37 -0
- data/spec/views/reviews/submit_view_spec.rb +12 -0
- data/spree_reviews.gemspec +22 -0
- metadata +145 -0
@@ -0,0 +1,18 @@
|
|
1
|
+
<%= render :partial => 'admin/shared/configuration_menu' %>
|
2
|
+
|
3
|
+
<h1><%= t("reviews.review_settings") %></h1>
|
4
|
+
|
5
|
+
<table>
|
6
|
+
<tr>
|
7
|
+
<th scope="row"><%= t("reviews.include_unapproved") %>:</th>
|
8
|
+
<td><%= Spree::Reviews::Config[:include_unapproved_reviews] %></td>
|
9
|
+
</tr>
|
10
|
+
<tr>
|
11
|
+
<th scope="row"><%= t("reviews.preview_size") %>:</th>
|
12
|
+
<td><%= Spree::Reviews::Config[:preview_size] %></td>
|
13
|
+
</tr>
|
14
|
+
</table>
|
15
|
+
|
16
|
+
<p>
|
17
|
+
<%= link_to_with_icon('edit', t("edit"), edit_admin_review_settings_path) %>
|
18
|
+
</p>
|
@@ -0,0 +1,17 @@
|
|
1
|
+
<h1>Editing review for <%= link_to @review.product.name, product_path(@review.product) %></h1>
|
2
|
+
|
3
|
+
<h2>Original version</h2>
|
4
|
+
|
5
|
+
<p>
|
6
|
+
<%= @review.review %>
|
7
|
+
</p>
|
8
|
+
<br/>
|
9
|
+
|
10
|
+
<h2>Edited version</h2>
|
11
|
+
|
12
|
+
<% form_for([:admin, @review]) do |f| %>
|
13
|
+
<%= render :partial => f,
|
14
|
+
:locals => { :button_name => "Update" } %>
|
15
|
+
<% end %>
|
16
|
+
|
17
|
+
<%= link_to t('back_reviews'), admin_reviews_path %>
|
@@ -0,0 +1,45 @@
|
|
1
|
+
<h1><%= t('review_management_description') %></h1>
|
2
|
+
|
3
|
+
<% for reviews in [["Unapproved", @unapproved_reviews], ["Approved", @approved_reviews]] %>
|
4
|
+
<h2><%= t(reviews[0]+"_reviews") %></h2>
|
5
|
+
|
6
|
+
<table cellspacing=6 class="index">
|
7
|
+
<tr>
|
8
|
+
<th><%= t('date_') %></th>
|
9
|
+
<th><%= t('user') %></th>
|
10
|
+
<th><%= t('review_title') %> / <%= t('product') %></th>
|
11
|
+
<th><%= t('review_content') %></th>
|
12
|
+
<th></th>
|
13
|
+
</tr>
|
14
|
+
|
15
|
+
<% for review in reviews[1] %>
|
16
|
+
<tr>
|
17
|
+
<td>
|
18
|
+
<%= l review.created_at %>
|
19
|
+
</td>
|
20
|
+
<td>
|
21
|
+
<%= review.name %><%= t('from') %> <%= review.location %>
|
22
|
+
</td>
|
23
|
+
<td>
|
24
|
+
<%= h review.title %>
|
25
|
+
<br/>
|
26
|
+
<%= t('for') %> <%= link_to review.product.name, product_path(review.product) %>
|
27
|
+
</td>
|
28
|
+
<td style="border: 1px dashed green" width="60%">
|
29
|
+
<br/>
|
30
|
+
<%= h review.review %>
|
31
|
+
</td>
|
32
|
+
<td>
|
33
|
+
<% unless review.approved %>
|
34
|
+
<%= link_to t('approve'), {:action => 'approve', :id => review.id} %> <br />
|
35
|
+
<% end %>
|
36
|
+
<%= link_to t('feedback'), admin_review_feedback_reviews_path(review) %>(<%= review.feedback_stars %>/<%= review.feedback_reviews.count %>) <br/>
|
37
|
+
<%= link_to t('edit'), [:edit, :admin, review] %> <br/>
|
38
|
+
<%= link_to t('destroy'), [:admin, review], :method => :delete, :confirm => t('are_you_sure_review') %>
|
39
|
+
|
40
|
+
</td>
|
41
|
+
</tr>
|
42
|
+
<% end %>
|
43
|
+
</table>
|
44
|
+
<br/>
|
45
|
+
<% end %>
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<%= render :partial => "feedback_reviews/summary", :locals => {:review => review}%>
|
2
|
+
<%= form_for((@feedback_review ||= review.feedback_reviews.build), :url => feedback_review_path(review), :method => :post, :remote => true) do |f| %>
|
3
|
+
<% unless @feedback_review.errors.empty? %>
|
4
|
+
<span class="error"><%= @feedback_review.errors[:rating] %></span>
|
5
|
+
<br />
|
6
|
+
<% end %>
|
7
|
+
|
8
|
+
<%= t(:was_this_review_helpful) %>
|
9
|
+
<% for i in 1..Rating.get_nb_stars %>
|
10
|
+
<%= radio_button_tag "feedback_review[rating]", pluralize(i, 'stars'), false, :class => "star" %>
|
11
|
+
<% end %>
|
12
|
+
<%= hidden_field_tag "feedback_review[user_id]", current_user.try(:id) %>
|
13
|
+
<button class="feedback-review"><span><%= t("yes") %></span></button>
|
14
|
+
<% end %>
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<% if @feedback_review.valid? %>
|
2
|
+
$("div#feedback_review_<%= @review.id %>").html("<%= escape_javascript(render(:partial => "feedback_reviews/summary", :locals => {:review => @review})) %>");
|
3
|
+
<% else %>
|
4
|
+
$("div#feedback_review_<%= @review.id %>").html("<%= escape_javascript(render(:partial => "feedback_reviews/form", :locals => {:review => @review})) %>");
|
5
|
+
|
6
|
+
<% end %>
|
7
|
+
$(document).ready(function(){$("div#feedback_review_<%= @review.id %>").find(".star").rating({required:true});});
|
@@ -0,0 +1,7 @@
|
|
1
|
+
<br/>
|
2
|
+
<h2><%= t('the_fine_print') %></h2>
|
3
|
+
<ul>
|
4
|
+
<li><%= t('terms_text') %>: <%= link_to t("terms and conditions"), url_for(:action => 'terms') %></li>
|
5
|
+
<li><%= t('approved_text') %></li>
|
6
|
+
<li><%= t('guideline_text') %>: <%= link_to t("review guidelines"), url_for(:action => 'submissionguidelines') %></li>
|
7
|
+
</ul>
|
@@ -0,0 +1,21 @@
|
|
1
|
+
<% content_for :head do %>
|
2
|
+
<%= javascript_include_tag("jquery.rating.js") %>
|
3
|
+
<%= javascript_tag("$(document).ready(function(){$('.stars').rating({required:true});});") %>
|
4
|
+
<% end %>
|
5
|
+
|
6
|
+
<% if defined? edit_enabled
|
7
|
+
state = ""
|
8
|
+
name = "review[rating]"
|
9
|
+
else
|
10
|
+
state = 'disabled="disabled"'
|
11
|
+
name = defined?(review).nil? ? Time.now.tv_usec.to_s : "review_#{review}"
|
12
|
+
end %>
|
13
|
+
<% for i in 1..Rating.get_nb_stars %>
|
14
|
+
<input name="<%= name %>"
|
15
|
+
type="radio" class="star"
|
16
|
+
value="<%= pluralize(i, 'stars') %>" <%= state %>
|
17
|
+
<%= "checked=\"checked\"" if i==stars %> />
|
18
|
+
<% end %>
|
19
|
+
|
20
|
+
|
21
|
+
|
@@ -0,0 +1 @@
|
|
1
|
+
<span class="unlit"> ✮ </span><span class="unlit"> ✮ </span><span class="unlit"> ✮ </span><span class="unlit"> ✮ </span><span class="unlit"> ✮ </span>
|
@@ -0,0 +1 @@
|
|
1
|
+
<span class="lit"> ✮ </span><span class="unlit"> ✮ </span><span class="unlit"> ✮ </span><span class="unlit"> ✮ </span><span class="unlit"> ✮ </span>
|
@@ -0,0 +1 @@
|
|
1
|
+
<span class="lit"> ✮ </span><span class="lit"> ✮ </span><span class="unlit"> ✮ </span><span class="unlit"> ✮ </span><span class="unlit"> ✮ </span>
|
@@ -0,0 +1 @@
|
|
1
|
+
<span class="lit"> ✮ </span><span class="lit"> ✮ </span><span class="lit"> ✮ </span><span class="unlit"> ✮ </span><span class="unlit"> ✮ </span>
|
@@ -0,0 +1 @@
|
|
1
|
+
<span class="lit"> ✮ </span><span class="lit"> ✮ </span><span class="lit"> ✮ </span><span class="lit"> ✮ </span><span class="unlit"> ✮ </span>
|
@@ -0,0 +1 @@
|
|
1
|
+
<span class="lit"> ✮ </span><span class="lit"> ✮ </span><span class="lit"> ✮ </span><span class="lit"> ✮ </span><span class="lit"> ✮</span>
|
@@ -0,0 +1,47 @@
|
|
1
|
+
<% content_for :head do %>
|
2
|
+
<%= stylesheet_link_tag 'reviews.css' %>
|
3
|
+
<% end %>
|
4
|
+
<!-- <h1>Product review submission</h1> -->
|
5
|
+
|
6
|
+
<h2> <%= I18n.t('leave_us_a_review_for') + ' "' + @product.name + '"' %> </h2>
|
7
|
+
|
8
|
+
<%= form_for @review, :url => {:action => 'create'} do |f| %>
|
9
|
+
<%= render "shared/error_messages", :target => @review %>
|
10
|
+
<%= f.hidden_field :product_id, :value => @product.id %>
|
11
|
+
|
12
|
+
<table cellspacing="0" cellpadding="2">
|
13
|
+
<tbody>
|
14
|
+
<tr valign="top">
|
15
|
+
<td style="padding-top: 5px; padding-bottom: 5px;" class="fieldtitle right nowrap">
|
16
|
+
<strong><%= I18n.t('rating') %></strong>
|
17
|
+
</td>
|
18
|
+
<td style="padding-top: 5px; padding-bottom: 5px;">
|
19
|
+
<%= render :partial => "reviews/stars", :locals => {:stars => @review.rating, :edit_enabled => true} %>
|
20
|
+
</td>
|
21
|
+
</tr>
|
22
|
+
<tr valign="top">
|
23
|
+
<td class="fieldtitle right nowrap">
|
24
|
+
<%= f.label :title, raw("<strong>#{ I18n.t('review_title')}</strong>") %>
|
25
|
+
</td>
|
26
|
+
<td>
|
27
|
+
<%= f.text_field :title, :maxlength => "255", :size => "50" %>
|
28
|
+
</td>
|
29
|
+
</tr>
|
30
|
+
<tr valign="top">
|
31
|
+
<td class="fieldtitle right nowrap">
|
32
|
+
<%= f.label :review, raw("<strong>#{ I18n.t('review_content')}</strong>") %>
|
33
|
+
</td>
|
34
|
+
<td>
|
35
|
+
<%= f.text_area :review, :wrap => "virtual", :rows => "10", :cols => "50" %>
|
36
|
+
</td>
|
37
|
+
</tr>
|
38
|
+
<tr>
|
39
|
+
<td> </td>
|
40
|
+
<td style="padding-top: 5px;">
|
41
|
+
<%= f.submit I18n.t('submit_your_review'), :class => "button bg_darkfirst".html_safe %>
|
42
|
+
</td>
|
43
|
+
</tr>
|
44
|
+
</tbody></table>
|
45
|
+
<% end %>
|
46
|
+
|
47
|
+
<%= render :partial => "fine_print" %>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<% content_for :head do %>
|
2
|
+
<%= stylesheet_link_tag 'reviews.css' %>
|
3
|
+
<% end %>
|
4
|
+
<% stars = product.get_stars %>
|
5
|
+
<div class="header clear">
|
6
|
+
<%= t 'average_customer_rating' %>:
|
7
|
+
<br/>
|
8
|
+
<span title="<%= txt_stars(stars[0]) %>">
|
9
|
+
<%= render :partial => "reviews/stars", :locals => {:stars => stars[0]} %>
|
10
|
+
</span>
|
11
|
+
<br/>
|
12
|
+
(<%= t('based_upon') %> <%= t('review', :count => stars[1]) %>)
|
13
|
+
<br/>
|
14
|
+
<br/>
|
15
|
+
</div>
|
16
|
+
|
@@ -0,0 +1,14 @@
|
|
1
|
+
<div class="review">
|
2
|
+
<span title="<%= txt_stars(review.rating) %>">
|
3
|
+
<%= render :partial => "reviews/stars", :locals => {:stars => review.rating} %>
|
4
|
+
</span>
|
5
|
+
<span class="title"><%= review.title %> </span>
|
6
|
+
<br/>
|
7
|
+
<span class="attribution"><%= t('submitted_on') %> <strong><%= l review.created_at.to_date %></strong></span>
|
8
|
+
<p>
|
9
|
+
<%= review.review %>
|
10
|
+
</p>
|
11
|
+
<div id="feedback_review_<%= review.id %>">
|
12
|
+
<%= render :partial => "feedback_reviews/form", :locals => {:review => review} %>
|
13
|
+
</div>
|
14
|
+
</div>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<%# provisional snapshot of review info %>
|
2
|
+
<% content_for :head do %>
|
3
|
+
<%= stylesheet_link_tag 'reviews.css' %>
|
4
|
+
<% end %>
|
5
|
+
<div id="reviews">
|
6
|
+
<%= render :partial => 'shared/rating', :locals => {:product => @product, :review => 0} %>
|
7
|
+
<% for review in @product.reviews.approval_filter.preview %>
|
8
|
+
<%= render :partial => 'shared/review', :locals => {:review => review} %>
|
9
|
+
<% end %>
|
10
|
+
|
11
|
+
<%= link_to t('write_your_own_review'), new_product_review_path(@product), :class => "button" %>
|
12
|
+
</div>
|
13
|
+
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<div id="reviews">
|
2
|
+
<%= render :partial => 'shared/rating', :locals => {:product => @product, :review => 0} %>
|
3
|
+
<% for review in @product.reviews.approval_filter %>
|
4
|
+
<%= render :partial => 'shared/review', :locals => {:review => review} %>
|
5
|
+
<% end %>
|
6
|
+
|
7
|
+
<%= link_to t('write_your_own_review'), new_product_review_path(@product), :class => "button" %>
|
8
|
+
</div>
|
9
|
+
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<% content_for :head do %>
|
2
|
+
<%= stylesheet_link_tag 'reviews.css' %>
|
3
|
+
<% end %>
|
4
|
+
<% stars = product.get_stars %>
|
5
|
+
<span style="float:left;" title="<%= txt_stars(stars[0]) %>">
|
6
|
+
<%= render :partial => "reviews/stars", :locals => {:stars => stars[0]} %>
|
7
|
+
</span>
|
8
|
+
<span style="float:right;">
|
9
|
+
<%= t('review', :count => stars[1]) %>
|
10
|
+
</span>
|
11
|
+
<br/>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
de:
|
2
|
+
write_your_own_review: Schreibe uns deine Meinung
|
3
|
+
review_management: Meinungsverwaltung
|
4
|
+
review_management_description: Verwalte Kundenmeinungen
|
5
|
+
back_reviews: Zurück zu den Kundenmeinungen
|
6
|
+
are_you_sure_review: Bist du sicher, dass du deine Meinung löschen willst?
|
7
|
+
info_approve_review: Meinung veröffentlicht
|
8
|
+
error_approve_review: Fehler bei der Meinungsveröffentlichung
|
9
|
+
approve: Veröffentlichen
|
10
|
+
leave_us_a_review_for: Deine Meinung über
|
11
|
+
review_successfully_submitted: Meinung erfolgreich übertragen
|
12
|
+
rating: Bewertung
|
13
|
+
submit_your_review: Meinung übertragen
|
14
|
+
review_content: Inhalt
|
15
|
+
review_title: Titel
|
16
|
+
reviews:
|
17
|
+
review_settings: Meinungseinstellungen
|
18
|
+
manage_review_settings: Meinungsdarstellungesoptionen
|
19
|
+
preview_size: Größe der Meinungen
|
20
|
+
include_unapproved: Unveröffentlichte Meinungen anzeigen
|
21
|
+
your_name: Dein Anzeigename
|
22
|
+
your_location: Dein Ort
|
23
|
+
average_customer_rating: Durchschnittliche Bewertung
|
24
|
+
the_fine_print: Kleingedrucktes
|
25
|
+
terms_text: Alle Meinungen werden müssen unseren Bedingen einhalten
|
26
|
+
approved_text: Freigeschalte Kommentare werden in 1-2 Werktagen veröffentlicht.
|
27
|
+
guideline_text: Meinungen die unseren den verlinkten Richtlinen nicht genügen werden nicht veröffentlicht
|
28
|
+
"terms and conditions": Bedingungen
|
29
|
+
"review guidelines": Richtlinien
|
30
|
+
date_: Datum
|
31
|
+
for: über
|
32
|
+
Unapproved_reviews: Nicht freigeschaltete Meinungen
|
33
|
+
Approved_reviews: Freigeschaltete Meinungen
|
34
|
+
from: aus
|
35
|
+
by: Von
|
36
|
+
submitted_on: Eingeschickt am
|
37
|
+
based_upon: basiert auf
|
38
|
+
review:
|
39
|
+
one: einer Bewertung
|
40
|
+
other: %{count} Bewertungen
|
@@ -0,0 +1,23 @@
|
|
1
|
+
en-GB:
|
2
|
+
write_your_own_review: Write your own review
|
3
|
+
review_management: Review Management
|
4
|
+
review_management_description: Manage the user-submitted reviews
|
5
|
+
back_reviews: Back to the reviews
|
6
|
+
are_you_sure_review: Are you sure to delete review ?
|
7
|
+
info_approve_review: Review approved
|
8
|
+
error_approve_review: Error approving review
|
9
|
+
approve: Approve
|
10
|
+
leave_us_a_review: Please leave us a review and a rating for our
|
11
|
+
review_successfully_submitted: Review was successfully submitted
|
12
|
+
rating: rating
|
13
|
+
submit_your_review: Submit your review
|
14
|
+
review_content: Content
|
15
|
+
review_title: Title
|
16
|
+
reviews:
|
17
|
+
review_settings: Review Settings
|
18
|
+
manage_review_settings: Control the display of reviews
|
19
|
+
preview_size: Size of the review snippets
|
20
|
+
include_unapproved: Include unapproved reviews in listings
|
21
|
+
your_name: Your name
|
22
|
+
your_location: Your location
|
23
|
+
|
@@ -0,0 +1,53 @@
|
|
1
|
+
en:
|
2
|
+
write_your_own_review: Write your own review
|
3
|
+
review_management: Review Management
|
4
|
+
review_management_description: Manage the user-submitted reviews
|
5
|
+
back_reviews: Back to the reviews
|
6
|
+
are_you_sure_review: Are you sure to delete review ?
|
7
|
+
info_approve_review: Review approved
|
8
|
+
error_approve_review: Error approving review
|
9
|
+
approve: Approve
|
10
|
+
leave_us_a_review_for: Please leave us a review and a rating for our
|
11
|
+
review_successfully_submitted: Review was successfully submitted
|
12
|
+
rating: rating
|
13
|
+
submit_your_review: Submit your review
|
14
|
+
review_content: Content
|
15
|
+
review_title: Title
|
16
|
+
reviews:
|
17
|
+
review_settings: Review Settings
|
18
|
+
manage_review_settings: Control the display of reviews
|
19
|
+
preview_size: Size of the review snippets
|
20
|
+
include_unapproved: Include unapproved reviews in listings
|
21
|
+
your_name: Your name
|
22
|
+
your_location: Your location
|
23
|
+
average_customer_rating: Average rating
|
24
|
+
the_fine_print: The fine print
|
25
|
+
terms_text: All opinions must comply with our terms and conditions
|
26
|
+
approved_text: Unlocked comments will be published within 1-2 business days.
|
27
|
+
guideline_text: We reserve the right not to post opinions unrelated to your product
|
28
|
+
"terms and conditions": Terms & Conditions
|
29
|
+
"review guidelines": Review Guidelines
|
30
|
+
date_: Date
|
31
|
+
for: for
|
32
|
+
Unapproved_reviews: Unapproved
|
33
|
+
Approved_reviews: Approved
|
34
|
+
from: from
|
35
|
+
by: by
|
36
|
+
submitted_on: Submitted on
|
37
|
+
based_upon: based upon
|
38
|
+
review:
|
39
|
+
one: one review
|
40
|
+
other: %{count} reviews
|
41
|
+
star:
|
42
|
+
one: "1"
|
43
|
+
other: "%{count}"
|
44
|
+
voice:
|
45
|
+
one: "1 voice"
|
46
|
+
other: "%{count} voices"
|
47
|
+
|
48
|
+
feedback: Feedback
|
49
|
+
stars: Stars
|
50
|
+
feedback_review_for: "Review: '%{review}'"
|
51
|
+
out_of_5: "out of 5"
|
52
|
+
was_this_review_helpful: "Was this review helpful to you?"
|
53
|
+
you_must_enter_value_for_rating: "You must enter a value for rating."
|