shoppe 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (100) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/shoppe/table-tear-off.png +0 -0
  3. data/app/assets/javascripts/shoppe/application.coffee +2 -2
  4. data/app/assets/stylesheets/shoppe/application.scss +80 -37
  5. data/app/assets/stylesheets/shoppe/elements.scss +1 -2
  6. data/app/controllers/shoppe/attachments_controller.rb +3 -3
  7. data/app/controllers/shoppe/countries_controller.rb +13 -13
  8. data/app/controllers/shoppe/delivery_service_prices_controller.rb +11 -11
  9. data/app/controllers/shoppe/delivery_services_controller.rb +13 -13
  10. data/app/controllers/shoppe/orders_controller.rb +20 -20
  11. data/app/controllers/shoppe/payments_controller.rb +8 -8
  12. data/app/controllers/shoppe/product_categories_controller.rb +13 -13
  13. data/app/controllers/shoppe/products_controller.rb +24 -13
  14. data/app/controllers/shoppe/sessions_controller.rb +7 -7
  15. data/app/controllers/shoppe/settings_controller.rb +6 -6
  16. data/app/controllers/shoppe/stock_level_adjustments_controller.rb +5 -5
  17. data/app/controllers/shoppe/tax_rates_controller.rb +13 -13
  18. data/app/controllers/shoppe/users_controller.rb +15 -15
  19. data/app/controllers/shoppe/variants_controller.rb +13 -13
  20. data/app/helpers/shoppe/application_helper.rb +12 -12
  21. data/app/models/shoppe/order/actions.rb +17 -3
  22. data/app/models/shoppe/order/billing.rb +18 -18
  23. data/app/models/shoppe/order/delivery.rb +30 -31
  24. data/app/models/shoppe/order_item.rb +33 -34
  25. data/app/models/shoppe/payment.rb +15 -15
  26. data/app/models/shoppe/product.rb +82 -21
  27. data/app/models/shoppe/product/variants.rb +10 -10
  28. data/app/models/shoppe/product_category.rb +7 -7
  29. data/app/models/shoppe/stock_level_adjustment.rb +6 -6
  30. data/app/validators/permalink_validator.rb +7 -0
  31. data/app/views/layouts/shoppe/application.html.haml +10 -20
  32. data/app/views/shoppe/countries/_form.html.haml +15 -11
  33. data/app/views/shoppe/countries/edit.html.haml +5 -4
  34. data/app/views/shoppe/countries/index.html.haml +9 -9
  35. data/app/views/shoppe/countries/new.html.haml +6 -4
  36. data/app/views/shoppe/delivery_service_prices/_form.html.haml +16 -16
  37. data/app/views/shoppe/delivery_service_prices/edit.html.haml +5 -4
  38. data/app/views/shoppe/delivery_service_prices/index.html.haml +8 -9
  39. data/app/views/shoppe/delivery_service_prices/new.html.haml +5 -4
  40. data/app/views/shoppe/delivery_services/_form.html.haml +15 -14
  41. data/app/views/shoppe/delivery_services/edit.html.haml +7 -5
  42. data/app/views/shoppe/delivery_services/index.html.haml +11 -12
  43. data/app/views/shoppe/delivery_services/new.html.haml +5 -4
  44. data/app/views/shoppe/orders/_form.html.haml +19 -19
  45. data/app/views/shoppe/orders/_order_details.html.haml +20 -15
  46. data/app/views/shoppe/orders/_order_items.html.haml +6 -6
  47. data/app/views/shoppe/orders/_order_items_form.html.haml +11 -11
  48. data/app/views/shoppe/orders/_payments_form.html.haml +4 -4
  49. data/app/views/shoppe/orders/_payments_table.html.haml +12 -12
  50. data/app/views/shoppe/orders/_search_form.html.haml +10 -10
  51. data/app/views/shoppe/orders/_status_bar.html.haml +17 -13
  52. data/app/views/shoppe/orders/despatch_note.html.haml +15 -15
  53. data/app/views/shoppe/orders/edit.html.haml +8 -8
  54. data/app/views/shoppe/orders/index.html.haml +12 -12
  55. data/app/views/shoppe/orders/new.html.haml +7 -7
  56. data/app/views/shoppe/orders/show.html.haml +9 -12
  57. data/app/views/shoppe/payments/refund.html.haml +6 -7
  58. data/app/views/shoppe/product_categories/_form.html.haml +9 -9
  59. data/app/views/shoppe/product_categories/edit.html.haml +4 -4
  60. data/app/views/shoppe/product_categories/index.html.haml +5 -5
  61. data/app/views/shoppe/product_categories/new.html.haml +4 -3
  62. data/app/views/shoppe/products/_form.html.haml +49 -50
  63. data/app/views/shoppe/products/_table.html.haml +10 -10
  64. data/app/views/shoppe/products/edit.html.haml +6 -6
  65. data/app/views/shoppe/products/import.html.haml +63 -0
  66. data/app/views/shoppe/products/index.html.haml +6 -4
  67. data/app/views/shoppe/products/new.html.haml +6 -4
  68. data/app/views/shoppe/sessions/new.html.haml +5 -5
  69. data/app/views/shoppe/sessions/reset.html.haml +6 -5
  70. data/app/views/shoppe/settings/edit.html.haml +5 -5
  71. data/app/views/shoppe/shared/error.html.haml +3 -3
  72. data/app/views/shoppe/stock_level_adjustments/index.html.haml +13 -12
  73. data/app/views/shoppe/tax_rates/form.html.haml +13 -13
  74. data/app/views/shoppe/tax_rates/index.html.haml +5 -5
  75. data/app/views/shoppe/users/_form.html.haml +10 -11
  76. data/app/views/shoppe/users/edit.html.haml +4 -4
  77. data/app/views/shoppe/users/index.html.haml +5 -5
  78. data/app/views/shoppe/users/new.html.haml +6 -4
  79. data/app/views/shoppe/variants/form.html.haml +27 -29
  80. data/app/views/shoppe/variants/index.html.haml +11 -11
  81. data/config/locales/en.yml +619 -14
  82. data/config/locales/es.yml +650 -0
  83. data/config/locales/pl.yml +650 -0
  84. data/config/locales/pt-BR.yml +643 -0
  85. data/config/routes.rb +16 -8
  86. data/db/migrate/20141026175622_add_indexes_to_shoppe_order_items.rb +6 -0
  87. data/db/migrate/20141026175943_add_indexes_to_shoppe_orders.rb +7 -0
  88. data/db/migrate/20141026180333_add_indexes_to_shoppe_payments.rb +6 -0
  89. data/db/migrate/20141026180835_add_indexes_to_shoppe_product_attributes.rb +7 -0
  90. data/db/migrate/20141026180952_add_indexes_to_shoppe_product_categories.rb +5 -0
  91. data/db/migrate/20141026181040_add_indexes_to_shoppe_products.rb +8 -0
  92. data/db/migrate/20141026181312_add_indexes_to_shoppe_settings.rb +5 -0
  93. data/db/migrate/20141026181354_add_indexes_to_shoppe_stock_level_adjustments.rb +6 -0
  94. data/db/migrate/20141026181559_add_indexes_to_shoppe_users.rb +5 -0
  95. data/db/migrate/20141026181716_add_indexes_to_shoppe_delivery_services.rb +9 -0
  96. data/db/schema.rb +36 -1
  97. data/lib/shoppe/engine.rb +6 -0
  98. data/lib/shoppe/navigation_manager.rb +1 -1
  99. data/lib/shoppe/version.rb +1 -1
  100. metadata +67 -5
