Compare commits

...

48 Commits

Author SHA1 Message Date
Maikel Linke
3c3c3394a5 Add spanish translations manually
A change in the Transifex API made the automated commit fail. Hence
doing it manually here.
2017-07-12 11:30:47 +10:00
Transifex-Openfoodnetwork
5b3816fa9e Updating translations for config/locales/fr.yml [skip ci] 2017-07-01 16:17:12 +10:00
Transifex-Openfoodnetwork
3507bae002 Updating translations for config/locales/nb.yml [skip ci] 2017-06-30 17:54:18 +10:00
Maikel Linke
b7f99c3185 Merge branch 'transifex' 2017-06-30 16:28:08 +10:00
Rob Harrington
ce85027b79 Update rubocop_todo.yml using rubocop 0.49.1 2017-06-29 10:47:56 +10:00
Rob Harrington
94b6a61665 Bump rubocop to latest version (0.49.1) 2017-06-29 10:47:56 +10:00
Rob Harrington
f84acf44f3 Disable scss-lint for CodeClimate
Until we can tweak #1393 to work with CodeClimate
2017-06-28 18:09:03 +10:00
Diogo Matsubara
386d651678 Fix #1611 (Rephrase error message for people logging in with an existing user email)
update test to use new rspec syntax
2017-06-28 15:35:21 +10:00
Matt-Yorkley
23a6e2dd8f Changed modal redirect behaviour 2017-06-28 14:35:17 +10:00
Transifex-Openfoodnetwork
6c69eebcbf Updating translations for config/locales/nb.yml [skip ci] 2017-06-27 05:41:31 +10:00
Rob Harrington
d8a158c56d Rubocop: Update comment on Rails/DynamicFindBy, justifying Enabled: false 2017-06-24 13:37:47 +10:00
Rob Harrington
dfda30f4cb Rubocop: Regenerate rubocop_todo.yml using --exclude-limit 100 2017-06-24 13:33:57 +10:00
Rob Harrington
d26970d04c Rubocop: Move Style/ClassAndModuleChildren back to rubocop_todo.yml 2017-06-24 12:59:03 +10:00
Transifex-Openfoodnetwork
63e453e2c7 Updating translations for config/locales/fr.yml [skip ci] 2017-06-23 18:09:39 +10:00
Rob Harrington
c7ed27286a Rubocop: Correct Lint/ParenthesesAsGroupedExpression offences 2017-06-23 17:02:20 +10:00
Rob Harrington
e5340cb53a Rubocop: Correct Lint/UselessAssignment offences, disable for /spec in main config 2017-06-23 16:49:08 +10:00
Rob Harrington
7079952f6b Add rubocop to development group in gemfile 2017-06-23 16:49:08 +10:00
Rob Harrington
f79dcaba15 Rubocop: Add Rails cops to config and todo 2017-06-23 16:49:08 +10:00
Rob Harrington
33a1d97d5e Rubocop: Disable Style/ClassAndModuleChildren in main config 2017-06-23 16:49:08 +10:00
Rob Harrington
28ea23965b Rubocop: Correct Lint/AmbiguousOperator offences 2017-06-23 16:49:08 +10:00
Rob Harrington
fbdbbb980f Rubocop: Disable Lint/AmbiguousBlockAssociation in main config 2017-06-23 16:49:08 +10:00
Rob Harrington
fc5b339e2a Rubocop: Correct Lint/DuplicateMethods offences 2017-06-23 16:49:08 +10:00
Rob Harrington
4acb3f1962 Rubocop: Use Relaxed.Ruby.Style as starting point for settings
Updated .rubocop_todo.yml
2017-06-23 16:49:08 +10:00
Rob Harrington
7bb58342fc Rubocop: Auto-correct Style/EmptyLineBetweenDefs offences 2017-06-23 16:49:08 +10:00
Rob Harrington
b277ff03ea Rubocop: Auto-correct Style/TrailingBlankLines offences 2017-06-23 16:49:07 +10:00
Rob Harrington
5061d0c4cd Rubocop: Tweak config, and add todo file 2017-06-23 16:49:07 +10:00
Continuous Integration
931a5be162 Merge remote-tracking branch 'origin/master' into HEAD 2017-06-22 13:19:25 +10:00
Maikel Linke
e437cba155 Make style flexible for all sizes of logos
Trying to support logos that are big. But logos that are too small
should not be stretched either, better small than ugly.

Remove static size declaration from HTML template since it doesn't
reflect the logo size.

Unfortunately, there are other CSS files that are in conflict. The file
mail/email.css.scss defines this globally:

    img {
      max-width: 100%;
    }
2017-06-16 16:49:43 +10:00
Maikel Linke
ec53d9df7a Merge tag 'v1.8.11' into transifex 2017-06-15 09:59:59 +10:00
Maikel Linke
3330e9b219 Init registration form with default country 2017-06-14 16:47:02 +10:00
Maikel Linke
884743ce97 Filter countries without states for registration 2017-06-14 16:47:01 +10:00
Maikel Linke
b482d1e57c Spec current behaviour of country selector
The enterprise sign-up form shows invalid countries without states and
does not choose the default country. See:

https://github.com/openfoodfoundation/openfoodnetwork/issues/1330
2017-06-14 16:47:01 +10:00
Maikel Linke
78f5002be5 Separate variant names by spaces
To enable the search for the beginning of a variant name, they need to
be separated.

See: https://github.com/openfoodfoundation/openfoodnetwork/pull/1545
2017-06-14 16:37:46 +10:00
Maikel Linke
a42799dff4 Initialise product.variant_names
Not initialising `product.variant_names` causes it to become the string
"undefinedVariant1Variant2" while it should just be "Variant1Variant2".

This mistake did not matter when `variant_names` was just used to search
for a sub-string. A recent change to search only for the beginning of a
word, caused this to fail.

See: https://github.com/openfoodfoundation/openfoodnetwork/pull/1545
2017-06-14 16:28:55 +10:00
Maikel Linke
1196cd7df4 Add style guide to the source locale
There has been a lack of rules how to structure our locale en.yml. This
is a start to document some guidelines which can evolve over time.

Rules can be discussed in the community forum or in pull requests. Once
there is a strong agreement, we should add it to this guide.
2017-06-14 15:20:01 +10:00
Enrico Stano
3c1eae1f47 Do not blindly clear the whole Rails cache 2017-06-09 10:32:57 +10:00
Matt-Yorkley
ba27d63f9c Fix logo sizing 2017-06-06 13:59:42 +01:00
Julius Pabrinkis
0083733c4c #1471 Do no let long producers' name go under icon 2017-06-02 16:29:43 +10:00
Julius Pabrinkis
a1ffc869f3 Refactor code by suggestion to use RegExp and add tests coverage 2017-06-02 15:42:35 +10:00
Rhodri Karim
7a07e8fa16 Issue 1233: product filter should only match if name begins withs search term 2017-06-02 15:42:35 +10:00
enricostano
699da16049 Remove unused spec support method 2017-05-31 15:22:30 +10:00
Transifex-Openfoodnetwork
110f74eee8 Updating translations for config/locales/es.yml [skip ci] 2017-05-12 20:49:15 +10:00
Transifex-Openfoodnetwork
6eafed00f5 Updating translations for config/locales/fr.yml [skip ci] 2017-05-05 21:35:28 +10:00
Transifex-Openfoodnetwork
74661c0b77 Updating translations for config/locales/nb.yml [skip ci] 2017-05-05 18:10:25 +10:00
Maikel Linke
95ddfc4e40 Merge tag 'v1.8.10' into transifex 2017-05-05 12:28:16 +10:00
Transifex-Openfoodnetwork
6a5e4bb592 Updating translations for config/locales/sv.yml [skip ci] 2017-04-30 23:38:53 +10:00
Transifex-Openfoodnetwork
507e12adba Updating translations for config/locales/fr.yml [skip ci] 2017-04-20 22:05:19 +10:00
Transifex-Openfoodnetwork
5fa45c0716 Updating translations for config/locales/es.yml [skip ci] 2017-04-08 01:22:10 +10:00
131 changed files with 3690 additions and 514 deletions

View File

@@ -1,11 +1,8 @@
engines:
rubocop:
enabled: true
exclude_fingerprints:
- ac41db8d4ec4cbf508c353d9b65a024f
- 8e3b6322aef5be9f38700b3fd0cd347e
scss-lint:
enabled: true
enabled: false
ratings:
paths:
- app/**

View File

@@ -1,4 +1,9 @@
inherit_from:
- .rubocop_todo.yml
AllCops:
TargetRubyVersion: 2.1
TargetRailsVersion: 3.2
Include:
- '**/Rakefile'
- '**/config.ru'
@@ -6,24 +11,163 @@ AllCops:
- 'db/**/*'
- 'config/**/*'
- 'script/**/*'
- 'spec/**/*'
- !ruby/regexp /old_and_unused\.rb$/
Documentation:
# OFN SETTINGS
# Cop settings that have been agreed upon by the OFN community
Rails:
Enabled: true
Style/Documentation:
Enabled: false
Style/EmptyLinesAroundClassBody:
Style/StringLiterals:
Enabled: false
Style/BracesAroundHashParameters:
# TEMPORARY/CONTESTED SETTINGS
# These are still to be decided upon, but recommended for inclusion by
# oeoeaio after scrutinising offenses the codebase
# Don't think this is a big issue, mostly picking up RPSEC scope definitions
# with lamdas and RSpec '.to change{}' blocks
Lint/AmbiguousBlockAssociation:
Enabled: false
# Heaps of offences (> 100) in specs, mostly in situations where two or more
# instances of a model are required, but only one is referenced. Difficult to
# fix without making the spec look messy or rewriting it.
# Should definitely fix at some point.
Lint/UselessAssignment:
Exclude:
- spec/**/*
# AFAIK, there is no good alternative to dynamic matchers until we upgrade
# to Rails 4 and can use #find_by. If there is a better approach, let's do it.
Rails/DynamicFindBy:
Enabled: false
# This should be the programmer's discretion, perhaps we should review all of
# the uses of it an make specific exceptions though.
Rails/SkipsModelValidations:
Enabled: false
# Relaxed.Ruby.Style SETTINGS
# These styles are a starting point for the conversation around conventions
# They should be removed or tweaked and moved above as decisions are made
# NOTE: Cops which did not fail at the time of writing were removed
Layout/DotPosition:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styledotposition
Layout/SpaceBeforeBlockBraces:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylespacebeforeblockbraces
Layout/SpaceInsideParens:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylespaceinsideparens
Style/Alias:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylealias
Style/BlockDelimiters:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleblockdelimiters
Style/CommentAnnotation:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylecommentannotation
Style/DoubleNegation:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styledoublenegation
Style/FormatString:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleformatstring
Style/IfUnlessModifier:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleifunlessmodifier
Style/Lambda:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylelambda
Style/MultilineBlockChain:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylemultilineblockchain
Style/NegatedIf:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylenegatedif
Style/NegatedWhile:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylenegatedwhile
Style/ParallelAssignment:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styleparallelassignment
Style/PercentLiteralDelimiters:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylepercentliteraldelimiters
Style/Semicolon:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylesemicolon
Style/SingleLineMethods:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylesinglelinemethods
Style/TrailingCommaInArguments:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styletrailingcommainarguments
Style/TrailingCommaInLiteral:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#styletrailingcommainliteral
Style/WordArray:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#stylewordarray
Lint/AmbiguousRegexpLiteral:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#lintambiguousregexpliteral
Lint/AssignmentInCondition:
Enabled: false
StyleGuide: http://relaxed.ruby.style/#lintassignmentincondition
Metrics/AbcSize:
Enabled: false
Metrics/BlockNesting:
Enabled: false
Metrics/ClassLength:
Enabled: false
Metrics/ModuleLength:
Enabled: false
Metrics/CyclomaticComplexity:
Enabled: false
Metrics/LineLength:
Enabled: false
Max: 120
MethodLength:
Metrics/MethodLength:
Enabled: false
StringLiterals:
Metrics/ParameterLists:
Enabled: false
Metrics/PerceivedComplexity:
Enabled: false

2187
.rubocop_todo.yml Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -129,4 +129,5 @@ group :development do
gem 'guard-zeus'
gem 'guard-rspec'
gem 'parallel_tests'
gem 'rubocop', '>= 0.49.1'
end

View File

@@ -165,6 +165,7 @@ GEM
angularjs-rails (1.5.5)
ansi (1.4.2)
arel (3.0.3)
ast (2.3.0)
atomic (1.1.99)
awesome_nested_set (2.1.5)
activerecord (>= 3.0.0)
@@ -477,9 +478,11 @@ GEM
activesupport (>= 3.0.0)
cocaine (~> 0.5.3)
mime-types
parallel (1.4.1)
parallel_tests (1.3.7)
parallel (1.11.2)
parallel_tests (2.14.1)
parallel
parser (2.4.0.0)
ast (~> 2.2)
paypal-sdk-core (0.2.10)
multi_json (~> 1.0)
xml-simple
@@ -494,6 +497,7 @@ GEM
polyamorous (0.5.0)
activerecord (~> 3.0)
polyglot (0.3.5)
powerpack (0.1.1)
pry (0.9.12.2)
coderay (~> 1.0.5)
method_source (~> 0.8)
@@ -531,8 +535,10 @@ GEM
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (>= 0.14.6, < 2.0)
rainbow (2.2.2)
rake
raindrops (0.13.0)
rake (11.1.2)
rake (11.3.0)
ransack (0.7.2)
actionpack (~> 3.0)
activerecord (~> 3.0)
@@ -578,7 +584,14 @@ GEM
rspec-mocks (~> 2.14.0)
rspec-retry (0.4.2)
rspec-core
ruby-progressbar (1.7.1)
rubocop (0.49.1)
parallel (~> 1.10)
parser (>= 2.3.3.1, < 3.0)
powerpack (~> 0.1)
rainbow (>= 1.99.1, < 3.0)
ruby-progressbar (~> 1.7)
unicode-display_width (~> 1.0, >= 1.0.1)
ruby-progressbar (1.8.1)
rubyzip (1.2.0)
safe_yaml (0.9.5)
sass (3.3.14)
@@ -620,6 +633,7 @@ GEM
uglifier (2.7.1)
execjs (>= 0.3.0)
json (>= 1.8.0)
unicode-display_width (1.3.0)
unicorn (4.9.0)
kgio (~> 2.6)
rack
@@ -723,6 +737,7 @@ DEPENDENCIES
roo (~> 2.7.0)
rspec-rails
rspec-retry
rubocop (>= 0.49.1)
sass (~> 3.3)
sass-rails (~> 3.2.3)
shoulda-matchers
@@ -749,4 +764,4 @@ RUBY VERSION
ruby 2.1.5p273
BUNDLED WITH
1.14.3
1.15.1

View File

@@ -47,4 +47,3 @@ end
#watch(%r{^spec/acceptance/(.+)\.feature$})
#watch(%r{^spec/acceptance/steps/(.+)_steps\.rb$}) { |m| Dir[File.join("**/#{m[1]}.feature")][0] || 'spec/acceptance' }
#end

View File

