mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
Merge branch 'master' into 2-0-stable-dec-18th
This commit is contained in:
@@ -187,7 +187,7 @@ Metrics/AbcSize:
|
||||
Max: 15
|
||||
|
||||
Metrics/BlockLength:
|
||||
ExcludedMethods: ["describe", "context"]
|
||||
ExcludedMethods: ["context", "describe", "it"]
|
||||
|
||||
Metrics/BlockNesting:
|
||||
Max: 3
|
||||
|
||||
4
Gemfile
4
Gemfile
@@ -5,7 +5,7 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}.git" }
|
||||
gem 'rails', '~> 3.2.22'
|
||||
gem 'rails-i18n', '~> 3.0.0'
|
||||
gem 'i18n', '~> 0.6.11'
|
||||
gem 'i18n-js', '~> 3.0.0'
|
||||
gem 'i18n-js', '~> 3.1.0'
|
||||
|
||||
# Patched version. See http://rubysec.com/advisories/CVE-2015-5312/.
|
||||
gem 'nokogiri', '>= 1.6.7.1'
|
||||
@@ -68,7 +68,7 @@ gem 'rack-ssl', require: 'rack/ssl'
|
||||
gem 'rack-rewrite'
|
||||
gem 'custom_error_message', github: 'jeremydurham/custom-err-msg'
|
||||
gem 'angularjs-file-upload-rails', '~> 1.1.6'
|
||||
gem 'roadie-rails', '~> 1.0.3'
|
||||
gem 'roadie-rails', '~> 1.1.1'
|
||||
gem 'figaro'
|
||||
gem 'blockenspiel'
|
||||
gem 'acts-as-taggable-on', '~> 3.4'
|
||||
|
||||
62
Gemfile.lock
62
Gemfile.lock
@@ -234,7 +234,7 @@ GEM
|
||||
sprockets (< 4.0)
|
||||
crack (0.4.3)
|
||||
safe_yaml (~> 1.0.0)
|
||||
css_parser (1.3.5)
|
||||
css_parser (1.6.0)
|
||||
addressable
|
||||
daemons (1.2.6)
|
||||
dalli (2.7.2)
|
||||
@@ -248,8 +248,8 @@ GEM
|
||||
colorize (>= 0.5.8)
|
||||
nokogiri (~> 1.6.0)
|
||||
rails (>= 3.1)
|
||||
delayed_job (4.1.4)
|
||||
activesupport (>= 3.0, < 5.2)
|
||||
delayed_job (4.1.5)
|
||||
activesupport (>= 3.0, < 5.3)
|
||||
delayed_job_active_record (4.1.2)
|
||||
activerecord (>= 3.0, < 5.2)
|
||||
delayed_job (>= 3.0, < 5)
|
||||
@@ -475,7 +475,7 @@ GEM
|
||||
httparty (0.16.2)
|
||||
multi_xml (>= 0.5.2)
|
||||
i18n (0.6.11)
|
||||
i18n-js (3.0.11)
|
||||
i18n-js (3.1.0)
|
||||
i18n (>= 0.6.6, < 2)
|
||||
immigrant (0.3.6)
|
||||
activerecord (>= 3.0)
|
||||
@@ -536,7 +536,7 @@ GEM
|
||||
multi_json (~> 1.3)
|
||||
multi_xml (~> 0.5)
|
||||
rack (>= 1.2, < 3)
|
||||
oj (3.6.10)
|
||||
oj (3.7.4)
|
||||
orm_adapter (0.5.0)
|
||||
paper_trail (3.0.9)
|
||||
activerecord (>= 3.0, < 5.0)
|
||||
@@ -621,12 +621,12 @@ GEM
|
||||
rdoc (3.12.2)
|
||||
json (~> 1.4)
|
||||
redcarpet (3.2.3)
|
||||
roadie (3.0.1)
|
||||
css_parser (~> 1.3.4)
|
||||
nokogiri (~> 1.6.0)
|
||||
roadie-rails (1.0.3)
|
||||
rails (>= 3.0, < 4.2)
|
||||
roadie (~> 3.0)
|
||||
roadie (3.4.0)
|
||||
css_parser (~> 1.4)
|
||||
nokogiri (~> 1.5)
|
||||
roadie-rails (1.1.1)
|
||||
railties (>= 3.0, < 5.1)
|
||||
roadie (~> 3.1)
|
||||
roo (2.7.1)
|
||||
nokogiri (~> 1)
|
||||
rubyzip (~> 1.1, < 2.0.0)
|
||||
@@ -634,29 +634,29 @@ GEM
|
||||
nokogiri
|
||||
roo (>= 2.0.0beta1, < 3)
|
||||
spreadsheet (> 0.9.0)
|
||||
rspec (3.7.0)
|
||||
rspec-core (~> 3.7.0)
|
||||
rspec-expectations (~> 3.7.0)
|
||||
rspec-mocks (~> 3.7.0)
|
||||
rspec-core (3.7.1)
|
||||
rspec-support (~> 3.7.0)
|
||||
rspec-expectations (3.7.0)
|
||||
rspec (3.8.0)
|
||||
rspec-core (~> 3.8.0)
|
||||
rspec-expectations (~> 3.8.0)
|
||||
rspec-mocks (~> 3.8.0)
|
||||
rspec-core (3.8.0)
|
||||
rspec-support (~> 3.8.0)
|
||||
rspec-expectations (3.8.2)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.7.0)
|
||||
rspec-mocks (3.7.0)
|
||||
rspec-support (~> 3.8.0)
|
||||
rspec-mocks (3.8.0)
|
||||
diff-lcs (>= 1.2.0, < 2.0)
|
||||
rspec-support (~> 3.7.0)
|
||||
rspec-rails (3.7.2)
|
||||
rspec-support (~> 3.8.0)
|
||||
rspec-rails (3.8.1)
|
||||
actionpack (>= 3.0)
|
||||
activesupport (>= 3.0)
|
||||
railties (>= 3.0)
|
||||
rspec-core (~> 3.7.0)
|
||||
rspec-expectations (~> 3.7.0)
|
||||
rspec-mocks (~> 3.7.0)
|
||||
rspec-support (~> 3.7.0)
|
||||
rspec-core (~> 3.8.0)
|
||||
rspec-expectations (~> 3.8.0)
|
||||
rspec-mocks (~> 3.8.0)
|
||||
rspec-support (~> 3.8.0)
|
||||
rspec-retry (0.6.1)
|
||||
rspec-core (> 3.3)
|
||||
rspec-support (3.7.1)
|
||||
rspec-support (3.8.0)
|
||||
rubocop (0.57.2)
|
||||
jaro_winkler (~> 1.5.1)
|
||||
parallel (~> 1.10)
|
||||
@@ -685,7 +685,7 @@ GEM
|
||||
json (>= 1.8, < 3)
|
||||
simplecov-html (~> 0.10.0)
|
||||
simplecov-html (0.10.2)
|
||||
skylight (1.7.1)
|
||||
skylight (1.7.2)
|
||||
activesupport (>= 3.0.0)
|
||||
spinjs-rails (1.3)
|
||||
rails (>= 3.1)
|
||||
@@ -711,7 +711,7 @@ GEM
|
||||
turbo-sprockets-rails3 (0.3.14)
|
||||
railties (> 3.2.8, < 4.0.0)
|
||||
sprockets (>= 2.2.0)
|
||||
tzinfo (0.3.54)
|
||||
tzinfo (0.3.55)
|
||||
uglifier (4.1.19)
|
||||
execjs (>= 0.3.0, < 3)
|
||||
unicode-display_width (1.3.2)
|
||||
@@ -789,7 +789,7 @@ DEPENDENCIES
|
||||
guard-rspec (~> 4.7.3)
|
||||
haml
|
||||
i18n (~> 0.6.11)
|
||||
i18n-js (~> 3.0.0)
|
||||
i18n-js (~> 3.1.0)
|
||||
immigrant
|
||||
jquery-migrate-rails
|
||||
jquery-rails (= 3.0.0)
|
||||
@@ -817,7 +817,7 @@ DEPENDENCIES
|
||||
rails (~> 3.2.22)
|
||||
rails-i18n (~> 3.0.0)
|
||||
redcarpet
|
||||
roadie-rails (~> 1.0.3)
|
||||
roadie-rails (~> 1.1.1)
|
||||
roo (~> 2.7.0)
|
||||
roo-xls (~> 1.1.0)
|
||||
rspec-rails (>= 3.5.2)
|
||||
|
||||
@@ -25,7 +25,8 @@ angular.module("admin.orders").controller "ordersCtrl", ($scope, RequestMonitor,
|
||||
'q[email_cont]': $scope['q']['email_cont'],
|
||||
'q[bill_address_firstname_start]': $scope['q']['bill_address_firstname_start'],
|
||||
'q[bill_address_lastname_start]': $scope['q']['bill_address_lastname_start'],
|
||||
'q[completed_at_not_null]': $scope['q']['completed_at_not_null'],
|
||||
# Set default checkbox values to null. See: https://github.com/openfoodfoundation/openfoodnetwork/pull/3076#issuecomment-440010498
|
||||
'q[completed_at_not_null]': $scope['q']['completed_at_not_null'] || null,
|
||||
'q[distributor_id_in]': $scope['q']['distributor_id_in'],
|
||||
'q[order_cycle_id_in]': $scope['q']['order_cycle_id_in'],
|
||||
'q[order_cycle_id_in]': $scope['q']['order_cycle_id_in'],
|
||||
|
||||
@@ -18,7 +18,7 @@ class CheckoutController < Spree::CheckoutController
|
||||
# This is only required because of spree_paypal_express. If we implement
|
||||
# a version of paypal that uses this controller, and more specifically
|
||||
# the #update_failed method, then we can remove this call
|
||||
restart_checkout
|
||||
RestartCheckout.new(@order).call
|
||||
end
|
||||
|
||||
def update
|
||||
@@ -142,7 +142,8 @@ class CheckoutController < Spree::CheckoutController
|
||||
|
||||
def update_failed
|
||||
clear_ship_address
|
||||
restart_checkout
|
||||
RestartCheckout.new(@order).call
|
||||
|
||||
respond_to do |format|
|
||||
format.html do
|
||||
render :edit
|
||||
@@ -161,15 +162,6 @@ class CheckoutController < Spree::CheckoutController
|
||||
end
|
||||
end
|
||||
|
||||
def restart_checkout
|
||||
return if @order.state == 'cart'
|
||||
@order.restart_checkout! # resets state to 'cart'
|
||||
@order.update_attributes!(shipping_method_id: nil)
|
||||
@order.shipments.with_state(:pending).destroy_all
|
||||
@order.payments.with_state(:checkout).destroy_all
|
||||
@order.reload
|
||||
end
|
||||
|
||||
def skip_state_validation?
|
||||
true
|
||||
end
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
remove "div.clear"
|
||||
@@ -1,5 +0,0 @@
|
||||
/ insert_after "code[erb-loud]:contains(\"render :partial => 'form', :locals => { :f => f }\")"
|
||||
|
||||
.one.column
|
||||
= render :partial => 'spree/admin/shared/hubs_sidebar', :locals => { f: f, klass: :payment_method }
|
||||
.clear
|
||||
@@ -1,4 +0,0 @@
|
||||
/ insert_after "code[erb-silent]:contains('content_for :page_actions do')"
|
||||
|
||||
%li
|
||||
= button_link_to t(:new), spree.new_admin_payment_method_path, :icon => 'icon-plus' %>
|
||||
@@ -1 +0,0 @@
|
||||
remove "code[erb-loud]:contains(\"render :partial => 'spree/admin/shared/configuration_menu'\")"
|
||||
@@ -1,5 +0,0 @@
|
||||
/ insert_after "code[erb-loud]:contains(\"render :partial => 'form', :locals => { :f => f }\")"
|
||||
|
||||
.one.column
|
||||
= render :partial => 'spree/admin/shared/hubs_sidebar', :locals => { f: f, klass: :payment_method }
|
||||
.clear
|
||||
@@ -1 +0,0 @@
|
||||
remove "code[erb-loud]:contains(\"render :partial => 'spree/admin/shared/configuration_menu'\")"
|
||||
33
app/services/restart_checkout.rb
Normal file
33
app/services/restart_checkout.rb
Normal file
@@ -0,0 +1,33 @@
|
||||
# Resets the passed order to cart state while clearing associated payments and shipments
|
||||
class RestartCheckout
|
||||
def initialize(order)
|
||||
@order = order
|
||||
end
|
||||
|
||||
def call
|
||||
return if order.cart?
|
||||
|
||||
reset_state_to_cart
|
||||
clear_shipments
|
||||
clear_payments
|
||||
|
||||
order.reload
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
attr_reader :order
|
||||
|
||||
def reset_state_to_cart
|
||||
order.restart_checkout!
|
||||
end
|
||||
|
||||
def clear_shipments
|
||||
order.update_attributes!(shipping_method_id: nil)
|
||||
order.shipments.with_state(:pending).destroy_all
|
||||
end
|
||||
|
||||
def clear_payments
|
||||
order.payments.with_state(:checkout).destroy_all
|
||||
end
|
||||
end
|
||||
@@ -26,11 +26,11 @@ class SearchOrders
|
||||
@search = OpenFoodNetwork::Permissions.new(current_user).editable_orders.ransack(params[:q])
|
||||
|
||||
return paginated_results if using_pagination?
|
||||
@search.result
|
||||
@search.result(distinct: true)
|
||||
end
|
||||
|
||||
def paginated_results
|
||||
@search.result
|
||||
@search.result(distinct: true)
|
||||
.page(params[:page])
|
||||
.per(params[:per_page])
|
||||
end
|
||||
|
||||
@@ -4,8 +4,8 @@
|
||||
.row
|
||||
.small-12.columns
|
||||
%header
|
||||
%h2 {{'registration_images_headline' | t}}
|
||||
%h5 {{'registration_images_description' | t}}
|
||||
%h2= t(".headline")
|
||||
%h5= t(".description")
|
||||
|
||||
%form{ name: 'images', novalidate: true, ng: { controller: "RegistrationFormCtrl", submit: "select('social')" } }
|
||||
.row{ ng: { repeat: 'image_step in imageSteps', show: "imageStep == image_step" } }
|
||||
@@ -13,11 +13,11 @@
|
||||
|
||||
.row.buttons.pad-top{ ng: { if: "imageStep == 'logo'" } }
|
||||
.small-12.columns
|
||||
%input.button.secondary{ type: "button", value: "Back", ng: { click: "select('about')" } }
|
||||
%input.button.secondary{ type: "button", value: t(".back"), ng: { click: "select('about')" } }
|
||||
|
||||
%input.button.primary.right{ type: "button", value: "Continue", ng: { click: "imageSelect('promo')" } }
|
||||
%input.button.primary.right{ type: "button", value: t(".continue"), ng: { click: "imageSelect('promo')" } }
|
||||
|
||||
.row.buttons.pad-top{ ng: { if: "imageStep == 'promo'" } }
|
||||
.small-12.columns
|
||||
%input.button.secondary{ type: "button", value: "{{'back' | t}}", ng: { click: "imageSelect('logo')" } }
|
||||
%input.button.primary.right{ type: "submit", value: "{{'continue' | t}}" }
|
||||
%input.button.secondary{ type: "button", value: t(".back"), ng: { click: "imageSelect('logo')" } }
|
||||
%input.button.primary.right{ type: "submit", value: t(".continue") }
|
||||
|
||||
@@ -1,6 +1,10 @@
|
||||
.alert-cta
|
||||
%h6
|
||||
%a{href: registration_path, target: "_blank"}
|
||||
-# Please forgive the hard-coded link:
|
||||
-# The more elegant 'registration_path' resolves to /signup due to spree_auth_device > config > routes.rb
|
||||
-# This is one of several possible fixes. Long-term, we'd like to bring the accounts page into OFN.
|
||||
-# View the discussion here: https://github.com/openfoodfoundation/openfoodnetwork/pull/3174
|
||||
%a{href: "/register", target: "_blank"}
|
||||
= t '.selling_on_ofn'
|
||||
|
||||
%strong
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
/ replace "div[data-hook='admin_payment_method_form_fields']"
|
||||
|
||||
= admin_inject_payment_method
|
||||
= admin_inject_json_ams_array "admin.paymentMethods", "shops", @hubs, Api::Admin::BasicEnterpriseSerializer
|
||||
%div.alpha.eleven.columns{ "ng-app" => "admin.paymentMethods", "ng-controller" => "paymentMethodCtrl" }
|
||||
@@ -7,23 +5,23 @@
|
||||
.alpha.three.columns
|
||||
= label_tag nil, t(:name)
|
||||
.omega.eight.columns
|
||||
= text_field :payment_method, :name, :class => 'fullwidth'
|
||||
= text_field :payment_method, :name, class: 'fullwidth'
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= label_tag nil, t(:description)
|
||||
.omega.eight.columns
|
||||
= text_area :payment_method, :description, {:cols => 60, :rows => 6, :class => 'fullwidth'}
|
||||
= text_area :payment_method, :description, {cols: 60, rows: 6, class: 'fullwidth'}
|
||||
- if spree_current_user.admin?
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= label_tag nil, t(:environment)
|
||||
.omega.eight.columns
|
||||
= collection_select(:payment_method, :environment, Rails.configuration.database_configuration.keys.sort, :to_s, :titleize, {}, {:id => 'gtwy-env', :class => 'select2 fullwidth'})
|
||||
= collection_select(:payment_method, :environment, Rails.configuration.database_configuration.keys.sort, :to_s, :titleize, {}, {id: 'gtwy-env', class: 'select2 fullwidth'})
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= label_tag nil, t(:display)
|
||||
.omega.eight.columns
|
||||
= select(:payment_method, :display_on, Spree::PaymentMethod::DISPLAY.collect { |display| [t(display), display == :both ? nil : display.to_s] }, {}, {:class => 'select2 fullwidth'})
|
||||
= select(:payment_method, :display_on, Spree::PaymentMethod::DISPLAY.collect { |display| [t(display), display == :both ? nil : display.to_s] }, {}, {class: 'select2 fullwidth'})
|
||||
.row
|
||||
.alpha.three.columns
|
||||
= label_tag nil, t(:active)
|
||||
@@ -47,4 +45,4 @@
|
||||
|
||||
.row
|
||||
.omega.eleven.columns
|
||||
= render partial: 'spree/admin/shared/calculator_fields', :locals => { :f => f }
|
||||
= render partial: 'spree/admin/shared/calculator_fields', locals: { f: f }
|
||||
18
app/views/spree/admin/payment_methods/edit.html.haml
Normal file
18
app/views/spree/admin/payment_methods/edit.html.haml
Normal file
@@ -0,0 +1,18 @@
|
||||
- content_for :page_title do
|
||||
= t('.editing_payment_method')
|
||||
%i.icon-arrow-right
|
||||
= @payment_method.name
|
||||
- content_for :page_actions do
|
||||
%li
|
||||
= button_link_to t(:new), spree.new_admin_payment_method_path, icon: 'icon-plus'
|
||||
%li
|
||||
= button_link_to t('.back_to_payment_methods_list'), spree.admin_payment_methods_path, icon: 'icon-arrow-left'
|
||||
= render partial: 'spree/shared/error_messages', locals: { target: @payment_method }
|
||||
= form_for @payment_method, url: admin_payment_method_path(@payment_method) do |f|
|
||||
%fieldset.no-border-top
|
||||
= render partial: 'form', locals: { f: f }
|
||||
.one.column
|
||||
= render partial: 'spree/admin/shared/hubs_sidebar', locals: { f: f, klass: :payment_method }
|
||||
.clear
|
||||
.filter-actions.actions
|
||||
= button t(:update), 'icon-refresh'
|
||||
14
app/views/spree/admin/payment_methods/new.html.haml
Normal file
14
app/views/spree/admin/payment_methods/new.html.haml
Normal file
@@ -0,0 +1,14 @@
|
||||
- content_for :page_title do
|
||||
= t('.new_payment_method')
|
||||
- content_for :page_actions do
|
||||
%li
|
||||
= button_link_to t('.back_to_payment_methods_list'), admin_payment_methods_path, icon: 'icon-arrow-left'
|
||||
= render partial: 'spree/shared/error_messages', locals: { target: @payment_method }
|
||||
= form_for @payment_method, url: collection_url do |f|
|
||||
%fieldset.no-border-top
|
||||
= render partial: 'form', locals: { f: f }
|
||||
.one.column
|
||||
= render partial: 'spree/admin/shared/hubs_sidebar', locals: { f: f, klass: :payment_method }
|
||||
.clear
|
||||
.filter-actions.actions
|
||||
= button t(:create), 'icon-ok'
|
||||
@@ -22,6 +22,7 @@
|
||||
.six.columns.alpha
|
||||
= f.field_container :units do
|
||||
= f.label :variant_unit_with_scale, t(:units)
|
||||
%span.required *
|
||||
%select.select2.fullwidth{ id: 'product_variant_unit_with_scale', 'ng-model' => 'product.variant_unit_with_scale', 'ng-options' => 'unit[1] as unit[0] for unit in variant_unit_options' }
|
||||
%option{'value' => '', 'ng-hide' => "hasUnit(product)"}
|
||||
%input{ type: 'hidden', 'ng-value' => 'product.variant_unit', name: 'product[variant_unit]' }
|
||||
@@ -29,6 +30,7 @@
|
||||
.three.columns
|
||||
= f.field_container :unit_value do
|
||||
= f.label :product_unit_value_with_description, t(:value), 'ng-disabled' => "!hasUnit(product)"
|
||||
%span.required *
|
||||
%input.fullwidth{ id: 'product_unit_value_with_description', 'ng-model' => 'product.master.unit_value_with_description', :type => 'text', placeholder: "eg. 2", 'ng-disabled' => "!hasUnit(product)" }
|
||||
%input{ type: 'hidden', 'ng-value' => 'product.master.unit_value', name: 'product[unit_value]' }
|
||||
%input{ type: 'hidden', 'ng-value' => 'product.master.unit_description', name: 'product[unit_description]' }
|
||||
|
||||
@@ -1849,6 +1849,11 @@ See the %{link} to find out more about %{sitename}'s features and to start using
|
||||
update_and_recalculate_fees: "Update And Recalculate Fees"
|
||||
registration:
|
||||
steps:
|
||||
images:
|
||||
continue: "Continue"
|
||||
back: "Back"
|
||||
headline: "Thanks!"
|
||||
description: "Let's upload some pretty pictures so your profile looks great! :)"
|
||||
type:
|
||||
headline: "Last step to add %{enterprise}!"
|
||||
question: "Are you a producer?"
|
||||
@@ -1989,9 +1994,6 @@ See the %{link} to find out more about %{sitename}'s features and to start using
|
||||
registration_type_no_producer_help: "If you’re not a producer, you’re probably someone who sells and distributes food. You might be a hub, coop, buying group, retailer, wholesaler or other."
|
||||
# END
|
||||
|
||||
registration_images_headline: "Thanks!"
|
||||
registration_images_description: "Let's upload some pretty pictures so your profile looks great! :)"
|
||||
|
||||
|
||||
# TODO: Remove these once the enterprise.registration.modal keys are translated
|
||||
registration_detail_headline: "Let's Get Started"
|
||||
@@ -2712,6 +2714,12 @@ See the %{link} to find out more about %{sitename}'s features and to start using
|
||||
other: "You have %{count} active order cycles."
|
||||
manage_order_cycles: "MANAGE ORDER CYCLES"
|
||||
payment_methods:
|
||||
new:
|
||||
new_payment_method: "New Payment Method"
|
||||
back_to_payment_methods_list: "Back To Payment Methods List"
|
||||
edit:
|
||||
editing_payment_method: "Editing Payment Method"
|
||||
back_to_payment_methods_list: "Back To Payment Methods List"
|
||||
stripe_connect:
|
||||
enterprise_select_placeholder: Choose...
|
||||
loading_account_information_msg: Loading account information from stripe, please wait...
|
||||
|
||||
@@ -195,7 +195,7 @@ fr:
|
||||
admin_and_handling: Frais si par commande
|
||||
profile: Profil
|
||||
supplier_only: Uniquement Producteur
|
||||
has_shopfront: (gère une boutique)
|
||||
has_shopfront: gère une boutique
|
||||
weight: Poids
|
||||
volume: Volume
|
||||
items: Pièces
|
||||
|
||||
@@ -216,6 +216,10 @@ fr_BE:
|
||||
quantity: Quantité
|
||||
pick_up: Retrait
|
||||
copy: Copier
|
||||
password_confirmation: confirmation du mot de passe
|
||||
reset_password_token: réinitialisation du mot de passe
|
||||
expired: a expiré, s'il vous plaît demander un nouveau
|
||||
back_to_payments_list: "Retour sur la liste des paiements"
|
||||
actions:
|
||||
create_and_add_another: "Créer et ajouter un nouveau"
|
||||
admin:
|
||||
@@ -307,17 +311,17 @@ fr_BE:
|
||||
business_model_configuration:
|
||||
edit:
|
||||
business_model_configuration: "Modèle économique"
|
||||
business_model_configuration_tip: "Configurer la fréquence à laquelle les boutiques seront facturées chaque mois pour l'utilisation d'Open Food Network"
|
||||
business_model_configuration_tip: "Configurer la fréquence à laquelle les comptoirs seront facturés chaque mois pour l'utilisation d'Open Food Network"
|
||||
bill_calculation_settings: "Paramètres du calcul des frais"
|
||||
bill_calculation_settings_tip: "Définir le montant qui sera facturé aux hubs tous les mois pour leur utilisation d'Open Food France."
|
||||
shop_trial_length: "Durée de la période de test (jours)"
|
||||
shop_trial_length_tip: "La durée (en jours) de la période d'essai."
|
||||
shop_trial_length_tip: "Durée (en jours) de la période d'essai pendant laquelle les entreprises configurées en tant que comptoir peuvent fonctionner."
|
||||
fixed_monthly_charge: "Charge mensuelle fixe"
|
||||
fixed_monthly_charge_tip: "Le montant fixe mensuel facturé pour tous les hubs qui dépassent le seuil de chiffre d'affaire facturable (si défini)."
|
||||
percentage_of_turnover: "Pourcentage du chiffre d'affaire"
|
||||
percentage_of_turnover_tip: "Quand supérieur à zéro, ce taux (0.0 - 1.0) sera appliqué au chiffre d'affaire du hub pour déterminer la commission à facturer, qui sera ajoutée aux autres charges (à gauche) pour calculer le montant à facturer pour le mois."
|
||||
monthly_cap_excl_tax: "plafond mensuel (sans TVA)"
|
||||
monthly_cap_excl_tax_tip: "Quand supérieure à zéro, cette valeur sert de limite supérieure facturable pour un mois."
|
||||
monthly_cap_excl_tax_tip: "Quand supérieure à zéro, cette valeur sert de limite supérieure facturable au comptoir pour un mois."
|
||||
tax_rate: "TVA applicable"
|
||||
tax_rate_tip: "TVA applicable sur le service facturé par Open Food France."
|
||||
minimum_monthly_billable_turnover: "Chiffre d'affaire minimum facturable (mensuel)"
|
||||
@@ -349,7 +353,7 @@ fr_BE:
|
||||
edit:
|
||||
title: "connexion Stripe"
|
||||
settings: "Paramètres"
|
||||
stripe_connect_enabled: Permettre aux boutiques d'accepter les paiements via Stripe Connect ?
|
||||
stripe_connect_enabled: Permettre aux comptoirs d'accepter les paiements via Stripe Connect ?
|
||||
no_api_key_msg: Aucun compte Stripe n'existe pour cette entreprise.
|
||||
configuration_explanation_html: Pour des instructions précises sur comment configurer Stripe Connect, veuillez <a href='https://github.com/openfoodfoundation/openfoodnetwork/wiki/Setting-up-Stripe-on-an-OFN-instance' target='_blank'>consulter ce guide</a>.
|
||||
status: Statut
|
||||
@@ -399,7 +403,7 @@ fr_BE:
|
||||
header: Titre
|
||||
home_page: Page d'accueil
|
||||
producer_signup_page: Page d'inscription Producteur
|
||||
hub_signup_page: Page d'inscription Hub
|
||||
hub_signup_page: Page d'inscription du comptoir
|
||||
group_signup_page: Page d'inscription Groupe
|
||||
main_links: Liens du menu principal
|
||||
footer_and_external_links: Pied de page et Liens Externes
|
||||
@@ -435,7 +439,7 @@ fr_BE:
|
||||
import_date: Importé
|
||||
upload_an_image: Importer une image
|
||||
product_search_keywords: Mots-clés de recherche produits
|
||||
product_search_tip: Saisissez des mots qui peuvent simplifier la recherche de vos produits dans les boutiques. Laissez un espace entre chaque mot-clé.
|
||||
product_search_tip: Saisissez des mots qui peuvent simplifier la recherche de vos produits dans les comptoirs. Laissez un espace entre chaque mot-clé.
|
||||
SEO_keywords: Mot-clés de référencement web
|
||||
seo_tip: Saisissez des mots qui peuvent simplifier la recherche de vos produits sur le web. Laissez un espace entre chaque mot-clé.
|
||||
Search: Rechercher
|
||||
@@ -498,6 +502,7 @@ fr_BE:
|
||||
no_permission: vous n'avez pas l'autorisation de gérer cette entreprise
|
||||
not_found: l'entreprise n'a pas été trouvée dans la base de données
|
||||
no_name: Pas de nom
|
||||
blank_enterprise: certains produits n'ont pas d'entreprise définie
|
||||
reset_absent?: Mettre à zéro le produits absents du fichier
|
||||
reset_absent_tip: Remettre le sock à zero pour les produits non présents dans le fichier.
|
||||
overwrite_all: Modifier pour tous
|
||||
@@ -568,6 +573,7 @@ fr_BE:
|
||||
tip: "Utilisez cette page pour changer les quantités d'un produit sur plusieurs commandes. Les produits peuvent aussi être supprimés de toutes les commandes, si nécessaire."
|
||||
shared: "Ressource partagée?"
|
||||
order_no: "N° commande"
|
||||
order_date: "Complété à "
|
||||
max: "Max"
|
||||
product_unit: "Produit: Unité"
|
||||
weight_volume: "Poids/Volume"
|
||||
@@ -598,7 +604,7 @@ fr_BE:
|
||||
about_us:
|
||||
desc_short: Description (en bref)
|
||||
desc_short_placeholder: Parlez de votre entreprise en une ou deux phrases
|
||||
desc_long: A propos
|
||||
desc_long: A propos de nous
|
||||
desc_long_placeholder: Parlez de vous à vos acheteurs ! Ces informations seront visibles sur votre profil public.
|
||||
business_details:
|
||||
abn: SIRET
|
||||
@@ -715,7 +721,7 @@ fr_BE:
|
||||
disconnect: "Déconnecter le compte"
|
||||
confirm_modal:
|
||||
title: Connecter avec Stripe
|
||||
part1: Stripe est un système de paiement qui permet aux magasins sur Open Food France d'accepter des paiements par carte bancaire de leurs acheteurs.
|
||||
part1: Stripe est un système de paiement qui permet aux comptoirs sur Open Food Network d'accepter des paiements par carte bancaire de leurs acheteurs.
|
||||
part2: Pour utiliser cette fonctionnalité, vous devez connecter votre compte Stripe à Open Food France. En cliquant sur "J'accepte" ci-dessous, vous serez redirigé vers le site internet de Stripe, où vous pourrez connecter votre compte existant ou en créer un si vous n'en avez pas encore.
|
||||
part3: Cela permettra à Open Food Network d'accepter en votre nom les paiements par carte de crédit en provenance de vos acheteurs. Veuillez noter que c'est à vous de gérer votre compte Stripe, de payer les frais dus à Stripe et de gérer les éventuels remboursements et le service après vente.
|
||||
i_agree: J'accepte
|
||||
@@ -768,18 +774,18 @@ fr_BE:
|
||||
producer_profile: Profil producteur
|
||||
connect_ofn: Gagnez en visibilité via OFFrance
|
||||
always_free: GRATUIT
|
||||
producer_description_text: Saisissez votre catalogue produits sur Open Food Network, ce qui permettra aux hubs-distributeurs utilisant la plateforme de les proposer dans leurs magasins (sur votre autorisation).
|
||||
producer_description_text: Saisissez votre catalogue produits sur Open Food Network, ce qui permettra aux comptoirs utilisant la plateforme de les proposer dans leurs magasins (sur votre autorisation).
|
||||
producer_shop: Magasin Producteur
|
||||
sell_your_produce: Vendez vos propres produits
|
||||
producer_shop_description_text: Vendez vos produits en direct aux consommateurs via votre propre Magasin Producteur sur Open Food Network.
|
||||
producer_shop_description_text2: Un Magasin Producteur vous permet de vendre uniquement vos propres produits. Si vous voulez vendre d'autres produits, sélectionnez "Hub Producteur"
|
||||
producer_hub: Hub Producteur
|
||||
producer_shop_description_text2: Un Magasin Producteur vous permet de vendre uniquement vos propres produits. Si vous voulez vendre d'autres produits, sélectionnez "Comptoir Producteur"
|
||||
producer_hub: Comptoir Producteur
|
||||
producer_hub_text: Vendez vos produits et ceux d'autres fournisseurs
|
||||
producer_hub_description_text: Vous vendez non seulement vos produits, mais aussi des produits d'autres producteurs de votre région, artisans, ou distributeurs afin de proposer une offre complète dans votre magasin. Vous soutenez ainsi le développement de votre système alimentaire territorial !
|
||||
profile: Profil uniquement
|
||||
get_listing: Référencez votre hub/point de vente
|
||||
profile_description_text: Les visiteurs peuvent vous trouver sur Open Food Network et vous contacter. Votre entreprise sera visible sur la carte.
|
||||
hub_shop: Magasin Hub
|
||||
hub_shop: Magasin comptoir
|
||||
hub_shop_text: Vendez des produits de multiples fournisseurs différents
|
||||
hub_shop_description_text: Vous proposez des produits de différents producteurs de votre région, artisans, ou distributeurs afin de proposer une offre complète dans votre magasin. Vous soutenez ainsi le développement de votre système alimentaire territorial !
|
||||
choose_option: Veuilliez choisir l'une des options ci-dessus.
|
||||
@@ -914,7 +920,7 @@ fr_BE:
|
||||
user_guide: Guide utilisateur
|
||||
overview:
|
||||
enterprises_header:
|
||||
ofn_with_tip: Les Entreprises sont des Producteurs et/ou Hubs distributeurs, et sont donc les organisations de base qui utilisent Open Food Network.
|
||||
ofn_with_tip: Les Entreprises sont des Producteurs et/ou Comptoirs, et sont donc les organisations de base qui utilisent Open Food Network.
|
||||
enterprises_hubs_tabs:
|
||||
has_no_payment_methods: "%{enterprise} n'a pas défini de méthode de paiement"
|
||||
has_no_shipping_methods: "%{enterprise} n'a pas défini de méthode de livraison"
|
||||
@@ -988,7 +994,7 @@ fr_BE:
|
||||
cancel_subscription: Annuler Abonnement
|
||||
setup_explanation:
|
||||
just_a_few_more_steps: 'Encore quelques étapes avant de pouvoir commencer:'
|
||||
enable_subscriptions: "Activez la fonction abonnements pour au moins une de vos boutiques"
|
||||
enable_subscriptions: "Activez la fonction abonnements pour au moins une de vos comptoirs"
|
||||
enable_subscriptions_step_1_html: 1. Allez à %{enterprises_link}, trouvez votre boutique, et cliquez sur "Gérer"
|
||||
enable_subscriptions_step_2: 2. Sous "Préférences boutiques", activez la fonction Abonnements
|
||||
set_up_shipping_and_payment_methods_html: Paramétrez au moins une méthode d'%{shipping_link} et une méthode de %{payment_link}
|
||||
@@ -1064,8 +1070,8 @@ fr_BE:
|
||||
message_html: "Vous avez déjà passé une commande pour ce cycle de vente. Vérifiez votre %{cart} pour voir les produits commandés. Vous pouvez annuler ou modifier votre commande jusqu'à la fermeture du cycle de vente."
|
||||
shops:
|
||||
hubs:
|
||||
show_closed_shops: "Afficher les boutiques fermées"
|
||||
hide_closed_shops: "Masquer les boutiques fermées"
|
||||
show_closed_shops: "Afficher les comptoirs fermés"
|
||||
hide_closed_shops: "Masquer les comptoirs fermés"
|
||||
show_on_map: "Tout afficher sur la carte"
|
||||
shared:
|
||||
menu:
|
||||
@@ -1087,11 +1093,11 @@ fr_BE:
|
||||
footer_sites_userguide: "Guide utilisateur"
|
||||
footer_secure: "Fiable et sécurisé."
|
||||
footer_secure_text: "Open Food Network utilise un certificat type SSL (2048 bit RSA) pour garantir la confidentialité de votre commandes et données bancaires. Nos serveurs ne conservent pas vos données bancaires et les paiements sont effectués conformément aux normes de sécurité PCI."
|
||||
footer_contact_headline: "Restez en contact"
|
||||
footer_contact_headline: "Restons en contact"
|
||||
footer_contact_email: "Nous écrire"
|
||||
footer_nav_headline: "Naviguer"
|
||||
footer_join_headline: "Nous rejoindre"
|
||||
footer_join_body: "Créer un profil, une boutique ou un groupe sur Open Food Network."
|
||||
footer_join_body: "Créer un profil, un comptoir ou un groupe sur Open Food Network."
|
||||
footer_join_cta: "Je veux en savoir plus!"
|
||||
footer_legal_call: "Lire nos"
|
||||
footer_legal_tos: "Termes et conditions"
|
||||
@@ -1137,8 +1143,8 @@ fr_BE:
|
||||
ticket_column_item: "Produit"
|
||||
ticket_column_unit_price: "Prix unitaire"
|
||||
ticket_column_total_price: "Prix total"
|
||||
menu_1_title: "Magasins"
|
||||
menu_1_url: "/magasins"
|
||||
menu_1_title: "Comptoir"
|
||||
menu_1_url: "/Comptoir"
|
||||
menu_2_title: "Carte"
|
||||
menu_2_url: "/map"
|
||||
menu_3_title: "Producteurs"
|
||||
@@ -1165,7 +1171,7 @@ fr_BE:
|
||||
footer_pinterest_url: "Pinterest URL"
|
||||
footer_email: "Email"
|
||||
footer_links_md: "Liens"
|
||||
footer_about_url: "A propos URL"
|
||||
footer_about_url: "A propos de l'URL"
|
||||
user_guide_link: "Lien vers le guide utilisateur"
|
||||
name: Nom
|
||||
first_name: Prénom
|
||||
@@ -1193,7 +1199,7 @@ fr_BE:
|
||||
unconfirmed: non confirmé
|
||||
days: jours
|
||||
label_shop: "Boutique"
|
||||
label_shops: "Magasins"
|
||||
label_shops: "Comptoir"
|
||||
label_map: "Carte"
|
||||
label_producer: "Producteur"
|
||||
label_producers: "Producteurs"
|
||||
@@ -1254,7 +1260,7 @@ fr_BE:
|
||||
cookie_consent_desc: "Utilisé pour se souvenir du consentement de l'utilisation à l'utilisation de cookies."
|
||||
cookie_remember_me_desc: "Utilisé si l'utilisateur a cliqué sur \"se souvenir de moi\" (pour ne pas avoir à se reconnecter à chaque fois). Ce cookie est automatiquement supprimé après 12 jours. Si l'utilisateur souhaite supprimer ce cookie, il n'a qu'à se déconnecter. Si l'utilisateur ne souhaite pas que ce cookie soit installé sur son terminal, il suffit de ne pas cocher la case \"se souvenir de moi\" au moment de la connexion."
|
||||
cookie_openstreemap_desc: "Utilisé par le logiciel de cartographie open source et ami Open Street Map (qui permet l'affichage de la carte sur Open Food France) pour assurer qu'il ne reçoit pas trop de requêtes sur un laps de temps déterminé, et éviter ainsi les risques d'abus de leurs services."
|
||||
cookie_stripe_desc: "Utilisé par le terminal de payement en ligne Stripe (proposé aux utilisateurs d'Open Food France) https://stripe.com/fr/cookies-policy/legal. Même si toutes les boutiques n'utilisent pas Stripe, c'est une bonne pratique en matière de sécurité d'appliquer ce cookie sur toutes les pages vues. Stripe construit probablement une image des pages qui ont un quelconque lien avec l'API connectant Open Food France à leur système de paiement pour détecter les comportements anormaux pouvant suggérer un risque de fraude. Donc ce cookie a un rôle qui va au-delà de la simple fourniture d'un système de paiement. Le supprimer pourrait affecter la sécurité du service. Pour en savoir plus sur la politique de confidentialité de Stripe: https://stripe.com/fr/privacy."
|
||||
cookie_stripe_desc: "Données collectées par notre processeur de paiement Stripe proposé aux utilisateurs d'Open Food Network https://stripe.com/fr/cookies-policy/legal. Même si toutes les comptoirs n'utilisent pas Stripe, c'est une bonne pratique en matière de sécurité d'appliquer ce cookie sur toutes les pages vues. Stripe construit probablement une image des pages qui ont un quelconque lien avec l'API connectant Open Food Network à leur système de paiement pour détecter les comportements anormaux pouvant suggérer un risque de fraude. Donc ce cookie a un rôle qui va au-delà de la simple fourniture d'un système de paiement. Le supprimer pourrait affecter la sécurité du service. Pour en savoir plus sur la politique de confidentialité de Stripe: https://stripe.com/fr/privacy."
|
||||
statistics_cookies: "Cookies d'analyse de navigation"
|
||||
statistics_cookies_desc: "Ces cookies ne sont pas obligatoires, mais nous permettent de mieux comprendre votre usage de la plateforme, les endroits où vous bloquez, les fonctionnalités qui semblent vous manquer, ou que vous n'utilisez jamais, afin de fournir le service le plus adapté possible aux besoins des utilisateurs."
|
||||
statistics_cookies_analytics_desc_html: "Pour analyser les données concernant votre usage de la plateforme, nous utilisons Google Analytics, pas vraiment par choix, mais simplement parce que c'était l'outil d'analyse connecté par défaut via Spree, le logiciel e-commerce open source sur lequel nous avons construit. Mais nous espérons pouvoir rapidement migrer vers <a href='https://matomo.org/' target='_blank'>Matomo</a> (anciennement Piwik), outil d'analyse open source compatible RGPD et engagé sur le respect de la vie privée des utilisateurs."
|
||||
@@ -1287,26 +1293,26 @@ fr_BE:
|
||||
brandstory_intro: "Parfois, le meilleur moyen de réparer le système, c'est d'en inventer un autre..."
|
||||
brandstory_part1: "Tout commence dans le sol. Avec ces paysans, agriculteurs, producteurs, engagés pour une agriculture durable et régénératrice, et désireux de partager leur histoire et leur passion avec fierté. Avec ces distributeurs souhaitant reconnecter les individus à leurs aliments et aux gens qui les produisent, soutenir les prises de conscience, dans une démarche de transparence, d'honnêteté, en assurant une juste rémunération des producteurs. Avec ces acheteurs qui croient que de meilleures décisions d'achats peuvent véritablement changer le monde."
|
||||
brandstory_part2: "Nous avons besoin d'un outil pour rendre tout ça réel. Un moyen de redonner le pouvoir à ceux qui cultivent, vendent et achètent la nourriture. Un moyen de raconter les histoires, de gérer la logistique. Un moyen de transformer chaque jour les transactions en actions porteuses de changement."
|
||||
brandstory_part3: "C'est pour cela que nous construisons cette plateforme, ce \"marché en ligne\", afin de rééquilibrer les échanges et redistribuer le pouvoir. Elle est transparente, pour assurer des relations équitables et favoriser les prises de conscience. Elle est open source, donc possédée par tout le monde. Elle se déploie aux échelles régionales et nationales, et des gens lancent de multiples versions à travers le monde."
|
||||
brandstory_part3: "C'est pour cela que nous construisons cette plateforme, ce \"marché en ligne\", afin de rééquilibrer les échanges et redistribuer le pouvoir. Elle est transparente, pour assurer des relations équitables et favoriser les prises de conscience. Elle est «open source» et donc libre d’accès. Elle est déployée dans plusieurs régions ou pays. "
|
||||
brandstory_part4: "Elle fonctionne partout. Elle change tout."
|
||||
brandstory_part5_strong: "Cette plateforme s'appelle Open Food Network."
|
||||
brandstory_part6: "Nous aimons notre nourriture. Maintenant nous pouvons aussi aimer notre système alimentaire."
|
||||
learn_body: "Explorer les modèles, les histoires et les ressources disponibles pour vous aider à développer votre propre initiative de commerce/organisation oeuvrant pour un système alimentaire équitable et juste. Trouver des outils pour vous former, des événements et autres opportunités d'apprendre de vos pairs."
|
||||
learn_cta: "Découvrir "
|
||||
connect_body: "Rechercher dans le répertoire des producteurs, hubs et groupes pour trouver des commerçants éthiques à côté de chez vous. Inscrivez votre commerce ou organisation sur OFFrance pour que les acheteurs puissent vous trouver. Rejoignez la communauté pour recevoir du soutien et résoudre ensemble les problèmes."
|
||||
connect_body: "Rechercher dans le répertoire des producteurs, des comptoirs et des groupes pour trouver des commerçants éthiques à côté de chez vous. Inscrivez votre commerce ou organisation sur OFFrance pour que les acheteurs puissent vous trouver. Rejoignez la communauté pour recevoir du soutien et résoudre ensemble les problèmes."
|
||||
connect_cta: "Explorer"
|
||||
system_headline: "Faire mes courses - comment ça marche?"
|
||||
system_step1: "1. Recherche"
|
||||
system_step1_text: "Recherchez des produits locaux, de saison, parmi nos multiples boutiques indépendantes. Filtrez par localisation ou catégorie de produits, livraison en point retrait ou à domicile."
|
||||
system_step1_text: "Recherchez des produits locaux, de saison, parmi nos multiples comptoirs. Filtrez par localisation, catégorie de produits, livraison ou propriétés du produits."
|
||||
system_step2: "2. Achat"
|
||||
system_step2_text: "Transformez vos achats en choisissant des produits locaux et abordables, proposés par les divers producteurs et hubs. Découvrez les histoires et les personnes qui se cachent derrière les produits!"
|
||||
system_step2_text: "Transformez vos achats en choisissant des produits abordables, proposés par les divers producteurs et comptoirs. Découvrez les histoires et les personnes qui se cachent derrière les produits!"
|
||||
system_step3: "3. Retrait / Livraison"
|
||||
system_step3_text: "Réceptionnez vos produits à domicile, ou rendez vous chez votre producteur ou hub pour rencontrer les gens qui se cachent derrière les produits. Au delà de la bio-diversité, nous cultivons l'éco-diversité: vivez des expériences d'achat de nourriture uniques et humaines."
|
||||
system_step3_text: "Réceptionnez vos commandes au comptoir, chez votre producteur. Certains proposent même la livraison à domicile. Vivez ainsi des expériences d'achat de nourriture uniques et humaines."
|
||||
cta_headline: "Des achats qui rendent le monde un peu meilleur."
|
||||
cta_label: "Je vote avec mes achats"
|
||||
cta_label: "Faire mes courses "
|
||||
stats_headline: "Nous créons un nouveau système alimentaire."
|
||||
stats_producers: "agriculteurs et producteurs"
|
||||
stats_shops: "boutiques"
|
||||
stats_producers: "Producteurs"
|
||||
stats_shops: "comptoirs"
|
||||
stats_shoppers: "acheteurs"
|
||||
stats_orders: "commandes"
|
||||
checkout_title: Finalisation commande
|
||||
@@ -1348,7 +1354,7 @@ fr_BE:
|
||||
order_total_price: Total
|
||||
order_includes_tax: (dont TVA)
|
||||
order_payment_paypal_successful: Votre paiement via PayPal a été réalisé avec succès.
|
||||
order_hub_info: Hub Info
|
||||
order_hub_info: Comptoir Info
|
||||
order_back_to_store: Retour à la boutique
|
||||
order_back_to_cart: Retour au panier
|
||||
bom_tip: "Utilisez cette page pour modifier les quantités sur plusieurs commandes à la fois. Les produits peuvent aussi être supprimés des commandes si nécessaire."
|
||||
@@ -1361,7 +1367,7 @@ fr_BE:
|
||||
email_welcome: "Bienvenue"
|
||||
email_confirmed: "Veuillez confirmer votre adresse email."
|
||||
email_registered: "fait maintenant partie de"
|
||||
email_userguide_html: "Le Guide Utilisateur expliquant comment mettre en place son profil producteur ou son hub est accessible ici: %{link}"
|
||||
email_userguide_html: "Le Guide Utilisateur expliquant comment mettre en place son profil producteur ou son comptoir est accessible ici: %{link}"
|
||||
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é"
|
||||
@@ -1423,8 +1429,8 @@ fr_BE:
|
||||
email_signup_welcome: "Bienvenue sur %{sitename}!"
|
||||
email_signup_confirmed_email: "Merci d'avoir confirmé votre email."
|
||||
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}"
|
||||
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 comptoirs 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 commentaire 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}."
|
||||
@@ -1467,7 +1473,7 @@ fr_BE:
|
||||
hubs_matches: "Vous voulez dire?"
|
||||
hubs_intro: Passez commande près de chez vous
|
||||
hubs_distance: Le plus près de
|
||||
hubs_distance_filter: "Afficher les boutiques près de %{location}"
|
||||
hubs_distance_filter: "Afficher les comptoirs près de %{location}"
|
||||
shop_changeable_orders_alert_html:
|
||||
one: Votre commande chez <a href='%{path}' target='_blank'>%{shop} / %{order}</a> est ouverte pour vérification. Vous pouvez effectuer des modifications jusqu'au %{oc_close}.
|
||||
other: Vous avez <a href='%{path}' target='_blank'>%{count} commandes avec %{shop}</a> ouvertes à la vérification. Vous pouvez effectuer des modifications jusqu'au %{oc_close}.
|
||||
@@ -1492,13 +1498,13 @@ fr_BE:
|
||||
components_filters_nofilters: "Pas de filtre"
|
||||
components_filters_clearfilters: "Vider les filtres"
|
||||
groups_title: Groupes
|
||||
groups_headline: Groupes / réseaux territoriaux
|
||||
groups_text: "Chaque producteur est unique. Chaque entreprise peut offrir quelque chose de différent. Nos groupes sont des collectifs de producteurs, des plateformes et des distributeurs qui partagent une proximité géographique, un marché fermier ou des valeurs. C'est ce qui rend votre expérience d'achat plus simple. Explorez donc ces groupes sélectionnés."
|
||||
groups_headline: 'Groupes '
|
||||
groups_text: "Chaque producteur est unique. Chaque entreprise peut offrir quelque chose de différent. Nos groupes sont des collectifs de producteurs, des plateformes et des comptoirs qui partagent une proximité géographique, un marché fermier ou des valeurs. C'est ce qui rend votre expérience d'achat plus simple. Explorez donc ces groupes sélectionnés."
|
||||
groups_search: "Recherche par nom ou mot-clé"
|
||||
groups_no_groups: "Aucun groupe trouvé"
|
||||
groups_about: "A propos"
|
||||
groups_producers: "Nos producteurs"
|
||||
groups_hubs: "Nos hubs"
|
||||
groups_hubs: "Nos comptoirs"
|
||||
groups_contact_web: Contact
|
||||
groups_contact_social: Suivre
|
||||
groups_contact_address: Adresse
|
||||
@@ -1507,35 +1513,35 @@ fr_BE:
|
||||
groups_contact_facebook: Nous suivre sur Facebook
|
||||
groups_signup_title: S'inscrire en tant que groupe
|
||||
groups_signup_headline: Inscription groupe
|
||||
groups_signup_intro: "Nous sommes une plate-forme très efficace pour le marketing collaboratif, une excellente manière pour vos membres et parties prenantes d'atteindre de nouveaux marchés. Nous sommes à but non lucratif, abordable et simple."
|
||||
groups_signup_intro: "Vous faites partie d’un réseau alimentaire cohérent, nous vous offrons l’opportunité de gagner en visibilité. La carte interactive permet de localiser vos producteurs et vos comptoirs de vente. "
|
||||
groups_signup_email: Nous écrire
|
||||
groups_signup_motivation1: Nous transformons les systèmes alimentaires pour remettre de l'équité dans les échanges.
|
||||
groups_signup_motivation2: C'est pourquoi nous sortons du lit chaque matin. Nous sommes une organisation à but non lucratif, basée sur un code source ouvert. Nous opérons en toute transparence.
|
||||
groups_signup_motivation3: Vous avez de belles idées, et nous voulons vous aider. Nous partageons nos connaissances, réseaux et ressources. Nous savons que l'isolement ne crée pas le changement, alors coopérons.
|
||||
groups_signup_motivation4: Nous venons à votre rencontrer.
|
||||
groups_signup_motivation5: Vous êtes un réseau de circuits de distribution alternatifs, de producteurs, de distributeurs, une administration liée à l'industrie alimentaire ou une autorité locale?
|
||||
groups_signup_motivation6: Quel que soit votre rôle dans la relocalisation des systèmes alimentaires, nous sommes prêts à vous soutenir. Si vous vous demandez à quoi Open Food Network ressemble / pourrait ressembler dans votre coin du monde, contactez-nous.
|
||||
groups_signup_motivation7: Nous contribuons à remettre du sens dans les systèmes alimentaires.
|
||||
groups_signup_motivation8: Vous avez besoin de connecter et d'outiller vos réseaux, nous offrons une plate-forme pour la coopération et l'action. Vous souhaitez de l'engagement. Nous vous aidons à atteindre les acteurs, les parties-prenantes, les secteurs.
|
||||
groups_signup_motivation9: Vous avez besoin de ressources. Nous mettons à votre service notre expérience. Vous avez besoin de coopération. Nous vous connectons à un large réseau d'acteurs et d'organisations soeurs partout dans le monde.
|
||||
groups_signup_pricing: Compte groupe
|
||||
groups_signup_motivation1: 'Oxfam-Magasins du monde '
|
||||
groups_signup_motivation2: Le réseau des Magasins du monde-Oxfam est étendu et compte 70 points de ventes répartis à Bruxelles et en Wallonie. Tous les magasins proposent un vaste choix de produits alimentaires, de cosmétiques, de décorations, de bijoux, d’accessoires de mode et de vêtements de seconde main.
|
||||
groups_signup_motivation3: L’organisation a localisé tous ses magasins sur le groupe « Oxfam-Magasins du monde ». Certaines équipes ont décidé de vendre des produits équitables et locaux via OFN. Envie de rejoindre une équipe Oxfam pour développer la vente en ligne? Envie de créer une équipe Oxfam qui organise de la vente de produits équitables et locaux? Envie de vendre vos produits dans un magasin du monde Oxfam? Formation et accompagnement possible à la demande via openfoodnetwork@mdmoxfam.be
|
||||
groups_signup_motivation4: Oxfam-Magasins du monde à votre rencontre
|
||||
groups_signup_motivation5: Envie d’améliorer la plateforme, d’apporter des propositions, de nouvelles fonctionnalités, de participer au développement et à la gouvernance du projet.
|
||||
groups_signup_motivation6: Contactez-nous via openfoodnetwork@mdmoxfam.be
|
||||
groups_signup_motivation7: 'Envie de constituer un groupe? '
|
||||
groups_signup_motivation8: Vous pourrez connecter et outiller votre réseau, nous offrons une plate-forme pour la coopération et l'action. Vous souhaitez de l'engagement. Nous vous aidons à atteindre les acteurs, les parties-prenantes, les secteurs.
|
||||
groups_signup_motivation9: 'Découvrez la suite. '
|
||||
groups_signup_pricing: Créer un compte groupe
|
||||
groups_signup_studies: Etudes de cas
|
||||
groups_signup_contact: Vous voulez discuter?
|
||||
groups_signup_contact: Prêt à en discuter?
|
||||
groups_signup_contact_text: "Prenez contact et découvrez ce qu'Open Food France peut faire pour vous:"
|
||||
groups_signup_detail: "Plus de précisions."
|
||||
groups_signup_detail: "Comment ça marche"
|
||||
login_invalid: "Email ou mot de passe erroné"
|
||||
modal_hubs: "Food Hubs"
|
||||
modal_hubs_abstract: Nos food hubs sont les points de contact entre vous et les personnes qui produisent votre nourriture!
|
||||
modal_hubs_content1: Vous pouvez chercher le hub qui vous convient par localisation ou par nom. Certains hubs ont de multiples points de retrait de vos achats, et certains proposent également la livraison à domicile. Chaque food hub est un point de vente et gère de façon indépendante ses opérations et sa logistique - attendez-vous donc à des disparités de fonctionnement entre les hubs.
|
||||
modal_hubs_content2: Vous pouvez uniquement faire vos courses dans un hub à la fois.
|
||||
modal_groups: "Groupes / réseaux territoriaux"
|
||||
modal_groups_content1: Voilà les organisations et les relations inter-hubs qui constituent l'Open Food Network.
|
||||
modal_hubs_content1: Vous pouvez chercher le comptoir qui vous convient par localisation ou par nom. Certains comptoirs ont de multiples points de retrait de vos achats, et certains proposent également la livraison à domicile. Chaque comptoir est un point de vente et gère de façon indépendante ses opérations et sa logistique - attendez-vous donc à des disparités de fonctionnement entre les hubs.
|
||||
modal_hubs_content2: Vous pouvez uniquement faire vos courses dans un comptoir à la fois.
|
||||
modal_groups: "Groupes"
|
||||
modal_groups_content1: Voilà les organisations et les relations inter-comptoirs qui constituent l'Open Food Network.
|
||||
modal_groups_content2: Certains groupes sont regroupés pas localisation ou région, d'autres sur des smilitudes non géographiques.
|
||||
modal_how: "Comment ça marche"
|
||||
modal_how_shop: Faire vos courses sur Open Food Network
|
||||
modal_how_shop_explained: Recherchez un food hub près de chez vous et commencez vos achats! Vous pouvez afficher plus d'infos sur chaque food hub pour voir le type de produits qu'il propose, et cliquer sur le hub pour commencer vos achats. (Vous ne pouvez faire vos courses que dans un food hub à la fois.)
|
||||
modal_how_shop_explained: Recherchez un comptoir près de chez vous et commencez vos achats! Vous pouvez afficher plus d'infos sur chaque comptoir pour voir le type de produits qu'il propose, et cliquer sur le comptoir pour commencer vos achats. (Vous ne pouvez faire vos courses que dans un food hub à la fois.)
|
||||
modal_how_pickup: Frais de retrait, livraison et transport
|
||||
modal_how_pickup_explained: Certains food hubs livrent à domicile, d'autres vous demandent de venir récupérer vos achats dans un point de retrait. Vous pouvez voir quelle options sont proposées sur la page d'accueil du hub, et sélectionner votre choix au moment de la validation de la commande. La livraison à domicile coûtera souvent plus cher, et les prix diffèrent selon le hub. Chaque food hub est un point de vente et gère de façon indépendante ses opérations et sa logistique - attendez-vous donc à des disparités de fonctionnement entre les hubs.
|
||||
modal_how_pickup_explained: Certains comptoirs livrent à domicile, d'autres vous demandent de venir récupérer vos achats dans un point de retrait. Vous pouvez voir quelle options sont proposées sur la page d'accueil du hub, et sélectionner votre choix au moment de la validation de la commande. La livraison à domicile coûtera souvent plus cher, et les prix diffèrent selon le comptoir. Chaque comptoir est un point de vente et gère de façon indépendante ses opérations et sa logistique - attendez-vous donc à des disparités de fonctionnement entre les comptoirs.
|
||||
modal_how_more: En savoir plus
|
||||
modal_how_more_explained: "Pour en savoir plus sur Open Food Network, comment ça marche, et contribuer, allez voir:"
|
||||
modal_producers: "Producteurs"
|
||||
@@ -1553,10 +1559,10 @@ fr_BE:
|
||||
producers_headline: Trouvez un producteur local
|
||||
producers_signup_title: S'inscrire en tant que producteur
|
||||
producers_signup_headline: Des producteurs, autonomes
|
||||
producers_signup_motivation: Vendez vos produits et racontez vos histoires pour toucher de nouveaux marchés. Gagnez du temps et de l'argent sur la gestion des opérations courantes. Vous pouvez innover sans prendre de risque. Nous nivellons le terrain de jeu pour des échanges plus équitables.
|
||||
producers_signup_motivation: Vendez vos produits. Présentez votre projet pour une alimentation durable. Économisez du temps et de l'argent sur la gestion des opérations courantes. Participez à un système alimentaire transparent et équitable.
|
||||
producers_signup_send: Rejoindre le réseau
|
||||
producers_signup_enterprise: Comptes entreprises
|
||||
producers_signup_studies: Les histoires de nos producteurs.
|
||||
producers_signup_enterprise: Profil Producteur-trice-s
|
||||
producers_signup_studies: Témoignages de nos producteurs.
|
||||
producers_signup_cta_headline: Rejoindre le réseau!
|
||||
producers_signup_cta_action: Rejoindre le réseau
|
||||
producers_signup_detail: Comment ça marche.
|
||||
@@ -1572,24 +1578,24 @@ fr_BE:
|
||||
sell_headline: "Rejoignez l'Open Food Network !"
|
||||
sell_motivation: "Promouvez vos aliments."
|
||||
sell_producers: "Producteurs"
|
||||
sell_hubs: "Hubs"
|
||||
sell_hubs: "Comptoirs"
|
||||
sell_groups: "Groupes"
|
||||
sell_producers_detail: "Créer un profil pour votre entreprise sur OFN en quelques minutes. A tout moment vous pourrez créer un magasin en ligne pour vendre vos produits en direct aux acheteurs."
|
||||
sell_hubs_detail: "Créer un profil pour votre entreprise de distribution ou organisation sur OFN. A tout moment vous pourrez créer une boutique multi-fournisseurs."
|
||||
sell_groups_detail: "Créer un répertoire sur mesure (regroupant différents producteurs et hubs de distribution) pour votre région ou votre organisation."
|
||||
sell_producers_detail: "Créer un profil pour votre activité sur OFN en quelques minutes. A tout moment vous pourrez créer un comptoir en ligne pour vendre vos produits en direct aux acheteurs."
|
||||
sell_hubs_detail: "Créer un profil pour votre activité sur OFN en quelques minutes. A tout moment vous pourrez créer un comptoir en ligne pour vendre vos produits en direct aux acheteurs."
|
||||
sell_groups_detail: "Créer un répertoire sur mesure (regroupant différents producteurs et comptoirs) pour votre région ou votre organisation."
|
||||
sell_user_guide: "En savoir plus en explorant le guide utilisateur."
|
||||
sell_listing_price: "La création d'un profil sur OFN, ouvrir, gérer un magasin ou créer un groupe pour votre organisation ou réseau régional sur l'OFN est à contribution libre. Afin de maintenir et développer ce commun numérique, nous avons besoin de compétences et des fonds. Nous vous invitons à contribuer au commun \"en compétences\" (développement de fonctionnalités, recherche de financement, support utilisateur, etc.) ou \"en argent\" d'un montant fixe par mois et/ou 2% de votre chiffre d'affaires par les mois. "
|
||||
sell_embed: "Nous pouvons aussi intégrer votre boutique OFN dans votre propre site web ou construire un site web d'alimentation locale sur mesure pour votre région."
|
||||
sell_listing_price: "Sur OFN il est possible de créer un profil, ouvrir et gérer un comptoir de vente, ou créer un groupe pour votre organisation ou réseau régional. Oxfam-Magasins du monde prend en charge la coordination de l’OFN en Belgique. Pour que l’application puisse exister, il faut la financer. Après 6 mois d’utilisation gratuite du service de vente en ligne, une contribution de 2% du chiffre d’affaires des ventes en ligne sera demandée. (le reste des services restant gratuits). OFN est une plateforme coopérative, les différentes règles de fonctionnement dont les contributions seront décidées collectivement au fur et à mesure du projet. "
|
||||
sell_embed: "D’ici là, vous pouvez également participer au projet. Soit en co-créant la communauté belge, en contribuant à l’amélioration des fonctionnalités… Soit en mettant à disposition : un local pour la démonstration de l’outil ou un point relais pour faciliter les livraisons… Soit en le finançant BE41 0682 2264 2410 – com: Open Food Network"
|
||||
sell_ask_services: "Nous consulter sur les services des partenaires OFN."
|
||||
shops_title: Boutiques
|
||||
shops_title: Comptoirs
|
||||
shops_headline: Des achats qui transforment.
|
||||
shops_text: Les aliments poussent selon des cycles naturels, les fermiers récoltent en cycles, nous achetons aussi en cycles. Si un cycle de vente est terminé, attendez le suivant ou demandez des infos à votre magasin préféré.
|
||||
shops_signup_title: S'inscrire en tant que hub
|
||||
shops_signup_headline: Des hubs divers et variés
|
||||
shops_signup_motivation: Quel que soit votre modèle, vous pouvez vous appuyer sur Open Food France. Si vous voulez le faire évoluer, nous sommes là pour vous aider. Nous agissons selon des principes de non-lucrativité, d'indépendance, et de transparence. Et nous faisons tout notre possible pour répondre à vos besoins et vous accompagner en toute circonstance.
|
||||
shops_text: Les aliments poussent selon des cycles naturels, les fermiers récoltent selon les saisons. Alors ici, nous achetons aussi en suivant des cycles. Si un cycle de vente est terminé, attendez le suivant ou contactez votre comptoir favori !
|
||||
shops_signup_title: S'inscrire en tant que comptoir
|
||||
shops_signup_headline: Des comptoirs divers et variés
|
||||
shops_signup_motivation: Quel que soit votre modèle, Open Food Network vous offre l’opportunité de valoriser la transparence et de faciliter la logistique de votre organisation. Non-lucratif, nous faisons tout notre possible pour répondre à vos besoins et vous accompagner.
|
||||
shops_signup_action: Rejoindre le réseau
|
||||
shops_signup_pricing: Comptes entreprises
|
||||
shops_signup_stories: Histoires de hubs.
|
||||
shops_signup_pricing: Profil Comptoir
|
||||
shops_signup_stories: Témoignages de comptoirs.
|
||||
shops_signup_help: Nous sommes là pour vous aider.
|
||||
shops_signup_help_text: Vous avez besoin de pouvoir travailler de manière efficace. Vous avez besoin de nouveaux acheteurs et de partenaires logistiques. Vous souhaitez que votre histoire soit racontée tout au long du circuit, que l'acheteur final sache qui se trouve derrière les produits.
|
||||
shops_signup_detail: Comment ça marche.
|
||||
@@ -1605,9 +1611,9 @@ fr_BE:
|
||||
orders_form_admin: Admin & traitements
|
||||
orders_form_total: Total
|
||||
orders_oc_expired_headline: Les commandes ne sont plus possibles pour ce cycle de vente.
|
||||
orders_oc_expired_text: "Désolé, les commandes pour ce cycle de vente ont été clôturées il y a %{time}! Veuillez contacter directement le hub pour voir s'il accepte les commandes tardives."
|
||||
orders_oc_expired_text_others_html: "Désolé, les commandes pour ce cycle de vente ont été clôturées il y a %{time}! Veuillez contacter directement le hub pour voir s'il accepte les commandes tardives <strong>%{link}</strong>."
|
||||
orders_oc_expired_text_link: "ou voir si d'autres cycles de vente sont ouverts pour ce hub"
|
||||
orders_oc_expired_text: "Désolé, les commandes pour ce cycle de vente ont été clôturées il y a %{time}! Veuillez contacter directement le comptoir pour voir s'il accepte les commandes tardives."
|
||||
orders_oc_expired_text_others_html: "Désolé, les commandes pour ce cycle de vente ont été clôturées il y a %{time}! Veuillez contacter directement le comptoir pour voir s'il accepte les commandes tardives <strong>%{link}</strong>."
|
||||
orders_oc_expired_text_link: "ou voir si d'autres cycles de vente sont ouverts pour ce comptoir"
|
||||
orders_oc_expired_email: "Email:"
|
||||
orders_oc_expired_phone: "Téléphone:"
|
||||
orders_show_title: Confirmation de commande
|
||||
@@ -1657,7 +1663,7 @@ fr_BE:
|
||||
one_filter_applied: "1 filtre appliqué"
|
||||
x_filters_applied: "filtres appliqués"
|
||||
submitting_order: "Votre commande est en cours d'envoi : veuillez patienter"
|
||||
confirm_hub_change: "Confirmer? Cette action modifiera la boutique sélectionnée et tous les articles de votre panier seront effacés."
|
||||
confirm_hub_change: "Confirmer? Cette action modifiera le comptoir sélectionné et tous les articles de votre panier seront effacés."
|
||||
confirm_oc_change: "Confirmer? Cette action modifiera le cycle de vente sélectionné et tous les articles de votre panier seront effacés."
|
||||
location_placeholder: "Saisissez une localisation..."
|
||||
error_required: "Champ obligatoire"
|
||||
@@ -1687,7 +1693,7 @@ fr_BE:
|
||||
choose_password: "Choisissez un mot de passe"
|
||||
confirm_password: "Confirmez votre mot de passe"
|
||||
action_signup: "S'inscrire"
|
||||
welcome_to_ofn: "Bienvenue sur Open Food Network"
|
||||
welcome_to_ofn: "Bienvenue sur Open Food Network!"
|
||||
signup_or_login: "Commencez par vous inscrire (ou connexion)"
|
||||
have_an_account: "Déjà inscrit?"
|
||||
action_login: "Se connecter."
|
||||
@@ -1705,7 +1711,7 @@ fr_BE:
|
||||
no_producer: "Non, je ne suis pas un producteur"
|
||||
producer_field_error: "Veuillez faire un choix. Etes vous un producteur?"
|
||||
yes_producer_help: "Un producteur fabrique de bonnes choses à boire et à manger. Vous êtes un producteur si vous les faites pousser, les élevez, les pétrissez, transformez, fermentez, les réduisez en grains, etc."
|
||||
no_producer_help: "Si vous n'êtes pas un producteur, vous êtes probablement un revendeur ou distributeur alimentaire : un \"hub\", une coopérative, un groupement d'achat, un revendeur, un grossiste, ou autre."
|
||||
no_producer_help: "Si vous n'êtes pas un producteur, vous êtes probablement un revendeur ou distributeur alimentaire : un comptoir, une coopérative, un groupement d'achat, un revendeur, un grossiste, ou autre."
|
||||
create_profile: "Créer votre profil"
|
||||
enterprise:
|
||||
registration:
|
||||
@@ -1807,7 +1813,7 @@ fr_BE:
|
||||
instagram: "Instagram"
|
||||
instagram_placeholder: "ex: @instagram_pseudo"
|
||||
registration_greeting: "Bonjour!"
|
||||
registration_intro: "Vous pouvez maintenant créer votre profil \"Producteur\" ou \"Hub\""
|
||||
registration_intro: "Vous pouvez maintenant créer votre profil \"Producteur\" ou \"Comptoir\""
|
||||
registration_action: "Démarrons!"
|
||||
registration_checklist: "Vous aurez besoin de"
|
||||
registration_time: "5-10 minutes"
|
||||
@@ -1831,7 +1837,7 @@ fr_BE:
|
||||
registration_type_no_producer: "Non, je ne suis pas un producteur"
|
||||
registration_type_error: "Veuillez faire un choix. Etes vous un producteur?"
|
||||
registration_type_producer_help: "Un producteur fabrique de bonnes choses à boire et à manger. Vous êtes un producteur si vous les faites pousser, les élevez, les pétrissez, transformez, fermentez, les réduisez en grains, etc."
|
||||
registration_type_no_producer_help: "Si vous n'êtes pas un producteur, vous êtes probablement un revendeur ou distributeur alimentaire: un \"hub\", une coopérative, un groupement d'achat, un revendeur, un grossiste, ou autre."
|
||||
registration_type_no_producer_help: "Si vous n'êtes pas un producteur, vous êtes probablement un revendeur ou distributeur alimentaire: un comptoir, une coopérative, un groupement d'achat, un revendeur, un grossiste, ou autre."
|
||||
registration_images_headline: "Merci!"
|
||||
registration_images_description: "Ajoutez maintenant de jolies photos pour que votre profil soit attractif! :)"
|
||||
registration_detail_headline: "Commençons"
|
||||
@@ -1953,11 +1959,11 @@ fr_BE:
|
||||
queued: "En attente"
|
||||
scheduled_for: "Prévu pour"
|
||||
customers: "Acheteurs"
|
||||
please_select_hub: "Veuillez sélectionner un Hub"
|
||||
please_select_hub: "Veuillez sélectionner un comptoir"
|
||||
loading_customers: "Chargement de la liste des acheteurs"
|
||||
no_customers_found: "Aucun acheteur trouvé"
|
||||
go: "Lancer"
|
||||
hub: "Hub"
|
||||
hub: "Comptoir"
|
||||
producer: "Producteur"
|
||||
product: "Produit"
|
||||
price: "Prix"
|
||||
@@ -1973,7 +1979,7 @@ fr_BE:
|
||||
spree_admin_enterprises_fees: "Marges et commissions"
|
||||
spree_admin_enterprises_none_create_a_new_enterprise: "CRÉER UNE NOUVELLE ENTREPRISE"
|
||||
spree_admin_enterprises_none_text: "Vous n'avez pas encore d'entreprise"
|
||||
spree_admin_enterprises_tabs_hubs: "HUBS"
|
||||
spree_admin_enterprises_tabs_hubs: "COMPTOIR"
|
||||
spree_admin_enterprises_producers_manage_products: "GÉRER LES PRODUITS"
|
||||
spree_admin_enterprises_any_active_products_text: "Vous n'avez aucun produit actif."
|
||||
spree_admin_enterprises_create_new_product: "CRÉER UN NOUVEAU PRODUIT"
|
||||
@@ -1996,7 +2002,7 @@ fr_BE:
|
||||
spree_order_availability_error: "Le distributeur ne peut fournir les produits de votre panier pour ce cycle de vente."
|
||||
spree_order_populator_error: "Le distributeur ne peut fournir tous les produits de votre panier pour ce cycle de vente. Merci de choisir un autre distributeur ou un autre cycle de vente."
|
||||
spree_order_populator_availability_error: "Ce produit n'est pas disponible pour ce cycle de vente / distributeur."
|
||||
spree_distributors_error: "Veuillez sélectionner au moins un hub"
|
||||
spree_distributors_error: "Veuillez sélectionner au moins un comptoir "
|
||||
spree_user_enterprise_limit_error: "^ %{email} ne peut pas créer de nouvelles entreprises (limite actuelle : %{enterprise_limit} entreprises )."
|
||||
spree_variant_product_error: doit avoir au moins une variante
|
||||
your_profil_live: "Votre profil en ligne"
|
||||
@@ -2028,10 +2034,10 @@ fr_BE:
|
||||
admin_share_zipcode: "Code postal"
|
||||
admin_share_country: "Pays"
|
||||
admin_share_state: "Département"
|
||||
hub_sidebar_hubs: "Hubs"
|
||||
hub_sidebar_hubs: "Comptoir"
|
||||
hub_sidebar_none_available: "Aucun disponible"
|
||||
hub_sidebar_manage: "Gérer"
|
||||
hub_sidebar_at_least: "Sélectionnez un/des hubs"
|
||||
hub_sidebar_at_least: "Sélectionnez un/des comptoir/s"
|
||||
hub_sidebar_blue: "bleu"
|
||||
hub_sidebar_red: "rouge"
|
||||
shop_trial_in_progress: "Votre période de test se termine dans %{days}."
|
||||
@@ -2042,7 +2048,7 @@ fr_BE:
|
||||
report_customers_csv: "Télécharger en csv"
|
||||
report_producers: "Producteurs:"
|
||||
report_type: "Type de rapport: "
|
||||
report_hubs: "Hubs:"
|
||||
report_hubs: "Comptoirs:"
|
||||
report_payment: "Méthodes de paiement:"
|
||||
report_distributor: "Distributeurs:"
|
||||
report_payment_by: 'Paiements par type'
|
||||
@@ -2066,10 +2072,10 @@ fr_BE:
|
||||
report_header_address: Adresse
|
||||
report_header_billing_address: Adresse de facturation
|
||||
report_header_relationship: Droits
|
||||
report_header_hub: Hub
|
||||
report_header_hub_address: Adresse du Hub
|
||||
report_header_to_hub: Distributeur
|
||||
report_header_hub_code: Code du Hub
|
||||
report_header_hub: Comptoir
|
||||
report_header_hub_address: Adresse du comptoir
|
||||
report_header_to_hub: Comptoir
|
||||
report_header_hub_code: Code du comptoir
|
||||
report_header_code: Code
|
||||
report_header_paid: Payé ?
|
||||
report_header_delivery: Livré ?
|
||||
@@ -2228,8 +2234,9 @@ fr_BE:
|
||||
enterprise_fee_whole_order: Commande totale
|
||||
enterprise_fee_by: "%{type}marges/frais par %{role} %{enterprise_name}"
|
||||
validation_msg_relationship_already_established: "^Un lien est déjà établi entre ces entreprises."
|
||||
validation_msg_at_least_one_hub: "^Sélectionnez au moins un hub"
|
||||
validation_msg_at_least_one_hub: "^Sélectionnez au moins un comptoir"
|
||||
validation_msg_product_category_cant_be_blank: "^Veuillez sélectionner la catégorie produit"
|
||||
validation_msg_tax: "Les catégories de taxes sont obligatoires"
|
||||
validation_msg_tax_category_cant_be_blank: "^Veuillez sélectionner la TVA applicable"
|
||||
validation_msg_is_associated_with_an_exising_customer: "est associé à un acheteur existant"
|
||||
content_configuration_pricing_table: "(A FAIRE : Tableau des tarifs)"
|
||||
@@ -2244,19 +2251,19 @@ fr_BE:
|
||||
product_importer_products_save_error: n'a pu sauvegarder aucun produit :-(
|
||||
product_import_file_not_found_notice: 'Fichier non trouvé ou impossible à ouvrir'
|
||||
product_import_no_data_in_spreadsheet_notice: 'Aucune donnée trouvée dans le tableau'
|
||||
order_choosing_hub_notice: Votre hub a été sélectionné.
|
||||
order_choosing_hub_notice: Votre comptoir a été sélectionné.
|
||||
order_cycle_selecting_notice: Votre cycle de vente a été sélectionné.
|
||||
adjustments_tax_rate_error: "^Veuillez vérifier la TVA applicable pour cet ajustement."
|
||||
active_distributors_not_ready_for_checkout_message_singular: >-
|
||||
Le hub %{distributor_names} est sélectionné comme distributeur dans un cycle
|
||||
de vente actif, mais n'a pas paramétré de méthode de livraison et/ou de paiement.
|
||||
La boutique de ce hub restera inaccessible jusqu'à ce qu'une méthode de livraison
|
||||
Le comptoir %{distributor_names} est sélectionné comme distributeur dans un
|
||||
cycle de vente actif, mais n'a pas paramétré de méthode de livraison et/ou de
|
||||
paiement. Ce comptoir restera inaccessible jusqu'à ce qu'une méthode de livraison
|
||||
et une méthode de paiement aient été paramétrées.
|
||||
active_distributors_not_ready_for_checkout_message_plural: >-
|
||||
Les hubs %{distributor_names} sont sélectionnés comme distributeurs dans un
|
||||
cycle de vente actif, mais n'ont pas paramétré de méthode de livraison et/ou
|
||||
de paiement. Les boutiques de ces hubs resteront inaccessibles jusqu'à ce qu'une
|
||||
méthode de livraison et une méthode de paiement aient été paramétrées.
|
||||
Les comptoirs %{distributor_names} sont sélectionnés comme distributeurs dans
|
||||
un cycle de vente actif, mais n'ont pas paramétré de méthode de livraison et/ou
|
||||
de paiement. Les comptoirs resteront inaccessibles jusqu'à ce qu'une méthode
|
||||
de livraison et une méthode de paiement aient été paramétrées.
|
||||
enterprise_fees_update_notice: Les marges et commissions de votre entreprise ont été mises à jour.
|
||||
enterprise_fees_destroy_error: "Cette marge ou commission ne peut être supprimée car elle est utilisée par la vente suivante : %{id} - %{name}."
|
||||
enterprise_register_package_error: "Veuillez choisir une option"
|
||||
@@ -2292,7 +2299,7 @@ fr_BE:
|
||||
error: Erreur
|
||||
unavailable: Non disponible
|
||||
profile: Profil
|
||||
hub: Hub
|
||||
hub: Comptoir
|
||||
shop: Boutique
|
||||
choose: Choisir
|
||||
resolve_errors: Veuillez corriger les erreurs suivantes
|
||||
@@ -2327,7 +2334,7 @@ fr_BE:
|
||||
saved: Enregistré
|
||||
saving: En cours d'enregistrement
|
||||
enterprise_package:
|
||||
hub_profile: Profil Hub
|
||||
hub_profile: Profil Comptoir
|
||||
hub_profile_cost: "COÛT: CONTRIBUTION LIBRE"
|
||||
hub_profile_text1: >
|
||||
Les visiteurs voient votre profil sur la carte, et peuvent vous contacter.
|
||||
@@ -2335,14 +2342,14 @@ fr_BE:
|
||||
hub_profile_text2: >
|
||||
Créez votre profil et utilisez Open Food Network pour vous connecter
|
||||
à votre système alimentaire territorial.
|
||||
hub_shop: Boutique Hub
|
||||
hub_shop: Comptoir
|
||||
hub_shop_text1: >
|
||||
Vous proposez des produits de différents producteurs de votre région,
|
||||
artisans, ou distributeurs afin de proposer une offre complète dans
|
||||
votre boutique. Vous soutenez ainsi le développement de votre système
|
||||
alimentaire territorial !
|
||||
hub_shop_text2: >
|
||||
Un hub n'a pas de modèle figé, il peut s'agir d'un groupement d'achat,
|
||||
Un comptoir n'a pas de modèle figé, il peut s'agir d'un groupement d'achat,
|
||||
d'une AMAP, d'une épicerie coopérative, d'une épicerie locale de quartier
|
||||
ou épicerie en circuit court en ligne, etc.
|
||||
hub_shop_text3: >
|
||||
@@ -2367,30 +2374,32 @@ fr_BE:
|
||||
pas besoin d'une boutique sur Open Food Network.
|
||||
profile_only_text3: >
|
||||
Saisissez votre catalogue produits sur Open Food Network, ce qui permettra
|
||||
aux hubs-distributeurs utilisant la plateforme de les proposer dans
|
||||
leurs boutiques (sur votre autorisation).
|
||||
aux comptoirs utilisant la plateforme de les proposer dans leurs boutiques
|
||||
(sur votre autorisation).
|
||||
producer_shop: Boutique Producteur
|
||||
producer_shop_text1: >
|
||||
Vendez vos produits en direct aux mangeurs/restaurateurs/etc. via votre
|
||||
propre Boutique Producteur sur Open Food Network.
|
||||
producer_shop_text2: >
|
||||
Une Boutique Producteur vous permet de vendre uniquement vos propres
|
||||
produits. Si vous voulez vendre d'autres produits, sélectionnez "Hub
|
||||
produits. Si vous voulez vendre d'autres produits, sélectionnez "Comptoir
|
||||
Producteur"
|
||||
producer_hub: Hub Producteur
|
||||
producer_hub: Comptoir Producteur
|
||||
producer_hub_text1: >
|
||||
Vous vendez non seulement vos produits, mais aussi des produits d'autres
|
||||
producteurs de votre région, artisans, ou distributeurs afin de proposer
|
||||
une offre complète dans votre boutique. Vous soutenez ainsi le développement
|
||||
de votre système alimentaire territorial !
|
||||
producer_hub_text2: >
|
||||
Un hub producteur peut prendre différentes formes, une boutique de vente
|
||||
directe, un magasin de producteurs en ligne, un drive fermier, etc.
|
||||
Un comptoir producteur peut prendre différentes formes, une boutique
|
||||
de vente directe, un magasin de producteurs en ligne, un drive fermier,
|
||||
etc.
|
||||
producer_hub_text3: >
|
||||
Open Food Network soutient tous les modèles de hubs alimentaires, nous
|
||||
pensons que la résilience du système viendra de la diversité des modèles.
|
||||
Donc quel que soit votre modèle, nous souhaitons vous apporter les outils
|
||||
de gestion donc vous avez besoin pour opérer votre circuit court.
|
||||
Open Food Network soutient tous les modèles de distributions alimentaires,
|
||||
nous pensons que la résilience du système viendra de la diversité des
|
||||
modèles. Donc quel que soit votre modèle, nous souhaitons vous apporter
|
||||
les outils de gestion donc vous avez besoin pour opérer votre circuit
|
||||
court.
|
||||
get_listing: Référencez votre entreprise
|
||||
always_free: CONTRIBUTION LIBRE
|
||||
sell_produce_others: Vendez des produits de multiples fournisseurs différents
|
||||
@@ -2605,14 +2614,21 @@ fr_BE:
|
||||
bulk_coop_customer_payments: 'Achats groupés - Paiement des acheteurs'
|
||||
users:
|
||||
index:
|
||||
listing_users: "Utilisateur d'annonces"
|
||||
new_user: "Nouvel utilisateur"
|
||||
user: "Utilisateur"
|
||||
enterprise_limit: "Nombre max d'entreprises"
|
||||
search: "Rechercher"
|
||||
email: "Email"
|
||||
edit:
|
||||
editing_user: "Utilisateur d'édition"
|
||||
back_to_users_list: "Retour vers la liste des utilisateurs"
|
||||
general_settings: "Réglages Généraux"
|
||||
form:
|
||||
email: "Email"
|
||||
roles: "Roles"
|
||||
enterprise_limit: "Nombre max d'entreprises"
|
||||
confirm_password: "Confirmer le mot de passe "
|
||||
password: "Mot de passe"
|
||||
email_confirmation:
|
||||
confirmation_pending: "L'email de confirmation n'a pas encore été validé. Il a été envoyé à %{address}."
|
||||
@@ -2739,9 +2755,9 @@ fr_BE:
|
||||
default?: Carte utilisée par défaut?
|
||||
delete?: Supprimer?
|
||||
cards:
|
||||
authorised_shops: Boutiques autorisées.
|
||||
authorised_shops_popover: Voilà la liste des boutiques que vous avez autorisées à débiter votre carte de paiement par défaut dans le cadre de vos abonnements en cours (commandes récurrentes). Les informations concernant votre carte de paiement sont sécurisées et ne sont pas accessibles par le gérant de la boutique. Vous recevrez systématiquement une notification avant tout débit sur votre carte.
|
||||
saved_cards_popover: Voilà la liste des cartes de paiement que vous avez enregistrées. Votre carte par défaut sera automatiquement sélectionnée au moment de la finalisation d'une commande, et pourra être débitée par les magasins auxquels vous avez donné cette autorisation (voir à droite).
|
||||
authorised_shops: Comptoirs autorisés.
|
||||
authorised_shops_popover: Voilà la liste des comptoirs que vous avez autorisées à débiter votre carte de paiement par défaut dans le cadre de vos abonnements en cours (commandes récurrentes). Les informations concernant votre carte de paiement sont sécurisées et ne sont pas accessibles par le gérant de la boutique. Vous recevrez systématiquement une notification avant tout débit sur votre carte.
|
||||
saved_cards_popover: Voilà la liste des cartes de paiement que vous avez enregistrées. Votre carte par défaut sera automatiquement sélectionnée au moment de la finalisation d'une commande, et pourra être débitée par les comptoirs auxquels vous avez donné cette autorisation (voir à droite).
|
||||
authorised_shops:
|
||||
shop_name: "Nom de la boutique"
|
||||
allow_charges?: "Autoriser les prélèvements ?"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
nb:
|
||||
language_name: "Engelsk"
|
||||
language_name: "Norsk"
|
||||
activerecord:
|
||||
attributes:
|
||||
spree/order:
|
||||
@@ -195,6 +195,7 @@ nb:
|
||||
admin_and_handling: Admin & Håndtering
|
||||
profile: Profil
|
||||
supplier_only: Kun leverandør
|
||||
has_shopfront: Har Butikk
|
||||
weight: Vekt
|
||||
volume: Volum
|
||||
items: Elementer
|
||||
@@ -219,6 +220,7 @@ nb:
|
||||
password_confirmation: Passordbekreftelse
|
||||
reset_password_token: Tilbakestill passordtoken
|
||||
expired: er utløpt, vennligst be om en ny
|
||||
back_to_payments_list: "Tilbake til betalingsliste"
|
||||
actions:
|
||||
create_and_add_another: "Opprett og legg til en annen"
|
||||
admin:
|
||||
@@ -381,11 +383,11 @@ nb:
|
||||
code: Kode
|
||||
duplicate_code: "Denne koden er allerede brukt."
|
||||
bill_address: "Fakturaadresse"
|
||||
ship_address: "Leveringsstatus"
|
||||
ship_address: "Leveringsadresse"
|
||||
update_address_success: 'Adresse oppdatert.'
|
||||
update_address_error: 'Beklager! Vennligst skriv alle de obligatoriske feltene!'
|
||||
edit_bill_address: 'Rediger fakturaadresse'
|
||||
edit_ship_address: 'Rediger leveringsadresse'
|
||||
edit_ship_address: 'Rediger Leveringsadresse'
|
||||
required_fileds: 'Obligatoriske felt er merket med en stjerne'
|
||||
select_country: 'Velg Land'
|
||||
select_state: 'Velg Fylke'
|
||||
@@ -1153,9 +1155,9 @@ nb:
|
||||
menu_5_title: "Om"
|
||||
menu_5_url: "https://openfoodnetwork.org/ofn-local/open-food-network-scandinavia/"
|
||||
menu_6_title: "Koble til"
|
||||
menu_6_url: " "
|
||||
menu_6_url: "https://openfoodnetwork.org/au/connect/"
|
||||
menu_7_title: "Lære"
|
||||
menu_7_url: " "
|
||||
menu_7_url: "https://openfoodnetwork.org/au/learn/"
|
||||
logo: "Logo (640x130)"
|
||||
logo_mobile: "Mobil logo (75x26)"
|
||||
logo_mobile_svg: "Mobil logo (SVG)"
|
||||
@@ -2235,6 +2237,7 @@ nb:
|
||||
validation_msg_relationship_already_established: "^Den relasjonen er allerede etablert."
|
||||
validation_msg_at_least_one_hub: "^Minst én hub må være valgt"
|
||||
validation_msg_product_category_cant_be_blank: "^Produktkategori kan ikke være blank"
|
||||
validation_msg_tax: "^Avgiftskategori er påkrevd"
|
||||
validation_msg_tax_category_cant_be_blank: "^Avgiftskategori kan ikke være blank"
|
||||
validation_msg_is_associated_with_an_exising_customer: "er assosiert med en eksisterende kunde"
|
||||
content_configuration_pricing_table: "(TODO: Pristabell)"
|
||||
@@ -2598,14 +2601,21 @@ nb:
|
||||
bulk_coop_customer_payments: 'Bulk Co-op - Kunde Betalinger'
|
||||
users:
|
||||
index:
|
||||
listing_users: "Lister opp brukere"
|
||||
new_user: "Ny Bruker"
|
||||
user: "Bruker"
|
||||
enterprise_limit: "Bedriftsgrense"
|
||||
search: "Søk"
|
||||
email: "Epost"
|
||||
edit:
|
||||
editing_user: "Redigerer Bruker"
|
||||
back_to_users_list: "Tilbake til brukerlisten"
|
||||
general_settings: "Generelle innstillinger"
|
||||
form:
|
||||
email: "Epost"
|
||||
roles: "Roller"
|
||||
enterprise_limit: "Bedriftsgrense"
|
||||
confirm_password: "Bekreft Passord"
|
||||
password: "Passord"
|
||||
email_confirmation:
|
||||
confirmation_pending: "Epostbekreftelse venter. Vi har sendt en bekreftelses-epost til %{address}."
|
||||
|
||||
@@ -60,6 +60,9 @@ pt:
|
||||
user_passwords:
|
||||
spree_user:
|
||||
updated_not_active: "A sua palavra-passe foi redefinida, mas o seu email ainda não foi confirmado."
|
||||
models:
|
||||
order_cycle:
|
||||
cloned_order_cycle_name: "CÓPIA DE%{order_cycle}"
|
||||
enterprise_mailer:
|
||||
confirmation_instructions:
|
||||
subject: "Por favor confirme o endereço de email de %{enterprise}"
|
||||
@@ -67,9 +70,26 @@ pt:
|
||||
subject: "%{enterprise} está agora em %{sitename}"
|
||||
invite_manager:
|
||||
subject: "%{enterprise} convidou-o/a para gestor/a"
|
||||
order_mailer:
|
||||
cancel_email:
|
||||
dear_customer: "Caro Consumidor,"
|
||||
instructions: "A sua encomenda foi cancelada. Por favor guarde está informação para seu registo."
|
||||
order_summary_canceled: "Sumário de Encomenda [CANCELADA]"
|
||||
subject: "Cancelamento de Encomenda"
|
||||
subtotal: "Subtotal: %{subtotal}"
|
||||
total: "Total da Encomenda: %{total}"
|
||||
producer_mailer:
|
||||
order_cycle:
|
||||
subject: "Relatório de ciclo de encomendas de %{producer}"
|
||||
shipment_mailer:
|
||||
shipped_email:
|
||||
dear_customer: "Caro Consumidor,"
|
||||
instructions: "A sua encomenda foi enviada"
|
||||
shipment_summary: "Sumário de Envio"
|
||||
subject: "Notificação de Envio"
|
||||
thanks: "Obrigado."
|
||||
track_information: "Informação de envio: %{tracking}"
|
||||
track_link: "Link de envio: %{url}"
|
||||
subscription_mailer:
|
||||
placement_summary_email:
|
||||
subject: Um resumo das encomendas de subscrição feitas recentemente
|
||||
@@ -170,6 +190,7 @@ pt:
|
||||
admin_and_handling: Administração & Logística
|
||||
profile: Perfil
|
||||
supplier_only: Só Fornecedor
|
||||
has_shopfront: Tem Loja
|
||||
weight: Peso
|
||||
volume: Volume
|
||||
items: Itens
|
||||
@@ -191,6 +212,10 @@ pt:
|
||||
quantity: Quantidade
|
||||
pick_up: Levantamento
|
||||
copy: Copiar
|
||||
password_confirmation: Confirmação de Palavra-passe
|
||||
reset_password_token: Redefinir palavra-passe
|
||||
expired: expirou, por favor peça uma nova
|
||||
back_to_payments_list: "Voltar à lista de pagamentos"
|
||||
actions:
|
||||
create_and_add_another: "Criar e acrescentar outro"
|
||||
admin:
|
||||
@@ -336,6 +361,13 @@ pt:
|
||||
charges_enabled_warning: "Aviso: As taxas não estão activas para a sua conta"
|
||||
auth_fail_error: A chave da API que indicou não é válida
|
||||
empty_api_key_error_html: Não foi fornecida nenhuma chave de API Stripe. Para definir a sua chave de API, por favor siga <a href="https://github.com/openfoodfoundation/openfoodnetwork/wiki/Setting-up-Stripe-on-an-OFN-instance" target="_blank">estas instruções</a>
|
||||
matomo_settings:
|
||||
edit:
|
||||
title: "Configurações Matomo"
|
||||
matomo_url: "URL Matomo"
|
||||
matomo_site_id: "Site ID Matomo"
|
||||
info_html: "Matomo é uma ferramenta de análise web e mobile. Pode instalar o Matomo no seu servidor ou utilizar um serviço na cloud. Veja <a href='http://matomo.org' target='_blank'>matomo.org</a> para mais informações."
|
||||
config_instructions_html: "Aqui pode configurar a integração com Matomo. O URL Matomo em baixo deve apontar para o serviror para onde a informação de tracking de utilizadores será enviada; se deixado vazio, o tracking de utilizadores através do Matomo ficará desactivado. O campo Site ID não é obrigatório mas útil se estive a fazer tracking de mais do que um website numa instância única do Matomo; pode ser encontrado na consola da instância Matomo."
|
||||
customers:
|
||||
index:
|
||||
add_customer: "Adicionar Consumidor/a"
|
||||
@@ -358,6 +390,7 @@ pt:
|
||||
update_address: 'Actualizar Morada'
|
||||
confirm_delete: 'De certeza que é para apagar? '
|
||||
search_by_email: "Pesquisar por e-mail/código"
|
||||
guest_label: 'Finalizar compra como convidado'
|
||||
destroy:
|
||||
has_associated_orders: 'Não foi possível apagar: o/a consumidor/a tem encomendas associadas a esta loja.'
|
||||
contents:
|
||||
@@ -368,6 +401,7 @@ pt:
|
||||
producer_signup_page: Página de registo de Produtor/a
|
||||
hub_signup_page: Página de registo de Hub
|
||||
group_signup_page: Página de registo de Grupo
|
||||
main_links: Links do Menu Principal
|
||||
footer_and_external_links: Rodapé e Ligações Externas
|
||||
your_content: O seu conteúdo
|
||||
user_guide: Manual do Utilizador
|
||||
@@ -425,17 +459,23 @@ pt:
|
||||
conditional_blank: não pode ser vazio se tipo de unidade é vazio
|
||||
no_product: não foram encontrados produtos
|
||||
not_found: não encontrado
|
||||
not_updatable: não pode ser actualizado em produtos existentes através da importação de produtos
|
||||
blank: não pode ser vazio
|
||||
products_no_permission: não tem permissões para gerir produtos desta organização
|
||||
inventory_no_permission: não tem permissões para criar inventário para este produtor
|
||||
none_saved: não gravou nenhum produto com sucesso
|
||||
line_number: "Linha %{number}:"
|
||||
index:
|
||||
select_file: Selecione uma folha de cálculo para carregar
|
||||
spreadsheet: Folha de cálculo
|
||||
import_into: Tipo de importação
|
||||
product_list: Lista de produtos
|
||||
inventories: Inventários
|
||||
import: Importar
|
||||
upload: Carregar
|
||||
product_categories: Categorias de Produtos
|
||||
tax_categories: Categorias de Impostos
|
||||
shipping_categories: Categorias de Envio
|
||||
import:
|
||||
review: Rever
|
||||
import: Importar
|
||||
@@ -584,7 +624,7 @@ pt:
|
||||
preferred_product_selection_from_inventory_only_no: Novos produtos têm de ser adicionados ao meu inventário antes de serem colocados na minha loja
|
||||
payment_methods:
|
||||
name: Nome
|
||||
applies: Aplica?
|
||||
applies: Aplicável?
|
||||
manage: Gerir métodos de pagamento
|
||||
not_method_yet: Não tem nenhum método de pagamento.
|
||||
create_button: Criar Novo Método de Pagamento
|
||||
@@ -613,13 +653,13 @@ pt:
|
||||
link_to_front_tip: Um link direto para a sua loja no Open Food Network.
|
||||
shipping_methods:
|
||||
name: Nome
|
||||
applies: Aplica?
|
||||
applies: Aplicável?
|
||||
manage: Gerir Métodos de Envio
|
||||
create_button: Criar Nova Forma de Envio
|
||||
create_one_button: Criar um agora
|
||||
no_method_yet: Ainda não tem nenhuma forma de envio.
|
||||
shop_preferences:
|
||||
shopfront_requires_login: "Mercado visível publicamente?"
|
||||
shopfront_requires_login: "Loja visível publicamente?"
|
||||
shopfront_requires_login_tip: "Escolha se os consumidores vão precisar de fazer login para ver a loja, ou se esta estará visível para toda a gente."
|
||||
shopfront_requires_login_false: "Público"
|
||||
shopfront_requires_login_true: "Visível somente para consumidores registados"
|
||||
@@ -647,7 +687,7 @@ pt:
|
||||
da sua 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
|
||||
shopfront_category_ordering: Ordem das Categorias da Loja
|
||||
open_date: Dia de Abertura
|
||||
close_date: Data de fecho
|
||||
social:
|
||||
@@ -1055,11 +1095,17 @@ pt:
|
||||
menu_1_title: "Lojas"
|
||||
menu_1_url: "/shops"
|
||||
menu_2_title: "Mapa"
|
||||
menu_2_url: "/map"
|
||||
menu_3_title: "Produtores"
|
||||
menu_3_url: "/producers"
|
||||
menu_4_title: "Grupos"
|
||||
menu_4_url: "/groups"
|
||||
menu_5_title: "Sobre"
|
||||
menu_5_url: "http://www.openfoodnetwork.org/"
|
||||
menu_6_title: "Conectar"
|
||||
menu_6_url: "https://openfoodnetwork.org"
|
||||
menu_7_title: "Aprender"
|
||||
menu_7_url: "https://openfoodnetwork.org"
|
||||
logo: "Logo (640x130)"
|
||||
logo_mobile: "logo mobile (75x26)"
|
||||
logo_mobile_svg: "Logo mobile (svg)"
|
||||
@@ -1398,7 +1444,7 @@ pt:
|
||||
modal_how: "Como funciona"
|
||||
modal_how_shop: Compre na Open Food Network
|
||||
modal_how_shop_explained: Procure por um mercado próximo e comece as suas compras! Em cada mercado pode ver, em detalhe, quais os produtos que são oferecidos (só pode comprar num mercado de cada vez).
|
||||
modal_how_pickup: 'Custos de coleta e entrega. '
|
||||
modal_how_pickup: 'Custos de levantamento e entrega. '
|
||||
modal_how_pickup_explained: Alguns mercados entregam em sua casa, outros oferecem um local para que levante os produtos. É possível ver quais as opções que estão disponíveis no perfil individual de cada um, e fazer a sua escolha no momento do checkout. Provavelmente será cobrada uma taxa de entrega, que pode variar de mercado para mercado.
|
||||
modal_how_more: Saiba mais
|
||||
modal_how_more_explained: "Para saber mais sobre a Open Food Network, como funciona, e participar, visite:"
|
||||
@@ -1752,6 +1798,7 @@ pt:
|
||||
you_have_no_orders_yet: "Ainda não tem encomendas"
|
||||
running_balance: "Saldo corrente"
|
||||
outstanding_balance: "Saldo pendente"
|
||||
admin_enterprise_relationships: "Permissões das Organizações"
|
||||
admin_enterprise_relationships_everything: "Tudo"
|
||||
admin_enterprise_relationships_permits: "permite"
|
||||
admin_enterprise_relationships_seach_placeholder: "Procurar"
|
||||
@@ -1844,11 +1891,11 @@ pt:
|
||||
spree_admin_overview_check_your_inbox: "Por favor, verifique a sua caixa de correio para mais instruções. Obrigada!"
|
||||
spree_admin_unit_value: Valor Unitário
|
||||
spree_admin_unit_description: Descrição Unitária
|
||||
spree_admin_variant_unit: Unidade variante
|
||||
spree_admin_variant_unit: Unidade da Variante
|
||||
spree_admin_variant_unit_scale: Escala de unidade variante
|
||||
spree_admin_supplier: Fornecedor
|
||||
spree_admin_product_category: Categoria de Produto
|
||||
spree_admin_variant_unit_name: Nome de unidade variante
|
||||
spree_admin_variant_unit_name: Nome da Unidade da Variante
|
||||
change_package: "Modificar Embalagem"
|
||||
spree_admin_single_enterprise_hint: "Dica: Para permitir que as pessoas te encontrem, ative sua visibilidade em"
|
||||
spree_admin_eg_pickup_from_school: "ex: \"Levantar na Escola Primária\""
|
||||
@@ -1875,6 +1922,7 @@ pt:
|
||||
edit_profile_details_etc: "Modificar o seu perfil: descrição, imagem, etc."
|
||||
order_cycle: "Ciclo de Encomendas"
|
||||
order_cycles: "Ciclos de Encomendas"
|
||||
enterprise_relationships: "Permissões das organizações"
|
||||
remove_tax: "Remover imposto"
|
||||
enterprise_tos_link: "Ligação para Termos de Serviço da Organização"
|
||||
enterprise_tos_message: "Queremos trabalhar com pessoas que partilham os nossos objectivos e valores. Por isso pedimos às organizações novas que concordem com os nossos"
|
||||
@@ -2023,7 +2071,7 @@ pt:
|
||||
report_header_product_total_price: "Total do Produto (%{currency})"
|
||||
report_header_shipping_total_price: "Total do Envio (%{currency})"
|
||||
report_header_outstanding_balance_price: "Saldo pendente (%{currency})"
|
||||
report_header_eft_price: "EFT (%{currency})"
|
||||
report_header_eft_price: "Transferência (%{currency})"
|
||||
report_header_paypal_price: "Paypal (%{currency})"
|
||||
report_header_sku: SKU
|
||||
report_header_amount: Quantia
|
||||
@@ -2044,7 +2092,7 @@ pt:
|
||||
report_header_total_taxable_produce: Total tributável de produtos (inclui impostos)
|
||||
report_header_total_untaxable_fees: Total não tributável de taxas (sem impostos)
|
||||
report_header_total_taxable_fees: Total tributável de taxas (com impostos)
|
||||
report_header_delivery_shipping_cost: Custo de Envio e Entrega (inclui impostos)
|
||||
report_header_delivery_shipping_cost: Custo de Envio (inclui impostos)
|
||||
report_header_transaction_fee: Taxa de transacção (sem impostos)
|
||||
report_header_total_untaxable_admin: Total de ajustes de administração não taxáveis (sem impostos)
|
||||
report_header_total_taxable_admin: Total de ajustes de administração taxáveis (inclui impostos)
|
||||
@@ -2083,7 +2131,7 @@ pt:
|
||||
payment_methods: "Métodos de Pagamento"
|
||||
payment_method_fee: "Taxa de transação"
|
||||
inventory_settings: "Configurações de Inventário"
|
||||
tag_rules: "Regras para tag"
|
||||
tag_rules: "Regras para Etiquetas"
|
||||
shop_preferences: "Preferências da Loja"
|
||||
enterprise_fee_whole_order: Encomenda completa
|
||||
enterprise_fee_by: "Taxa %{type} por %{role}%{enterprise_name}"
|
||||
@@ -2167,7 +2215,7 @@ pt:
|
||||
title: Regras de Etiquetas
|
||||
overview: Visão geral
|
||||
overview_text: >
|
||||
As regras de tag permitem descrever quais os itens que são visíveis
|
||||
As regras de etiquetas 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...'"
|
||||
@@ -2345,11 +2393,19 @@ pt:
|
||||
admin:
|
||||
orders:
|
||||
index:
|
||||
listing_orders: "Lista de Encomendas"
|
||||
new_order: "Nova Encomenda"
|
||||
capture: "Capturar"
|
||||
ship: "Enviar"
|
||||
edit: "Editar"
|
||||
note: "Nota"
|
||||
first: "Primeiro"
|
||||
last: "Último"
|
||||
previous: "Anterior"
|
||||
next: "Seguinte"
|
||||
loading: "A carregar"
|
||||
no_orders_found: "Nenhuma encomenda encontrada"
|
||||
viewing: "A ver de %{start}a %{end}."
|
||||
invoice:
|
||||
issued_on: Emitido em
|
||||
tax_invoice: FACTURA FISCAL
|
||||
@@ -2377,13 +2433,18 @@ pt:
|
||||
stripe_disabled_msg: Os pagamentos por Stripe foram desactivados pelo administrador de sistema.
|
||||
request_failed_msg: Pedimos desculpa. Algo correu mal quando tentámos verificar os detalhes de conta com o Stripe...
|
||||
account_missing_msg: 'Não existem contas Stripe associadas a esta organização. '
|
||||
connect_one: Ligar Uma
|
||||
connect_one: Ligar
|
||||
access_revoked_msg: O acesso a esta conta Stripe foi revogado, por favor volte a ligar a sua conta.
|
||||
status: Estado
|
||||
connected: Ligado
|
||||
account_id: ID de Conta
|
||||
business_name: Nome do Negócio
|
||||
charges_enabled: Taxas activas
|
||||
payments:
|
||||
source_forms:
|
||||
stripe:
|
||||
error_saving_payment: Erro a gravar pagamento
|
||||
submitting_payment: A submeter pagamento...
|
||||
products:
|
||||
new:
|
||||
title: 'Novo Produto'
|
||||
@@ -2417,6 +2478,8 @@ pt:
|
||||
display_as:
|
||||
display_as: Mostrar como
|
||||
reports:
|
||||
table:
|
||||
select_and_search: "Selecione os filtros e click em Pesquisar para obter resultados."
|
||||
bulk_coop:
|
||||
bulk_coop_supplier_report: 'Cooperativa por Atacado - Totais por Fornecedor'
|
||||
bulk_coop_allocation: 'Cooperativa por Atacado - Alocação'
|
||||
@@ -2424,20 +2487,31 @@ pt:
|
||||
bulk_coop_customer_payments: 'Cooperativa por Atacado - Pagamentos do Consumidor'
|
||||
users:
|
||||
index:
|
||||
listing_users: "Lista de Utilizadores"
|
||||
new_user: "Novo Utilizador"
|
||||
user: "Utilizador"
|
||||
enterprise_limit: "Limite da Organização"
|
||||
search: "Procurar"
|
||||
email: "Email"
|
||||
edit:
|
||||
editing_user: "Editar Utilizador"
|
||||
back_to_users_list: "Voltar à lista de utilizadores"
|
||||
general_settings: "Configurações Gerais"
|
||||
form:
|
||||
email: "Email"
|
||||
roles: "Papeis"
|
||||
enterprise_limit: "Limite da Organização"
|
||||
confirm_password: "Confirme a palavra-passe"
|
||||
password: "Palavra-passe"
|
||||
email_confirmation:
|
||||
confirmation_pending: "A confirmação de email está pendente. Enviamos um email de confirmação para %{address}"
|
||||
variants:
|
||||
autocomplete:
|
||||
producer_name: Produtor
|
||||
general_settings:
|
||||
edit:
|
||||
legal_settings: "Configurações Legais"
|
||||
privacy_policy_url: "URL da Politíca de Privacidade"
|
||||
enterprises_require_tos: "As organizações têm de aceitar os Termos de Serviço"
|
||||
footer_tos_url: "URL dos Termos de Serviço"
|
||||
checkout:
|
||||
@@ -2453,6 +2527,8 @@ pt:
|
||||
js_format: 'aa-mm-dd'
|
||||
inventory: Inventário
|
||||
orders:
|
||||
edit:
|
||||
login_to_view_order: "Por favor faça login para ver a sua encomenda."
|
||||
bought:
|
||||
item: "Já encomendou neste ciclo"
|
||||
order_mailer:
|
||||
@@ -2546,5 +2622,10 @@ pt:
|
||||
saved_cards:
|
||||
default?: Por defeito?
|
||||
delete?: Apagar?
|
||||
cards:
|
||||
authorised_shops: Lojas Autorizadas
|
||||
authorised_shops:
|
||||
shop_name: "Nome da Loja"
|
||||
allow_charges?: "Permitir Taxas?"
|
||||
localized_number:
|
||||
invalid_format: tem um formato inválido. Por favor introduza um número.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
sv:
|
||||
language_name: "English"
|
||||
language_name: "Svenska"
|
||||
activerecord:
|
||||
attributes:
|
||||
spree/order:
|
||||
|
||||
@@ -24,6 +24,8 @@ module Api
|
||||
create(:order, order_cycle: order_cycle, state: 'complete', completed_at: Time.zone.now,
|
||||
distributor: distributor, billing_address: create(:address) )
|
||||
end
|
||||
let!(:order4) { create(:completed_order_with_fees) }
|
||||
let!(:order5) { create(:order, state: 'cart', completed_at: nil) }
|
||||
let!(:line_item1) do
|
||||
create(:line_item_with_shipment, order: order1,
|
||||
product: create(:product, supplier: supplier))
|
||||
@@ -119,6 +121,24 @@ module Api
|
||||
end
|
||||
end
|
||||
|
||||
context 'using search filters' do
|
||||
before do
|
||||
allow(controller).to receive(:spree_current_user) { admin_user }
|
||||
end
|
||||
|
||||
it 'can show only completed orders' do
|
||||
get :index, format: :json, q: { completed_at_not_null: true, s: 'created_at desc' }
|
||||
|
||||
expect(json_response['orders']).to eq serialized_orders([order4, order3, order2, order1])
|
||||
end
|
||||
|
||||
it 'can show only unfulfilled orders' do
|
||||
get :index, format: :json, q: { inventory_units_shipment_id_null: true, s: 'created_at desc' }
|
||||
|
||||
expect(json_response['orders']).to eq serialized_orders([order3, order2, order1])
|
||||
end
|
||||
end
|
||||
|
||||
context 'with pagination' do
|
||||
before do
|
||||
allow(controller).to receive(:spree_current_user) { distributor.owner }
|
||||
@@ -128,7 +148,7 @@ module Api
|
||||
get :index, per_page: 15, page: 1
|
||||
|
||||
pagination_data = {
|
||||
'results' => 2,
|
||||
'results' => 3,
|
||||
'pages' => 1,
|
||||
'page' => 1,
|
||||
'per_page' => 15
|
||||
@@ -141,6 +161,16 @@ module Api
|
||||
|
||||
private
|
||||
|
||||
def serialized_orders(orders)
|
||||
serialized_orders = ActiveModel::ArraySerializer.new(
|
||||
orders,
|
||||
each_serializer: Api::Admin::OrderSerializer,
|
||||
root: false
|
||||
)
|
||||
|
||||
JSON.parse(serialized_orders.to_json)
|
||||
end
|
||||
|
||||
def returns_orders(response)
|
||||
keys = response['orders'].first.keys.map(&:to_sym)
|
||||
expect(order_attributes.all?{ |attr| keys.include? attr }).to be_truthy
|
||||
|
||||
@@ -225,11 +225,14 @@ describe CheckoutController, type: :controller do
|
||||
|
||||
describe "Paypal routing" do
|
||||
let(:payment_method) { create(:payment_method, type: "Spree::Gateway::PayPalExpress") }
|
||||
let(:restart_checkout) { instance_double(RestartCheckout, call: true) }
|
||||
|
||||
before do
|
||||
allow(controller).to receive(:current_distributor) { distributor }
|
||||
allow(controller).to receive(:current_order_cycle) { order_cycle }
|
||||
allow(controller).to receive(:current_order) { order }
|
||||
allow(controller).to receive(:restart_checkout)
|
||||
|
||||
allow(RestartCheckout).to receive(:new) { restart_checkout }
|
||||
end
|
||||
|
||||
it "should check the payment method for Paypalness if we've selected one" do
|
||||
@@ -241,58 +244,19 @@ describe CheckoutController, type: :controller do
|
||||
end
|
||||
|
||||
describe "#update_failed" do
|
||||
let(:restart_checkout) { instance_double(RestartCheckout, call: true) }
|
||||
|
||||
before do
|
||||
controller.instance_variable_set(:@order, order)
|
||||
allow(RestartCheckout).to receive(:new) { restart_checkout }
|
||||
end
|
||||
|
||||
it "clears the shipping address and restarts the checkout" do
|
||||
expect(controller).to receive(:clear_ship_address)
|
||||
expect(controller).to receive(:restart_checkout)
|
||||
expect(restart_checkout).to receive(:call)
|
||||
expect(controller).to receive(:respond_to)
|
||||
|
||||
controller.send(:update_failed)
|
||||
end
|
||||
end
|
||||
|
||||
describe "#restart_checkout" do
|
||||
let!(:shipment_pending) { create(:shipment, order: order, state: 'pending') }
|
||||
let!(:payment_checkout) { create(:payment, order: order, state: 'checkout') }
|
||||
let!(:payment_failed) { create(:payment, order: order, state: 'failed') }
|
||||
|
||||
before do
|
||||
order.shipments << shipment_pending
|
||||
order.save
|
||||
controller.instance_variable_set(:@order, order.reload)
|
||||
end
|
||||
|
||||
context "when the order is already in the 'cart' state" do
|
||||
it "does nothing" do
|
||||
expect(order).to_not receive(:restart_checkout!)
|
||||
controller.send(:restart_checkout)
|
||||
end
|
||||
end
|
||||
|
||||
context "when the order is in a subsequent state" do
|
||||
before do
|
||||
order.update_attribute(:state, "payment")
|
||||
end
|
||||
|
||||
# NOTE: at the time of writing, it was not possible to create a shipment with a state other than
|
||||
# 'pending' when the order has not been completed, so this is not a case that requires testing.
|
||||
it "resets the order state, and clears incomplete shipments and payments" do
|
||||
expect(order).to receive(:restart_checkout!).and_call_original
|
||||
expect(order.shipping_method_id).to_not be nil
|
||||
expect(order.shipments.count).to be 1
|
||||
expect(order.adjustments.shipping.count).to be 1
|
||||
expect(order.payments.count).to be 2
|
||||
expect(order.adjustments.payment_fee.count).to be 2
|
||||
controller.send(:restart_checkout)
|
||||
expect(order.reload.state).to eq 'cart'
|
||||
expect(order.shipping_method_id).to be nil
|
||||
expect(order.shipments.count).to be 0
|
||||
expect(order.adjustments.shipping.count).to be 0
|
||||
expect(order.payments.count).to be 1
|
||||
expect(order.adjustments.payment_fee.count).to be 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
39
spec/services/restart_checkout_spec.rb
Normal file
39
spec/services/restart_checkout_spec.rb
Normal file
@@ -0,0 +1,39 @@
|
||||
require 'spec_helper'
|
||||
|
||||
describe RestartCheckout do
|
||||
let(:order) { create(:order) }
|
||||
|
||||
describe "#call" do
|
||||
context "when the order is already in the 'cart' state" do
|
||||
it "does nothing" do
|
||||
expect(order).to_not receive(:restart_checkout!)
|
||||
RestartCheckout.new(order).call
|
||||
end
|
||||
end
|
||||
|
||||
context "when the order is in a subsequent state" do
|
||||
let!(:shipment_pending) { create(:shipment, order: order, state: 'pending') }
|
||||
let!(:payment_checkout) { create(:payment, order: order, state: 'checkout') }
|
||||
let!(:payment_failed) { create(:payment, order: order, state: 'failed') }
|
||||
|
||||
before do
|
||||
order.shipping_method_id = shipment_pending.shipping_method_id
|
||||
order.update_attribute(:state, "payment")
|
||||
end
|
||||
|
||||
# NOTE: at the time of writing, it was not possible to create a shipment
|
||||
# with a state other than 'pending' when the order has not been
|
||||
# completed, so this is not a case that requires testing.
|
||||
it "resets the order state, and clears incomplete shipments and payments" do
|
||||
RestartCheckout.new(order).call
|
||||
|
||||
expect(order.state).to eq 'cart'
|
||||
expect(order.shipping_method_id).to eq nil
|
||||
expect(order.shipments.count).to eq 0
|
||||
expect(order.adjustments.shipping.count).to eq 0
|
||||
expect(order.payments.count).to eq 1
|
||||
expect(order.adjustments.payment_fee.count).to eq 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user