@@ -1,21 +1,21 @@
1
- - @page_title = 'Edit Order #' + @order.number
1
+ - @page_title = "#{t('shoppe.orders.edit_order')} ##{@order.number}"
2
2
 
3
3
  = content_for :header do
4
4
  %p.buttons
5
- = link_to "Back to order", @order, :class => 'button grey'
6
- %h2.orders Edit Order <b>##{@order.number}</b>
5
+ = link_to t('shoppe.orders.back_to_order'), @order, :class => 'button grey'
6
+ %h2.orders "#{t('shoppe.orders.edit_order')} <b>##{@order.number}</b>"
7
7
 
8
8
  = form_for @order, :html => {:class => 'orderForm'} do |f|
9
9
  = f.error_messages
10
10
  = render 'form', :f => f
11
-
12
- = field_set_tag "Notes" do
11
+
12
+ = field_set_tag t('shoppe.orders.notes') do
13
13
  %dl
14
14
  %dd= f.text_area :notes, :class => 'text'
15
15
 
16
- = field_set_tag "Ordered Products", :class => 'padded' do
16
+ = field_set_tag t('shoppe.orders.ordered_products'), :class => 'padded' do
17
17
  = render 'order_items_form', :f => f
18
18
 
19
19
  %p.submit
20
- = f.submit "Save Order", :class => 'button green'
21
- = link_to "Cancel", @order, :class => 'button'
20
+ = f.submit t('shoppe.orders.save_order') , :class => 'button green'
21
+ = link_to t('shoppe.cancel'), @order, :class => 'button'
@@ -1,11 +1,11 @@
1
- - @page_title = 'Orders'
1
+ - @page_title = t('shoppe.orders.orders')
2
2
 