@@ -5,7 +5,20 @@ Darkswarm.controller "RegistrationCtrl", ($scope, RegistrationService, Enterpris
$scope.steps = ['details', 'contact', 'type', 'about', 'images', 'social']
$scope.countries = availableCountries
# Filter countries without states since the form requires a state to be selected.
# Consider changing the form to require a state only if a country requires them (Spree option).
# Invalid countries still need to be filtered (better server-side).
$scope.countries = availableCountries.filter (country) ->
country.states.length > 0
$scope.countriesById = $scope.countries.reduce (obj, country) ->
obj[country.id] = country
obj
, {}
$scope.setDefaultCountry = (id) ->
country = $scope.countriesById[id]
$scope.enterprise.country = country if country
$scope.countryHasStates = ->
$scope.enterprise.country.states.length > 0

View File

@@ -5,4 +5,4 @@ Darkswarm.filter 'products', (Matcher) ->
return products if text == ""
products.filter (product) =>
propertiesToMatch = [product.name, product.variant_names, product.supplier.name, product.primary_taxon.name]
Matcher.match propertiesToMatch, text
Matcher.matchBeginning propertiesToMatch, text

View File

@@ -25,9 +25,7 @@ Darkswarm.factory "AuthenticationService", (Navigation, $modal, $location, Redir
isActive: Navigation.isActive
close: ->
if location.pathname in ["/", "/checkout"]
Navigation.navigate "/"
else
if location.pathname in ["/register", "/register/auth"]
Loading.message = t 'going_back_to_home_page'
location.hash = ""
location.pathname = "/"

View File

@@ -1,7 +1,14 @@
Darkswarm.factory "Matcher", ->
# Match text fragment in an array of strings.
new class Matcher
# Match text fragment in an array of strings.
match: (properties, text)->
properties.some (prop)->
prop ||= ""
prop.toLowerCase().indexOf(text.toLowerCase()) != -1
# Return true if text occurs at the beginning of any word present in an array of strings
matchBeginning: (properties, text) ->
text = text.trim()
regexp = new RegExp("(?:^|[\\s-])#{text}", "i")
properties.some (prop) -> (prop || "").search(regexp) >= 0

View File

@@ -42,9 +42,10 @@ Darkswarm.factory 'Products', ($resource, Enterprises, Dereferencer, Taxons, Pro
registerVariants: ->
for product in @products
if product.variants
product.variant_names = ""
product.variants = for variant in product.variants
variant = Variants.register variant
if product.name != variant.name_to_display
product.variant_names += variant.name_to_display
product.variant_names += variant.name_to_display + " "
variant.product = product
variant

View File

@@ -117,6 +117,13 @@ nav {
padding: 9px 0 0 9px;
}
.top-bar .ofn-logo img {
height: auto;
width: auto;
max-height: 51px;
max-width: 250px;
}
.left-off-canvas-menu {
background-color: white;
}

View File

@@ -32,6 +32,11 @@
color: $clr-turquoise;
}
.vertical-align-middle {
display: flex;
align-items: center;
}
a {
&:hover, &:active, &:focus {
color: $clr-turquoise-bright;

View File

@@ -52,7 +52,6 @@ module Admin
@owner_email = @enterprise_group.andand.owner.andand.email || ""
end
def collection
EnterpriseGroup.by_position
end

View File

@@ -115,7 +115,7 @@ module Admin
end
def collection_actions
[:index]
[:index, :bulk_update]
end
private
@@ -179,9 +179,5 @@ module Admin
def ams_prefix_whitelist
[:basic]
end
def collection_actions
[:index, :bulk_update]
end
end
end

View File

@@ -59,4 +59,4 @@ class Admin::ProductImportController < Spree::Admin::BaseController
def model_class
ProductImporter
end
end
end

View File

@@ -4,7 +4,6 @@ module Admin
"#{controller_name.classify}".constantize
end
# URL helpers
def new_object_url(options = {})
if parent_data.present?

View File

@@ -12,7 +12,6 @@ module Admin
def index
end
def bulk_update
# Ensure we're authorised to update all variant overrides
@vo_set.collection.each { |vo| authorize! :update, vo }

View File

@@ -24,7 +24,6 @@ class ApplicationController < ActionController::Base
params[:action].to_sym
end
def require_distributor_chosen
unless @distributor = current_distributor
redirect_to spree.root_path
@@ -62,7 +61,6 @@ class ApplicationController < ActionController::Base
end
end
# All render calls within the block will be performed with the specified format
# Useful for rendering html within a JSON response, particularly if the specified
# template or partial then goes on to render further partials without specifying

View File

@@ -123,7 +123,6 @@ class CheckoutController < Spree::CheckoutController
false
end
def update_failed
clear_ship_address
respond_to do |format|
@@ -168,8 +167,8 @@ class CheckoutController < Spree::CheckoutController
customer_preferred_bill_address, customer_preferred_ship_address = @order.customer.bill_address, @order.customer.ship_address if @order.customer
@order.bill_address ||= customer_preferred_bill_address ||= preferred_bill_address || last_used_bill_address || Spree::Address.default
@order.ship_address ||= customer_preferred_ship_address ||= preferred_ship_address || last_used_ship_address || Spree::Address.default
@order.bill_address ||= customer_preferred_bill_address || preferred_bill_address || last_used_bill_address || Spree::Address.default
@order.ship_address ||= customer_preferred_ship_address || preferred_ship_address || last_used_ship_address || Spree::Address.default
end
def after_payment

View File

@@ -30,7 +30,6 @@ class DiscourseSsoController < ApplicationController
def sso_url
secret = discourse_sso_secret!
discourse_url = discourse_url!
sso = Discourse::SingleSignOn.parse(request.query_string, secret)
sso.email = spree_current_user.email
sso.username = spree_current_user.login

View File

@@ -28,7 +28,6 @@ module Spree
end
end
def set_included_tax
if params[:tax_rate_id].present?
tax_rate = TaxRate.find params[:tax_rate_id]

View File

@@ -101,7 +101,6 @@ Spree::Admin::ReportsController.class_eval do
# -- Build Report with Order Grouper
@report = OpenFoodNetwork::OrderCycleManagementReport.new spree_current_user, params
@table = @report.table_items
csv_file_name = "#{params[:report_type]}_#{timestamp}.csv"
render_report(@report.header, @table, params[:csv], "order_cycle_management_#{timestamp}.csv")
end
@@ -126,7 +125,6 @@ Spree::Admin::ReportsController.class_eval do
@report = OpenFoodNetwork::PackingReport.new spree_current_user, params
order_grouper = OpenFoodNetwork::OrderGrouper.new @report.rules, @report.columns
@table = order_grouper.table(@report.table_items)
csv_file_name = "#{params[:report_type]}_#{timestamp}.csv"
render_report(@report.header, @table, params[:csv], "packing_#{timestamp}.csv")
end
@@ -273,7 +271,6 @@ Spree::Admin::ReportsController.class_eval do
render_report(@report.header, @report.table, params[:csv], "xero_invoices_#{timestamp}.csv")
end
def render_report(header, table, create_csv, csv_file_name)
unless create_csv
render :html => table

View File

@@ -31,7 +31,6 @@ Spree::OrdersController.class_eval do
end
end
def update
@insufficient_stock_lines = []
@order = order_to_update
@@ -71,7 +70,6 @@ Spree::OrdersController.class_eval do
end
end
def populate
# Without intervention, the Spree::Adjustment#update_adjustable callback is called many times
# during cart population, for both taxation and enterprise fees. This operation triggers a
@@ -99,7 +97,6 @@ Spree::OrdersController.class_eval do
end
end
# Report the stock levels in the order for all variant ids requested
def stock_levels(order, variant_ids)
stock_levels = li_stock_levels(order)

View File

@@ -5,12 +5,12 @@ module Admin
end
def admin_image_settings_geometry_from_style(style)
geometry, format = admin_image_settings_split_style style
geometry, _format = admin_image_settings_split_style style
geometry
end
def admin_image_settings_format_from_style(style)
geometry, format = admin_image_settings_split_style style
_geometry, format = admin_image_settings_split_style style
format
end

View File

@@ -11,7 +11,6 @@ module ApplicationHelper
form_for(name, *(args << options.merge(:builder => AngularFormBuilder)), &block)
end
# Pass URL helper calls on to spree where applicable so that we don't need to use
# spree.foo_path in any view rendered from non-spree-namespaced controllers.
def method_missing(method, *args, &block)

View File

@@ -80,7 +80,6 @@ module CheckoutHelper
available_countries.map { |c| [c.name, c.id] }
end
def validated_input(name, path, args = {})
attributes = {
required: true,

View File

@@ -43,7 +43,6 @@ module OrderCyclesHelper
end
end
def order_cycle_options
@order_cycles.
with_distributor(current_distributor).

View File

@@ -6,17 +6,14 @@ module Spree
"(#{Spree::Money.new(variant.price).to_s})"
end
def product_has_variant_unit_option_type?(product)
product.option_types.any? { |option_type| variant_unit_option_type? option_type }
end
def variant_unit_option_type?(option_type)
Spree::Product.all_variant_unit_option_types.include? option_type
end
def product_variant_unit_options
[['Weight', 'weight'],
['Volume', 'volume'],

View File

@@ -37,7 +37,7 @@ class UpdateAccountInvoices
if billable_periods.any?
oldest_enterprise = billable_periods.first.enterprise
address = oldest_enterprise.address.dup
first, space, last = (oldest_enterprise.contact || "").partition(' ')
first, _space, last = (oldest_enterprise.contact || "").partition(' ')
address.update_attributes(phone: oldest_enterprise.phone) if oldest_enterprise.phone.present?
address.update_attributes(firstname: first, lastname: last) if first.present? && last.present?
account_invoice.order.update_attributes(bill_address: address, ship_address: address)

View File

@@ -12,7 +12,6 @@ Spree::BaseMailer.class_eval do
'test@example.com'
end
def roadie_options
# This lets us specify assets using relative paths in email templates
super.merge(url_options: {host: URI(spree.root_url).host })

View File

@@ -3,8 +3,6 @@ class Cart < ActiveRecord::Base
belongs_to :user, :class_name => Spree.user_class
def add_variant variant_id, quantity, distributor, order_cycle, currency
variant = Spree::Variant.find(variant_id)
order = create_or_find_order_for_distributor distributor, order_cycle, currency
@populator = Spree::OrderPopulator.new(order, currency)

View File

@@ -61,7 +61,6 @@ class EnterpriseRelationship < ActiveRecord::Base
relatives
end
def permissions_list=(perms)
if perms.nil?
permissions.destroy_all

View File

@@ -36,8 +36,8 @@ class ModelSet
end
def save
collection_to_delete.each &:destroy
collection_to_keep.all? &:save
collection_to_delete.each(&:destroy)
collection_to_keep.all?(&:save)
end
def collection_to_delete

View File

@@ -115,7 +115,6 @@ class OrderCycle < ActiveRecord::Base
]
end
def clone!
oc = self.dup
oc.name = "COPY OF #{oc.name}"

View File

@@ -240,7 +240,6 @@ class AbilityDecorator
can [:admin, :index, :update, :destroy], Customer, enterprise_id: Enterprise.managed_by(user).pluck(:id)
end
def add_relationship_management_abilities(user)
can [:admin, :index, :create], EnterpriseRelationship
can [:destroy], EnterpriseRelationship do |enterprise_relationship|

View File

@@ -61,7 +61,6 @@ module Spree
[Spree::TaxRate.order("ABS(amount - #{approximation})").first]
end
def self.without_callbacks
skip_callback :save, :after, :update_adjustable
skip_callback :destroy, :after, :update_adjustable

View File

@@ -47,7 +47,6 @@ Spree::LineItem.class_eval do
update_attributes!(quantity: variant.on_hand) if quantity > variant.on_hand
end
def has_tax?
adjustments.included_tax.any?
end

View File

@@ -7,7 +7,7 @@ module Spree
private
def refresh_products_cache
products(:reload).each &:refresh_products_cache
products(:reload).each(&:refresh_products_cache)
end
end
end

View File

@@ -7,13 +7,13 @@ module Spree
private
def refresh_products_cache
variants(:reload).each &:refresh_products_cache
variants(:reload).each(&:refresh_products_cache)
end
def refresh_products_cache_from_destroy
vs = variants(:reload).to_a
yield
vs.each &:refresh_products_cache
vs.each(&:refresh_products_cache)
end
end

View File

@@ -161,10 +161,9 @@ Spree::Order.class_eval do
end
def cap_quantity_at_stock!
line_items.each &:cap_quantity_at_stock!
line_items.each(&:cap_quantity_at_stock!)
end
def set_distributor!(distributor)
self.distributor = distributor
self.order_cycle = nil unless self.order_cycle.andand.has_distributor? distributor

View File

@@ -82,7 +82,6 @@ Spree::OrderPopulator.class_eval do
[quantity_to_add, max_quantity_to_add]
end
def cart_remove(variant_id)
variant = Spree::Variant.find(variant_id)
@order.remove_variant(variant)

View File

@@ -21,7 +21,7 @@ module Spree
def enterprise
enterprise_id = key.match(product_selection_from_inventory_only_regex)[1]
enterprise = Enterprise.find enterprise_id
Enterprise.find(enterprise_id)
end
def product_selection_from_inventory_only_regex

View File

@@ -13,7 +13,6 @@ module Spree::Preferences
end
end
def get_preference(key)
if !has_preference?(key) && has_attachment?(key)
send key
@@ -32,7 +31,6 @@ module Spree::Preferences
end
end
# Spree's Configuration responds to preference methods via method_missing, but doesn't
# override respond_to?, which consequently reports those methods as unavailable. Paperclip
# errors if respond_to? isn't correct, so we override it here.
@@ -41,7 +39,6 @@ module Spree::Preferences
super(self.class.preference_getter_method(name), include_all) || super(method, include_all)
end
def has_attachment?(name)
self.class.respond_to?(:attachment_definitions) &&
self.class.attachment_definitions.keys.include?(name.to_sym)

View File

@@ -216,7 +216,7 @@ Spree::Product.class_eval do
if variant_unit_changed?
option_types.delete self.class.all_variant_unit_option_types
option_types << variant_unit_option_type if variant_unit.present?
variants_including_master.each &:update_units
variants_including_master.each(&:update_units)
end
end

View File

@@ -4,7 +4,7 @@ Spree::ProductOptionType.class_eval do
def remove_option_values
self.product.variants_including_master.each do |variant|
option_values = variant.option_values.where(option_type_id: self.option_type)
variant.option_values.destroy *option_values
variant.option_values.destroy(*option_values)
end
end
end

View File

@@ -30,7 +30,7 @@ module Spree
private
def refresh_products_cache
product_properties(:reload).each &:refresh_products_cache
product_properties(:reload).each(&:refresh_products_cache)
end
end
end

View File

@@ -42,7 +42,6 @@ Spree::ShippingMethod.class_eval do
]
end
def available_to_order_with_distributor_check?(order, display_on=nil)
available_to_order_without_distributor_check?(order, display_on) &&
self.distributors.include?(order.distributor)

View File

@@ -57,6 +57,6 @@ Spree::Taxon.class_eval do
private
def refresh_products_cache
products(:reload).each &:refresh_products_cache
products(:reload).each(&:refresh_products_cache)
end
end

View File

@@ -70,7 +70,6 @@ Spree::Variant.class_eval do
]
end
def price_with_fees(distributor, order_cycle)
price + fees_for(distributor, order_cycle)
end

View File

@@ -45,7 +45,6 @@ class VariantOverride < ActiveRecord::Base
end
end
def stock_overridden?
count_on_hand.present?
end

View File

@@ -2,4 +2,4 @@ Deface::Override.new(:virtual_path => "spree/products/show",
:insert_after => "[data-hook='product_show']",
:text => "<%= javascript_include_tag main_app.distributors_enterprises_path(:format => :js) %>",
:name => "add_distributor_details_js_to_product",
:original => 'b05ac497efeeebd4464f29891fd2c4a0f60c24d9')
:original => 'b05ac497efeeebd4464f29891fd2c4a0f60c24d9')

View File

@@ -2,4 +2,4 @@ Deface::Override.new(:virtual_path => "spree/admin/products/_form",
:insert_top => "[data-hook='admin_product_form_right']",
:partial => "spree/admin/products/group_buy_form",
:name => "add_group_buy_to_admin_product_edit",
:original => '0c0e8d714989e48ee246a8253fb2b362f108621a')
:original => '0c0e8d714989e48ee246a8253fb2b362f108621a')

View File

@@ -1,4 +1,4 @@
Deface::Override.new(:virtual_path => "spree/admin/orders/index",
:name => "add_orders_admin_sub_menu",
:insert_before => "code[erb-silent]:contains('content_for :table_filter_title do')",
:text => "<%= render :partial => 'spree/admin/shared/order_sub_menu' %>")
:text => "<%= render :partial => 'spree/admin/shared/order_sub_menu' %>")

View File

@@ -1,3 +1,3 @@
Deface::Override.new(:virtual_path => "spree/shared/_nav_bar",
:remove => "#search-bar",
:name => "search_removal")
:name => "search_removal")

View File

@@ -1,4 +1,3 @@
Deface::Override.new(:virtual_path => "spree/shared/_sidebar",
:remove => "#sidebar",
:name => "sidebar_removal")

View File

@@ -2,4 +2,4 @@ Deface::Override.new(:virtual_path => "spree/shared/_order_details",
:replace => "div.row.steps-data",
:partial => "spree/shared/order_details_steps_data",
:name => "replace_order_details_steps_data",
:original => '1a68aa5db3fee7f7bbb2b6b826749aeb69168cee')
:original => '1a68aa5db3fee7f7bbb2b6b826749aeb69168cee')

View File

@@ -2,4 +2,4 @@ Deface::Override.new(:virtual_path => "spree/payments/_payment",
:replace => "code[erb-loud]:contains('content_tag(:span, payment.payment_method.name)')",
:text => "<%= content_tag( :span, ( payment.payment_method.description || payment.payment_method.name ).html_safe ) %>",
:name => "replace_payment_name_with_description",
:original => 'dff62efcadc0f9e6513b0f81a51ebbda035f78f6')
:original => 'dff62efcadc0f9e6513b0f81a51ebbda035f78f6')

View File

@@ -2,4 +2,4 @@ Deface::Override.new(:virtual_path => "spree/layouts/admin",
:insert_bottom => "[data-hook='admin_inside_head']",
:partial => "layouts/auth_token_script",
:name => "set_auth_token_in_backend",
:original => '6bc2c5de1c8f7542d033548557437c9fe4b3ba02')
:original => '6bc2c5de1c8f7542d033548557437c9fe4b3ba02')

View File

@@ -2,4 +2,4 @@ Deface::Override.new(:virtual_path => "spree/layouts/spree_application",
:insert_bottom => "[data-hook='inside_head']",
:partial => "layouts/auth_token_script",
:name => "set_auth_token_in_frontend",
:original => '5659ac7dbf6ac6469907b005b85285b894677815')
:original => '5659ac7dbf6ac6469907b005b85285b894677815')

View File

@@ -1,3 +1,3 @@
class Api::Admin::IdNameSerializer < ActiveModel::Serializer
attributes :id, :name
end
end

View File

@@ -1,3 +1,3 @@
class Api::Admin::TaxonSerializer < ActiveModel::Serializer
attributes :id, :name, :pretty_name
end
end

View File

@@ -2,4 +2,4 @@ class Api::CountrySerializer < ActiveModel::Serializer
attributes :id, :name, :states
has_many :states, serializer: Api::StateSerializer
end
end

View File

@@ -1,3 +1,3 @@
class Api::IdSerializer < ActiveModel::Serializer
attributes :id
end
end

View File

@@ -56,7 +56,7 @@ class Api::CachedProductSerializer < ActiveModel::Serializer
#return a sanitized html description
def description_html
d = sanitize(object.description, options = {tags: "p, b, strong, em, i"})
d = sanitize(object.description, tags: "p, b, strong, em, i")
d.to_s.html_safe
end

View File

@@ -4,4 +4,4 @@ class Api::StateSerializer < ActiveModel::Serializer
def abbr
object.abbr.upcase
end
end
end

View File

@@ -1,3 +1,3 @@
object @enterprise
attributes :id, :name
attributes :id, :name

View File

@@ -10,4 +10,3 @@ if current_order
cart_count
end
end

View File

@@ -1,4 +1,3 @@
collection Enterprise.is_distributor.visible
extends 'json/partials/enterprise'
extends 'json/partials/hub'

View File

@@ -1,3 +1,3 @@
collection @line_items
extends "open_food_network/line_items/show"
extends "open_food_network/line_items/show"

View File

@@ -1,3 +1,3 @@
collection @orders
extends "open_food_network/orders/show"
extends "open_food_network/orders/show"

View File

@@ -4,4 +4,4 @@ attributes :id
node( :distributor ) { |p| p.distributor.blank? ? "" : p.distributor.name }
node( :line_items ) do |p|
partial '/open_food_network/line_items/index', object: p.line_items
end
end

View File

@@ -1,20 +1,24 @@
.row.active_table_row{"ng-click" => "toggle($event)", "ng-class" => "{'closed' : !open(), 'is_distributor' : producer.is_distributor}"}
.columns.small-12.medium-4.large-4.skinny-head
.columns.small-12.medium-8.large-8.skinny-head
%span{"ng-if" => "::producer.is_distributor" }
%a.is_distributor{"ng-href" => "{{::producer.path}}" }
%i{ng: {class: "::producer.producer_icon_font"}}
%span.margin-top
%strong{"ng-bind" => "::producer.name"}
%a.is_distributor{"ng-href" => "{{::producer.path}}"}
.row.vertical-align-middle
.columns.small-2.medium-2.large-2
%i{ng: {class: "::producer.producer_icon_font"}}
.columns.small-10.medium-10.large-10
%span.margin-top
%strong{"ng-bind" => "::producer.name"}
%span.producer-name{"ng-if" => "::!producer.is_distributor" }
%i{ng: {class: "::producer.producer_icon_font"}}
%span.margin-top
%strong{"ng-bind" => "::producer.name"}
.columns.small-6.medium-3.large-3
.row.vertical-align-middle
.columns.small-2.medium-2.large-2
%i{ng: {class: "::producer.producer_icon_font"}}
.columns.small-10.medium-10.large-10
%span.margin-top
%strong{"ng-bind" => "::producer.name"}
.columns.small-6.medium-2.large-2
%span.margin-top{"ng-bind" => "::producer.address.city"}
.columns.small-4.medium-3.large-4
.columns.small-4.medium-1.large-1
%span.margin-top{"ng-bind" => "::producer.address.state_name | uppercase"}
.columns.small-2.medium-2.large-1.text-right
.columns.small-2.medium-1.large-1.text-right
%span.margin-top
%i{"ng-class" => "{'ofn-i_005-caret-down' : !open(), 'ofn-i_006-caret-up' : open()}"}

View File

@@ -54,7 +54,7 @@
.small-12.medium-8.large-8.columns
.field
%label{ for: 'enterprise_country' } {{'registration_detail_country' | t}}
%select.chunky{ id: 'enterprise_country', name: 'country', required: true, ng: { model: 'enterprise.country', options: 'c as c.name for c in countries' } }
%select.chunky{ id: 'enterprise_country', name: 'country', required: true, ng: { init: "setDefaultCountry(#{Spree::Config[:default_country_id]})", model: 'enterprise.country', options: 'c as c.name for c in countries' } }
%span.error{ ng: { show: "details.country.$error.required && submitted" } }
{{'registration_detail_country_error' | t}}

View File

@@ -3,7 +3,7 @@
%ul.left
%li.ofn-logo
%a{href: root_path}
%img{src: ContentConfig.logo.url, width: "250", height: "51"}
%img{src: ContentConfig.logo.url}
%ul.center
%li
%a{href: main_app.shops_path}

View File

@@ -1,2 +1,2 @@
collection @products.order('id ASC')
extends "spree/api/products/bulk_show"
extends "spree/api/products/bulk_show"

View File

@@ -1,2 +1,2 @@
object false
node(:success) { "Use of API Authorised" }
node(:success) { "Use of API Authorised" }

View File

@@ -13,6 +13,45 @@
#
#
# See http://community.openfoodnetwork.org/t/localisation-ofn-in-your-language/397
#
# Changing this file
# ==================
#
# You are welcome to fix typos, add missing translations and remove unused ones.
# Here are some guidelines to make sure that this file is becoming more beautiful
# with every change we do.
#
# * Change text: No problem. Fix the typo. And please enclose the text in quotes
# to avoid any accidents.
#
# Example 1: "When you're using double quotes, they look like \"this\""
# Example 2: "When youre using double quotes, they look like “this”"
#
# The second example uses unicode to make it look prettier and avoid backslashes.
#
# * Add translations: Cool, every bit of text in the application should be here.
# If you add a translation for a view or mailer, please make use of the nested
# structure. Use the "lazy" lookup. See: http://guides.rubyonrails.org/i18n.html#looking-up-translations
#
# Avoid global keys. There are a lot already. And some are okay, for example
# "enterprises" should be the same everywhere on the page. But in doubt,
# create a new translation and give it a meaningful scope.
#
# Don't worry about duplication. We may use the same word in different contexts,
# but another language could use different words. So don't try to re-use
# translations between files.
#
# Don't move big parts around or rename scopes with a lot of entries without
# a really good reason. In some cases that causes a lot of translations in
# other languages to be lost. That causes more work for translators.
#
# * Remove translations: If you are sure that they are not used anywhere,
# please remove them. Be aware that some translations are looked up with
# variables. For example app/views/admin/contents/_fieldset.html.haml looks
# up labels for preferences. Unfortunately, they don't have a scope.
#
# * Participate in the community discussions:
# - https://community.openfoodnetwork.org/t/workflow-to-structure-translations/932
en:
activerecord:
@@ -21,6 +60,12 @@ en:
spree/order:
payment_state: Payment State
shipment_state: Shipment State
errors:
models:
spree/user:
attributes:
email:
taken: "There's already an account for this email. Please login or reset your password."
devise:
failure:
invalid: |

View File

