mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-16 19:16:49 +00:00
Compare commits
135 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1abfe2ab8c | ||
|
|
b1fc15f242 | ||
|
|
fc7dd5d081 | ||
|
|
2aea612f10 | ||
|
|
147a74f005 | ||
|
|
514ad5d898 | ||
|
|
5822e60a66 | ||
|
|
ce2a7a510f | ||
|
|
394fb91dd5 | ||
|
|
1640d5ad0b | ||
|
|
76fe1c7ee9 | ||
|
|
33ea2c0b07 | ||
|
|
f5a5d735fd | ||
|
|
6593dea4f6 | ||
|
|
3161fa3801 | ||
|
|
746fcd5802 | ||
|
|
9da33b4e82 | ||
|
|
e876ef7df1 | ||
|
|
e4c86df7b2 | ||
|
|
15945fa1e0 | ||
|
|
ad898848f8 | ||
|
|
236ba9328d | ||
|
|
ce56e667a4 | ||
|
|
b17d8c2fe3 | ||
|
|
b14f27f956 | ||
|
|
18f7ec992d | ||
|
|
46d2d6cb8a | ||
|
|
a2e4c33922 | ||
|
|
101269a487 | ||
|
|
61fbdfcefc | ||
|
|
2a942da160 | ||
|
|
bd97d08653 | ||
|
|
68ca352510 | ||
|
|
a71b650f89 | ||
|
|
f40bd9cfcb | ||
|
|
843bca9ea3 | ||
|
|
80da0d5330 | ||
|
|
5ec89dde42 | ||
|
|
213456f4d9 | ||
|
|
14ea591c7d | ||
|
|
28009afbea | ||
|
|
357ff5fb7d | ||
|
|
5f2e72e3d4 | ||
|
|
3b5c3f41a2 | ||
|
|
a83bdf16c9 | ||
|
|
f9dbf61afc | ||
|
|
15bd0de971 | ||
|
|
87329ad729 | ||
|
|
6731dd0b64 | ||
|
|
0519269a53 | ||
|
|
1357c7c3b5 | ||
|
|
0cbd967007 | ||
|
|
7fbaff71c7 | ||
|
|
9f6b3498bd | ||
|
|
0b9881b9d3 | ||
|
|
348364814d | ||
|
|
e8d8d5b0e6 | ||
|
|
dbf647f700 | ||
|
|
ef2b0b8383 | ||
|
|
f75b865be8 | ||
|
|
7670d01c6d | ||
|
|
61300a62c2 | ||
|
|
a3fa6db5a9 | ||
|
|
dae883c68d | ||
|
|
808f7b12c7 | ||
|
|
82c9cdd874 | ||
|
|
a257febc79 | ||
|
|
17b129ff4f | ||
|
|
6ce552727b | ||
|
|
dadc02fb11 | ||
|
|
bbd2427493 | ||
|
|
82457d2b63 | ||
|
|
9e14186431 | ||
|
|
d422283b76 | ||
|
|
13115d4a2d | ||
|
|
1005c299a2 | ||
|
|
3788ec590f | ||
|
|
7dd23d20c8 | ||
|
|
231dd7b6a2 | ||
|
|
8a783bbb7d | ||
|
|
9375318c4b | ||
|
|
dc76b3922b | ||
|
|
40506685ef | ||
|
|
f5ad950bc3 | ||
|
|
ba37db7ccc | ||
|
|
401052be68 | ||
|
|
330e7d71af | ||
|
|
94cc8bb980 | ||
|
|
2c588847df | ||
|
|
3c36d2d1a6 | ||
|
|
fa9d61c7fd | ||
|
|
92b5f9a313 | ||
|
|
9588138eb0 | ||
|
|
d8dd84e64e | ||
|
|
ae1831241b | ||
|
|
91f30d5427 | ||
|
|
3ce7bc54e3 | ||
|
|
28bb15f4a9 | ||
|
|
e0b12b1332 | ||
|
|
2ceecc3d6e | ||
|
|
03de6c690c | ||
|
|
977c8f6203 | ||
|
|
1600067383 | ||
|
|
3fad51d271 | ||
|
|
5f0075f8b7 | ||
|
|
716e952117 | ||
|
|
092122969c | ||
|
|
f27a624687 | ||
|
|
7afc999689 | ||
|
|
4fc66356cb | ||
|
|
a7f1ed660b | ||
|
|
9840467b8a | ||
|
|
fa68dd0bcc | ||
|
|
4d757dde78 | ||
|
|
f3f18d8338 | ||
|
|
128ca3b1ef | ||
|
|
b64327fbb3 | ||
|
|
5c6624e1d1 | ||
|
|
4953c69123 | ||
|
|
01dc51c84b | ||
|
|
64063f305b | ||
|
|
db61a2bb17 | ||
|
|
8017921e89 | ||
|
|
3743cf1bc3 | ||
|
|
7a34c6e3f0 | ||
|
|
fdc14ab44e | ||
|
|
8a11dc3c33 | ||
|
|
23deb37876 | ||
|
|
526317c373 | ||
|
|
7d27d1325e | ||
|
|
24dca5e51f | ||
|
|
689aed7080 | ||
|
|
6c92fdf167 | ||
|
|
aef73aef38 | ||
|
|
11eda94949 |
1
.gitignore
vendored
1
.gitignore
vendored
@@ -41,3 +41,4 @@ coverage
|
||||
libpeerconnection.log
|
||||
/config/application.yml
|
||||
node_modules
|
||||
vendor/bundle/
|
||||
|
||||
@@ -84,22 +84,6 @@ Layout/AlignParameters:
|
||||
- 'spec/lib/open_food_network/user_balance_calculator_spec.rb'
|
||||
- 'spec/support/request/authentication_workflow.rb'
|
||||
|
||||
# Offense count: 8
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles, IndentOneStep, IndentationWidth.
|
||||
# SupportedStyles: case, end
|
||||
Layout/CaseIndentation:
|
||||
Exclude:
|
||||
- 'app/models/enterprise.rb'
|
||||
- 'app/models/product_importer.rb'
|
||||
|
||||
# Offense count: 3
|
||||
# Cop supports --auto-correct.
|
||||
Layout/ClosingParenthesisIndentation:
|
||||
Exclude:
|
||||
- 'app/overrides/add_capture_order_shortcut.rb'
|
||||
- 'spec/serializers/variant_serializer_spec.rb'
|
||||
|
||||
# Offense count: 8
|
||||
# Cop supports --auto-correct.
|
||||
Layout/CommentIndentation:
|
||||
@@ -261,16 +245,6 @@ Layout/EmptyLines:
|
||||
- 'spec/support/delayed_job_helper.rb'
|
||||
- 'spec/support/matchers/table_matchers.rb'
|
||||
|
||||
# Offense count: 6
|
||||
# Cop supports --auto-correct.
|
||||
Layout/EmptyLinesAroundAccessModifier:
|
||||
Exclude:
|
||||
- 'app/controllers/admin/order_cycles_controller.rb'
|
||||
- 'app/controllers/spree/admin/shipping_methods_controller_decorator.rb'
|
||||
- 'app/helpers/angular_form_builder.rb'
|
||||
- 'spec/helpers/products_helper_spec.rb'
|
||||
- 'spec/support/request/web_helper.rb'
|
||||
|
||||
# Offense count: 66
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
@@ -362,44 +336,6 @@ Layout/EmptyLinesAroundClassBody:
|
||||
- 'lib/open_food_network/rack_request_blocker.rb'
|
||||
- 'lib/open_food_network/reports/bulk_coop_report.rb'
|
||||
|
||||
# Offense count: 7
|
||||
# Cop supports --auto-correct.
|
||||
Layout/EmptyLinesAroundExceptionHandlingKeywords:
|
||||
Exclude:
|
||||
- 'app/controllers/checkout_controller.rb'
|
||||
- 'app/controllers/enterprises_controller.rb'
|
||||
- 'app/controllers/shop_controller.rb'
|
||||
- 'app/models/spree/adjustment_decorator.rb'
|
||||
- 'app/models/spree/tax_rate_decorator.rb'
|
||||
- 'lib/tasks/users.rake'
|
||||
- 'spec/features/admin/overview_spec.rb'
|
||||
|
||||
# Offense count: 4
|
||||
# Cop supports --auto-correct.
|
||||
Layout/EmptyLinesAroundMethodBody:
|
||||
Exclude:
|
||||
- 'app/controllers/checkout_controller.rb'
|
||||
- 'app/controllers/spree/admin/reports_controller_decorator.rb'
|
||||
- 'app/serializers/api/product_serializer.rb'
|
||||
- 'lib/open_food_network/orders_and_fulfillments_report.rb'
|
||||
|
||||
# Offense count: 11
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: empty_lines, empty_lines_except_namespace, empty_lines_special, no_empty_lines
|
||||
Layout/EmptyLinesAroundModuleBody:
|
||||
Exclude:
|
||||
- 'app/helpers/add_to_cart_helper.rb'
|
||||
- 'app/helpers/groups_helper.rb'
|
||||
- 'lib/open_food_network/column_preference_defaults.rb'
|
||||
- 'lib/open_food_network/group_buy_report.rb'
|
||||
- 'lib/open_food_network/order_cycle_form_applicator.rb'
|
||||
- 'lib/open_food_network/order_grouper.rb'
|
||||
- 'lib/open_food_network/variant_and_line_item_naming.rb'
|
||||
- 'spec/models/spree/ability_spec.rb'
|
||||
- 'spec/support/request/distribution_helper.rb'
|
||||
- 'spec/support/request/ui_component_helper.rb'
|
||||
|
||||
# Offense count: 55
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: AllowForAlignment, ForceEqualSignAlignment.
|
||||
@@ -443,15 +379,6 @@ Layout/ExtraSpacing:
|
||||
- 'spec/spec_helper.rb'
|
||||
- 'spec/support/request/web_helper.rb'
|
||||
|
||||
# Offense count: 2
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth.
|
||||
# SupportedStyles: consistent, special_for_inner_method_call, special_for_inner_method_call_in_parentheses
|
||||
Layout/FirstParameterIndentation:
|
||||
Exclude:
|
||||
- 'lib/open_food_network/permissions.rb'
|
||||
- 'spec/serializers/variant_serializer_spec.rb'
|
||||
|
||||
# Offense count: 3
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: SupportedStyles, IndentationWidth.
|
||||
@@ -459,13 +386,6 @@ Layout/FirstParameterIndentation:
|
||||
Layout/IndentArray:
|
||||
EnforcedStyle: consistent
|
||||
|
||||
# Offense count: 2
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: IndentationWidth.
|
||||
Layout/IndentAssignment:
|
||||
Exclude:
|
||||
- 'app/controllers/spree/admin/reports_controller_decorator.rb'
|
||||
|
||||
# Offense count: 52
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth.
|
||||
@@ -489,14 +409,6 @@ Layout/IndentHash:
|
||||
- 'spec/lib/open_food_network/order_cycle_form_applicator_spec.rb'
|
||||
- 'spec/support/request/authentication_workflow.rb'
|
||||
|
||||
# Offense count: 1
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: auto_detection, squiggly, active_support, powerpack, unindent
|
||||
Layout/IndentHeredoc:
|
||||
Exclude:
|
||||
- 'app/models/content_configuration.rb'
|
||||
|
||||
# Offense count: 21
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
@@ -566,19 +478,6 @@ Layout/LeadingCommentSpace:
|
||||
- 'spec/support/matchers/select2_matchers.rb'
|
||||
- 'spec/support/request/authentication_workflow.rb'
|
||||
|
||||
# Offense count: 10
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: symmetrical, new_line, same_line
|
||||
Layout/MultilineArrayBraceLayout:
|
||||
Exclude:
|
||||
- 'lib/open_food_network/customers_report.rb'
|
||||
- 'lib/open_food_network/order_cycle_management_report.rb'
|
||||
- 'lib/open_food_network/orders_and_fulfillments_report.rb'
|
||||
- 'lib/open_food_network/packing_report.rb'
|
||||
- 'lib/open_food_network/xero_invoices_report.rb'
|
||||
- 'spec/archive/features/consumer/checkout_spec.rb'
|
||||
|
||||
# Offense count: 44
|
||||
# Cop supports --auto-correct.
|
||||
Layout/MultilineBlockLayout:
|
||||
|
||||
12
Gemfile.lock
12
Gemfile.lock
@@ -253,11 +253,11 @@ GEM
|
||||
fog (~> 1.0)
|
||||
rails (~> 3.0)
|
||||
debugger-linecache (1.2.0)
|
||||
delayed_job (4.0.4)
|
||||
activesupport (>= 3.0, < 4.2)
|
||||
delayed_job_active_record (4.0.2)
|
||||
activerecord (>= 3.0, < 4.2)
|
||||
delayed_job (>= 3.0, < 4.1)
|
||||
delayed_job (4.1.4)
|
||||
activesupport (>= 3.0, < 5.2)
|
||||
delayed_job_active_record (4.1.2)
|
||||
activerecord (>= 3.0, < 5.2)
|
||||
delayed_job (>= 3.0, < 5)
|
||||
devise (2.2.8)
|
||||
bcrypt-ruby (~> 3.0)
|
||||
orm_adapter (~> 0.1)
|
||||
@@ -640,7 +640,7 @@ GEM
|
||||
shellany (0.0.1)
|
||||
shoulda-matchers (2.8.0)
|
||||
activesupport (>= 3.0.0)
|
||||
skylight (1.5.0)
|
||||
skylight (1.6.1)
|
||||
activesupport (>= 3.0.0)
|
||||
spinjs-rails (1.3)
|
||||
rails (>= 3.1)
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
[](https://travis-ci.org/openfoodfoundation/openfoodnetwork)
|
||||
[](https://codeclimate.com/github/openfoodfoundation/openfoodnetwork)
|
||||
[](https://oss.skylight.io/app/applications/EiXQ6sSKij8y)
|
||||
|
||||
# Open Food Network
|
||||
|
||||
|
||||
@@ -1,3 +1,14 @@
|
||||
angular.module("ofn.admin", ["ngResource", "ngAnimate", "admin.utils", "admin.indexUtils", "admin.dropdown", "admin.products", "admin.taxons", "infinite-scroll"]).config ($httpProvider) ->
|
||||
angular.module("ofn.admin", [
|
||||
"ngResource",
|
||||
"mm.foundation",
|
||||
"angularFileUpload",
|
||||
"ngAnimate",
|
||||
"admin.utils",
|
||||
"admin.indexUtils",
|
||||
"admin.dropdown",
|
||||
"admin.products",
|
||||
"admin.taxons",
|
||||
"infinite-scroll"
|
||||
]).config ($httpProvider) ->
|
||||
$httpProvider.defaults.headers.common["X-CSRF-Token"] = $("meta[name=csrf-token]").attr("content")
|
||||
$httpProvider.defaults.headers.common["Accept"] = "application/json, text/javascript, */*"
|
||||
|
||||
@@ -51,7 +51,6 @@
|
||||
//= require textAngular.min.js
|
||||
//= require i18n/translations
|
||||
//= require darkswarm/i18n.translate.js
|
||||
//
|
||||
//= require moment
|
||||
//= require moment/en-gb.js
|
||||
//= require moment/es.js
|
||||
@@ -60,5 +59,7 @@
|
||||
//= require moment/nb.js
|
||||
//= require moment/pt-br.js
|
||||
//= require moment/sv.js
|
||||
//= require ../shared/mm-foundation-tpls-0.8.0.min.js
|
||||
//= require angularjs-file-upload
|
||||
|
||||
//= require_tree .
|
||||
|
||||
@@ -12,7 +12,7 @@ angular.module("admin.customers").controller "customersCtrl", ($scope, $q, $filt
|
||||
|
||||
$scope.$watch "shop_id", ->
|
||||
if $scope.shop_id?
|
||||
CurrentShop.shop = $filter('filter')($scope.shops, {id: $scope.shop_id})[0]
|
||||
CurrentShop.shop = $filter('filter')($scope.shops, {id: parseInt($scope.shop_id)}, true)[0]
|
||||
Customers.index({enterprise_id: $scope.shop_id}).then (data) ->
|
||||
pendingChanges.removeAll()
|
||||
$scope.customers_form.$setPristine()
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
angular.module("admin.enterprises")
|
||||
.controller "enterpriseCtrl", ($scope, $window, NavigationCheck, enterprise, EnterprisePaymentMethods, EnterpriseShippingMethods, SideMenu, StatusMessage) ->
|
||||
.controller "enterpriseCtrl", ($scope, $http, $window, NavigationCheck, enterprise, EnterprisePaymentMethods, EnterpriseShippingMethods, SideMenu, StatusMessage) ->
|
||||
$scope.Enterprise = enterprise
|
||||
$scope.PaymentMethods = EnterprisePaymentMethods.paymentMethods
|
||||
$scope.ShippingMethods = EnterpriseShippingMethods.shippingMethods
|
||||
$scope.navClear = NavigationCheck.clear
|
||||
$scope.menu = SideMenu
|
||||
$scope.newManager = { id: '', email: (t('add_manager')) }
|
||||
$scope.newManager = { id: null, email: (t('add_manager')) }
|
||||
$scope.StatusMessage = StatusMessage
|
||||
|
||||
$scope.$watch 'enterprise_form.$dirty', (newValue) ->
|
||||
@@ -26,7 +26,7 @@ angular.module("admin.enterprises")
|
||||
# from a directive "nav-check" in the page - if we pass it here it will be called in the test suite,
|
||||
# and on all new uses of this contoller, and we might not want that.
|
||||
enterpriseNavCallback = ->
|
||||
if $scope.enterprise_form.$dirty
|
||||
if $scope.enterprise_form != undefined && $scope.enterprise_form.$dirty
|
||||
t('admin.unsaved_confirm_leave')
|
||||
|
||||
# Register the NavigationCheck callback
|
||||
@@ -38,16 +38,29 @@ angular.module("admin.enterprises")
|
||||
return
|
||||
for i, user of $scope.Enterprise.users when user.id == manager.id
|
||||
$scope.Enterprise.users.splice i, 1
|
||||
if $scope.enterprise_form?
|
||||
$scope.enterprise_form.$setDirty()
|
||||
$scope.enterprise_form?.$setDirty()
|
||||
|
||||
$scope.addManager = (manager) ->
|
||||
if manager.id? and manager.email?
|
||||
if manager.id? and angular.isNumber(manager.id) and manager.email?
|
||||
manager =
|
||||
id: manager.id
|
||||
email: manager.email
|
||||
confirmed: manager.confirmed
|
||||
if (user for user in $scope.Enterprise.users when user.id == manager.id).length == 0
|
||||
$scope.Enterprise.users.push manager
|
||||
$scope.enterprise_form?.$setDirty()
|
||||
else
|
||||
alert ("#{manager.email}" + " " + t("is_already_manager"))
|
||||
|
||||
$scope.inviteManager = ->
|
||||
$scope.invite_errors = $scope.invite_success = null
|
||||
email = $scope.newUser
|
||||
|
||||
$http.post("/admin/manager_invitations", {email: email, enterprise_id: $scope.Enterprise.id}).success (data)->
|
||||
$scope.addManager({id: data.user, email: email})
|
||||
$scope.invite_success = t('user_invited', email: email)
|
||||
.error (data) ->
|
||||
$scope.invite_errors = data.errors
|
||||
|
||||
$scope.resetModal = ->
|
||||
$scope.newUser = $scope.invite_errors = $scope.invite_success = null
|
||||
|
||||
@@ -31,6 +31,13 @@ angular.module("admin.orderCycles").directive 'scheduleDialog', ($window, $compi
|
||||
if confirm(t('are_you_sure'))
|
||||
Schedules.remove(scope.schedule).$promise.then (data) ->
|
||||
scope.close()
|
||||
, (response) ->
|
||||
errors = response.data.errors
|
||||
if errors?
|
||||
scope.errors.push errors[0]
|
||||
else
|
||||
scope.errors.push "Could not delete schedule: #{scope.schedule.name}"
|
||||
|
||||
|
||||
scope.loadMore = ->
|
||||
scope.showMore().then ->
|
||||
|
||||
@@ -151,23 +151,28 @@ angular.module('admin.orderCycles').factory 'OrderCycle', ($resource, $window, S
|
||||
return unless @confirmNoDistributors()
|
||||
oc = new OrderCycleResource({order_cycle: this.dataForSubmit()})
|
||||
oc.$create (data) ->
|
||||
if data['success']
|
||||
$window.location = destination
|
||||
$window.location = destination
|
||||
, (response) ->
|
||||
if response.data.errors?
|
||||
StatusMessage.display('failure', response.data.errors[0])
|
||||
else
|
||||
console.log('Failed to create order cycle')
|
||||
StatusMessage.display('failure', 'Failed to create order cycle')
|
||||
|
||||
update: (destination, form) ->
|
||||
return unless @confirmNoDistributors()
|
||||
oc = new OrderCycleResource({order_cycle: this.dataForSubmit()})
|
||||
oc.$update {order_cycle_id: this.order_cycle.id, reloading: (if destination? then 1 else 0)}, (data) =>
|
||||
if data['success']
|
||||
form.$setPristine() if form
|
||||
if destination?
|
||||
$window.location = destination
|
||||
else
|
||||
StatusMessage.display 'success', t('js.order_cycles.update_success')
|
||||
form.$setPristine() if form
|
||||
if destination?
|
||||
$window.location = destination
|
||||
else
|
||||
console.log('Failed to update order cycle')
|
||||
StatusMessage.display 'success', t('js.order_cycles.update_success')
|
||||
, (response) ->
|
||||
if response.data.errors?
|
||||
StatusMessage.display('failure', response.data.errors[0])
|
||||
else
|
||||
StatusMessage.display('failure', 'Failed to create order cycle')
|
||||
|
||||
|
||||
confirmNoDistributors: ->
|
||||
if @order_cycle.outgoing_exchanges.length == 0
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
angular.module("ofn.admin").controller "ProductImageCtrl", ($scope, ProductImageService) ->
|
||||
$scope.imageUploader = ProductImageService.imageUploader
|
||||
$scope.imagePreview = ProductImageService.imagePreview
|
||||
|
||||
$scope.$watch 'product.image_url', (newValue) ->
|
||||
$scope.imagePreview = newValue if newValue
|
||||
@@ -0,0 +1,6 @@
|
||||
angular.module("ofn.admin").directive "imageModal", ($modal, ProductImageService) ->
|
||||
restrict: 'C'
|
||||
link: (scope, elem, attrs, ctrl) ->
|
||||
elem.on "click", (ev) =>
|
||||
scope.uploadModal = $modal.open(templateUrl: 'admin/modals/image_upload.html', controller: ctrl, scope: scope, windowClass: 'product-image-upload')
|
||||
ProductImageService.configure(scope.product)
|
||||
@@ -0,0 +1,15 @@
|
||||
angular.module("ofn.admin").factory "ProductImageService", (FileUploader, SpreeApiKey) ->
|
||||
new class ProductImageService
|
||||
imagePreview: null
|
||||
|
||||
imageUploader: new FileUploader
|
||||
headers:
|
||||
'X-Spree-Token': SpreeApiKey
|
||||
autoUpload: true
|
||||
|
||||
configure: (product) =>
|
||||
@imageUploader.url = "/api/product_images/#{product.id}"
|
||||
@imagePreview = product.image_url
|
||||
@imageUploader.onSuccessItem = (image, response) =>
|
||||
product.thumb_url = response.thumb_url
|
||||
product.image_url = response.image_url
|
||||
@@ -45,7 +45,10 @@ angular.module("admin.resources").factory 'OrderCycles', ($q, $injector, OrderCy
|
||||
form.$setPristine() if form?
|
||||
StatusMessage.display('success', "Order cycles have been updated.")
|
||||
, (response) =>
|
||||
StatusMessage.display('failure', "Oh no! I was unable to save your changes.")
|
||||
if response.data.errors?
|
||||
StatusMessage.display('failure', response.data.errors[0])
|
||||
else
|
||||
StatusMessage.display('failure', "Oh no! I was unable to save your changes.")
|
||||
|
||||
saved: (order_cycle) ->
|
||||
@diff(order_cycle).length == 0
|
||||
|
||||
@@ -39,12 +39,6 @@ angular.module("admin.resources").factory "Schedules", ($q, $injector, RequestMo
|
||||
orderCycle.schedules.splice(i, 1) for s, i in orderCycle.schedules by -1 when s.id == schedule.id
|
||||
delete @byID[schedule.id]
|
||||
StatusMessage.display 'success', "#{t('admin.order_cycles.index.deleted_schedule')}: '#{schedule.name}'"
|
||||
, (response) =>
|
||||
errors = response.data.errors
|
||||
if errors?
|
||||
InfoDialog.open 'error', errors[0]
|
||||
else
|
||||
InfoDialog.open 'error', "Could not delete schedule: #{schedule.name}"
|
||||
|
||||
index: ->
|
||||
request = ScheduleResource.index (data) => @load(data)
|
||||
|
||||
@@ -12,7 +12,7 @@ angular.module("admin.utils").directive "variantAutocomplete", ($timeout) ->
|
||||
if Spree.routes
|
||||
element.parent().children(".options_placeholder").attr "id", element.parent().data("index")
|
||||
element.select2
|
||||
placeholder: "Select a variant"
|
||||
placeholder: t('admin.orders.select_variant')
|
||||
minimumInputLength: 3
|
||||
quietMillis: 300
|
||||
ajax:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
window.Darkswarm = angular.module("Darkswarm", ["ngResource",
|
||||
window.Darkswarm = angular.module("Darkswarm", [
|
||||
'ngResource',
|
||||
'mm.foundation',
|
||||
'LocalStorageModule',
|
||||
'infinite-scroll',
|
||||
@@ -10,7 +11,7 @@ window.Darkswarm = angular.module("Darkswarm", ["ngResource",
|
||||
'duScroll',
|
||||
'angularFileUpload',
|
||||
'angularSlideables'
|
||||
]).config ($httpProvider, $tooltipProvider, $locationProvider, $anchorScrollProvider) ->
|
||||
]).config ($httpProvider, $tooltipProvider, $locationProvider, $anchorScrollProvider) ->
|
||||
$httpProvider.defaults.headers['common']['X-CSRF-Token'] = $('meta[name="csrf-token"]').attr('content')
|
||||
$httpProvider.defaults.headers['common']['X-Requested-With'] = 'XMLHttpRequest'
|
||||
$httpProvider.defaults.headers.common.Accept = "application/json, text/javascript, */*"
|
||||
|
||||
@@ -4,5 +4,5 @@ Darkswarm.filter 'products', (Matcher) ->
|
||||
text ?= ""
|
||||
return products if text == ""
|
||||
products.filter (product) =>
|
||||
propertiesToMatch = [product.name, product.variant_names, product.supplier.name, product.primary_taxon.name]
|
||||
propertiesToMatch = [product.name, product.variant_names, product.supplier.name, product.primary_taxon.name, product.meta_keywords]
|
||||
Matcher.matchBeginning propertiesToMatch, text
|
||||
|
||||
@@ -17,11 +17,11 @@ Darkswarm.factory 'Variants', ->
|
||||
|
||||
extendedVariantName: (variant) =>
|
||||
if variant.product_name == variant.name_to_display
|
||||
variant.product_name
|
||||
name = variant.product_name
|
||||
else
|
||||
name = "#{variant.product_name} - #{variant.name_to_display}"
|
||||
name += " (#{variant.options_text})" if variant.options_text
|
||||
name
|
||||
name += " (#{variant.options_text})" if variant.options_text
|
||||
name
|
||||
|
||||
lineItemFor: (variant) ->
|
||||
variant: variant
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
%a.close-reveal-modal{"ng-click" => "$close()"}
|
||||
%i.fa.fa-times-circle{'aria-hidden' => "true"}
|
||||
|
||||
%form#image_upload{ name: 'form', novalidate: true, enctype: 'multipart/form-data', multipart: true, ng: { controller: "ProductImageCtrl" } }
|
||||
%div.image-preview
|
||||
%img.spinner{ src: "/assets/spinning-circles.svg", ng: { hide: "!imageUploader.isUploading" }}
|
||||
%img.preview{ng: {src: "{{imagePreview}}", class: "{'faded': imageUploader.isUploading}"}}
|
||||
|
||||
%label{for: 'image-upload', class: 'button'} #{t('admin.products.bulk_edit.upload_an_image')}
|
||||
%input#image-upload{hidden: true, type: 'file', 'nv-file-select' => true, uploader: "imageUploader"}
|
||||
@@ -0,0 +1,19 @@
|
||||
#invite-manager-modal{ng: {app: 'admin.enterprises', controller: 'enterpriseCtrl'}}
|
||||
|
||||
.margin-bottom-30.text-center
|
||||
.text-big
|
||||
= t('js.admin.modals.invite_title')
|
||||
|
||||
%p.alert-box.ok{ng: {show: 'invite_success'}}
|
||||
{{invite_success}}
|
||||
|
||||
%p.alert-box.error{ng: {show: 'invite_errors'}}
|
||||
{{invite_errors}}
|
||||
|
||||
%input#invite_email.fullwidth.margin-bottom-20{ng: {model: 'newUser'}}
|
||||
|
||||
.margin-bottom-20.text-center
|
||||
%button.text-center.margin-top-10{ng: {show: '!invite_success', click: 'inviteManager()'}}
|
||||
= t('js.admin.modals.invite')
|
||||
%button.text-center.margin-top-10{ng: {show: 'invite_success', click: 'resetModal(); close()'}}
|
||||
= t('js.admin.modals.close')
|
||||
198
app/assets/stylesheets/admin/modals.css.scss
Normal file
198
app/assets/stylesheets/admin/modals.css.scss
Normal file
@@ -0,0 +1,198 @@
|
||||
.reveal-modal-bg {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background: black;
|
||||
z-index: 1004;
|
||||
display: none;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.reveal-modal, dialog {
|
||||
visibility: hidden;
|
||||
display: none;
|
||||
position: absolute;
|
||||
z-index: 1005;
|
||||
width: 100vw;
|
||||
top: 0;
|
||||
border-radius: 0.4em;
|
||||
border: 0px none;
|
||||
left: 0;
|
||||
background-color: white;
|
||||
padding: 1.25rem;
|
||||
box-shadow: 0 0 10px rgba(0, 0, 0, 0.4);
|
||||
padding: 1.875rem;
|
||||
}
|
||||
|
||||
.reveal-modal .column, dialog .column, .reveal-modal .columns, dialog .columns {
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.reveal-modal > :first-child, dialog > :first-child {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.reveal-modal > :last-child, dialog > :last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 40.063em) {
|
||||
.reveal-modal, dialog {
|
||||
width: 80%;
|
||||
max-width: 62.5rem;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
|
||||
.reveal-modal.radius, dialog.radius {
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
.reveal-modal.round, dialog.round {
|
||||
border-radius: 1000px;
|
||||
}
|
||||
|
||||
.reveal-modal.collapse, dialog.collapse {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.reveal-modal.full, dialog.full {
|
||||
top: 0;
|
||||
left: 0;
|
||||
height: 100%;
|
||||
height: 100vh;
|
||||
min-height: 100vh;
|
||||
max-width: none !important;
|
||||
margin-left: 0 !important;
|
||||
}
|
||||
|
||||
.reveal-modal .close-reveal-modal, dialog .close-reveal-modal {
|
||||
font-size: 2.5rem;
|
||||
line-height: 1;
|
||||
position: absolute;
|
||||
top: 0.625rem;
|
||||
right: 1.375rem;
|
||||
color: #aaaaaa;
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
dialog::backdrop, dialog + .backdrop {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
background: black;
|
||||
background: rgba(0, 0, 0, 0.45);
|
||||
z-index: auto;
|
||||
display: none;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
dialog[open] {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@media print {
|
||||
dialog, .reveal-modal, dialog {
|
||||
display: none;
|
||||
background: white !important;
|
||||
}
|
||||
}
|
||||
|
||||
// ANIMATION CLASSES
|
||||
|
||||
.fade {
|
||||
opacity: 0;
|
||||
-webkit-transition: opacity 0.15s linear;
|
||||
transition: opacity 0.15s linear;
|
||||
}
|
||||
|
||||
.fade.in {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
.reveal-modal.fade {
|
||||
-webkit-transition: -webkit-transform 0.2s ease-out;
|
||||
-moz-transition: -moz-transform 0.2s ease-out;
|
||||
-o-transition: -o-transform 0.2s ease-out;
|
||||
transition: transform 0.2s ease-out;
|
||||
-webkit-transform: translate(0, -25%);
|
||||
-ms-transform: translate(0, -25%);
|
||||
transform: translate(0, -25%);
|
||||
}
|
||||
|
||||
.reveal-modal.in {
|
||||
-webkit-transform: translate(0, 0);
|
||||
-ms-transform: translate(0, 0);
|
||||
transform: translate(0, 0);
|
||||
}
|
||||
|
||||
.reveal-modal-bg.fade {
|
||||
filter: alpha(opacity = 0);
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
.reveal-modal-bg.in {
|
||||
filter: alpha(opacity = 50);
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 40em) {
|
||||
.reveal-modal, dialog {
|
||||
min-height: 100vh;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 40.063em) {
|
||||
.reveal-modal, dialog {
|
||||
top: 6.25rem;
|
||||
}
|
||||
.reveal-modal.tiny, dialog.tiny {
|
||||
width: 30%;
|
||||
max-width: 62.5rem;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.reveal-modal.small, dialog.small {
|
||||
width: 40%;
|
||||
max-width: 62.5rem;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.reveal-modal.medium, dialog.medium {
|
||||
width: 60%;
|
||||
max-width: 62.5rem;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.reveal-modal.large, dialog.large {
|
||||
width: 70%;
|
||||
max-width: 62.5rem;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.reveal-modal.xlarge, dialog.xlarge {
|
||||
width: 95%;
|
||||
max-width: 62.5rem;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: 0 auto;
|
||||
}
|
||||
.reveal-modal.full, dialog.full {
|
||||
width: 100vw;
|
||||
max-width: 62.5rem;
|
||||
left: 0;
|
||||
right: 0;
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,7 @@
|
||||
input[type="submit"], input[type="button"], button, .button {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.text-center {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@@ -33,6 +33,9 @@ table#listing_products.bulk {
|
||||
margin-bottom: 60px;
|
||||
|
||||
colgroup col {
|
||||
&.image {
|
||||
width: 1%;
|
||||
}
|
||||
&.producer {
|
||||
width: 18%;
|
||||
}
|
||||
@@ -62,6 +65,21 @@ table#listing_products.bulk {
|
||||
}
|
||||
}
|
||||
|
||||
td.image {
|
||||
padding: 10px;
|
||||
text-align: center;
|
||||
img {
|
||||
border: 1px solid transparent;
|
||||
border-radius: 0.4em;
|
||||
}
|
||||
img:hover {
|
||||
opacity: 0.8;
|
||||
cursor: pointer;
|
||||
background-color: #fbfbfb;
|
||||
border: 1px solid #e4e4e4;
|
||||
}
|
||||
}
|
||||
|
||||
td.unit {
|
||||
input, select {
|
||||
width: 100%;
|
||||
@@ -77,3 +95,46 @@ table#listing_products.bulk {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.reveal-modal.product-image-upload {
|
||||
width: 300px;
|
||||
a.close-reveal-modal {
|
||||
font-size: 23px;
|
||||
color: #de6060;
|
||||
right: 0.45rem;
|
||||
top: 0.35rem;
|
||||
:hover {
|
||||
color: #bf4545;
|
||||
}
|
||||
}
|
||||
div.image-preview {
|
||||
//float: left;
|
||||
}
|
||||
label {
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
form#image_upload {
|
||||
text-align: center;
|
||||
.spinner {
|
||||
width: 160px;
|
||||
height: 65%;
|
||||
position: absolute;
|
||||
//background-color: rgba(255, 255, 255, 0.75);
|
||||
padding: 32px;
|
||||
margin: 0px -80px;
|
||||
left: 50%;
|
||||
z-index: 100;
|
||||
}
|
||||
.preview {
|
||||
width: 240px;
|
||||
}
|
||||
.faded {
|
||||
opacity: 0.25;
|
||||
}
|
||||
.button:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -133,8 +133,6 @@
|
||||
font-size: 0.875rem;
|
||||
margin-bottom: 0.75rem;
|
||||
|
||||
5rem {}
|
||||
|
||||
color: $dark-grey;
|
||||
}
|
||||
|
||||
|
||||
39
app/controllers/admin/manager_invitations_controller.rb
Normal file
39
app/controllers/admin/manager_invitations_controller.rb
Normal file
@@ -0,0 +1,39 @@
|
||||
module Admin
|
||||
class ManagerInvitationsController < Spree::Admin::BaseController
|
||||
def create
|
||||
@email = params[:email]
|
||||
@enterprise = Enterprise.find(params[:enterprise_id])
|
||||
|
||||
authorize! :edit, @enterprise
|
||||
|
||||
existing_user = Spree::User.find_by_email(@email)
|
||||
|
||||
if existing_user
|
||||
render json: { errors: t('admin.enterprises.invite_manager.user_already_exists') }, status: :unprocessable_entity
|
||||
return
|
||||
end
|
||||
|
||||
new_user = create_new_manager
|
||||
|
||||
if new_user
|
||||
render json: { user: new_user.id }, status: :ok
|
||||
else
|
||||
render json: { errors: t('admin.enterprises.invite_manager.error') }, status: 500
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def create_new_manager
|
||||
password = Devise.friendly_token
|
||||
new_user = Spree::User.create(email: @email, unconfirmed_email: @email, password: password)
|
||||
new_user.reset_password_token = Devise.friendly_token
|
||||
new_user.save!
|
||||
|
||||
@enterprise.users << new_user
|
||||
Delayed::Job.enqueue ManagerInvitationJob.new(@enterprise.id, new_user.id)
|
||||
|
||||
new_user
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -9,8 +9,8 @@ module Admin
|
||||
prepend_before_filter :load_data_for_index, :only => :index
|
||||
before_filter :require_coordinator, only: :new
|
||||
before_filter :remove_protected_attrs, only: [:update]
|
||||
before_filter :remove_unauthorized_bulk_attrs, only: [:bulk_update]
|
||||
before_filter :check_editable_schedule_ids, only: [:create, :update]
|
||||
before_filter :require_order_cycle_set_params, only: [:bulk_update]
|
||||
around_filter :protect_invalid_destroy, only: :destroy
|
||||
create.after :sync_subscriptions
|
||||
update.after :sync_subscriptions
|
||||
@@ -51,10 +51,10 @@ module Admin
|
||||
invoke_callbacks(:create, :after)
|
||||
flash[:notice] = I18n.t(:order_cycles_create_notice)
|
||||
format.html { redirect_to admin_order_cycles_path }
|
||||
format.json { render :json => {:success => true} }
|
||||
format.json { render :json => { success: true } }
|
||||
else
|
||||
format.html
|
||||
format.json { render :json => {:success => false} }
|
||||
format.json { render :json => { errors: @order_cycle.errors.full_messages }, status: :unprocessable_entity }
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -71,23 +71,22 @@ module Admin
|
||||
invoke_callbacks(:update, :after)
|
||||
flash[:notice] = I18n.t(:order_cycles_update_notice) if params[:reloading] == '1'
|
||||
format.html { redirect_to main_app.edit_admin_order_cycle_path(@order_cycle) }
|
||||
format.json { render :json => {:success => true} }
|
||||
format.json { render :json => { :success => true } }
|
||||
else
|
||||
format.json { render :json => {:success => false} }
|
||||
format.json { render :json => { errors: @order_cycle.errors.full_messages }, status: :unprocessable_entity }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def bulk_update
|
||||
@order_cycle_set = params[:order_cycle_set] && OrderCycleSet.new(params[:order_cycle_set])
|
||||
if @order_cycle_set.andand.save
|
||||
if order_cycle_set.andand.save
|
||||
respond_to do |format|
|
||||
order_cycles = OrderCycle.where(id: params[:order_cycle_set][:collection_attributes].map{ |k,v| v[:id] })
|
||||
format.json { render_as_json order_cycles, ams_prefix: 'index', current_user: spree_current_user }
|
||||
format.json { render_as_json @order_cycles, ams_prefix: 'index', current_user: spree_current_user }
|
||||
end
|
||||
else
|
||||
respond_to do |format|
|
||||
format.json { render :json => {:success => false} }
|
||||
order_cycle = order_cycle_set.collection.find{ |oc| oc.errors.present? }
|
||||
format.json { render :json => { errors: order_cycle.errors.full_messages }, status: :unprocessable_entity }
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -107,8 +106,10 @@ module Admin
|
||||
|
||||
|
||||
protected
|
||||
|
||||
def collection
|
||||
return Enterprise.where("1=0") unless json_request?
|
||||
return order_cycles_from_set if params[:order_cycle_set]
|
||||
ocs = if params[:as] == "distributor"
|
||||
OrderCycle.preload(:schedules).ransack(params[:q]).result.
|
||||
involving_managed_distributors_of(spree_current_user).order('updated_at DESC')
|
||||
@@ -119,9 +120,9 @@ module Admin
|
||||
OrderCycle.preload(:schedules).ransack(params[:q]).result.accessible_by(spree_current_user)
|
||||
end
|
||||
|
||||
ocs.undated +
|
||||
ocs.soonest_closing +
|
||||
ocs.soonest_opening +
|
||||
ocs.undated |
|
||||
ocs.soonest_closing |
|
||||
ocs.soonest_opening |
|
||||
ocs.closed
|
||||
end
|
||||
|
||||
@@ -130,6 +131,7 @@ module Admin
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def load_data_for_index
|
||||
if json_request?
|
||||
# Split ransack params into all those that currently exist and new ones to limit returned ocs to recent or undated
|
||||
@@ -183,12 +185,10 @@ module Admin
|
||||
end
|
||||
|
||||
def remove_unauthorized_bulk_attrs
|
||||
if params.key? :order_cycle_set
|
||||
params[:order_cycle_set][:collection_attributes].each do |i, hash|
|
||||
order_cycle = OrderCycle.find(hash[:id])
|
||||
unless Enterprise.managed_by(spree_current_user).include?(order_cycle.andand.coordinator)
|
||||
params[:order_cycle_set][:collection_attributes].delete i
|
||||
end
|
||||
params[:order_cycle_set][:collection_attributes].each do |i, hash|
|
||||
order_cycle = OrderCycle.find(hash[:id])
|
||||
unless Enterprise.managed_by(spree_current_user).include?(order_cycle.andand.coordinator)
|
||||
params[:order_cycle_set][:collection_attributes].delete i
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -216,6 +216,20 @@ module Admin
|
||||
end
|
||||
end
|
||||
|
||||
def order_cycles_from_set
|
||||
remove_unauthorized_bulk_attrs
|
||||
OrderCycle.where(id: params[:order_cycle_set][:collection_attributes].map{ |k,v| v[:id] })
|
||||
end
|
||||
|
||||
def order_cycle_set
|
||||
@order_cycle_set ||= OrderCycleSet.new(@order_cycles, params[:order_cycle_set])
|
||||
end
|
||||
|
||||
def require_order_cycle_set_params
|
||||
return if params[:order_cycle_set]
|
||||
render json: { errors: t('admin.order_cycles.bulk_update.no_data') }, status: :unprocessable_entity
|
||||
end
|
||||
|
||||
def ams_prefix_whitelist
|
||||
[:basic, :index]
|
||||
end
|
||||
|
||||
@@ -4,6 +4,7 @@ require 'open_food_network/proxy_order_syncer'
|
||||
module Admin
|
||||
class SchedulesController < ResourceController
|
||||
before_filter :check_editable_order_cycle_ids, only: [:create, :update]
|
||||
before_filter :check_dependent_subscriptions, only: [:destroy]
|
||||
create.after :sync_subscriptions
|
||||
update.after :sync_subscriptions
|
||||
|
||||
@@ -49,6 +50,11 @@ module Admin
|
||||
@object.order_cycle_ids = result
|
||||
end
|
||||
|
||||
def check_dependent_subscriptions
|
||||
return if Subscription.where(schedule_id: @schedule).empty?
|
||||
render json: { errors: [t('admin.schedules.destroy.associated_subscriptions_error')] }, status: :conflict
|
||||
end
|
||||
|
||||
def permissions
|
||||
return @permissions unless @permission.nil?
|
||||
@permissions = OpenFoodNetwork::Permissions.new(spree_current_user)
|
||||
|
||||
19
app/controllers/api/product_images_controller.rb
Normal file
19
app/controllers/api/product_images_controller.rb
Normal file
@@ -0,0 +1,19 @@
|
||||
module Api
|
||||
class ProductImagesController < Spree::Api::BaseController
|
||||
respond_to :json
|
||||
|
||||
def update_product_image
|
||||
@product = Spree::Product.find(params[:product_id])
|
||||
authorize! :update, @product
|
||||
|
||||
if @product.images.first.nil?
|
||||
@image = Spree::Image.create(attachment: params[:file], viewable_id: @product.master.id, viewable_type: 'Spree::Variant')
|
||||
respond_with(@image, status: 201)
|
||||
else
|
||||
@image = @product.images.first
|
||||
@image.update_attributes(attachment: params[:file])
|
||||
respond_with(@image, status: 200)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -84,7 +84,6 @@ class CheckoutController < Spree::CheckoutController
|
||||
customer_bill_address_id = @order.customer.bill_address.andand.id
|
||||
@order.customer.update_attributes(bill_address_attributes: new_bill_address.merge('id' => customer_bill_address_id))
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
def set_default_ship_address
|
||||
@@ -133,7 +132,6 @@ class CheckoutController < Spree::CheckoutController
|
||||
def advance_order_state(order)
|
||||
tries ||= 3
|
||||
order.next
|
||||
|
||||
rescue ActiveRecord::StaleObjectError
|
||||
retry unless (tries -= 1).zero?
|
||||
false
|
||||
|
||||
@@ -33,7 +33,6 @@ class EnterprisesController < BaseController
|
||||
begin
|
||||
Rails.application.routes.recognize_path( "/#{ params[:permalink].to_s }" )
|
||||
render text: params[:permalink], status: 409
|
||||
|
||||
rescue ActionController::RoutingError
|
||||
render text: params[:permalink], status: 200
|
||||
end
|
||||
|
||||
@@ -18,7 +18,6 @@ class ShopController < BaseController
|
||||
products_json = filter(renderer.products_json)
|
||||
|
||||
render json: products_json
|
||||
|
||||
rescue OpenFoodNetwork::CachedProductsRenderer::NoProducts
|
||||
render status: 404, json: ''
|
||||
end
|
||||
|
||||
@@ -222,7 +222,6 @@ Spree::Admin::ReportsController.class_eval do
|
||||
csv_file_name = "#{params[:report_type]}_#{timestamp}.csv"
|
||||
|
||||
render_report(@report.header, @table, params[:csv], csv_file_name)
|
||||
|
||||
end
|
||||
|
||||
def products_and_inventory
|
||||
@@ -320,9 +319,9 @@ Spree::Admin::ReportsController.class_eval do
|
||||
reports[:order_cycle_management][:description] =
|
||||
render_to_string(partial: 'order_cycle_management_description', layout: false, locals: {report_types: report_types[:order_cycle_management]}).html_safe
|
||||
reports[:packing][:description] =
|
||||
render_to_string(partial: 'packing_description', layout: false, locals: {report_types: report_types[:packing]}).html_safe
|
||||
render_to_string(partial: 'packing_description', layout: false, locals: {report_types: report_types[:packing]}).html_safe
|
||||
reports[:sales_tax][:description] =
|
||||
render_to_string(partial: 'sales_tax_description', layout: false, locals: {report_types: report_types[:sales_tax]}).html_safe
|
||||
render_to_string(partial: 'sales_tax_description', layout: false, locals: {report_types: report_types[:sales_tax]}).html_safe
|
||||
|
||||
# Return only reports the user is authorized to view.
|
||||
reports.select { |action| can? action, :report }
|
||||
|
||||
@@ -44,6 +44,7 @@ module Spree
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def load_hubs
|
||||
@hubs = Enterprise.managed_by(spree_current_user).is_distributor.sort_by!{ |d| [(@shipping_method.has_distributor? d) ? 0 : 1, d.name] }
|
||||
end
|
||||
|
||||
@@ -38,6 +38,10 @@ class UserConfirmationsController < DeviseController
|
||||
'not_confirmed'
|
||||
end
|
||||
|
||||
if resource.reset_password_token.present?
|
||||
return spree.edit_spree_user_password_path(reset_password_token: resource.reset_password_token)
|
||||
end
|
||||
|
||||
path = (session[:confirmation_return_url] || login_path).to_s
|
||||
path += path.include?('?') ? '&' : '?'
|
||||
path + "validation=#{result}"
|
||||
|
||||
@@ -18,5 +18,4 @@ module AddToCartHelper
|
||||
def available_order_cycles_for(order, product)
|
||||
DistributionChangeValidator.new(order).available_order_cycles_for(product)
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -36,6 +36,7 @@ class AngularFormBuilder < ActionView::Helpers::FormBuilder
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def angular_name(method)
|
||||
"#{@object_name}[#{@fields_for_record_name}_attributes][{{ $index }}][#{method}]"
|
||||
end
|
||||
|
||||
@@ -45,7 +45,7 @@ module CheckoutHelper
|
||||
|
||||
def display_checkout_taxes_hash(order)
|
||||
order.tax_adjustment_totals.each_with_object(Hash.new) do |(tax_rate, tax_amount), hash|
|
||||
hash[number_to_percentage(tax_rate * 100, :precision => 1)] = Spree::Money.new tax_amount, currency: order.currency
|
||||
hash[number_to_percentage(tax_rate.amount * 100, :precision => 1)] = Spree::Money.new tax_amount, currency: order.currency
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
module GroupsHelper
|
||||
|
||||
def link_to_service(baseurl, name, html_options = {})
|
||||
return if name.blank?
|
||||
html_options = html_options.merge target: '_blank'
|
||||
@@ -19,5 +18,4 @@ module GroupsHelper
|
||||
def strip_url(url)
|
||||
url.andand.sub(/^https?:\/\//i, '')
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
7
app/jobs/manager_invitation_job.rb
Normal file
7
app/jobs/manager_invitation_job.rb
Normal file
@@ -0,0 +1,7 @@
|
||||
ManagerInvitationJob = Struct.new(:enterprise_id, :user_id) do
|
||||
def perform
|
||||
enterprise = Enterprise.find enterprise_id
|
||||
user = Spree::User.find user_id
|
||||
EnterpriseMailer.manager_invitation(enterprise, user).deliver
|
||||
end
|
||||
end
|
||||
@@ -12,6 +12,18 @@ class EnterpriseMailer < Spree::BaseMailer
|
||||
:subject => subject)
|
||||
end
|
||||
|
||||
def manager_invitation(enterprise, user)
|
||||
@enterprise = enterprise
|
||||
@instance = Spree::Config[:site_name]
|
||||
@instance_email = from_address
|
||||
|
||||
subject = t('enterprise_mailer.invite_manager.subject', enterprise: @enterprise.name)
|
||||
|
||||
mail(to: user.email,
|
||||
from: from_address,
|
||||
subject: subject)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def find_enterprise(enterprise)
|
||||
|
||||
@@ -32,8 +32,8 @@ class ProducerMailer < Spree::BaseMailer
|
||||
|
||||
def line_items_from(order_cycle, producer)
|
||||
Spree::LineItem.
|
||||
joins(order: :order_cycle, variant: :product).
|
||||
where('order_cycles.id = ?', order_cycle).
|
||||
from_order_cycle(order_cycle).
|
||||
sorted_by_name_and_unit_value.
|
||||
merge(Spree::Product.in_supplier(producer)).
|
||||
merge(Spree::Order.by_state('complete'))
|
||||
end
|
||||
|
||||
@@ -7,8 +7,11 @@ Spree::BaseMailer.class_eval do
|
||||
|
||||
protected
|
||||
|
||||
# This method copies the one defined in Spree's mailers. It should be removed
|
||||
# once in Spree v2.0 and Spree's BaseMailer class lands in our codebase.
|
||||
# Then, we'll be able to rely on its #from_address.
|
||||
def from_address
|
||||
Spree::Config[:mails_from] || 'test@example.com'
|
||||
Spree::MailMethod.current.preferred_mails_from
|
||||
end
|
||||
|
||||
def roadie_options
|
||||
|
||||
@@ -44,12 +44,12 @@ class ContentConfiguration < Spree::Preferences::FileConfiguration
|
||||
preference :footer_pinterest_url, :string, default: ""
|
||||
preference :footer_email, :string, default: "hello@openfoodnetwork.org"
|
||||
preference :community_forum_url, :string, default: "http://community.openfoodnetwork.org"
|
||||
preference :footer_links_md, :text, default: <<-EOS
|
||||
[Newsletter sign-up](/)
|
||||
preference :footer_links_md, :text, default: <<-EOS.strip_heredoc
|
||||
[Newsletter sign-up](/)
|
||||
|
||||
[News](/)
|
||||
[News](/)
|
||||
|
||||
[Calendar](/)
|
||||
[Calendar](/)
|
||||
EOS
|
||||
|
||||
preference :footer_about_url, :string, default: "http://www.openfoodnetwork.org/ofn-local/open-food-network-australia/"
|
||||
|
||||
@@ -289,18 +289,18 @@ class Enterprise < ActiveRecord::Base
|
||||
|
||||
# Map backend cases to front end cases.
|
||||
case cat
|
||||
when "producer_sells_any"
|
||||
:producer_hub # Producer hub who sells own and others produce and supplies other hubs.
|
||||
when "producer_sells_own"
|
||||
:producer_shop # Producer with shopfront and supplies other hubs.
|
||||
when "producer_sells_none"
|
||||
:producer # Producer only supplies through others.
|
||||
when "non_producer_sells_any"
|
||||
:hub # Hub selling others products in order cycles.
|
||||
when "non_producer_sells_own"
|
||||
:hub # Wholesaler selling through own shopfront? Does this need a separate name? Should it exist?
|
||||
when "non_producer_sells_none"
|
||||
:hub_profile # Hub selling outside the system.
|
||||
when "producer_sells_any"
|
||||
:producer_hub # Producer hub who sells own and others produce and supplies other hubs.
|
||||
when "producer_sells_own"
|
||||
:producer_shop # Producer with shopfront and supplies other hubs.
|
||||
when "producer_sells_none"
|
||||
:producer # Producer only supplies through others.
|
||||
when "non_producer_sells_any"
|
||||
:hub # Hub selling others products in order cycles.
|
||||
when "non_producer_sells_own"
|
||||
:hub # Wholesaler selling through own shopfront? Does this need a separate name? Should it exist?
|
||||
when "non_producer_sells_none"
|
||||
:hub_profile # Hub selling outside the system.
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -19,7 +19,7 @@ class EnterpriseFee < ActiveRecord::Base
|
||||
attr_accessible :enterprise_id, :fee_type, :name, :tax_category_id, :calculator_type, :inherits_tax_category
|
||||
|
||||
FEE_TYPES = %w(packing transport admin sales fundraising)
|
||||
PER_ORDER_CALCULATORS = ['Spree::Calculator::FlatRate', 'Spree::Calculator::FlexiRate']
|
||||
PER_ORDER_CALCULATORS = ['Spree::Calculator::FlatRate', 'Spree::Calculator::FlexiRate', 'Spree::Calculator::PriceSack']
|
||||
|
||||
|
||||
validates_inclusion_of :fee_type, :in => FEE_TYPES
|
||||
|
||||
@@ -14,6 +14,7 @@ class OrderCycle < ActiveRecord::Base
|
||||
attr_accessor :incoming_exchanges, :outgoing_exchanges
|
||||
|
||||
validates_presence_of :name, :coordinator_id
|
||||
validate :orders_close_at_after_orders_open_at?
|
||||
|
||||
after_save :refresh_products_cache
|
||||
|
||||
@@ -272,4 +273,10 @@ class OrderCycle < ActiveRecord::Base
|
||||
distributed_variants.include?(product.master) &&
|
||||
(product.variants & distributed_variants).empty?
|
||||
end
|
||||
|
||||
def orders_close_at_after_orders_open_at?
|
||||
return if orders_open_at.blank? || orders_close_at.blank?
|
||||
return if orders_close_at > orders_open_at
|
||||
errors.add(:orders_close_at, :after_orders_open_at)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
class OrderCycleSet < ModelSet
|
||||
def initialize(attributes={})
|
||||
super(OrderCycle, OrderCycle.all, attributes)
|
||||
def initialize(collection, attributes={})
|
||||
super(OrderCycle, collection, attributes)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -364,12 +364,12 @@ class ProductImporter
|
||||
def assign_defaults(object, entry)
|
||||
@import_settings[entry['supplier_id'].to_s]['defaults'].each do |attribute, setting|
|
||||
case setting['mode']
|
||||
when 'overwrite_all'
|
||||
when 'overwrite_all'
|
||||
object.assign_attributes(attribute => setting['value'])
|
||||
when 'overwrite_empty'
|
||||
if object.send(attribute).blank? or (attribute == 'on_hand' and entry['on_hand_nil'])
|
||||
object.assign_attributes(attribute => setting['value'])
|
||||
when 'overwrite_empty'
|
||||
if object.send(attribute).blank? or (attribute == 'on_hand' and entry['on_hand_nil'])
|
||||
object.assign_attributes(attribute => setting['value'])
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -72,7 +72,6 @@ module Spree
|
||||
skip_callback :destroy, :after, :update_adjustable
|
||||
|
||||
result = yield
|
||||
|
||||
ensure
|
||||
set_callback :save, :after, :update_adjustable
|
||||
set_callback :destroy, :after, :update_adjustable
|
||||
|
||||
@@ -4,8 +4,6 @@ Spree::AppConfiguration.class_eval do
|
||||
# we can allow to be modified in the UI by adding appropriate form
|
||||
# elements to existing or new configuration pages.
|
||||
|
||||
preference :mails_from, :string, default: 'no-reply@example.com'
|
||||
|
||||
# Embedded Shopfronts
|
||||
preference :enable_embedded_shopfronts, :boolean, default: false
|
||||
preference :embedded_shopfronts_whitelist, :text, default: nil
|
||||
|
||||
@@ -5,5 +5,9 @@ module Spree
|
||||
extend Spree::LocalizedNumber
|
||||
|
||||
localize_number :preferred_amount
|
||||
|
||||
def self.description
|
||||
I18n.t(:flat_rate_per_order)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -7,16 +7,20 @@ module Spree
|
||||
localize_number :preferred_first_item,
|
||||
:preferred_additional_item
|
||||
|
||||
def self.description
|
||||
I18n.t(:flexible_rate)
|
||||
end
|
||||
|
||||
def compute(object)
|
||||
sum = 0
|
||||
max = self.preferred_max_items.to_i
|
||||
items_count = line_items_for(object).map(&:quantity).sum
|
||||
items_count.times do |i|
|
||||
# check max value to avoid divide by 0 errors
|
||||
if (max == 0 && i == 0) || (max > 0) && (i % max == 0)
|
||||
sum += self.preferred_first_item.to_f
|
||||
else
|
||||
sum += self.preferred_additional_item.to_f
|
||||
# check max value to avoid divide by 0 errors
|
||||
unless max == 0
|
||||
if items_count > max
|
||||
sum += (max - 1) * self.preferred_additional_item.to_f + self.preferred_first_item.to_f
|
||||
elsif items_count <= max
|
||||
sum += (items_count - 1) * self.preferred_additional_item.to_f + self.preferred_first_item.to_f
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -6,6 +6,10 @@ module Spree
|
||||
|
||||
localize_number :preferred_amount
|
||||
|
||||
def self.description
|
||||
I18n.t(:flat_rate_per_item)
|
||||
end
|
||||
|
||||
def compute(object=nil)
|
||||
return 0 if object.nil?
|
||||
self.preferred_amount * line_items_for(object).reduce(0) do |sum, value|
|
||||
|
||||
@@ -7,5 +7,22 @@ module Spree
|
||||
localize_number :preferred_minimal_amount,
|
||||
:preferred_normal_amount,
|
||||
:preferred_discount_amount
|
||||
|
||||
def self.description
|
||||
I18n.t(:price_sack)
|
||||
end
|
||||
|
||||
def compute(object)
|
||||
min = preferred_minimal_amount.to_i
|
||||
order_amount = line_items_for(object).map { |x| x.price * x.quantity }.sum
|
||||
|
||||
if order_amount < min
|
||||
cost = preferred_normal_amount.to_i
|
||||
elsif order_amount >= min
|
||||
cost = preferred_discount_amount.to_i
|
||||
end
|
||||
|
||||
cost
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -32,6 +32,15 @@ Spree::LineItem.class_eval do
|
||||
end
|
||||
}
|
||||
|
||||
# Find line items that are from order sorted by variant name and unit value
|
||||
scope :sorted_by_name_and_unit_value, joins(variant: :product).
|
||||
reorder('lower(spree_products.name) asc, lower(spree_variants.display_name) asc, spree_variants.unit_value asc')
|
||||
|
||||
scope :from_order_cycle, lambda { |order_cycle|
|
||||
joins(order: :order_cycle).
|
||||
where('order_cycles.id = ?', order_cycle)
|
||||
}
|
||||
|
||||
scope :supplied_by, lambda { |enterprise|
|
||||
joins(:product).
|
||||
where('spree_products.supplier_id = ?', enterprise)
|
||||
|
||||
@@ -276,12 +276,19 @@ Spree::Order.class_eval do
|
||||
tax_rates = adjustment.tax_rates
|
||||
tax_rates_hash = Hash[tax_rates.collect do |tax_rate|
|
||||
tax_amount = tax_rates.one? ? adjustment.included_tax : tax_rate.compute_tax(adjustment.amount)
|
||||
[tax_rate.amount, tax_amount]
|
||||
[tax_rate, tax_amount]
|
||||
end]
|
||||
hash.update(tax_rates_hash) { |_tax_rate, amount1, amount2| amount1 + amount2 }
|
||||
end
|
||||
end
|
||||
|
||||
def price_adjustment_totals
|
||||
Hash[tax_adjustment_totals.map do |tax_rate, tax_amount|
|
||||
[tax_rate.name,
|
||||
Spree::Money.new(tax_amount, currency: currency)]
|
||||
end]
|
||||
end
|
||||
|
||||
def has_taxes_included
|
||||
not line_items.with_tax.empty?
|
||||
end
|
||||
|
||||
@@ -61,7 +61,7 @@ Spree::ShippingMethod.class_eval do
|
||||
end
|
||||
|
||||
def adjustment_label
|
||||
'Shipping'
|
||||
I18n.t('shipping')
|
||||
end
|
||||
|
||||
# Checks whether the shipping method is of delivery type, meaning that it
|
||||
|
||||
@@ -51,7 +51,6 @@ module Spree
|
||||
calculator.calculable.included_in_price = true
|
||||
|
||||
result = yield
|
||||
|
||||
ensure
|
||||
self.included_in_price = old_included_in_price
|
||||
calculator.calculable.included_in_price = old_included_in_price
|
||||
|
||||
@@ -19,6 +19,7 @@ Spree.user_class.class_eval do
|
||||
accepts_nested_attributes_for :ship_address
|
||||
|
||||
attr_accessible :enterprise_ids, :enterprise_roles_attributes, :enterprise_limit, :locale, :bill_address_attributes, :ship_address_attributes
|
||||
after_create :associate_customers
|
||||
|
||||
validate :limit_owned_enterprises
|
||||
|
||||
@@ -64,6 +65,10 @@ Spree.user_class.class_eval do
|
||||
Delayed::Job.enqueue ConfirmSignupJob.new(id)
|
||||
end
|
||||
|
||||
def associate_customers
|
||||
self.customers = Customer.where(email: email)
|
||||
end
|
||||
|
||||
def can_own_more_enterprises?
|
||||
owned_enterprises(:reload).size < enterprise_limit
|
||||
end
|
||||
|
||||
@@ -34,7 +34,6 @@ Spree::Variant.class_eval do
|
||||
scope :with_order_cycles_inner, joins(exchanges: :order_cycle)
|
||||
|
||||
scope :not_deleted, where(deleted_at: nil)
|
||||
scope :in_stock, where('spree_variants.count_on_hand > 0 OR spree_variants.on_demand=?', true)
|
||||
scope :in_order_cycle, lambda { |order_cycle|
|
||||
with_order_cycles_inner.
|
||||
merge(Exchange.outgoing).
|
||||
|
||||
@@ -2,10 +2,10 @@ Deface::Override.new(:virtual_path => "spree/admin/orders/index",
|
||||
:name => "add_capture_order_shortcut",
|
||||
:insert_bottom => "[data-hook='admin_orders_index_row_actions']",
|
||||
:partial => 'spree/admin/orders/capture'
|
||||
)
|
||||
)
|
||||
# And align actions column (not spree standard, but looks better IMO)
|
||||
Deface::Override.new(:virtual_path => "spree/admin/orders/index",
|
||||
:name => "add_capture_order_shortcut_align",
|
||||
:set_attributes => "[data-hook='admin_orders_index_row_actions']",
|
||||
:attributes => {:class => "actions", :style => "text-align:left;"} #removes 'align-center' class
|
||||
)
|
||||
)
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/ insert_bottom "[data-hook='admin_product_tabs']"
|
||||
|
||||
- klass = current == 'SEO' ? 'active' : ''
|
||||
- klass = current == t(:Search) ? 'active' : ''
|
||||
%li{:class => klass}
|
||||
= link_to_with_icon 'icon-tasks', t('admin.products.seo'), seo_admin_product_url(@product)
|
||||
= link_to_with_icon 'icon-tasks', t(:Search), seo_admin_product_url(@product)
|
||||
|
||||
@@ -1,13 +1,21 @@
|
||||
class Api::Admin::ProductSerializer < ActiveModel::Serializer
|
||||
attributes :id, :name, :sku, :variant_unit, :variant_unit_scale, :variant_unit_name, :on_demand, :inherits_properties
|
||||
|
||||
attributes :on_hand, :price, :available_on, :permalink_live, :tax_category_id
|
||||
attributes :on_hand, :price, :available_on, :permalink_live, :tax_category_id, :image_url, :thumb_url
|
||||
|
||||
has_one :supplier, key: :producer_id, embed: :id
|
||||
has_one :primary_taxon, key: :category_id, embed: :id
|
||||
has_many :variants, key: :variants, serializer: Api::Admin::VariantSerializer # embed: ids
|
||||
has_one :master, serializer: Api::Admin::VariantSerializer
|
||||
|
||||
def image_url
|
||||
object.images.present? ? object.images.first.attachment.url(:product) : "/assets/noimage/product.png"
|
||||
end
|
||||
|
||||
def thumb_url
|
||||
object.images.present? ? object.images.first.attachment.url(:mini) : "/assets/noimage/mini.png"
|
||||
end
|
||||
|
||||
def on_hand
|
||||
object.on_hand.nil? ? 0 : object.on_hand.to_f.finite? ? object.on_hand : I18n.t(:on_demand)
|
||||
end
|
||||
|
||||
@@ -27,7 +27,6 @@ class Api::UncachedProductSerializer < ActiveModel::Serializer
|
||||
else
|
||||
object.master.price_with_fees(options[:current_distributor], options[:current_order_cycle])
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
@@ -36,7 +35,7 @@ class Api::CachedProductSerializer < ActiveModel::Serializer
|
||||
#delegate :cache_key, to: :object
|
||||
include ActionView::Helpers::SanitizeHelper
|
||||
|
||||
attributes :id, :name, :permalink
|
||||
attributes :id, :name, :permalink, :meta_keywords
|
||||
attributes :on_demand, :group_buy, :notes, :description, :description_html
|
||||
attributes :properties_with_values
|
||||
|
||||
|
||||
34
app/services/create_mail_method.rb
Normal file
34
app/services/create_mail_method.rb
Normal file
@@ -0,0 +1,34 @@
|
||||
# Configures Rails to use the specified mail settings. It does so creating
|
||||
# a Spree::MailMethod and applying its configuration.
|
||||
class CreateMailMethod
|
||||
# Constructor
|
||||
#
|
||||
# @param attributes [Hash] MailMethod attributes
|
||||
def initialize(attributes)
|
||||
@attributes = attributes
|
||||
end
|
||||
|
||||
def call
|
||||
persist_attributes
|
||||
initialize_mail_settings
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
attr_reader :attributes
|
||||
|
||||
# Updates the created mail method's attributes with the ones specified
|
||||
def persist_attributes
|
||||
mail_method.update_attributes(attributes)
|
||||
end
|
||||
|
||||
# Creates a new Spree::MailMethod for the current environment
|
||||
def mail_method
|
||||
Spree::MailMethod.create(environment: attributes[:environment])
|
||||
end
|
||||
|
||||
# Makes Spree apply the specified mail settings
|
||||
def initialize_mail_settings
|
||||
Spree::Core::MailSettings.init
|
||||
end
|
||||
end
|
||||
@@ -2,8 +2,8 @@
|
||||
-# ng-change is only valid for inputs, not for a form.
|
||||
-# So we use onchange and have to get the scope to access the ng controller
|
||||
= form_for [main_app, :admin, @enterprise], html: { name: "enterprise_form",
|
||||
onchange: "angular.element(enterprise_form).scope().setFormDirty()",
|
||||
"ng-controller" => 'enterpriseCtrl',
|
||||
'onchange' => 'angular.element(enterprise_form).scope().setFormDirty()',
|
||||
"ng-cloak" => true } do |f|
|
||||
|
||||
%save-bar{ dirty: "enterprise_form.$dirty", persist: "true" }
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
%tr
|
||||
%td
|
||||
- # Ignore this input in the submit
|
||||
= hidden_field_tag :ignored, :new_manager, class: "select2 fullwidth", 'user-select' => 'newManager', 'ng-model' => 'newManager'
|
||||
= hidden_field_tag :ignored, nil, class: "select2 fullwidth", 'user-select' => 'newManager', 'ng-model' => 'newManager'
|
||||
%td.actions
|
||||
%a{ 'ng-click' => 'addManager(newManager)', :class => "icon-plus no-text" }
|
||||
%tr.animate-repeat{ id: "manager-{{manager.id}}", ng: { repeat: 'manager in Enterprise.users' }}
|
||||
@@ -60,3 +60,16 @@
|
||||
- @enterprise.users.each do |manager|
|
||||
= manager.email
|
||||
%br
|
||||
|
||||
- if full_permissions
|
||||
%form
|
||||
.row
|
||||
.three.columns.alpha
|
||||
%label
|
||||
= t('.invite_manager')
|
||||
%div{'ofn-with-tip' => t('.invite_manager_tip')}
|
||||
%a= t('admin.whats_this')
|
||||
.eight.columns.omega
|
||||
.row
|
||||
%a.button.help-modal{template: 'admin/modals/invite_manager.html'}
|
||||
= t('.add_unregistered_user')
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
object @image
|
||||
attributes(*image_attributes)
|
||||
attributes :viewable_type, :viewable_id
|
||||
node( :thumb_url ) { @product.images.first.attachment.url(:mini) }
|
||||
node( :image_url ) { @product.images.first.attachment.url(:product) }
|
||||
13
app/views/enterprise_mailer/manager_invitation.html.haml
Normal file
13
app/views/enterprise_mailer/manager_invitation.html.haml
Normal file
@@ -0,0 +1,13 @@
|
||||
%h3
|
||||
= t('invite_email.greeting')
|
||||
%p.lead
|
||||
= t('invite_email.invited_to_manage', enterprise: @enterprise.name, instance: @instance)
|
||||
|
||||
%p
|
||||
= t('invite_email.confirm_your_email', enterprise: @enterprise.name)
|
||||
%p
|
||||
= t('invite_email.mistakenly_sent', owner_email: @enterprise.owner.email)
|
||||
|
||||
= render 'shared/mailers/signoff'
|
||||
|
||||
= render 'shared/mailers/social_and_contact'
|
||||
@@ -14,9 +14,6 @@
|
||||
%p
|
||||
= t :email_community_html, link: link_to(t(:join_community), ContentConfig.community_forum_url)
|
||||
|
||||
%p
|
||||
= t :email_help
|
||||
|
||||
= render 'shared/mailers/signoff'
|
||||
|
||||
= render 'shared/mailers/social_and_contact'
|
||||
|
||||
@@ -60,12 +60,12 @@
|
||||
= t 'powered_by'
|
||||
%a{href: '/'}
|
||||
= t 'title'
|
||||
- if I18n.available_locales.count > 1
|
||||
- if OpenFoodNetwork::I18nConfig.selectable_locales.count > 1
|
||||
%li.language-switcher.has-dropdown
|
||||
%a{href: '#'}
|
||||
%i.ofn-i_071-globe
|
||||
%ul.dropdown
|
||||
- I18n.available_locales.each do |l|
|
||||
- OpenFoodNetwork::I18nConfig.selectable_locales.each do |l|
|
||||
%li
|
||||
%a{href: "?locale=#{l.to_s}" }= t('language_name', locale: l)
|
||||
- if spree_current_user.nil?
|
||||
|
||||
@@ -40,13 +40,13 @@
|
||||
%span.nav-primary
|
||||
%i.ofn-i_036-producers
|
||||
= t 'label_producers'
|
||||
- if I18n.available_locales.count > 1
|
||||
- if OpenFoodNetwork::I18nConfig.selectable_locales.count > 1
|
||||
%li.language-switcher.li-menu
|
||||
%a
|
||||
%i.ofn-i_071-globe
|
||||
= t('language_name')
|
||||
%ul
|
||||
- I18n.available_locales.each do |l|
|
||||
- OpenFoodNetwork::I18nConfig.selectable_locales.each do |l|
|
||||
- if I18n.locale != l
|
||||
%li
|
||||
%a{href: "?locale=#{l.to_s}" }= t('language_name', locale: l)
|
||||
|
||||
@@ -1,11 +1,13 @@
|
||||
.row{"data-hook" => "admin_product_meta_form"}
|
||||
.alpha.eleven.columns
|
||||
= f.field_container :meta_description do
|
||||
= f.label :meta_keywords, t(:meta_keywords)
|
||||
= f.field_container :meta_keywords do
|
||||
= f.label :meta_keywords, t(:product_search_keywords)
|
||||
%span.icon-question-sign{ 'ofn-with-tip' => t('admin.products.product_search_tip') }
|
||||
%br/
|
||||
= f.text_field :meta_keywords, :class => 'fullwidth', :rows => 6
|
||||
= f.field_container :meta_description do
|
||||
= f.label :meta_description, t(:meta_description)
|
||||
= f.label :meta_description, t(:SEO_keywords)
|
||||
%span.icon-question-sign{ 'ofn-with-tip' => t('admin.products.seo_tip') }
|
||||
%br/
|
||||
= f.text_field :meta_description, :class => 'fullwidth', :rows => 6
|
||||
.alpha.eleven.columns
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
%colgroup
|
||||
%col.actions
|
||||
%col.image{ ng: { show: 'columns.image.visible' } }
|
||||
%col.producer{ ng: { show: 'columns.producer.visible' } }
|
||||
%col.sku{ ng: { show: 'columns.sku.visible' } }
|
||||
%col.name{ ng: { show: 'columns.name.visible' } }
|
||||
@@ -21,6 +22,7 @@
|
||||
%th.left-actions
|
||||
%a{ 'ng-click' => 'toggleShowAllVariants()', :style => 'color: red; cursor: pointer' }
|
||||
= t(:expand_all)
|
||||
%th.image{ 'ng-show' => 'columns.image.visible' }
|
||||
%th.producer{ 'ng-show' => 'columns.producer.visible' }=t('admin.producer')
|
||||
%th.sku{ 'ng-show' => 'columns.sku.visible' }=t('admin.sku')
|
||||
%th.name{ 'ng-show' => 'columns.name.visible' }=t('.name')
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
%td.left-actions
|
||||
%a{ 'ofn-toggle-variants' => 'true', :class => "view-variants", 'ng-show' => 'hasVariants(product)' }
|
||||
%a{ :class => "add-variant icon-plus-sign", 'ng-click' => "addVariant(product)", 'ng-show' => "!hasVariants(product) && hasUnit(product)" }
|
||||
%td.image{ 'ng-show' => 'columns.image.visible' }
|
||||
%a{class: 'image-modal'}
|
||||
%img{'ng-src' => '{{ product.thumb_url }}'}
|
||||
%td.producer{ 'ng-show' => 'columns.producer.visible' }
|
||||
%select.select2.fullwidth{ 'ng-model' => 'product.producer_id', :name => 'producer_id', 'ofn-track-product' => 'producer_id', 'ng-options' => 'producer.id as producer.name for producer in producers' }
|
||||
%td.sku{ 'ng-show' => 'columns.sku.visible' }
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
%td.left-actions
|
||||
%a{ :class => "variant-item icon-caret-right", 'ng-hide' => "$last" }
|
||||
%a{ :class => "add-variant icon-plus-sign", 'ng-click' => "addVariant(product)", 'ng-show' => "$last", 'ofn-with-tip' => t('.new_variant') }
|
||||
%td{ 'ng-show' => 'columns.image.visible' }
|
||||
%td{ 'ng-show' => 'columns.producer.visible' }
|
||||
%td{ 'ng-show' => 'columns.sku.visible' }
|
||||
%input{ 'ng-model' => "variant.sku", :name => 'variant_sku', 'ofn-track-variant' => 'sku', :type => 'text' }
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
= render :partial => 'spree/admin/shared/product_sub_menu'
|
||||
= render :partial => 'spree/admin/shared/product_tabs', :locals => { :current => 'SEO' }
|
||||
= render :partial => 'spree/admin/shared/product_tabs', :locals => { :current => t(:Search) }
|
||||
= render :partial => 'spree/shared/error_messages', :locals => { :target => @product }
|
||||
|
||||
= form_for [:admin, @product], :method => :put, :html => { :multipart => true } do |f|
|
||||
%fieldset.no-border-top
|
||||
= render :partial => 'seo_form', :locals => { :f => f }
|
||||
= render :partial => 'spree/admin/shared/edit_resource_links'
|
||||
%div{ 'ng-app' => 'ofn.admin' }
|
||||
= form_for [:admin, @product], :method => :put, :html => { :multipart => true } do |f|
|
||||
%fieldset.no-border-top
|
||||
= render :partial => 'seo_form', :locals => { :f => f }
|
||||
= render :partial => 'spree/admin/shared/edit_resource_links'
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
%h4
|
||||
= t :email_order_summary_price
|
||||
%tbody
|
||||
- @order.line_items.each do |item|
|
||||
- @order.line_items.sorted_by_name_and_unit_value.each do |item|
|
||||
%tr
|
||||
%td
|
||||
= render 'spree/shared/line_item_name', line_item: item
|
||||
|
||||
@@ -1,15 +1,14 @@
|
||||
- if @order.payments.first.andand.payment_method.andand.type == "Spree::PaymentMethod::Check" and @order.payments.first.andand.payment_method.andand.description
|
||||
%p.callout
|
||||
%span{:style => "float:right;"}
|
||||
- if @order.paid?
|
||||
= t :email_payment_paid
|
||||
- else
|
||||
= t :email_payment_not_paid
|
||||
%strong
|
||||
= t :email_payment_summary
|
||||
%h4
|
||||
= t :email_payment_method
|
||||
%strong= @order.payments.first.andand.payment_method.andand.name.andand.html_safe
|
||||
%p
|
||||
%em= @order.payments.first.andand.payment_method.andand.description.andand.html_safe
|
||||
%p
|
||||
%p.callout
|
||||
%span{:style => "float:right;"}
|
||||
- if @order.paid?
|
||||
= t :email_payment_paid
|
||||
- else
|
||||
= t :email_payment_not_paid
|
||||
%strong
|
||||
= t :email_payment_summary
|
||||
%h4
|
||||
= t :email_payment_method
|
||||
%strong= @order.payments.first.andand.payment_method.andand.name.andand.html_safe
|
||||
%p
|
||||
%em= @order.payments.first.andand.payment_method.andand.description.andand.html_safe
|
||||
%p
|
||||
|
||||
@@ -35,13 +35,13 @@
|
||||
%td.text-right
|
||||
%span.order-total.item-total= display_checkout_subtotal(@order)
|
||||
%td
|
||||
|
||||
%tr
|
||||
%td.text-right{colspan:"3"}
|
||||
= t :orders_form_admin
|
||||
%td.text-right
|
||||
%span.order-total.distribution-total= display_checkout_admin_and_handling_adjustments_total_for(@order)
|
||||
%td
|
||||
-if display_checkout_admin_and_handling_adjustments_total_for(@order) != Spree::Money.new(0 , currency: @order.currency)
|
||||
%tr
|
||||
%td.text-right{colspan:"3"}
|
||||
= t :orders_form_admin
|
||||
%td.text-right
|
||||
%span.order-total.distribution-total= display_checkout_admin_and_handling_adjustments_total_for(@order)
|
||||
%td
|
||||
|
||||
- checkout_adjustments_for(@order, exclude: [:line_item, :admin_and_handling]).reject{ |a| a.amount == 0 }.reverse_each do |adjustment|
|
||||
%tr.order-adjustment
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
%th.text-right.total
|
||||
%span= t(:total)
|
||||
%tbody{"data-hook" => ""}
|
||||
- order.line_items.each do |item|
|
||||
- order.line_items.sorted_by_name_and_unit_value.each do |item|
|
||||
%tr.line_item{"data-hook" => "order_details_line_item_row", class: "variant-#{item.variant.id}" }
|
||||
%td(data-hook = "order_item_description")
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
require_relative 'boot'
|
||||
|
||||
require 'rails/all'
|
||||
require_relative "../lib/open_food_network/i18n_config"
|
||||
|
||||
if defined?(Bundler)
|
||||
# If you precompile assets before deploying to production, use this line
|
||||
@@ -104,9 +105,8 @@ module Openfoodnetwork
|
||||
|
||||
# The default locale is :en and all translations from config/locales/*.rb,yml are auto loaded.
|
||||
# config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s]
|
||||
config.i18n.default_locale = ENV["LOCALE"] || ENV["I18N_LOCALE"] || "en"
|
||||
config.i18n.available_locales = ENV["AVAILABLE_LOCALES"].andand.split(/[\s,]/).andand.map(&:strip) || []
|
||||
config.i18n.available_locales = (config.i18n.available_locales + [config.i18n.default_locale, 'en']).uniq
|
||||
config.i18n.default_locale = OpenFoodNetwork::I18nConfig.default_locale
|
||||
config.i18n.available_locales = OpenFoodNetwork::I18nConfig.available_locales
|
||||
I18n.locale = config.i18n.locale = config.i18n.default_locale
|
||||
|
||||
# Setting this to true causes a performance regression in Rails 3.2.17
|
||||
|
||||
@@ -22,6 +22,13 @@ CURRENCY: AUD
|
||||
# See: config/schedule.rb
|
||||
#SCHEDULE_NOTIFICATIONS: admin@example.com
|
||||
|
||||
# Mail settings
|
||||
MAIL_HOST: 'example.com'
|
||||
MAIL_DOMAIN: 'example.com'
|
||||
MAIL_PORT: 25
|
||||
SMTP_USERNAME: 'ofn'
|
||||
SMTP_PASSWORD: 'f00d'
|
||||
|
||||
# SingleSignOn login for Discourse
|
||||
#
|
||||
# DISCOURSE_SSO_SECRET should be a random string. It must be the same as provided to your Discourse instance.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
de_DE:
|
||||
language_name: "Englisch"
|
||||
language_name: "Deutsch"
|
||||
activerecord:
|
||||
attributes:
|
||||
spree/order:
|
||||
@@ -8,6 +8,8 @@ de_DE:
|
||||
completed_at: Erfolgt am
|
||||
number: Nummer
|
||||
email: E-Mail des Kunden
|
||||
spree/payment:
|
||||
amount: Menge
|
||||
errors:
|
||||
models:
|
||||
spree/user:
|
||||
@@ -43,25 +45,23 @@ de_DE:
|
||||
send_instructions: "Sie erhalten in einigen Minuten eine E-Mail mit Anweisungen zur Bestätigung Ihres Kontos."
|
||||
failed_to_send: "Beim Senden der Bestätigungs-E-Mail ist ein Fehler aufgetreten."
|
||||
resend_confirmation_email: "Bestätigungsmail erneut senden."
|
||||
confirmed: "Danke für die Bestätigung Ihrer E-Mail! Sie können sich jetzt einloggen."
|
||||
not_confirmed: "Ihre E-Mail-Adresse konnte nicht bestätigt werden. Vielleicht haben Sie diesen Schritt bereits abgeschlossen?"
|
||||
user_registrations:
|
||||
spree_user:
|
||||
signed_up_but_unconfirmed: "Eine Nachricht mit einem Bestätigungslink wurde an Ihre E-Mail-Adresse gesendet. Bitte öffnen Sie den Link, um Ihr Konto zu aktivieren."
|
||||
failure:
|
||||
invalid: |
|
||||
Ungültige E-Mail-Adresse oder Passwort.
|
||||
Hast du als Gast bestellt? Vielleicht brauchst du ein neues Konto oder musst dein Passwort zurücksetzen.
|
||||
Ungültige E-Mail-Adresse oder Passwort.
|
||||
Hast du als Gast bestellt? Vielleicht brauchst du ein neues Konto oder musst dein Passwort zurücksetzen.
|
||||
unconfirmed: "Sie müssen Ihr Konto bestätigen, bevor Sie fortfahren."
|
||||
enterprise_confirmations:
|
||||
enterprise:
|
||||
confirmed: Danke, deine E-Mail-Adresse wurde bestätigt.
|
||||
not_confirmed: Ihre E-Mail-Adresse konnte nicht bestätigt werden. Haben Sie dies vielleicht schon getan?
|
||||
confirmation_sent: "Eine Bestätigungs-E-Mail wurde versandt."
|
||||
confirmation_not_sent: "Die Bestätigungs-E-Mail konnte nicht geschickt werden."
|
||||
enterprise_mailer:
|
||||
confirmation_instructions:
|
||||
subject: "Bitte bestätige die E-Mail-Adresse für %{enterprise}"
|
||||
welcome:
|
||||
subject: "%{enterprise} ist jetzt auf %{sitename}"
|
||||
invite_manager:
|
||||
subject: "%{enterprise} hat Sie eingeladen, ein Manager zu sein"
|
||||
producer_mailer:
|
||||
order_cycle:
|
||||
subject: "Bestellungszyklusreport für %{producer}"
|
||||
@@ -204,6 +204,7 @@ de_DE:
|
||||
phone: Telefonnummer
|
||||
price: Preis
|
||||
producer: Produzent
|
||||
image: Bild
|
||||
product: Produkt
|
||||
quantity: Menge
|
||||
schedule: Zeitplan
|
||||
@@ -357,6 +358,15 @@ de_DE:
|
||||
manages: verwaltet
|
||||
products:
|
||||
unit_name_placeholder: 'z.B. Trauben'
|
||||
bulk_edit:
|
||||
unit: Einheit
|
||||
display_as: Darstellen als
|
||||
category: Kategorie
|
||||
tax_category: Steuerkategorie
|
||||
inherits_properties?: Vererbt Eigenschaften?
|
||||
available_on: Verfügbar auf
|
||||
av_on: "Ein V. Auf"
|
||||
upload_an_image: Lade ein Bild hoch
|
||||
properties:
|
||||
property_name: Name des Anwesens
|
||||
inherited_property: Vererbte Eigenschaft
|
||||
@@ -416,6 +426,7 @@ de_DE:
|
||||
max_fulfilled_units: "Max erfüllte Einheiten"
|
||||
order_error: "Einige Fehler müssen behoben werden, bevor Sie Aufträge aktualisieren können.\nFelder mit roten Rahmen enthalten Fehler."
|
||||
variants_without_unit_value: "WARNUNG: Einige Varianten haben keinen Einheitswert"
|
||||
select_variant: "Wählen Sie eine Variante"
|
||||
enterprise:
|
||||
select_outgoing_oc_products_from: Wählen Sie ausgehende OC-Produkte aus
|
||||
enterprises:
|
||||
@@ -577,6 +588,9 @@ de_DE:
|
||||
notifications_note: 'Hinweis: Eine neue E-Mail-Adresse muss möglicherweise vor der Verwendung bestätigt werden'
|
||||
managers: Manager
|
||||
managers_tip: Die anderen Benutzer mit der Berechtigung, dieses Unternehmen zu verwalten.
|
||||
invite_manager: "Einladungsmanager"
|
||||
invite_manager_tip: "Laden Sie einen nicht registrierten Benutzer ein, sich anzumelden und ein Manager dieses Unternehmens zu werden."
|
||||
add_unregistered_user: "Fügen Sie einen nicht registrierten Benutzer hinzu"
|
||||
email_confirmed: "E-Mail bestätigt"
|
||||
email_not_confirmed: "E-Mail nicht bestätigt"
|
||||
actions:
|
||||
@@ -636,6 +650,9 @@ de_DE:
|
||||
welcome_text: Sie haben erfolgreich eine erstellt
|
||||
next_step: Nächster Schritt
|
||||
choose_starting_point: 'Wählen Sie Ihren Ausgangspunkt:'
|
||||
invite_manager:
|
||||
user_already_exists: "Benutzer existiert bereits"
|
||||
error: "Etwas ist schief gelaufen"
|
||||
order_cycles:
|
||||
edit:
|
||||
advanced_settings: Erweiterte Einstellungen
|
||||
@@ -839,6 +856,7 @@ de_DE:
|
||||
confirm_unpause_msg: Möchten Sie dieses Abonnement wirklich wieder aktivieren?
|
||||
unpause_failure_msg: 'Entschuldigung, fehlgeschlagen!'
|
||||
confirm_cancel_open_orders_msg: "Einige Bestellungen für dieses Abonnement sind derzeit geöffnet. Der Kunde wurde bereits darüber informiert, dass die Bestellung aufgegeben wird. Möchten Sie diese Bestellung (en) stornieren oder behalten?"
|
||||
resume_canceled_orders_msg: "Einige Bestellungen für dieses Abonnement können jetzt fortgesetzt werden. Sie können sie aus dem Dropdown-Menü für Bestellungen wiederherstellen."
|
||||
yes_cancel_them: Annulliere sie
|
||||
no_keep_them: Behalte sie
|
||||
yes_i_am_sure: Ja, ich bin mir sicher
|
||||
@@ -1173,6 +1191,12 @@ de_DE:
|
||||
email_signup_shop_html: "Sie können sich jetzt unter %{link} anmelden."
|
||||
email_signup_text: "Danke, dass Sie dem Netzwerk beigetreten sind. Wenn Sie ein Kunde sind, freuen wir uns, Ihnen viele fantastische Bauern, wunderbare Essenszentren und leckeres Essen vorzustellen! Wenn Sie ein Produzent oder ein Lebensmittelunternehmen sind, freuen wir uns, Sie als Teil des Netzwerks zu haben."
|
||||
email_signup_help_html: "Wir begrüßen alle Ihre Fragen und Rückmeldungen; Sie können die Schaltfläche <em> Feedback senden </ em> auf der Website verwenden oder uns eine E-Mail an %{email} senden"
|
||||
invite_email:
|
||||
greeting: "Hallo!"
|
||||
invited_to_manage: "Sie wurden eingeladen, %{enterprise} auf %{instance} zu verwalten."
|
||||
confirm_your_email: "Sie werden in Kürze eine E-Mail erhalten, um Ihre Registrierung zu bestätigen."
|
||||
set_a_password: "Sie werden dann aufgefordert, ein Kennwort festzulegen, bevor Sie das Unternehmen verwalten können."
|
||||
mistakenly_sent: "Nicht sicher, warum Sie diese E-Mail erhalten haben? Bitte kontaktieren Sie %{owner_email} für weitere Informationen, oder kontaktieren Sie %{instance} unter %{instance_email}."
|
||||
producer_mail_greeting: "Liebe/r"
|
||||
producer_mail_text_before: "Wir haben jetzt alle Verbraucherbestellungen für den nächsten Essenstropfen."
|
||||
producer_mail_order_text: "Hier finden Sie eine Zusammenfassung der Bestellungen für Ihre Produkte:"
|
||||
@@ -1361,8 +1385,8 @@ de_DE:
|
||||
orders_could_not_cancel: "Entschuldigung, die Bestellung konnte nicht storniert werden"
|
||||
orders_cannot_remove_the_final_item: "Der letzte Artikel aus einer Bestellung kann nicht entfernt werden. Bitte stornieren Sie stattdessen die Bestellung."
|
||||
orders_bought_items_notice:
|
||||
one: Für diesen Bestellzyklus ist bereits eine zusätzliche Position bestätigt
|
||||
other: '%{count} zusätzliche Artikel, die bereits für diesen Bestellzyklus bestätigt wurden'
|
||||
one: "Für diesen Bestellzyklus ist bereits eine zusätzliche Position bestätigt"
|
||||
other: "%{count} zusätzliche Artikel, die bereits für diesen Bestellzyklus bestätigt wurden"
|
||||
orders_bought_edit_button: Bestätigte Artikel bearbeiten
|
||||
orders_bought_already_confirmed: "* schon bestätigt"
|
||||
orders_confirm_cancel: Sind Sie sicher, dass Sie diese Bestellung stornieren möchten?
|
||||
@@ -1435,6 +1459,7 @@ de_DE:
|
||||
password_reset_sent: "Eine E-Mail mit Anweisungen zum Zurücksetzen Ihres Passworts wurde gesendet!"
|
||||
reset_password: "Passwort zurücksetzen"
|
||||
who_is_managing_enterprise: "Wer ist verantwortlich für die Verwaltung von %{enterprise}?"
|
||||
update_and_recalculate_fees: "Aktualisieren und Gebühren neu berechnen"
|
||||
enterprise:
|
||||
registration:
|
||||
modal:
|
||||
@@ -1946,7 +1971,8 @@ de_DE:
|
||||
products_unsaved: "Änderungen an %{n} Produkten bleiben ungesichert."
|
||||
is_already_manager: "ist schon ein Manager!"
|
||||
no_change_to_save: " Keine Änderung zum Speichern"
|
||||
add_manager: "Fügen Sie einen Manager hinzu"
|
||||
user_invited: "%{email} wurde eingeladen, dieses Unternehmen zu verwalten"
|
||||
add_manager: "Fügen Sie einen vorhandenen Benutzer hinzu"
|
||||
users: "Benutzer"
|
||||
about: "Über"
|
||||
images: "Bilder"
|
||||
@@ -1957,6 +1983,7 @@ de_DE:
|
||||
social: "Sozial"
|
||||
business_details: "Geschäftsdetails"
|
||||
properties: "Eigenschaften"
|
||||
shipping: "Versand"
|
||||
shipping_methods: "Lieferoptionen"
|
||||
payment_methods: "Zahlungsarten"
|
||||
payment_method_fee: "Transaktionsgebühr"
|
||||
@@ -2007,6 +2034,8 @@ de_DE:
|
||||
order_cycles_email_to_producers_notice: 'E-Mails, die an die Produzenten gesendet werden sollen, wurden zum Senden in die Warteschlange gestellt.'
|
||||
order_cycles_no_permission_to_coordinate_error: "Keines Ihrer Unternehmen ist berechtigt, einen Bestellzyklus zu koordinieren"
|
||||
order_cycles_no_permission_to_create_error: "Sie sind nicht berechtigt, einen von diesem Unternehmen koordinierten Bestellzyklus zu erstellen"
|
||||
back_to_orders_list: "Zurück zur Bestellliste"
|
||||
amount: "Menge"
|
||||
js:
|
||||
saving: 'Speichern ...'
|
||||
changes_saved: 'Änderungen gespeichert'
|
||||
@@ -2024,8 +2053,8 @@ de_DE:
|
||||
choose: Wählen
|
||||
resolve_errors: Bitte beheben Sie die folgenden Fehler
|
||||
more_items: "+ %{count} Mehr"
|
||||
closes: schließt
|
||||
admin:
|
||||
enterprise_limit_reached: "Sie haben die Standardgrenze für Unternehmen pro Konto erreicht. Schreiben Sie an %{contact_email}, wenn Sie es erhöhen müssen."
|
||||
modals:
|
||||
got_it: Ich habs
|
||||
tag_rule_help:
|
||||
@@ -2186,8 +2215,8 @@ de_DE:
|
||||
could_not_delete_customer: 'Der Kunde konnte nicht gelöscht werden'
|
||||
product_import:
|
||||
confirmation: |
|
||||
Dadurch wird der Lagerbestand für alle Produkte auf Null gesetzt
|
||||
Unternehmen, die in der hochgeladenen Datei nicht vorhanden sind.
|
||||
Dadurch wird der Lagerbestand für alle Produkte auf Null gesetzt
|
||||
Unternehmen, die in der hochgeladenen Datei nicht vorhanden sind.
|
||||
order_cycles:
|
||||
update_success: 'Ihr Bestellzyklus wurde aktualisiert.'
|
||||
no_distributors: In diesem Bestellzyklus gibt es keine Distributoren. Dieser Bestellzyklus ist für Kunden erst sichtbar, wenn Sie einen hinzufügen. Möchten Sie diesen Bestellzyklus weiterhin speichern?
|
||||
@@ -2197,6 +2226,10 @@ de_DE:
|
||||
customers:
|
||||
select_shop: 'Bitte wählen Sie zuerst ein Geschäft aus'
|
||||
could_not_create: Es tut uns leid! Konnte nicht ... Erstellen
|
||||
subscriptions:
|
||||
closes: schließt
|
||||
closed: geschlossen
|
||||
close_date_not_set: Abschlussdatum nicht eingestellt
|
||||
producers:
|
||||
signup:
|
||||
start_free_profile: "Beginnen Sie mit einem kostenlosen Profil und erweitern Sie es, wenn Sie fertig sind!"
|
||||
@@ -2347,11 +2380,11 @@ de_DE:
|
||||
user_mailer:
|
||||
reset_password_instructions:
|
||||
request_sent_text: |
|
||||
Es wurde angefragt, das Passwort zurückzusetzen. Falls dies nicht der Fall ist, bitten wir dieses Email zu ignorieren.
|
||||
Es wurde angefragt, das Passwort zurückzusetzen. Falls dies nicht der Fall ist, bitten wir dieses Email zu ignorieren.
|
||||
link_text: >
|
||||
Möchtest Du das Passwort zurücksetzen? Bitte den Link unten auszuwählen.
|
||||
issue_text: |
|
||||
Falls die URL unten nicht funktionieren sollte, versuche die Adresse mit Hilfe von "copy and paste" in dein Browserfenster zu übertragen.
|
||||
Falls die URL unten nicht funktionieren sollte, versuche die Adresse mit Hilfe von "copy and paste" in dein Browserfenster zu übertragen.
|
||||
confirmation_instructions:
|
||||
subject: Bitte bestätigen Sie Ihren OFN-Account
|
||||
weight: Gewicht (pro kg)
|
||||
|
||||
@@ -64,6 +64,10 @@ en:
|
||||
completed_at: Completed At
|
||||
number: Number
|
||||
email: Customer E-Mail
|
||||
spree/payment:
|
||||
amount: Amount
|
||||
order_cycle:
|
||||
orders_close_at: Close date
|
||||
errors:
|
||||
models:
|
||||
spree/user:
|
||||
@@ -72,6 +76,10 @@ en:
|
||||
taken: "There's already an account for this email. Please login or reset your password."
|
||||
spree/order:
|
||||
no_card: There are no valid credit cards available
|
||||
order_cycle:
|
||||
attributes:
|
||||
orders_close_at:
|
||||
after_orders_open_at: must be after open date
|
||||
activemodel:
|
||||
errors:
|
||||
models:
|
||||
@@ -114,6 +122,8 @@ en:
|
||||
subject: "Please confirm the email address for %{enterprise}"
|
||||
welcome:
|
||||
subject: "%{enterprise} is now on %{sitename}"
|
||||
invite_manager:
|
||||
subject: "%{enterprise} has invited you to be a manager"
|
||||
producer_mailer:
|
||||
order_cycle:
|
||||
subject: "Order cycle report for %{producer}"
|
||||
@@ -265,6 +275,7 @@ en:
|
||||
phone: Phone
|
||||
price: Price
|
||||
producer: Producer
|
||||
image: Image
|
||||
product: Product
|
||||
quantity: Quantity
|
||||
schedule: Schedule
|
||||
@@ -436,6 +447,20 @@ en:
|
||||
|
||||
products:
|
||||
unit_name_placeholder: 'eg. bunches'
|
||||
bulk_edit:
|
||||
unit: Unit
|
||||
display_as: Display As
|
||||
category: Category
|
||||
tax_category: Tax Category
|
||||
inherits_properties?: Inherits Properties?
|
||||
available_on: Available On
|
||||
av_on: "Av. On"
|
||||
upload_an_image: Upload an image
|
||||
product_search_keywords: Product Search Keywords
|
||||
product_search_tip: Type words to help search your products in the shops. Use space to separate each keyword.
|
||||
SEO_keywords: SEO Keywords
|
||||
seo_tip: Type words to help search your products in the web. Use space to separate each keyword.
|
||||
Search: Search
|
||||
properties:
|
||||
property_name: Property Name
|
||||
inherited_property: Inherited Property
|
||||
@@ -443,7 +468,6 @@ en:
|
||||
to_order_tip: "Items made to order do not have a set stock level, such as loaves of bread made fresh to order."
|
||||
product_distributions: "Product Distributions"
|
||||
group_buy_options: "Group Buy Options"
|
||||
seo: "SEO"
|
||||
back_to_products_list: "Back to products list"
|
||||
|
||||
variant_overrides:
|
||||
@@ -496,6 +520,7 @@ en:
|
||||
max_fulfilled_units: "Max Fulfilled Units"
|
||||
order_error: "Some errors must be resolved before you can update orders.\nAny fields with red borders contain errors."
|
||||
variants_without_unit_value: "WARNING: Some variants do not have a unit value"
|
||||
select_variant: "Select a variant"
|
||||
enterprise:
|
||||
select_outgoing_oc_products_from: Select outgoing OC products from
|
||||
|
||||
@@ -655,6 +680,9 @@ en:
|
||||
notifications_note: 'Note: A new email address may need to be confirmed prior to use'
|
||||
managers: Managers
|
||||
managers_tip: The other users with permission to manage this enterprise.
|
||||
invite_manager: "Invite Manager"
|
||||
invite_manager_tip: "Invite an unregistered user to sign up and become a manager of this enterprise."
|
||||
add_unregistered_user: "Add an unregistered user"
|
||||
email_confirmed: "Email confirmed"
|
||||
email_not_confirmed: "Email not confirmed"
|
||||
actions:
|
||||
@@ -714,6 +742,9 @@ en:
|
||||
welcome_text: You have successfully created a
|
||||
next_step: Next step
|
||||
choose_starting_point: 'Choose your starting point:'
|
||||
invite_manager:
|
||||
user_already_exists: "User already exists"
|
||||
error: "Something went wrong"
|
||||
order_cycles:
|
||||
edit:
|
||||
advanced_settings: Advanced Settings
|
||||
@@ -786,6 +817,8 @@ en:
|
||||
destroy_errors:
|
||||
orders_present: That order cycle has been selected by a customer and cannot be deleted. To prevent customers from accessing it, please close it instead.
|
||||
schedule_present: That order cycle is linked to a schedule and cannot be deleted. Please unlink or delete the schedule first.
|
||||
bulk_update:
|
||||
no_data: Hm, something went wrong. No order cycle data found.
|
||||
producer_properties:
|
||||
index:
|
||||
title: Producer Properties
|
||||
@@ -933,6 +966,10 @@ en:
|
||||
why_dont_you_add_one: Why don't you add one? :)
|
||||
no_matching_subscriptions: No matching subscriptions found
|
||||
|
||||
schedules:
|
||||
destroy:
|
||||
associated_subscriptions_error: This schedule cannot be deleted because it has associated subscriptions
|
||||
|
||||
stripe_connect_settings:
|
||||
edit:
|
||||
title: "Stripe Connect"
|
||||
@@ -1243,7 +1280,6 @@ en:
|
||||
email_community_html: "We also have an online forum for community discussion related to OFN software and the unique challenges of running a food enterprise. You are encouraged to join in. We are constantly evolving and your input into this forum will shape what happens next.
|
||||
%{link}"
|
||||
join_community: "Join the community"
|
||||
email_help: "If you have any difficulties, check out our FAQs, browse the forum or post a 'Support' topic and someone will help you out!"
|
||||
email_confirmation_activate_account: "Before we can activate your new account, we need to confirm your email address."
|
||||
email_confirmation_greeting: "Hi, %{contact}!"
|
||||
email_confirmation_profile_created: "A profile for %{name} has been successfully created!
|
||||
@@ -1309,6 +1345,13 @@ See the %{link} to find out more about %{sitename}'s features and to start using
|
||||
If you are a producer or food enterprise, we are excited to have you as a part of the network."
|
||||
email_signup_help_html: "We welcome all your questions and feedback; you can use the <em>Send Feedback</em> button on the site or email us at %{email}"
|
||||
|
||||
invite_email:
|
||||
greeting: "Hello!"
|
||||
invited_to_manage: "You have been invited to manage %{enterprise} on %{instance}."
|
||||
confirm_your_email: "You should have received or will soon receive an email with a confirmation link. You won’t be able to access %{enterprise}'s profile until you have confirmed your email."
|
||||
set_a_password: "You will then be prompted to set a password before you are able to administer the enterprise."
|
||||
mistakenly_sent: "Not sure why you have received this email? Please contact %{owner_email} for more information."
|
||||
|
||||
producer_mail_greeting: "Dear"
|
||||
producer_mail_text_before: "We now have all the consumer orders for the next food drop."
|
||||
producer_mail_order_text: "Here is a summary of the orders for your products:"
|
||||
@@ -1600,6 +1643,7 @@ See the %{link} to find out more about %{sitename}'s features and to start using
|
||||
reset_password: "Reset password"
|
||||
registration_greeting: "Greetings!"
|
||||
who_is_managing_enterprise: "Who is responsible for managing %{enterprise}?"
|
||||
update_and_recalculate_fees: "Update And Recalculate Fees"
|
||||
enterprise:
|
||||
registration:
|
||||
modal:
|
||||
@@ -1848,6 +1892,10 @@ See the %{link} to find out more about %{sitename}'s features and to start using
|
||||
calculator: "Calculator"
|
||||
calculator_values: "Calculator values"
|
||||
flat_percent_per_item: "Flat Percent (per item)"
|
||||
flat_rate_per_item: "Flat Rate (per item)"
|
||||
flat_rate_per_order: "Flat Rate (per order)"
|
||||
flexible_rate: "Flexible Rate"
|
||||
price_sack: "Price Sack"
|
||||
new_order_cycles: "New Order Cycles"
|
||||
new_order_cycle: "New Order Cycle"
|
||||
select_a_coordinator_for_your_order_cycle: "Select a coordinator for your order cycle"
|
||||
@@ -2123,10 +2171,10 @@ See the %{link} to find out more about %{sitename}'s features and to start using
|
||||
unsaved_changes_confirmation: "Unsaved changes will be lost. Continue anyway?"
|
||||
one_product_unsaved: "Changes to one product remain unsaved."
|
||||
products_unsaved: "Changes to %{n} products remain unsaved."
|
||||
add_manager: "Add a manager"
|
||||
is_already_manager: "is already a manager!"
|
||||
no_change_to_save: " No change to save"
|
||||
add_manager: "Add a manager"
|
||||
user_invited: "%{email} has been invited to manage this enterprise"
|
||||
add_manager: "Add an existing user"
|
||||
users: "Users"
|
||||
about: "About"
|
||||
images: "Images"
|
||||
@@ -2138,6 +2186,7 @@ See the %{link} to find out more about %{sitename}'s features and to start using
|
||||
social: "Social"
|
||||
business_details: "Business Details"
|
||||
properties: "Properties"
|
||||
shipping: "Shipping"
|
||||
shipping_methods: "Shipping Methods"
|
||||
payment_methods: "Payment Methods"
|
||||
payment_method_fee: "Transaction fee"
|
||||
@@ -2188,6 +2237,14 @@ See the %{link} to find out more about %{sitename}'s features and to start using
|
||||
order_cycles_email_to_producers_notice: 'Emails to be sent to producers have been queued for sending.'
|
||||
order_cycles_no_permission_to_coordinate_error: "None of your enterprises have permission to coordinate an order cycle"
|
||||
order_cycles_no_permission_to_create_error: "You don't have permission to create an order cycle coordinated by that enterprise"
|
||||
back_to_orders_list: "Back to order list"
|
||||
order_information: "Order Information"
|
||||
date_completed: "Date Completed"
|
||||
amount: "Amount"
|
||||
state_names:
|
||||
ready: Ready
|
||||
pending: Pending
|
||||
shipped: Shipped
|
||||
js:
|
||||
saving: 'Saving...'
|
||||
changes_saved: 'Changes saved.'
|
||||
@@ -2209,6 +2266,9 @@ See the %{link} to find out more about %{sitename}'s features and to start using
|
||||
enterprise_limit_reached: "You have reached the standard limit of enterprises per account. Write to %{contact_email} if you need to increase it."
|
||||
modals:
|
||||
got_it: Got it
|
||||
close: "Close"
|
||||
invite: "Invite"
|
||||
invite_title: "Invite an unregistered user"
|
||||
tag_rule_help:
|
||||
title: Tag Rules
|
||||
overview: Overview
|
||||
@@ -2380,6 +2440,8 @@ See the %{link} to find out more about %{sitename}'s features and to start using
|
||||
# TODO: remove 'account_updated' key once we get to Spree 2.0
|
||||
account_updated: "Account updated!"
|
||||
my_account: "My account"
|
||||
date: "Date"
|
||||
time: "Time"
|
||||
admin:
|
||||
orders:
|
||||
invoice:
|
||||
|
||||
@@ -16,14 +16,8 @@ en_GB:
|
||||
devise:
|
||||
failure:
|
||||
invalid: |
|
||||
Invalid email or password.
|
||||
Were you a guest last time? Perhaps you need to create an account or reset your password.
|
||||
enterprise_confirmations:
|
||||
enterprise:
|
||||
confirmed: Thank you, your email address has been confirmed.
|
||||
not_confirmed: Your email address could not be confirmed. Perhaps you have already completed this step?
|
||||
confirmation_sent: "Confirmation email sent!"
|
||||
confirmation_not_sent: "Could not send a confirmation email."
|
||||
Invalid email or password.
|
||||
Were you a guest last time? Perhaps you need to create an account or reset your password.
|
||||
enterprise_mailer:
|
||||
confirmation_instructions:
|
||||
subject: "Please confirm the email address for %{enterprise}"
|
||||
@@ -660,6 +654,11 @@ en_GB:
|
||||
description: Invoices for import into Xero
|
||||
packing:
|
||||
name: Packing Reports
|
||||
subscriptions:
|
||||
review:
|
||||
details: Details
|
||||
address: Address
|
||||
products: Products
|
||||
stripe_connect_settings:
|
||||
edit:
|
||||
title: "Stripe Connect"
|
||||
@@ -1150,8 +1149,8 @@ en_GB:
|
||||
orders_could_not_cancel: "Sorry, the order could not be cancelled"
|
||||
orders_cannot_remove_the_final_item: "Cannot remove the final item from an order, please cancel the order instead."
|
||||
orders_bought_items_notice:
|
||||
one: An additional item is already confirmed for this order cycle
|
||||
other: '%{count} additional items already confirmed for this order cycle'
|
||||
one: "An additional item is already confirmed for this order cycle"
|
||||
other: "%{count} additional items already confirmed for this order cycle"
|
||||
orders_bought_edit_button: Edit confirmed items
|
||||
orders_bought_already_confirmed: "* already confirmed"
|
||||
orders_confirm_cancel: Are you sure you want to cancel this order?
|
||||
@@ -1968,8 +1967,8 @@ en_GB:
|
||||
could_not_delete_customer: 'Could not delete customer'
|
||||
product_import:
|
||||
confirmation: |
|
||||
This will set stock level to zero on all products for this
|
||||
enterprise that are not present in the uploaded file.
|
||||
This will set stock level to zero on all products for this
|
||||
enterprise that are not present in the uploaded file.
|
||||
order_cycles:
|
||||
update_success: 'Your order cycle has been updated.'
|
||||
no_distributors: There are no distributors in this order cycle. This order cycle will not be visible to customers until you add one. Would you like to continue saving this order cycle?'
|
||||
@@ -2120,13 +2119,13 @@ en_GB:
|
||||
user_mailer:
|
||||
reset_password_instructions:
|
||||
request_sent_text: |
|
||||
A request to reset your password has been made.
|
||||
If you did not make this request, simply ignore this email.
|
||||
A request to reset your password has been made.
|
||||
If you did not make this request, simply ignore this email.
|
||||
link_text: >
|
||||
If you did make this request just click the link below:
|
||||
issue_text: |
|
||||
If the above URL does not work try copying and pasting it into your browser.
|
||||
If you continue to have problems please feel free to contact us.
|
||||
If the above URL does not work try copying and pasting it into your browser.
|
||||
If you continue to have problems please feel free to contact us.
|
||||
weight: Weight (per kg)
|
||||
zipcode: Postcode
|
||||
users:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
en_US:
|
||||
language_name: "English"
|
||||
activerecord:
|
||||
attributes:
|
||||
spree/order:
|
||||
@@ -7,37 +8,110 @@ en_US:
|
||||
completed_at: Completed At
|
||||
number: Number
|
||||
email: Customer E-mail
|
||||
spree/payment:
|
||||
amount: Amount
|
||||
order_cycle:
|
||||
orders_close_at: Close Date
|
||||
errors:
|
||||
models:
|
||||
spree/user:
|
||||
attributes:
|
||||
email:
|
||||
taken: "There's already an account registered for this email. Please login to reset your password."
|
||||
spree/order:
|
||||
no_card: There are no valid credit cards available
|
||||
order_cycle:
|
||||
attributes:
|
||||
orders_close_at:
|
||||
after_orders_open_at: must be after open date
|
||||
activemodel:
|
||||
errors:
|
||||
models:
|
||||
subscription_validator:
|
||||
attributes:
|
||||
subscription_line_items:
|
||||
at_least_one_product: "^Please add at least one product"
|
||||
not_available: "^%{name} is not available from the selected schedule"
|
||||
ends_at:
|
||||
after_begins_at: "must be after begins at"
|
||||
customer:
|
||||
does_not_belong_to_shop: "does not belong to %{shop}"
|
||||
schedule:
|
||||
not_coordinated_by_shop: "is not coordinated by %{shop}"
|
||||
payment_method:
|
||||
not_available_to_shop: "is not available to %{shop}"
|
||||
invalid_type: "must be a Cash or Stripe method"
|
||||
shipping_method:
|
||||
not_available_to_shop: "is not available to %{shop}"
|
||||
credit_card:
|
||||
not_available: "is not available"
|
||||
blank: "is required"
|
||||
devise:
|
||||
confirmations:
|
||||
send_instructions: "You will receive an email with instructions about how to confirm your account in a few minutes."
|
||||
failed_to_send: "An error occurred whilst sending your confirmation email."
|
||||
resend_confirmation_email: "Resend confirmation email."
|
||||
confirmed: "Thanks for confirming your email! You can now log in."
|
||||
not_confirmed: "Your email address could not be confirmed. Perhaps you have already completed this step?"
|
||||
user_registrations:
|
||||
spree_user:
|
||||
signed_up_but_unconfirmed: "A message with a confirmation link has been sent to your email address. Please open the link to activate your account."
|
||||
failure:
|
||||
invalid: |
|
||||
Invalid email or password.
|
||||
Were you a guest last time? Perhaps you need to create an account or reset your password.
|
||||
enterprise_confirmations:
|
||||
enterprise:
|
||||
confirmed: Thank you, your email address has been confirmed.
|
||||
not_confirmed: Your email address could not be confirmed. Perhaps you have already completed this step?
|
||||
confirmation_sent: "Confirmation email sent!"
|
||||
confirmation_not_sent: "Could not send a confirmation email."
|
||||
Invalid email or password.
|
||||
Were you a guest last time? Perhaps you need to create an account or reset your password.
|
||||
unconfirmed: "You have to confirm your account before continuing."
|
||||
enterprise_mailer:
|
||||
confirmation_instructions:
|
||||
subject: "Please confirm the email address for %{enterprise}"
|
||||
welcome:
|
||||
subject: "%{enterprise}is now on %{sitename}"
|
||||
invite_manager:
|
||||
subject: "%{enterprise} has invited you to be a manager"
|
||||
producer_mailer:
|
||||
order_cycle:
|
||||
subject: "Order cycle report for %{producer}"
|
||||
subscription_mailer:
|
||||
placement_summary_email:
|
||||
subject: A summary of recently placed subscription orders
|
||||
greeting: "Hi %{name},"
|
||||
intro: "Below is a summary of the subscription orders that have just been placed for %{shop}."
|
||||
confirmation_summary_email:
|
||||
subject: A summary of recently confirmed subscription orders
|
||||
greeting: "Hi %{name},"
|
||||
intro: "Below is a summary of the subscription orders that have just been finalised for %{shop}."
|
||||
summary_overview:
|
||||
total: A total of %{count} subscriptions were marked for automatic processing.
|
||||
success_zero: Of these, none were processed successfully.
|
||||
success_some: Of these, %{count} were processed successfully.
|
||||
success_all: All were processed successfully.
|
||||
issues: Details of the issues encountered are provided below.
|
||||
summary_detail:
|
||||
no_message_provided: No error message provided
|
||||
changes:
|
||||
title: Insufficient Stock (%{count} orders)
|
||||
explainer: These orders were processed but insufficient stock was available for some requested items
|
||||
empty:
|
||||
title: No Stock (%{count} orders)
|
||||
explainer: These orders were unable to be processed because no stock was available for any requested items
|
||||
complete:
|
||||
title: Already Processed (%{count} orders)
|
||||
explainer: These orders were already marked as complete, and were therefore left untouched
|
||||
processing:
|
||||
title: Error Encountered (%{count} orders)
|
||||
explainer: Automatic processing of these orders failed due to an error. The error has been listed where possible.
|
||||
failed_payment:
|
||||
title: Failed Payment (%{count} orders)
|
||||
explainer: Automatic processing of payment for these orders failed due to an error. The error has been listed where possible.
|
||||
other:
|
||||
title: Other Failure (%{count} orders)
|
||||
explainer: Automatic processing of these orders failed for an unknown reason. This should not occur, please contact us if you are seeing this.
|
||||
home: "OFN"
|
||||
title: US Food Coop - Open Food Network US
|
||||
title: Open Food Network
|
||||
welcome_to: 'Welcome to '
|
||||
site_meta_description: "We begin from the ground up. With farmers and growers ready to tell their stories proudly and truly. With distributors ready to connect people with products fairly and honestly. With buyers who believe that better weekly shopping decisions can seriously change the world."
|
||||
search_by_name: Search by name or city...
|
||||
producers_join: US producers are now welcome to join US Food Coop - Open Food Network US.
|
||||
producers_join: US producers are now welcome to join the Open Food Network.
|
||||
charges_sales_tax: Charges Sales Tax?
|
||||
print_invoice: "Invoice"
|
||||
print_ticket: "Print invoice"
|
||||
@@ -50,7 +124,7 @@ en_US:
|
||||
cancel_order: "Cancel Order"
|
||||
confirm_send_invoice: "An invoice for this order will be sent to the customer. Are you sure you want to continue?"
|
||||
confirm_resend_order_confirmation: "Are you sure you want to resend the order confirmation email?"
|
||||
must_have_valid_business_number: "Please enter your company number."
|
||||
must_have_valid_business_number: " %{enterprise_name}must have a company registration # before invoices can be sent."
|
||||
invoice: "Invoice"
|
||||
percentage_of_sales: "%{percentage} of sales"
|
||||
capped_at_cap: "capped at %{cap}"
|
||||
@@ -62,6 +136,9 @@ en_US:
|
||||
say_no: "No"
|
||||
say_yes: "Yes"
|
||||
then: then
|
||||
ongoing: Ongoing
|
||||
bill_address: Billing Address
|
||||
ship_address: Shipping Address
|
||||
sort_order_cycles_on_shopfront_by: "Sort Order Cycles On Storefront By"
|
||||
required_fields: Required fields are marked with an asterisk
|
||||
select_continue: Select and Continue
|
||||
@@ -112,23 +189,36 @@ en_US:
|
||||
filter_results: Filter Results
|
||||
quantity: Quantity
|
||||
pick_up: Pick up
|
||||
copy: Copy
|
||||
actions:
|
||||
create_and_add_another: "Create and Add Another"
|
||||
admin:
|
||||
begins_at: Begins At
|
||||
begins_on: Begins On
|
||||
customer: Customer
|
||||
date: Date
|
||||
email: Email
|
||||
ends_at: Ends At
|
||||
ends_on: Ends On
|
||||
name: Name
|
||||
on_hand: On Hand
|
||||
on_demand: On Demand
|
||||
on_demand?: On Demand?
|
||||
order_cycle: Order Cycle
|
||||
payment: Payment
|
||||
payment_method: Payment Method
|
||||
phone: Phone
|
||||
price: Price
|
||||
producer: Producer
|
||||
image: Image
|
||||
product: Product
|
||||
quantity: Quantity
|
||||
schedule: Schedule
|
||||
shipping: Shipping
|
||||
shipping_method: Shipping Method
|
||||
shop: Store
|
||||
sku: SKU
|
||||
status_state: State
|
||||
tags: Tags
|
||||
variant: Variant
|
||||
weight: Weight
|
||||
@@ -143,6 +233,10 @@ en_US:
|
||||
form_invalid: "Form contains missing or invalid fields"
|
||||
clear_filters: Clear Filters
|
||||
clear: Clear
|
||||
show_more: Show more
|
||||
show_n_more: Show %{num} more
|
||||
choose: "Choose..."
|
||||
please_select: Please select...
|
||||
columns: Columns
|
||||
actions: Actions
|
||||
viewing: "Viewing: %{current_view_name}"
|
||||
@@ -270,11 +364,28 @@ en_US:
|
||||
manages: manages
|
||||
products:
|
||||
unit_name_placeholder: 'eg. bunches'
|
||||
bulk_edit:
|
||||
unit: Unit
|
||||
display_as: Display As
|
||||
category: Category
|
||||
tax_category: Tax Category
|
||||
inherits_properties?: Inherits Properties?
|
||||
available_on: Available On
|
||||
av_on: "Av. On"
|
||||
upload_an_image: Upload an image
|
||||
product_search_keywords: Product Search Keywords
|
||||
product_search_tip: Type words to help search your products in the shops. Use space to separate each keyword.
|
||||
SEO_keywords: SEO Keywords
|
||||
seo_tip: Type words to help search your products in the web. Use space to separate each keyword.
|
||||
Search: Search
|
||||
properties:
|
||||
property_name: Property Name
|
||||
inherited_property: Inherited Property
|
||||
variants:
|
||||
to_order_tip: "Items made to order do not have a set stock level, such as loaves of bread made fresh to order."
|
||||
product_distributions: "Product Distributions"
|
||||
group_buy_options: "Group Buy Options"
|
||||
back_to_products_list: "Back to products list"
|
||||
variant_overrides:
|
||||
loading_flash:
|
||||
loading_inventory: LOADING INVENTORY
|
||||
@@ -325,6 +436,7 @@ en_US:
|
||||
max_fulfilled_units: "Max Fulfilled Units"
|
||||
order_error: "Some errors must be resolved before you can update orders.\nAny fields with red borders contain errors."
|
||||
variants_without_unit_value: "WARNING: Some variants do not have a unit value"
|
||||
select_variant: "Select a variant"
|
||||
enterprise:
|
||||
select_outgoing_oc_products_from: Select outgoing OC products from
|
||||
enterprises:
|
||||
@@ -351,6 +463,9 @@ en_US:
|
||||
contact:
|
||||
name: Name
|
||||
name_placeholder: eg. Justin Jones
|
||||
email_address: Public Email Address
|
||||
email_address_placeholder: eg. inquiries@fresh-food.com
|
||||
email_address_tip: "This email address will be displayed in your public profile"
|
||||
phone: Phone
|
||||
phone_placeholder: eg. (123)456-7891
|
||||
website: Website
|
||||
@@ -427,6 +542,10 @@ en_US:
|
||||
allow_order_changes_tip: "Allow customers to change their order as long the order cycle is open."
|
||||
allow_order_changes_false: "Placed orders cannot be changed / cancelled"
|
||||
allow_order_changes_true: "Customers can change / cancel orders while order cycle is open"
|
||||
enable_subscriptions: "Subscriptions"
|
||||
enable_subscriptions_tip: "Enable subscriptions functionality?"
|
||||
enable_subscriptions_false: "Disabled"
|
||||
enable_subscriptions_true: "Enabled"
|
||||
shopfront_message: Shopfront Message
|
||||
shopfront_message_placeholder: >
|
||||
An optional explanation for customers detailing how your shopfront works,
|
||||
@@ -469,6 +588,7 @@ en_US:
|
||||
resend: Resend
|
||||
owner: 'Owner'
|
||||
contact: "Contact"
|
||||
contact_tip: "The manager who will receive enterprise emails for orders and notifications. Must have a confirmed email adress."
|
||||
owner_tip: The primary user responsible for this enterprise.
|
||||
notifications: Notifications
|
||||
notifications_tip: Notifications about orders will be send to this email address.
|
||||
@@ -476,6 +596,11 @@ en_US:
|
||||
notifications_note: 'Note: A new email address may need to be confirmed prior to use'
|
||||
managers: Managers
|
||||
managers_tip: The other users with permission to manage this enterprise.
|
||||
invite_manager: "Invite Manager"
|
||||
invite_manager_tip: "Invite an unregistered user to sign up and become a manager of this enterprise."
|
||||
add_unregistered_user: "Add an unregistered user"
|
||||
email_confirmed: "Email confirmed"
|
||||
email_not_confirmed: "Email not confirmed"
|
||||
actions:
|
||||
edit_profile: Edit Profile
|
||||
properties: Properties
|
||||
@@ -533,6 +658,9 @@ en_US:
|
||||
welcome_text: You have successfully created a
|
||||
next_step: Next step
|
||||
choose_starting_point: 'Choose your starting point:'
|
||||
invite_manager:
|
||||
user_already_exists: "User already exists"
|
||||
error: "Something went wrong"
|
||||
order_cycles:
|
||||
edit:
|
||||
advanced_settings: Advanced Settings
|
||||
@@ -569,6 +697,22 @@ en_US:
|
||||
add_a_tag: Add a tag
|
||||
delivery_details: Pickup / Delivery details
|
||||
debug_info: Debug information
|
||||
index:
|
||||
involving: Involving
|
||||
schedule: Schedule
|
||||
schedules: Schedules
|
||||
adding_a_new_schedule: Adding A New Schedule
|
||||
updating_a_schedule: Updating A Schedule
|
||||
new_schedule: New Schedule
|
||||
create_schedule: Create Schedule
|
||||
update_schedule: Update Schedule
|
||||
delete_schedule: Delete Schedule
|
||||
created_schedule: Created schedule
|
||||
updated_schedule: Updated schedule
|
||||
deleted_schedule: Deleted schedule
|
||||
schedule_name_placeholder: Schedule Name
|
||||
name_required_error: Please enter a name for this schedule
|
||||
no_order_cycles_error: Please select at least one order cycle (drag and drop)
|
||||
name_and_timing_form:
|
||||
name: Name
|
||||
orders_open: Orders open at
|
||||
@@ -585,9 +729,19 @@ en_US:
|
||||
customer_instructions_placeholder: Pick-up or delivery notes
|
||||
products: Products
|
||||
fees: Fees
|
||||
destroy_errors:
|
||||
orders_present: That order cycle has been selected by a customer and cannot be deleted. To prevent customers from accessing it, please close it instead.
|
||||
schedule_present: That order cycle is linked to a schedule and cannot be deleted. Please unlink or delete the schedule first.
|
||||
bulk_update:
|
||||
no_data: Hm, something went wrong. No order cycle data found.
|
||||
producer_properties:
|
||||
index:
|
||||
title: Producer Properties
|
||||
proxy_orders:
|
||||
cancel:
|
||||
could_not_cancel_the_order: Could not cancel the order
|
||||
resume:
|
||||
could_not_resume_the_order: Could not resume the order
|
||||
shared:
|
||||
user_guide_link:
|
||||
user_guide: User Guide
|
||||
@@ -660,6 +814,67 @@ en_US:
|
||||
description: Invoices for import into Xero
|
||||
packing:
|
||||
name: Packing Reports
|
||||
subscriptions:
|
||||
subscriptions: Subscriptions
|
||||
new: New Subscription
|
||||
create: Create Subscription
|
||||
index:
|
||||
please_select_a_shop: Please select a shop
|
||||
edit_subscription: Edit Subscription
|
||||
pause_subscription: Pause Subscription
|
||||
unpause_subscription: Unpause Subscription
|
||||
cancel_subscription: Cancel Subscription
|
||||
setup_explanation:
|
||||
just_a_few_more_steps: 'Just a few more steps before you can begin:'
|
||||
enable_subscriptions: "Enable subscriptions for at least one of your shops"
|
||||
enable_subscriptions_step_1_html: 1. Go to the %{enterprises_link} page, find your shop, and click "Manage"
|
||||
enable_subscriptions_step_2: 2. Under "Shop Preferences", enable the Subscriptions option
|
||||
set_up_shipping_and_payment_methods_html: Set up %{shipping_link} and %{payment_link} methods
|
||||
set_up_shipping_and_payment_methods_note_html: Note that only Cash and Stripe payment methods may<br />be used with subscriptions
|
||||
ensure_at_least_one_customer_html: Ensure that at least one %{customer_link} exists
|
||||
create_at_least_one_schedule: Create at least one Schedule
|
||||
create_at_least_one_schedule_step_1_html: 1. Go to the on the %{order_cycles_link} page
|
||||
create_at_least_one_schedule_step_2: 2. Create an order cycle if you have not already done so
|
||||
create_at_least_one_schedule_step_3: 3. Click '+ New Schedule', and fill out the form
|
||||
once_you_are_done_you_can_html: Once you are done, you can %{reload_this_page_link}
|
||||
reload_this_page: reload this page
|
||||
steps:
|
||||
details: 1. Basic Details
|
||||
address: 2. Address
|
||||
products: 3. Add Products
|
||||
review: 4. Review & Save
|
||||
details:
|
||||
details: Details
|
||||
invalid_error: Oops! Please fill in all of the required fields...
|
||||
allowed_payment_method_types_tip: Only Cash and Stripe payment methods may be used at the moment
|
||||
credit_card: Credit Card
|
||||
no_cards_available: No cards available
|
||||
review:
|
||||
details: Details
|
||||
address: Address
|
||||
products: Products
|
||||
orders:
|
||||
number: Number
|
||||
confirm_edit: Are you sure you want to edit this order? Doing so may make it more difficult to automatically sync changes to the subscription in the future.
|
||||
confirm_cancel_msg: Are you sure you want to cancel this subscription? This action cannot be undone.
|
||||
cancel_failure_msg: 'Sorry, cancellation failed!'
|
||||
confirm_pause_msg: Are you sure you want to pause this subscription?
|
||||
pause_failure_msg: 'Sorry, pausing failed!'
|
||||
confirm_unpause_msg: Are you sure you want to unpause this subscription?
|
||||
unpause_failure_msg: 'Sorry, unpausing failed!'
|
||||
confirm_cancel_open_orders_msg: "Some orders for this subscription are currently open. The customer has already been notified that the order will be placed. Would you like to cancel these order(s) or keep them?"
|
||||
resume_canceled_orders_msg: "Some orders for this subscription can be resumed right now. You can resume them from the orders dropdown."
|
||||
yes_cancel_them: Cancel them
|
||||
no_keep_them: Keep them
|
||||
yes_i_am_sure: Yes, I'm sure
|
||||
order_update_issues_msg: Some orders could not be automatically updated, this is most likely because they have been manually edited. Please review the issues listed below and make any adjustments to individual orders if required.
|
||||
no_results:
|
||||
no_subscriptions: No subscriptions yet...
|
||||
why_dont_you_add_one: Why don't you add one? :)
|
||||
no_matching_subscriptions: No matching subscriptions found
|
||||
schedules:
|
||||
destroy:
|
||||
associated_subscriptions_error: This schedule cannot be deleted because it has associated subscriptions
|
||||
stripe_connect_settings:
|
||||
edit:
|
||||
title: "Stripe Connect"
|
||||
@@ -774,8 +989,11 @@ en_US:
|
||||
no_payment: no payment methods
|
||||
no_shipping_or_payment: no shipping or payment methods
|
||||
unconfirmed: unconfirmed
|
||||
days: days
|
||||
label_shop: "Shop"
|
||||
label_shops: "Stores"
|
||||
label_map: "Map"
|
||||
label_producer: "Producer"
|
||||
label_producers: "Producers"
|
||||
label_groups: "Groups"
|
||||
label_about: "About"
|
||||
@@ -924,7 +1142,7 @@ en_US:
|
||||
email_admin_html: "You can manage your account by logging into the %{link} or by clicking on the cog in the top right hand side of the homepage, and selecting Administration."
|
||||
email_community_html: "We also have an online forum for community discussion related to OFN software and the unique challenges of running a food enterprise. You are encouraged to join in. We are constantly evolving and your input into this forum will shape what happens next. %{link}"
|
||||
join_community: "Join the community"
|
||||
email_help: "If you have any difficulties, check out our FAQs, browse the forum or post a 'Support' topic and someone will help you out!"
|
||||
email_confirmation_activate_account: "Before we can activate your new account, we need to confirm your email address."
|
||||
email_confirmation_greeting: "Hi, %{contact}!"
|
||||
email_confirmation_profile_created: "A profile for %{name} has been successfully created! To activate your Profile we need to confirm this email address."
|
||||
email_confirmation_click_link: "Please click the link below to confirm your email and to continue setting up your profile."
|
||||
@@ -952,6 +1170,23 @@ en_US:
|
||||
email_payment_not_paid: NOT PAID
|
||||
email_payment_summary: Payment summary
|
||||
email_payment_method: "Paying via:"
|
||||
email_so_placement_intro_html: "You have a new order with <strong>%{distributor}</strong>"
|
||||
email_so_placement_details_html: "Here are the details of your order for <strong>%{distributor}</strong>:"
|
||||
email_so_placement_changes: "Unfortunately, not all products that you requested were available. The original quantities that you requested appear crossed-out below."
|
||||
email_so_payment_success_intro_html: "An automatic payment has been processed for your order from <strong>%{distributor}</strong>."
|
||||
email_so_placement_explainer_html: "This order was automatically created for you."
|
||||
email_so_edit_true_html: "You can <a href='%{order_url}'>make changes</a> until orders close on %{orders_close_at}."
|
||||
email_so_edit_false_html: "You can <a href='%{order_url}'>view details of this order</a> at any time."
|
||||
email_so_contact_distributor_html: "If you have any questions you can contact <strong>%{distributor}</strong> via %{email}."
|
||||
email_so_confirmation_intro_html: "Your order with <strong>%{distributor}</strong> is now confirmed"
|
||||
email_so_confirmation_explainer_html: "This order was automatically placed for you, and it has now been finalised."
|
||||
email_so_confirmation_details_html: "Here's everything you need to know about your order from <strong>%{distributor}</strong>:"
|
||||
email_so_empty_intro_html: "We tried to place a new order with <strong>%{distributor}</strong>, but had some problems..."
|
||||
email_so_empty_explainer_html: "Unfortunately, none of products that you ordered were available, so no order has been placed. The original quantities that you requested appear crossed-out below."
|
||||
email_so_empty_details_html: "Here are the details of the unplaced order for <strong>%{distributor}</strong>:"
|
||||
email_so_failed_payment_intro_html: "We tried to process a payment, but had some problems..."
|
||||
email_so_failed_payment_explainer_html: "The payment for your subscription with <strong>%{distributor}</strong> failed because of a problem with your credit card. <strong>%{distributor}</strong> has been notified of this failed payment."
|
||||
email_so_failed_payment_details_html: "Here are the details of the failure provided by the payment gateway:"
|
||||
email_shipping_delivery_details: Delivery details
|
||||
email_shipping_delivery_time: "Delivery on:"
|
||||
email_shipping_delivery_address: "Delivery address:"
|
||||
@@ -961,8 +1196,16 @@ en_US:
|
||||
email_special_instructions: "Your notes:"
|
||||
email_signup_greeting: Hello!
|
||||
email_signup_welcome: "Welcome to %{sitename}!"
|
||||
email_signup_confirmed_email: "Thanks for confirming your email."
|
||||
email_signup_shop_html: "You can now log in at %{link}."
|
||||
email_signup_text: "Thanks for joining the network. If you are a customer, we look forward to introducing you to many fantastic farmers, wonderful food hubs and delicious food! If you are a producer or food enterprise, we are excited to have you as a part of the network."
|
||||
email_signup_help_html: "We welcome all your questions and feedback; you can use the <em>Send Feedback</em> button on the site or email us at %{email}"
|
||||
invite_email:
|
||||
greeting: "Hello!"
|
||||
invited_to_manage: "You have been invited to manage %{enterprise} on %{instance}."
|
||||
confirm_your_email: "You should have received or will soon receive an email with a confirmation link. You won’t be able to access %{enterprise}'s profile until you have confirmed your email."
|
||||
set_a_password: "You will then be prompted to set a password before you are able to administer the enterprise."
|
||||
mistakenly_sent: "Not sure why you have received this email? Please contact %{owner_email} for more information."
|
||||
producer_mail_greeting: "Dear"
|
||||
producer_mail_text_before: "We now have all the consumer orders for the next food drop."
|
||||
producer_mail_order_text: "Here is a summary of the orders for your products:"
|
||||
@@ -1122,6 +1365,7 @@ en_US:
|
||||
shops_signup_help: We're ready to help.
|
||||
shops_signup_help_text: You need a better return. You need new buyers and logistics partners. You need your story told across wholesale, retail, and the kitchen table.
|
||||
shops_signup_detail: Here's the detail.
|
||||
orders: Orders
|
||||
orders_fees: Fees...
|
||||
orders_edit_title: Shopping cart
|
||||
orders_edit_headline: Your shopping cart
|
||||
@@ -1218,6 +1462,7 @@ en_US:
|
||||
password_reset_sent: "An email with instructions on resetting your password has been sent!"
|
||||
reset_password: "Reset password"
|
||||
who_is_managing_enterprise: "Who is responsible for managing %{enterprise}?"
|
||||
update_and_recalculate_fees: "Update And Recalculate Fees"
|
||||
enterprise:
|
||||
registration:
|
||||
modal:
|
||||
@@ -1454,6 +1699,10 @@ en_US:
|
||||
calculator: "Calculator"
|
||||
calculator_values: "Calculator values"
|
||||
flat_percent_per_item: "Flat Percent (per item)"
|
||||
flat_rate_per_item: "Flat Rate (per item)"
|
||||
flat_rate_per_order: "Flat Rate (per order)"
|
||||
flexible_rate: "Flexible Rate"
|
||||
price_sack: "Price Sack"
|
||||
new_order_cycles: "New Order Cycles"
|
||||
new_order_cycle: "New Order Cycle"
|
||||
select_a_coordinator_for_your_order_cycle: "Select a coordinator for your order cycle"
|
||||
@@ -1729,7 +1978,8 @@ en_US:
|
||||
products_unsaved: "Changes to %{n} products remain unsaved."
|
||||
is_already_manager: "is already a manager!"
|
||||
no_change_to_save: "No change to save"
|
||||
add_manager: "Add a manager"
|
||||
user_invited: "%{email} has been invited to manage this enterprise"
|
||||
add_manager: "Add an existing user"
|
||||
users: "Users"
|
||||
about: "About"
|
||||
images: "Images"
|
||||
@@ -1740,6 +1990,7 @@ en_US:
|
||||
social: "Social"
|
||||
business_details: "Business Details"
|
||||
properties: "Properties"
|
||||
shipping: "Shipping"
|
||||
shipping_methods: "Shipping Methods"
|
||||
payment_methods: "Payment Methods"
|
||||
payment_method_fee: "Transaction fee"
|
||||
@@ -1790,6 +2041,14 @@ en_US:
|
||||
order_cycles_email_to_producers_notice: 'Emails to be sent to producers have been queued for sending.'
|
||||
order_cycles_no_permission_to_coordinate_error: "None of your enterprises have permission to coordinate an order cycle"
|
||||
order_cycles_no_permission_to_create_error: "You don't have permission to create an order cycle coordinated by that enterprise"
|
||||
back_to_orders_list: "Back to order list"
|
||||
order_information: "Order Information"
|
||||
date_completed: "Date Completed"
|
||||
amount: "Amount"
|
||||
state_names:
|
||||
ready: Ready
|
||||
pending: Pending
|
||||
shipped: Shipped
|
||||
js:
|
||||
saving: 'Saving...'
|
||||
changes_saved: 'Changes saved.'
|
||||
@@ -1808,8 +2067,12 @@ en_US:
|
||||
resolve_errors: Please resolve the following errors
|
||||
more_items: "+ %{count} More"
|
||||
admin:
|
||||
enterprise_limit_reached: "You have reached the standard limit of enterprises per account. Write to %{contact_email} if you need to increase it."
|
||||
modals:
|
||||
got_it: Got it
|
||||
close: "Close"
|
||||
invite: "Invite"
|
||||
invite_title: "Invite an unregistered user"
|
||||
tag_rule_help:
|
||||
title: Tag Rules
|
||||
overview: Overview
|
||||
@@ -1962,8 +2225,8 @@ en_US:
|
||||
could_not_delete_customer: 'Could not delete customer'
|
||||
product_import:
|
||||
confirmation: |
|
||||
This will set stock level to zero on all products for this
|
||||
enterprise that are not present in the uploaded file.
|
||||
This will set stock level to zero on all products for this
|
||||
enterprise that are not present in the uploaded file.
|
||||
order_cycles:
|
||||
update_success: 'Your order cycle has been updated.'
|
||||
no_distributors: There are no distributors in this order cycle. This order cycle will not be visible to customers until you add one. Would you like to continue saving this order cycle?'
|
||||
@@ -1973,6 +2236,10 @@ en_US:
|
||||
customers:
|
||||
select_shop: 'Please select a shop first'
|
||||
could_not_create: Sorry! Could not create
|
||||
subscriptions:
|
||||
closes: closes
|
||||
closed: closed
|
||||
close_date_not_set: Close date not set
|
||||
producers:
|
||||
signup:
|
||||
start_free_profile: "Start with a free profile, and expand when you're ready!"
|
||||
@@ -1980,6 +2247,8 @@ en_US:
|
||||
email: Email
|
||||
account_updated: "Account updated!"
|
||||
my_account: "My account"
|
||||
date: "Date"
|
||||
time: "Time"
|
||||
admin:
|
||||
orders:
|
||||
invoice:
|
||||
@@ -2086,14 +2355,22 @@ en_US:
|
||||
address: address
|
||||
adjustments: adjustments
|
||||
awaiting_return: awaiting return
|
||||
canceled: cancelled
|
||||
cart: cart
|
||||
complete: complete
|
||||
confirm: confirm
|
||||
delivery: delivery
|
||||
paused: paused
|
||||
payment: payment
|
||||
pending: pending
|
||||
resumed: resumed
|
||||
returned: returned
|
||||
skrill: skrill
|
||||
subscription_state:
|
||||
active: active
|
||||
pending: pending
|
||||
paused: paused
|
||||
canceled: cancelled
|
||||
payment_states:
|
||||
balance_due: balance due
|
||||
completed: completed
|
||||
@@ -2114,13 +2391,15 @@ en_US:
|
||||
user_mailer:
|
||||
reset_password_instructions:
|
||||
request_sent_text: |
|
||||
A request to reset your password has been made.
|
||||
If you did not make this request, simply ignore this email.
|
||||
A request to reset your password has been made.
|
||||
If you did not make this request, simply ignore this email.
|
||||
link_text: >
|
||||
If you did make this request just click the link below.
|
||||
issue_text: |
|
||||
If the above URL does nor work, try to copy and paste it into your browser.
|
||||
If you continue to have problems please feel free to contact us.
|
||||
If the above URL does nor work, try to copy and paste it into your browser.
|
||||
If you continue to have problems please feel free to contact us.
|
||||
confirmation_instructions:
|
||||
subject: Please confirm your OFN account
|
||||
weight: Weight (per lb)
|
||||
zipcode: Zipcode
|
||||
users:
|
||||
@@ -2132,6 +2411,7 @@ en_US:
|
||||
cards: Credit Cards
|
||||
transactions: Transactions
|
||||
settings: Account Settings
|
||||
unconfirmed_email: "Pending email confirmation for: %{unconfirmed_email}. Your email address will be updated once the new email is confirmed."
|
||||
orders:
|
||||
open_orders: Open Orders
|
||||
past_orders: Past Orders
|
||||
|
||||
@@ -8,6 +8,8 @@ es:
|
||||
completed_at: Completado en
|
||||
number: Número
|
||||
email: E-mail del consumidor
|
||||
spree/payment:
|
||||
amount: Cantidad
|
||||
errors:
|
||||
models:
|
||||
spree/user:
|
||||
@@ -58,6 +60,8 @@ es:
|
||||
subject: "Confirma la dirección de correo electrónico de %{enterprise}"
|
||||
welcome:
|
||||
subject: "%{enterprise} está ahora en %{sitename}"
|
||||
invite_manager:
|
||||
subject: "%{enterprise} te ha invitado a ser administrador"
|
||||
producer_mailer:
|
||||
order_cycle:
|
||||
subject: "Informe Ciclo de Pedido para %{producer}"
|
||||
@@ -200,6 +204,7 @@ es:
|
||||
phone: Teléfono
|
||||
price: Precio
|
||||
producer: Productora
|
||||
image: Imagen
|
||||
product: Producto
|
||||
quantity: Cantidad
|
||||
schedule: Programación
|
||||
@@ -353,6 +358,14 @@ es:
|
||||
manages: Gestionan
|
||||
products:
|
||||
unit_name_placeholder: 'ej. manojos'
|
||||
bulk_edit:
|
||||
unit: Unidad
|
||||
display_as: Mostrar como
|
||||
category: Categoría
|
||||
tax_category: Categoría de impuestos
|
||||
inherits_properties?: ¿Hereda propiedades?
|
||||
available_on: Disponible en
|
||||
upload_an_image: Subir una imagen
|
||||
properties:
|
||||
property_name: Nombre de la Propiedad
|
||||
inherited_property: Propiedad Heredada
|
||||
@@ -412,6 +425,7 @@ es:
|
||||
max_fulfilled_units: "Max Unidades Completadas"
|
||||
order_error: "Algunos errores deberán ser resueltos antes de que puedas actualizar los pedidos.\nTodos los campos con borde rojo contienen errores."
|
||||
variants_without_unit_value: "CUIDADO: Algunas variedades no tienen un valor unitario "
|
||||
select_variant: "Seleccione una variante"
|
||||
enterprise:
|
||||
select_outgoing_oc_products_from: Selecciona los productos OC que salgan de
|
||||
enterprises:
|
||||
@@ -573,6 +587,9 @@ es:
|
||||
notifications_note: 'Nota: Una nueva dirección de correo debe ser confirmada. '
|
||||
managers: Gestoras
|
||||
managers_tip: Otras usuarias con permiso para gestionar esta organización.
|
||||
invite_manager: "Invitar administrador"
|
||||
invite_manager_tip: "Invite a un usuario no registrado a registrarse y convertirse en administrador de esta organización."
|
||||
add_unregistered_user: "Agregar un usuario no registrado"
|
||||
email_confirmed: "Correo electrónico confirmado"
|
||||
email_not_confirmed: "Correo electrónico no confirmado"
|
||||
actions:
|
||||
@@ -632,6 +649,9 @@ es:
|
||||
welcome_text: Has creado correctamente un
|
||||
next_step: Siguiente paso
|
||||
choose_starting_point: 'Elige tu punto de partida:'
|
||||
invite_manager:
|
||||
user_already_exists: "El usuario ya existe"
|
||||
error: "Algo salió mal"
|
||||
order_cycles:
|
||||
edit:
|
||||
advanced_settings: Configuración Avanzada
|
||||
@@ -1170,6 +1190,12 @@ es:
|
||||
email_signup_shop_html: "Ahora puedes iniciar sesión en %{link}."
|
||||
email_signup_text: "Gracias por unirte a la red. Si eres un comprador, ¡esperamos presentarte a muchos agricultores, grupos de consumo y deliciosa comida! Si eres una productora o formas parte de una organización de alimentos, estamos emocionados de que formes parte de la red."
|
||||
email_signup_help_html: "Agradecemos todas tus preguntas y feedback; puedes usar el botón de <em>Enviar Feedback</em> en el sitio o escribir un email a %{email}"
|
||||
invite_email:
|
||||
greeting: "¡Hola!"
|
||||
invited_to_manage: "Ha sido invitado a administrar %{enterprise} en %{instance}."
|
||||
confirm_your_email: "En breve recibirá un correo electrónico para confirmar su registro."
|
||||
set_a_password: "Luego se le pedirá que establezca una contraseña antes de poder administrar la organización."
|
||||
mistakenly_sent: "¿No está seguro de por qué ha recibido este correo electrónico? Por favor, póngase en contacto con %{owner_email} para obtener más información, o puede ponerse en contacto con %{instance} en %{instance_email}."
|
||||
producer_mail_greeting: "Estimada"
|
||||
producer_mail_text_before: "Ahora tenemos todas los pedidos de las consumidoras para la siguiente ronda."
|
||||
producer_mail_order_text: "Se muestra un resumen de los pedidos de tus productos:"
|
||||
@@ -1432,6 +1458,7 @@ es:
|
||||
password_reset_sent: "¡Le enviamos un correo electrónico con instrucciones para restaurar la contraseña!"
|
||||
reset_password: "Restaurar contraseña"
|
||||
who_is_managing_enterprise: "¿Quién es responsable de administrar %{enterprise}?"
|
||||
update_and_recalculate_fees: "Actualizar y recalcular tarifas"
|
||||
enterprise:
|
||||
registration:
|
||||
modal:
|
||||
@@ -1625,7 +1652,7 @@ es:
|
||||
outstanding_balance: "Saldo extraordinario"
|
||||
admin_entreprise_relationships: "Relaciones de la Organización"
|
||||
admin_entreprise_relationships_everything: "Marcar todos"
|
||||
admin_entreprise_relationships_permits: "Permisos"
|
||||
admin_entreprise_relationships_permits: "Permite"
|
||||
admin_entreprise_relationships_seach_placeholder: "Buscar"
|
||||
admin_entreprise_relationships_button_create: "Crear"
|
||||
admin_entreprise_groups: "Redes de organizaciones"
|
||||
@@ -1943,7 +1970,8 @@ es:
|
||||
products_unsaved: "Los cambios de %{n} productos aún no se han guardado."
|
||||
is_already_manager: "¡Ya eres un administrador!"
|
||||
no_change_to_save: "No hay cambios para guardar"
|
||||
add_manager: "Añadir a un administrador"
|
||||
user_invited: "%{email} ha sido invitado a administrar esta organización"
|
||||
add_manager: "Agrega un usuario existente"
|
||||
users: "Usuarias"
|
||||
about: "Acerca de"
|
||||
images: "Imagenes"
|
||||
@@ -1954,6 +1982,7 @@ es:
|
||||
social: "Social"
|
||||
business_details: "Detalles de la Organización"
|
||||
properties: "Propiedades"
|
||||
shipping: "Envío"
|
||||
shipping_methods: "Métodos de envío"
|
||||
payment_methods: "Métodos de Pago"
|
||||
payment_method_fee: "Tarifa de Transacción"
|
||||
@@ -2004,6 +2033,9 @@ es:
|
||||
order_cycles_email_to_producers_notice: 'Los correos electrónicos que se enviarán a las productoras se han puesto en cola para enviarlos.'
|
||||
order_cycles_no_permission_to_coordinate_error: "Ninguna de tus organizaciones tiene permiso para coordinar un ciclo de pedido"
|
||||
order_cycles_no_permission_to_create_error: "No tienes permiso para crear un ciclo de pedido coordinado por esta empresa."
|
||||
back_to_orders_list: "Volver a la lista de pedidos"
|
||||
order_information: "información del pedido"
|
||||
amount: "Cantidad"
|
||||
js:
|
||||
saving: 'Guardando...'
|
||||
changes_saved: 'Cambios guardados.'
|
||||
@@ -2195,6 +2227,7 @@ es:
|
||||
subscriptions:
|
||||
closes: cierra
|
||||
closed: cerrado
|
||||
close_date_not_set: Fecha de cierre no establecida
|
||||
producers:
|
||||
signup:
|
||||
start_free_profile: "Empieze con un perfil gratuito, y amplíelo cuando esté preparado!"
|
||||
@@ -2308,14 +2341,23 @@ es:
|
||||
address: dirección
|
||||
adjustments: ajustes
|
||||
awaiting_return: Esperando retorno
|
||||
canceled: cancelado
|
||||
cart: carrito
|
||||
complete: completar
|
||||
confirm: Confirmar
|
||||
delivery: Entrega
|
||||
paused: pausado
|
||||
payment: pago
|
||||
pending: pendiente
|
||||
resumed: resumido
|
||||
returned: devuelto
|
||||
skrill: skrill
|
||||
subscription_state:
|
||||
active: activo
|
||||
pending: pendiente
|
||||
ended: terminado
|
||||
paused: pausado
|
||||
canceled: cancelado
|
||||
payment_states:
|
||||
balance_due: saldo debido
|
||||
completed: completado
|
||||
@@ -2356,6 +2398,7 @@ es:
|
||||
cards: Tarjetas de crédito
|
||||
transactions: Transacciones
|
||||
settings: Configuración de la cuenta
|
||||
unconfirmed_email: "Correo electrónico pendiente de confirmación para: %{unconfirmed_email}. Su dirección de correo electrónico se actualizará una vez que se confirme el nuevo correo electrónico."
|
||||
orders:
|
||||
open_orders: Pedidos Abiertos
|
||||
past_orders: Pedidos anteriores
|
||||
|
||||
@@ -8,6 +8,8 @@ fr:
|
||||
completed_at: 'Passée à '
|
||||
number: N° commande
|
||||
email: Email acheteur
|
||||
spree/payment:
|
||||
amount: Montant
|
||||
errors:
|
||||
models:
|
||||
spree/user:
|
||||
@@ -43,25 +45,23 @@ fr:
|
||||
send_instructions: "Un email a été envoyé avec des instructions pour confirmer votre adresse email. Vérifiez votre boite mail!"
|
||||
failed_to_send: "Une erreur est survenue lors de l'envoi de l'email de confirmation."
|
||||
resend_confirmation_email: "Renvoyer l'email de confirmation."
|
||||
confirmed: "Merci d'avoir confirmé votre adresse email. Vous pouvez maintenant vous connecter."
|
||||
not_confirmed: "Votre adresse email n'a pas pu être confirmée. Peut-être avez-vous déjà confirmé cette adresse email?"
|
||||
user_registrations:
|
||||
spree_user:
|
||||
signed_up_but_unconfirmed: "Un message avec un lien de confirmation a été envoyé à l'adresse email indiquée. Veuillez cliquer sur ce lien pour activer votre compte."
|
||||
failure:
|
||||
invalid: |
|
||||
Email / mot de passe incorrect.
|
||||
Créez votre compte ou réinitialisez votre mot de passe.
|
||||
Email / mot de passe incorrect.
|
||||
Créez votre compte ou réinitialisez votre mot de passe.
|
||||
unconfirmed: "Veuillez valider le lien envoyé par email pour pouvoir continuer."
|
||||
enterprise_confirmations:
|
||||
enterprise:
|
||||
confirmed: Merci, votre adresse email a bien été confirmée!
|
||||
not_confirmed: Votre adresse email n'a pas pu être confirmée. Peut-être l'aviez-vous déjà confirmée?
|
||||
confirmation_sent: "Un mail de confirmation a été envoyé!"
|
||||
confirmation_not_sent: "Impossible d'envoyer le mail de confirmation."
|
||||
enterprise_mailer:
|
||||
confirmation_instructions:
|
||||
subject: "Confirmez l'adresse email pour %{enterprise}"
|
||||
welcome:
|
||||
subject: "%{enterprise} est maintenant sur %{sitename}"
|
||||
invite_manager:
|
||||
subject: "%{enterprise} vous a invité comme manager"
|
||||
producer_mailer:
|
||||
order_cycle:
|
||||
subject: "Rapport de cycle de vente pour %{producer}"
|
||||
@@ -204,6 +204,7 @@ fr:
|
||||
phone: N° tel
|
||||
price: Prix
|
||||
producer: Producteur
|
||||
image: Image
|
||||
product: Produit
|
||||
quantity: Quantité
|
||||
schedule: Rythme d'abonnement
|
||||
@@ -357,6 +358,17 @@ fr:
|
||||
manages: gère
|
||||
products:
|
||||
unit_name_placeholder: 'ex: botte'
|
||||
bulk_edit:
|
||||
unit: Unité
|
||||
display_as: Unité affichéé
|
||||
category: Catégorie
|
||||
tax_category: TVA applicable
|
||||
inherits_properties?: Hériter des propriétés?
|
||||
available_on: Disponible via
|
||||
av_on: "Disp. via"
|
||||
upload_an_image: Importer une image
|
||||
product_search_keywords: Mots-clés de recherche produits
|
||||
Search: Rechercher
|
||||
properties:
|
||||
property_name: Nom du label
|
||||
inherited_property: Label producteur appliqué par défaut
|
||||
@@ -364,7 +376,6 @@ fr:
|
||||
to_order_tip: "Les articles fabriqués sur commande n'ont pas un niveau de stock défini, comme des pains faits à la main."
|
||||
product_distributions: "Lieux de distribution"
|
||||
group_buy_options: "Options d'achat par lot"
|
||||
seo: "Référencement"
|
||||
back_to_products_list: "Retour à la liste produits"
|
||||
variant_overrides:
|
||||
loading_flash:
|
||||
@@ -416,6 +427,7 @@ fr:
|
||||
max_fulfilled_units: "Nombre max d'unités commandées"
|
||||
order_error: "Des erreurs doivent être résolues avant de pouvoir mettre à jour les commandes.\nLes champs entourés en rouge contiennent des erreurs."
|
||||
variants_without_unit_value: "ATTENTION: certaines variantes n'ont pas de nombre d'unités"
|
||||
select_variant: "Choisir une variante"
|
||||
enterprise:
|
||||
select_outgoing_oc_products_from: Sélectionner les produits sortants pour le cycle de vente parmi
|
||||
enterprises:
|
||||
@@ -576,6 +588,9 @@ fr:
|
||||
notifications_note: 'A noter: si vous saisissez une nouvelle adresse, un email de confirmation sera envoyé à cette adresse avec un lien de validation à cliquer.'
|
||||
managers: Managers
|
||||
managers_tip: Sélectionner ici les utilisateurs ayant la permission de gérer cette entreprise. Ils doivent avoir un compte sur Open Food France pour être sélectionnés.
|
||||
invite_manager: "Inviter un manager"
|
||||
invite_manager_tip: "Inviter un nouvel utilisateur à créer son compte et le nommer comme manager de cette entreprise."
|
||||
add_unregistered_user: "Ajouter un nouvel utilisateur"
|
||||
email_confirmed: "Email confirmé"
|
||||
email_not_confirmed: "Email non confirmé"
|
||||
actions:
|
||||
@@ -635,6 +650,9 @@ fr:
|
||||
welcome_text: 'Vous avez créé avec succès '
|
||||
next_step: Etape suivante
|
||||
choose_starting_point: 'Choisissez par où commencer:'
|
||||
invite_manager:
|
||||
user_already_exists: "Le compte existe déjà"
|
||||
error: "Un problème est survenu"
|
||||
order_cycles:
|
||||
edit:
|
||||
advanced_settings: Paramétrages avancés
|
||||
@@ -821,6 +839,12 @@ fr:
|
||||
allowed_payment_method_types_tip: Seules des méthodes de paiement de type "cash" ou "Stripe" peuvent être utilisées pour le moment
|
||||
credit_card: Carte de crédit
|
||||
no_cards_available: Pas de carte disponible
|
||||
loading_flash:
|
||||
loading: Abonnements en cours de chargement
|
||||
review:
|
||||
details: Informations
|
||||
address: Adresse
|
||||
products: Produits
|
||||
product_already_in_order: Ce produit a déjà été ajouté à la commande. Veuillez directement modifier la quantité.
|
||||
orders:
|
||||
number: Nombre
|
||||
@@ -832,6 +856,7 @@ fr:
|
||||
confirm_unpause_msg: Voulez-vous vraiment annuler la mise en pause de cet abonnement?
|
||||
unpause_failure_msg: 'Désolé, l''annulation de la mise en pause a échoué!'
|
||||
confirm_cancel_open_orders_msg: "Cet abonnement a des commandes ouvertes. Les acheteurs ont été notifiés que leur commande allait être passée. Voulez-vous annulez ces commandes ou les conserver?"
|
||||
resume_canceled_orders_msg: "Certaines commandes pour cet abonnement peuvent être réouvertes dès maintenant. Vous pouvez les réouvrir depuis la liste des commandes."
|
||||
yes_cancel_them: Les annuler
|
||||
no_keep_them: Les conserver
|
||||
yes_i_am_sure: Oui, je confirme
|
||||
@@ -1084,7 +1109,7 @@ fr:
|
||||
order_delivery_address: Adresse de livraison
|
||||
order_delivery_time: Créneau de livraison/retrait
|
||||
order_special_instructions: "Vos commentaires:"
|
||||
order_pickup_time: Prêt à être retirer
|
||||
order_pickup_time: Prêt à être retiré
|
||||
order_pickup_instructions: Instructions de retrait
|
||||
order_produce: Produit
|
||||
order_total_price: Total
|
||||
@@ -1107,7 +1132,6 @@ fr:
|
||||
email_admin_html: "Vous pouvez gérer votre compte en vous connectant ici %{link} ou en cliquant sur la roue en haut à droite de la page d'accueil et en sélectionnant Administration."
|
||||
email_community_html: "Nous avons aussi un forum de discussion en ligne (en anglais) pour échanger avec la communauté sur des questions liées au logiciel OFN et aux défis de la gestion d'un food hub. Nous vous invitons à y participer. Nous sommes en constante évolution et vos contributions à ce forum vont façonner les prochaines étapes. %{link}"
|
||||
join_community: "Rejoindre la communauté"
|
||||
email_help: "En cas de difficulté, consultez notre FAQ, parcourez le forum (en anglais) ou postez un message dans la section 'Support' et quelqu'un viendra vous aider!"
|
||||
email_confirmation_activate_account: "Avant de pouvoir activer votre compte, nous devons nous assurer de la validité de votre adresse email."
|
||||
email_confirmation_greeting: "Bonjour %{contact}!"
|
||||
email_confirmation_profile_created: "Le profil pour %{name} a été créé avec succès! Pour activer votre Profil nous devons vérifier cette adresse email."
|
||||
@@ -1166,6 +1190,10 @@ fr:
|
||||
email_signup_shop_html: "Vous pouvez maintenant vous connecter sur %{link}."
|
||||
email_signup_text: "Merci d'avoir rejoint le réseau. Si vous êtes un client, nous sommes impatients de vous faire découvrir de nombreux agriculteurs fantastiques, de merveilleux hubs de distribution et des plats délicieux! Si vous êtes un producteur ou autre entreprise alimentaire, nous sommes ravis de vous compter parmi les membres du réseau."
|
||||
email_signup_help_html: "Vos questions et feedbacks sont les bienvenus! Cliquez sur le bouton <em>Envoyer un commentaire</em> sur le site ou envoyez-nous un email à %{email}"
|
||||
invite_email:
|
||||
greeting: "Bonjour!"
|
||||
invited_to_manage: "Vous avez été invité(e) à gérer %{enterprise} sur %{instance}."
|
||||
set_a_password: "Vous serez ensuite invité(e) à choisir un mot de passe avant de pouvoir accéder et gérer le profil de l'entreprise."
|
||||
producer_mail_greeting: "Cher(ère)"
|
||||
producer_mail_text_before: "Nous avons reçu toutes les commandes pour la prochaine livraison."
|
||||
producer_mail_order_text: "Voilà la liste et les quantités des produits commandés vous concernant:"
|
||||
@@ -1333,8 +1361,8 @@ fr:
|
||||
orders_edit_title: Panier
|
||||
orders_edit_headline: Votre panier
|
||||
orders_edit_time: Commande prête pour
|
||||
orders_edit_continue: Poursuivre mes achats
|
||||
orders_edit_checkout: Poursuivre ma commande
|
||||
orders_edit_continue: Retour à la boutique
|
||||
orders_edit_checkout: Etape suivante (coordonnées)
|
||||
orders_form_empty_cart: "Vider le panier"
|
||||
orders_form_subtotal: Sous-total
|
||||
orders_form_admin: Admin & traitements
|
||||
@@ -1354,8 +1382,8 @@ fr:
|
||||
orders_could_not_cancel: "Désolé, la commande n'a pas pu être annulée"
|
||||
orders_cannot_remove_the_final_item: "Impossible de supprimer le dernier produit d'une commande, si vous souhaitez supprimer l'ensemble des produits, veuillez annuler la commande."
|
||||
orders_bought_items_notice:
|
||||
one: Un produit ajouté a bien été confirmé pour ce cycle de vente
|
||||
other: '%{count} produits ajoutés ont été confirmés pour ce cycle de vente.'
|
||||
one: "Un produit ajouté a bien été confirmé pour ce cycle de vente"
|
||||
other: "%{count} produits ajoutés ont été confirmés pour ce cycle de vente."
|
||||
orders_bought_edit_button: Modifier les produits confirmés
|
||||
orders_bought_already_confirmed: "* déjà confirmé"
|
||||
orders_confirm_cancel: Voulez-vous vraiment annuler cette commande ?
|
||||
@@ -1428,6 +1456,7 @@ fr:
|
||||
password_reset_sent: "Un email contenant les instructions pour changer votre mot de passe a été envoyé!"
|
||||
reset_password: "Changer de mot de passe"
|
||||
who_is_managing_enterprise: "Qui gère %{enterprise}?"
|
||||
update_and_recalculate_fees: "Mettre à jour et recalculer les frais"
|
||||
enterprise:
|
||||
registration:
|
||||
modal:
|
||||
@@ -1939,7 +1968,8 @@ fr:
|
||||
products_unsaved: "Des changements sur %{n} produits n'ont pas été sauvegardés."
|
||||
is_already_manager: "est déjà manager!"
|
||||
no_change_to_save: "Pas de changement à sauvegarder"
|
||||
add_manager: "Ajouter un manager"
|
||||
user_invited: "%{email}a été invité à gérer cette entreprise"
|
||||
add_manager: "Ajouter un utilisateur existant"
|
||||
users: "Managers"
|
||||
about: "A propos"
|
||||
images: "Images"
|
||||
@@ -1950,6 +1980,7 @@ fr:
|
||||
social: "Réseaux sociaux"
|
||||
business_details: "Juridique"
|
||||
properties: "Propriétés / labels"
|
||||
shipping: "Expédition"
|
||||
shipping_methods: "Méthodes de livraison"
|
||||
payment_methods: "Méthodes de paiement"
|
||||
payment_method_fee: "Frais de transaction"
|
||||
@@ -1966,7 +1997,7 @@ fr:
|
||||
content_configuration_pricing_table: "(A FAIRE : Tableau des tarifs)"
|
||||
content_configuration_case_studies: "(A FAIRE : Etudes de Cas)"
|
||||
content_configuration_detail: "(A FAIRE : Détails)"
|
||||
enterprise_name_error: "est déjà utilisé. Si vous êtes le gérant de cette entreprise et que vous souhaitez demander le transfert du compte, merci de contacter le manager actuel du profil à %{email}."
|
||||
enterprise_name_error: "est déjà utilisé. Si vous êtes le gérant de cette entreprise et que vous souhaitez demander le transfert du compte, ou bien si vous souhaitez distribuer les produits de cette entreprise, merci de contacter le manager actuel du profil à %{email}."
|
||||
enterprise_owner_error: "^ %{email} ne peut pas créer de nouvelles entreprises (limite actuelle : %{enterprise_limit} entreprises )."
|
||||
enterprise_role_uniqueness_error: "^Ce rôle existe déjà."
|
||||
inventory_item_visibility_error: doit être vrai ou faux
|
||||
@@ -2002,6 +2033,14 @@ fr:
|
||||
order_cycles_email_to_producers_notice: 'Les emails à destination des producteurs ont été mis en file d''attente.'
|
||||
order_cycles_no_permission_to_coordinate_error: "Aucune de vos entreprises n'a les droits requis pour coordonner un cycle de vente"
|
||||
order_cycles_no_permission_to_create_error: "Vous n'avez pas les droits requis pour créer un cycle de vente coordonné par cette entreprise"
|
||||
back_to_orders_list: "Retour à la liste des commandes"
|
||||
order_information: "Info commande"
|
||||
date_completed: "Date d'opération"
|
||||
amount: "Montant"
|
||||
state_names:
|
||||
ready: Prêt
|
||||
pending: En attente
|
||||
shipped: Expédié
|
||||
js:
|
||||
saving: 'Enregistrement en cours...'
|
||||
changes_saved: 'Modifications sauvegardées.'
|
||||
@@ -2015,13 +2054,17 @@ fr:
|
||||
unavailable: Non disponible
|
||||
profile: Profil
|
||||
hub: Hub
|
||||
shop: Faire mes courses
|
||||
shop: Boutique
|
||||
choose: Choisir
|
||||
resolve_errors: Veuillez corriger les erreurs suivantes
|
||||
more_items: "+ %{count} en plus"
|
||||
admin:
|
||||
enterprise_limit_reached: "Vous avez atteint le nombre limite d'entreprises autorisées par défaut. Ecrivez à %{contact_email}si vous avez besoin d'augmenter cette limite."
|
||||
modals:
|
||||
got_it: J'ai compris
|
||||
close: "Fermer"
|
||||
invite: "Inviter"
|
||||
invite_title: "Inviter un nouvel utilisateur"
|
||||
tag_rule_help:
|
||||
title: Règles de tag
|
||||
overview: Aperçu
|
||||
@@ -2183,8 +2226,8 @@ fr:
|
||||
could_not_delete_customer: 'L''acheteur n''a pas pu être supprimé'
|
||||
product_import:
|
||||
confirmation: |
|
||||
Cette action remettra tous les niveaux de stock à zero pour cette
|
||||
entreprises pour les produits non présents dans ce fichier.
|
||||
Cette action remettra tous les niveaux de stock à zero pour cette
|
||||
entreprises pour les produits non présents dans ce fichier.
|
||||
order_cycles:
|
||||
update_success: 'Votre cycle de vente a été mis à jour.'
|
||||
no_distributors: Il n'y a pas de distributeur pour ce cycle de vente. Il ne sera pas visible aux acheteurs tant qu'il n'y aura pas de distributeur. Voulez-vous tout de même sauvegarder ce cycle de vente ?
|
||||
@@ -2194,6 +2237,10 @@ fr:
|
||||
customers:
|
||||
select_shop: 'Veuillez d''abord choisir une boutique'
|
||||
could_not_create: Oups ! Création impossible...
|
||||
subscriptions:
|
||||
closes: ferme
|
||||
closed: fermé
|
||||
close_date_not_set: Date de fin non renseignée
|
||||
producers:
|
||||
signup:
|
||||
start_free_profile: "Commencez par créer votre profil entreprise, et changez de formule quand vous êtes prêt !"
|
||||
@@ -2201,6 +2248,8 @@ fr:
|
||||
email: Email
|
||||
account_updated: "Compte mis à jour!"
|
||||
my_account: "Mon compte"
|
||||
date: "Date"
|
||||
time: "Heure"
|
||||
admin:
|
||||
orders:
|
||||
invoice:
|
||||
@@ -2344,14 +2393,14 @@ fr:
|
||||
user_mailer:
|
||||
reset_password_instructions:
|
||||
request_sent_text: |
|
||||
Votre demande de nouveau mot de passe a bien été prise en compte.
|
||||
Si vous n'avez pas demandé de nouveau mot de passe, veuillez ignorer cet e-mail.
|
||||
Votre demande de nouveau mot de passe a bien été prise en compte.
|
||||
Si vous n'avez pas demandé de nouveau mot de passe, veuillez ignorer cet e-mail.
|
||||
link_text: >
|
||||
Si vous êtes bien à l'origine de cette demande, veuillez cliquer sur le
|
||||
lien ci-dessous :
|
||||
issue_text: |
|
||||
Si le lien ne fonctionne pas, essayez de le copier - coller dans la barre d'adresse de votre navigateur.
|
||||
Si le problème persiste, n'hésitez pas à nous contacter.
|
||||
Si le lien ne fonctionne pas, essayez de le copier - coller dans la barre d'adresse de votre navigateur.
|
||||
Si le problème persiste, n'hésitez pas à nous contacter.
|
||||
confirmation_instructions:
|
||||
subject: Veuillez confirmer votre compte
|
||||
weight: Poids (au kg)
|
||||
|
||||
@@ -4,30 +4,31 @@ it:
|
||||
spree/order:
|
||||
payment_state: Stato del pagamento
|
||||
shipment_state: Stato della spedizione
|
||||
errors:
|
||||
models:
|
||||
spree/user:
|
||||
attributes:
|
||||
email:
|
||||
taken: "Esiste già un account con questa email. Ti preghiamo di effettuare il login o impostare una nuova password."
|
||||
devise:
|
||||
failure:
|
||||
invalid: |
|
||||
Email o password non valida.
|
||||
La volta scorsa eri ospite? Forse devi creare un account o resettare la tua password.
|
||||
enterprise_confirmations:
|
||||
enterprise:
|
||||
confirmed: Grazie, il tuo indirizzo email è stato confermato.
|
||||
not_confirmed: L'indirizzo email non è stato confermato. Forse avevi già completato questo step?
|
||||
confirmation_sent: "Email di conferma inviata!"
|
||||
confirmation_not_sent: "Non è stato possibile mandare l'email di conferma."
|
||||
Email o password non valida.
|
||||
La volta scorsa eri ospite? Forse devi creare un account o resettare la tua password.
|
||||
enterprise_mailer:
|
||||
confirmation_instructions:
|
||||
subject: "Per favore conferma l'indirizzo email per %{enterprise}"
|
||||
welcome:
|
||||
subject: "%{enterprise} è ora su %{sitename}"
|
||||
home: "OFN"
|
||||
title: Open Food Network
|
||||
welcome_to: 'Benvenuto a'
|
||||
site_meta_description: "Cominciamo da zero. Con i produttori e gli allevatori pronti a raccontare le loro storie, sinceramente e orgogliosamente. Con i distributori pronti a connettere le persone con i prodotti in modo giusto ed equo. Con i compratori che credono che migliori decisioni per l'acquisto settimanale possano..."
|
||||
search_by_name: Cerca per nome o zona...
|
||||
producers: 'Produttori'
|
||||
producers_join: I Produttori sono ora invitati ad unirsi ad Open Food Network
|
||||
charges_sales_tax: Addebiti l'IVA?
|
||||
print_invoice: "Stampa fattura"
|
||||
print_ticket: "Stampa Biglietto"
|
||||
send_invoice: "Manda fattura"
|
||||
resend_confirmation: "Rimanda conferma"
|
||||
view_order: "Vedi l'ordine"
|
||||
@@ -49,6 +50,22 @@ it:
|
||||
say_yes: "Sì"
|
||||
then: poi
|
||||
sort_order_cycles_on_shopfront_by: "Ordina cicli d'ordine in vetrina per"
|
||||
select_continue: Seleziona e continua
|
||||
remove: Rimuovi
|
||||
or: o
|
||||
show_more: Mostra di più
|
||||
show_all: Mostra tutti
|
||||
show_all_with_more: "Mostra tutti (ancora %{num})"
|
||||
cancel: Annulla
|
||||
edit: Modifica
|
||||
all: Tutti
|
||||
available: Disponibile
|
||||
weight: Peso
|
||||
'yes': "Sì"
|
||||
'no': "No"
|
||||
blocked_cookies_alert: "Il tuo browser sembra stia bloccando i cookies necessari ad usare questa pagina del negozio. Clicca sotto per consentire i cookies e ricaricare la pagina."
|
||||
notes: Note
|
||||
error: Eorrore
|
||||
admin:
|
||||
date: Data
|
||||
email: Email
|
||||
@@ -66,62 +83,26 @@ it:
|
||||
sku: articolo gestito a magazzino
|
||||
tags: Tag
|
||||
variant: Variante
|
||||
weight: Peso
|
||||
select_all: Seleziona tutto
|
||||
quick_search: Ricerca veloce
|
||||
clear_all: Cancella tutto
|
||||
start_date: "Data di inizio"
|
||||
end_date: "Data di fine"
|
||||
clear_filters: Cancella filtri
|
||||
clear: Pulisci
|
||||
columns: Colonne
|
||||
actions: Azioni
|
||||
viewing: "Vista: %{current_view_name}"
|
||||
description: Descrizione
|
||||
whats_this: Cos'è questo?
|
||||
tag_has_rules: "Regole esistenti per questo tag: %{num}"
|
||||
has_one_rule: "ha una regola"
|
||||
has_n_rules: "ha %{num} regole"
|
||||
unsaved_confirm_leave: "Ci sono cambiamenti non salvati in questa pagina. Continuare senza salvare?"
|
||||
accounts_and_billing_settings:
|
||||
method_settings:
|
||||
default_accounts_payment_method: "Default Accounts Payment Method"
|
||||
default_accounts_shipping_method: "Default Accounts Shipping Method"
|
||||
edit:
|
||||
accounts_and_billing: "Account e conti"
|
||||
accounts_administration_distributor: "account amministrazione distributore"
|
||||
admin_settings: "Impostazioni"
|
||||
update_invoice: "Aggiorna fattura"
|
||||
finalise_invoice: "Finalizza le fatture"
|
||||
finalise_user_invoices: "Finalizza le fatture dell'utente"
|
||||
finalise_user_invoice_explained: "Usa questo bottone per finalizzare tutte le fatture nel sistema per il precedente mese. Questo processo può essere impostato per essere fatto automaticamente una volta al mese."
|
||||
manually_run_task: "Elabora il processo manualmente"
|
||||
update_user_invoices: "Aggiorna le fatture dell'utente"
|
||||
update_user_invoice_explained: "Usa questo bottone per aggiornare a oggi immediatamente le fatture del mese per ogni impresa del sistema. Questo processo può essere impostato per essere eseguito automaticamente ogni notte."
|
||||
auto_finalise_invoices: "Auto-finalizza le fatture il 2 di ogni mese alle 01:30"
|
||||
auto_update_invoices: "Auto-aggiorna le fatture di notte alle 01:00"
|
||||
business_model_configuration:
|
||||
edit:
|
||||
business_model_configuration: "Configurazione del modello di business"
|
||||
business_model_configuration_tip: "Configure the rate at which shops will be charged each month for use of the Open Food Network."
|
||||
bill_calculation_settings: "Bill Calculation Settings"
|
||||
bill_calculation_settings_tip: "Adjust the amount that enterprises will be billed each month for use of the OFN."
|
||||
shop_trial_length: "Durata della prova per negozio (Giorni)"
|
||||
shop_trial_length_tip: "The length of time (in days) that enterprises who are set up as shops can run as a trial period."
|
||||
fixed_monthly_charge: "Fixed Monthly Charge"
|
||||
fixed_monthly_charge_tip: "A fixed monthly charge for all enterprises who are set up as a shop and have exceeded the minimum billable turnover (if set)."
|
||||
percentage_of_turnover: "Percentuale di fatturato"
|
||||
percentage_of_turnover_tip: "When greater than zero, this rate (0.0 - 1.0) will be applied to the total turnover of each shop and added to any fixed charges (to the left) to calculate the monthly bill."
|
||||
monthly_cap_excl_tax: "tetto mensile (IVA esclusa)"
|
||||
monthly_cap_excl_tax_tip: "When greater than zero, this value will be used as a cap on the amount that shops will be charged each month."
|
||||
tax_rate: "Tax Rate"
|
||||
tax_rate_tip: "Tax rate that applies to the the monthly bill that enterprises are charged for using the system."
|
||||
minimum_monthly_billable_turnover: "Minimum Monthly Billable Turnover"
|
||||
minimum_monthly_billable_turnover_tip: "Minimum monthly turnover before a shopfront will be charged for using OFN. Enterprises turning over less than this amount in a month will not be charged, either as a percentage or fixed rate."
|
||||
example_bill_calculator: "Example Bill Calculator"
|
||||
example_bill_calculator_legend: "Alter the example turnover to visualise the effect of the settings to the left."
|
||||
example_monthly_turnover: "Example Monthly Turnover"
|
||||
example_monthly_turnover_tip: "An example monthly turnover for an enterprise which will be used to generate calculate an example monthly bill below."
|
||||
cap_reached?: "Cap Reached ?"
|
||||
cap_reached?_tip: "Whether the cap (specified to the left) has been reached, given the settings and the turnover provided."
|
||||
included_tax: "Included tax"
|
||||
included_tax_tip: "The total tax included in the example monthly bill, given the settings and the turnover provided."
|
||||
total_monthly_bill_incl_tax: "Conto totale mensile (tasse incluse)"
|
||||
total_monthly_bill_incl_tax_tip: "The example total monthly bill with tax included, given the settings and the turnover provided."
|
||||
customers:
|
||||
index:
|
||||
add_customer: "Aggiungi cliente"
|
||||
@@ -141,15 +122,9 @@ it:
|
||||
select_country: 'Seleziona il paese'
|
||||
select_state: 'Selezione la provincia'
|
||||
edit: 'Modifica'
|
||||
products:
|
||||
bulk_edit:
|
||||
unit: Unità
|
||||
display_as: Visualizza come
|
||||
category: Categoria
|
||||
tax_category: Categoria di imposta
|
||||
inherits_properties?: Eredita proprietà?
|
||||
available_on: Disponibile il
|
||||
av_on: "Disp. il"
|
||||
cache_settings:
|
||||
show:
|
||||
error: Eorrore
|
||||
variant_overrides:
|
||||
index:
|
||||
title: Inventario
|
||||
@@ -191,28 +166,27 @@ it:
|
||||
max_fulfilled_units: "Massime unità riempite"
|
||||
order_error: "Qualche errore deve essere risolto prima che tu possa aggiornare gli ordini.\nOgni campo con i bordi rossi contiene errori."
|
||||
variants_without_unit_value: "ATTENZIONE: Alcune varianti non hanno il valore dell'unità"
|
||||
order_cycles:
|
||||
edit:
|
||||
choose_products_from: "Scegli prodotti da:"
|
||||
enterprise:
|
||||
select_outgoing_oc_products_from: Seleziona prodotti OC in uscita da
|
||||
enterprises:
|
||||
index:
|
||||
producer?: Produttore?
|
||||
producer?: "Produttore?"
|
||||
package: Imballaggio
|
||||
status: Stato
|
||||
manage: Gestisci
|
||||
form:
|
||||
primary_details:
|
||||
shopfront_requires_login: "La pagina del negozio richiede il login?"
|
||||
shopfront_requires_login_tip: "Scegli se i clienti devono effettuare il login per vedere la pagina del negozio."
|
||||
shopfront_requires_login_false: "Pubblico"
|
||||
shopfront_requires_login_true: "Richiedi ai clienti di effettuare il login"
|
||||
home:
|
||||
hubs:
|
||||
show_closed_shops: "Mostra negozi chiusi"
|
||||
hide_closed_shops: "Nascondi negozi chiusi"
|
||||
show_on_map: "Mostra tutto sulla mappa"
|
||||
stripe_connect:
|
||||
confirm_modal:
|
||||
cancel: Annulla
|
||||
users:
|
||||
contact: "Contatto"
|
||||
subscriptions:
|
||||
review:
|
||||
address: Indirizzo
|
||||
products: Prodotti
|
||||
stripe_connect_settings:
|
||||
edit:
|
||||
settings: "Impostazioni"
|
||||
shared:
|
||||
register_call:
|
||||
selling_on_ofn: "Interessato ad entrare in Open Food Network?"
|
||||
@@ -225,10 +199,10 @@ it:
|
||||
require_customer_login: "Questo negozio è solo per clienti."
|
||||
require_login_html: "Per favore, %{login} se hai già un account. Altrimenti %{register} per diventare un cliente."
|
||||
require_customer_html: "Per favore %{contact} %{enterprise} per diventare un cliente."
|
||||
invoice_column_item: "Articolo"
|
||||
invoice_column_qty: "Qtà."
|
||||
invoice_column_tax: "IVA"
|
||||
invoice_column_price: "Prezzo"
|
||||
invoice_column_item: "Articolo"
|
||||
invoice_column_qty: "Qtà."
|
||||
logo: "Logo (640x130)"
|
||||
logo_mobile: "Mobile logo (75x26)"
|
||||
logo_mobile_svg: "Mobile logo (SVG)"
|
||||
@@ -254,8 +228,8 @@ it:
|
||||
address: Indirizzo
|
||||
address2: Indirizzo (continua)
|
||||
city: Comune
|
||||
state: Stato
|
||||
postcode: CAP
|
||||
state: Stato
|
||||
country: Paese
|
||||
unauthorized: Non autorizzato
|
||||
terms_of_service: "Termini di servizio"
|
||||
@@ -278,24 +252,14 @@ it:
|
||||
label_more: "Mostra di più"
|
||||
label_less: "Mostra meno"
|
||||
label_notices: "Avvisi"
|
||||
items: "articoli"
|
||||
cart_headline: "Il tuo carrello"
|
||||
total: "Totale"
|
||||
checkout: "Paga ora"
|
||||
cart_updating: "Aggiornamento del carrello..."
|
||||
cart_empty: "Carrello vuoto"
|
||||
cart_edit: "Modifica il tuo carrello"
|
||||
card_number: Numero della carta
|
||||
card_securitycode: "Codice di sicurezza"
|
||||
card_expiry_date: Data di scadenza
|
||||
ofn_cart_headline: "Carrello attuale per:"
|
||||
ofn_cart_distributor: "Distributore:"
|
||||
ofn_cart_oc: "Ciclo d'ordine:"
|
||||
ofn_cart_from: "Da:"
|
||||
ofn_cart_to: "A:"
|
||||
ofn_cart_product: "Prodotto:"
|
||||
ofn_cart_quantitiy: "Quantità:"
|
||||
ofn_cart_send: "Comprami"
|
||||
ie_warning_headline: "Il tuo browser non è aggiornato :-("
|
||||
ie_warning_text: "Per una migliore esperienza con Open Food Network, ti raccomandiamo caldamente di aggiornare il browser:"
|
||||
ie_warning_chrome: Scarica Chrome
|
||||
@@ -405,7 +369,6 @@ it:
|
||||
email_confirmation_click_link: "Per favore clicca il link di seguito per confermare la tua email e continuare l'impostazione del tuo profilo"
|
||||
email_confirmation_link_label: "Conferma questo indirizzo email »"
|
||||
email_confirmation_help_html: "Dopo aver confermato il tuo indirizzo email puoi accedere al tuo account di amministrazione per questa impresa. Vedi il link %{link} per scoprire di più sulle funzionalità di %{sitename} e iniziare a usare il tuo profilo e il tuo negozio online."
|
||||
email_confirmation_userguide: "Guida utente"
|
||||
email_social: "Connettiti con Noi:"
|
||||
email_contact: "Scrivici:"
|
||||
email_signoff: "Saluti,"
|
||||
@@ -436,9 +399,6 @@ it:
|
||||
email_special_instructions: "Tue note:"
|
||||
email_signup_greeting: Ciao!
|
||||
email_signup_welcome: "Benvenuto a %{sitename}!"
|
||||
email_signup_login: Il tuo login
|
||||
email_signup_email: La tua email per il login è
|
||||
email_signup_shop_html: "Puoi cominciare adesso ad acquistare on-line su %{link}."
|
||||
email_signup_text: "Grazie per esserti unito alla rete. Se sei un cliente, non vediamo l'ora di introdurti a molti produttori fantastici, distributori di cibo spettacolari e cibo delizioso! Se sei un produttore o un'impresa del cibo, siamo entusiasti di averti come parte della rete."
|
||||
email_signup_help_html: "Accettiamo volentieri tutte le tue domane e i tuoi suggerimenti: puoi usare il bottone <em>Invia Feedback</em> sul sito o scriverci a %{email}"
|
||||
producer_mail_greeting: "Caro"
|
||||
@@ -460,6 +420,7 @@ it:
|
||||
enterprises_next_closing: "Prossimo ordine in chiusura"
|
||||
enterprises_ready_for: "Pronto per"
|
||||
enterprises_choose: "Scegli quando vuoi il tuo ordine:"
|
||||
maps_open: "Aperto"
|
||||
hubs_buy: "Acquista per:"
|
||||
hubs_shopping_here: "Compra qui"
|
||||
hubs_orders_closed: "Ordini chiusi"
|
||||
@@ -604,7 +565,6 @@ it:
|
||||
orders_edit_checkout: Paga
|
||||
orders_form_empty_cart: "Carrello vuoto"
|
||||
orders_form_subtotal: Calcola il subtotale
|
||||
orders_form_admin: Amministrazione e trasporto
|
||||
orders_form_total: Totale
|
||||
orders_oc_expired_headline: Gli ordini sono chiusi per questo ciclo di ordini
|
||||
orders_oc_expired_text: "Spiacenti, gli ordini per questo ciclo son chiusi %{time} da! Per favore contatta direttamente il tuo hub per sapere se accettano ordini tardivi."
|
||||
@@ -614,7 +574,6 @@ it:
|
||||
orders_oc_expired_phone: "Telefono:"
|
||||
orders_show_title: Conferma dell'ordine
|
||||
orders_show_time: Ordine pronto
|
||||
orders_show_number: Conferma dell'ordine
|
||||
products_cart_distributor_choice: "Distributore per il tuo ordine:"
|
||||
products_cart_distributor_change: "Il tuo distributore per questo ordine sarà sostituito da %{name} se aggiungi questo prodotto al tuo carrello."
|
||||
products_cart_distributor_is: "Il tuo distributore per quest'ordine è %{name}."
|
||||
@@ -709,7 +668,6 @@ it:
|
||||
enterprise_about_headline: "Bello!"
|
||||
enterprise_about_message: "Adesso completiamo i dettagli su"
|
||||
enterprise_success: "Successo! %{enterprise} aggiunta ad Open Food Network"
|
||||
enterprise_registration_exit_message: "Se esci da questa guida in qualsiasi momento, dovrai cliccare sul link di conferma nell'email che riceverai. Ciò ti condurrà al tuo pannello di amministrazione dove potrai continuare l'impostazione del profilo."
|
||||
enterprise_description: "Descrizione breve"
|
||||
enterprise_description_placeholder: "Una frase corta che descriva la tua azienda"
|
||||
enterprise_long_desc: "Descrizione lunga"
|
||||
@@ -749,8 +707,6 @@ it:
|
||||
registration_finished_headline: "Finito!"
|
||||
registration_finished_thanks: "Grazie per aver riempito i dettagli per %{enterprise}."
|
||||
registration_finished_login: "Puoi cambiare o aggiornare la tua azienda ad ogni passo accedendo a Open Food Network e andando su Amministrazione."
|
||||
registration_finished_activate: "Attiva %{enterprise}."
|
||||
registration_finished_activate_instruction_html: "Abbiamo mandato un'email di conferma a <strong>%{email}</strong> se ancora non è stata ancora attivata.<br/>Per favore segui le istruzioni indicate per rendere la tua azienda visibile su Open Food Network."
|
||||
registration_finished_action: "Open Food Network home"
|
||||
registration_type_headline: "Ultimo passo per aggiungere %{enterprise}!"
|
||||
registration_type_question: "Sei un produttore?"
|
||||
@@ -844,6 +800,7 @@ it:
|
||||
supplier: "Fornitore"
|
||||
coordinator: "Coordinatore"
|
||||
distributor: "Distributore"
|
||||
enterprise_fees: "Contributi dell'azienda"
|
||||
fee_type: "Tipo di contributo"
|
||||
tax_category: "Categoria di imposta"
|
||||
calculator: "Calcolatore"
|
||||
@@ -884,18 +841,12 @@ it:
|
||||
spree_admin_enterprises_producers_order_cycles: "Prodotti in OC"
|
||||
spree_admin_enterprises_tabs_hubs: "HUBS"
|
||||
spree_admin_enterprises_tabs_producers: "PRODUTTORI"
|
||||
spree_admin_enterprises_producers_manage_order_cycles: "GESTISCI CICLI D'ORDINE"
|
||||
spree_admin_enterprises_producers_manage_products: "GESTISCI PRODOTTI"
|
||||
spree_admin_enterprises_producers_orders_cycle_text: "Non hai cicli d'ordine attivi."
|
||||
spree_admin_enterprises_any_active_products_text: "Non hai prodotti attivi."
|
||||
spree_admin_enterprises_create_new_product: "CREA UN NUOVO PRODOTTO"
|
||||
spree_admin_order_cycles: "Cicli d'ordine"
|
||||
spree_admin_order_cycles_tip: "I cicli d'ordine determinano quando e dove i tuoi prodotti saranno disponibili ai clienti."
|
||||
dashbord: "Bacheca"
|
||||
spree_admin_single_enterprise_alert_mail_confirmation: "Conferma l'indirizzo email per"
|
||||
spree_admin_single_enterprise_alert_mail_sent: "Abbiamo spedito una mail a"
|
||||
spree_admin_overview_action_required: "Azione richiesta"
|
||||
spree_admin_overview_check_your_inbox: "Per favore controlla la tua posta in arrivo per istruzioni ulteriori. Grazie!"
|
||||
change_package: "Cambia pacchetto"
|
||||
spree_admin_single_enterprise_hint: "Suggerimento: Per permettere alle persone di trovarti, abilita la tua visibilità sotto"
|
||||
your_profil_live: "Il tuo profilo è attivo"
|
||||
@@ -927,7 +878,6 @@ it:
|
||||
hub_sidebar_blue: "blu"
|
||||
hub_sidebar_red: "rosso"
|
||||
shop_trial_in_progress: "Il tuo negozio di prova scade tra %{days}."
|
||||
shop_trial_expired: "Buone notizie! Abbiamo deciso di estendere le prove dei negozi fino a nuova notifica (probabilmente intorno a marzo 2015)."
|
||||
report_customers_distributor: "Distributore"
|
||||
report_customers_supplier: "Fornitore"
|
||||
report_customers_cycle: "Ciclo d'ordine"
|
||||
@@ -945,6 +895,7 @@ it:
|
||||
report_order_cycle: "Ciclo d'ordine:"
|
||||
report_entreprises: "Aziende:"
|
||||
report_users: "Utenti:"
|
||||
report_header_weight: Peso
|
||||
initial_invoice_number: "Numero di fattura iniziale:"
|
||||
invoice_date: "Data fattura:"
|
||||
due_date: "Scadenza:"
|
||||
@@ -977,7 +928,6 @@ it:
|
||||
shipping_methods: "Metodi di Spedizione"
|
||||
payment_methods: "Metodi di pagamento"
|
||||
payment_method_fee: "Imposta di transizione"
|
||||
enterprise_fees: "Contributi dell'azienda"
|
||||
inventory_settings: "Impostazioni dell'inventario"
|
||||
tag_rules: "Regole dei tag"
|
||||
shop_preferences: "Preferenze di acquisto"
|
||||
@@ -986,13 +936,25 @@ it:
|
||||
validation_msg_product_category_cant_be_blank: "^Categoria di prodotto non può essere vuoto"
|
||||
validation_msg_tax_category_cant_be_blank: "^Categoria di tassa non può essere vuoto"
|
||||
validation_msg_is_associated_with_an_exising_customer: "è associato con un cliente esistente"
|
||||
js:
|
||||
error: Eorrore
|
||||
admin:
|
||||
panels:
|
||||
enterprise_status:
|
||||
description: Descrizione
|
||||
spree:
|
||||
shipment_states:
|
||||
backorder: ordine arretrato
|
||||
partial: parziale
|
||||
pending: in pendenza
|
||||
ready: pronto
|
||||
shipped: spedito
|
||||
order_state:
|
||||
address: indirizzo
|
||||
adjustments: aggiustamenti
|
||||
awaiting_return: restituzione attesa
|
||||
cart: carrello
|
||||
complete: completo
|
||||
confirm: conferma
|
||||
delivery: consegna
|
||||
payment: pagamento
|
||||
resumed: ripreso
|
||||
returned: restituito
|
||||
skrill: skrill
|
||||
payment_states:
|
||||
balance_due: saldo
|
||||
completed: completato
|
||||
@@ -1004,16 +966,13 @@ it:
|
||||
processing: in elaborazione
|
||||
void: vuoto
|
||||
invalid: invalido
|
||||
order_state:
|
||||
address: indirizzo
|
||||
adjustments: aggiustamenti
|
||||
awaiting_return: restituzione attesa
|
||||
canceled: cancellato
|
||||
cart: carrello
|
||||
complete: completo
|
||||
confirm: conferma
|
||||
delivery: consegna
|
||||
payment: pagamento
|
||||
resumed: ripreso
|
||||
returned: restituito
|
||||
skrill: skrill
|
||||
shipment_states:
|
||||
backorder: ordine arretrato
|
||||
partial: parziale
|
||||
pending: in pendenza
|
||||
ready: pronto
|
||||
shipped: spedito
|
||||
users:
|
||||
open_orders:
|
||||
edit: Modifica
|
||||
cancel: Annulla
|
||||
|
||||
@@ -43,20 +43,16 @@ nb:
|
||||
send_instructions: "Du vil motta en epost med instruksjoner om hvordan du bekrefter kontoen din om noen få minutter."
|
||||
failed_to_send: "Det oppsto en feil under sending av bekreftelses-eposten din."
|
||||
resend_confirmation_email: "Send bekreftelses-epost på nytt."
|
||||
confirmed: "Takk for at du bekreftet din epost! Du kan nå logge inn."
|
||||
not_confirmed: "Din epostadresse kunne ikke bekreftes. Kanskje har du allerede fullført dette trinnet?"
|
||||
user_registrations:
|
||||
spree_user:
|
||||
signed_up_but_unconfirmed: "En melding med en bekreftelseslink er sendt til epostadressen din. Vennligst åpne lenken for å aktivere kontoen din."
|
||||
failure:
|
||||
invalid: |
|
||||
Ugyldig epost eller passord.
|
||||
Var du gjest forrige gang? Kanskje du må opprette en konto eller nullstille passordet.
|
||||
Ugyldig epost eller passord.
|
||||
Var du gjest forrige gang? Kanskje du må opprette en konto eller nullstille passordet.
|
||||
unconfirmed: "Du må bekrefte kontoen din før du fortsetter."
|
||||
enterprise_confirmations:
|
||||
enterprise:
|
||||
confirmed: Takk, epostadressen din er bekreftet.
|
||||
not_confirmed: Din epostadresse kan ikke bekreftes. Kanskje du allerede har fullført dette steget?
|
||||
confirmation_sent: "Bekreftelsesepost er sendt!"
|
||||
confirmation_not_sent: "Kunne ikke sende bekreftelsesepost."
|
||||
enterprise_mailer:
|
||||
confirmation_instructions:
|
||||
subject: "Vennligst bekreft epostadressen til %{enterprise}"
|
||||
@@ -820,6 +816,12 @@ nb:
|
||||
allowed_payment_method_types_tip: Bare Kontant og Stripe betalingsmetoder kan brukes for øyeblikket
|
||||
credit_card: Kredittkort
|
||||
no_cards_available: Ingen kort tilgjengelig
|
||||
loading_flash:
|
||||
loading: LASTER ABONNEMENT
|
||||
review:
|
||||
details: Detaljer
|
||||
address: Adresse
|
||||
products: Produkter
|
||||
product_already_in_order: Dette produktet er allerede lagt til i bestillingen. Vennligst rediger mengden direkte.
|
||||
orders:
|
||||
number: Antall
|
||||
@@ -831,6 +833,7 @@ nb:
|
||||
confirm_unpause_msg: Er du sikker på at du vil fortsette dette abonnementet?
|
||||
unpause_failure_msg: 'Beklager, fortsettelse mislyktes!'
|
||||
confirm_cancel_open_orders_msg: "Noen bestillinger for dette abonnementet er for øyeblikket åpne. Kunden har allerede blitt varslet om at bestillingen vil bli lagt inn. Vil du avbryte disse bestillingene eller beholde dem?"
|
||||
resume_canceled_orders_msg: "Noen bestillinger for dette abonnementet kan gjenopptas akkurat nå. Du kan gjenoppta dem fra nedtrekksmenyen for bestillinger."
|
||||
yes_cancel_them: Avbryt dem
|
||||
no_keep_them: Behold dem
|
||||
yes_i_am_sure: Ja jeg er sikker
|
||||
@@ -1353,8 +1356,8 @@ nb:
|
||||
orders_could_not_cancel: "Beklager, bestillingen kunne ikke avbrytes"
|
||||
orders_cannot_remove_the_final_item: "Kan ikke fjerne den siste varen fra en bestilling, vennligst avbryt bestillingen i stedet."
|
||||
orders_bought_items_notice:
|
||||
one: Et ekstra element er allerede bekreftet for denne bestillingsperioden
|
||||
other: Ytterligere%{count} varer er allerede bekreftet for denne bestillingsrunden
|
||||
one: "Et ekstra element er allerede bekreftet for denne bestillingsperioden"
|
||||
other: "Ytterligere%{count} varer er allerede bekreftet for denne bestillingsrunden"
|
||||
orders_bought_edit_button: Rediger bekreftede varer
|
||||
orders_bought_already_confirmed: "* allerede bekreftet"
|
||||
orders_confirm_cancel: Er du sikker på at du vil avbryte denne bestillingen?
|
||||
@@ -2017,6 +2020,7 @@ nb:
|
||||
resolve_errors: Vennligst løse følgende feil
|
||||
more_items: "+ %{count} Flere"
|
||||
admin:
|
||||
enterprise_limit_reached: "Du har nådd standardgrensen for bedrifter per konto. Skriv til %{contact_email} hvis du trenger å øke den."
|
||||
modals:
|
||||
got_it: Jeg forstår
|
||||
tag_rule_help:
|
||||
@@ -2171,7 +2175,7 @@ nb:
|
||||
could_not_delete_customer: 'Kunne ikke slette kunde'
|
||||
product_import:
|
||||
confirmation: |
|
||||
Dette vil sette varebeholdning til null på alle produkter for denne virksomheten som ikke er til stede i den nedlastede filen.
|
||||
Dette vil sette varebeholdning til null på alle produkter for denne virksomheten som ikke er til stede i den nedlastede filen.
|
||||
order_cycles:
|
||||
update_success: 'Din bestillingsrunde har blitt oppdatert.'
|
||||
no_distributors: Det er ingen distributører i denne bestillingsrunden. Denne bestillingsrunden vil ikke være synlig for kundene før du legger til en. Vil du fortsette å lagre denne bestillingsrunden? '
|
||||
@@ -2181,6 +2185,10 @@ nb:
|
||||
customers:
|
||||
select_shop: 'Vennligst velg en butikk først'
|
||||
could_not_create: Beklager! Kunne ikke opprette
|
||||
subscriptions:
|
||||
closes: stenger
|
||||
closed: stengt
|
||||
close_date_not_set: Stengedato ikke angitt
|
||||
producers:
|
||||
signup:
|
||||
start_free_profile: "Start med en gratis profil, og utvid når du er klar!"
|
||||
@@ -2331,13 +2339,13 @@ nb:
|
||||
user_mailer:
|
||||
reset_password_instructions:
|
||||
request_sent_text: |
|
||||
En forespørsel om å nullstille ditt passord er utført.
|
||||
Hvis det ikke var du som forespurte dette kan du se bort i fra denne eposten.
|
||||
En forespørsel om å nullstille ditt passord er utført.
|
||||
Hvis det ikke var du som forespurte dette kan du se bort i fra denne eposten.
|
||||
link_text: >
|
||||
Hvis det var du som forespurte dette kan du klikke nedenfor:
|
||||
issue_text: |
|
||||
Hvis URL'en ovenfor ikke fungerer prøv å kopier og lim den inn i din nettleser.
|
||||
Hvis du fortsatt har problemer vennligst ta kontakt.
|
||||
Hvis URL'en ovenfor ikke fungerer prøv å kopier og lim den inn i din nettleser.
|
||||
Hvis du fortsatt har problemer vennligst ta kontakt.
|
||||
confirmation_instructions:
|
||||
subject: Vennligst bekreft OFN-kontoen din
|
||||
weight: Vekt (per kg)
|
||||
|
||||
@@ -7,7 +7,9 @@ pt:
|
||||
shipment_state: Estado do envio
|
||||
completed_at: Completado em
|
||||
number: Número
|
||||
email: Email do cliente
|
||||
email: Email do/a consumidor/a
|
||||
spree/payment:
|
||||
amount: Quantia
|
||||
errors:
|
||||
models:
|
||||
spree/user:
|
||||
@@ -43,25 +45,23 @@ pt:
|
||||
send_instructions: "Receberá um email com instruções sobre como confirmar a sua conta em alguns minutos."
|
||||
failed_to_send: "Ocorreu um erro no envio do email de confirmação"
|
||||
resend_confirmation_email: "Reenviar email de confirmação."
|
||||
confirmed: "Obrigada por confirmar o seu email! Agora já pode fazer login."
|
||||
not_confirmed: "O seu email não pôde ser confirmado. Talvez já tenha completado este passo?"
|
||||
user_registrations:
|
||||
spree_user:
|
||||
signed_up_but_unconfirmed: "Foi enviada para o seu endereço de email uma mensagem com um link de confirmação. Por favor clique nesse link para activar a sua conta."
|
||||
signed_up_but_unconfirmed: "Foi enviada uma mensagem para o seu endereço de email com um link de confirmação. Por favor clique nesse link para activar a sua conta."
|
||||
failure:
|
||||
invalid: |
|
||||
Email ou senha incorrecto.
|
||||
Entrou como visitante da última vez? Talvez precise de criar uma conta ou de redefinir a sua senha.
|
||||
Email ou senha incorrecto.
|
||||
Entrou como visitante da última vez? Talvez precise de criar uma conta ou de redefinir a sua senha.
|
||||
unconfirmed: "Tem de confirmar a sua conta antes de continuar."
|
||||
enterprise_confirmations:
|
||||
enterprise:
|
||||
confirmed: Obrigada! O seu endereço de email está confirmado.
|
||||
not_confirmed: Não foi possível confirmar o seu endereço de email. Talvez já tenha completado este passo?
|
||||
confirmation_sent: "Email de confirmação enviado!"
|
||||
confirmation_not_sent: "Não foi possível enviar o email de confirmação."
|
||||
enterprise_mailer:
|
||||
confirmation_instructions:
|
||||
subject: "Por favor confirme o endereço de email da %{enterprise}"
|
||||
welcome:
|
||||
subject: "%{enterprise} está agora em %{sitename}"
|
||||
invite_manager:
|
||||
subject: "%{enterprise} enviou-lhe um convite para ser gestora/a"
|
||||
producer_mailer:
|
||||
order_cycle:
|
||||
subject: "Relatório de ciclo de encomendas de %{producer}"
|
||||
@@ -103,7 +103,7 @@ pt:
|
||||
home: "OFN"
|
||||
title: Open Food Network
|
||||
welcome_to: 'Bem vindo a'
|
||||
site_meta_description: "Partimos da terra. Com agricultores e produtores prontos a contarem as suas histórias verdadeiras com um brilho nos olhos. Com distribuidores prontos a estabelecerem ligações entre pessoas e produtos de forma justa e honesta. Com consumidores que acreditam que podem tomar melhores decisões no momento da compra..."
|
||||
site_meta_description: "Começamos a partir da terra. Com agricultores e produtores prontos a contarem as suas histórias com um brilho nos olhos. Com distribuidores prontos a estabelecerem ligações entre pessoas e produtos de forma justa e honesta. Com consumidores que acreditam que melhores decisões no momento da compra..."
|
||||
search_by_name: Procurar por nome ou localidade
|
||||
producers_join: Produtores e produtoras nacionais, estão convidados a juntarem-se à Open Food Network!
|
||||
charges_sales_tax: Cobra GST?
|
||||
@@ -204,6 +204,7 @@ pt:
|
||||
phone: Telefone
|
||||
price: Preço
|
||||
producer: Produtor
|
||||
image: Imagem
|
||||
product: Produto
|
||||
quantity: Quantidade
|
||||
schedule: Horário
|
||||
@@ -256,13 +257,13 @@ pt:
|
||||
update_user_invoice_explained: "Use este botão para actualizar imediatamente as facturas do mês, até ao dia de hoje, para cada organização no sistema. Esta tarefa pode ser configurada para ser realizada automaticamente todas as noites."
|
||||
finalise_user_invoices: "Lançar Facturas de Utilizador"
|
||||
finalise_user_invoice_explained: "Use este botão para lançar no sistema todas as facturas relativas ao mês anterior. Esta tarefa pode ser configurada para ser realizada automaticamente uma vez por mês."
|
||||
update_user_invoices: "Atualizar Facturas de Utilizador"
|
||||
update_user_invoices: "Actualizar Facturas de Utilizador"
|
||||
errors:
|
||||
accounts_distributor: deve estar definido, se desejar criar facturas para organizações
|
||||
default_payment_method: deve estar definido se desejar criar facturas para organizações
|
||||
default_shipping_method: deve estar definido se desejar criar facturas para organizações registadas
|
||||
shopfront_settings:
|
||||
embedded_shopfront_settings: "Incorporar definições de loja"
|
||||
embedded_shopfront_settings: "Definições de loja incorporadas"
|
||||
enable_embedded_shopfronts: "Permitir lojas incorporadas"
|
||||
embedded_shopfronts_whitelist: "Whitelist de domínios externos"
|
||||
number_localization:
|
||||
@@ -292,16 +293,16 @@ pt:
|
||||
example_monthly_turnover_tip: "Exemplo de volume de negócios mensal de uma organização que será usado para calcular a conta mensal dada como exemplo abaixo."
|
||||
cap_reached?: "Atingido o limite?"
|
||||
cap_reached?_tip: "Se o \"tecto\" (limite definido à esquerda) foi atingido, dadas as definições e o volume de negócios indicado."
|
||||
included_tax: "Taxa inclusa"
|
||||
included_tax_tip: "A taxa total incluída no exemplo de conta mensal , dadas as definições e o volume de negócios indicado."
|
||||
total_monthly_bill_incl_tax: "Total de conta mensal (taxa inclusa)"
|
||||
included_tax: "Taxa incluída"
|
||||
included_tax_tip: "A taxa total incluída no exemplo de conta mensal, dadas as definições e o volume de negócios indicado."
|
||||
total_monthly_bill_incl_tax: "Total de conta mensal (taxa incluída)"
|
||||
total_monthly_bill_incl_tax_tip: "O exemplo de conta mensal total incluindo taxas, dadas as definições e o volume de negócios indicado."
|
||||
customers:
|
||||
index:
|
||||
add_customer: "Adicionar Cliente"
|
||||
new_customer: "Novo Cliente"
|
||||
customer_placeholder: "cliente@exemplo.org"
|
||||
valid_email_error: Favor usar um endereço de email válido
|
||||
valid_email_error: Por favor usar um endereço de email válido
|
||||
add_a_new_customer_for: Adicionar novo cliente para %{shop_name}
|
||||
code: Código
|
||||
duplicate_code: "Este código já está a ser usado."
|
||||
@@ -357,14 +358,27 @@ pt:
|
||||
manages: gere
|
||||
products:
|
||||
unit_name_placeholder: 'ex: molho, ramo, etc.'
|
||||
bulk_edit:
|
||||
unit: Unidade
|
||||
display_as: Mostrar como
|
||||
category: Categoria
|
||||
tax_category: Categoria de imposto
|
||||
inherits_properties?: Herda Propriedades?
|
||||
available_on: Disponível em
|
||||
av_on: "Disp. em"
|
||||
upload_an_image: Carregar uma imagem
|
||||
product_search_keywords: Palavras-chave de Pesquisa de Produto
|
||||
product_search_tip: Insira palavras que ajudem a encontrar os seus produtos nas lojas. Use um espaço para separar cada palavra-chave
|
||||
SEO_keywords: Palavras-chave SEO
|
||||
seo_tip: Insira palavras que ajudem a encontrar os seus produtos na web. Use um espaço para separar cada palavra-chave
|
||||
Search: Procurar
|
||||
properties:
|
||||
property_name: Nome da propriedade
|
||||
inherited_property: Propriedade herdada
|
||||
variants:
|
||||
to_order_tip: "Os itens feitos por encomenda não têm um nível de estoque definido, como pão fresco, por exemplo."
|
||||
to_order_tip: "Os itens feitos por encomenda não têm um nível de stock definido, como pão fresco, por exemplo."
|
||||
product_distributions: "Distribuições de Produto"
|
||||
group_buy_options: "Opções de Compra Colectiva"
|
||||
seo: "SEO"
|
||||
back_to_products_list: "Voltar à lista de produtos"
|
||||
variant_overrides:
|
||||
loading_flash:
|
||||
@@ -385,9 +399,9 @@ pt:
|
||||
no_matching_hidden_products: Nenhum produto oculto corresponde à sua pesquisa
|
||||
no_new_products: Nenhum novo produto está disponível para ser adicionado a este inventário
|
||||
no_matching_new_products: Nenhum novo produto corresponde à sua busca
|
||||
inventory_powertip: Este é seu inventário de produtos. Para adicionar produtos ao seu inventário, selecione 'Novos Produtos' no menu Exibição
|
||||
hidden_powertip: Estes produtos foram escondidos no seu inventário e não estarão disponíveis para serem adicionados à sua loja. Você pode clicar em 'Adicionar' para adicionar um produto a seu inventário.
|
||||
new_powertip: 'Estes produtos estão disponíveis para serem adicionados ao seu inventário. Clique em ''Adicionar'' para adicionar um produto em seu inventário, ou ''Ocultar'' para escondê-lo. Você pode voltar atrás quando quiser! '
|
||||
inventory_powertip: Este é o seu inventário de produtos. Para adicionar produtos ao seu inventário, selecione 'Novos Produtos' no menu Visualizar
|
||||
hidden_powertip: Estes produtos foram escondidos no seu inventário e não estarão disponíveis para serem adicionados à sua loja. Pode clicar em 'Adicionar' para adicionar um produto ao seu inventário.
|
||||
new_powertip: 'Estes produtos estão disponíveis para serem adicionados ao seu inventário. Clique em ''Adicionar'' para adicionar um produto em seu inventário, ou ''Ocultar'' para escondê-lo. Pode voltar atrás quando quiser! '
|
||||
controls:
|
||||
back_to_my_inventory: Voltar ao inventário
|
||||
orders:
|
||||
@@ -406,32 +420,33 @@ pt:
|
||||
weight_volume: "Peso/Volume"
|
||||
ask: "Perguntar?"
|
||||
page_title: "Gestão de Pedidos a Granel"
|
||||
actions_delete: "Deletar Selecionado"
|
||||
loading: "Carregando pedidos"
|
||||
no_results: "Nenhum pedido encontrado. "
|
||||
actions_delete: "Apagar Selecionado"
|
||||
loading: "Carregando encomendas"
|
||||
no_results: "Nenhuma encomenda encontrada. "
|
||||
group_buy_unit_size: "Tamanho de Unidade para Compras de Grupo"
|
||||
total_qtt_ordered: "Quantidade Total do Pedido"
|
||||
max_qtt_ordered: "Quantidade Máxima do Pedido"
|
||||
current_fulfilled_units: "Unidades Completadas no Momento"
|
||||
max_fulfilled_units: "Máximo de Unidades Completadas "
|
||||
order_error: "Alguns erros devem ser corrigidos antes de atualizar os pedidos.\nOs campos com bordas vermelhas contém erros."
|
||||
current_fulfilled_units: "Unidades Completas no Momento"
|
||||
max_fulfilled_units: "Máximo de Unidades Completas "
|
||||
order_error: "Alguns erros devem ser corrigidos antes de actualizar os pedidos.\nOs campos com bordas vermelhas contêm erros."
|
||||
variants_without_unit_value: "AVISO: Algumas variantes não possuem unidade de valor"
|
||||
select_variant: "Selecionar uma variante"
|
||||
enterprise:
|
||||
select_outgoing_oc_products_from: 'Selecione a saída do ciclo de pedidos '
|
||||
enterprises:
|
||||
index:
|
||||
title: Organizações
|
||||
new_enterprise: Nova Organização
|
||||
producer?: "Produtor?"
|
||||
producer?: "Produtor/a?"
|
||||
package: Embalagem
|
||||
status: Status
|
||||
manage: Administrar
|
||||
status: Estado
|
||||
manage: Gerir
|
||||
form:
|
||||
about_us:
|
||||
desc_short: Descrição curta
|
||||
desc_short_placeholder: Conte-nos sobre a sua organização em uma ou duas frases
|
||||
desc_long: Sobre nós
|
||||
desc_long_placeholder: Conte aos consumidores sobre você. Esta informação aparece no seu perfil público.
|
||||
desc_long_placeholder: Conte um pouco de si aos consumidores. Esta informação aparece no seu perfil público.
|
||||
business_details:
|
||||
abn: ABN
|
||||
abn_placeholder: 'ex: 99 123 456 789'
|
||||
@@ -462,92 +477,91 @@ pt:
|
||||
promo_image_note2: Qualquer imagem promocional carregada aqui será cortada para 1200 x 260.
|
||||
promo_image_note3: A imagem promocional é exibida no topo da página de perfil da organização e em janelas pop-up.
|
||||
inventory_settings:
|
||||
text1: Você pode optar por gerenciar o seu nível de estoque e preços através de seu
|
||||
inventory: inventório
|
||||
text1: Pode optar por gerir o seu nível de stock e preços através do seu
|
||||
inventory: inventário
|
||||
text2: >
|
||||
Se você está usando a ferramenta de inventário, você pode selecionar
|
||||
se novos produtos adicionados pelos seus fornecedores precisam ser adicionados
|
||||
ao seu inventário antes de serem estocados. Se você não está usando
|
||||
o inventário para gerenciar os seus produtos, você deve selecionar a
|
||||
opção 'recomendado' abaixo.
|
||||
preferred_product_selection_from_inventory_only_yes: Novos produtos podem ser colocados na minha vitrine (recomendado)
|
||||
preferred_product_selection_from_inventory_only_no: Novos produtos devem ser adicionados no meu inventário antes de serem colocados na minha vitrine
|
||||
Se está a usar a ferramenta de inventário, pode selecionar se novos
|
||||
produtos adicionados pelos seus fornecedores precisam de ser adicionados
|
||||
ao seu inventário antes de entrarem em stock. Se não está a usar o inventário
|
||||
para gerir os seus produtos, deve selecionar a opção 'recomendado' abaixo.
|
||||
preferred_product_selection_from_inventory_only_yes: Novos produtos podem ser colocados na minha montra (recomendado)
|
||||
preferred_product_selection_from_inventory_only_no: Novos produtos devem ser adicionados ao meu inventário antes de serem colocados na minha montra
|
||||
payment_methods:
|
||||
name: Nome
|
||||
applies: Aplica?
|
||||
manage: Gerenciar métodos de pagamento
|
||||
not_method_yet: Você ainda não tem nenhum método de pagamento.
|
||||
manage: Gerir métodos de pagamento
|
||||
not_method_yet: Ainda não tem nenhum método de pagamento.
|
||||
create_button: Criar novo método de pagamento
|
||||
create_one_button: 'Criar um agora '
|
||||
primary_details:
|
||||
name: 'Nome '
|
||||
name_placeholder: 'ex: Trufas Biodinâmicas do Pereira'
|
||||
groups: Grupos
|
||||
groups_tip: Seleccione grupos e regiões das quais é membro. Isso ajudará os consumidores a encontrar a sua organização.
|
||||
groups_tip: Seleccione grupos e regiões das quais é membro. Isso ajudará os consumidores a encontrarem a sua organização.
|
||||
groups_placeholder: Comece a digitar para pesquisar grupos disponíveis...
|
||||
primary_producer: Produtor primário?
|
||||
primary_producer_tip: Selecione 'produtor' se você é primeiramente um produtor de alimentos
|
||||
primary_producer_tip: Selecione 'produtor' se é acima de tudo um/a produtor/a de alimentos
|
||||
producer: Produtor
|
||||
any: Qualquer
|
||||
none: Nenhum
|
||||
own: Próprio
|
||||
sells: Vende
|
||||
sells_tip: "Nenhum - a organização não vende directamente aos consumidores. <br /> Próprio - a organização vende os seus próprios produtos aos consumidores. <br /> Qualquer - a organização vende os seus próprios produtos ou produtos de outras organizações. <br />"
|
||||
visible_in_search: Visível na busca?
|
||||
visible_in_search: Visível na pesquisa?
|
||||
visible_in_search_tip: Determina se esta organização vai estar visível para os consumidores quando estes pesquisarem no website.
|
||||
visible: Visível
|
||||
not_visible: Invisível
|
||||
permalink: Permalink (sem espaços)
|
||||
permalink_tip: "Esse link é usado para criar a URL para a sua loja: %{link}nome-loja/loja"
|
||||
permalink_tip: "Este link é usado para criar o URL para a sua loja: %{link}nome-loja/loja"
|
||||
link_to_front: Link para a loja
|
||||
link_to_front_tip: Um link direto para a sua loja no Open Food Network.
|
||||
shipping_methods:
|
||||
name: Nome
|
||||
applies: Aplica?
|
||||
manage: Gerenciar formas de envio
|
||||
manage: Gerir formas de envio
|
||||
create_button: Criar nova forma de envio
|
||||
create_one_button: Criar um agora
|
||||
no_method_yet: Você ainda não tem nenhuma forma de envio.
|
||||
no_method_yet: Ainda não tem nenhuma forma de envio.
|
||||
shop_preferences:
|
||||
shopfront_requires_login: "Mercado visível publicamente?"
|
||||
shopfront_requires_login_tip: "Escolha se os clientes precisarão fazer o login para ver os produtos do mercado, ou se eles estarão visíveis para todos."
|
||||
shopfront_requires_login_false: "Publico"
|
||||
shopfront_requires_login_true: "Disponível somente para clientes registrados"
|
||||
recommend_require_login: "Recomendamos pedir login dos usuários quando permitido que pedidos possam ser alterados."
|
||||
allow_guest_orders: "Pedidos dos convidados"
|
||||
allow_guest_orders_tip: "Permitir o checkout como convidado, ou requisitar um usuário registrado. "
|
||||
allow_guest_orders_false: "Requisitar o registro para fazer pedidos"
|
||||
shopfront_requires_login_tip: "Escolha se os consumidores vão precisar de fazer login para ver a montra da loja, ou se esta estará visível para toda a gente."
|
||||
shopfront_requires_login_false: "Público"
|
||||
shopfront_requires_login_true: "Disponível somente para clientes registados"
|
||||
recommend_require_login: "Recomendamos que peça login dos utilizadores quando é permitido que as encomendas sejam alteradas. "
|
||||
allow_guest_orders: "Encomendas de convidados"
|
||||
allow_guest_orders_tip: "Permitir o checkout como convidado, ou requisitar um utilizador registado. "
|
||||
allow_guest_orders_false: "Requisitar o registo para fazer encomendas"
|
||||
allow_guest_orders_true: "Permitir checkout de convidados"
|
||||
allow_order_changes: "Mudar pedidos"
|
||||
allow_order_changes_tip: "Permitir que os consumidores mudem seus pedidos enquanto a compra estiver aberta."
|
||||
allow_order_changes_false: "Pedidos enviados não podem ser mudados ou cancelados."
|
||||
allow_order_changes_true: "Consumidor pode mudar ou cancelar pedidos enquanto a compra estiver aberta."
|
||||
allow_order_changes: "Alterar encomendas"
|
||||
allow_order_changes_tip: "Permitir que os consumidores alterem os seus pedidos enquanto o ciclo de encomendas estiver aberto."
|
||||
allow_order_changes_false: "Encomendas submetidas não podem ser alteradas / canceladas."
|
||||
allow_order_changes_true: "Os consumidores pode alterar / cancelar encomendas enquanto o ciclo de encomendas estiver aberto."
|
||||
enable_subscriptions: "Subscrições"
|
||||
enable_subscriptions_tip: "Activar funcionalidade das subscrições?"
|
||||
enable_subscriptions_false: "Desactivado"
|
||||
enable_subscriptions_true: "Activado"
|
||||
shopfront_message: Mensagem da vitrine da loja
|
||||
enable_subscriptions_true: "Activo"
|
||||
shopfront_message: Mensagem da montra da loja
|
||||
shopfront_message_placeholder: >
|
||||
Uma breve e opcional explicação para os consumidores detalhando como
|
||||
funciona a sua loja, a ser exibida acima da lista de produtos na sua
|
||||
vitrine.
|
||||
Uma explicação breve e opcional para os consumidores a explicar como
|
||||
funciona a loja, a ser exibida acima da lista de produtos na sua montra.
|
||||
shopfront_closed_message: Mensagem de loja fechada
|
||||
shopfront_closed_message_placeholder: >
|
||||
Uma mensagem que forneça uma explicação detalhada sobre o porque de
|
||||
a loja estar fechada e quando os consumidores podem esperar que abra
|
||||
novamente, a ser exibida quando não houver nenhum ciclo de pedidos ativo.
|
||||
Uma mensagem que forneça uma explicação detalhada sobre o motivo da
|
||||
loja estar fechada e quando é que os consumidores podem esperar que
|
||||
abra novamente, a ser exibida quando não houver nenhum ciclo de encomendas
|
||||
activo.
|
||||
shopfront_category_ordering: Categoria de pedidos da loja
|
||||
open_date: Dia de abertura
|
||||
close_date: Dia de fechamento
|
||||
close_date: Dia de fecho
|
||||
social:
|
||||
twitter_placeholder: 'ex: @o_prof'
|
||||
stripe_connect:
|
||||
connect_with_stripe: "Conectar usando o Stripe"
|
||||
connect_with_stripe: "Conectar com o Stripe"
|
||||
stripe_connect_intro: "Para aceitar pagamentos com cartão de crédito, vai ser necessário ligar a sua conta Stripe à Open Food Network. Use o botão à direita para começar."
|
||||
stripe_account_connected: "Conta Stripe conectada"
|
||||
disconnect: "Desligar conta"
|
||||
confirm_modal:
|
||||
title: Conectar usando o Stripe
|
||||
title: Conectar com o Stripe
|
||||
part1: O Stripe é um serviço de processamento de pagamentos que permite às lojas OFN aceitarem pagamentos dos seus clientes com cartão de crédito.
|
||||
part2: Para usar esta funcionalidade, tem de ligar a sua conta Stripe à OFN. Ao clicar em 'Concordo' abaixo vai ser redirecionado para o website Stripe onde pode estabelecer ligação com uma conta existente, ou criar uma conta nova caso ainda não tenha uma.
|
||||
part3: Isto vai permitir à Open Food Network aceitar pagamentos dos seus clientes com cartão de crédito em seu nome. Tenha em conta que do seu lado vai ser necessário manter a sua própria conta Stripe, pagar as taxas à Stripe e lidar com quaisquer rejeições ou serviços ao cliente.
|
||||
@@ -564,7 +578,7 @@ pt:
|
||||
add_new_rule: '+ Adicionar nova regra'
|
||||
add_new_tag: '+ Adicionar nova etiqueta'
|
||||
users:
|
||||
email_confirmation_notice_html: "Confirmação de e-mail está pendente. Enviamos um e-mail de confirmação para %{email}."
|
||||
email_confirmation_notice_html: "A confirmação de e-mail está pendente. Enviamos um e-mail de confirmação para %{email}."
|
||||
resend: Reenviar
|
||||
owner: 'Proprietário'
|
||||
contact: "Contacto"
|
||||
@@ -576,6 +590,9 @@ pt:
|
||||
notifications_note: 'Nota: um novo endereço de e-mail pode precisar ser confirmado antes do uso'
|
||||
managers: Administradores
|
||||
managers_tip: Os outros utilizadores com permissão para gerir esta organização.
|
||||
invite_manager: "Convidar Gestor/a"
|
||||
invite_manager_tip: "Convidar um utilizador não-registado a inscrever-se e tornar-se gestor desta organização."
|
||||
add_unregistered_user: "Adicionar um utilizador não-registado"
|
||||
email_confirmed: "Email confirmado"
|
||||
email_not_confirmed: "Email não confirmado"
|
||||
actions:
|
||||
@@ -596,22 +613,22 @@ pt:
|
||||
producer: Produtor
|
||||
change_type_form:
|
||||
producer_profile: Perfil do produtor
|
||||
connect_ofn: Conecte-se através do Open Food Network
|
||||
connect_ofn: Conectar através da Open Food Network
|
||||
always_free: SEMPRE GRATUITO
|
||||
producer_description_text: Adicione os seus produtos ao Open Food Network, permitindo que os hubs os comercialize em suas lojas.
|
||||
producer_shop: Loja do produtor
|
||||
sell_your_produce: 'Venda seus próprios produtos '
|
||||
producer_description_text: Adicione os seus produtos à Open Food Network, permitindo que os hubs os comercializem nas suas lojas.
|
||||
producer_shop: Loja de produtor
|
||||
sell_your_produce: 'Venda os seus próprios produtos '
|
||||
producer_shop_description_text: Venda os seus produtos directamente aos seus clientes através da sua própria montra Open Food Network.
|
||||
producer_shop_description_text2: Uma Loja de Produtor/a é somente para os seus produtos, se quiser vender produtos de outro local, selecione Hub de Produtores.
|
||||
producer_hub: Hub de produtor
|
||||
producer_hub_text: Venda seus próprios produtos e de outros produtores
|
||||
producer_hub_description_text: A sua organização é a espinha dorsal do seu sistema de produção e consumo local. Através dela, pode comercializar os seus próprios produtos, assim como produtos agregados de outras iniciativas e produtores, através da sua loja na Open Food Network.
|
||||
producer_hub: Hub de Produtores
|
||||
producer_hub_text: Venda os seus próprios produtos e também os de outros produtores
|
||||
producer_hub_description_text: A sua organização é a espinha dorsal de um sistema de produção e consumo local. Através dela, pode comercializar os seus próprios produtos, assim como produtos agregados de outras iniciativas e produtores, através da sua loja na Open Food Network.
|
||||
profile: Somente perfil
|
||||
get_listing: Obter uma listagem
|
||||
profile_description_text: As pessoas podem encontrá-lo e contactá-lo na Open Food Network. A sua organização ficará visível no mapa e poderá ser encontrada através do motor de pesquisa.
|
||||
hub_shop: Loja do hub
|
||||
hub_shop_text: Comercialize produtos de outros
|
||||
hub_shop_description_text: A sua organização é a espinha dorsal do seu sistema de produção e consumo local. Através dela, pode agregar produtos de outras organizações e produtores, e comercializá-los na sua loja na Open Food Network.
|
||||
hub_shop_description_text: A sua organização é a espinha dorsal de um sistema de produção e consumo local. Através dela, pode agregar produtos de outras organizações e produtores, e comercializá-los na sua loja na Open Food Network.
|
||||
choose_option: Por favor escolha uma das opções acima.
|
||||
change_now: Mudar agora
|
||||
enterprise_user_index:
|
||||
@@ -635,6 +652,9 @@ pt:
|
||||
welcome_text: Você criou com sucesso uma
|
||||
next_step: Próximo passo
|
||||
choose_starting_point: 'Escolha o seu ponto de partida:'
|
||||
invite_manager:
|
||||
user_already_exists: "O utilizador já existe"
|
||||
error: "Algo correu mal"
|
||||
order_cycles:
|
||||
edit:
|
||||
advanced_settings: Configurações avançadas
|
||||
@@ -838,6 +858,7 @@ pt:
|
||||
confirm_unpause_msg: Tem a certeza que pretende parar a pausa desta subscrição?
|
||||
unpause_failure_msg: 'Desculpe, não foi possível parar a pausa!'
|
||||
confirm_cancel_open_orders_msg: "Algumas encomendas para esta subscrição estão actualmente abertas. O/a consumidor/a foi notificado que a encomenda será processada. Quer cancelar esta(s) encomenda(s) ou mantê-las?"
|
||||
resume_canceled_orders_msg: "Algumas encomendas desta subscrição podem ser retomadas neste momento. Para retomá-las, selecione no menú dropdown de encomendas."
|
||||
yes_cancel_them: Cancelá-las
|
||||
no_keep_them: Mantê-las
|
||||
yes_i_am_sure: Sim, tenho a certeza
|
||||
@@ -846,6 +867,9 @@ pt:
|
||||
no_subscriptions: Ainda não existem subscrições....
|
||||
why_dont_you_add_one: Porque não acrescentar uma? :)
|
||||
no_matching_subscriptions: Não foram encontradas subscrições a condizer
|
||||
schedules:
|
||||
destroy:
|
||||
associated_subscriptions_error: Este horário não pode ser eliminado porque tem subscrições associadas
|
||||
stripe_connect_settings:
|
||||
edit:
|
||||
title: "Ligar ao Stripe"
|
||||
@@ -1033,7 +1057,7 @@ pt:
|
||||
home_shop: Compre Agora
|
||||
brandstory_headline: "Alimentos, com liberdade"
|
||||
brandstory_intro: "Às vezes, a melhor maneira de consertar o sistema é construir um novo..."
|
||||
brandstory_part1: "A gente começa por quem produz os alimentos, contando suas histórias e de seus cultivos, passando por quem distribui de modo justo e sem desperdício, até chegar em quem acredita que suas decisões de consumo podem..."
|
||||
brandstory_part1: "Começamos a partir da terra. Com agricultores e produtores prontos a contarem as suas histórias com um brilho nos olhos. Com distribuidores prontos a estabelecerem ligações entre pessoas e produtos de forma justa e honesta. Com consumidores que acreditam que melhores decisões no momento da compra podem mudar o mundo. "
|
||||
brandstory_part2: "Precisamos de uma ferramenta para empoderar a todos que produzem, vendem e compram comida. Uma maneira de contar histórias, e controlar toda a logística. "
|
||||
brandstory_part3: "Por isso construímos um mercado online, transparente, capaz de criar conexões verdadeiras. O código é aberto, e pode ser modificado para melhor se adaptar as particularidades de cada canto do planeta. "
|
||||
brandstory_part4: "Queremos de volta o controle sobre os alimentos que consumimos."
|
||||
@@ -1113,7 +1137,6 @@ pt:
|
||||
email_admin_html: "Você pode gerenciar sua conta entrando no %{link} ou clicando na engrenagem no canto superior direito da página, e selecionando Administração."
|
||||
email_community_html: "Também temos um fórum online para discussão sobre a plataforma e os desafios de se manter uma iniciativa de produção e consumo local. Está convidado/a a participar! Estamos constantemente a evoluir e as suas ideias vão ajudar-nos a melhorar.\n%{link}"
|
||||
join_community: "Faça parte da comunidade"
|
||||
email_help: "Se tiver quaisquer dificuldades, leia nosso FAQs, navegue no fórum ou crie um post no tópico 'Support' e alguém irá te ajudar!"
|
||||
email_confirmation_activate_account: "Antes de podermos activar a sua conta, precisamos de confirmar o seu endereço de email."
|
||||
email_confirmation_greeting: "Olá, %{contact}!"
|
||||
email_confirmation_profile_created: "Um perfil para %{name} foi criado com sucesso!\nPara ativar seu Perfil precisamos que você confirme seu endereço de email."
|
||||
@@ -1170,8 +1193,14 @@ pt:
|
||||
email_signup_welcome: "Bem vindo a %{sitename}!"
|
||||
email_signup_confirmed_email: "Obrigada por confirmar o seu email."
|
||||
email_signup_shop_html: "Já pode fazer log in em %{link}."
|
||||
email_signup_text: "Obrigada por se juntar à rede. Se é consumidor/a, vai ficar a conhecer vários produtores fantásticos, pontos de venda incríveis e comidas deliciosas! Se é produtor/a ou uma organização de consumo local, estamos felizes por tê-lo na nossa rede"
|
||||
email_signup_text: "Obrigada por juntar-se à rede. Se é consumidor/a, vai ficar a conhecer vários produtores fantásticos, pontos de venda incríveis e comidas deliciosas! Se é produtor/a ou uma organização de consumo local, estamos felizes por tê-lo na nossa rede"
|
||||
email_signup_help_html: "Dúvidas e comentários são sempre benvindos; você pode usar o botão <em>Enviar Comentário</em> no site, ou enviar um e-mail para %{email}"
|
||||
invite_email:
|
||||
greeting: "Olá!"
|
||||
invited_to_manage: "Foste convidado/a para gerir %{enterprise} em %{instance}."
|
||||
confirm_your_email: "Deves ter recebido, ou receberás em breve, um email com um link de confirmação. Não vais conseguir aceder ao perfil de %{enterprise} enquanto não tiveres confirmado o teu email. "
|
||||
set_a_password: "Depois ser-te-á pedido que definas uma palavra-passe antes de poderes administrar a organização."
|
||||
mistakenly_sent: "Não tens a certeza porque é que recebeste este email? Por favor contacta %{owner_email}para mais informação. "
|
||||
producer_mail_greeting: "Querido"
|
||||
producer_mail_text_before: "Agora temos todos os pedidos do cliente para a próxima entrega."
|
||||
producer_mail_order_text: "Aqui está um resumo de pedidos para seus produtos:"
|
||||
@@ -1327,32 +1356,32 @@ pt:
|
||||
shops_text: 'A colheita é feita em ciclos, a comida é produzida em ciclos, e nós fazemos nossos pedidos em ciclos. Se você encontrar um ciclo de pedidos fechado, volte em breve para tentar novamente. '
|
||||
shops_signup_title: Registre-se como uma central
|
||||
shops_signup_headline: 'Um mercado de alimentos sem tamanho. '
|
||||
shops_signup_motivation: 'Seja qual for seu perfil, nos oferecemos suporte. Somos sem fins lucrativos, independentes, e open source. '
|
||||
shops_signup_action: Cadastre-se agora
|
||||
shops_signup_motivation: Seja qual for o seu modelo, nós ajudamos. Se houver mudanças, estamos consigo. Somos sem fins lucrativos, independentes, e open source. Somos os parceiros de software com os quais sonhou.
|
||||
shops_signup_action: Junte-se agora
|
||||
shops_signup_pricing: Contas da Organização
|
||||
shops_signup_stories: Histórias de nossas centrais.
|
||||
shops_signup_stories: Histórias dos nossos membros.
|
||||
shops_signup_help: Estamos prontos para ajudar
|
||||
shops_signup_help_text: Você precisa de mais retorno, novos compradores e parceiros de logística. Você precisa contar a sua história.
|
||||
shops_signup_help_text: Você está a precisar de melhor retorno, de novos clientes e parceiros de logística. Está a precisar que a sua história seja contada em grupos de consumo, em retalho e à mesa de jantar.
|
||||
shops_signup_detail: Aqui está o detalhe.
|
||||
orders: Encomendas
|
||||
orders_fees: Taxas...
|
||||
orders_edit_title: Carrinho de compras
|
||||
orders_edit_headline: seu carrinho de compras
|
||||
orders_edit_headline: O seu carrinho de compras
|
||||
orders_edit_time: Pedido pronto para
|
||||
orders_edit_continue: Continuar comprando
|
||||
orders_edit_continue: Continuar a comprar
|
||||
orders_edit_checkout: Fechar pedido
|
||||
orders_form_empty_cart: "Carrinho vazio"
|
||||
orders_form_subtotal: Subtotal dos produtos
|
||||
orders_form_admin: Administração & Logística
|
||||
orders_form_total: Total
|
||||
orders_oc_expired_headline: Este ciclo de pedidos está fechado para pedidos
|
||||
orders_oc_expired_text: "Desculpe, este ciclo de pedidos fechou há %{time} atrás. Favor entrar em contato diretamente com sua central para saber se podem aceitar pedidos atrasados."
|
||||
orders_oc_expired_text_others_html: "Desculpe, este ciclo de pedidos fechou há %{time} atrás. Favor entrar em contato diretamente com sua central para saber se podem aceitar pedidos atrasados <strong>%{link}</strong>."
|
||||
orders_oc_expired_text_link: "ou veja os outros ciclos de pedidos disponíveis nessa central"
|
||||
orders_oc_expired_headline: Este ciclo de encomendas está fechado para pedidos
|
||||
orders_oc_expired_text: "Desculpe, este ciclo de encomendas fechou há %{time} atrás. Por favor entre em contacto directamente com a sua central para saber se podem aceitar pedidos tardios."
|
||||
orders_oc_expired_text_others_html: "Desculpe, este ciclo de encomendas fechou há %{time} atrás. Por favor entre em contacto directamente com a sua central para saber se podem aceitar pedidos tardios <strong>%{link}</strong>."
|
||||
orders_oc_expired_text_link: "ou veja os outros ciclos de encomendas que estão disponíveis nesta central"
|
||||
orders_oc_expired_email: "Email:"
|
||||
orders_oc_expired_phone: "Telefone:"
|
||||
orders_show_title: Confimação de Pedido
|
||||
orders_show_time: Pedido pronto em
|
||||
orders_show_title: Confimação de Encomenda
|
||||
orders_show_time: Encomenda pronta em
|
||||
orders_show_order_number: "Encomenda #%{number}"
|
||||
orders_show_cancelled: Cancelada
|
||||
orders_show_confirmed: Confirmada
|
||||
@@ -1360,30 +1389,30 @@ pt:
|
||||
orders_could_not_cancel: "Pedimos desculpa, a sua encomenda não pode ser cancelada"
|
||||
orders_cannot_remove_the_final_item: "Não é possível remover o item final de uma encomenda, em vez disso, por favor cancele a encomenda."
|
||||
orders_bought_items_notice:
|
||||
one: Um item adicional já está confirmado para este ciclo de encomendas
|
||||
other: '%{count}itens adicionais já confirmados para este ciclo de encomendas '
|
||||
one: "Um item adicional já está confirmado para este ciclo de encomendas"
|
||||
other: "%{count}itens adicionais já confirmados para este ciclo de encomendas "
|
||||
orders_bought_edit_button: Editar itens confirmados
|
||||
orders_bought_already_confirmed: "* já confirmado"
|
||||
orders_confirm_cancel: Tem a certeza que quer cancelar esta encomenda?
|
||||
products_cart_distributor_choice: "Distribuidor para seu pedido:"
|
||||
products_cart_distributor_change: "O distribuidor para este pedido será trocado para %{name} se você adicionar este produto no carrinho."
|
||||
products_cart_distributor_change: "O distribuidor para esta encomenda será alterado para %{name} se adicionar este produto ao carrinho."
|
||||
products_cart_distributor_is: "O distribuidor para este pedido é %{name}."
|
||||
products_distributor_error: "Favor completar seu pedido no %{link} antes de comprar com outro distribuidor."
|
||||
products_oc: "Ciclo de pedido para seu pedido:"
|
||||
products_oc_change: "O ciclo de pedido para esse pedido será trocada para %{name} se você adicionar este produto ao carrinho."
|
||||
products_oc_is: "O ciclo de pedido para este pedido é %{name}."
|
||||
products_oc_error: "Favor completar seu pedido no %{link} antes de comprar em outro ciclo de pedido."
|
||||
products_oc_current: "seu ciclo de pedido atual"
|
||||
products_oc_current: "o seu actual ciclo de encomendas"
|
||||
products_max_quantity: Quantidade máxima
|
||||
products_distributor: Distribuidor
|
||||
products_distributor_info: Quando você selecionar um distribuidor para seu pedido, o endereço e data para retirada serão exibidos aqui.
|
||||
products_distributor_info: Quando seleccionar um distribuidor para a sua encomenda, o endereço e data de levantamento serão exibidos aqui.
|
||||
products_distribution_adjustment_label: "Distribuição de produto por %{distributor} para %{product}."
|
||||
shop_trial_expires_in: "O período de avaliação do mercado termina em "
|
||||
shop_trial_expired_notice: "Boa notícia! Decidimos extender o período avaliação do mercado até segunda ordem. "
|
||||
password: Senha
|
||||
remember_me: Lembre-me
|
||||
are_you_sure: "Tem certeza?"
|
||||
orders_open: Pedidos abertos
|
||||
orders_open: Encomendas abertas
|
||||
closing: "Fechando"
|
||||
going_back_to_home_page: "Voltando à pagina inicial"
|
||||
creating: Criando
|
||||
@@ -1392,14 +1421,14 @@ pt:
|
||||
failed_to_create_enterprise_unknown: "Falha ao criar a sua organização. \nPor favor verifique se todos os campos foram preenchidos correctamente."
|
||||
failed_to_update_enterprise_unknown: "Falha ao actualizar a sua organização. \nPor favor verifique se todos os campos foram preenchidos correctamente."
|
||||
enterprise_confirm_delete_message: "Isto também vai apagar o %{product} que esta organização fornece. Tem a certeza que deseja continuar?"
|
||||
order_not_saved_yet: "Seu pedido ainda não foi salvo. Aguarde um momento. "
|
||||
order_not_saved_yet: "A sua encomenda ainda não foi guardada. Só mais uns minutinhos para teminar! "
|
||||
filter_by: "Filtrar por"
|
||||
hide_filters: "Esconder filtros"
|
||||
one_filter_applied: "1 filtro aplicado"
|
||||
x_filters_applied: "filtros aplicados"
|
||||
submitting_order: "Processando seu pedido: favor aguardar"
|
||||
submitting_order: "A processar o seu pedido: favor aguarde"
|
||||
confirm_hub_change: "Tem certeza? Isso irá mudar a central selecionada e remover todos os ítens do carrinho de compras."
|
||||
confirm_oc_change: "Tem certeza? Isso irá mudar o ciclo de pedidos selecionado e remover todos os ítens do carrinho de compras."
|
||||
confirm_oc_change: "Tem a certeza? Isto mudará o ciclo de encomendas seleccionado e removerá todos os itens do carrinho de compras."
|
||||
location_placeholder: "Digite uma localidade..."
|
||||
error_required: "Não pode ser vazio"
|
||||
error_number: "Precisa ser um número"
|
||||
@@ -1434,6 +1463,7 @@ pt:
|
||||
password_reset_sent: "Um email foi enviado com instruções para resetar sua senha!"
|
||||
reset_password: "Resetar password"
|
||||
who_is_managing_enterprise: "Quem é responsável por gerir %{enterprise}? "
|
||||
update_and_recalculate_fees: "Actualizar e Recalcular Taxas"
|
||||
enterprise:
|
||||
registration:
|
||||
modal:
|
||||
@@ -1622,7 +1652,7 @@ pt:
|
||||
Ready: "Pronto"
|
||||
ok: OK
|
||||
not_visible: não visível
|
||||
you_have_no_orders_yet: "Você ainda não tem pedidos"
|
||||
you_have_no_orders_yet: "Ainda não tem encomendas"
|
||||
running_balance: "Balanço corrente"
|
||||
outstanding_balance: "Saldo devedor"
|
||||
admin_entreprise_relationships: "Relações da Organização"
|
||||
@@ -1650,7 +1680,7 @@ pt:
|
||||
admin_entreprise_groups_web: "Recursos Web"
|
||||
admin_entreprise_groups_web_twitter: "ex. @nome_perfil"
|
||||
admin_entreprise_groups_web_website_placeholder: "ex. www.cogumelos.com.br"
|
||||
admin_order_cycles: "Ciclo de Pedidos do Administrador"
|
||||
admin_order_cycles: "Ciclos de Encomendas do Administrador"
|
||||
open: "Aberto"
|
||||
close: "Fechado"
|
||||
create: "Criar"
|
||||
@@ -1670,11 +1700,11 @@ pt:
|
||||
calculator: "Calculadora"
|
||||
calculator_values: "Valores da calculadora"
|
||||
flat_percent_per_item: "Percentual (por unidade)"
|
||||
new_order_cycles: "Novo Ciclo de Pedidos"
|
||||
new_order_cycle: "Novo ciclo de pedido"
|
||||
select_a_coordinator_for_your_order_cycle: "Escolher um coordenador para novo ciclo de pedidos"
|
||||
new_order_cycles: "Novos Ciclo de Encomendas"
|
||||
new_order_cycle: "Novo ciclo de encomendas"
|
||||
select_a_coordinator_for_your_order_cycle: "Escolher um coordenador para o seu ciclo de encomendas"
|
||||
notify_producers: 'Notificar produtores'
|
||||
edit_order_cycle: "Editar Ciclo de Pedidos"
|
||||
edit_order_cycle: "Editar Ciclo de Encomendas"
|
||||
roles: "Papeis"
|
||||
update: "Atualizar"
|
||||
delete: Apagar
|
||||
@@ -1694,7 +1724,7 @@ pt:
|
||||
price: "Preço"
|
||||
on_hand: "Disponível"
|
||||
save_changes: "Salvar Modificações"
|
||||
order_saved: "Pedido salvo"
|
||||
order_saved: "Pedido guardado"
|
||||
no_products: Sem Produtos
|
||||
spree_admin_overview_enterprises_header: "As minhas Organizações"
|
||||
spree_admin_overview_enterprises_footer: "GERIR AS MINHAS ORGANIZAÇÕES"
|
||||
@@ -1743,8 +1773,8 @@ pt:
|
||||
resend: "Re-enviar"
|
||||
trial: Experiência
|
||||
add_and_manage_products: "Adicionar e gerenciar produtos"
|
||||
add_and_manage_order_cycles: "Adicionar e enviar ciclos de pedidos"
|
||||
manage_order_cycles: "Gerenciar ciclos de pedidos"
|
||||
add_and_manage_order_cycles: "Adicionar e gerir ciclos de encomendas"
|
||||
manage_order_cycles: "Gerir ciclos de encomendas"
|
||||
manage_products: "Gerenciar produtos"
|
||||
edit_profile_details: "Editar detalhes de perfil "
|
||||
edit_profile_details_etc: "Modificar a descrição dos seu perfil, imagem, etc."
|
||||
@@ -1945,7 +1975,6 @@ pt:
|
||||
products_unsaved: "Modificações para %{n} produtos permanecem não salvas."
|
||||
is_already_manager: "já é um gestor!"
|
||||
no_change_to_save: "Nenhuma modificação a ser salva"
|
||||
add_manager: "Adicionar um gestor"
|
||||
users: "Usuários"
|
||||
about: "Sobre"
|
||||
images: "Imagens"
|
||||
@@ -1956,6 +1985,7 @@ pt:
|
||||
social: "Social"
|
||||
business_details: "Detalhes do negócio"
|
||||
properties: "Propriedades"
|
||||
shipping: "Envio"
|
||||
shipping_methods: "Métodos de Entrega"
|
||||
payment_methods: "Métodos de Pagamento"
|
||||
payment_method_fee: "Taxa de transação"
|
||||
@@ -2006,6 +2036,13 @@ pt:
|
||||
order_cycles_email_to_producers_notice: 'Os email a enviar aos produtores foram postos na fila de espera para envio.'
|
||||
order_cycles_no_permission_to_coordinate_error: "Nenhuma das suas organizações tem permissão para coordenar um ciclo de encomendas."
|
||||
order_cycles_no_permission_to_create_error: "Não tem permissão para criar um ciclo de encomendas coordenado por essa organização."
|
||||
back_to_orders_list: "Voltar à lista de encomendas"
|
||||
order_information: "Informação da Encomenda"
|
||||
date_completed: "Data Conclusão"
|
||||
amount: "Quantia"
|
||||
state_names:
|
||||
ready: Pronto
|
||||
pending: Pendente
|
||||
js:
|
||||
saving: 'A guardar....'
|
||||
changes_saved: 'Alterações guardadas.'
|
||||
@@ -2023,18 +2060,17 @@ pt:
|
||||
choose: Escolha
|
||||
resolve_errors: Por favor resolva os seguintes erros
|
||||
more_items: "+ %{count} Mais"
|
||||
closes: fecha
|
||||
closed: fechado
|
||||
admin:
|
||||
enterprise_limit_reached: "Atingiu o número limite de organizações por conta. Escreva para %{contact_email} se precisar de aumentá-lo."
|
||||
modals:
|
||||
got_it: Percebi
|
||||
tag_rule_help:
|
||||
title: Regras de Etiquetas
|
||||
overview: Visão geral
|
||||
overview_text: >
|
||||
As regras de tag fornecem uma maneira para descrever quais itens são
|
||||
visíveis ou não e para quais clientes, como formas de pagamento, formas
|
||||
de entrega, produtos e ciclos de pedidos.
|
||||
As regras de tag permitem descrever quais os itens que são visíveis
|
||||
ou não e para que clientes. Os itens podem ser métodos de envio, formas
|
||||
de pagamento, produtos e ciclos de encomendas.
|
||||
by_default_rules: "Regras 'Por Defeito...'"
|
||||
by_default_rules_text: >
|
||||
As regras por defeito permitem esconder itens de forma a que estes não
|
||||
@@ -2182,7 +2218,7 @@ pt:
|
||||
could_not_delete_customer: 'Não foi possível eliminar o cliente'
|
||||
product_import:
|
||||
confirmation: |
|
||||
Isto colocará a zero o stock de todos os produtos desta organização que não estejam presentes no ficheiro carregado.
|
||||
Isto colocará a zero o stock de todos os produtos desta organização que não estejam presentes no ficheiro carregado.
|
||||
order_cycles:
|
||||
update_success: 'O seu ciclo de encomendas foi actualizado.'
|
||||
no_distributors: Não existem distribuidores neste ciclo. Este ciclo de encomendas só ficará visível para os clientes quando um distribuidor for adicionado. Gostaria de continuar a guardar este ciclo de encomendas?
|
||||
@@ -2192,6 +2228,10 @@ pt:
|
||||
customers:
|
||||
select_shop: 'Por favor selecione primeiro uma loja'
|
||||
could_not_create: Perdão! Não conseguimos criar
|
||||
subscriptions:
|
||||
closes: fecha
|
||||
closed: fechado
|
||||
close_date_not_set: Data de fecho não definida
|
||||
producers:
|
||||
signup:
|
||||
start_free_profile: "Começa com um perfil gratuito e expande quando estiveres pronto/a!"
|
||||
@@ -2199,6 +2239,8 @@ pt:
|
||||
email: Email
|
||||
account_updated: "Conta actualizada!"
|
||||
my_account: "A minha conta"
|
||||
date: "Data"
|
||||
time: "Hora"
|
||||
admin:
|
||||
orders:
|
||||
invoice:
|
||||
@@ -2305,14 +2347,23 @@ pt:
|
||||
address: endereço
|
||||
adjustments: ajustes
|
||||
awaiting_return: aguardando retorno
|
||||
canceled: cancelado
|
||||
cart: carrinho
|
||||
complete: completo
|
||||
confirm: confirmado
|
||||
delivery: entrega
|
||||
paused: em pausa
|
||||
payment: pagamento
|
||||
pending: pendente
|
||||
resumed: retomado
|
||||
returned: retornado
|
||||
skrill: skrill
|
||||
subscription_state:
|
||||
active: activo
|
||||
pending: pendente
|
||||
ended: terminou
|
||||
paused: em pausa
|
||||
canceled: cancelado
|
||||
payment_states:
|
||||
balance_due: saldo devedor
|
||||
completed: completado
|
||||
@@ -2321,9 +2372,9 @@ pt:
|
||||
failed: falha
|
||||
paid: pago
|
||||
pending: pendente
|
||||
processing: processando
|
||||
processing: em processamento
|
||||
void: vazio
|
||||
invalid: inváliod
|
||||
invalid: inválido
|
||||
shipment_states:
|
||||
backorder: atrasos
|
||||
partial: parcial
|
||||
@@ -2333,12 +2384,14 @@ pt:
|
||||
user_mailer:
|
||||
reset_password_instructions:
|
||||
request_sent_text: |
|
||||
Recebemos um pedido para redefinir a sua senha.
|
||||
Se não fez este pedido, simplesmente ignore esta mensagem.
|
||||
Recebemos um pedido para redefinir a sua senha.
|
||||
Se não fez este pedido, simplesmente ignore esta mensagem.
|
||||
link_text: >
|
||||
Se fez este pedido, clique na ligação abaixo:
|
||||
issue_text: |
|
||||
Se o endereço URL acima não funcionar, tente copiá-lo e colá-lo directamente no browser. Se continuar a ter problemas por favor entre em contacto.
|
||||
Se o endereço URL acima não funcionar, tente copiá-lo e colá-lo directamente no browser. Se continuar a ter problemas por favor entre em contacto.
|
||||
confirmation_instructions:
|
||||
subject: Por favor confirme a sua conta OFN
|
||||
weight: Peso (por kg)
|
||||
zipcode: Código postal
|
||||
users:
|
||||
@@ -2350,6 +2403,7 @@ pt:
|
||||
cards: Cartões de Crédito
|
||||
transactions: Transações
|
||||
settings: Definições de Conta
|
||||
unconfirmed_email: "Confirmação de email pendente para: %{unconfirmed_email}. O seu endereço de email será actualizado assim que o novo email esteja confirmado. "
|
||||
orders:
|
||||
open_orders: Encomendas Abertas
|
||||
past_orders: Encomendas Passadas
|
||||
|
||||
@@ -3,7 +3,7 @@ sv:
|
||||
attributes:
|
||||
spree/order:
|
||||
payment_state: Betalningstatus
|
||||
shipment_state: Leveranstatus
|
||||
shipment_state: Leveransstatus
|
||||
errors:
|
||||
models:
|
||||
spree/user:
|
||||
@@ -13,14 +13,8 @@ sv:
|
||||
devise:
|
||||
failure:
|
||||
invalid: |
|
||||
Ogiltig e-post eller lösenord.
|
||||
Var du gäst senast? Du behöver kanske skapa ett konto eller återställa ditt lösenord.
|
||||
enterprise_confirmations:
|
||||
enterprise:
|
||||
confirmed: Tack, din e-postadress har blivit bekräftad.
|
||||
not_confirmed: Din e-postadress kunde inte bekräftas. Du kanske redan har genomfört det här steget?
|
||||
confirmation_sent: "Bekräftelsemail skickat!"
|
||||
confirmation_not_sent: "Kunde ej skicka bekräftelsemail."
|
||||
Ogiltig e-post eller lösenord.
|
||||
Var du gäst senast? Du behöver kanske skapa ett konto eller återställa ditt lösenord.
|
||||
enterprise_mailer:
|
||||
confirmation_instructions:
|
||||
subject: "Vänligen bekräfta e-postadressen för %{enterprise}"
|
||||
@@ -32,45 +26,45 @@ sv:
|
||||
home: "OFN"
|
||||
title: Open Food Network
|
||||
welcome_to: 'Välkommen till'
|
||||
site_meta_description: "dölja"
|
||||
site_meta_description: "Vi börjar från grunden. Med bönder och odlare redo att berätta sina berättelser stolt och verkligt. Med distributörer redo att ansluta människor med produkter rättvist och ärligt. Med köpare som tror att bättre veckovisa köpbeslut kan ..."
|
||||
search_by_name: Sök på ortnamn eller förort...
|
||||
producers_join: Svenska producenter kan nu gå med i Open Food Network. Välkomna!
|
||||
charges_sales_tax: Debiterar Moms?
|
||||
print_invoice: "Skriv ut faktura"
|
||||
print_ticket: "Skriv ut kvitto"
|
||||
select_ticket_printer: "Välj skrivare för bijetterna"
|
||||
select_ticket_printer: "Välj skrivare för kvitton"
|
||||
send_invoice: "Skicka faktura"
|
||||
resend_confirmation: "Skicka bekräftelse igen"
|
||||
view_order: "Se beställning"
|
||||
resend_confirmation: "Skicka om bekräftelse"
|
||||
view_order: "Granska beställning"
|
||||
edit_order: "Ändra beställning"
|
||||
ship_order: "Skicka beställning"
|
||||
cancel_order: "Ångra beställning"
|
||||
confirm_send_invoice: "En faktura på denna beställning kommer att skickas till kunden. Är du säker på att du vill fortsätta? "
|
||||
confirm_resend_order_confirmation: "Är du säker på att du vill skicka orderbekräftelsen en gång till? "
|
||||
confirm_resend_order_confirmation: "Är du säker på att du vill skicka beställningsbekräftelsen en gång till? "
|
||||
must_have_valid_business_number: "%{enterprise_name} måste ha ett giltigt organisationsnummer innan fakturor kan skickas."
|
||||
invoice: "Faktura"
|
||||
percentage_of_sales: "%{percentage} av försäljning"
|
||||
capped_at_cap: "begränsat till %{cap}"
|
||||
per_month: "per månad"
|
||||
free: "gratis"
|
||||
free_trial: "prova gratis"
|
||||
plus_tax: "plus Moms"
|
||||
free_trial: "gratis pröva-på period"
|
||||
plus_tax: "plus moms"
|
||||
min_bill_turnover_desc: "när omsättning överskrider %{mbt_amount}"
|
||||
say_no: "Nej"
|
||||
say_yes: "Ja"
|
||||
then: då
|
||||
sort_order_cycles_on_shopfront_by: "Sortera Cykler Av Ordrar På Skyltfönster Efter"
|
||||
required_fields: Fält som måste fyllas i är märkta med en asterisk
|
||||
select_continue: Välj och fortsätt
|
||||
sort_order_cycles_on_shopfront_by: "Sortera butikens beställningsomgångar efter"
|
||||
required_fields: Obligatoriska fält är märkta med en asterisk
|
||||
select_continue: Markera och fortsätt
|
||||
remove: Ta bort
|
||||
or: eller
|
||||
collapse_all: Minimera alla
|
||||
expand_all: Expandera alla
|
||||
loading: Laddning...
|
||||
loading: Laddar...
|
||||
show_more: Visa mer
|
||||
show_all: Visa alla
|
||||
show_all_with_more: "Visa alla (%{num} More)"
|
||||
cancel: Makulera
|
||||
show_all_with_more: "Visa alla (ytterligare %{num})"
|
||||
cancel: Avbryt
|
||||
edit: Redigera
|
||||
distributors: Distributörer
|
||||
distribution: Distribution
|
||||
@@ -107,22 +101,22 @@ sv:
|
||||
on_hand: På lager
|
||||
on_demand: På begäran
|
||||
on_demand?: På begäran?
|
||||
order_cycle: Ordercykel
|
||||
order_cycle: Beställningsomgång
|
||||
phone: Telefon
|
||||
price: Pris
|
||||
producer: Producent
|
||||
product: Produkt
|
||||
quantity: Kvantitet
|
||||
shop: Butik
|
||||
sku: Orderrad
|
||||
sku: SKU
|
||||
tags: Taggar
|
||||
variant: Variant
|
||||
weight: Vikt
|
||||
volume: Volym
|
||||
items: Artiklar
|
||||
select_all: Välj alla
|
||||
select_all: Markera alla
|
||||
obsolete_master: Föråldrad mästare
|
||||
quick_search: Snabb sökning
|
||||
quick_search: Snabbsökning
|
||||
clear_all: Rensa allt
|
||||
start_date: "Startdatum"
|
||||
end_date: "Slutdatum"
|
||||
@@ -170,27 +164,27 @@ sv:
|
||||
business_model_configuration_tip: "Beräkna det belopp som varje affär skall betala varje månad för användningen av OFN. "
|
||||
bill_calculation_settings: "Inställningar för beräkning av fakturor"
|
||||
bill_calculation_settings_tip: "Justera det belopp företag skall faktureras varje månad för användning av OFN."
|
||||
shop_trial_length: "Försöksperiod (Dagar)"
|
||||
shop_trial_length: "Pröva-på period (dagar)"
|
||||
shop_trial_length_tip: "Antal dagar som företag som definierats som affärer kan ha som försöksperiod."
|
||||
fixed_monthly_charge: "Bestämd månadsavgift"
|
||||
fixed_monthly_charge_tip: "En bestämd månadsavgift för alla företag som är definierade som affärer och som överskridit minsta fakturerade omsättningen (om sådan bestämts)."
|
||||
fixed_monthly_charge_tip: "En bestämd månadsavgift för alla företag som är definierade som butiker och som överskridit minsta tillåtna omsättning (om sådan bestämts)."
|
||||
percentage_of_turnover: "Procent av omsättning"
|
||||
percentage_of_turnover_tip: "När den är större än noll, denna taxa (0,0 - 1,0) kommer att läggas till den totala omsättningen för varje affär och adderas till varje bestämd avgift (till vänster) vid beräkning av månadsavgiften."
|
||||
monthly_cap_excl_tax: "månadstak (exkl. GST)"
|
||||
monthly_cap_excl_tax_tip: "När det är större än noll, kommer detta värde att användas som tak för det belopp som affärer skall faktureras varje månad."
|
||||
percentage_of_turnover_tip: "När den är större än noll, kommer denna taxa (0,0 - 1,0) att läggas till den totala omsättningen för varje affär och adderas till varje bestämd avgift (till vänster) vid beräkning av månadsavgiften."
|
||||
monthly_cap_excl_tax: "månadstak (exkl. moms)"
|
||||
monthly_cap_excl_tax_tip: "När det är större än noll, kommer detta värde att användas som tak för det belopp som butiker skall faktureras varje månad."
|
||||
tax_rate: "Skattesats"
|
||||
tax_rate_tip: "Skattesats som används på månadsfakturan som företag skall betala för att använda systemet."
|
||||
minimum_monthly_billable_turnover: "Minsta månatliga fakturerbara omsättning"
|
||||
minimum_monthly_billable_turnover_tip: "Minsta månadsomsättning i en en butiks skyltfönster får betala för att använda OFN. Företag vars omsättning understiger detta belopp under en månad behöver ej betala vare sig procentuellt eller med en fast taxa."
|
||||
minimum_monthly_billable_turnover: "Minsta månatliga omsättning"
|
||||
minimum_monthly_billable_turnover_tip: "Minsta månadsomsättning som en butik får betala för att använda OFN. Företag vars omsättning understiger detta belopp under en månad behöver ej betala vare sig procentuellt eller en fast taxa."
|
||||
example_bill_calculator: "Exempel på beräkning av en faktura"
|
||||
example_bill_calculator_legend: "Ändra omsättningen i exemplet för att åskådliggöra effekten av ändrade inställningar till vänster."
|
||||
example_monthly_turnover: "Exempel på månatlig omsättning"
|
||||
example_monthly_turnover_tip: "Ett exempel på månatlig omsättning för företaget som används för att beräkna en månatlig faktura i exemplet nedan."
|
||||
example_bill_calculator_legend: "Ändra omsättning i exemplet för att åskådliggöra effekten av ändrade inställningar."
|
||||
example_monthly_turnover: "Exempel på månadsomsättning"
|
||||
example_monthly_turnover_tip: "Ett exempel på månadsomsättning som används för att beräkna en månatlig faktura i exemplet nedan."
|
||||
cap_reached?: "Är taket nått?"
|
||||
cap_reached?_tip: "Visar om taket (specificerat till vänster) har nåtts. med de givna inställningarna och omsättningen."
|
||||
included_tax: "Skatten är inkluderad"
|
||||
included_tax_tip: "All skatt är inkluderad i exemplets månadsfaktura enligt de inställningar och den omsättning som var angiven."
|
||||
total_monthly_bill_incl_tax: "Total månadsfaktura (inkl skatt)"
|
||||
total_monthly_bill_incl_tax: "Totalt månadsfaktura (inkl moms)"
|
||||
total_monthly_bill_incl_tax_tip: "Exemplets totala månadsfaktura med skatt inkluderad enligt de inställningar och den omsättning som var angiven."
|
||||
customers:
|
||||
index:
|
||||
@@ -207,11 +201,11 @@ sv:
|
||||
update_address_error: 'Oj! Du måste fylla i alla obligatoriska fält'
|
||||
edit_bill_address: 'Ändra fakturaadress'
|
||||
edit_ship_address: 'Ändra leveransadress'
|
||||
required_fileds: 'Obligatoriska fält är markerade med en stjärna'
|
||||
required_fileds: 'Obligatoriska fält är markerade med en asterisk'
|
||||
select_country: 'Välj land'
|
||||
select_state: 'Välj län'
|
||||
edit: 'Ändra'
|
||||
update_address: 'Uppdatera Adress'
|
||||
update_address: 'Uppdatera adress'
|
||||
confirm_delete: 'Vill du verkligen radera?'
|
||||
search_by_email: "Sök via e-post/kod..."
|
||||
destroy:
|
||||
@@ -220,7 +214,7 @@ sv:
|
||||
show:
|
||||
title: Inkomst
|
||||
distributor: Distributör
|
||||
order_cycle: Ordercykel
|
||||
order_cycle: Beställningsomgång
|
||||
status: Status
|
||||
diff: Differens
|
||||
error: Fel
|
||||
@@ -253,14 +247,6 @@ sv:
|
||||
manages: hanterar
|
||||
products:
|
||||
unit_name_placeholder: 't.ex. klasar'
|
||||
bulk_edit:
|
||||
unit: Enhet
|
||||
display_as: Visa som
|
||||
category: Kategori
|
||||
tax_category: Taxområde
|
||||
inherits_properties?: Ärva egenskaper?
|
||||
available_on: 'Tillgänglig '
|
||||
av_on: "Md. På"
|
||||
properties:
|
||||
property_name: Egendomens Namn
|
||||
inherited_property: Ärvd Egendom
|
||||
@@ -340,8 +326,6 @@ sv:
|
||||
contact:
|
||||
name: Namn
|
||||
name_placeholder: ex. Gustav Persson
|
||||
email_address: E-postadress
|
||||
email_address_placeholder: ex gustav@telia.com
|
||||
phone: Telefon
|
||||
phone_placeholder: ex 123 456 789
|
||||
website: Hemsida
|
||||
@@ -448,6 +432,7 @@ sv:
|
||||
email_confirmation_notice_html: "E-post bekräftelse har inte kommit. Vi har sänt en bekräftande e-post till %{email}."
|
||||
resend: Återsänd
|
||||
owner: 'Ägare'
|
||||
contact: "Kontakt"
|
||||
owner_tip: Den primära användaren är ansvarig för detta företag.
|
||||
notifications: Meddelanden
|
||||
notifications_tip: Meddelanden om order kommer att sändas till denna e-postadress,
|
||||
@@ -517,8 +502,6 @@ sv:
|
||||
advanced_settings: Avancerade inställningar
|
||||
update_and_close: Uppdatera och Stäng
|
||||
choose_products_from: 'Välj produkter från:'
|
||||
pickup_time_tip: När beställningar från denna Beställningsomgång kommer att vara redo för kunden
|
||||
pickup_instructions_tip: Dessa instruktioner visas för kunderna efter att de har slutfört en beställning
|
||||
exchange_form:
|
||||
pickup_instructions_placeholder: "Instruktioner för upphämtning"
|
||||
pickup_time_placeholder: "Klar för (dvs. Datum/Tid)"
|
||||
@@ -633,6 +616,10 @@ sv:
|
||||
description: Fakturor för import till Xero
|
||||
packing:
|
||||
name: Förpackningsrapporter
|
||||
subscriptions:
|
||||
review:
|
||||
address: Adress
|
||||
products: Produkter
|
||||
checkout:
|
||||
already_ordered:
|
||||
cart: "vagn"
|
||||
@@ -739,7 +726,6 @@ sv:
|
||||
label_more: "Visa mer"
|
||||
label_less: "Visa mindre"
|
||||
label_notices: "Anmälan"
|
||||
items: "artiklar"
|
||||
cart_headline: "Din varukorg"
|
||||
total: "Summa "
|
||||
cart_updating: "Uppdatera din varukorg"
|
||||
@@ -765,7 +751,7 @@ sv:
|
||||
footer_sites_userguide: "Användarguide"
|
||||
footer_secure: "Säkert och anförtrott."
|
||||
footer_secure_text: "Open Food Network använder SSL-kryptering (2048 bitars RSA) överallt för att hålla din beställnings- och betalningsinformation privat. Våra servrar lagrar inte dina kreditkortsdetaljer och betalningar processeras av PCI-beskedliga tjänster."
|
||||
footer_contact_headline: "Hålla kontakten"
|
||||
footer_contact_headline: "Håll kontakten"
|
||||
footer_contact_email: "Mejla oss"
|
||||
footer_nav_headline: "Navigera"
|
||||
footer_join_headline: "Gå med oss"
|
||||
@@ -863,7 +849,6 @@ sv:
|
||||
email_confirmation_click_link: "Var vänlig att klicka på länken nedan för att bekräfta din e-postadress och fortsätt att skapa din profil."
|
||||
email_confirmation_link_label: "Bekräfta din e-postadress »"
|
||||
email_confirmation_help_html: "Sedan du bekräftat din e-postadress har du tillgång till ditt konto för denna firma. Se %{link} för att ta reda på mer om %{sitename} artiklar och börja använda din profil eller online butik."
|
||||
email_confirmation_userguide: "Användarguide"
|
||||
email_social: "Koppla ihop med Oss:"
|
||||
email_contact: "Mejla oss:"
|
||||
email_signoff: "Hälsningar,"
|
||||
@@ -894,9 +879,6 @@ sv:
|
||||
email_special_instructions: "Dina anteckningar:"
|
||||
email_signup_greeting: Hallå!
|
||||
email_signup_welcome: "Välkommen till %{sitename}!"
|
||||
email_signup_login: Din inloggning
|
||||
email_signup_email: Din e-postadress för inloggning är
|
||||
email_signup_shop_html: "Du kan starta ditt onlineköp nu på %{link}."
|
||||
email_signup_text: "Tack för att du anslutit dig till vårt nätverk. Om du är kund, vi vill introducera dig för många utmärkta odlare och ett stort urval av god mat. Om du är producent eller matföretag är vi glada att ha dig som en del av vårt nätverk.\n."
|
||||
email_signup_help_html: "Vi uppskattar alla frågor och synpunkter; du kan använda <em>Send Feedback</em> knappen på sidan eller skicka e-post till %{email}"
|
||||
producer_mail_greeting: "Kära"
|
||||
@@ -918,6 +900,8 @@ sv:
|
||||
enterprises_next_closing: "Nästa order stängs"
|
||||
enterprises_ready_for: "Klar för"
|
||||
enterprises_choose: "Välj när du vill ha din beställning:"
|
||||
maps_open: "Öppen"
|
||||
maps_closed: "Stängd"
|
||||
hubs_buy: "Handla:"
|
||||
hubs_shopping_here: "Att handla här"
|
||||
hubs_orders_closed: "Beställningar avslutade"
|
||||
@@ -1084,8 +1068,8 @@ sv:
|
||||
orders_could_not_cancel: "Tyvärr kan denna beställning inte avbrytas"
|
||||
orders_cannot_remove_the_final_item: "Det går inte att ta bort det sista varan från en beställning, var god och avbryt beställningen istället."
|
||||
orders_bought_items_notice:
|
||||
one: Ett ytterligare objekt är redan bekräftat för denna ordercykel
|
||||
other: '%{count} ytterligare artiklar är redan bekräftade för denna beställningsomgång'
|
||||
one: "Ett ytterligare objekt är redan bekräftat för denna ordercykel"
|
||||
other: "%{count} ytterligare artiklar är redan bekräftade för denna beställningsomgång"
|
||||
orders_bought_edit_button: Redigera bekräftade varor
|
||||
orders_bought_already_confirmed: "* redan bekräftad"
|
||||
orders_confirm_cancel: Är du säker på att du vill avbryta denna beställning?
|
||||
@@ -1103,7 +1087,7 @@ sv:
|
||||
products_distributor_info: När du väljer distributör för din order kommer leveranstider att visas här
|
||||
products_distribution_adjustment_label: "Distribution för %{distributor} av %{product}"
|
||||
shop_trial_expires_in: "Din försökstid för skyltfönster gå ut om"
|
||||
shop_trial_expired_notice: "Goda nyheter! Vi har beslutat utöka skyltfönstrets försökstid tills vidare. "
|
||||
shop_trial_expired_notice: "Goda nyheter! Vi har beslutat utöka butikens pröva-på period tills vidare. "
|
||||
password: Lösenord
|
||||
remember_me: Kom ihåg mig
|
||||
are_you_sure: "Är du säker?"
|
||||
@@ -1187,7 +1171,6 @@ sv:
|
||||
enterprise_about_headline: "Snygg sak"
|
||||
enterprise_about_message: "Låt oss nu bli lite mer detaljerade om"
|
||||
enterprise_success: "Succé! %{enterprise} ingår nu i Open Food Network "
|
||||
enterprise_registration_exit_message: "Om du vid något tillfälle lämnar denna guide ska du klicka på \"confirmation\" länken på den e-post du erhållit. Detta gör att du kommer till administrationsstatus där du kan fortsätta att bygga din profil."
|
||||
enterprise_description: "Kort beslrivning"
|
||||
enterprise_description_placeholder: "En kort mening som beskriver ditt företag"
|
||||
enterprise_long_desc: "Lång beskrivning"
|
||||
@@ -1228,8 +1211,6 @@ sv:
|
||||
registration_finished_headline: "Klar!"
|
||||
registration_finished_thanks: "Tack för att du fyllt i alla uppgifter för %{enterprise}."
|
||||
registration_finished_login: "Du kan ändra eller uppdatera dina uppgifter när som helst genom att logga in på Open Food Network och klicka på Admin."
|
||||
registration_finished_activate: "Aktivera %{enterprise}."
|
||||
registration_finished_activate_instruction_html: "Vi har sänt bekräftelse via e-post till <strong>%{email}</strong> om den inte varit aktiverad tidigare. <br/> Var vänlig följ instruktionerna där så att ditt företag visas på Open Food Network."
|
||||
registration_finished_action: "Open Food Network hem"
|
||||
registration_type_headline: "Sista steget för att lägga till %{enterprise}!"
|
||||
registration_type_question: "Är du en producent?"
|
||||
@@ -1670,7 +1651,6 @@ sv:
|
||||
order_cycles_email_to_producers_notice: 'E-postmeddelanden till producenter har blivit placerade i kön för att skickas.'
|
||||
order_cycles_no_permission_to_coordinate_error: "Ingen av dina företag har tillstånd att samordna en beställningsomgång"
|
||||
order_cycles_no_permission_to_create_error: "Du har inte behörighet att skapa en beställningsomgång som samordnas av företaget"
|
||||
order_cycles_no_permission_to_delete_error: "Denna beställningsomgång har valts av en kund och kan inte raderas. För att förhindra att kunder får tillgång till det, stäng det istället."
|
||||
js:
|
||||
saving: 'Sparar...'
|
||||
changes_saved: 'Ändringar sparade.'
|
||||
@@ -1839,7 +1819,7 @@ sv:
|
||||
could_not_delete_customer: 'Kunde inte radera kund'
|
||||
product_import:
|
||||
confirmation: |
|
||||
Detta kommer att ställa lagersaldot till noll på alla produkter för detta företag, som inte är närvarande i den uppladdade filen.
|
||||
Detta kommer att ställa lagersaldot till noll på alla produkter för detta företag, som inte är närvarande i den uppladdade filen.
|
||||
order_cycles:
|
||||
update_success: 'Din beställningsomgång har uppdaterats.'
|
||||
no_distributors: Det finns inga distributörer i denna beställningsomgång. Den kommer inte att vara synlig för kunderna tills du lägger till en distributör. Vill du fortsätta och spara denna beställningsomgång? '
|
||||
@@ -1907,7 +1887,6 @@ sv:
|
||||
address: adress
|
||||
adjustments: justeringar
|
||||
awaiting_return: väntar återsändning
|
||||
canceled: makulerad
|
||||
cart: kundvagn
|
||||
complete: komplett
|
||||
confirm: bekräfta
|
||||
@@ -1936,19 +1915,16 @@ sv:
|
||||
user_mailer:
|
||||
reset_password_instructions:
|
||||
request_sent_text: |
|
||||
En begäran om att återställa ditt lösenord har gjorts.
|
||||
Om du inte gjorde denna förfrågan ignorerar du bara det här e-postmeddelandet.
|
||||
En begäran om att återställa ditt lösenord har gjorts.
|
||||
Om du inte gjorde denna förfrågan ignorerar du bara det här e-postmeddelandet.
|
||||
link_text: >
|
||||
Om du gjorde denna förfrågan klickar du bara på länken nedan:
|
||||
issue_text: |
|
||||
Om den ovan nämnda webbadressen inte fungerar kan du försöka kopiera och klistra in den i webbläsaren.
|
||||
Om du får problem, var god kontakta oss.
|
||||
Om den ovan nämnda webbadressen inte fungerar kan du försöka kopiera och klistra in den i webbläsaren.
|
||||
Om du får problem, var god kontakta oss.
|
||||
weight: Vikt (kg)
|
||||
zipcode: Postkod
|
||||
users:
|
||||
show:
|
||||
open_orders: Öppna beställningar
|
||||
transaction_history: Transaktionshistorik
|
||||
open_orders:
|
||||
order: Beställningar
|
||||
shop: 'Butik '
|
||||
|
||||
@@ -113,6 +113,8 @@ Openfoodnetwork::Application.routes.draw do
|
||||
resources :tag_rules, only: [:destroy]
|
||||
end
|
||||
|
||||
resources :manager_invitations, only: [:create]
|
||||
|
||||
resources :enterprise_relationships
|
||||
resources :enterprise_roles
|
||||
|
||||
@@ -210,6 +212,8 @@ Openfoodnetwork::Application.routes.draw do
|
||||
resource :status do
|
||||
get :job_queue
|
||||
end
|
||||
|
||||
post '/product_images/:product_id', to: 'product_images#update_product_image'
|
||||
end
|
||||
|
||||
namespace :open_food_network do
|
||||
@@ -285,7 +289,6 @@ Spree::Core::Engine.routes.prepend do
|
||||
resources :orders do
|
||||
get :managed, on: :collection
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
namespace :admin do
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
class RemovePlacedAtAndConfirmedAtFromOrderCycles < ActiveRecord::Migration
|
||||
def up
|
||||
remove_column :order_cycles, :standing_orders_placed_at
|
||||
remove_column :order_cycles, :standing_orders_confirmed_at
|
||||
end
|
||||
|
||||
def down
|
||||
add_column :order_cycles, :standing_orders_placed_at, :datetime
|
||||
add_column :order_cycles, :standing_orders_confirmed_at, :datetime
|
||||
end
|
||||
end
|
||||
@@ -11,7 +11,7 @@
|
||||
#
|
||||
# It's strongly recommended to check this file into your version control system.
|
||||
|
||||
ActiveRecord::Schema.define(:version => 20180222231639) do
|
||||
ActiveRecord::Schema.define(:version => 20180316034336) do
|
||||
|
||||
create_table "account_invoices", :force => true do |t|
|
||||
t.integer "user_id", :null => false
|
||||
@@ -319,10 +319,8 @@ ActiveRecord::Schema.define(:version => 20180222231639) do
|
||||
t.datetime "orders_open_at"
|
||||
t.datetime "orders_close_at"
|
||||
t.integer "coordinator_id"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
t.datetime "standing_orders_placed_at"
|
||||
t.datetime "standing_orders_confirmed_at"
|
||||
t.datetime "created_at", :null => false
|
||||
t.datetime "updated_at", :null => false
|
||||
end
|
||||
|
||||
create_table "producer_properties", :force => true do |t|
|
||||
|
||||
21
db/seeds.rb
21
db/seeds.rb
@@ -29,3 +29,24 @@ states.each do |state|
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
def create_mail_method
|
||||
Spree::MailMethod.destroy_all
|
||||
|
||||
CreateMailMethod.new(
|
||||
environment: Rails.env,
|
||||
preferred_enable_mail_delivery: true,
|
||||
preferred_mail_host: ENV.fetch('MAIL_HOST'),
|
||||
preferred_mail_domain: ENV.fetch('MAIL_DOMAIN'),
|
||||
preferred_mail_port: ENV.fetch('MAIL_PORT'),
|
||||
preferred_mail_auth_type: 'login',
|
||||
preferred_smtp_username: ENV.fetch('SMTP_USERNAME'),
|
||||
preferred_smtp_password: ENV.fetch('SMTP_PASSWORD'),
|
||||
preferred_secure_connection_type: 'None',
|
||||
preferred_mails_from: "no-reply@#{ENV.fetch('MAIL_DOMAIN')}",
|
||||
preferred_mail_bcc: '',
|
||||
preferred_intercept_email: ''
|
||||
).call
|
||||
end
|
||||
|
||||
create_mail_method
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
module OpenFoodNetwork
|
||||
module ColumnPreferenceDefaults
|
||||
|
||||
private
|
||||
|
||||
# NOTE: These methods define valid column names (via hash keys)
|
||||
@@ -58,6 +57,7 @@ module OpenFoodNetwork
|
||||
def products_bulk_edit_columns
|
||||
node = "spree.admin.products.bulk_edit.products_head"
|
||||
{
|
||||
image: { name: I18n.t("admin.image"), visible: true },
|
||||
producer: { name: I18n.t("admin.producer"), visible: true },
|
||||
sku: { name: I18n.t("admin.sku"), visible: false },
|
||||
name: { name: I18n.t("admin.name"), visible: true },
|
||||
|
||||
@@ -41,8 +41,7 @@ module OpenFoodNetwork
|
||||
ba.phone,
|
||||
order.distributor.andand.name,
|
||||
[da.andand.address1, da.andand.address2, da.andand.city].join(" "),
|
||||
order.shipping_method.andand.name
|
||||
]
|
||||
order.shipping_method.andand.name]
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user