3
3
  = content_for :header do
4
4
  %p.buttons
5
- = link_to "New Order", :new_order, :class => 'button green'
6
- = link_to "Search Orders", '#', :class => 'button', :rel => 'searchOrders'
5
+ = link_to t('shoppe.orders.new_order'), :new_order, :class => 'button green'
6
+ = link_to t('shoppe.orders.search_orders'), '#', :class => 'button', :rel => 'searchOrders'
7
7
  %h2.orders
8
- Orders
8
+ = t('shoppe.orders.orders')
9
9
  %span= page_entries_info @orders
10
10
 
11
11
  = render 'search_form'
@@ -14,16 +14,16 @@
14
14
  %table.data
15
15
  %thead
16
16
  %tr
17
- %th Number
18
- %th Customer
19
- %th Status
20
- %th Products
21
- %th Total
22
- %th Payment
17
+ %th= t('shoppe.orders.number')
18
+ %th= t('shoppe.orders.customer')
19
+ %th= t('shoppe.orders.status')
20
+ %th= t('shoppe.orders.products')
21
+ %th= t('shoppe.orders.total')
22
+ %th= t('shoppe.orders.payment')
23
23
  %tbody
24
24
  - if @orders.empty?
25
25
  %tr.empty
26
- %td{:colspan => 6} No orders to display.
26
+ %td{:colspan => 6}= t('shoppe.orders.no_orders')
27
27
  - else
28
28
  - for order in @orders
29
29
  %tr
@@ -36,4 +36,4 @@
36
36
  %li #{item.quantity} x #{item.ordered_item.full_name}
37
37
  %td= number_to_currency order.total
38
38
  %td= boolean_tag order.paid_in_full?, nil, :true_text => number_to_currency(order.amount_paid), :false_text => number_to_currency(order.amount_paid)
39
- = paginate @orders
39
+ = paginate @orders
@@ -1,14 +1,14 @@
1
- - @page_title = 'New Order'
1
+ - @page_title = t('shoppe.orders.new_order')
2
+
2
3
  = content_for :header do
3
- %p.buttons= link_to "Back to orders", :orders, :class => 'button grey'
4
- %h2.orders
5
- New Order
4
+ %p.buttons= link_to t('shoppe.orders.back_to_orders'), :orders, :class => 'button grey'
5
+ %h2.orders= t('shoppe.orders.new_order')
6
6
 
7
7
  = form_for @order, :html => {:class => 'orderForm newOrder'} do |f|
8
8
  = f.error_messages
9
9
  = render 'form', :f => f
10
- = field_set_tag "Ordered Products", :class => 'padded' do
10
+ = field_set_tag t('shoppe.orders.ordered_products'), :class => 'padded' do
11
11
  = render 'order_items_form', :f => f