@@ -2,13 +2,19 @@ es:
activerecord:
attributes:
spree/order:
payment_state: Estado de pago
payment_state: Estado del pago
shipment_state: Estado del envío
errors:
models:
spree/user:
attributes:
email:
taken: "Ya existe una cuenta con este email. Inicie sesión o restablezca tu contraseña."
devise:
failure:
invalid: |
Correo o contraseña inválidos.
¿Fue un invitado la vez pasada? Tal vez necesite crear una cuenta o recuperar su contraseña.
¿Has sido invitada? Tal vez necesites crear una cuenta o recuperar tu contraseña.
enterprise_confirmations:
enterprise:
confirmed: Gracias, tu dirección de email ha sido confirmada.
@@ -24,7 +30,6 @@ es:
welcome_to: 'Bienvenido a '
site_meta_description: "Nosotros empezamos desde abajo. Con granjeros y productoras listas para contar sus historias con orgullo y autenticidad. Con distribuidoras listas para conectar gente con productos de forma justa y honesta. Con compradores que creen que mejores decisiones de compras semanales pueden..."
search_by_name: Buscar por nombre o barrio...
producers: 'Productoras Australianos'
producers_join: Las productoras australianas ahora son bienvenidas a unirse a Open Food Network.
charges_sales_tax: ¿Cargos de GST?
print_invoice: "Imprimir factura"
@@ -50,7 +55,7 @@ es:
say_no: "No"
say_yes: "Si"
then: Entonces
sort_order_cycles_on_shopfront_by: "Ciclos de Pedidos en Shopfront por"
sort_order_cycles_on_shopfront_by: "Ciclos de Pedidos en Tienda por"
required_fields: Los campos obligatorios se indican con un asterisco
select_continue: Selecciona y Continua
remove: Eliminar
@@ -62,6 +67,18 @@ es:
show_all: Mostrar todos
show_all_with_more: "Mostrar todo (%{num} Más)"
cancel: Cancelar
edit: Editar
distributors: Distribuidores
bulk_order_management: Gestión de pedidos en bloque
enterprise_groups: Grupos
reports: Informes
variant_overrides: Inventario
more: Más
spree_products: Productos Spree
all: Todos
current: Actual
available: Disponible
dashboard: Panel de inicio
admin:
date: Fecha
email: Email
@@ -79,13 +96,20 @@ es:
sku: número de referencia
tags: Etiquetas
variant: Variedad
weight: Peso
volume: Volumen
items: Artículos
quick_search: Búsqueda rápida
clear_all: Limpiar todo
start_date: "Fecha de inicio"
end_date: "Fecha de finalización"
form_invalid: "El formulario contiene campos vacíos o inválidos"
clear_filters: Limpiar filtros
clear: Limpiar
columns: Columnas
actions: Acciones
viewing: "Viendo: %{current_view_name}"
description: Descripción
whats_this: ¿Qué es esto?
tag_has_rules: "Reglas existentes para esta etiqueta: %{num}"
has_one_rule: "Tiene una regla"
@@ -158,6 +182,7 @@ es:
edit: 'Editar'
update_address: 'Actualizar Dirección'
confirm_delete: '¿Confirmas que quieres borrar?'
search_by_email: "Buscar por email/código"
cache_settings:
show:
title: Almacenando
@@ -170,7 +195,7 @@ es:
title: Contenido
enterprise_fees:
index:
title: Comisiones de la Organicación
title: Comisiones de la Organización
enterprise: Organización
fee_type: Tipo de Comisión
name: Nombre
@@ -181,6 +206,7 @@ es:
index:
new_button: Nuevo Grupo de Organizaciones
products:
unit_name_placeholder: 'ej. manojos'
bulk_edit:
unit: Unidad
display_as: Mostrar como
@@ -189,6 +215,9 @@ es:
inherits_properties?: ¿Propiedades heredadas?
available_on: Disponible en
av_on: "Disp. en"
properties:
property_name: Nombre de la Propiedad
inherited_property: Propiedad Heredada
variants:
to_order_tip: "Los artículos hechos según demanda no tienen un nivel de stock, como por ejemplo panes hechos según demanda."
variant_overrides:
@@ -241,7 +270,7 @@ es:
title: Organizaciones
new_enterprise: Nueva Organización
producer?: "Productora?"
package: Paquete
package: Perfil
status: Estado
manage: Gestionar
form:
@@ -255,6 +284,8 @@ es:
abn_placeholder: ej. 99 123 456 789
acn: ACN
acn_placeholder: ej. 123 456 789
display_invoice_logo: Mostrar logo en facturas
invoice_text: Añadir texto personalizado al final de las facturas
contact:
name: Nombre
name_placeholder: ej. Gustav Plum
@@ -324,23 +355,31 @@ es:
create_one_button: Crear una ahora
no_method_yet: Todavía no tienes ningún método de envío.
shop_preferences:
shopfront_requires_login: "Publicidad visible en la tienda?"
shopfront_requires_login: "¿Visibilidad pública de la tienda?"
shopfront_requires_login_tip: "Elije si los clientes deben iniciar sesión para ver la tienda o si es visible para todos."
shopfront_requires_login_false: "Público"
shopfront_requires_login_true: "Visible solo para consumidores registrados"
recommend_require_login: "Recomendamos requerir a los usuarios que accedan cuando sus pedidos puedan cambiar."
allow_guest_orders: "Pedidos de invitados"
allow_guest_orders_tip: "Permitir la compra como invitado o solo permitir usuarios registrados."
allow_guest_orders_tip: "Permitir pedidos como invitado o solo como usuarios registrados."
allow_guest_orders_false: "Se necesita hacer login para realizar un pedido"
allow_guest_orders_true: "Permitir pedido de un invitado"
allow_guest_orders_true: "Permitir pedidos a invitados"
allow_order_changes: "Cambiar pedidos"
allow_order_changes_tip: "Permitir a los clientes cambiar sus pedidos mientras que el ciclo de pedido siga abierto."
allow_order_changes_false: "Los pedidos efectuados no pueden ser cambiados / cancelados"
allow_order_changes_true: "Los clientes pueden cambiar / cancelar pedidos mientras el ciclo de pedido está abierto"
shopfront_message: Mensaje de la Tienda
shopfront_message_placeholder: >
Una explicación opcional para los consumidores que detallan cómo funciona
su tienda, que se mostrará por encima de la lista de productos en su
página de tienda.
shopfront_closed_message: Mensaje de tienda cerrada
shopfront_closed_message_placeholder: >
Un mensaje que proporciona una explicación más detallada sobre por qué
tu tienda está cerrada y/o cuándo se abrirá de nuevo. Esto se muestra
en tu tienda sólo cuando no tienes ciclos de pedidos activos (p.e. la
tienda está cerrada).
shopfront_category_ordering: Orden de las categorías de la tienda
open_date: Fecha de Inicio
close_date: Fecha de Finalización
social:
@@ -396,7 +435,7 @@ es:
producer_hub_description_text: Tu organización es la columna vertebral de un sistema de consumo local. Agrega productos tuyos o de otras organizaciones y véndelo a través de tu tienda en Open Food Network.
profile: Solo perfil
get_listing: Obtener un listado
profile_description_text: La gente podrá encontrarte y ponerse en contacto contigo en Open Food Network. Su empresa será visible en el mapa y se podrá buscar en los listados.
profile_description_text: La gente podrá encontrarte y ponerse en contacto contigo en Open Food Network. Su organización será visible en el mapa y se podrá buscar en los listados.
hub_shop: Tienda
hub_shop_text: Vender la producción de otros
hub_shop_description_text: Tu organización es la columna vertebral de un sistema de consumo local. Agrega productos de otras organizaciones y véndelo a través de tu tienda en Open Food Network.
@@ -424,6 +463,16 @@ es:
next_step: Siguiente paso
choose_starting_point: 'Elige tu punto de partida:'
order_cycles:
edit:
advanced_settings: Configuración Avanzada
update_and_close: Actualizar y Cerrar
choose_products_from: 'Escoger Productos desde:'
pickup_time_tip: Cuándo estarán disponibles para el consumidor las ordenes de este ciclo
pickup_instructions_tip: Esta instrucciones se muestran a los consumidores después de que completen un pedido.
exchange_form:
pickup_instructions_placeholder: "Instrucciones de recogida"
pickup_time_placeholder: "Listo para ( Fecha / Hora)"
receival_instructions_placeholder: "Instrucciones de recepción"
advanced_settings:
title: Configuración Avanzada
choose_product_tip: Puedes optar por restringir todos los productos disponibles (entrantes y salientes), solo a los de %{inventory} inventario.
@@ -441,7 +490,7 @@ es:
distributor: Distribuidor
products: Productos
tags: Etiquetas
delivery_detaisl: Detalles de Recogida / Entrega
delivery_details: Detalles de Recogida / Entrega
debug_info: Información de Debug
name_and_timing_form:
name: Nombre
@@ -459,13 +508,7 @@ es:
customer_instructions_placeholder: Notas de la recogida o entrega
products: Productos
fees: Comisiones
edit:
advanced_settings: Configuración Avanzada
update_and_close: Actualizar y Cerrar
producer_properties:
form:
property: Propiedad
value: Valor
index:
title: Propiedades de la Productora
shared:
@@ -476,12 +519,20 @@ es:
title: Configuración de Factura
invoice_style2?: Utiliza el modelo de factura alternativo que incluye el desglose fiscal total por tipo de interés y tasa de impuestos por artículo (todavía no es adecuado para países que muestran los precios sin impuestos)
enable_receipt_printing?: ¿Mostrar opciones para imprimir recibos usando impresoras térmicas en el desplegable del pedido?
checkout:
already_ordered:
cart: "carrito"
message_html: "Ya realizó un pedido para este ciclo de pedido. Compruebe el %{cart}para ver los artículos que pidió. También puede cancelar artículos mientras el ciclo de pedido siga abierto."
home:
hubs:
show_closed_shops: "Mostrar tiendas cerradas"
hide_closed_shops: "Ocultar tiendas cerradas"
show_on_map: "Mostrar todo en el mapa"
shared:
menu:
cart:
checkout: "Validar ahora"
already_ordered_products: "Ya realizó un pedido en este ciclo de pedido"
register_call:
selling_on_ofn: "¿Estás interesada en entrar en Open Food Network?"
register: "Regístrate aquí"
@@ -490,7 +541,7 @@ es:
login: "login"
register: "registro"
contact: "contactar"
require_customer_login: "Esta tienda es solo para usuarios registrados."
require_customer_login: "Esta tienda es solo para consumidores registrados."
require_login_html: "Haz %{login} si ya tienes una cuenta. De lo contrario puedes %{register}."
require_customer_html: "%{contact} %{enterprise} para convertirte en miembro."
invoice_billing_address: "Dirección de facturación:"
@@ -551,6 +602,7 @@ es:
terms_of_service: "Términos de servicio"
on_demand: Bajo demanda
none: Ninguno
not_allowed: No permitido
label_shops: "Tiendas"
label_map: "Mapa"
label_producers: "Productoras"
@@ -571,21 +623,12 @@ es:
items: "artículos"
cart_headline: "Su carrito de compras"
total: "Total"
checkout: "Revisar el carrito de compras"
cart_updating: "Actualizando el carrito..."
cart_empty: "Carrito vacío"
cart_edit: "Editar carrito"
card_number: Número de tarjeta
card_securitycode: "Código de seguridad"
card_expiry_date: Fecha de expiración
ofn_cart_headline: "Tarjeta actual para:"
ofn_cart_distributor: "Distribuidor:"
ofn_cart_oc: "Ciclo de pedido:"
ofn_cart_from: "De:"
ofn_cart_to: "Para:"
ofn_cart_product: "Producto:"
ofn_cart_quantitiy: "Cantidad:"
ofn_cart_send: "Comprar me"
ie_warning_headline: "Su navegador está desactualizado :-("
ie_warning_text: "Para la mejor esperiencia de Open Food Network, recomendamos actualizar su navegador:"
ie_warning_chrome: Descargar Chrome
@@ -602,7 +645,7 @@ es:
footer_sites_community: "Comunidad"
footer_sites_userguide: "Guía de usuario"
footer_secure: "Seguro y de confianza."
footer_secure_text: "Open Food Network usa cifrado SSL (RSA de 2048 bit) en todo lado para mantener privada la información de compras y pagos. Nuestros servidores no almacenan los detalles de tarjetas de créditos y los pagos son procesados por servicios que cumplen con PCI."
footer_secure_text: "Open Food Network usa cifrado SSL (RSA de 2048 bit) en toda su plataforma para mantener privada la información de compras y pagos. Nuestros servidores no almacenan los detalles de tarjetas de créditos y los pagos son procesados por servicios que cumplen con PCI."
footer_contact_headline: "Mantenerse en contacto"
footer_contact_email: "Envíenos un correo"
footer_nav_headline: "Navegar"
@@ -619,7 +662,7 @@ es:
brandstory_part1: "Nosotros empezamos desde abajo. Con granjeros y productoras listas para contar sus historias con orgullo y autenticidad. Con distribuidoras listas para conectar gente con productos de forma justa y honesta. Con compradores que creen que mejores decisiones de compras semanales pueden seriamente cambiar el mundo."
brandstory_part2: "Luego necesitamos una forma de hacerlo real. Una forma de empoderar a todos los que producen, venden y compran comida. Una forma de contar todas las historias, de manejar todas las logísticas. Una forma de convertir transacción en transformación todos los días."
brandstory_part3: "Entonces contruímos un mercado que nivela el campo de juego. Es transparente, de forma que crea relaciones reales. Es de código abierto, de forma que todos son los dueños."
brandstory_part4: "Funciona en todo lado. Cambia todo."
brandstory_part4: "Funciona en cualquier lugar. Lo cambia todo."
brandstory_part5_strong: "Le llamamos Open Food Network."
brandstory_part6: "Todos amamos la comida. Ahora podemos amar nuestro sistema de comida también."
learn_body: "Explora modelos, historias y recursos para ayudarte a desarrollar tu organización. Encuentra formación, eventos y otras oportunidades para aprender de tus compañeros."
@@ -628,25 +671,25 @@ es:
connect_cta: "Explorar"
system_headline: "Compras - cómo funcionan."
system_step1: "1. Buscar"
system_step1_text: "Busque comida local y de temporada en nuestras tiendas diversas e independientes. Busque por barrio o categoría de comida, o si prefiere servicio de entrega o recogerla."
system_step1_text: "Busca comida local y de temporada en nuestras tiendas diversas e independientes. Busca por barrio y participa en un grupo de consumo."
system_step2: "2. Comprar"
system_step2_text: "Transforma tu consumo con comida local y asequible de diversas productoras ¡Conoce las historias detrás de tu comida y la gente que la hace!"
system_step3: "3. Recoger / Servicio de entrega"
system_step3_text: "Espere su entrega, o visite a su productora o grupo de consumo para una conexión más personal con su comida. Compra de comida tan diversa como la naturaleza lo previó."
system_step3: "3. Recogida"
system_step3_text: "Visita tu Grupo de Consumo para un vínculo más directo con las productoras y tus vecinos, también puedes comprar directamente a algunas productoras o centrales de compras. Compra tu comida de una manera tan diversa como la naturaleza."
cta_headline: "Compras que hacen el mundo un mejor lugar."
cta_label: "Estoy listo"
stats_headline: "Estamos creando un nuevo sistema de comida."
stats_producers: "productoras de comida"
stats_shops: "tiendas de comida"
stats_shoppers: "compradores de comida"
stats_orders: "pedidos de comida"
checkout_title: Revisar el carrito
checkout_now: Revisare el carrito ahora
cta_label: "Estoy lista"
stats_headline: "Entre todas creamos un nuevo sistema de producción, distribución y consumo."
stats_producers: "productoras"
stats_shops: "tiendas"
stats_shoppers: "consumidoras"
stats_orders: "pedidos"
checkout_title: Validar el carrito
checkout_now: Validar el carrito ahora
checkout_order_ready: Pedido preparado para
checkout_hide: Esconder
checkout_expand: Expandir
checkout_headline: "Esta bien, ¿listo para pagar?"
checkout_as_guest: "Pagar como invitado"
checkout_headline: "Esta bien, ¿listo para realizar el pedido?"
checkout_as_guest: "Hacer pedido como invitado"
checkout_details: "Sus detalles"
checkout_billing: "Información de cobro"
checkout_default_bill_address: "Guardar como dirección de facturación por defecto"
@@ -670,6 +713,7 @@ es:
order_billing_address: Dirección de cobro
order_delivery_on: Entregar en
order_delivery_address: Dirección de entrega
order_delivery_time: Tiempo de entrega
order_special_instructions: "Sus notas:"
order_pickup_time: Listo para la recolección
order_pickup_instructions: Instrucciones de recolección
@@ -678,6 +722,8 @@ es:
order_includes_tax: (incluye impuesto)
order_payment_paypal_successful: Su pago a través de PayPal ha sido procesado con éxito.
order_hub_info: Información del Grupo
order_back_to_store: Volver a la Tienda
order_back_to_cart: Volver al Carrito
bom_tip: "Usa esta página para alterar la cantidad del producto en varios pedidos a la vez. Los productos pueden ser eliminados de los pedidos si es necesario. "
unsaved_changes_warning: "Hay cambios no guardados, se perderán si continúas."
unsaved_changes_error: "Los campos con bordes rojos contienen errores."
@@ -690,14 +736,14 @@ es:
email_registered: "ahora es parte de"
email_userguide_html: "La Guía de Usuario con soporte detallado para configurar su Productora o Grupo de Consumo está aquí: %{link}"
email_admin_html: "Puede administrar su cuenta iniciando sesión en %{link} o haciendo clic en el engrane arriba a la derecha de la página de inicio, y seleccionando Administración."
email_community_html: "También tenemos un foro en líea para la discusión comunal relacionada con el programa OFN y los retos únicos del funcionamiento de una empresa de alimentación. Lo invitamos a unirse. Estamos evolucionando de forma constante y su aporte en este formo le dará forma a lo que pase luego. %{link}"
email_community_html: "También tenemos un foro en líea para la discusión comunal relacionada con el programa OFN y los retos únicos del funcionamiento de una organización de alimentación. Lo invitamos a unirse. Estamos evolucionando de forma constante y su aporte en este formo le dará forma a lo que pase luego. %{link}"
join_community: "Unirse a la comunidad"
email_help: "Si tiene dificultades, revise nuestras preguntas frecuentes, navegue el foro o haga una entrada de con tema de 'Soporte' y ¡alguien le ayudará!"
email_confirmation_greeting: "Hola, %{contact}!"
email_confirmation_profile_created: "¡Se creó un un perfil para %{name} con éxito! Para activar su Perfil necesitamos que confirme esta dirección de correos."
email_confirmation_click_link: "Por favor haga clic en el enlace de abajo para confirmar el correo electrónico y continuar configurando su perfil."
email_confirmation_link_label: "Confirmar este correo electrónico »"
email_confirmation_help_html: "Después de confirmar el correo electrónico puede accesar su cuenta de administración para esta empresa. Vea el %{link} para encontrar más acerca de las características de %{sitename} e iniciar a usar su perfil o tienda en línea."
email_confirmation_help_html: "Después de confirmar el correo electrónico puedes acceder a tu cuenta de administración para esta organización. Visita %{link} para encontrar más información sobre las características de %{sitename} y empieza a usar tu perfil o tienda online."
email_confirmation_userguide: "Guía de Usuario"
email_social: "Conecte con nosotros:"
email_contact: "Envíenos un correo electrónico:"
@@ -732,7 +778,7 @@ es:
email_signup_login: Su nombre de usuario
email_signup_email: Tu correo electrónico para el inicio de sesión es
email_signup_shop_html: "Puede empezar a comprar en línea ahora en %{link}."
email_signup_text: "Gracias por unirte a la red. Si eres un comprador, ¡esperamos presentarte a muchos agricultores, grupos de consumo y deliciosa comida! Si eres una productora o formas parte de una empresa de alimentos, estamos emocionados de que formes parte de la red."
email_signup_text: "Gracias por unirte a la red. Si eres un comprador, ¡esperamos presentarte a muchos agricultores, grupos de consumo y deliciosa comida! Si eres una productora o formas parte de una organización de alimentos, estamos emocionados de que formes parte de la red."
email_signup_help_html: "Agradecemos todas tus preguntas y feedback; puedes usar el botón de <em>Enviar Feedback</em> en el sitio o escribir un email a %{email}"
producer_mail_greeting: "Estimada"
producer_mail_text_before: "Ahora tenemos todas los pedidos de las consumidoras para la siguiente ronda."
@@ -750,7 +796,7 @@ es:
shopping_contact_social: "Seguir"
shopping_groups_part_of: "es parte de:"
shopping_producers_of_hub: "productoras de %{hub}:"
enterprises_next_closing: "Cerrando próximo pedido"
enterprises_next_closing: "Los pedidos se cerrarán"
enterprises_ready_for: "Listo para"
enterprises_choose: "Escoger cuando quieres tu pedido:"
hubs_buy: "Comprar:"
@@ -769,6 +815,10 @@ es:
hubs_intro: Comprar en su área local
hubs_distance: Más cercano a
hubs_distance_filter: "Mustreme tiendas cerca de %{location}"
shop_changeable_orders_alert_html:
one: Su pedido con <a href='%{path}' target='_blank'> %{shop} / %{order} </a> está abierto para revisión. Puede realizar cambios hasta %{oc_close}.
other: 'Usted tiene <a href=''%{path}'' target=''_blank''> %{count} órdenes con %{shop} </a> actualmente abierto para revisión. Puede realizar cambios hasta %{oc_close}. '
orders_changeable_orders_alert_html: Este pedido ha sido confirmado, pero puede realizar cambios hasta <strong>%{oc_close}</strong>.
products_clear_all: Limpiar todo
products_showing: "Mostrando:"
products_with: con
@@ -784,7 +834,7 @@ es:
products_update_error_data: "Error al guardar datos no válidos:"
products_changes_saved: "Cambios guardados."
search_no_results_html: "Lo sentimos, no hay resultados para %{query}. ¿Intentar otra búsqueda?"
components_profiles_popover: "Los perfiles no tienen escaparate en Open Food Network, pero pueden tener su propia tienda física o en línea en otro lugar"
components_profiles_popover: "Los perfiles no tienen una tienda en Open Food Network, pero pueden tener su propia tienda física o en línea en otro lugar"
components_profiles_show: "Mostrar perfiles"
components_filters_nofilters: "Sin filtros"
components_filters_clearfilters: "Limpiar todos los filtros"
@@ -834,7 +884,7 @@ es:
modal_how_pickup: Recogida, entrega y gastos de envío
modal_how_pickup_explained: Algunos grupos de consumo hacen entregas hasta su puerta, mientras otros requieren que recojas las compras. Puedes ver que opciones están disponibles en su página de inicio, y seleccionar cuál te gustaría en las páginas de compras y revisión. Las entregas costarán más, y el precio cambia entre grupos de consumo. Cada grupo es un punto de venta con operaciones y logística independientes, las diferencias son normales y deseables.
modal_how_more: Aprender más
modal_how_more_explained: "Si quiere aprender más acerca del Open Food Network, cómo trabaja y colaborar, revise:"
modal_how_more_explained: "Si quieres saber más acerca de Open Food Network, cómo trabajamos y nos organizamos, visita:"
modal_producers: "Productoras"
modal_producers_explained: "Nuestras productoras hacen todos los deliciosos alimentos que puedes comprar en Open Food Network."
producers_about: Acerca de nosotras
@@ -852,7 +902,7 @@ es:
producers_signup_headline: Productoras de alimentos, empoderadas.
producers_signup_motivation: Venda sus alimentos y cuente sus historias en distintos nuevos mercados. Ahorre tiempo y dinero en costos administrativos. Apoyamos la innovación sin el riesgo. Hemos nivelado el campo de juego.
producers_signup_send: Únase ahora
producers_signup_enterprise: Cuentas de empresa
producers_signup_enterprise: Cuentas de organización
producers_signup_studies: Historias de nuestras productoras.
producers_signup_cta_headline: ¡Únase ahora!
producers_signup_cta_action: Únase ahora
@@ -885,7 +935,7 @@ es:
shops_signup_headline: Grupos de Consumo, sin límites.
shops_signup_motivation: Cualquiera que sea su modelo, lo apoyamos. De cualquier forma que cambie, estamos con usted. Somos una organización sin findes de lucro, independiente, y de código abierto. Somos los socios de software con los que ha soñado.
shops_signup_action: Únase ahora
shops_signup_pricing: Cuentas de empresa
shops_signup_pricing: Cuentas de organización
shops_signup_stories: Historias de nuestros grupos de consumo.
shops_signup_help: Estamos listos para ayudar.
shops_signup_help_text: Usted necesita un mejor retorno. Usted necesita nuevos compradores y socios de logística. Usted necesita que su historia sea contada a través de ventas al por mayor, al detalle y en la mesa de la cocina.
@@ -895,10 +945,10 @@ es:
orders_edit_headline: Su carrito de compras
orders_edit_time: Pedido listo para
orders_edit_continue: Continuar comprando
orders_edit_checkout: Revisar
orders_edit_checkout: Validar
orders_form_empty_cart: "Vaciar carrito"
orders_form_subtotal: Subtotal de productos
orders_form_admin: Administración y gestión
orders_form_admin: Administrar y Gestionar
orders_form_total: Total
orders_oc_expired_headline: Los pedidos están cerrados para este ciclo
orders_oc_expired_text: "Lo sentimos, ¡los pedidos para este ciclo cerraron hace %{time}! Contacta con tu grupo de consumo directamente para ver si pueden aceptar pedidos tardíos."
@@ -908,7 +958,18 @@ es:
orders_oc_expired_phone: "Teléfono:"
orders_show_title: Confirmación del pedido
orders_show_time: Pedido listo en
orders_show_number: Confirmación del pedido
orders_show_order_number: "Pedido #%{number}"
orders_show_cancelled: Cancelado
orders_show_confirmed: Confirmado
orders_your_order_has_been_cancelled: "Su pedido ha sido cancelado"
orders_could_not_cancel: "Lo sentimos, no se pudo cancelar el pedido"
orders_cannot_remove_the_final_item: "No se puede quitar el último artículo de un pedido, en su lugar, por favor cancele el pedido."
orders_bought_items_notice:
one: Un elemento adicional ya está confirmado para este ciclo de pedido
other: '%{count} artículos adicionales ya confirmados para este ciclo de pedido'
orders_bought_edit_button: Editar artículos confirmados
orders_bought_already_confirmed: "* ya confirmados"
orders_confirm_cancel: Seguro que desea cancelar este pedido?
products_cart_distributor_choice: "Distribuidora para tu pedido:"
products_cart_distributor_change: "Su distribuidora para este pedido se cambiará a %{name} si agregas este producto al carrito."
products_cart_distributor_is: "Tu distribuidora para este pedido es %{name}."
@@ -931,9 +992,9 @@ es:
going_back_to_home_page: "Le estamos llevando de vuelta a la página de inicio"
creating: Creando
updating: Actualizando
failed_to_create_enterprise: "Error al crear su empresa."
failed_to_create_enterprise_unknown: "Error al crear su empresa.\nAsegúrese que haya llenado todos los campos de forma completa."
failed_to_update_enterprise_unknown: "Error al actualizar su empresa.\nAsegurese que haya llenado todos los campos de forma completa."
failed_to_create_enterprise: "Error al crear tu organización."
failed_to_create_enterprise_unknown: "Error al crear tu organización.\nAsegúrate de haber rellenado todos los campos."
failed_to_update_enterprise_unknown: "Error al actualizar tu organización.\nAsegúrate de haber rellenado todos los campos."
order_not_saved_yet: "Su orden aun no ha sido guardada. ¡Denos unos cuantos segundos para terminar!"
filter_by: "Fitrar por"
hide_filters: "Esconder filtros"
@@ -982,7 +1043,7 @@ es:
continue: "Continuar"
limit_reached_headline: "¡Ay no!"
limit_reached_message: "¡Ha alcanzado el límite!"
limit_reached_text: "Ha alcanzado el límite del número de empresas de las que puede ser dueño en el"
limit_reached_text: "Has alcanzado el límite de organizaciones de las que puedes gestionar en "
limit_reached_action: "Regresar a la página de inicio"
select_promo_image: "Paso 3. Seleccione una imagen promocional"
promo_image_tip: "Consejo: Se muestra como una pancarta, el tamaño preferido es 1200×260px"
@@ -1000,15 +1061,16 @@ es:
review_logo: "Paso 2. Revise su logo"
review_logo_tip: "Consejo: para mejores resultados, su logo debería llenar el espacio disponible"
logo_placeholder: "El logo aparecerá aquí para ser revisado cuando se haya subido"
enterprise_about_headline: Buena esa!"
enterprise_about_headline: Seguimos!"
enterprise_about_message: "Ahora vamos a profundizar en los detalles acerca de"
enterprise_success: Éxito! %{enterprise} se agregó a la Open Food Network "
enterprise_success: Felicidades! %{enterprise} se agregó a Open Food Network "
enterprise_registration_exit_message: "Si sale de este asistente en cualquier etapa, debe hacer clic en el enlace de confirmación el el correo electrónico que recibió. Esto lo llevará a la interfaz de administración en la que puede continuar configurando su perfil."
enterprise_description: "Descripción corta"
enterprise_description_placeholder: "Una oración corta que describa su empresa"
enterprise_description_placeholder: "Una frase corta que describa tu organización"
enterprise_long_desc: "Descripción larga"
enterprise_long_desc_placeholder: "Esta es su oportunidad de contar la historia de su empresa - ¿qué la hace diferente y asombrosa? Le sugerimos mantener la descripción en menos de 600 caracteres o 150 palabras."
enterprise_long_desc_placeholder: "Esta es tu oportunidad de contar la historia de tu organización - ¿qué la hace diferente? Sugerimos mantener la descripción en menos de 600 caracteres o 150 palabras."
enterprise_long_desc_length: "%{num} caracteres / recomentdamos hasta 600"
enterprise_limit: Límite de la Organización
enterprise_abn: "ABN"
enterprise_abn_placeholder: "eg. 99 123 456 789"
enterprise_acn: "ACN"
@@ -1036,15 +1098,15 @@ es:
registration_logo: "Su imagen de logo"
registration_promo_image: "Imagen en formato apaisado para su perfil"
registration_about_us: "Texto 'Acerca de nosotras'"
registration_outcome_headline: "¿Qué recibo?"
registration_outcome_headline: "¿Para qué sirve?"
registration_outcome1_html: "Su perfil le ayuda a las personas a <strong>encontrarle</strong> y <strong>contactarle</strong> en la Open Food Network."
registration_outcome2: "Use este espacio para contar la historia de su empresa, para ayudar a dirigir conexiones a su presencia social y en línea."
registration_outcome3: "También es un primer paso para negociar en la Open Food Network, o abrir una tienda en línea."
registration_outcome2: "Usa este espacio para contar la historia de tu organización, para ayudar a crear vínculos con tu comunidad."
registration_outcome3: "También es el primer paso para empezar en Open Food Network, o abrir una tienda online."
registration_finished_headline: "¡Terminado!"
registration_finished_thanks: "Gracias por llenar los detalles de %{enterprise}."
registration_finished_login: "Puede cambiar o actualizar su negocio en cualquier etapa iniciando sesión en Open Food Network y yendo a Admin."
registration_finished_activate: "Activar %{enterprise}."
registration_finished_activate_instruction_html: "Hemos enviado un correo de confirmación a <strong>%{email}</strong> si no ha sido activado antes.<br/> Siga las instrucciones ahí para hacer su empresa visible en Open Food Network."
registration_finished_activate_instruction_html: "Hemos enviado un correo de confirmación a <strong>%{email}</strong> si no has activado tu cuenta ya.<br/> Sigue las instrucciones para hacer tu organización visible en Open Food Network."
registration_finished_action: "Página de inicio de Open Food Network"
registration_type_headline: "¡Último paso para agregar %{enterprise}!"
registration_type_question: "¿Eres una productora?"
@@ -1054,15 +1116,15 @@ es:
registration_type_producer_help: "Las productoras hacen cosas deliciosas para comer y/o beber. Eres una productora si lo cultivas, lo haces crecer, lo preparas, lo horneas, lo fermentas, lo ordeñas, ..."
registration_type_no_producer_help: "Si no eres una productora, probablemente conozcas a alguien que venda o distribuya comida. También podrías convertirte en un grupo de consumo u otro tipo de organización."
create_profile: "Crear Perfil"
registration_images_headline: Gracias!"
registration_images_description: "¡Suba algunas buenas fotografías así el perfil se verá muy bien! :)"
registration_images_headline: Ya casi lo tenemos!"
registration_images_description: "¡Sube algunas fotografías así el perfil se verá mucho mejor! :)"
registration_detail_headline: "Empecemos..."
registration_detail_enterprise: "¡Bien! Primero necesitamos saber un poco más acerca de tu organización:"
registration_detail_producer: "¡Bien! Primero necesitamos saber un poco más acerca de su productora:"
registration_detail_enterprise: "¡Bien! Primero necesitamos saber un poco más sobre tu organización:"
registration_detail_producer: "¡Bien! Primero necesitamos saber un poco más sobre tu productora:"
registration_detail_name_enterprise: "Nombre de la Organización:"
registration_detail_name_producer: "Nombre de la granja:"
registration_detail_name_placeholder: "e.j. Cooperativa de Consum Pastanaga Feliç"
registration_detail_name_error: "Por favor elija un nombre único para su empresa"
registration_detail_name_error: "Por favor elije un nombre único para tu organización"
registration_detail_address1: "Línea de dirección 1:"
registration_detail_address1_placeholder: "e.j. Torrent de l'Olla 24"
registration_detail_address1_error: "Ingrese una dirección"
@@ -1108,7 +1170,7 @@ es:
running_balance: "Saldo actual"
outstanding_balance: "Saldo extraordinario"
admin_entreprise_relationships: "Relaciones de la Organización"
admin_entreprise_relationships_everything: "Todo"
admin_entreprise_relationships_everything: "Marcar todos"
admin_entreprise_relationships_permits: "Permisos"
admin_entreprise_relationships_seach_placeholder: "Buscar"
admin_entreprise_relationships_button_create: "Crear"
@@ -1144,6 +1206,7 @@ es:
calculator_values: "Calculadora de valores"
flat_percent_per_item: "Porcentaje fijo (por artículo)"
new_order_cycles: "Nuevos Ciclos de Pedidos"
new_order_cycle: "Nuevo Ciclo de Pedido"
select_a_coordinator_for_your_order_cycle: "Selecciona un coordinador para vuestro ciclo de pedido"
edit_order_cycle: "Editar Ciclo de Pedido"
roles: "Roles"
@@ -1162,8 +1225,9 @@ es:
producer: "Productora"
product: "Producto"
price: "Precio"
on_hand: "En mano"
on_hand: "Disponibles"
save_changes: "Guardar Cambios"
order_saved: "Pedido Guardado"
spree_admin_overview_enterprises_header: "Mis Organizaciones"
spree_admin_overview_enterprises_footer: "GESTIONAR MIS ORGANIZACIONES"
spree_admin_enterprises_hubs_name: "Nombre"
@@ -1190,7 +1254,7 @@ es:
spree_admin_single_enterprise_alert_mail_sent: "Te hemos enviado un mail a"
spree_admin_overview_action_required: "Acción Requerida"
spree_admin_overview_check_your_inbox: "Revisa tu bandeja de entrada para las siguientes instrucciones. Gracias!"
change_package: "Cambiar paquete"
change_package: "Cambiar Perfil"
spree_admin_single_enterprise_hint: "Sugerencia: Para permitir que la gente te encuentre, activa tu visibilidad"
your_profil_live: "Tu perfil en directo"
on_ofn_map: "en el mapa Open Food Network"
@@ -1205,11 +1269,13 @@ es:
edit_profile_details: "Editar detalles del perfil"
edit_profile_details_etc: "Cambia tu descripción, imágenes, etc."
order_cycle: "Ciclo de Pedido"
order_cycles: "Ciclos de Pedidos"
enterprises: "Empresas"
remove_tax: "Eliminar impuesto"
enterprise_terms_of_service: "Términos del Servicio de la Organización"
enterprises_require_tos: "Las organizaciones deben aceptar los Términos del Servicio"
enterprise_tos_link: "Enlace a los Términos del Servicio de la Organización"
enterprise_tos_message: "Queremos trabajar con personas que compartan nuestros objetivos y valores. Por ello, pedimos a las nuevas empresas que acepten"
enterprise_tos_message: "Queremos trabajar con personas que compartan nuestros objetivos y valores. Por ello, pedimos a las nuevas organizaciones que acepten"
enterprise_tos_link_text: "Términos del Servicio."
enterprise_tos_agree: "Estoy de acuerdo con los Términos del Servicio"
tax_settings: "Configuración de Impuestos"
@@ -1305,7 +1371,7 @@ es:
js:
admin:
modals:
got_it: Lo tengo
got_it: Lo entiendo
tag_rule_help:
title: Reglas de las Etiquetas
overview: Visión general
@@ -1349,15 +1415,13 @@ es:
hub_shop_text3: >
Si también quieres vender tus propios productos, tendrás que cambiar
esta organización para ser una productora.
choose_package: Selecciona un Paquete
choose_package_text1: >+
Tu organización no se activará completamente hasta que selecciones un
paquete de las opciones de la izquierda.
choose_package_text2: >+
Haz click en una opción para ver información más detallada acerca de
cada paquete, y pulsa el botón rojo GUARDAR cuando hayas terminado.
choose_package: Seleccione un Perfil
choose_package_text1: >
Su organización no se activará completamente hasta que seleccione un
perfil de las opciones de la izquierda.
choose_package_text2: >
Haga click en una opción para ver información más detallada acerca de
cada perfil, y pulse el botón rojo GUARDAR cuando hayas terminado.
profile_only: Solo perfil
profile_only_cost: "COSTE: GRATUITO PARA SIEMPRE"
profile_only_text1: >+
@@ -1430,6 +1494,9 @@ es:
de tu carrito se han reducido. Aquí está lo que ha cambiado:
now_out_of_stock: está ahora fuera de stock.
only_n_remainging: "Solo quedan %{num} ."
producers:
signup:
start_free_profile: "Empieze con un perfil gratuito, y amplíelo cuando esté preparado!"
spree:
admin:
products:
@@ -1446,24 +1513,7 @@ es:
date_picker:
format: '%Y-%m-%d'
js_format: 'aa-mm-dd'
zipcode: Código Postal
shipment_states:
backorder: orden pendiente
partial: parcial
pending: pendiente
ready: Listo
shipped: enviado
payment_states:
balance_due: saldo debido
completed: completado
checkout: revisar
credit_owed: crédito debido
failed: fallido
paid: pagado
pending: pendiente
processing: procesando
void: vacío
invalid: inválido
inventory: Inventario
order_mailer:
invoice_email:
hi: "Hola %{name}"
@@ -1484,3 +1534,46 @@ es:
orders:
invoice:
tax_invoice: "IMPUESTOS FACTURA:"
payment_states:
balance_due: saldo debido
completed: completado
checkout: validar
credit_owed: crédito debido
failed: fallido
paid: pagado
pending: pendiente
processing: procesando
void: vacío
invalid: inválido
shipment_states:
backorder: orden pendiente
partial: parcial
pending: pendiente
ready: Listo
shipped: enviado
user_mailer:
reset_password_instructions:
request_sent_text: |
Se ha solicitado el cambio de tu contraseña.
Si tu no lo has solicitado simplemente ignora este email.
link_text: >
Si has solicitado esta acción haz click en el siguiente enlace:
issue_text: |
Si el enlace no funciona prueba a copiarlo y pegarlo en tu navegador.
Si los problemas continúan no dudes en contactarnos.
weight: Peso (en kg)
zipcode: Código Postal
users:
show:
open_orders: Pedidos Abiertos
transaction_history: Historial de Transacciones
open_orders:
order: Pedido
shop: Tienda
changes_allowed_until: Se permiten cambios hasta
items: Artículos
total: Total
edit: Editar
cancel: Cancelar
closed: Cerrado
until: Hasta

View File

@@ -4,6 +4,12 @@ fr:
spree/order:
payment_state: Statut du paiement
shipment_state: Statut livraison
errors:
models:
spree/user:
attributes:
email:
taken: "Un compte existe déjà pour cet e-mail. Connectez-vous ou demandez un nouveau mot de passe."
devise:
failure:
invalid: |
@@ -24,7 +30,6 @@ fr:
welcome_to: 'Bienvenue sur '
site_meta_description: "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 ..."
search_by_name: Recherche par nom ou département...
producers: 'Producteurs Français'
producers_join: Les producteurs et autres hubs basés en France sont invités à rejoindre Open Food France.
charges_sales_tax: Soumis à la TVA?
print_invoice: "Imprimer la facture"
@@ -62,6 +67,18 @@ fr:
show_all: Tout voir
show_all_with_more: "Voir tous (%{num} en plus)"
cancel: Annuler
edit: Modifier
distributors: Distributeurs
bulk_order_management: Gestion des commandes par lot
enterprise_groups: Groupes
reports: Rapports
variant_overrides: Catalogue boutique
more: Plus
spree_products: Produits
all: Tous
current: Actuel
available: Disponible
dashboard: Tableau de bord
admin:
date: Date
email: Email
@@ -79,13 +96,20 @@ fr:
sku: Référence produit
tags: Tags
variant: Variante
weight: Poids
volume: Volume
items: Pièce
quick_search: Recherche rapide
clear_all: Vider
start_date: "Date de début"
end_date: "Date de fin"
form_invalid: "Le formulaire contient des champs manquants ou invalides"
clear_filters: Annuler les filtres
clear: Annuler
columns: Colonnes
actions: Actions
viewing: "Vous regardez: %{current_view_name}"
description: Description
whats_this: Qu'est-ce que c'est?
tag_has_rules: "Règles existantes pour ce tag: %{num}"
has_one_rule: "a une règle"
@@ -158,6 +182,7 @@ fr:
edit: 'Modifier'
update_address: 'Mettre à jour l''adresse'
confirm_delete: 'Confirmer suppression?'
search_by_email: "Recherche par email/code..."
cache_settings:
show:
title: Mise en cache
@@ -181,6 +206,7 @@ fr:
index:
new_button: Nouveau groupe d'entreprises
products:
unit_name_placeholder: 'ex: botte'
bulk_edit:
unit: Unité
display_as: Affiché
@@ -189,13 +215,16 @@ fr:
inherits_properties?: Hériter des propriétés producteur?
available_on: Disponible sur
av_on: "Disp. sur"
properties:
property_name: Nom du label
inherited_property: Label producteur appliqué par défaut
variants:
to_order_tip: "Les articles fabriqués sur commande n'ont pas un niveau de stock défini, comme des pains faits à la main."
variant_overrides:
loading_flash:
loading_inventory: Catalogue boutique en cours de chargement...
index:
title: Stock
title: Catalogue boutique
description: Utilisez cette page pour gérer le catalogue de votre entreprise. Les détails produits saisis ici remplaceront ceux de la page "Produit" pour votre entreprise uniquement.
enable_reset?: Autoriser réinitialisation du stock (retour configurations par défaut)?
inherit?: Hériter?
@@ -249,12 +278,14 @@ fr:
desc_short: Description (en bref)
desc_short_placeholder: Parlez de votre entreprise en une ou deux phrases
desc_long: A propos
desc_long_placeholder: Parlez de vous à vos acheteurs! Ces informations seront visibles sur votre profil public.
desc_long_placeholder: Parlez de vous à vos acheteurs ! Ces informations seront visibles sur votre profil public.
business_details:
abn: SIRET
abn_placeholder: 'ex: 404 833 048 00022'
acn: n° TVA intracommunautaire
acn_placeholder: 'ex: 404 833 048'
display_invoice_logo: Afficher le logo sur la facture
invoice_text: Ajouter une mention spécifique en bas des factures
contact:
name: Nom
name_placeholder: 'ex: Bernard Michelet'
@@ -268,7 +299,7 @@ fr:
name: Nom
fee_type: Type de marge
manage_fees: Gérer les marges et commissions
no_fees_yet: Vous n'avez pas encore définies de commissions
no_fees_yet: Vous n'avez pas encore défini de commissions
create_button: Créer une commission
images:
logo: Logo
@@ -290,9 +321,9 @@ fr:
payment_methods:
name: Nom
applies: Active?
manage: Gérer les options de paiement
not_method_yet: Vous n'avez pas encore d'option de paiement.
create_button: Créer une nouvelle option de paiement
manage: Gérer les méthodes de paiement
not_method_yet: Vous n'avez pas encore de méthode de paiement.
create_button: Créer une nouvelle méthode de paiement
create_one_button: En créer une maintenant
primary_details:
name: Nom
@@ -312,7 +343,7 @@ fr:
visible_in_search_tip: Indiquez si vous souhaitez ou ne souhaitez pas que votre entreprise apparaisse sur la carte et dans la liste des boutiques.
visible: Visible
not_visible: Invisible
permalink: Nom affiché dans l'URL (sans espace)
permalink: Nom pour URL (sans espace)
permalink_tip: "Ce nom permanent est utilisé pour créer l'url de votre boutique: %{link}ma-boutique/shop"
link_to_front: Lien URL de la boutique
link_to_front_tip: C'est le lien qui permet d'accéder en direct à votre boutique sur Open Food France.
@@ -321,25 +352,33 @@ fr:
applies: Active?
manage: Gérer les méthodes de livraison
create_button: Créer nouvelle méthode de livraison
create_one_button: Créer une commission
create_one_button: En créer une maintenant
no_method_yet: Vous n'avez pas encore paramétré de méthode de livraison.
shop_preferences:
shopfront_requires_login: "Boutique visible par tous?"
shopfront_requires_login_tip: "Choisissez si les acheteurs doivent être connectés pour voir la boutique ou si la boutique est visible par tout le monde."
shopfront_requires_login_false: "Visible par tous"
shopfront_requires_login_true: "Visible uniquement pour les acheteurs logués"
recommend_require_login: "Nous recommandons de demander aux utilisateurs de se connecter si vous souhaitez leur permettre de modifier leur commande."
allow_guest_orders: "Commandes des invités"
allow_guest_orders_tip: "Autoriser la commande en tant qu'invité ou demander que l'acheteur soit logué."
allow_guest_orders_false: "Demander que l'acheteur se logue pour pouvoir commander"
allow_guest_orders_true: "Autoriser les commandes en mode invité"
allow_order_changes: "Modifier la commande"
allow_order_changes_tip: "Permettre aux acheteurs de modifier leur commande tant que le cycle de vente est ouvert."
allow_order_changes_false: "Les commandes validées ne peuvent plus être modifiées / annulées"
allow_order_changes_true: "Les acheteurs peuvent modifier / valider leurs commandes tant que le cycle de vente est ouvert"
shopfront_message: Message d'accueil boutique ouverte
shopfront_message_placeholder: >
Vous pouvez ici expliquer à vos acheteurs comment votre boutique fonctionne.
Ce texte s'affiche dans votre boutique, au-dessus de la liste de produits.
shopfront_closed_message: Message d'accueil boutique fermée
shopfront_closed_message_placeholder: >
Vous pouvez ici expliquer à vos acheteurs pourquoi votre boutique est
fermée et/ou quand elle ouvrira. Ce texte s'affiche uniquement quand
il n'y a pas de cycle de vente en cours (donc quand votre boutique est
fermée).
shopfront_category_ordering: Ordre d'affichage des catégories
open_date: Date d'ouverture
close_date: Date de fermeture
social:
@@ -423,6 +462,16 @@ fr:
next_step: Etape suivante
choose_starting_point: 'Choisissez par où commencer:'
order_cycles:
edit:
advanced_settings: Paramétrages avancés
update_and_close: Mettre à jour et fermer
choose_products_from: 'Choisir produits depuis :'
pickup_time_tip: Date/heure à laquelle les commandes pour ce cycle de vente seront à disposition de / livrées à l'acheteur.
pickup_instructions_tip: Ces instructions seront affichées à l'acheteur une fois sa commande passée.
exchange_form:
pickup_instructions_placeholder: "Modalités de retrait/livraison"
pickup_time_placeholder: "Prêt pour (ex : jour + créneau horaire)"
receival_instructions_placeholder: "Modalités de livraison"
advanced_settings:
title: Paramétrages avancés
choose_product_tip: Vous pouvez choisir de limiter le choix des produits pouvant être mis en vente dans votre boutique à ceux figurant dans le catalogue boutique de %{inventory}.
@@ -432,15 +481,15 @@ fr:
coordinator_fees:
add: Ajouter commission coordinateur
form:
incoming: Produits entrants (constitution du catalogue boutique pour le cycle de vente)
incoming: Produits entrants (pouvant être mis en vente par les hubs)
supplier: Fournisseur
receival_details: Détails livraison produits
fees: Commission
outgoing: Produits sortants (vendus via un ou plusieurs hubs)
outgoing: Produits sortants (mis en vente par/via un ou plusieurs hubs)
distributor: Hub (distributeur)
products: Produits
tags: Tags
delivery_detaisl: Détails de livraison / retrait
delivery_details: Précisions retrait / livraison
debug_info: Informations de débogage
name_and_timing_form:
name: Nom
@@ -458,13 +507,7 @@ fr:
customer_instructions_placeholder: Commentaires pour le retrait / la livraison
products: Produits
fees: Commissions
edit:
advanced_settings: Paramétrages avancés
update_and_close: Mettre à jour et fermer
producer_properties:
form:
property: Propriétés / labels
value: Détail
index:
title: Propriétés / labels du producteur
shared:
@@ -475,12 +518,20 @@ fr:
title: Paramètres de facturation
invoice_style2?: Utiliser le modèle de facture alternatif qui détaille le montant de TVA agrégé par taux et l'information du taux de TVA par produit (pas adapté pour les instances affichant les prix HT)
enable_receipt_printing?: Afficher les options d'impression de tickets de caisse dans le menu déroulant des commandes?
checkout:
already_ordered:
cart: "panier"
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."
home:
hubs:
show_closed_shops: "Aficher les boutiques fermées"
hide_closed_shops: "Masquer les boutiques fermées"
show_on_map: "Tout afficher sur la carte"
shared:
menu:
cart:
checkout: "Finaliser la commande"
already_ordered_products: "Déjà commandé dans ce cycle de vente"
register_call:
selling_on_ofn: "Vous souhaitez proposer vos produits sur Open Food France?"
register: "Démarrez ici"
@@ -513,8 +564,8 @@ fr:
date_of_transaction: "Date de la transaction :"
ticket_column_qty: "Qté"
ticket_column_item: "Produit"
ticket_column_unit_price: "Px unit"
ticket_column_total_price: "Px total"
ticket_column_unit_price: "Prix unitaire"
ticket_column_total_price: "Prix total"
logo: "Logo (640x130)"
logo_mobile: "Logo smartphone (75x26)"
logo_mobile_svg: "Logo smartphone (SVG)"
@@ -550,6 +601,7 @@ fr:
terms_of_service: "Conditions d'utilisation"
on_demand: A volonté
none: Aucun
not_allowed: Non autorisé
label_shops: "Boutiques"
label_map: "Carte"
label_producers: "Producteurs"
@@ -570,21 +622,12 @@ fr:
items: "produits"
cart_headline: "Votre panier"
total: "Total"
checkout: "Régler la commande"
cart_updating: "Mettre à jour le panier"
cart_empty: "Panier vide"
cart_edit: "Modifier votre panier"
card_number: Numéro de carte
card_securitycode: "Cryptogramme visuel"
card_expiry_date: Date d'expiration
ofn_cart_headline: "Panier actuel pour:"
ofn_cart_distributor: "Distributeur:"
ofn_cart_oc: "Cycle de vente:"
ofn_cart_from: "De:"
ofn_cart_to: "Pour:"
ofn_cart_product: "Produit:"
ofn_cart_quantitiy: "Quantité:"
ofn_cart_send: "Acheter"
ie_warning_headline: "Votre navigateur n'est pas à jour :-("
ie_warning_text: "Pour une expérience optimale sur Open Food France, nous vous recommandons fortement de mettre à jour votre navigateur:"
ie_warning_chrome: Télécharger Chrome
@@ -606,7 +649,7 @@ fr:
footer_contact_email: "Nous écrire"
footer_nav_headline: "Naviguer"
footer_join_headline: "Nous rejoindre"
footer_join_body: "Créer une liste, un répertoire de boutiques ou groupes sur Open Food France."
footer_join_body: "Créer un profil, une boutique ou un groupe sur Open Food France."
footer_join_cta: "Je veux en savoir plus!"
footer_legal_call: "Lire nos"
footer_legal_tos: "Termes et conditions"
@@ -639,19 +682,19 @@ fr:
stats_shops: "boutiques"
stats_shoppers: "acheteurs"
stats_orders: "commandes"
checkout_title: Paiement
checkout_now: Régler la commande
checkout_title: Finalisation commande
checkout_now: Passer la commande
checkout_order_ready: Commande prête pour
checkout_hide: Masquer
checkout_expand: Afficher
checkout_headline: "Ok, prêt pour le paiement?"
checkout_as_guest: "Régler en mode invité"
checkout_headline: "Ok, prêt à finaliser la commande?"
checkout_as_guest: "Passer commande en mode invité"
checkout_details: "Vos informations"
checkout_billing: "Informations de facturation"
checkout_default_bill_address: "Sauvegarder comme adresse de facturation par défaut"
checkout_shipping: Informations de livraison
checkout_default_ship_address: "Sauvegarder comme adresse de livraison par défaut"
checkout_method_free: Gratuit
checkout_method_free: Pas de frais supplémentaires
checkout_address_same: Adresse de livraison identique à l'adresse de facturation?
checkout_ready_for: "Prêt pour:"
checkout_instructions: "Commentaires ou demandes spécifiques?"
@@ -669,14 +712,17 @@ fr:
order_billing_address: Adresse de facturation
order_delivery_on: Livraison prévue
order_delivery_address: Adresse de livraison
order_delivery_time: Créneau de livraison/retrait
order_special_instructions: "Vos commentaires:"
order_pickup_time: Prêt à être retirer
order_pickup_instructions: Instructions de retrait
order_produce: Produit
order_total_price: Total
order_includes_tax: (TVA inclue)
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_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."
unsaved_changes_warning: "Des modifications n'ont pas été enregistrées et seront perdues si vous continuez."
unsaved_changes_error: "Les champs entourés en rouge contiennent des erreurs."
@@ -739,7 +785,7 @@ fr:
producer_mail_delivery_instructions: "Modalités de livraison des produits:"
producer_mail_signoff: "Merci et belle fin de journée!"
shopping_oc_closed: La boutique est actuellement fermée
shopping_oc_closed_description: "Veuillez attendre l'ouverture du prochain cycle de vente (ou contactez-nous directement pour voir si nous pouvez accépter une commande tardive)"
shopping_oc_closed_description: "Veuillez attendre l'ouverture du prochain cycle de vente (ou contactez-nous directement pour voir si nous pouvons accepter une commande tardive)"
shopping_oc_last_closed: "Le dernier cycle de vente s'est terminé il y a %{distance_of_time}"
shopping_oc_next_open: "Le prochain cycle de vente ouvrira dans %{distance_of_time}"
shopping_tabs_about: "A propos de %{distributor}"
@@ -768,6 +814,10 @@ fr:
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}"
shop_changeable_orders_alert_html:
one: Votre commande avec <a href='%{path}' target='_blank'>%{shop} / %{order}</a> est ouverte pour vérification. Vous pouvez effectuer des modification jusqu'à %{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'à %{oc_close}.
orders_changeable_orders_alert_html: Cette commande a été confirmée, mais vous pouvez effectuer des modifications jusqu'à <strong>%{oc_close}</strong>.
products_clear_all: Vider
products_showing: "Afficher:"
products_with: avec
@@ -775,7 +825,7 @@ fr:
products_loading: "Produits en cours de chargement..."
products_updating_cart: "Actualisation du panier..."
products_cart_empty: "Panier vide"
products_edit_cart: "Modifier votre panier"
products_edit_cart: "Valider votre panier"
products_from: de
products_change: "Aucun changement à sauvegarder."
products_update_error: "Échec de l'enregistrement dû à:"
@@ -874,9 +924,9 @@ fr:
sell_hubs_detail: "Créer un profil pour votre entreprise de distribution ou organisation sur OFFrance. 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_user_guide: "En savoir plus en explorant le guide utilisateur."
sell_listing_price: "L'inscription sur OFFrance est gratuite. Ouvrir est gérer une boutique sur OFFrance ou créer un groupe sur OFFrance pour votre organisation ou réseau régional, n'est pas gratuit, mais le prix est libre: soit 2% du chiffre d'affaire (ou autre forme de contribution libre designée par votre hub), soit une contribution \"en compétences\" à Open Food France (développement de fonctionnalités, recherche de financement, support utilisateur, etc.), soit un mix des deux."
sell_listing_price: "La création d'un profil sur OFFrance est entièrement libre. Si vous ouvrez et gérez une boutique sur OFFrance, ou créez un groupe pour votre organisation ou réseau régional, nous vous invitons à contribuer au commun Open Food France que vous utilisez. En effet, faire tourner la plateforme Open Food France a un coût, et nous comptons sur VOUS pour contribuer à couvrir ces frais de fonctionnement (location et maintenance des serveurs, support utilisateur, nouveaux développements...). Par exemple, en reversant sous forme de don à l'association 2% de votre chiffre d'affaire, et/ou un montant fixe tous les mois. Vous pouvez aussi contribuer au commun \"en compétences\" (développement de fonctionnalités, recherche de financement, support utilisateur, etc.)"
sell_embed: "Nous pouvons aussi intégrer votre boutique OFFrance dans votre propre site web ou construire un site web d'alimentation locale sur mesure pour votre région."
sell_ask_services: "Nous consulter sur les services OFFrance."
sell_ask_services: "Nous consulter sur les services des partenaires OFFrance."
shops_title: Boutiques
shops_headline: Des achats qui transforment.
shops_text: Les aliments poussent selon des cycles naturels, les fermiers récoltent en cycles. Alors ici, nous achetons aussi en cycles. Si un cycle de vente est terminé, attendez le suivant ou demandez des infos au hub !
@@ -894,10 +944,10 @@ fr:
orders_edit_headline: Votre panier
orders_edit_time: Commande prête pour
orders_edit_continue: Poursuivre mes achats
orders_edit_checkout: Régler ma commande
orders_edit_checkout: Passer ma commande
orders_form_empty_cart: "Vider le panier"
orders_form_subtotal: Sous-total
orders_form_admin: Admin et opérations
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."
@@ -907,7 +957,18 @@ fr:
orders_oc_expired_phone: "Téléphone:"
orders_show_title: Confirmation de commande
orders_show_time: Commande prête pour
orders_show_number: Confirmation de commande
orders_show_order_number: "Commande #%{number}"
orders_show_cancelled: Annulée
orders_show_confirmed: Confirmée
orders_your_order_has_been_cancelled: "Votre commande a été annulée"
orders_could_not_cancel: "Désolé, la commande n'a pas pu être annulée"
orders_cannot_remove_the_final_item: "Impossible de supprimer le dernier produit d'une commande, si vous souhaitez supprimer l'ensemble des produits, veuillez annuler la commande."
orders_bought_items_notice:
one: Un produit ajouté a bien été confirmé pour ce cycle de vente
other: '%{count} produits ajoutés ont été confirmés pour ce cycle de vente.'
orders_bought_edit_button: Modifier les produits confirmés
orders_bought_already_confirmed: "* déjà confirmé"
orders_confirm_cancel: Voulez-vous vraiment annuler cette commande ?
products_cart_distributor_choice: "Distributeur pour votre commande:"
products_cart_distributor_change: "Vore distributeur pour cette commande sera dorénavant %{name} si vous ajoutez ce produit à votre panier."
products_cart_distributor_is: "Votre distributeur pour cette commande est %{name}."
@@ -926,7 +987,7 @@ fr:
remember_me: Se souvenir de moi
are_you_sure: "Confirmer?"
orders_open: Boutique ouverte
closing: "Fermeture"
closing: "Fermeture "
going_back_to_home_page: "Retour à la page d'accueil"
creating: Création
updating: Mettre à jour
@@ -938,7 +999,7 @@ fr:
hide_filters: "Masquer les filtres"
one_filter_applied: "1 filtre appliqué"
x_filters_applied: "filtres appliqués"
submitting_order: "Votre commande est en cours d'envoi: veuillez patienter"
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_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..."
@@ -1008,13 +1069,14 @@ fr:
enterprise_long_desc: "Description longue"
enterprise_long_desc_placeholder: "Vous pouvez ici raconter l'histoire de votre organisation - votre projet, les valeurs que vous défendez. Nous vous conseillons de ne pas dépasser 600 caractères ou 150 mots."
enterprise_long_desc_length: "%{num} caractères / inférieur à 600 recommandé"
enterprise_limit: Nombre max d'entreprises
enterprise_abn: "SIRET"
enterprise_abn_placeholder: "ex: 404 833 048 00022"
enterprise_acn: "n° TVA intracommunautaire"
enterprise_acn_placeholder: "ex: 404 833 048"
enterprise_tax_required: "Merci de choisir."
enterprise_final_step: "Dernière étape!"
enterprise_social_text: "Comment trouver la boutique en ligne %{enterprise}"
enterprise_social_text: "Comment trouver la boutique en ligne %{enterprise} ?"
website: "Site internet"
website_placeholder: "ex: openfoodfrance.fr"
facebook: "Facebook"
@@ -1106,7 +1168,7 @@ fr:
you_have_no_orders_yet: "Vous n'avez pas encore de commande"
running_balance: "Solde courant"
outstanding_balance: "Solde restant"
admin_entreprise_relationships: "Liens inter-entreprises"
admin_entreprise_relationships: "Permissions inter-entreprises"
admin_entreprise_relationships_everything: "Tout"
admin_entreprise_relationships_permits: "autorise"
admin_entreprise_relationships_seach_placeholder: "Chercher"
@@ -1116,7 +1178,7 @@ fr:
admin_entreprise_groups_owner: "Manager principal"
admin_entreprise_groups_on_front_page: "Sur la page d'accueil?"
admin_entreprise_groups_entreprise: "Entreprises"
admin_entreprise_groups_data_powertip: "L'utilisateur principal en charge de ce groupe."
admin_entreprise_groups_data_powertip: "Le manager principal en charge de ce groupe."
admin_entreprise_groups_data_powertip_logo: "Il s'agit du logo du groupe"
admin_entreprise_groups_data_powertip_promo_image: "Cette image est affichée en haut du profil Groupe."
admin_entreprise_groups_contact: "Contact"
@@ -1129,7 +1191,7 @@ fr:
admin_entreprise_groups_contact_state_id: "Département"
admin_entreprise_groups_contact_country_id: "Pays"
admin_entreprise_groups_web: "Liens web"
admin_entreprise_groups_web_twitter: "ex: @OpenFoodNet"
admin_entreprise_groups_web_twitter: "ex: @OpenFoodNet_fr"
admin_entreprise_groups_web_website_placeholder: "ex: www.monepicerieenligne.fr"
admin_order_cycles: "Gérer les cycles de vente"
open: "Ouvre"
@@ -1143,6 +1205,7 @@ fr:
calculator_values: "Valeurs applicables"
flat_percent_per_item: "Montant net (par produit)"
new_order_cycles: "Nouveau cycle de vente"
new_order_cycle: "Nouveau Cycle de Vente"
select_a_coordinator_for_your_order_cycle: "Choisissez un coordinateur pour votre cycle de vente"
edit_order_cycle: "Modifier le cycle de vente"
roles: "Roles"
@@ -1163,12 +1226,13 @@ fr:
price: "Prix"
on_hand: "En stock"
save_changes: "Sauvegarder les modifications"
order_saved: "Commande Sauvegardée"
spree_admin_overview_enterprises_header: "Mes entreprises"
spree_admin_overview_enterprises_footer: "GÉRER MES ENTREPRISES"
spree_admin_enterprises_hubs_name: "Nom"
spree_admin_enterprises_create_new: "CRÉER NOUVELLE"
spree_admin_enterprises_shipping_methods: "Options de livraison"
spree_admin_enterprises_fees: "Marges de l'entreprise"
spree_admin_enterprises_shipping_methods: "Méthodes de livraison"
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_producers_name: "Nom"
@@ -1177,7 +1241,7 @@ fr:
spree_admin_enterprises_producers_order_cycles: "Produits dans le cycle de vente"
spree_admin_enterprises_tabs_hubs: "HUBS"
spree_admin_enterprises_tabs_producers: "PRODUCTEURS"
spree_admin_enterprises_producers_manage_order_cycles: "GÉRER MES CYCLES DE VENTES"
spree_admin_enterprises_producers_manage_order_cycles: "GÉRER LES CYCLES DE VENTES"
spree_admin_enterprises_producers_manage_products: "GÉRER LES PRODUITS"
spree_admin_enterprises_producers_orders_cycle_text: "Vous n'avez pas de cycle de vente actif."
spree_admin_enterprises_any_active_products_text: "Vous n'avez aucun produit actif."
@@ -1189,12 +1253,12 @@ fr:
spree_admin_single_enterprise_alert_mail_sent: "Email envoyé à "
spree_admin_overview_action_required: "Action requise"
spree_admin_overview_check_your_inbox: "Veuillez vérifier votre boîte mail pour les prochaines étapes. Merci!"
change_package: "Changer de pack"
change_package: "Changer de type de compte"
spree_admin_single_enterprise_hint: "Astuce: Pour permettre aux gens de vous trouver, activez votre visibilité "
your_profil_live: "Votre profil en ligne"
on_ofn_map: "sur la carte Open Food France"
see: "Voir"
live: "En ligne"
live: "en ligne"
manage: "Gérer"
resend: "Renvoyer"
add_and_manage_products: "Ajouter & gérer des produits"
@@ -1204,6 +1268,8 @@ fr:
edit_profile_details: "Modifier les informations du profil"
edit_profile_details_etc: "Modifier la description, les images, etc."
order_cycle: "Cycle de vente"
order_cycles: "Cycles de Vente"
enterprises: "Entreprises"
remove_tax: "Retirer TVA"
enterprise_terms_of_service: "Conditions Générales d'Utilisation"
enterprises_require_tos: "Les entreprises doivent accepter les Conditions Générales d'Utilisation"
@@ -1214,7 +1280,7 @@ fr:
tax_settings: "Paramètres TVA"
products_require_tax_category: "vous devez choisir la TVA applicable"
admin_shared_address_1: "Adresse"
admin_shared_address_2: "Adresse (cont.)"
admin_shared_address_2: "Adresse (suite)"
admin_share_city: "Ville"
admin_share_zipcode: "Code postal"
admin_share_country: "Pays"
@@ -1265,7 +1331,7 @@ fr:
due_date: "Date d'échéance:"
account_code: "Code compte:"
equals: "Egal"
contains: "contients"
contains: "contient"
discount: "Réduction"
filter_products: "Filtrer les produits"
delete_product_variant: "La variante ne peut pas être supprimée!"
@@ -1287,14 +1353,14 @@ fr:
adrdress: "Adresse"
contact: "Contact"
social: "Réseaux sociaux"
business_details: "N° fiscaux"
properties: "Propriétés"
business_details: "Juridique"
properties: "Propriétés / labels"
shipping_methods: "Méthodes de livraison"
payment_methods: "Méthodes de paiement"
payment_method_fee: "Frais de transaction"
enterprise_fees: "Marges de l'entreprise"
inventory_settings: "Paramètres de stock"
tag_rules: "Règles des tags"
enterprise_fees: "Marges et commissions"
inventory_settings: "Catalogue boutique"
tag_rules: "Règles de tag"
shop_preferences: "Préférences boutique"
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"
@@ -1309,7 +1375,7 @@ fr:
title: Règles de tag
overview: Aperçu
overview_text: >
Les règles de tags vous permettent de paramétrer ce qui est vu ou pas
Les règles de tag vous permettent de paramétrer ce qui est vu ou pas
par tel ou tel type d'acheteur. Par exemple des options de livraison,
des méthodes de paiement, des produits, ou des cycles de vente.
by_default_rules: "Règles à appliquer \"par défaut\""
@@ -1358,10 +1424,9 @@ fr:
fois votre choix fait, cliquez sur le bouton rouge ENREGISTRER !
profile_only: Profil uniquement
profile_only_cost: "COÛT: CONTRIBUTION LIBRE"
profile_only_text1: >+
profile_only_text1: >
Gagnez en visibilité, racontez votre histoire, et affichez vos coordonnées
pour pouvoir être contactés.
profile_only_text2: >
Si vous souhaitez vous concentrer sur votre activité de production,
et laisser à d'autre le soin de distribuer vos produits, vous n'avez
@@ -1407,7 +1472,7 @@ fr:
Un producteur peut aussi avoir d'autres rôles, comme par exemple stocker
et distribuer des produits d'autres producteurs à travers une boutique
sur Open Food France.
non_producer: Pas producteur
non_producer: Non-producteur
non_producer_text1: >
Les entreprises qui ne produisent pas ne peuvent pas créer leur propre
catalogue produits pour les vendre sur Open Food France.
@@ -1434,6 +1499,9 @@ fr:
à votre demande. Voilà les modifications opérées:
now_out_of_stock: est maintenant en rupture de stock.
only_n_remainging: "plus que %{num} en stock."
producers:
signup:
start_free_profile: "Commencez par créer votre profil entreprise, et changez de formule quand vous êtes prêt !"
spree:
admin:
products:
@@ -1442,7 +1510,7 @@ fr:
title: Edition des produits par lots
indicators:
title: CHARGEMENT DES PRODUITS
no_products: "Aucun produit trouvé. Pourquoi n'en ajouté vous pas quelques-uns ?"
no_products: "Aucun produit trouvé. Ajouter un produit ?"
no_results: "Désolé, aucun résultat trouvé"
variants:
autocomplete:
@@ -1450,24 +1518,7 @@ fr:
date_picker:
format: '%Y-%m-%d'
js_format: 'aa-mm-jj'
zipcode: Code postal
shipment_states:
backorder: réapprovisionnement
partial: partiel
pending: en attente
ready: prêt
shipped: envoyé
payment_states:
balance_due: solde dû
completed: effectué
checkout: Paiement
credit_owed: Crédit acheteur
failed: échec
paid: payé
pending: en attente
processing: en traitement
void: annuler
invalid: Invalide
inventory: Catalogue boutique
order_mailer:
invoice_email:
hi: "Bonjour %{name}"
@@ -1488,3 +1539,47 @@ fr:
orders:
invoice:
tax_invoice: "FACTURE"
payment_states:
balance_due: solde dû
completed: effectué
checkout: passer commande
credit_owed: crédit acheteur
failed: échec
paid: payé
pending: en attente
processing: en traitement
void: faire un avoir
invalid: invalide
shipment_states:
backorder: réapprovisionnement
partial: partiel
pending: en attente
ready: prêt
shipped: envoyé
user_mailer:
reset_password_instructions:
request_sent_text: |
Votre demande de nouveau mot de passe a bien été prise en compte.
Si vous n'avez pas demandé de nouveau mot de passe, veuillez ignorer cet e-mail.
link_text: >
Si vous êtes bien à l'origine de cette demande, veuillez cliquer sur le
lien ci-dessous :
issue_text: |
Si le lien ne fonctionne pas, essayez de le copier - coller dans la barre d'adresse de votre navigateur.
Si le problème persiste, n'hésitez pas à nous contacter.
weight: Poids (au kg)
zipcode: Code postal
users:
show:
open_orders: Commandes Ouvertes
transaction_history: Historique des Transactions
open_orders:
order: Commander
shop: Faire mes courses
changes_allowed_until: Modifications permises jusqu'à
items: Pièce
total: Total
edit: Modifier
cancel: Annuler
closed: Fermée
until: Jusqu'à