12
12
  %p.submit
13
- = f.submit "Create Order", :class => 'button green'
14
- = link_to "Cancel", :orders, :class => 'button grey'
13
+ = f.submit t('shoppe.orders.create_order'), :class => 'button green'
14
+ = link_to t('shoppe.cancel'), :orders, :class => 'button grey'
@@ -1,12 +1,12 @@
1
- - @page_title = 'Order #' + @order.number
1
+ - @page_title = "#{t('shoppe.orders.order')} ##{@order.number}"
2
2
 
3
3
  = content_for :header do
4
4
  %p.buttons
5
- = link_to "Edit", [:edit, @order], :class => 'button'
5
+ = link_to t('shoppe.edit'), [:edit, @order], :class => 'button'
6
6
  - if @order.accepted?
7
- = link_to "Despatch Note", [:despatch_note, @order], :class => 'button', :rel => 'print'
8
- = link_to "Back to orders", :orders, :class => 'button grey'
9
- %h2.orders Order <b>##{@order.number}</b>
7
+ = link_to t('shoppe.orders.despatch_note.despatch_note'), [:despatch_note, @order], :class => 'button', :rel => 'print'
8
+ = link_to t('shoppe.orders.back_to_orders'), :orders, :class => 'button grey'
9
+ %h2.orders= t('shoppe.orders.order_no_html', order_number: @order.number)
10
10
 
11
11
  #order
12
12
 
@@ -14,15 +14,12 @@
14
14
  = render 'order_details'
15
15
  = render 'status_bar'
16
16
  - else
17
- %p.warning
18
- This order is still being built by the customer in your store. At
19
- present you can only view the items which are within the order.
17
+ %p.warning= t('shoppe.orders.in_progress_warning')
20
18
 
21
-
22
- = field_set_tag "Order Items", :class => 'padded' do
19
+ = field_set_tag t('shoppe.orders.order_items'), :class => 'padded' do
23
20
  = render 'order_items'
24
-
21
+
25
22
  - if @order.received?
26
- = field_set_tag "Payments", :class => 'padded orderPayments' do
23
+ = field_set_tag t('shoppe.orders.payments'), :class => 'padded orderPayments' do
27
24
  = render 'payments_table'
28
25
  = render 'payments_form'
@@ -1,14 +1,13 @@
1
1
 
2
2
  = form_tag [:refund, @order, @payment], :class => 'refundForm' do
3
- %h2 Issue Refund
3
+ %h2= t('shoppe.refund.issue_refund')
4
4
  %p.intro
5
- To issue a refund for this payment, just enter the amount you wish to refund below and click 'Refund'.
6
- The maximum you can refund is <b>#{number_to_currency @payment.refundable_amount}</b>.
7
-
5
+ = t('shoppe.refund.intro_html', amount: number_to_currency(@payment.refundable_amount))
6
+
8
7
  .moneyInput
9
8
  .currency= Shoppe.settings.currency_unit.html_safe
10
9
  = text_field_tag 'amount', @payment.refundable_amount, :class => 'text'
11
10
  %p.submit
12
- = submit_tag "Refund", :class => 'button green'
13
- = link_to "Close", '#', :class => 'button grey', :rel => 'closeDialog'
14
-
11
+ = submit_tag t('shoppe.refund.refund'), :class => 'button green'
12
+ = link_to t('shoppe.close'), '#', :class => 'button grey', :rel => 'closeDialog'
13
+
@@ -1,26 +1,26 @@
1
1
  = form_for @product_category do |f|
2
2
  = f.error_messages
3
- = field_set_tag 'Category Details' do
3
+ = field_set_tag t('shoppe.product_category.category_details') do
4
4
  .splitContainer
5
5
  %dl.half
6
- %dt= f.label :name
6
+ %dt= f.label :name, t('shoppe.product_category.name')
7
7
  %dd= f.text_field :name, :class => 'focus text'
8
8
  %dl.half