View File

@@ -2,8 +2,14 @@ nb:
activerecord:
attributes:
spree/order:
payment_state: Betallingsstatus
payment_state: Betalingsstatus
shipment_state: Sendingsstatus
errors:
models:
spree/user:
attributes:
email:
taken: "Det finnes allerede en konto for denne e-posten. Vennligst logg inn eller tilbakestill passordet ditt."
devise:
failure:
invalid: |
@@ -24,7 +30,6 @@ nb:
welcome_to: 'Velkommen til '
site_meta_description: "Vi begynner fra grunnen. Med bønder og dyrkere klare til å fortelle sine historier, stolt og virkelig. Med distributører klare til å koble mennesker med produkter på en rettferdig og ærlig måte. Med kunder som tror på at ukentlige innkjøpsrutiner kan..."
search_by_name: Søk på navn eller sted...
producers: 'Norske Produsenter'
producers_join: Norske produsenter er nå velkommen til å bli med i Open Food Network.
charges_sales_tax: MVA-pliktig?
print_invoice: "Skriv ut Faktura"
@@ -62,6 +67,18 @@ nb:
show_all: Vis alle
show_all_with_more: "Vis Alle (%{num} Mer)"
cancel: Avbryt
edit: Endre
distributors: Distributører
bulk_order_management: Bulk ordrehåndtering
enterprise_groups: Grupper
reports: Rapporter
variant_overrides: Varelager
more: Mer
spree_products: Spree Produkter
all: Alle
current: Nåværende
available: Tilgjengelig
dashboard: Dashboard
admin:
date: Dato
email: Epost
@@ -79,13 +96,20 @@ nb:
sku: SKU
tags: Merker
variant: Variant
weight: Vekt
volume: Volum
items: Varer
quick_search: Hurtigsøk
clear_all: Fjern Alt
start_date: "Startdato"
end_date: "Sluttdato"
form_invalid: "Skjemaet inneholder manglende eller ugyldige felt"
clear_filters: Fjern filtre
clear: Fjern
columns: Kolonner
actions: Handlinger
viewing: "Viser: %{current_view_name}"
description: Beskrivelse
whats_this: Hva er dette?
tag_has_rules: "Gjeldende regler for denne merkelappen: %{num}"
has_one_rule: "har én regel"
@@ -158,6 +182,7 @@ nb:
edit: 'Redigere'
update_address: 'Oppdater Adresse'
confirm_delete: 'Sikker på å slette?'
search_by_email: "Søk på epost/kode..."
cache_settings:
show:
title: Mellomlagring
@@ -181,6 +206,7 @@ nb:
index:
new_button: Ny Bedriftsgruppe
products:
unit_name_placeholder: 'f.eks. bunter'
bulk_edit:
unit: Enhet
display_as: Vis som
@@ -189,6 +215,9 @@ nb:
inherits_properties?: Arver Egenskaper?
available_on: Tilgjengelig på
av_on: "Til. på"
properties:
property_name: Navn på egenskap
inherited_property: Arvet egenskap
variants:
to_order_tip: "Varer laget for bestilling har ikke et lagernivå, slik som ferske skiver brød laget for bestilling."
variant_overrides:
@@ -255,6 +284,8 @@ nb:
abn_placeholder: f.eks. 999 000 123
acn: Mva. nr.
acn_placeholder: f.eks. 999 000 123
display_invoice_logo: Vis logo i fakturaer
invoice_text: Legg til tilpasset tekst på slutten av fakturaer
contact:
name: Navn
name_placeholder: f.eks. Gustav Plum
@@ -327,18 +358,26 @@ nb:
shopfront_requires_login_tip: "Velg om kunder må logge inn for å se butikken eller om den er synlig for alle."
shopfront_requires_login_false: "Offentlig"
shopfront_requires_login_true: "Synlig kun for registrerte kunder."
recommend_require_login: "Vi anbefaler at brukerne logger på når bestillinger kan endres."
allow_guest_orders: "Gjestebestillinger"
allow_guest_orders_tip: "Tillat gjestebestillinger eller krev brukerregistrering."
allow_guest_orders_false: "Krev innlogging for å bestille"
allow_guest_orders_true: "Tillat gjestebestilling"
allow_order_changes: "Endre bestillinger"
allow_order_changes_tip: "Tillat at kundene kan endre bestillingen så lenge bestillingsrunden er åpen."
allow_order_changes_false: "Fullførte bestillinger kan ikke endres / kanselleres"
allow_order_changes_true: "Kunder kan endre / avbestille bestillinger mens bestillingsrunden er åpen"
shopfront_message: Melding Butikk
shopfront_message_placeholder: >
En valgfri forklaring for kunder med detaljer om hvordan din nettbutikk
fungerer, for å vises over produktlisten på din side.
shopfront_closed_message: Melding Butikk Stengt
shopfront_closed_message_placeholder: >
En melding som gir en mer detaljert forklaring om hvorfor din butikk
er stengt og/eller når kunder kan forvente at den åpner igjen. Dette
vises på din butikk kun når du ikke har noen aktive bestillingsrunder
(dvs. butikk er stengt).
shopfront_category_ordering: Kategorisortering Butikk
open_date: Åpningsdato
close_date: Stengedato
social:
@@ -422,6 +461,16 @@ nb:
next_step: Neste steg
choose_starting_point: 'Velg ditt startpunkt:'
order_cycles:
edit:
advanced_settings: Avanserte Innstillinger
update_and_close: Oppdater og Lukk
choose_products_from: 'Velg Produkter Fra:'
pickup_time_tip: Når bestillinger fra denne runden blir klar for kunden
pickup_instructions_tip: Disse instruksjonene vises til kunder etter de ferdigstiller en bestilling
exchange_form:
pickup_instructions_placeholder: "Henteinstruksjoner"
pickup_time_placeholder: "Klar til (dvs. Dato/Tid)"
receival_instructions_placeholder: "Mottaksinstruksjoner"
advanced_settings:
title: Avanserte Innstillinger
choose_product_tip: Du kan velge å begrense alle tilgjengelige produkter (både innkommende og utgående), til kun de i %{inventory}s varelager.
@@ -439,7 +488,7 @@ nb:
distributor: Distributør
products: Produkter
tags: Merker
delivery_detaisl: Hentings- / Leveringsdetaljer
delivery_details: Hente-/Leveringsdetaljer
debug_info: Debuginformasjon
name_and_timing_form:
name: Navn
@@ -457,13 +506,7 @@ nb:
customer_instructions_placeholder: Hente- eller leveringsmerknader
products: Produkter
fees: Avgifter
edit:
advanced_settings: Avanserte Innstillinger
update_and_close: Oppdater og Lukk
producer_properties:
form:
property: Egenskap
value: Verdi
index:
title: Produsentegenskaper
shared:
@@ -474,12 +517,20 @@ nb:
title: Fakturainnstillinger
invoice_style2?: Bruk den alternative fakturamodellen som inkluderer total avgiftsoppdeling pr rate og avgiftsrateinfo pr vare (passer ikke for land som viser priser ekskludert avgift)
enable_receipt_printing?: 'Vis valg for utskrift av kvitteringer ved bruk av kvitteringsprinter i nedtrekksmeny for bestillinger? '
checkout:
already_ordered:
cart: "handlekurv"
message_html: "Du har allerede en bestilling for denne bestillingsrunden. Sjekk %{cart}en for å se varene du bestilte før. Du kan også avbryte varer så lenge bestillingsrunden er åpen."
home:
hubs:
show_closed_shops: "Vis stengte butikker"
hide_closed_shops: "Skjul stengte butikker"
show_on_map: "Vis alle på kartet"
shared:
menu:
cart:
checkout: "Sjekk ut nå"
already_ordered_products: "Allerede bestilt i denne bestillingsrunden"
register_call:
selling_on_ofn: "Interessert i å bli med i Open Food Network?"
register: "Registrer her"
@@ -549,6 +600,7 @@ nb:
terms_of_service: "Vilkår"
on_demand: Ved forespørsel
none: Ingen
not_allowed: Ikke tillatt
label_shops: "Butikker"
label_map: "Kart"
label_producers: "Produsenter"
@@ -569,21 +621,12 @@ nb:
items: "varer"
cart_headline: "Din handlekurv"
total: "Sum"
checkout: "Gå til kassen"
cart_updating: "Oppdaterer handlekurv..."
cart_empty: "Handlekurven er tom"
cart_edit: "Rediger handlekurv"
card_number: Kortnummer
card_securitycode: "Sikkerhetskode"
card_expiry_date: Utløpsdato
ofn_cart_headline: "Gjeldende handlekurv for:"
ofn_cart_distributor: "Distributør:"
ofn_cart_oc: "Bestillingsrunde:"
ofn_cart_from: "Fra:"
ofn_cart_to: "Til:"
ofn_cart_product: "Produkt:"
ofn_cart_quantitiy: "Antall:"
ofn_cart_send: "Kjøp"
ie_warning_headline: "Din nettleser er for gammel :-("
ie_warning_text: "For den beste opplevelsen med Open Food Network anbefaler vi på det sterkeste å oppgradere nettleseren din:"
ie_warning_chrome: Last ned Chrome
@@ -668,6 +711,7 @@ nb:
order_billing_address: Fakturaadresse
order_delivery_on: Levering på
order_delivery_address: Leveringsadresse
order_delivery_time: Leveringstid
order_special_instructions: "Dine kommentarer:"
order_pickup_time: Klar for henting
order_pickup_instructions: Henteinstruksjoner
@@ -676,6 +720,8 @@ nb:
order_includes_tax: (inkludert MVA)
order_payment_paypal_successful: Din betaling via PayPal har blitt godkjent.
order_hub_info: Hub info
order_back_to_store: Tilbake til butikken
order_back_to_cart: Tilbake til handlekurven
bom_tip: "Bruk denne siden for å endre produktmengder på tvers av flere bestillinger. Produkter kan også fjernes fra bestillinger helt hvis påkrevd."
unsaved_changes_warning: "Ulagrede endringer finnes og vil gå tapt hvis du fortsetter."
unsaved_changes_error: "Felt med røde kanter inneholder feil."
@@ -767,6 +813,10 @@ nb:
hubs_intro: Handle lokalt
hubs_distance: Nærmest
hubs_distance_filter: "Vis meg butikker nær %{location}"
shop_changeable_orders_alert_html:
one: Din bestilling med <a href='%{path}' target='_blank'> %{shop} / %{order} </a> er åpen for vurdering. Du kan gjøre endringer til %{oc_close}.
other: Du har <a href='%{path}' target='_blank'> %{count} bestillinger med %{shop} </a> for øyeblikket åpen for gjennomgang. Du kan gjøre endringer til %{oc_close}.
orders_changeable_orders_alert_html: Denne bestillingen er bekreftet, men du kan gjøre endringer til <strong>%{oc_close}</strong>.
products_clear_all: Fjern alt
products_showing: "Viser:"
products_with: med
@@ -896,7 +946,7 @@ nb:
orders_edit_checkout: Kassen
orders_form_empty_cart: "Tøm handlekurv"
orders_form_subtotal: Delsum varer
orders_form_admin: Administrasjon og håndtering
orders_form_admin: Admin & Håndtering
orders_form_total: Total
orders_oc_expired_headline: Bestillinger stengt for denne runden
orders_oc_expired_text: "Beklager, bestillinger for denne runden stengte for %{time} siden! Kontakt din hub direkte for å høre om de tar i mot sene bestillinger."
@@ -906,7 +956,18 @@ nb:
orders_oc_expired_phone: "Telefon:"
orders_show_title: Ordrebekreftelse
orders_show_time: Bestilling klar for
orders_show_number: Ordrebekreftelse
orders_show_order_number: "Bestilling # %{number}"
orders_show_cancelled: Avbrutt
orders_show_confirmed: Bekreftet
orders_your_order_has_been_cancelled: "Din bestilling er avbrutt"
orders_could_not_cancel: "Beklager, bestillingen kunne ikke avbrytes"
orders_cannot_remove_the_final_item: "Kan ikke fjerne den siste varen fra en bestilling, vennligst avbryt bestillingen i stedet."
orders_bought_items_notice:
one: Et ekstra element er allerede bekreftet for denne bestillingsperioden
other: Ytterligere%{count} varer er allerede bekreftet for denne bestillingsrunden
orders_bought_edit_button: Rediger bekreftede varer
orders_bought_already_confirmed: "* allerede bekreftet"
orders_confirm_cancel: Er du sikker på at du vil avbryte denne bestillingen?
products_cart_distributor_choice: "Distributør for bestillingen:"
products_cart_distributor_change: "Din distributør for denne ordren vil bli endret til %{name} hvis du legger til dette produktet i handlekurven din."
products_cart_distributor_is: "Din distributør for denne ordren er %{name}."
@@ -1007,6 +1068,7 @@ nb:
enterprise_long_desc: "Lang beskrivelse"
enterprise_long_desc_placeholder: "Dette er muligheten din til å fortelle historien om din virksomhet - hva gjør deg annerledes og flott? Vi vil foreslå å holde din beskrivelse til under 600 tegn eller 150 ord."
enterprise_long_desc_length: "%{num} tegn / opptil 600 anbefales"
enterprise_limit: Bedriftsgrense
enterprise_abn: "ORG#"
enterprise_abn_placeholder: "f.eks. 999 000 123"
enterprise_acn: "MVA#"
@@ -1095,7 +1157,7 @@ nb:
balance: "Balanse"
transaction: "Transaksjon"
transaction_date: "Dato"
payment_state: "Betallingsstatus"
payment_state: "Betalingsstatus"
shipping_state: "Leveringsstatus"
value: "Verdi"
balance_due: "Balanse forfaller"
@@ -1142,6 +1204,7 @@ nb:
calculator_values: "Kalkulatorverdier"
flat_percent_per_item: "Prosent (per stk)"
new_order_cycles: "Nye Bestillingsrunder"
new_order_cycle: "Ny bestillingsrunde"
select_a_coordinator_for_your_order_cycle: "Velg en koordinator for denne syklus"
edit_order_cycle: "Endre Bestillingsrunde"
roles: "Roller"
@@ -1162,6 +1225,7 @@ nb:
price: "Pris"
on_hand: "På lager"
save_changes: "Lagre Endringer"
order_saved: "Bestilling lagret"
spree_admin_overview_enterprises_header: "Mine Bedrifter"
spree_admin_overview_enterprises_footer: "ADMINISTRER MINE BEDRIFTER"
spree_admin_enterprises_hubs_name: "Navn"
@@ -1203,6 +1267,8 @@ nb:
edit_profile_details: "Endre profildetaljer"
edit_profile_details_etc: "Endre din profilbeskrivelse, bilder, osv."
order_cycle: "Bestillingsrunde"
order_cycles: "Bestillingsrunder"
enterprises: "Bedrifter"
remove_tax: "Fjern avgift"
enterprise_terms_of_service: "Tjenestevilkår for Bedrifter"
enterprises_require_tos: "Bedrifter må godta Tjenestevilkår"
@@ -1423,6 +1489,9 @@ nb:
i din handlekurv gått ned. Her er hva som er endret.
now_out_of_stock: er nå ikke på lager.
only_n_remainging: "har nå kun %{num} igjen."
producers:
signup:
start_free_profile: "Start med en gratis profil, og utvid når du er klar!"
spree:
admin:
products:
@@ -1439,24 +1508,7 @@ nb:
date_picker:
format: '%Y-%m-%d'
js_format: 'åå-mm-dd'
zipcode: Postnummer
shipment_states:
backorder: restordre
partial: delvis
pending: ventende
ready: klar
shipped: sendt
payment_states:
balance_due: balanse forfaller
completed: fullført
checkout: kasse
credit_owed: kreditt skyldt
failed: feilet
paid: betalt
pending: ventende
processing: behandler
void: ugyldig
invalid: ugyldig
inventory: Varelager
order_mailer:
invoice_email:
hi: "Hei %{name}"
@@ -1477,3 +1529,46 @@ nb:
orders:
invoice:
tax_invoice: "AVGIFTSFAKTURA:"
payment_states:
balance_due: balanse forfaller
completed: fullført
checkout: kasse
credit_owed: kreditt skyldt
failed: feilet
paid: betalt
pending: ventende
processing: behandler
void: ugyldig
invalid: ugyldig
shipment_states:
backorder: restordre
partial: delvis
pending: ventende
ready: klar
shipped: sendt
user_mailer:
reset_password_instructions:
request_sent_text: |
En forespørsel om å nullstille ditt passord er utført.
Hvis det ikke var du som forespurte dette kan du se bort i fra denne eposten.
link_text: >
Hvis det var du som forespurte dette kan du klikke nedenfor:
issue_text: |
Hvis URL'en ovenfor ikke fungerer prøv å kopier og lim den inn i din nettleser.
Hvis du fortsatt har problemer vennligst ta kontakt.
weight: Vekt (per kg)
zipcode: Postnummer
users:
show:
open_orders: Åpne bestillinger
transaction_history: Betalingshistorie
open_orders:
order: Bestilling
shop: Butikk
changes_allowed_until: Endringer tillatt frem til
items: Varer
total: Total
edit: Endre
cancel: Avbryt
closed: Stengt
until: Inntil