9
- %dt= f.label :permalink
9
+ %dt= f.label :permalink, t('shoppe.product_category.permalink')
10
10
  %dd= f.text_field :permalink, :class => 'text'
11
11
  %dl
12
- %dt= f.label :description
12
+ %dt= f.label :description, t('shoppe.product_category.description')
13
13
  %dd= f.text_area :description, :class => 'text'
14
- = field_set_tag "Attachments" do
15
14
 
15
+ = field_set_tag t('shoppe.product_category.attachments') do
16
16
  %dl
17
- %dt= f.label :image_file, "Image"
17
+ %dt= f.label :image_file, t('shoppe.product_category.image')
18
18
  %dd
19
19
  = attachment_preview @product_category.image
20
20
  %p= f.file_field :image_file
21
21
 
22
22
  %p.submit
23
23
  - unless @product_category.new_record?
24
- %span.right= link_to "Delete", @product_category, :class => 'button purple', :method => :delete, :data => {:confirm => "Are you sure you wish to remove this category?"}
25
- = f.submit :class => 'button green'
26
- = link_to "Cancel", :product_categories, :class => 'button'
24
+ %span.right= link_to t('shoppe.delete') , @product_category, :class => 'button purple', :method => :delete, :data => {:confirm => t('shoppe.product_category.delete_confirmation') }
25
+ = f.submit t('shoppe.submit'), :class => 'button green'
26
+ = link_to t('shoppe.cancel') , :product_categories, :class => 'button'
@@ -1,6 +1,6 @@
1
- - @page_title = "Products"
1
+ - @page_title = t('shoppe.product_category.product_categories')
2
2
  = content_for :header do
3
- %p.buttons= link_to "Back to categories list", :product_categories, :class => 'button'
4
- %h2.products Product Categories
3
+ %p.buttons= link_to t('shoppe.product_category.back_to_categories'), :product_categories, :class => 'button'
4
+ %h2.products= t('shoppe.product_category.product_categories')
5
5
  = render 'form'
6
-
6
+
@@ -1,18 +1,18 @@
1
- - @page_title = "Product Categories"
1
+ - @page_title = t('shoppe.product_category.product_categories')
2
2
 
3
3
  = content_for :header do
4
- %p.buttons=link_to "New category", :new_product_category, :class => 'button green'
5
- %h2.products Product Categories
4
+ %p.buttons=link_to t('shoppe.product_category.new_category'), :new_product_category, :class => 'button green'
5
+ %h2.products= t('shoppe.product_category.product_categories')
6
6
 
7
7
  .table
8
8
  %table.data
9
9
  %thead
10
10
  %tr
11
- %th Name
11
+ %th= t('shoppe.product_category.name')
12
12
  %tbody
13
13
  - if @product_categories.empty?
14
14
  %tr.empty
15
- %td No categories to display.
15
+ %td= t('shoppe.product_category.no_categories')
16
16
  - else
17
17
  - for cat in @product_categories
18
18
  %tr
@@ -1,5 +1,6 @@
1
- - @page_title = "Products"
1
+ - @page_title = t('shoppe.product_category.product_categories')
2
2
  = content_for :header do
3
- %p.buttons= link_to "Back to categories list", :product_categories, :class => 'button'
4
- %h2.products Product Categories
3
+ %p.buttons= link_to t('shoppe.product_category.back_to_categories'), :product_categories, :class => 'button'
4
+ %h2.products= t('shoppe.product_category.product_categories')
5
+
5
6
  = render 'form'
@@ -1,119 +1,118 @@
1
1
  = form_for @product, :html => {:multipart => true} do |f|
2
2
  = f.error_messages
3
- = field_set_tag "Product Information" do
3
+ = field_set_tag t('shoppe.products.product_information') do
4
4
  %dl