View File

@@ -11,7 +11,7 @@ sv:
Var du gäst senast? Du behöver kanske skapa ett konto eller återställa ditt lösenord.
enterprise_confirmations:
enterprise:
confirmed: Tack, din e-postadress har bekräftats.
confirmed: Tack, din e-postadress har blivit bekräftad.
not_confirmed: Din e-postadress kunde inte bekräftas. Du kanske redan har genomfört det här steget?
confirmation_sent: "Bekräftelsemail skickat!"
confirmation_not_sent: "Kunde ej skicka bekräftelsemail."
@@ -28,6 +28,8 @@ sv:
producers_join: Svenska producenter kan nu gå med i Open Food Network. Välkomna!
charges_sales_tax: Debiterar Moms?
print_invoice: "Skriv ut faktura"
print_ticket: "Skriv ut kvitto"
select_ticket_printer: "Välj skrivare för bijetterna"
send_invoice: "Skicka faktura"
resend_confirmation: "Skicka bekräftelse igen"
view_order: "Se beställning"
@@ -49,6 +51,17 @@ sv:
say_yes: "Ja"
then:
sort_order_cycles_on_shopfront_by: "Sortera Cykler Av Ordrar På Skyltfönster Efter"
required_fields: Fält som måste fyllas i är märkta med en asterisk
select_continue: Välj och fortsätt
remove: Ta bort
or: eller
collapse_all: Minimera alla
expand_all: Expandera alla
loading: Laddning...
show_more: Visa mer
show_all: Visa alla
show_all_with_more: "Visa alla (%{num} More)"
cancel: Makulera
admin:
date: Datum
email: epost
@@ -73,55 +86,58 @@ sv:
columns: Kolumner
actions: Handlingar
viewing: "Tittar på: %{current_view_name}"
description: Beskrivning
whats_this: Vad är detta?
tag_has_rules: "Regler för denna tagg: %{num}"
has_one_rule: "har en regel"
has_n_rules: "har %{num} regler"
unsaved_confirm_leave: "Det finns ändringar på denna sida som ej sparats. Fortsätta utan att spara?"
unsaved_changes: "Du har ändringar som ej sparats"
accounts_and_billing_settings:
method_settings:
default_accounts_payment_method: "Default Accounts Payment Method"
default_accounts_shipping_method: "Default Accounts Shipping Method"
default_accounts_payment_method: "Standardkonto för bealningsmetod"
default_accounts_shipping_method: "Standardkonto för leveransmetod"
edit:
accounts_and_billing: "Konton och fakturering"
accounts_administration_distributor: "distributör av bokföringsadministration"
accounts_administration_distributor: "Kontoadministrations-distributör"
admin_settings: "Inställningar"
update_invoice: "Uppdatera fakturor"
finalise_invoice: "Slutför fakturor"
finalise_user_invoices: "Slutför användarafakturor"
finalise_user_invoice_explained: "Använd den här knappen för att slutföra alla fakturor i systemet för den gångna månaden. Denna uppgift ställas in så att den utförs automatiskt en gång per månad."
manually_run_task: "Manuellt utförda uppgifter"
auto_update_invoices: "Automatisk uppdatering av fakturor varje natt kl 01:00"
finalise_invoice: "Slutför fakturering"
auto_finalise_invoices: "Slutför automatiskt fakturor månadsvis den 2:a dagen kl 01;30"
manually_run_task: "Manuellt utförd bearbetning"
update_user_invoice_explained: "Använd denna knapp för att omedelbart uppdatera denna månads fakturor för varje företag i systemet. Denna bearbetning kan köras automatiskt varje natt."
finalise_user_invoices: "Slutför användarfakturor"
finalise_user_invoice_explained: "Använd denna knapp för att slutföra alla fakturor i systemet avseende föregående kalendermånad. Det går att ställa in denna bearbetning så att den utförs automatiskt en gång per månad."
update_user_invoices: "Uppdatera användarfakturor"
update_user_invoice_explained: "Använd denna knapp för att omedelbart uppdatera alla fakturor innevarande månad för alla företag i systemet. Den här uppgiften kan ställas in så att den automatiskt utförs varje natt."
auto_finalise_invoices: "Automatisk summering av fakturor den 2:a kl 01.30 "
auto_update_invoices: "Automatisk uppdatering av fakturor varje natt kl 01.00"
business_model_configuration:
edit:
business_model_configuration: "Konfigurera affärsmodell"
business_model_configuration_tip: "Configure the rate at which shops will be charged each month for use of the Open Food Network."
bill_calculation_settings: "Bill Calculation Settings"
bill_calculation_settings_tip: "Adjust the amount that enterprises will be billed each month for use of the OFN."
shop_trial_length: "Försökstiden är (dagar)"
shop_trial_length_tip: "The length of time (in days) that enterprises who are set up as shops can run as a trial period."
fixed_monthly_charge: "Fixed Monthly Charge"
fixed_monthly_charge_tip: "A fixed monthly charge for all enterprises who are set up as a shop and have exceeded the minimum billable turnover (if set)."
business_model_configuration: "Företagsmodell"
business_model_configuration_tip: "Beräkna det belopp som varje affär skall betala varje månad för användningen av OFN. "
bill_calculation_settings: "Inställningar för beräkning av fakturor"
bill_calculation_settings_tip: "Justera det belopp företag skall faktureras varje månad för användning av OFN."
shop_trial_length: "Försöksperiod (Dagar)"
shop_trial_length_tip: "Antal dagar som företag som definierats som affärer kan ha som försöksperiod."
fixed_monthly_charge: "Bestämd månadsavgift"
fixed_monthly_charge_tip: "En bestämd månadsavgift för alla företag som är definierade som affärer och som överskridit minsta fakturerade omsättningen (om sådan bestämts)."
percentage_of_turnover: "Procent av omsättning"
percentage_of_turnover_tip: "When greater than zero, this rate (0.0 - 1.0) will be applied to the total turnover of each shop and added to any fixed charges (to the left) to calculate the monthly bill."
monthly_cap_excl_tax: "månatligt tak (exkl. moms)"
monthly_cap_excl_tax_tip: "When greater than zero, this value will be used as a cap on the amount that shops will be charged each month."
tax_rate: "Tax Rate"
tax_rate_tip: "Tax rate that applies to the the monthly bill that enterprises are charged for using the system."
minimum_monthly_billable_turnover: "Minimum Monthly Billable Turnover"
minimum_monthly_billable_turnover_tip: "Minimum monthly turnover before a shopfront will be charged for using OFN. Enterprises turning over less than this amount in a month will not be charged, either as a percentage or fixed rate."
example_bill_calculator: "Example Bill Calculator"
example_bill_calculator_legend: "Alter the example turnover to visualise the effect of the settings to the left."
example_monthly_turnover: "Example Monthly Turnover"
example_monthly_turnover_tip: "An example monthly turnover for an enterprise which will be used to generate calculate an example monthly bill below."
cap_reached?: "Cap Reached ?"
cap_reached?_tip: "Whether the cap (specified to the left) has been reached, given the settings and the turnover provided."
included_tax: "Included tax"
included_tax_tip: "The total tax included in the example monthly bill, given the settings and the turnover provided."
total_monthly_bill_incl_tax: "Total Månadskostnad (Inkl. Skatter)"
total_monthly_bill_incl_tax_tip: "The example total monthly bill with tax included, given the settings and the turnover provided."
percentage_of_turnover_tip: "När den är större än noll, denna taxa (0,0 - 1,0) kommer att läggas till den totala omsättningen för varje affär och adderas till varje bestämd avgift (till vänster) vid beräkning av månadsavgiften."
monthly_cap_excl_tax: "månadstak (exkl. GST)"
monthly_cap_excl_tax_tip: "När det är större än noll, kommer detta värde att användas som tak för det belopp som affärer skall faktureras varje månad."
tax_rate: "Skattesats"
tax_rate_tip: "Skattesats som används på månadsfakturan som företag skall betala för att använda systemet."
minimum_monthly_billable_turnover: "Minsta månatliga fakturerbara omsättning"
minimum_monthly_billable_turnover_tip: "Minsta månadsomsättning i en en butiks skyltfönster får betala för att använda OFN. Företag vars omsättning understiger detta belopp under en månad behöver ej betala vare sig procentuellt eller med en fast taxa."
example_bill_calculator: "Exempel på beräkning av en faktura"
example_bill_calculator_legend: "Ändra omsättningen i exemplet för att åskådliggöra effekten av ändrade inställningar till vänster."
example_monthly_turnover: "Exempel på månatlig omsättning"
example_monthly_turnover_tip: "Ett exempel på månatlig omsättning för företaget som används för att beräkna en månatlig faktura i exemplet nedan."
cap_reached?: "Är taket nått?"
cap_reached?_tip: "Visar om taket (specificerat till vänster) har nåtts. med de givna inställningarna och omsättningen."
included_tax: "Skatten är inkluderad"
included_tax_tip: "All skatt är inkluderad i exemplets månadsfaktura enligt de inställningar och den omsättning som var angiven."
total_monthly_bill_incl_tax: "Total månadsfaktura (inkl skatt)"
total_monthly_bill_incl_tax_tip: "Exemplets totala månadsfaktura med skatt inkluderad enligt de inställningar och den omsättning som var angiven."
customers:
index:
add_customer: "Lägg till kund"
@@ -143,6 +159,28 @@ sv:
edit: 'Ändra'
update_address: 'Uppdatera Adress'
confirm_delete: 'Vill du verkligen radera?'
cache_settings:
show:
title: Inkomst
distributor: Distributör
order_cycle: Ordercykel
status: Status
diff: Differens
contents:
edit:
title: Innehåll
enterprise_fees:
index:
title: Företagsavgifter
enterprise: Företag
fee_type: Avgiftstyp
name: Namn
tax_category: Skattekategori
calculator: Beräkning
calculator_values: Beräknade summor
enterprise_groups:
index:
new_button: Ny företagsgrupp
products:
bulk_edit:
unit: Enhet
@@ -152,7 +190,14 @@ sv:
inherits_properties?: Ärva egenskaper?
available_on: 'Tillgänglig '
av_on: "Md. På"
properties:
property_name: Egendomens Namn
inherited_property: Ärvd Egendom
variants:
to_order_tip: "Varor som framställs för en order har inget eget varunummer, ex formbröd som värms vid en order."
variant_overrides:
loading_flash:
loading_inventory: LADDNING AV INVENTARIELISTA
index:
title: Lager
description: Använd den här sidan som inventarieförteckning för ditt företag. Varje produkt som du angett här gäller framför de som du skrivit på "produktsidan"
@@ -193,18 +238,95 @@ sv:
max_fulfilled_units: "Maximalt expedierade enheter"
order_error: "En del misstag måste korrigeras innan du kan uppdatera en order. Alla rödmarkerade fält innehåller fel."
variants_without_unit_value: "VARNING: På en del ställen saknas antalsuppgift"
order_cycles:
edit:
choose_products_from: "Välj Produkter Från:"
enterprise:
select_outgoing_oc_products_from: Välj utgående produkter i beställningsrunda från
enterprises:
index:
producer?: Producent?
title: Företag
new_enterprise: Nya företag
producer?: "Producent?"
package: Paket
status: Status
manage: Hantera
form:
about_us:
desc_short: Kort beskrivning
desc_short_placeholder: Berätta om ditt företag i en eller två meningar
desc_long: Om oss
desc_long_placeholder: Berätta om kunder om dig själv. Denna information kommer att stå i din allmänna profil.
business_details:
abn: ABN
abn_placeholder: ex 070 56 78 90
acn: ACN
acn_placeholder: ex 123 456 789
contact:
name: Namn
name_placeholder: ex. Gustav Persson
email_address: E-postadress
email_address_placeholder: ex gustav@telia.com
phone: Telefon
phone_placeholder: ex 123 456 789
website: Hemsida
website_placeholder: ex www.shop.com
enterprise_fees:
name: Namn
fee_type: Avgiftstyp
manage_fees: Skötsel av företagsavgifter
no_fees_yet: Du har inga företagsavgifter ännu.
create_button: Skapa en nu
images:
logo: Logotyp
promo_image_placeholder: 'Denna bild visas under "Om oss"'
promo_image_note1: 'VAR VÄNLIG OBSERVERA:'
promo_image_note2: Varje reklambild som laddas här kommer att beskäras till 1200 x 260.
promo_image_note3: Logotypen visas högst upp på företagets profilsida och i rullgardinsmenyer.
inventory_settings:
text1: Du kan välja att hantera ditt varulager och dina priser via din
inventory: Inventarielista
text2: >
Om använder inventeringsverktyget kan du välja huruvida nya produkter
som lagts till av dina leverantörer behöver blir tillagda till din lagerförteckning
innan de kan bli lagerförda. Om du inte använder din inventering för
att hantera dina produkter bör du välja det 'rekommenderade' alternativet
nedan:
preferred_product_selection_from_inventory_only_yes: Nya produkter kan placeras i mitt skyltfönster (rekommenderas)
preferred_product_selection_from_inventory_only_no: Ny produkter måste adderas till min inventarielista innan de kan placeras i mitt skyltfönster
payment_methods:
name: Namn
applies: Gäller?
manage: Bestäm betalningssätt
not_method_yet: Du har ännu inte bestämt betalningssätt
create_button: Skapa ett nytt betalningssätt
create_one_button: Skapa en nu
primary_details:
name: Namn
name_placeholder: t.ex. Professor Plums Biodynamiska Tryfflar
groups: Grupper
groups_tip: Bestäm i vilka grupper och områden du är medlem. Detta underlättar för kunder att hitta ditt företag.
groups_placeholder: Starta din sökning efter tillgängliga grupper...
primary_producer: Primär producent?
primary_producer_tip: Välj "Producent" om du är en primär producent av livsmedel.
producer: Producent
any: Vilken som helst
none: Ingen
own: Egen
sells: Säljer
sells_tip: "Inget - företag säljer direkt till kunderna.<br />Egna - Företag säljer egna produkter till kunder.<br />Några - Företag kan sälja egna eller andra företags produkter.<br />"
visible_in_search: Synlig vid sökning?
visible_in_search_tip: Bestämmer om detta företag kommer att bli synligt för kunder då man söker på hemsidan.
visible: Synlg
not_visible: Ej synlig
permalink: Permalänk (inga mellanrum)
permalink_tip: "Denna permalänk används för att skapa URL:en till din butik: %{link}din-butiks-namn/butik"
link_to_front: Länk till sitt skyltfönster
link_to_front_tip: En direkt länk till ditt skyltfönster på OFN
shipping_methods:
name: Namn
applies: Gäller?
manage: Bestäm leversmetoder
create_button: Skapa ny leveransmetod
create_one_button: Skapa en nu
no_method_yet: Du har inte bestämt leveransmetod ännu.
shop_preferences:
shopfront_requires_login: "Offentligt visat skyltfönster?"
shopfront_requires_login_tip: "Välj om kunderna måste logga in för att se skyltfönstret eller om det skall visas för alla."
@@ -214,6 +336,146 @@ sv:
allow_guest_orders_tip: "Tillåt leveranskontroll som gäst eller registrerad kund"
allow_guest_orders_false: "Kräv inloggning för att beställa"
allow_guest_orders_true: "Tillåt checkout för gäster"
shopfront_message_placeholder: >
En frivillig förklaring för kunder som beskriver hur ditt skyltfönster
skall användas. Den visas ovanför produktlistan i affärsfönstret.
shopfront_closed_message_placeholder: >
Ett meddelande som ger en mer detaljerad förklaring varför din affär
är stängd/eller när kunder kan förvänta att den öppnar igen. Detta visas
i din affär endast när du inte har en aktiv ordercykel (dvs när affären
är stängd).
open_date: Öppningsdatum
close_date: Stängningsdatum
social:
twitter_placeholder: t.ex. @the_prof
tag_rules:
default_rules:
by_default: Som standard
no_rules_yet: Standardregler har ännu ej fasttällts
add_new_button: '+ Lägg till ny standardregel'
no_tags_yet: Inga etiketter finns för detta företag ännu
no_rules_yet: Inga regler finns för denna etikett ännu
for_customers_tagged: 'För kunder taggade med:'
add_new_rule: '+ Lägg till en ny regel'
add_new_tag: '+ Lägg till en ny etikett'
users:
email_confirmation_notice_html: "E-post bekräftelse har inte kommit. Vi har sänt en bekräftande e-post till %{email}."
resend: Återsänd
owner: 'Ägare'
owner_tip: Den primära användaren är ansvarig för detta företag.
notifications: Meddelanden
notifications_tip: Meddelanden om order kommer att sändas till denna e-postadress,
notifications_placeholder: ex gustav@telia.com
notifications_note: 'Observera: En ny e-postadress behöver kanske bli bekräftad före användning'
managers: Chefer
managers_tip: Andra användare med tillstånd att leda detta företag.
actions:
edit_profile: Redigera profilen
properties: Egenskaper
payment_methods: Betalningssätt
payment_methods_tip: Detta företag har inga betalningssätt
shipping_methods: Transportsätt
shipping_methods_tip: Detta företag har inga transportsätt
enterprise_fees: Företagsavgifter
enterprise_fees_tip: Detta företag har inga avgifter
admin_index:
name: Namn
role: Roll
sells: Säljer
visible: Synligt?
owner: Ägare
producer: Producent
change_type_form:
producer_profile: Producentprofil
connect_ofn: Ansluten via OFN
always_free: ALLTID GRATIS
producer_description_text: 'Lägg till dina produkter till OFN, tillåt lagringscentraler att lagra dina varor i sina lokaler. '
producer_shop: Producentaffär
sell_your_produce: Sälj dina egna produkter
sell_description_text: Sälj dina egna produkter direkt till kunder via ditt eget OFN skyltfönster.
sell_description_text2: En producentaffär är enbart för din produkt, Om du önskar sälja produkter odlade/producerade på annat håll, välj "Producer Hub".
producer_hub: Producentcentral
producer_hub_text: Sälj produkter av egen eller annans tillverkning
producer_hub_description_text: Ditt företag är grunden i ert lokala livsmedelssystem. Du kan sälja av egen tillverkning likväl som varor samlade från andra företag genom ditt skyltfönster i OFN.
profile: Enbart profil
get_listing: Få en listning
profile_description_text: Folk kan hitta och kontakta dig i OFN. Ditt företag kommer att markeras på en karta och det går att söka i listor.
hub_shop: Affär vid leveranscentral
hub_shop_text: 'Sälj andras produkter '
hub_shop_description_text: Ditt företag är grunden i dit lokala livsmedelssystem. Du kan samla produkter från andra företag och sälja dem i din affär genom OFN.
choose_option: Var vänlig välj ett av förslagen ovan.
change_now: Ändra nu
enterprise_user_index:
loading_enterprises: LADDAR FÖRETAG
no_enterprises_found: Inget företag kunde hittas.
search_placeholder: Sök på namn
manage: Administrera
new_form:
owner: Ägare
owner_tip: Den primära användaren är ansvarig för detta företag.
i_am_producer: Jag är en Tillverkare
contact_name: Kontaktperson
edit:
editing: 'Redigera:'
back_link: Åter till företagslistan
new:
title: Nya företag
back_link: Åter till företagslistan
welcome:
welcome_title: Välkommen till OFN!
welcome_text: Du har korrekt slutfört en
next_step: Nästa steg
choose_starting_point: 'Välj din startpunkt:'
order_cycles:
advanced_settings:
title: Avancerade inställningar
choose_product_tip: Du kan välja att begränsa alla tillgängliga produkter (både inkommande och utgående), till enbart dem i %{inventory}'s inventory.
preferred_product_selection_from_coordinator_inventory_only_here: Enbart koordinatorns inventarielista
preferred_product_selection_from_coordinator_inventory_only_all: Alla tillgängliga produkter
save_reload: Spara och ladda om sidan
coordinator_fees:
add: Lägg till koordinatoravgift
form:
incoming: Inkommande
supplier: Leverantör
receival_details: Mottagna detaljer
fees: Avgifter
outgoing: Utgående
distributor: Distributör
products: Produkter
tags: Etiketter
delivery_detaisl: Hämtade/levererade detaljer
debug_info: Felinformation
name_and_timing_form:
name: Namn
orders_open: Order öppna till
coordinator: Koordinator
order_closes: Order stänger
row:
suppliers: leverantörer
distributors: distributörer
variants: varianter
simple_form:
ready_for: Klar för
ready_for_placeholder: Datum/tid
customer_instructions: Kundinstruktioner
customer_instructions_placeholder: Hämtnings eller leverans meddelanden
products: Produkter
fees: Avgifter
edit:
advanced_settings: Avancerade inställningar
update_and_close: Uppdatera och Stäng
producer_properties:
index:
title: Producentegenskaper
shared:
user_guide_link:
user_guide: Användarinstruktion
invoice_settings:
edit:
title: Fakturainställningar
invoice_style2?: Använd den alternativa faktureringsmodellen som inkluderar totala skattefördelning per beräkning och skatt per artikel (ännu inte passande för länder som visar priser exklusive skatt)
enable_receipt_printing?: 'Visa alternativ för att skriva ut recept genom att använda termiska skrivare i ordermenyn? '
home:
hubs:
show_closed_shops: "Visa stängda affärer"
@@ -231,10 +493,29 @@ sv:
require_customer_login: "Denna butik är endast för kunder."
require_login_html: "Var vänlig %{login} om du redan har ett konto. I annat fall %{register} för att bli kund."
require_customer_html: "Vänlig %{contact} %{enterprise} för att bli en kund."
invoice_column_item: "Artikel"
invoice_column_qty: "Antal"
invoice_billing_address: "Faktureringsadress"
invoice_column_tax: "VAT"
invoice_column_price: "Pris"
invoice_column_item: "Artikel"
invoice_column_qty: "Antal"
invoice_column_unit_price_with_taxes: "Styckpris (Inkl skatt)"
invoice_column_unit_price_without_taxes: "Styckpris (Exkl skatt)"
invoice_column_price_with_taxes: "Slutsumma (inkl skatt)"
invoice_column_price_without_taxes: "Slutsumma (Exkl skatt)"
invoice_column_tax_rate: "Skattesats"
tax_invoice: "SKATTEFAKTURA"
tax_total: "Summa skatter (%{rate}):"
total_excl_tax: "Summa (Exkl skatt):"
total_incl_tax: "Summa (Inkl skatt):"
abn: "ABN:"
acn: "ACN:"
invoice_issued_on: "Faktura utfärdad på:"
order_number: "Fakturanummer:"
date_of_transaction: "Transaktionsdatum:"
ticket_column_qty: "Kvantitet"
ticket_column_item: "Vara"
ticket_column_unit_price: "Styckpris"
ticket_column_total_price: "Summa"
logo: "Logotyp (640x130)"
logo_mobile: "Mobil logotyp (75x26)"
logo_mobile_svg: "Mobil logotyp (SVG)"
@@ -258,10 +539,13 @@ sv:
phone: Telefon
next: Näst
address: Adress
address_placeholder: eg. 123 High Street
address2: Adress (fortgående)
city: Ort
state: Region
city_placeholder: eg. Northcote
postcode: Postnummer
postcode_placeholder: eg. 3070
state: Region
country: Land
unauthorized: Obehörig
terms_of_service: "Användarvillkor "
@@ -394,6 +678,7 @@ sv:
order_includes_tax: (inkluderar skatter)
order_payment_paypal_successful: Din betalning via PayPal har gått bra.
order_hub_info: Hub-information
bom_tip: "Använd denna sida för att ändra produktkvantiteter på flera order samtidigt. Produkter kan också tas bort från fler order samtidigt, om så erfordras."
unsaved_changes_warning: "Osparade förändringar existerar och kommer förloras om du fortsätter."
unsaved_changes_error: "Fält med röda kanter innehåller fel."
products: "Produkter"
@@ -405,7 +690,7 @@ sv:
email_registered: "är nu del av"
email_userguide_html: "Användarhandboken med detaljerade uppgifter hur du skall skapa din Producer eller Hub finns här: %{link}"
email_admin_html: "Du kan sköta ditt konto genom att logga in %{link} eller att klicka på kuggen i det övre högra hörnet på hemsidan och välja Administration."
email_community_html: "Vi har också ett internetforum för gemensamma diskussioner som är relaterade till OFN programvara och den unika utmaningen att använda ett matföretag. Vi utvecklas ständigt och dina inlägg till detta forum påverkar vad som händer i fortsättningen."
email_community_html: "Vi har också ett internetforum för gemensamma diskussioner som är relaterade till OFN programvara och den unika utmaningen att använda ett matföretag. Vi utvecklas ständigt och dina inlägg till detta forum påverkar vad som händer i fortsättningen. %{link}"
join_community: "Gå med i gemenskapen"
email_help: "Om du hamnar i svårigheter, titta i vårt FAQ, sök igenom vårt forum eller skicka en fråga till Support och du kommer att få hjälp."
email_confirmation_greeting: "Hej, %{contact}!"
@@ -479,6 +764,7 @@ sv:
hubs_filter_by: "Filtrera med"
hubs_filter_type: "Typ"
hubs_filter_delivery: "Leverans"
hubs_filter_property: "Egenskaper"
hubs_matches: "Menade du?"
hubs_intro: Handla i ditt närområde
hubs_distance: Närmast till
@@ -493,7 +779,7 @@ sv:
products_edit_cart: "Redigera din varukorg "
products_from: från
products_change: "Inga ändringar att spara."
products_update_error: "Sparandet misslyckades med följande fel:"
products_update_error: "Sparandet misslyckades med följande fel(en):"
products_update_error_msg: "Sparandet misslyckades."
products_update_error_data: "Sparandet misslyckades beroende på felaktiga data."
products_changes_saved: "Ändringar sparade."
@@ -724,9 +1010,9 @@ sv:
enterprise_long_desc_placeholder: "Detta är ditt tillfälle att beskriva ditt företag - vad som gör dig speciell och intressant. Vi föreslår att du begränsar beskrivningen till 600 tecken eller 150 ord."
enterprise_long_desc_length: "%{num} tecken / upp till 600 rekommenderas"
enterprise_abn: "ABN"
enterprise_abn_placeholder: "ex 123 123 123"
enterprise_abn_placeholder: "t.ex. 99 123 456 789"
enterprise_acn: "ACN"
enterprise_acn_placeholder: "ex 123 123 123"
enterprise_acn_placeholder: "t.ex. 123 456 789"
enterprise_tax_required: "Du måste göra ett val"
enterprise_final_step: "Sista steget!"
enterprise_social_text: "Hur kan folk hitta %{enterprise} på nätet?"
@@ -744,7 +1030,7 @@ sv:
registration_intro: "Nu kan du skapa en profil för din producent eller matställe"
registration_action: "Låt oss börja!"
registration_checklist: "Du kommer att behöva"
registration_time: "5 - 10 minuter"
registration_time: "5-10 minuter"
registration_enterprise_address: "Företagets adress"
registration_contact_details: "Uppgifter hur man får kontakt"
registration_logo: "Din logotype"
@@ -785,7 +1071,7 @@ sv:
registration_detail_suburb_placeholder: "ex spånga"
registration_detail_suburb_error: "Var vänlig skriv in en förort"
registration_detail_postcode: "Postkod:"
registration_detail_postcode_placeholder: "ex 123 123"
registration_detail_postcode_placeholder: "t.ex. 3070"
registration_detail_postcode_error: "Postkod saknas"
registration_detail_state: "Land:"
registration_detail_state_error: "Land måste fyllas i "
@@ -835,12 +1121,12 @@ sv:
admin_entreprise_groups_data_powertip_logo: "Detta är logotypen för gruppen"
admin_entreprise_groups_data_powertip_promo_image: "Denna bild visas överst på gruppens profil"
admin_entreprise_groups_contact: "Kontakt"
admin_entreprise_groups_contact_phone_placeholder: "ex 123 123"
admin_entreprise_groups_contact_address1_placeholder: "ex Höga gatan"
admin_entreprise_groups_contact_phone_placeholder: "t.ex. 98 7654 3210"
admin_entreprise_groups_contact_address1_placeholder: "t.ex. 123 Höga gatan"
admin_entreprise_groups_contact_city: "Förort"
admin_entreprise_groups_contact_city_placeholder: "ex Norrberga"
admin_entreprise_groups_contact_zipcode: "Postnummer"
admin_entreprise_groups_contact_zipcode_placeholder: "ex 123"
admin_entreprise_groups_contact_zipcode_placeholder: "t.ex. 3070"
admin_entreprise_groups_contact_state_id: "Region"
admin_entreprise_groups_contact_country_id: "Land"
admin_entreprise_groups_web: "Webb resurser"
@@ -903,7 +1189,7 @@ sv:
spree_admin_single_enterprise_alert_mail_confirmation: "Var vänlig och fastställ e-postadressen för"
spree_admin_single_enterprise_alert_mail_sent: "Vi har sänt e-post till "
spree_admin_overview_action_required: "Ett ställningstagande behövs"
spree_admin_overview_check_your_inbox: "Var vänlig och kontrollera din inkorg för ytterligare instruktioner. Tack!"
spree_admin_overview_check_your_inbox: "Var vänlig kontrollera din inkorg för ytterligare instruktioner. Tack!"
change_package: "Ändra förpackning"
spree_admin_single_enterprise_hint: "Tips: För att folk skall hitta dig lättare, slå på din reklam under"
your_profil_live: "Din profil direkt"
@@ -920,6 +1206,12 @@ sv:
edit_profile_details_etc: "Ändra beskrivningen av din profil, bilder, etc"
order_cycle: "Ordercykel"
remove_tax: "Tag bort skatt"
enterprise_terms_of_service: "Företagets servicevillkor"
enterprises_require_tos: "Företag måste acceptera servicevillkoren"
enterprise_tos_link: "Länk till företagets servicevillkor"
enterprise_tos_message: "Vi vill arbeta med personer som delar våra mål och värderingar. Därför ber vi nya företag att samtycka med vår"
enterprise_tos_link_text: "Servicevillkor"
enterprise_tos_agree: "Jag samtycker med ovanstående servicevillkor "
tax_settings: "Skatteskalor"
products_require_tax_category: "produkter kräver skattekategori"
admin_shared_address_1: "Adress"
@@ -953,6 +1245,22 @@ sv:
report_order_cycle: "Beställningsrundor"
report_entreprises: "Företag:"
report_users: "Användare:"
report_tax_rates: "Skattesatser"
report_tax_types: "Typer av skatt"
report_header_order_number: "Ordernummer"
report_header_date: "Datum"
report_header_items: "Varor"
report_header_items_total: "Varusumma %{currency_symbol}"
report_header_taxable_items_total: "Skattepliktig varusumma (%{currency_symbol})"
report_header_sales_tax: "Skatt på försäljning (%{currency_symbol})"
report_header_delivery_charge: "Leveransavgift (%{currency_symbol})"
report_header_tax_on_delivery: "Leveransskatt (%{currency_symbol})"
report_header_tax_on_fees: "Skatt på avgifter (%{currency_symbol})"
report_header_total_tax: "Summa skatter (%{currency_symbol})"
report_header_customer: "Kund"
report_header_distributor: "Distributör"
report_header_total_excl_vat: "Summa exkl skatt (%{currency_symbol})"
report_header_total_incl_vat: "Summa inkl skatt (%{currency_symbol})"
initial_invoice_number: "Initialt fakturanummer"
invoice_date: "Fakturadatum:"
due_date: "Sista betalningsdag:"
@@ -994,7 +1302,141 @@ sv:
validation_msg_product_category_cant_be_blank: "^Produktkategori kan inte vara blank"
validation_msg_tax_category_cant_be_blank: "^Skattekategori kan inte vara blank"
validation_msg_is_associated_with_an_exising_customer: "är knuten till en existerande kund"
js:
admin:
modals:
got_it: Förstått
tag_rule_help:
title: Regler för etiketter
overview: Översikt
overview_text: >
Etikettreglerna är ett sätt att beskriva vilka varor visas eller inte
för olika kunder. Reglerna kan beröra leveransmetoder, betalningssätt,
produkt- eller ordercykler.
by_default_rules: "Regler för standard "
by_default_rules_text: >
Standardreglerna tillåter dig att dölja varor så att de ej visas som
standard. Denna metod kan sedan upphävas av en "ej-standard" regel för
de kunder som har särskilda etiketter.
customer_tagged_rules: "Regler för kundetiketter"
customer_tagged_rules_text: >
Genom att skapa regler för en speciell kundetikett kan du upphäva standardförfarandet
(vare sig det är att visa eller dölja varor) för kunder med den specifika
etiketten.
panels:
save: SPARA
saved: SPARAD
saving: SPARANDE
enterprise_package:
hub_profile: Hubbprofil
hub_profile_cost: "KOSTNAD: ALLTID GRATIS"
hub_profile_text1: >
Folk kan finna och kontakta dig på OFN. Ditt företag visas på en karta
och går att söka på i olika listor.
hub_profile_text2: >
Att ha en profil samt ha förbindelser inom ditt lokala livsmedelssystem
via OFN är alltid gratis.
hub_shop: Affär vid leveranscentral
hub_shop_text1: >
hej
hub_shop_text2: >
Centraler kan finnas i olika former, antingen kan de var en kooperation,
en inköpsgrupp, en vegan-box program eller en lokal speceriaffär.
hub_shop_text3: >
Om du också önskar att sälja dina egna produkter måste du ändra detta
företag till att vara en producent.
choose_package: Var vänlig välj en förpackning
choose_package_text1: >
Ditt företag kommer inte att var aktiverat förrän du valt förpackning
från listan till vänster.
choose_package_text2: >
Klicka på ett alternativ för att se mer detaljerad information om varje
förpackning och klicka på den röda SAVE knappen när du är klar!
profile_only: Enbart profil
profile_only_cost: "KOSTNAD: ALLTID GRATIS"
profile_only_text1: >
En profil gör att du blir synlig och kan kontaktas av andra och är ett
sätt att berätta din historia.
profile_only_text2: >
Om du föredrar att fokusera på att framställa mat och vill slippa arbetet
med försäljning till andra, behöver du inte en affär i OFN.
profile_only_text3: >
Lägg till dina produkter på OFN och tillåt centraler lagra dina produkter
i sina lokaler.
producer_shop: Producentaffär
producer_shop_text1: >
Sälj dina produkter direkt till kunder genom ditt alldeles egna OFN
skyltfönster.
producer_shop_text2: >
En producentaffär är enbart för din tillverkning, om du önskar sälja produkter
odlade/framställda på annat ställe, var vänlig välj "Producer Hub".
producer_hub: Producentcentral
producer_hub_text1: >
Ditt företag är grunden i ditt lokala livsmedelssystem. Du kan sälja
dina egna såväl som produkter inköpta från andra företag genom ditt
skyltfönster på OFN.
producer_hub_text2: >
Producentcentraler kan finnas i många former, antingen en CSA. en vegan-box
program, eller en kooperation med takträdgårdar.
producer_hub_text3: >
OFN försöker stödja så många olika former av centraler som möjligt,
så oavsett din situation så försöker vi förse dig med de verktyg du
behöver för att hantera din organisation eller lokala mataffär.
get_listing: Få en listning
always_free: ALLTID GRATIS
sell_produce_others: 'Sälj andras produkter '
sell_own_produce: Sälj dina egna produkter
sell_both: Sälj produkter av egen eller annans tillverkning
enterprise_producer:
producer: Producent
producer_text1: >
Producenter gör smaskiga saker att äta eller dricka. Du är en producent
om du odlar,brygger bakar, jäser, mjölkar eller mal.
producer_text2: >
Producenter kan också ha andra funktioner såsom att samla matvaror från
andra företag och sälja dem genom en affär på OFN.
non_producer: Icke-producenter
non_producer_text1: >
Icke-tllverkare kan inte framställa mat själva, vilket innebär att de
kan ej framställa sina egna produkter för försäljning via OFN.
non_producer_text2: >
I stället icke-tillverkare specialisera sig på att sammanföra producenter
med den slutliga köparen genom att plocka samman, sortera, förpacka
sälja eller leverera mat.
producer_desc: Producenter av mat
producer_example: ex ODLARE, BAGERIER, BRYGGERIER, TILLVERKARE
non_producer_desc: Andra matföretag
non_producer_example: t.ex. matbutiker, matkooperativ, köpgrupper
enterprise_status:
status_title: "%{name} är uppsatt och redo att användas!"
severity: Allvarlighet
description: Beskrivning
resolve: Besluta
new_tag_rule_dialog:
select_rule_type: "Välj en regeltyp:"
out_of_stock:
reduced_stock_available: Minska tillgängligt lager
out_of_stock_text: >
Under tiden du handlat har lagernivån för en eller flera produkter i din
kundvagn minskat. Detta har ändrats:
now_out_of_stock: Är nu slut
only_n_remainging: "nu återstår endast %{num}"
spree:
admin:
products:
bulk_edit:
header:
title: 'Redigera Omfång av Produkter '
indicators:
title: LADDAR PRODUKTER
no_products: "Inga produkter ännu. Varför lägger du inte till några?"
no_results: "Ledsen, inga resultat stämmer överens"
variants:
autocomplete:
producer_name: Producent
date_picker:
format: '%Y-%m-%d'
js_format: 'åå-mm-dd'
zipcode: Postkod
shipment_states:
backorder: restorder
@@ -1013,6 +1455,10 @@ sv:
processing: behandlas
void: annulerad
invalid: felaktig
order_mailer:
invoice_email:
hi: "Hi %{name}"
invoice_attached_text: Här är en faktura för din senaste order från
order_state:
address: adress
adjustments: justeringar
@@ -1026,3 +1472,6 @@ sv:
resumed: återupptagen
returned: returnerad
skrill: skrill
orders:
invoice:
tax_invoice: "SKATTEFAKTURA:"

View File

@@ -70,12 +70,10 @@ module Discourse
@custom_fields ||= {}
end
def sign(payload)
OpenSSL::HMAC.hexdigest("sha256", sso_secret, payload)
end
def to_url(base_url=nil)
base = "#{base_url || sso_url}"
"#{base}#{base.include?('?') ? '&' : '?'}#{payload}"

View File

@@ -25,7 +25,6 @@ module OpenFoodNetwork
end.select { |fee_type, amount| amount > 0 }
end
def fees_for(variant)
per_item_enterprise_fee_applicators_for(variant).sum do |applicator|
calculate_fee_for variant, applicator.enterprise_fee
@@ -40,7 +39,6 @@ module OpenFoodNetwork
end.select { |fee_type, amount| amount > 0 }
end
def create_line_item_adjustments_for(line_item)
variant = line_item.variant
@distributor = line_item.order.distributor
@@ -100,7 +98,6 @@ module OpenFoodNetwork
@indexed_enterprise_fees[variant.id] || []
end
def calculate_fee_for(variant, enterprise_fee)
# Spree's Calculator interface accepts Orders or LineItems,
# so we meet that interface with a struct.

View File

@@ -42,15 +42,14 @@ module OpenFoodNetwork
tax_category = variant.product.tax_category
if tax_category && tax_category.tax_rates.present?
tax_rate = tax_category.tax_rates.first
line_item = mock_line_item(variant, tax_category)
line_item = mock_line_item(variant)
tax_rate.calculator.compute line_item
else
0
end
end
def mock_line_item(variant, tax_category)
product = OpenStruct.new tax_category: tax_category
def mock_line_item(variant)
line_item = Spree::LineItem.new quantity: 1
line_item.define_singleton_method(:product) { variant.product }
line_item.define_singleton_method(:price) { variant.price }