5
- %dt= f.label :product_category_id
6
- %dd= f.collection_select :product_category_id, Shoppe::ProductCategory.ordered, :id, :name, {:include_blank => true}, {:class => 'chosen'}
7
-
5
+ %dt= f.label :product_category_id, t('shoppe.products.product_category')
6
+ %dd= f.collection_select :product_category_id, Shoppe::ProductCategory.ordered, :id, :name, {:prompt => false}, {:class => 'chosen'}
7
+
8
8
  .splitContainer
9
9
  %dl.third
10
- %dt= f.label :name
10
+ %dt= f.label :name, t('shoppe.products.name')
11
11
  %dd= f.text_field :name, :class => 'text focus'
12
12
  %dl.third
13
- %dt= f.label :permalink
13
+ %dt= f.label :permalink, t('shoppe.products.permalink')
14
14
  %dd= f.text_field :permalink, :class => 'text'
15
15
  %dl.third
16
- %dt= f.label :sku, 'SKU'
16
+ %dt= f.label :sku, t('shoppe.products.sku')
17
17
  %dd= f.text_field :sku, :class => 'text'
18
18
  %dl
19
- %dt= f.label :description
19
+ %dt= f.label :description, t('shoppe.products.description')
20
20
  %dd= f.text_area :description, :class => 'text'
21
21
  %dl
22
- %dt= f.label :short_description
22
+ %dt= f.label :short_description, t('shoppe.products.short_description')
23
23
  %dd= f.text_area :short_description, :class => 'text'
24
24
  %dl
25
- %dt= f.label :in_the_box, "What's in the box?"
25
+ %dt= f.label :in_the_box, t('shoppe.products.in_the_box')
26
26
  %dd= f.text_area :in_the_box, :class => 'text'
27
-
28
- = field_set_tag "Attributes" do
27
+
28
+ = field_set_tag t('shoppe.products.attributes') do
29
29
  .margin
30
30
  %table.productAttributes
31
31
  %thead
32
32
  %tr
33
- %td Name
34
- %td Value
35
- %td.searchable Searchable?
36
- %td.searchable Public?
37
- %td.remove Remove
33
+ %td= t('shoppe.products.name')
34
+ %td= t('shoppe.products.value')
35
+ %td.searchable= t('shoppe.products.searchable?')
36
+ %td.searchable= t('shoppe.products.public?')
37
+ %td.remove= t('shoppe.products.remove')
38
38
  %td
39
39
  %tbody
40
40
  %tr.template{:style => 'display:none;'}
41
- %td= text_field_tag 'product[product_attributes_array][][key]', '', :placeholder => 'Name'
42
- %td= text_field_tag 'product[product_attributes_array][][value]', '', :placeholder => 'Value'
41
+ %td= text_field_tag 'product[product_attributes_array][][key]', '', :placeholder => t('shoppe.products.name')
42
+ %td= text_field_tag 'product[product_attributes_array][][value]', '', :placeholder => t('shoppe.products.value')
43
43
  %td.searchable= check_box_tag 'product[product_attributes_array][][searchable]', '1'
44
44
  %td.searchable= check_box_tag 'product[product_attributes_array][][public]', '1'
45
- %td.remove= link_to "Remove", '#', :class => 'button button-mini purple'
45
+ %td.remove= link_to t('shoppe.remove') , '#', :class => 'button button-mini purple'
46
46
  %td.handle
47
47
  - for attribute in @product.product_attributes
48
48
  %tr
49
- %td= text_field_tag 'product[product_attributes_array][][key]', attribute.key, :placeholder => 'Name'
50
- %td= text_field_tag 'product[product_attributes_array][][value]', attribute.value, :placeholder => 'Value'
49
+ %td= text_field_tag 'product[product_attributes_array][][key]', attribute.key, :placeholder => t('shoppe.products.name')
50
+ %td= text_field_tag 'product[product_attributes_array][][value]', attribute.value, :placeholder => t('shoppe.products.value')
51
51
  %td.searchable= check_box_tag 'product[product_attributes_array][][searchable]', '1', attribute.searchable?
52
52
  %td.searchable= check_box_tag 'product[product_attributes_array][][public]', '1', attribute.public?
53
- %td.remove= link_to "Remove", '#', :class => 'button button-mini purple'
53
+ %td.remove= link_to t("shoppe.remove"), '#', :class => 'button button-mini purple'
54
54
  %td.handle
55
- %p.addAttribute= link_to "Add attribute", '#', :data => {:behavior => 'addAttributeToAttributesTable'}, :class => 'button button-mini green'
56
-
57
- = field_set_tag "Attachments" do
55
+ %p.addAttribute= link_to t('shoppe.products.add_attribute') , '#', :data => {:behavior => 'addAttributeToAttributesTable'}, :class => 'button button-mini green'
56
+
57
+ = field_set_tag t('shoppe.products.attachments') do
58
58
  .splitContainer
59
59
  %dl.half
60
- %dt= f.label :default_image_file, "Default Image"
60
+ %dt= f.label :default_image_file, t('shoppe.products.default_image')
61
61
  %dd
62
62
  = attachment_preview @product.default_image
63
63
  %p= f.file_field :default_image_file
64
64
  %dl.half
65
- %dt= f.label :data_sheet_file, "Datasheet"
65
+ %dt= f.label :data_sheet_file, t('shoppe.products.datasheet')
66
66
  %dd
67
67
  = attachment_preview @product.data_sheet
68
68
  %p= f.file_field :data_sheet_file
69
-
70
- - unless @product.has_variants?
71
- = field_set_tag "Pricing" do
69
+
70
+ - unless @product.has_variants?
71
+ = field_set_tag t('shoppe.products.pricing') do
72
72
  .splitContainer
73
73
  %dl.third
74
- %dt= f.label :price
74
+ %dt= f.label :price, t('shoppe.products.price')
75
75
  %dd
76
76
  .moneyInput
77
77
  .currency= Shoppe.settings.currency_unit.html_safe
78
78
  = f.text_field :price, :class => 'text'
79
79
  %dl.third
80
- %dt= f.label :cost_price
80
+ %dt= f.label :cost_price, t('shoppe.products.cost_price')
81
81
  %dd
82
82
  .moneyInput
83
83
  .currency= Shoppe.settings.currency_unit.html_safe
84
84
  = f.text_field :cost_price, :class => 'text'
85
85
  %dl.third
86
- %dt= f.label :tax_rate_id
87
- %dd= f.collection_select :tax_rate_id, Shoppe::TaxRate.ordered, :id, :description, {:include_blank => true}, {:class => 'chosen-with-deselect', :data => {:placeholder => "No tax"}}
88
-
89
- = field_set_tag "Stock Control" do
86
+ %dt= f.label :tax_rate_id, t('shoppe.products.tax_rate')
87
+ %dd= f.collection_select :tax_rate_id, Shoppe::TaxRate.ordered, :id, :description, {:include_blank => true}, {:class => 'chosen-with-deselect', :data => {:placeholder => t('shoppe.products.no_tax')}}
88
+
89
+ = field_set_tag t('shoppe.products.stock_control') do
90
90
  .splitContainer
91
91
  %dl.half
92
- %dt= f.label :weight
92
+ %dt= f.label :weight, t('shoppe.products.weight')
93
93
  %dd= f.text_field :weight, :class => 'text'
94
-
94
+
95
95
  %dl.half
96
- %dt= f.label :stock_control
96
+ %dt= f.label :stock_control, t('shoppe.products.stock_control')
97
97
  %dd.checkbox
98
98
  = f.check_box :stock_control
99
- = f.label :stock_control, "Enable stock control for this product?"
99
+ = f.label :stock_control, t('shoppe.products.enable_stock_control?')
100
100
 
101
- = field_set_tag "Website Properties" do
101
+ = field_set_tag t('shoppe.products.website_properties') do
102
102
  .splitContainer
103
-
104
103
  %dl.half
105
- %dt= f.label :active, "On sale?"
104
+ %dt= f.label :active, t('shoppe.products.on_sale?')
106
105
  %dd.checkbox
107
106
  = f.check_box :active