View File

@@ -5,4 +5,4 @@ module OpenFoodNetwork
self.class.to_s.sub("Controller", "").underscore.split('/').last.singularize.to_sym
end
end
end
end

View File

@@ -172,7 +172,7 @@ module OpenFoodNetwork
end
def incoming_variant_ids
@order_cycle.supplied_variants.map &:id
@order_cycle.supplied_variants.map(&:id)
end
def variants_to_a(variants)

View File

@@ -40,7 +40,6 @@ module OpenFoodNetwork
def payment_method_row(order)
ba = order.billing_address
da = order.distributor.andand.address
[ba.firstname,
ba.lastname,
order.distributor.andand.name,
@@ -56,7 +55,6 @@ module OpenFoodNetwork
def delivery_row(order)
sa = order.shipping_address
da = order.distributor.andand.address
[sa.firstname,
sa.lastname,
order.distributor.andand.name,

View File

@@ -25,7 +25,9 @@ module OpenFoodNetwork
end
def valid?() true end
def new_record?() true end
def destroyed?() true end
def save
@@ -37,7 +39,9 @@ module OpenFoodNetwork
def errors
obj = Object.new
def obj.[](key) [] end
def obj.full_messages() [] end
def obj.any?() false end
obj
end

View File

@@ -10,7 +10,6 @@ module OpenFoodNetwork
end
end
def self.variant_destroyed(variant, &block)
exchanges = exchanges_featuring_variants(variant).to_a
@@ -21,7 +20,6 @@ module OpenFoodNetwork
end
end
def self.product_changed(product)
exchanges_featuring_variants(product.variants).each do |exchange|
refresh_cache exchange.receiver, exchange.order_cycle
@@ -44,12 +42,10 @@ module OpenFoodNetwork
end
end
def self.variant_override_destroyed(variant_override)
variant_override_changed variant_override
end
def self.producer_property_changed(producer_property)
products = producer_property.producer.supplied_products
variants = Spree::Variant.
@@ -61,12 +57,10 @@ module OpenFoodNetwork
end
end
def self.producer_property_destroyed(producer_property)
producer_property_changed producer_property
end
def self.order_cycle_changed(order_cycle)
if order_cycle.dated? && !order_cycle.closed?
order_cycle.exchanges.outgoing.each do |exchange|
@@ -75,7 +69,6 @@ module OpenFoodNetwork
end
end
def self.exchange_changed(exchange)
if exchange.incoming
refresh_incoming_exchanges(Exchange.where(id: exchange))
@@ -84,26 +77,22 @@ module OpenFoodNetwork
end
end
def self.exchange_destroyed(exchange)
exchange_changed exchange
end
def self.enterprise_fee_changed(enterprise_fee)
refresh_supplier_fee enterprise_fee
refresh_coordinator_fee enterprise_fee
refresh_distributor_fee enterprise_fee
end
def self.distributor_changed(enterprise)
Exchange.cachable.where(receiver_id: enterprise).each do |exchange|
refresh_cache exchange.receiver, exchange.order_cycle
end
end
def self.inventory_item_changed(inventory_item)
exchanges_featuring_variants(inventory_item.variant, distributor: inventory_item.enterprise).each do |exchange|
refresh_cache exchange.receiver, exchange.order_cycle
@@ -126,7 +115,6 @@ module OpenFoodNetwork
exchanges
end
def self.refresh_incoming_exchanges(exchanges)
incoming_exchanges(exchanges).map do |exchange|
outgoing_exchanges_with_variants(exchange.order_cycle, exchange.variant_ids)
@@ -135,26 +123,22 @@ module OpenFoodNetwork
end
end
def self.refresh_outgoing_exchange(exchange)
if exchange.order_cycle.dated? && !exchange.order_cycle.closed?
refresh_cache exchange.receiver, exchange.order_cycle
end
end
def self.refresh_supplier_fee(enterprise_fee)
refresh_incoming_exchanges(enterprise_fee.exchanges)
end
def self.refresh_coordinator_fee(enterprise_fee)
enterprise_fee.order_cycles.each do |order_cycle|
order_cycle_changed order_cycle
end
end
def self.refresh_distributor_fee(enterprise_fee)
enterprise_fee.exchange_fees.
joins(:exchange => :order_cycle).
@@ -167,7 +151,6 @@ module OpenFoodNetwork
end
end
def self.incoming_exchanges(exchanges)
exchanges.
incoming.
@@ -176,14 +159,12 @@ module OpenFoodNetwork
merge(OrderCycle.not_closed)
end
def self.outgoing_exchanges_with_variants(order_cycle, variant_ids)
order_cycle.exchanges.outgoing.
joins(:exchange_variants).
where('exchange_variants.variant_id IN (?)', variant_ids)
end
def self.refresh_cache(distributor, order_cycle)
ProductsCacheRefreshment.refresh distributor, order_cycle
end

View File

@@ -6,7 +6,7 @@ module OpenFoodNetwork::Reports
organise do
group { |li| li.product }
sort &:name
sort(&:name)
summary_row do
column { |lis| "TOTAL" }

View File

@@ -6,11 +6,11 @@ module OpenFoodNetwork::Reports
organise do
group { |li| li.product.supplier }
sort &:name
sort(&:name)
organise do
group { |li| li.product }
sort &:name
sort(&:name)
summary_row do
column { |lis| supplier_name(lis) }

View File

@@ -24,10 +24,9 @@ module OpenFoodNetwork::Reports
rule = rule.next
end
rules.map &:to_h
rules.map(&:to_h)
end
# -- DSL
def self.header(*columns)
self._header = columns

View File

@@ -93,11 +93,11 @@ module OpenFoodNetwork
def shipping_cost_for(order)
shipping_cost = order.adjustments.find_by_label("Shipping").andand.amount
shipping_cost = shipping_cost.nil? ? 0.0 : shipping_cost
shipping_cost.nil? ? 0.0 : shipping_cost
end
def tax_included_in(line_item)
line_item.adjustments.sum &:included_tax
line_item.adjustments.sum(&:included_tax)
end
def shipment_inc_vat

View File

@@ -12,11 +12,11 @@ module OpenFoodNetwork
private
def completed_order_total
completed_orders.sum &:total
completed_orders.sum(&:total)
end
def payment_total
payments.sum &:amount
payments.sum(&:amount)
end
def completed_orders

View File

@@ -11,7 +11,7 @@ module OpenFoodNetwork
def options_text
values = self.option_values.joins(:option_type).order("#{Spree::OptionType.table_name}.position asc")
values.map! &:presentation # This line changed
values.map!(&:presentation) # This line changed
values.to_sentence({ :words_connector => ", ", :two_words_connector => ", " })
end
@@ -44,7 +44,6 @@ module OpenFoodNetwork
display_as
end
def update_units
delete_unit_option_values

View File

@@ -175,27 +175,27 @@ module OpenFoodNetwork
end
def total_untaxable_products(order)
order.line_items.without_tax.sum &:amount
order.line_items.without_tax.sum(&:amount)
end
def total_taxable_products(order)
order.line_items.with_tax.sum &:amount
order.line_items.with_tax.sum(&:amount)
end
def total_untaxable_fees(order)
order.adjustments.enterprise_fee.without_tax.sum &:amount
order.adjustments.enterprise_fee.without_tax.sum(&:amount)
end
def total_taxable_fees(order)
order.adjustments.enterprise_fee.with_tax.sum &:amount
order.adjustments.enterprise_fee.with_tax.sum(&:amount)
end
def total_shipping(order)
order.adjustments.shipping.sum &:amount
order.adjustments.shipping.sum(&:amount)
end
def total_transaction(order)
order.adjustments.payment_fee.sum &:amount
order.adjustments.payment_fee.sum(&:amount)
end
def tax_on_shipping_s(order)
@@ -204,11 +204,11 @@ module OpenFoodNetwork
end
def total_untaxable_admin_adjustments(order)
order.adjustments.admin.without_tax.sum &:amount
order.adjustments.admin.without_tax.sum(&:amount)
end
def total_taxable_admin_adjustments(order)
order.adjustments.admin.with_tax.sum &:amount
order.adjustments.admin.with_tax.sum(&:amount)
end
def detail?

View File

@@ -26,7 +26,6 @@ module Spree
end
end
def sign_in_as_admin!
let!(:current_api_user) do
user = stub_model(Spree::LegacyUser)

View File

@@ -28,5 +28,3 @@ namespace :openfoodnetwork do
end
end
end

View File

@@ -29,7 +29,7 @@ namespace :karma do
def application_spec_files
sprockets = Rails.application.assets
sprockets.append_path Rails.root.join("spec/javascripts")
files = Rails.application.assets.find_asset("application_spec.js").to_a.map {|e| e.pathname.to_s }
Rails.application.assets.find_asset("application_spec.js").to_a.map {|e| e.pathname.to_s }
end
def unit_js(files)

Some files were not shown because too many files have changed in this diff Show More