108
- = f.label :active, "If checked, this product will be displayed within the public store"
107
+ = f.label :active, t('shoppe.products.on_sale_info')
109
108
  %dl.half
110
- %dt= f.label :featured, "Featured?"
109
+ %dt= f.label :featured, t('shoppe.products.featured?')
111
110
  %dd.checkbox
112
111
  = f.check_box :featured
113
- = f.label :featured, "If checked, this product will appear on your homepage"
112
+ = f.label :featured, t('shoppe.products.featured_info')
114
113
 
115
114
  %p.submit
116
115
  - unless @product.new_record?
117
- %span.right= link_to "Delete", @product, :class => 'button purple', :method => :delete, :data => {:confirm => "Are you sure you wish to remove this product?"}
118
- = f.submit :class => 'button green'
119
- = link_to "Cancel", :products, :class => 'button'
116
+ %span.right= link_to t('shoppe.delete') , @product, :class => 'button purple', :method => :delete, :data => {:confirm => "Are you sure you wish to remove this product?"}
117
+ = f.submit t('shoppe.submit'), :class => 'button green'
118
+ = link_to t('shoppe.cancel'), :products, :class => 'button'
@@ -2,14 +2,14 @@
2
2
  %table.data
3
3
  %thead
4
4
  %tr
5
- %th{:width => '20%'} SKU
6
- %th{:width => '40%'} Name
7
- %th{:width => '25%'} Price/Variants
8
- %th{:width => '15%'} Stock
5
+ %th{:width => '20%'}= t('shoppe.products.sku')
6
+ %th{:width => '40%'}= t('shoppe.products.name')
7
+ %th{:width => '25%'}= t('shoppe.products.price_variants')
8
+ %th{:width => '15%'}= t('shoppe.products.stock')
9
9
  %tbody
10
10
  - if products.empty?
11
11
  %tr.empty
12
- %td{:colspan => 4} No products to display.
12
+ %td{:colspan => 4}= t('shoppe.products.no_products')
13
13
  - else
14
14
  - for category, products in products
15
15
  %tr
@@ -27,16 +27,16 @@
27
27
  %td{:width => '30%'}= number_to_currency variant.price
28
28
  %td{:width => '30%'}
29
29
  - if variant.stock_control?
30
- %span.float-right= link_to "Edit", stock_level_adjustments_path(:item_type => variant.class, :item_id => variant.id), :class => 'edit', :rel => 'dialog', :data => {:dialog_width => 700, :dialog_behavior => 'stockLevelAdjustments'}
31
- = boolean_tag(variant.in_stock?, nil, :true_text => variant.stock, :false_text => 'No stock')
30
+ %span.float-right= link_to t('shoppe.products.edit') , stock_level_adjustments_path(:item_type => variant.class, :item_id => variant.id), :class => 'edit', :rel => 'dialog', :data => {:dialog_width => 700, :dialog_behavior => 'stockLevelAdjustments'}
31
+ = boolean_tag(variant.in_stock?, nil, :true_text => variant.stock, :false_text => t('shoppe.products.no_stock'))
32
32
  - else
33
33
  &#8734;
34
34
  - else
35
35
  %td= number_to_currency product.price
36
36
  %td
37
37
  - if product.stock_control?
38
- %span.float-right= link_to "Edit", stock_level_adjustments_path(:item_type => product.class, :item_id => product.id), :class => 'edit', :rel => 'dialog', :data => {:dialog_width => 700, :dialog_behavior => 'stockLevelAdjustments'}
39
- = boolean_tag(product.in_stock?, nil, :true_text => product.stock, :false_text => 'No stock')
38
+ %span.float-right= link_to t('shoppe.products.edit'), stock_level_adjustments_path(:item_type => product.class, :item_id => product.id), :class => 'edit', :rel => 'dialog', :data => {:dialog_width => 700, :dialog_behavior => 'stockLevelAdjustments'}
39
+ = boolean_tag(product.in_stock?, nil, :true_text => product.stock, :false_text => t('shoppe.products.no_stock'))
40
40
  - else
41
41
  &#8734;
42
-
42
+