aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/application.rb1
-rw-r--r--config/breadcrumbs.rb23
-rw-r--r--config/database/ci.yml15
-rw-r--r--config/database/jenkins.yml8
-rw-r--r--config/initializers/apartment.rb80
-rw-r--r--config/initializers/exporters.rb6
-rw-r--r--config/initializers/i18n.rb164
-rw-r--r--config/initializers/sidekiq.rb4
-rw-r--r--config/initializers/simple_form_bootstrap.rb4
-rw-r--r--config/initializers/stif.rb4
-rw-r--r--config/locales/actions.en.yml6
-rw-r--r--config/locales/actions.fr.yml4
-rw-r--r--config/locales/calendars.en.yml13
-rw-r--r--config/locales/calendars.fr.yml5
-rw-r--r--config/locales/clean_ups.en.yml2
-rw-r--r--config/locales/companies.en.yml2
-rw-r--r--config/locales/compliance_check_messages.en.yml11
-rw-r--r--config/locales/compliance_check_messages.fr.yml11
-rw-r--r--config/locales/compliance_check_resource.en.yml8
-rw-r--r--config/locales/compliance_check_resources.fr.yml8
-rw-r--r--config/locales/compliance_check_sets.en.yml4
-rw-r--r--config/locales/compliance_check_sets.fr.yml2
-rw-r--r--config/locales/compliance_checks.en.yml7
-rw-r--r--config/locales/compliance_checks.fr.yml7
-rw-r--r--config/locales/compliance_control_blocks.en.yml12
-rw-r--r--config/locales/compliance_control_blocks.fr.yml10
-rw-r--r--config/locales/compliance_control_sets.en.yml7
-rw-r--r--config/locales/compliance_controls.en.yml36
-rw-r--r--config/locales/compliance_controls.fr.yml34
-rw-r--r--config/locales/dashboard.en.yml3
-rw-r--r--config/locales/dashboard.fr.yml3
-rw-r--r--config/locales/en.yml1
-rw-r--r--config/locales/export_messages.en.yml4
-rw-r--r--config/locales/export_messages.fr.yml4
-rw-r--r--config/locales/exports.en.yml84
-rw-r--r--config/locales/exports.fr.yml86
-rw-r--r--config/locales/footnotes.fr.yml4
-rw-r--r--config/locales/fr.yml1
-rw-r--r--config/locales/import_messages.en.yml16
-rw-r--r--config/locales/import_messages.fr.yml16
-rw-r--r--config/locales/import_resources.en.yml20
-rw-r--r--config/locales/import_resources.fr.yml22
-rw-r--r--config/locales/import_tasks.en.yml52
-rw-r--r--config/locales/import_tasks.fr.yml53
-rw-r--r--config/locales/imports.en.yml20
-rw-r--r--config/locales/imports.fr.yml27
-rw-r--r--config/locales/journey_patterns.en.yml13
-rw-r--r--config/locales/journey_patterns.fr.yml15
-rw-r--r--config/locales/layouts.en.yml22
-rw-r--r--config/locales/layouts.fr.yml20
-rw-r--r--config/locales/line_referential_syncs.en.yml2
-rw-r--r--config/locales/line_referential_syncs.fr.yml2
-rw-r--r--config/locales/line_referentials.en.yml4
-rw-r--r--config/locales/lines.en.yml13
-rw-r--r--config/locales/lines.fr.yml13
-rw-r--r--config/locales/merges.en.yml23
-rw-r--r--config/locales/merges.fr.yml (renamed from config/locales/merges.yml)2
-rw-r--r--config/locales/networks.en.yml2
-rw-r--r--config/locales/purchase_windows.en.yml4
-rw-r--r--config/locales/purchase_windows.fr.yml2
-rw-r--r--config/locales/referentials.en.yml8
-rw-r--r--config/locales/referentials.fr.yml2
-rw-r--r--config/locales/routes.en.yml16
-rw-r--r--config/locales/routes.fr.yml12
-rw-r--r--config/locales/routing_constraint_zones.en.yml9
-rw-r--r--config/locales/routing_constraint_zones.fr.yml13
-rw-r--r--config/locales/select2.en.yml15
-rw-r--r--config/locales/select2.fr.yml15
-rw-r--r--config/locales/stop_area_referential_syncs.en.yml2
-rw-r--r--config/locales/stop_area_referential_syncs.fr.yml2
-rw-r--r--config/locales/stop_area_referentials.en.yml3
-rw-r--r--config/locales/stop_area_referentials.fr.yml3
-rw-r--r--config/locales/stop_areas.en.yml46
-rw-r--r--config/locales/stop_areas.fr.yml23
-rw-r--r--config/locales/stop_points.en.yml10
-rw-r--r--config/locales/table_builders.en.yml3
-rw-r--r--config/locales/table_builders.fr.yml3
-rw-r--r--config/locales/vehicle_journey_exports.en.yml2
-rw-r--r--config/locales/vehicle_journeys.en.yml39
-rw-r--r--config/locales/vehicle_journeys.fr.yml32
-rw-r--r--config/locales/will_paginate.en.yml8
-rw-r--r--config/locales/workbench_outputs.en.yml6
-rw-r--r--config/locales/workbench_outputs.fr.yml4
-rw-r--r--config/locales/workbenches.en.yml22
-rw-r--r--config/locales/workbenches.fr.yml21
-rw-r--r--config/locales/zzz-stif.yml5
-rw-r--r--config/routes.rb19
-rw-r--r--config/secrets.yml2
-rw-r--r--config/secrets.yml.docker1
-rw-r--r--config/webpacker.yml2
90 files changed, 1046 insertions, 353 deletions
diff --git a/config/application.rb b/config/application.rb
index 8da6a7428..fabea41de 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -40,6 +40,7 @@ module ChouetteIhm
)
config.development_toolbar = false
+ config.vehicle_journeys_extra_headers = []
unless Rails.env.production?
# Work around sprockets+teaspoon mismatch:
diff --git a/config/breadcrumbs.rb b/config/breadcrumbs.rb
index 00ccf16bd..e60ff187f 100644
--- a/config/breadcrumbs.rb
+++ b/config/breadcrumbs.rb
@@ -8,7 +8,7 @@ end
crumb :workbench_output do |workbench|
link I18n.t('workbench_outputs.show.title'), workbench_output_path(workbench)
- parent :workbench, current_offer_workbench
+ parent :workbench, mutual_workbench(workbench)
end
crumb :merges do |workbench|
@@ -96,6 +96,11 @@ crumb :compliance_check_set do |workbench, compliance_check_set|
parent :compliance_check_sets, workbench
end
+crumb :compliance_check do |workbench, compliance_check|
+ link breadcrumb_name(compliance_check), workbench_compliance_check_set_compliance_check_path(workbench, compliance_check.compliance_check_set, compliance_check)
+ parent :compliance_check_set_executed, workbench, compliance_check.compliance_check_set
+end
+
crumb :compliance_check_set_executed do |workbench, compliance_check_set|
link I18n.t('compliance_check_sets.executed.title', name: compliance_check_set.name), executed_workbench_compliance_check_set_path(workbench, compliance_check_set)
parent :compliance_check_sets, workbench
@@ -106,13 +111,23 @@ crumb :imports do |workbench|
parent :workbench, workbench
end
+crumb :exports do |workbench|
+ link I18n.t('exports.index.title'), workbench_exports_path(workbench)
+ parent :workbench, workbench
+end
+
crumb :import do |workbench, import|
link breadcrumb_name(import), workbench_import_path(workbench, import)
parent :imports, workbench
end
+crumb :export do |workbench, export|
+ link breadcrumb_name(export), workbench_export_path(workbench, export)
+ parent :exports, workbench
+end
+
crumb :import_resources do |import, import_resources|
- link I18n.t('import_resources.index.title'), workbench_import_import_resources_path(import.workbench, import.parent)
+ link I18n.t('import.resources.index.title'), workbench_import_import_resources_path(import.workbench, import.parent)
parent :import, import.workbench, import.parent
end
@@ -154,7 +169,6 @@ end
crumb :companies do |line_referential|
link I18n.t('companies.index.title'), line_referential_companies_path(line_referential)
- parent :line_referential, line_referential
end
crumb :company do |company|
@@ -164,7 +178,6 @@ end
crumb :networks do |line_referential|
link I18n.t('networks.index.title'), line_referential_networks_path(line_referential)
- parent :line_referential, line_referential
end
crumb :network do |network|
@@ -174,7 +187,6 @@ end
crumb :group_of_lines do |line_referential|
link I18n.t('group_of_lines.index.title'), line_referential_group_of_lines_path(line_referential)
- parent :line_referential, line_referential
end
crumb :group_of_line do |group_of_line|
@@ -184,7 +196,6 @@ end
crumb :lines do |line_referential|
link I18n.t('lines.index.title'), line_referential_lines_path
- parent :line_referential, line_referential
end
crumb :line do |line|
diff --git a/config/database/ci.yml b/config/database/ci.yml
new file mode 100644
index 000000000..5671cb6ad
--- /dev/null
+++ b/config/database/ci.yml
@@ -0,0 +1,15 @@
+test: &default
+ adapter: <%= ENV.fetch 'RAILS_DB_ADAPTER', 'postgis' %>
+ encoding: unicode
+ pool: <%= ENV.fetch 'RAILS_DB_POOLSIZE', '5' %>
+ host: <%= ENV.fetch 'RAILS_DB_HOST', 'localhost' %>
+ port: <%= ENV.fetch 'RAILS_DB_PORT', '5432' %>
+ schema_search_path: 'public,shared_extensions'
+ postgis_schema: 'shared_extensions'
+ database: <%= ENV.fetch 'RAILS_DB_NAME', 'stif_boiv_test' %>
+ username: <%= ENV['RAILS_DB_USER'] || ENV['POSTGRESQL_ENV_POSTGRES_USER'] || 'jenkins' %>
+ password: <%= ENV['RAILS_DB_PASSWORD'] || ENV['POSTGRESQL_ENV_POSTGRES_PASSWORD'] %>
+
+# Only used to build assets
+production:
+ <<: *default
diff --git a/config/database/jenkins.yml b/config/database/jenkins.yml
deleted file mode 100644
index 8b7a8ef2f..000000000
--- a/config/database/jenkins.yml
+++ /dev/null
@@ -1,8 +0,0 @@
-test:
- adapter: postgis
- encoding: unicode
- schema_search_path: 'public,shared_extensions'
- postgis_schema: 'shared_extensions'
- username: <%= ENV['POSTGRESQL_ENV_POSTGRES_USER'] || 'jenkins' %>
- password: <%= ENV['POSTGRESQL_ENV_POSTGRES_PASSWORD'] %>
- database: stif_boiv_test
diff --git a/config/initializers/apartment.rb b/config/initializers/apartment.rb
index a996549fd..6b817caed 100644
--- a/config/initializers/apartment.rb
+++ b/config/initializers/apartment.rb
@@ -18,70 +18,76 @@ Apartment.configure do |config|
# config.excluded_models = %w{Tenant}
#
config.excluded_models = [
- 'Referential',
- 'ReferentialMetadata',
- 'ReferentialSuite',
- 'Organisation',
- 'User',
'Api::V1::ApiKey',
- 'StopAreaReferential',
- 'StopAreaReferentialMembership',
- 'StopAreaReferentialSync',
- 'StopAreaReferentialSyncMessage',
- 'Chouette::StopArea',
- 'LineReferential',
- 'LineReferentialMembership',
- 'LineReferentialSync',
- 'LineReferentialSyncMessage',
- 'Chouette::Line',
- 'Chouette::GroupOfLine',
+ 'Calendar',
'Chouette::Company',
+ 'Chouette::GroupOfLine',
+ 'Chouette::Line',
'Chouette::Network',
- 'ReferentialCloning',
- 'Workbench',
- 'Workgroup',
+ 'Chouette::StopArea',
'CleanUp',
'CleanUpResult',
- 'Calendar',
- 'Import',
- 'NetexImport',
- 'WorkbenchImport',
- 'ImportMessage',
- 'ImportResource',
+ 'ComplianceCheck',
+ 'ComplianceCheckBlock',
+ 'ComplianceCheckMessage',
+ 'ComplianceCheckResource',
+ 'ComplianceCheckSet',
'ComplianceControl',
+ 'ComplianceControlBlock',
+ 'ComplianceControlSet',
+ 'CustomField',
+ 'Export::Base',
+ 'Export::Message',
+ 'Export::Resource',
'GenericAttributeControl::MinMax',
'GenericAttributeControl::Pattern',
'GenericAttributeControl::Uniqueness',
+ 'Import::Base',
+ 'Import::Gtfs',
+ 'Import::Message',
+ 'Import::Netex',
+ 'Import::Resource',
+ 'Import::Workbench',
'JourneyPatternControl::Duplicates',
'JourneyPatternControl::VehicleJourney',
'LineControl::Route',
+ 'LineReferential',
+ 'LineReferentialMembership',
+ 'LineReferentialSync',
+ 'LineReferentialSyncMessage',
+ 'Merge',
+ 'Organisation',
+ 'Referential',
+ 'ReferentialCloning',
+ 'ReferentialMetadata',
+ 'ReferentialSuite',
'RouteControl::Duplicates',
'RouteControl::JourneyPattern',
'RouteControl::MinimumLength',
'RouteControl::OmnibusJourneyPattern',
- 'RouteControl::OppositeRouteTerminus',
'RouteControl::OppositeRoute',
+ 'RouteControl::OppositeRouteTerminus',
'RouteControl::StopPointsInJourneyPattern',
'RouteControl::UnactivatedStopPoint',
'RouteControl::ZDLStopArea',
'RoutingConstraintZoneControl::MaximumLength',
'RoutingConstraintZoneControl::MinimumLength',
'RoutingConstraintZoneControl::UnactivatedStopPoint',
+ 'SimpleExporter',
+ 'SimpleImporter',
+ 'SimpleInterface',
+ 'StopAreaReferential',
+ 'StopAreaReferentialMembership',
+ 'StopAreaReferentialSync',
+ 'StopAreaReferentialSyncMessage',
+ 'User',
'VehicleJourneyControl::Delta',
- 'VehicleJourneyControl::WaitingTime',
'VehicleJourneyControl::Speed',
'VehicleJourneyControl::TimeTable',
'VehicleJourneyControl::VehicleJourneyAtStops',
- 'ComplianceControlSet',
- 'ComplianceControlBlock',
- 'ComplianceCheck',
- 'ComplianceCheckSet',
- 'ComplianceCheckBlock',
- 'ComplianceCheckResource',
- 'ComplianceCheckMessage',
- 'Merge',
- 'CustomField',
- 'SimpleImporter',
+ 'VehicleJourneyControl::WaitingTime',
+ 'Workbench',
+ 'Workgroup',
]
# use postgres schemas?
diff --git a/config/initializers/exporters.rb b/config/initializers/exporters.rb
new file mode 100644
index 000000000..dfd82a54c
--- /dev/null
+++ b/config/initializers/exporters.rb
@@ -0,0 +1,6 @@
+SimpleExporter.define :referential_companies do |config|
+ config.separator = ";"
+ config.encoding = 'ISO-8859-1'
+ config.add_column :name
+ config.add_column :registration_number
+end
diff --git a/config/initializers/i18n.rb b/config/initializers/i18n.rb
new file mode 100644
index 000000000..fdf5d6c04
--- /dev/null
+++ b/config/initializers/i18n.rb
@@ -0,0 +1,164 @@
+module I18n
+ class << self
+ def translate_with_fallback key, options={}, original=nil
+ options[:locale] ||= I18n.locale
+ begin
+ self.translate_without_fallback(key, {raise: true}.update(options))
+ rescue => e
+ split = key.to_s.split('.')
+ if split.size <= 2
+ translate_without_fallback original || key, options
+ else
+ v = split.pop
+ v2 = split.pop
+ split.pop if v2 == "default"
+ split << "default" << v
+ new_key = split.join('.')
+ translate_with_fallback new_key, options, original || key
+ end
+ end
+ end
+ alias_method_chain :translate, :fallback
+ alias_method :t, :translate
+ end
+
+ def self.tc(key, params={})
+ self.t('label_with_colon', label: key.t(params)).html_safe
+ end
+
+ def self.tmf(key, params={})
+ model, col = key.split "."
+ begin
+ self.t "activerecord.attributes.#{key}", {raise: true}.update(params)
+ rescue
+ begin
+ self.t "activerecord.attributes.common.#{col}", {raise: true}.update(params)
+ rescue
+ begin
+ self.t "simple_form.labels.#{key}", {raise: true}.update(params)
+ rescue
+ "activerecord.attributes.#{key}".t params
+ end
+ end
+ end
+ end
+
+ def self.tmfc(key, params={})
+ self.t('label_with_colon', label: self.tmf(key, params)).html_safe
+ end
+
+ def self.missing_keys_logger
+ @@my_logger ||= Logger.new("#{Rails.root}/log/missing_keys.log")
+ end
+
+ def self.log_missing_key key, params={}
+ missing_keys_logger.info "key: '#{key}', locale: '#{I18n.locale}', params: #{params}"
+ end
+
+ def self.t_with_default(key, params={})
+ begin
+ self.t(key, {raise: true}.update(params))
+ rescue
+ if Rails.env.development?
+ log_missing_key key, params
+ "<span class='label label-danger' title='#{self.t(key, params)}'>!</span>#{key.split('.').last}".html_safe
+ else
+ key.split('.').last
+ end
+ end
+ end
+end
+
+module EnhancedI18n
+ def t(params={})
+ I18n.t_with_default(self, params)
+ end
+
+ def tc(params={})
+ I18n.tc(self, params)
+ end
+
+ def tmf(params={})
+ I18n.tmf(self, params)
+ end
+
+ def tmfc(params={})
+ I18n.tmfc(self, params)
+ end
+end
+
+module EnhancedTimeI18n
+ def l(params={})
+ I18n.l(self, params)
+ end
+end
+
+class Symbol
+ include EnhancedI18n
+end
+
+class String
+ include EnhancedI18n
+end
+
+class Time
+ include EnhancedTimeI18n
+end
+
+class DateTime
+ include EnhancedTimeI18n
+end
+
+class Date
+ include EnhancedTimeI18n
+end
+
+module EnhancedModelI18n
+ # Human name of the class (plural)
+ def t opts={}
+ "activerecord.models.#{i18n_key}".t({count: 2}.update(opts))
+ end
+
+ # Human name of the class (singular)
+ def ts opts={}
+ self.t({count: 1}.update(opts))
+ end
+
+ # Human name of the class (with comma)
+ def tc(params={})
+ I18n.tc(i18n_key, params)
+ end
+
+ # Human name of the attribute
+ def tmf(attribute, params={})
+ I18n.tmf "#{i18n_key}.#{attribute}", params
+ end
+
+ # Translate the given action on the model, with default
+ def t_action(action, params={})
+ key = case action.to_sym
+ when :create
+ :new
+ when :update
+ :edit
+ else
+ action
+ end
+
+ begin
+ I18n.translate_without_fallback "#{i18n_key.pluralize}.#{key}.title", ({raise: true}.update(params))
+ rescue
+ I18n.translate_without_fallback "#{key}.title", params
+ end
+ end
+
+ private
+ def i18n_key
+ model_name.to_s.underscore.gsub('/', '_')
+ end
+
+end
+
+class ActiveRecord::Base
+ extend EnhancedModelI18n
+end
diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb
index 2f65b8800..a177e7091 100644
--- a/config/initializers/sidekiq.rb
+++ b/config/initializers/sidekiq.rb
@@ -14,8 +14,4 @@ Sidekiq.configure_client do |config|
config.redis = { url: ENV.fetch('SIDEKIQ_REDIS_URL', 'redis://localhost:6379/12') }
end
-Sidekiq.configure_client do |config|
- config.redis = { url: ENV.fetch('SIDEKIQ_REDIS_URL', 'redis://localhost:6379/12') }
-end
-
Sidekiq.default_worker_options = { retry: false }
diff --git a/config/initializers/simple_form_bootstrap.rb b/config/initializers/simple_form_bootstrap.rb
index 4b9bd320d..8dbc3afee 100644
--- a/config/initializers/simple_form_bootstrap.rb
+++ b/config/initializers/simple_form_bootstrap.rb
@@ -72,9 +72,9 @@ SimpleForm.setup do |config|
b.use :placeholder
b.optional :maxlength
b.optional :readonly
- b.use :label, class: 'col-sm-3 control-label'
+ b.use :label, class: 'col-sm-4 col-xs-5 control-label'
- b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
+ b.wrapper tag: 'div', class: 'col-sm-8 col-xs-7' do |ba|
ba.use :input
ba.use :error, wrap_with: { tag: 'span', class: 'help-block small' }
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block small' }
diff --git a/config/initializers/stif.rb b/config/initializers/stif.rb
index a73e4931b..2ddadbc7e 100644
--- a/config/initializers/stif.rb
+++ b/config/initializers/stif.rb
@@ -27,8 +27,6 @@ Rails.application.config.to_prepare do
Organisation.before_validation(on: :create) do |organisation|
organisation.custom_view = "stif"
end
-end
-
-Rails.application.config.to_prepare do
Dashboard.default_class = Stif::Dashboard
+ Chouette::VehicleJourneyAtStop.day_offset_max = 1
end
diff --git a/config/locales/actions.en.yml b/config/locales/actions.en.yml
index 278915526..faf0dcec2 100644
--- a/config/locales/actions.en.yml
+++ b/config/locales/actions.en.yml
@@ -5,17 +5,19 @@ en:
deactivate: 'Deactivate'
destroy: "Destroy"
delete: "Delete"
+ download: 'Download'
search: "Search"
submit: "Submit"
processing: "Processing…"
- add: "Add new"
+ add: "Add"
+ remove: Remove
new: "Add new"
show: "See"
archive: "Archive"
unarchive: "Unarchive"
clone: 'Clone'
duplicate: 'Clone'
- clean_up: 'Clean up'
+ clean_up: 'Purge'
sync: 'Synchronize'
combine: 'Combine'
actualize: 'Actualize'
diff --git a/config/locales/actions.fr.yml b/config/locales/actions.fr.yml
index 92e16f21e..ed1a86189 100644
--- a/config/locales/actions.fr.yml
+++ b/config/locales/actions.fr.yml
@@ -5,10 +5,12 @@ fr:
deactivate: 'Désactiver'
destroy: 'Supprimer'
delete: 'Supprimer'
+ download: 'Télécharger'
search: "Chercher"
submit: "Valider"
processing: "En cours…"
- add: 'Créer'
+ add: 'Ajouter'
+ remove: Retirer
new: 'Créer'
show: 'Consulter'
archive: 'Conserver'
diff --git a/config/locales/calendars.en.yml b/config/locales/calendars.en.yml
index c3df413af..696ae2734 100644
--- a/config/locales/calendars.en.yml
+++ b/config/locales/calendars.en.yml
@@ -1,6 +1,8 @@
en:
calendars:
- search_no_results: 'No calendar matching your query'
+ filters:
+ name_cont: Search by name
+ search_no_results: 'No calendar template matching your query'
days:
monday: M
tuesday: Tu
@@ -37,7 +39,7 @@ en:
all: All
shared: Shared
not_shared: Not shared
- search_no_results: No calendar matching your query
+ search_no_results: No calendar templates matching your query
date: Date
new:
title: Add a new calendar
@@ -59,16 +61,15 @@ en:
activerecord:
models:
calendar:
- one: calendar
- other: calendars
+ one: calendar template
+ other: calendar templates
attributes:
calendar:
name: Name
- short_name: Short name
date_ranges: Date ranges
dates: Dates
shared: Shared
- organisation: Organisation
+ organisation: Organization
monday: "Monday"
tuesday: "Tuesday"
wednesday: "Wednesday"
diff --git a/config/locales/calendars.fr.yml b/config/locales/calendars.fr.yml
index 6fd265925..8c933f168 100644
--- a/config/locales/calendars.fr.yml
+++ b/config/locales/calendars.fr.yml
@@ -1,6 +1,8 @@
fr:
calendars:
- search_no_results: 'Aucun calendrier ne correspond à votre recherche'
+ filters:
+ name_cont: 'Indiquez un nom de calendrier...'
+ no_results: 'Aucun calendrier ne correspond à votre recherche'
days:
monday: L
tuesday: Ma
@@ -64,7 +66,6 @@ fr:
attributes:
calendar:
name: Nom
- short_name: Nom court
date_ranges: Intervalles de dates
dates: Dates
shared: Partagé
diff --git a/config/locales/clean_ups.en.yml b/config/locales/clean_ups.en.yml
index 876694592..6cbb2c453 100644
--- a/config/locales/clean_ups.en.yml
+++ b/config/locales/clean_ups.en.yml
@@ -5,7 +5,7 @@ en:
success_jp: "%{count} journey patterns deleted"
failure: "Fail when clean_up : %{error_message}"
actions:
- clean_up: "clean up"
+ clean_up: "Clean up"
confirm: "Clean up will destroy time tables which ended on requested date\nand next recursively all object without any time table\nPlease confirm this action"
activemodel:
attributes:
diff --git a/config/locales/companies.en.yml b/config/locales/companies.en.yml
index becb087b1..f2b19bc19 100644
--- a/config/locales/companies.en.yml
+++ b/config/locales/companies.en.yml
@@ -16,7 +16,7 @@ en:
index:
title: "Companies"
name: "Search by name..."
- name_or_objectid: "Search by name or by Codifligne ID..."
+ name_or_objectid: "Search by name or by ID..."
advanced_search: "Advanced search"
activerecord:
models:
diff --git a/config/locales/compliance_check_messages.en.yml b/config/locales/compliance_check_messages.en.yml
index 216a363a3..ade4329a2 100644
--- a/config/locales/compliance_check_messages.en.yml
+++ b/config/locales/compliance_check_messages.en.yml
@@ -22,10 +22,19 @@ en:
3_routingconstraint_2: "The Routing Constraint Zone %{source_objectid} covers all the stop points of its related route : %{target_0_objectid}."
3_routingconstraint_3: "The Routing Constraint Zone %{source_objectid} has less than 2 stop points"
3_line_1: "On line :%{source_label} (%{source_objectid}), no route has an opposite route"
+ 3_line_2: "The line %{source_label} (%{source_objectid}) is not in the lines scope of the organization %{reference_value}"
3_generic_1: "%{source_objectid} : the %{source_attribute} attribute value (%{error_value}) does not respect the following pattern : %{reference_value}"
3_generic_2_1: "%{source_objectid} : the %{source_attribute} attributes's value (%{error_value}) is greater than the authorized maximum value : %{reference_value}"
3_generic_2_2: "%{source_objectid} : the %{source_attribute} attributes's value (%{error_value}) is smaller than the authorized minimum value %{reference_value}"
3_generic_3: "%{source_objectid} : the %{source_attribute} attribute (%{error_value}) has a value shared with : %{target_0_objectid}"
3_shape_1: "Tracé %{source_objectid} : le tracé passe trop loin de l'arrêt %{target_0_label} (%{target_0_objectid}) : %{error_value} > %{reference_value}"
3_shape_2: "Tracé %{source_objectid} : le tracé n'est pas défini entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid})"
- 3_shape_3: "Le tracé de l'itinéraire %{source_objectid} est en écart avec la voirie sur %{error_value} sections" \ No newline at end of file
+ 3_shape_3: "Le tracé de l'itinéraire %{source_objectid} est en écart avec la voirie sur %{error_value} sections"
+ activerecord:
+ attributes:
+ compliance_check_message:
+ criticity: Criticity
+ message_key: Message key
+ resource_objectid: Resource objectid
+ link: Link
+ message: Message \ No newline at end of file
diff --git a/config/locales/compliance_check_messages.fr.yml b/config/locales/compliance_check_messages.fr.yml
index db127d236..21f100f46 100644
--- a/config/locales/compliance_check_messages.fr.yml
+++ b/config/locales/compliance_check_messages.fr.yml
@@ -22,10 +22,19 @@ fr:
3_routingconstraint_2: "L'ITL %{source_objectid} couvre tous les arrêts de l'itinéraire %{target_0_objectid}."
3_routingconstraint_3: "L'ITL %{source_objectid} n'a pas suffisament d'arrêts (minimum 2 arrêts requis)"
3_line_1: "Sur la ligne %{source_label} (%{source_objectid}), aucun itinéraire n'a d'itinéraire inverse"
+ 3_line_2: "La ligne %{source_label} (%{source_objectid}) ne fait pas partie du périmètre de lignes de l'organisation %{reference_value}"
3_generic_1: "%{source_objectid} : l'attribut %{source_attribute} a une valeur %{error_value} qui ne respecte pas le motif %{reference_value}"
3_generic_2_1: "%{source_objectid} : l'attribut %{source_attribute} a une valeur %{error_value} supérieure à la valeur maximale autorisée %{reference_value}"
3_generic_2_2: "%{source_objectid} : l'attribut %{source_attribute} a une valeur %{error_value} inférieure à la valeur minimale autorisée %{reference_value}"
3_generic_3: "%{source_objectid} : l'attribut %{source_attribute} a une valeur %{error_value} partagée avec %{target_0_objectid}"
3_shape_1: "Tracé %{source_objectid} : le tracé passe trop loin de l'arrêt %{target_0_label} (%{target_0_objectid}) : %{error_value} > %{reference_value}"
3_shape_2: "Tracé %{source_objectid} : le tracé n'est pas défini entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid})"
- 3_shape_3: "Le tracé de l'itinéraire %{source_objectid} est en écart avec la voirie sur %{error_value} sections" \ No newline at end of file
+ 3_shape_3: "Le tracé de l'itinéraire %{source_objectid} est en écart avec la voirie sur %{error_value} sections"
+ activerecord:
+ attributes:
+ compliance_check_message:
+ criticity: Criticité
+ message_key: Clé du message
+ resource_objectid: Objectid de la resource
+ link: Lien
+ message: Message \ No newline at end of file
diff --git a/config/locales/compliance_check_resource.en.yml b/config/locales/compliance_check_resource.en.yml
new file mode 100644
index 000000000..f8a31b81a
--- /dev/null
+++ b/config/locales/compliance_check_resource.en.yml
@@ -0,0 +1,8 @@
+en:
+ activerecord:
+ attributes:
+ compliance_check_resource:
+ name: Name
+ status: Status
+ metrics: Metrics
+ download: Download \ No newline at end of file
diff --git a/config/locales/compliance_check_resources.fr.yml b/config/locales/compliance_check_resources.fr.yml
new file mode 100644
index 000000000..0fe4b83ed
--- /dev/null
+++ b/config/locales/compliance_check_resources.fr.yml
@@ -0,0 +1,8 @@
+fr:
+ activerecord:
+ attributes:
+ compliance_check_resource:
+ name: Nom
+ status: Statut
+ metrics: Métriques
+ download: Téléchargement \ No newline at end of file
diff --git a/config/locales/compliance_check_sets.en.yml b/config/locales/compliance_check_sets.en.yml
index 5e8c3b24f..73ecf8996 100644
--- a/config/locales/compliance_check_sets.en.yml
+++ b/config/locales/compliance_check_sets.en.yml
@@ -20,10 +20,10 @@ en:
title: Executed control report %{name}
show:
title: Compliance check set report
- table_state: "%{lines_status} lines imported on %{lines_in_compliance_check_set} in the archive"
+ table_state: "%{lines_status} lines imported out of %{lines_in_compliance_check_set} in the archive"
table_explanation: "These controls apply to all imported data and condition the construction of your organization's offer."
table_title: Analysed lines state
- metrics: "%{ok_count} ok, %{error_count} errors, %{warning_count} warnings, %{uncheck_count} n/a"
+ metrics: "%{error_count} errors, %{warning_count} warnings"
metadatas:
referential: "Object analysed"
referential_type: "Apply to"
diff --git a/config/locales/compliance_check_sets.fr.yml b/config/locales/compliance_check_sets.fr.yml
index 20bf11d85..045fed4ce 100644
--- a/config/locales/compliance_check_sets.fr.yml
+++ b/config/locales/compliance_check_sets.fr.yml
@@ -19,7 +19,7 @@ fr:
table_state: "%{lines_status} lignes valides sur %{lines_in_compliance_check_set} présentes dans l'offre de transport"
table_explanation: Ces contrôles s’appliquent pour toutes les données importées et conditionnent la construction de l’offre de votre organisation
table_title: État des lignes analysées
- metrics: "%{ok_count} ok, %{error_count} errors, %{warning_count} warnings, %{uncheck_count} n/a"
+ metrics: "%{error_count} errors, %{warning_count} warnings"
metadatas:
referential: "Objet analysé"
referential_type: "Appliqué à"
diff --git a/config/locales/compliance_checks.en.yml b/config/locales/compliance_checks.en.yml
index 177c87852..679a136f0 100644
--- a/config/locales/compliance_checks.en.yml
+++ b/config/locales/compliance_checks.en.yml
@@ -3,8 +3,15 @@ en:
attributes:
compliance_check:
code: Code
+ name: Name
+ comment: Comment
+ criticity: Criticity
compliance_checks:
filters:
subclass: Object
criticity: Severity
name: Name
+ show:
+ title: "Compliance check"
+ metadatas:
+ compliance_control_block: "Control block informations"
diff --git a/config/locales/compliance_checks.fr.yml b/config/locales/compliance_checks.fr.yml
index d11d37003..650062cbe 100644
--- a/config/locales/compliance_checks.fr.yml
+++ b/config/locales/compliance_checks.fr.yml
@@ -4,11 +4,14 @@ fr:
compliance_check:
code: Code
name: Nom
- criticity: Criticité
comment: Commentaire
+ criticity: Criticité
compliance_checks:
filters:
subclass: Objet
criticity: Criticité
name: Nom
-
+ show:
+ title: "Consulter un contrôle"
+ metadatas:
+ compliance_control_block: "Informations sur le groupe de contrôle"
diff --git a/config/locales/compliance_control_blocks.en.yml b/config/locales/compliance_control_blocks.en.yml
index b9c01278c..0ec979549 100644
--- a/config/locales/compliance_control_blocks.en.yml
+++ b/config/locales/compliance_control_blocks.en.yml
@@ -1,4 +1,4 @@
-fr:
+en:
activerecord:
models:
compliance_control_block:
@@ -9,6 +9,12 @@ fr:
compliance_control_blocks:
transport_mode: Transport mode
sub_transport_mode: Transport submode
+ errors:
+ models:
+ compliance_control_block:
+ attributes:
+ condition_attributes:
+ taken: The same compliance control block already exists in this compliance control set
compliance_control_blocks:
clone:
prefix: 'Copy of'
@@ -16,8 +22,12 @@ fr:
destroy_confirm: Are you sure you want to destroy this block ?
new:
title: Create a control block
+ create:
+ title: Create a control block
edit:
title: "Edit the control block : %{name}"
+ update:
+ title: "Edit the control block : %{name}"
metas:
control:
zero: "No controls"
diff --git a/config/locales/compliance_control_blocks.fr.yml b/config/locales/compliance_control_blocks.fr.yml
index a6720881f..5ce5b4729 100644
--- a/config/locales/compliance_control_blocks.fr.yml
+++ b/config/locales/compliance_control_blocks.fr.yml
@@ -9,6 +9,12 @@ fr:
compliance_control_blocks:
transport_mode: Mode de transport
transport_submode: Sous-mode de transport
+ errors:
+ models:
+ compliance_control_block:
+ attributes:
+ condition_attributes:
+ taken: Un groupe de contrôle identique existe déjà au sein de ce jeu de contrôles
compliance_control_blocks:
clone:
prefix: 'Copie de'
@@ -16,8 +22,12 @@ fr:
destroy_confirm: Etes vous sûr de supprimer ce bloc ?
new:
title: Créer un groupe de contrôle(s)
+ create:
+ title: Créer un groupe de contrôle(s)
edit:
title: "Editer le groupe de contrôle : %{name}"
+ update:
+ title: "Editer le groupe de contrôle : %{name}"
metas:
control:
zero: "Aucun contrôle"
diff --git a/config/locales/compliance_control_sets.en.yml b/config/locales/compliance_control_sets.en.yml
index 10c4f5e9a..c69689390 100644
--- a/config/locales/compliance_control_sets.en.yml
+++ b/config/locales/compliance_control_sets.en.yml
@@ -10,6 +10,12 @@ en:
new_control: Creating a Control
select_types: Control Type Selection
edit: Edit compliance control set
+ new:
+ title: New compliance control set %{name}
+ show:
+ title: Consult compliance control set %{name}
+ edit:
+ title: Edit compliance control set %{name}
actions:
new: Add
edit: Edit
@@ -18,6 +24,7 @@ en:
add_compliance_control: Compliance Control
add_compliance_control_block: Compliance Control Block
destroy_confirm: Are you sure ?
+ loaded: Load the control
filters:
name: 'Enter name ...'
search_no_results: 'No compliance control set found'
diff --git a/config/locales/compliance_controls.en.yml b/config/locales/compliance_controls.en.yml
index ca9d83872..cb370c5df 100644
--- a/config/locales/compliance_controls.en.yml
+++ b/config/locales/compliance_controls.en.yml
@@ -29,8 +29,8 @@ en:
title: "Add a new compliance control"
edit:
title: "Update compliance control"
- metas:
- no_prerequisite: "None"
+ select_type:
+ title: "Select a control type"
actions:
new: Add
edit: Edit
@@ -41,6 +41,7 @@ en:
messages:
3_route_1: "The route with %{source_objectid} objectid connect the stop points %{target_0_label} (%{target_0_objectid}) and %{target_1_label} (%{target_1_objectid}) which belong to the same ZDL"
description: "Two stop points which belong to the same ZDL cannot follow one another in a route"
+ prerequisite: "None"
route_control/opposite_route:
messages:
3_route_2: "The route with %{source_objectid} objectid references an incoherent oppposite route %{target_0_objectid}"
@@ -53,10 +54,12 @@ en:
messages:
3_route_3: "The route with %{source_objectid} objectid doesn't have any journey pattern"
description: "A route must have at least one journey pattern"
+ prerequisite: "None"
route_control/duplicates:
messages:
3_route_4: "The route with %{source_objectid} objectid is identical with another route %{target_0_objectid}"
description: "2 routes cannot connect the same stop points with the same order and the same boarding and alighting characteristics"
+ prerequisite: "None"
route_control/opposite_route_terminus:
messages:
3_route_5: "The route with %{source_objectid} objectid has a first stop from the %{target_0_label} ZDL whereas its oppoite route's last stop is from the ZDL %{target_1_label}"
@@ -66,78 +69,100 @@ en:
messages:
3_route_6: "The route with %{source_objectid} objectid does not connect enough stop points (required 2 stop points)"
description: "A route must have at least 2 stop points"
+ prerequisite: "None"
route_control/stop_points_in_journey_pattern:
messages:
3_route_8: "The stop point %{target_0_label} (%{target_0_objectid}) of the route %{source_objectid} is not used by any journey pattern"
description: "The stop points of a route must be used by at least one journey pattern"
+ prerequisite: "None"
route_control/omnibus_journey_pattern:
messages:
3_route_9: "The route with %{source_objectid} objectid does not have a journey pattern that connect all of its stop points"
description: "A journey pattern of a route should connect all of a route's stop points"
+ prerequisite: "None"
route_control/unactivated_stop_point:
messages:
3_route_10: "L'itinéraire %{source_objectid} référence un arrêt (ZDEp) désactivé %{target_0_label} (%{target_0_objectid})"
description: "Les arrêts d'un itinéraire ne doivent pas être désactivés"
+ prerequisite: "None"
journey_pattern_control/duplicates:
messages:
3_journeypattern_1: "The journey pattern with objectid %{source_objectid} is identical with another one %{target_0_objectid}"
description: "Two journey patterns belonging to the same line must not connect the same stop points in the same order"
+ prerequisite: "None"
journey_pattern_control/vehicle_journey:
messages:
3_journeypattern_2: "The journey pattern with %{source_objectid} objectid doesn't have any vehicle journey"
description: "A journey pattern must have at least one vehicle journey"
+ prerequisite: "None"
vehicle_journey_control/waiting_time:
messages:
3_vehiclejourney_1: "On the following vehicle journey %{source_objectid}, the waiting time %{error_value} a this stop point %{target_0_label} (%{target_0_objectid}) is greater than the threshold (%{reference_value})"
description: "The waiting time, in minutes, at a specific stop point cannot be too big"
+ prerequisite: "None"
vehicle_journey_control/speed:
messages:
3_vehiclejourney_2_1: "On the following vehicle journey %{source_objectid}, the computed speed %{error_value} between the stop points %{target_0_label} (%{target_0_objectid}) and %{target_1_label} (%{target_1_objectid}) is greater than the threshold (%{reference_value})"
3_vehiclejourney_2_2: "On the following vehicle journey %{source_objectid}, the computed speed %{error_value} between the stop points %{target_0_label} (%{target_0_objectid}) and %{target_1_label} (%{target_1_objectid}) is smaller than the threshold (%{reference_value})"
description: "The speed between 2 stop points should be confined between thresholds"
+ prerequisite: "None"
vehicle_journey_control/delta:
messages:
3_vehiclejourney_3: "The travel time on the vehicle journey with %{source_objectid} objectid between the stop points %{target_0_label} (%{target_0_objectid}) and %{target_1_label} (%{target_1_objectid}) is too far off %{error_value} the average waiting on the journey pattern"
description: "The travel time between two following stop points must be close to all the vehicle journey of a journey pattern"
+ prerequisite: "None"
vehicle_journey_control/time_table:
messages:
3_vehiclejourney_4: "The vehicle journey with %{source_objectid} objectid does not have a timetable"
description: "A vehicle journey must have at least one timetable"
+ prerequisite: "None"
vehicle_journey_control/vehicle_journey_at_stops:
messages:
3_vehiclejourney_5_1: "The vehicle journey with %{source_objectid} objectid has an arrival time %{error_value} greater than the departure time %{reference_value} at the stop point %{target_0_label} (%{target_0_objectid})"
3_vehiclejourney_5_2: "The vehicle journey with %{source_objectid} objectid has an departure time %{error_value} at stop point %{target_0_label} (%{target_0_objectid}) greater than the arrival %{reference_value} at the next stop point"
description: "The arrival time of a stop point must be smaller than the departure time of this stop point AND the departure time of the stop points must be in chronological order"
+ prerequisite: "None"
routing_constraint_zone_control/vehicle_journey_at_stops:
messages:
3_routingconstraint_1: "The Routing Constraint Zone %{source_objectid} references an unactivated stop point (ZDEp) %{target_0_label} (%{target_0_objectid})"
description: "The stop points of a Routing Constraint Zone must be activated"
+ prerequisite: "None"
routing_constraint_zone_control/maximum_length:
messages:
3_routingconstraint_2: "The Routing Constraint Zone %{source_objectid} covers all the stop points of its related route : %{target_0_objectid}."
description: "A Routing Constraint Zone cannot cover all the stop points of a route"
+ prerequisite: "None"
routing_constraint_zone_control/minimum_length:
messages:
3_routingconstraint_3: "The Routing Constraint Zone %{source_objectid} has less than 2 stop points"
description: "A Routing Constraint Zone must have at least 2 stop points"
+ prerequisite: "None"
line_control/route:
messages:
3_line_1: "On line :%{source_label} (%{source_objectid}), no route has an opposite route"
description: "The routes of a line must have an opposite route"
- prerequisite: Lign has multiple routes
+ prerequisite: Line has multiple routes
+ line_control/lines_scope:
+ messages:
+ 3_line_2: "The line %{source_label} (%{source_objectid}) is not in the lines scope of the organization %{reference_value}"
+ description: "The line must be included in the lines scope of the organization"
+ prerequisite: "None"
generic_attribute_control/pattern:
messages:
3_generic_1: "%{source_objectid} : the %{source_attribute} attribute value (%{error_value}) does not respect the following pattern : %{reference_value}"
description: "The object attribute must respect a patten (regular expression)"
+ prerequisite: "None"
generic_attribute_control/min_max:
messages:
3_generic_2_1: "%{source_objectid} : the %{source_attribute} attributes's value (%{error_value}) is greater than the authorized maximum value : %{reference_value}"
3_generic_2_2: "%{source_objectid} : the %{source_attribute} attributes's value (%{error_value}) is smaller than the authorized minimum value %{reference_value}"
description: "The numeric value of an attribute must be contained between 2 values"
+ prerequisite: "None"
generic_attribute_control/uniqueness:
messages:
3_generic_3: "%{source_objectid} : the %{source_attribute} attribute (%{error_value}) has a value shared with : %{target_0_objectid}"
description: "The attribute's value must be unique compared to the other objects ofthe same type (related to the same line)"
+ prerequisite: "None"
shape_control:
3_shape_1: "Tracé %{source_objectid} : le tracé passe trop loin de l'arrêt %{target_0_label} (%{target_0_objectid}) : %{error_value} > %{reference_value}"
3_shape_2: "Tracé %{source_objectid} : le tracé n'est pas défini entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid})"
@@ -189,8 +214,10 @@ en:
one: "Unactivated stop points"
line_control/route:
one: "The routes of a line must have an opposite route"
+ line_control/lines_scope:
+ one: "Lines must be included in the lines scope of the organization"
generic_attribute_control/pattern:
- one: "Attribute pattern of an object in a line"
+ one: "Attribute regular expression of an object in a line"
generic_attribute_control/min_max:
one: "Min, max values of numeric fields"
generic_attribute_control/uniqueness:
@@ -208,3 +235,4 @@ en:
target: "Target"
prerequisite: "Prerequisite"
predicate: "Predicate"
+ pattern: Regular expression
diff --git a/config/locales/compliance_controls.fr.yml b/config/locales/compliance_controls.fr.yml
index f5f7e351f..0b0555b6d 100644
--- a/config/locales/compliance_controls.fr.yml
+++ b/config/locales/compliance_controls.fr.yml
@@ -28,8 +28,6 @@ fr:
title: "Editer un contrôle"
select_type:
title: "Sélectionner un type de contrôle"
- metas:
- no_prerequisite: "Aucun"
actions:
new: Ajouter
edit: Editer
@@ -40,6 +38,7 @@ fr:
messages:
3_route_1: "L'itinéraire %{source_objectid} dessert successivement les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}) de la même zone de lieu"
description: "Deux arrêts d’une même ZDL ne peuvent pas se succéder dans un itinéraire"
+ prerequisite: "Aucun"
route_control/opposite_route:
messages:
3_route_2: "L'itinéraire %{source_objectid} référence un itinéraire retour %{target_0_objectid} incohérent"
@@ -52,10 +51,12 @@ fr:
messages:
3_route_3: "L'itinéraire %{source_objectid} n'a pas de mission"
description: "Un itinéraire doit avoir au moins une mission"
+ prerequisite: "Aucun"
route_control/duplicates:
messages:
3_route_4: "L'itinéraire %{source_objectid} est identique à l'itinéraire %{target_0_objectid}"
description: "2 itinéraires ne doivent pas desservir strictement les mêmes arrêts dans le même ordre avec les mêmes critères de monté/descente"
+ prerequisite: "Aucun"
route_control/opposite_route_terminus:
messages:
3_route_5: "L'itinéraire %{source_objectid} dessert au départ un arrêt de la ZDL %{target_0_label} alors que l'itinéraire inverse dessert à l'arrivée un arrêt de la ZDL %{target_1_label}"
@@ -65,78 +66,100 @@ fr:
messages:
3_route_6: "L'itinéraire %{source_objectid} ne dessert pas assez d'arrêts (minimum 2 requis)"
description: "Un itinéraire doit référencer au moins 2 arrêts"
+ prerequisite: "Aucun"
route_control/stop_points_in_journey_pattern:
messages:
3_route_8: "l'arrêt %{target_0_label} (%{target_0_objectid}) de l'itinéraire %{source_objectid} n'est desservi par aucune mission"
description: "Les arrêts de l'itinéraire doivent être desservis par au moins une mission"
+ prerequisite: "Aucun"
route_control/omnibus_journey_pattern:
messages:
3_route_9: "L'itinéraire %{source_objectid} n'a aucune mission desservant l'ensemble de ses arrêts"
description: "Une mission de l'itinéraire devrait desservir l'ensemble des arrêts de celui-ci"
+ prerequisite: "Aucun"
route_control/unactivated_stop_point:
messages:
3_route_10: "L'itinéraire %{source_objectid} référence un arrêt (ZDEp) désactivé %{target_0_label} (%{target_0_objectid})"
description: "Les arrêts d'un itinéraire ne doivent pas être désactivés"
+ prerequisite: "Aucun"
journey_pattern_control/duplicates:
messages:
3_journeypattern_1: "La mission %{source_objectid} est identique à la mission %{target_0_objectid}"
description: "Deux missions de la même ligne ne doivent pas desservir les mêmes arrêts dans le même ordre"
+ prerequisite: "Aucun"
journey_pattern_control/vehicle_journey:
messages:
3_journeypattern_2: "La mission %{source_objectid} n'a pas de course"
description: "Une mission doit avoir au moins une course"
+ prerequisite: "Aucun"
vehicle_journey_control/waiting_time:
messages:
3_vehiclejourney_1: "Sur la course %{source_objectid}, le temps d'attente %{error_value} à l'arrêt %{target_0_label} (%{target_0_objectid}) est supérieur au seuil toléré (%{reference_value})"
description: "La durée d’attente, en minutes, à un arrêt ne doit pas être trop grande"
+ prerequisite: "Aucun"
vehicle_journey_control/speed:
messages:
3_vehiclejourney_2_1: "Sur la course %{source_objectid}, la vitesse calculée %{error_value} entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}) est supérieure au seuil toléré (%{reference_value})"
3_vehiclejourney_2_2: "Sur la course %{source_objectid}, la vitesse calculée %{error_value} entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}) est inférieure au seuil toléré (%{reference_value})"
description: "La vitesse entre deux arrêts doit être dans une fourchette paramétrable"
+ prerequisite: "Aucun"
vehicle_journey_control/delta:
messages:
3_vehiclejourney_3: "Le temps de parcours sur la course %{source_objectid} entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}) s'écarte de %{error_value} du temps moyen constaté sur la mission"
description: "Les temps de parcours entre 2 arrêts successifs doivent être similaires pour toutes les courses d’une même mission"
+ prerequisite: "Aucun"
vehicle_journey_control/time_table:
messages:
3_vehiclejourney_4: "La course %{source_objectid} n'a pas de calendrier d'application"
description: "Une course doit avoir au moins un calendrier d’application"
+ prerequisite: "Aucun"
vehicle_journey_control/vehicle_journey_at_stops:
messages:
3_vehiclejourney_5_1: "La course %{source_objectid} a un horaire d'arrivé %{error_value} supérieur à l'horaire de départ %{reference_value} à l'arrêt %{target_0_label} (%{target_0_objectid})"
3_vehiclejourney_5_2: "La course %{source_objectid} a un horaire de départ %{error_value} à l'arrêt %{target_0_label} (%{target_0_objectid}) supérieur à l'horaire d'arrivé %{reference_value} à l'arrêt suivant"
description: "L'horaire d'arrivée à un arrêt doit être antérieur à l'horaire de départ de cet arrêt ET les horaires de départ aux arrêts doivent être dans l'ordre chronologique croissant."
+ prerequisite: "Aucun"
routing_constraint_zone_control/unactivated_stop_point:
messages:
3_routingconstraint_1: "L'ITL %{source_objectid} référence un arrêt (ZDEp) désactivé %{target_0_label} (%{target_0_objectid})"
description: "Les arrêts d'une ITL ne doivent pas être désactivés"
+ prerequisite: "Aucun"
routing_constraint_zone_control/maximum_length:
messages:
3_routingconstraint_2: "L'ITL %{source_objectid} couvre tous les arrêts de l'itinéraire %{target_0_objectid}."
description: "Une ITL ne peut pas couvrir l'ensemble des arrêts de l'itinéraire"
+ prerequisite: "Aucun"
routing_constraint_zone_control/minimum_length:
messages:
3_routingconstraint_3: "L'ITL %{source_objectid} n'a pas suffisament d'arrêts (minimum 2 arrêts requis)"
description: "Une ITL doit référencer au moins 2 arrêts"
+ prerequisite: "Aucun"
line_control/route:
messages:
3_line_1: "Sur la ligne %{source_label} (%{source_objectid}), aucun itinéraire n'a d'itinéraire inverse"
description: "Les itinéraires d'une ligne doivent être associés en aller/retour"
prerequisite: Ligne disposant de plusieurs itinéraires
+ line_control/lines_scope:
+ messages:
+ 3_line_2: "La ligne %{source_label} (%{source_objectid}) ne fait pas partie du périmètre de lignes de l'organisation %{reference_value}"
+ description: "Les lignes doivent appartenir au périmètre de lignes de l'organisation"
+ prerequisite: "Aucun"
generic_attribute_control/pattern:
messages:
3_generic_1: "%{source_objectid} : l'attribut %{source_attribute} a une valeur %{error_value} qui ne respecte pas le motif %{reference_value}"
description: "l'attribut de l'objet doit respecter un motif (expression régulière)"
+ prerequisite: "Aucun"
generic_attribute_control/min_max:
messages:
3_generic_2_1: "%{source_objectid} : l'attribut %{source_attribute} a une valeur %{error_value} supérieure à la valeur maximale autorisée %{reference_value}"
3_generic_2_2: "%{source_objectid} : l'attribut %{source_attribute} a une valeur %{error_value} inférieure à la valeur minimale autorisée %{reference_value}"
description: "La valeur numérique de l'attribut doit rester comprise entre 2 valeurs"
+ prerequisite: "Aucun"
generic_attribute_control/uniqueness:
messages:
3_generic_3: "%{source_objectid} : l'attribut %{source_attribute} a une valeur %{error_value} partagée avec %{target_0_objectid}"
description: "La valeur de l'attribut doit être unique au sein des objets de la ligne"
+ prerequisite: "Aucun"
shape_control:
3_shape_1: "Tracé %{source_objectid} : le tracé passe trop loin de l'arrêt %{target_0_label} (%{target_0_objectid}) : %{error_value} > %{reference_value}"
3_shape_2: "Tracé %{source_objectid} : le tracé n'est pas défini entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid})"
@@ -173,7 +196,7 @@ fr:
vehicle_journey_control/speed:
one: "La vitesse entre deux arrêts doit être dans une fourchette paramétrable"
vehicle_journey_control/delta:
- one: "Les vitesses entre 2 arrêts doivent être similaires pour toutes les courses d’une même mission"
+ one: "Les temps de parcours entre 2 arrêts doivent être similaires pour toutes les courses d’une même mission"
vehicle_journey_control/time_table:
one: "Une course doit avoir au moins un calendrier d’application"
vehicle_journey_control/vehicle_journey_at_stops:
@@ -188,8 +211,10 @@ fr:
one: "ITL & arret désactivé"
line_control/route:
one: "Appariement des itinéraires"
+ line_control/lines_scope:
+ one: "Les lignes doivent appartenir au périmètre de lignes de l'organisation"
generic_attribute_control/pattern:
- one: "Contrôle du contenu selon un pattern"
+ one: "Contrôle du contenu selon une expression régulière"
generic_attribute_control/min_max:
one: "Valeur min, max de champs numériques"
generic_attribute_control/uniqueness:
@@ -207,3 +232,4 @@ fr:
target: "Cible"
prerequisite: "Prérequis"
predicate: "Prédicat"
+ pattern: Expression régulière
diff --git a/config/locales/dashboard.en.yml b/config/locales/dashboard.en.yml
index 8d46ff7aa..472f5bc2f 100644
--- a/config/locales/dashboard.en.yml
+++ b/config/locales/dashboard.en.yml
@@ -1,7 +1,10 @@
en:
dashboards:
+ main_nav_left: Dashboard
show:
title: "Dashboard %{organisation}"
+ workbench:
+ title: Transport offer %{organisation}
calendars:
title: Calendars
none: No calendar created
diff --git a/config/locales/dashboard.fr.yml b/config/locales/dashboard.fr.yml
index d0aa36d61..65022fcb8 100644
--- a/config/locales/dashboard.fr.yml
+++ b/config/locales/dashboard.fr.yml
@@ -1,7 +1,10 @@
fr:
dashboards:
+ main_nav_left: Tableau de bord
show:
title: "Tableau de bord %{organisation}"
+ workbench:
+ title: Offre de transport %{organisation}
calendars:
title: Modèles de calendrier
none: Aucun calendrier défini
diff --git a/config/locales/en.yml b/config/locales/en.yml
index 8af8067db..05d21a1f2 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -2,6 +2,7 @@ en:
"true": "Yes"
"false": "No"
"unknown": "Unknown"
+ label_with_colon: "%{label}: "
time:
diff --git a/config/locales/export_messages.en.yml b/config/locales/export_messages.en.yml
new file mode 100644
index 000000000..9823d7f78
--- /dev/null
+++ b/config/locales/export_messages.en.yml
@@ -0,0 +1,4 @@
+en:
+ export_messages:
+ success: Success
+ no_matching_journey: No matching journey found
diff --git a/config/locales/export_messages.fr.yml b/config/locales/export_messages.fr.yml
new file mode 100644
index 000000000..4f45fd8e1
--- /dev/null
+++ b/config/locales/export_messages.fr.yml
@@ -0,0 +1,4 @@
+fr:
+ export_messages:
+ success: Succès
+ no_matching_journey: Aucun trajet correspondant
diff --git a/config/locales/exports.en.yml b/config/locales/exports.en.yml
index 2a47fba54..de34e797c 100644
--- a/config/locales/exports.en.yml
+++ b/config/locales/exports.en.yml
@@ -1,25 +1,32 @@
en:
- exports:
+ exports: &exports
+ search_no_results: "No export matching your query"
+ filters:
+ referential: "Select data space..."
+ name_or_creator_cont: "Select an export or creator name..."
+ error_period_filter: "End date must be greater or equal than begin date"
actions:
new: "New export"
+ create: "New export"
+ show: "Export report"
+ download: "Download original file"
destroy: "Destroy"
destroy_confirm: "Are you sure you want destroy this export?"
- new:
- title: "New export"
- all: "All"
- flash: "Export task on queue, refresh page to see progression"
index:
title: "Exports"
warning: ""
+ new:
+ title: "Generate a new export"
+ create:
+ title: "Generate a new export"
show:
+ title: "Export %{name}"
report: "Report"
- exported_file: "Exported file"
- statuses:
- started: "Started"
- scheduled: "Processing ..."
- terminated: "Completed"
- canceled: "Canceled"
- aborted: "Failed"
+ exported_file: "Original file"
+ compliance_check: "Validation report"
+ compliance_check_of: "Validation of export: "
+ export_of_validation: "Export of the validation"
+ compliance_check_task: "Validate Report"
severities:
info: "Information"
uncheck: "Unchecked"
@@ -27,7 +34,13 @@ en:
warning: "Warning"
error: "Error"
fatal: "Fatal"
- activemodel:
+ export:
+ workgroup: Workgroup
+ netex: Netex
+ referential_companies: Companies
+ base:
+ <<: *exports
+ activerecord:
models:
export:
zero: "export"
@@ -37,6 +50,10 @@ en:
zero: "export"
one: "Neptune export"
other: "exports"
+ csv_export:
+ zero: "export"
+ one: "CSV export"
+ other: "exports"
gtfs_export:
zero: "export"
one: "GTFS export"
@@ -44,4 +61,43 @@ en:
netex_export:
zero: "export"
one: "NeTEx export"
- other: "exports" \ No newline at end of file
+ other: "exports"
+ errors:
+ models:
+ export:
+ base:
+ attributes:
+ file:
+ wrong_file_extension: "The exported file must be a zip file"
+ attributes:
+ attrs: &attrs
+ resources: "File to export"
+ created_at: "Created on"
+ started_at: "Started at"
+ name: "Name"
+ status: "Status"
+ creator: "Creator"
+ references_type: "Data to be exported"
+ no_save: "No save"
+ object_id_prefix: "Neptune Id prefix"
+ max_distance_for_commercial: "Max distance for commercial stop"
+ max_distance_for_connection_link: "Max distance for connection link"
+ ignore_last_word: "ignore last word"
+ ignore_end_chars: "ignore last chars"
+ type: "Export type"
+ file: "Output"
+ files: "Outputs"
+ parent: Parent
+ referential_id: Referential
+ export:
+ <<: *attrs
+ base:
+ <<: *attrs
+ workgroup:
+ duration: Duration
+ referential_companies:
+ referential_id: Referential
+ flash:
+ exports:
+ create:
+ notice: "The export is in progress. Please wait and refresh the page in a few moments."
diff --git a/config/locales/exports.fr.yml b/config/locales/exports.fr.yml
index 2d7cc0259..62aae70cd 100644
--- a/config/locales/exports.fr.yml
+++ b/config/locales/exports.fr.yml
@@ -1,33 +1,46 @@
fr:
- exports:
+ exports: &exports
+ search_no_results: "Aucun export ne correspond à votre recherche"
+ filters:
+ referential: "Sélectionnez un jeu de données..."
+ name_or_creator_cont: "Indiquez un nom d'export ou d'opérateur..."
+ error_period_filter: "La date de fin doit être supérieure ou égale à la date de début"
actions:
new: "Nouvel export"
+ create: "Nouvel export"
+ show: "Rapport d'export"
+ download: "Téléch. fichier source"
destroy: "Supprimer cet export"
destroy_confirm: "Etes vous sûr de supprimer cet export ?"
- new:
- title: "Nouvel export"
- all: "Toutes"
- flash: "La demande d'export est mise en file d'attente, veuillez rafraichir régulièrement la page pour en suivre la progression"
index:
title: "Exports"
warning: ""
+ new:
+ title: "Générer un export"
+ create:
+ title: "Générer un export"
show:
+ title: "Export %{name}"
report: "Rapport"
- exported_file: "Fichier exporté"
- statuses:
- started: "En file d'attente..."
- scheduled: "En cours..."
- terminated: "Achevé"
- canceled: "Annulé"
- aborted: "Echoué"
+ exported_file: "Fichier source"
+ compliance_check: "Test de conformité"
+ compliance_check_of: "Validation de l'export : "
+ export_of_validation: "L'export de la validation"
+ compliance_check_task: "Validation"
severities:
info: "Information"
- uncheck: "Non disponible"
+ uncheck: "Non testé"
ok: "Ok"
warning: "Alerte"
error: "Erreur"
fatal: "Fatal"
- activemodel:
+ export:
+ workgroup: Groupe de travail
+ netex: Netex
+ referential_companies: Transporteurs
+ base:
+ <<: *exports
+ activerecord:
models:
export:
zero: "export"
@@ -35,7 +48,11 @@ fr:
other: "exports"
neptune_export:
zero: "export"
- one: "export neptune"
+ one: "export Neptune"
+ other: "exports"
+ csv_export:
+ zero: "export"
+ one: "export CSV"
other: "exports"
gtfs_export:
zero: "export"
@@ -45,3 +62,42 @@ fr:
zero: "export"
one: "export NeTEx"
other: "exports"
+ errors:
+ models:
+ export:
+ base:
+ attributes:
+ file:
+ wrong_file_extension: "Le fichier exporté doit être au format zip"
+ attributes:
+ attrs: &attrs
+ resources: "Fichier à exporter"
+ created_at: "Créé le"
+ started_at: Démarrage
+ name: "Nom de l'export"
+ status: "Etat"
+ creator: "Opérateur"
+ no_save: "Pas de sauvegarde"
+ references_type: "Données à exporter"
+ object_id_prefix: "Préfixe d'identifiants"
+ max_distance_for_commercial: "Distance max pour créer les zones"
+ max_distance_for_connection_link: "Distance max pour créer les correspondances"
+ ignore_last_word: "ignorer le dernier mot"
+ ignore_end_chars: "ignorer les n derniers caractères"
+ type: "Type d'export"
+ file: "Résultat"
+ files: "Résultats"
+ parent: Parent
+ referential_id: Jeu de données
+ export:
+ <<: *attrs
+ base:
+ <<: *attrs
+ workgroup:
+ duration: Durée
+ referential_companies:
+ referential_id: Jeu de données
+ flash:
+ exports:
+ create:
+ notice: "L'export est en cours, veuillez patienter. Actualiser votre page si vous voulez voir l'avancement de votre traitement."
diff --git a/config/locales/footnotes.fr.yml b/config/locales/footnotes.fr.yml
index 692098046..5169cfc11 100644
--- a/config/locales/footnotes.fr.yml
+++ b/config/locales/footnotes.fr.yml
@@ -15,6 +15,6 @@ fr:
other: "notes"
attributes:
footnote:
- code: "numéro"
+ code: "titre"
checksum: Signature métier
- label: "ligne de texte"
+ label: "texte"
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index e1f52ff55..733ba05b9 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -2,6 +2,7 @@ fr:
"true": "Oui"
"false": "Non"
"unknown": "Non précisé"
+ label_with_colon: "%{label} : "
time:
formats:
diff --git a/config/locales/import_messages.en.yml b/config/locales/import_messages.en.yml
index aad4fb772..3ed98aaa6 100644
--- a/config/locales/import_messages.en.yml
+++ b/config/locales/import_messages.en.yml
@@ -2,7 +2,10 @@ en:
import_messages:
corrupt_zip_file: "The zip file %{source_filename} is corrupted and cannot be read"
inconsistent_zip_file: "The zip file %{source_filename} contains unexpected directories: %{spurious_dirs}, which are ignored"
- referential_creation: "Le référentiel n'a pas pu être créé car un référentiel existe déjà sur les mêmes périodes et lignes"
+ missing_calendar_in_zip_file: "The folder %{source_filename} lacks a calendar file"
+ wrong_calendar_in_zip_file: "The calendar file %{source_filename} cannot be parsed, or contains inconsistant data"
+ referential_creation: "The referential %{referential_name} has not been created because another referential with the same lines and periods already exists"
+ referential_creation_missing_lines: "The referential %{referential_name} has not been created because no matching line has been found"
1_netexstif_2: "Le fichier %{source_filename} ne respecte pas la syntaxe XML ou la XSD NeTEx : erreur '%{error_value}' rencontré"
1_netexstif_5: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number} : l'objet %{source_label} d'identifiant %{source_objectid} a une date de mise à jour dans le futur"
2_netexstif_1_1: "Le fichier commun.xml ne contient pas de frame nommée NETEX_COMMUN"
@@ -50,4 +53,13 @@ en:
2_netexstif_servicejourneypattern_2: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number} : l'objet ServiceJourneyPattern d'identifiant %{source_objectid} doit contenir au moins 2 StopPointInJourneyPattern"
2_netexstif_servicejourneypattern_3_1: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number} : l'objet ServiceJourneyPattern d'identifiant %{source_objectid} n'a pas de valeur pour l'attribut ServiceJourneyPatternType"
2_netexstif_servicejourneypattern_3_2: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number} : l'objet ServiceJourneyPattern d'identifiant %{source_objectid} a une valeur interdite %{error_value} pour l'attribut ServiceJourneyPatternType différente de 'passenger'"
- 2_netexstif_servicejourneypattern_4: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number}, objet ServiceJourneyPattern d'identifiant %{source_objectid} : les attributs 'order' des StopPointInJourneyPattern ne sont pas croissants." \ No newline at end of file
+ 2_netexstif_servicejourneypattern_4: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number}, objet ServiceJourneyPattern d'identifiant %{source_objectid} : les attributs 'order' des StopPointInJourneyPattern ne sont pas croissants."
+ activerecord:
+ attributes:
+ import_message:
+ criticity: Criticity
+ message_key: Message key
+ message: Message
+ filename: Filename
+ line: Line
+ column: Column
diff --git a/config/locales/import_messages.fr.yml b/config/locales/import_messages.fr.yml
index 1e5054648..5d82b9125 100644
--- a/config/locales/import_messages.fr.yml
+++ b/config/locales/import_messages.fr.yml
@@ -2,10 +2,13 @@ fr:
import_messages:
corrupt_zip_file: "Le fichier zip est corrompu, et ne peut être lu"
inconsistent_zip_file: "Le fichier zip contient des repertoires non prévus : %{spurious_dirs} qui seront ignorés"
- referential_creation: "Le référentiel n'a pas pu être créé car un référentiel existe déjà sur les mêmes périodes et lignes"
+ missing_calendar_in_zip_file: "Le dossier %{source_filename} ne contient pas de calendrier"
+ wrong_calendar_in_zip_file: "Le calendrier contenu dans %{source_filename} contient des données incorrectes ou incohérentes"
+ referential_creation: "Le référentiel %{referential_name} n'a pas pu être créé car un référentiel existe déjà sur les mêmes périodes et lignes"
+ referential_creation_missing_lines: "Le référentiel %{referential_name} n'a pas pu être créé car aucune ligne ne correspond"
1_netexstif_2: "Le fichier %{source_filename} ne respecte pas la syntaxe XML ou la XSD NeTEx : erreur '%{error_value}' rencontré"
1_netexstif_5: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number} : l'objet %{source_label} d'identifiant %{source_objectid} a une date de mise à jour dans le futur"
- 2_netexstif_1_1: "Le fichier commun.xml ne contient pas de frame nommée NETEX_COMMUN"
+ 2_netexstif_1_1: "Le fichier commun.xml ne contient pas de frame nommée NTEX_COMMUN"
2_netexstif_1_2: "Le fichier commun.xml contient une frame nommée %{error_value} non acceptée"
2_netexstif_2_1: "Le fichier calendriers.xml ne contient pas de frame nommée NETEX_CALENDRIER"
2_netexstif_2_2: "Le fichier calendriers.xml contient une frame nommée %{error_value} non acceptée"
@@ -51,3 +54,12 @@ fr:
2_netexstif_servicejourneypattern_3_1: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number} : l'objet ServiceJourneyPattern d'identifiant %{source_objectid} n'a pas de valeur pour l'attribut ServiceJourneyPatternType"
2_netexstif_servicejourneypattern_3_2: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number} : l'objet ServiceJourneyPattern d'identifiant %{source_objectid} a une valeur interdite %{error_value} pour l'attribut ServiceJourneyPatternType différente de 'passenger'"
2_netexstif_servicejourneypattern_4: "%{source_filename}-Ligne %{source_line_number}-Colonne %{source_column_number}, objet ServiceJourneyPattern d'identifiant %{source_objectid} : les attributs 'order' des StopPointInJourneyPattern ne sont pas croissants."
+ activerecord:
+ attributes:
+ import_message:
+ criticity: Criticité
+ message_key: Clé du message
+ message: Message
+ filename: Nom du fichier
+ line: Ligne
+ column: Colonne
diff --git a/config/locales/import_resources.en.yml b/config/locales/import_resources.en.yml
index 5f0f3213e..4b1f9c394 100644
--- a/config/locales/import_resources.en.yml
+++ b/config/locales/import_resources.en.yml
@@ -1,11 +1,14 @@
en:
+ import:
+ resources: &resources
+ index:
+ title: "NeTEx conformity"
+ table_state: "%{lines_imported} line(s) imported on %{lines_in_zipfile} presents in zipfile"
+ table_title: "Satus of anlyzed files"
+ table_explanation: "When calendriers.xml and/or commun.xml are not imported, then all lines file are not processed."
+ metrics: "%{error_count} errors, %{warning_count} warnings"
import_resources:
- index:
- title: "NeTEx conformity"
- table_state: "%{lines_imported} line(s) imported on %{lines_in_zipfile} presents in zipfile"
- table_title: "Satus of anlyzed files"
- table_explanation: "When calendriers.xml and/or commun.xml are not imported, then all lines file are not processed."
- metrics: "%{ok_count} ok, %{error_count} errors, %{warning_count} warnings, %{uncheck_count} n/a"
+ <<: *resources
activerecord:
models:
import_resource:
@@ -14,5 +17,6 @@ en:
other: "netex conformities"
attributes:
import:
- name: "Filename"
- status: "Status"
+ resource:
+ name: "Filename"
+ status: "Status"
diff --git a/config/locales/import_resources.fr.yml b/config/locales/import_resources.fr.yml
index a271ae1ca..93a576f01 100644
--- a/config/locales/import_resources.fr.yml
+++ b/config/locales/import_resources.fr.yml
@@ -1,11 +1,14 @@
fr:
+ import:
+ resources: &resources
+ index:
+ title: "Rapport de conformité NeTEx"
+ table_state: "%{lines_imported} ligne(s) importée(s) sur %{lines_in_zipfile} présente(s) dans l'archive"
+ table_title: "Etat des fichiers analysés"
+ table_explanation: "Dans le cas ou le(s) fichiers calendriers.xml et/ou commun.xml sont dans un état non importé, alors tous les fichiers lignes sont automatiquement dans un état non traité."
+ metrics: "%{error_count} errors, %{warning_count} warnings"
import_resources:
- index:
- title: "Rapport de conformité NeTEx"
- table_state: "%{lines_imported} ligne(s) importée(s) sur %{lines_in_zipfile} présente(s) dans l'archive"
- table_title: "Etat des fichiers analysés"
- table_explanation: "Dans le cas ou le(s) fichiers calendriers.xml et/ou commun.xml sont dans un état non importé, alors tous les fichiers lignes sont automatiquement dans un état non traité."
- metrics: "%{ok_count} ok, %{error_count} errors, %{warning_count} warnings, %{uncheck_count} n/a"
+ <<: *resources
activerecord:
models:
import_resource:
@@ -13,6 +16,7 @@ fr:
one: "rapport de conformité Netex"
other: "rapports de conformité Netex"
attributes:
- import_resource:
- name: "Fichier"
- status: "Etat"
+ import:
+ resource:
+ name: "Fichier"
+ status: "Etat"
diff --git a/config/locales/import_tasks.en.yml b/config/locales/import_tasks.en.yml
deleted file mode 100644
index 34f7e6998..000000000
--- a/config/locales/import_tasks.en.yml
+++ /dev/null
@@ -1,52 +0,0 @@
-en:
- import_tasks:
- actions:
- new: "New import"
- new:
- title: "New import"
- all: "All"
- flash: "Import task on queue, refresh page to see progression"
- activemodel:
- models:
- import_task:
- zero: "import"
- one: "import"
- other: "imports"
- neptune_import:
- zero: "import"
- one: "Neptune import"
- other: "imports"
- gtfs_import:
- zero: "import"
- one: "GTFS import"
- other: "imports"
- netex_import:
- zero: "import"
- one: "NeTEx import"
- other: "imports"
- attributes:
- import_task:
- name: "Import name"
- no_save: "No save"
- resources: "File to import"
- references_type: "Data to be imported"
- object_id_prefix: "Neptune Id prefix"
- max_distance_for_commercial: "Max distance for commercial stop"
- max_distance_for_connection_link: "Max distance for connection link"
- ignore_last_word: "ignore last word"
- ignore_end_chars: "ignore last chars"
- errors:
- models:
- import_task:
- attributes:
- resources:
- maximum_file_size: "File should smaller than %{maximum_file_size} (%{file_size} sent)"
- invalid_mime_type: "File doesn't use the expected format (%{mime_type} sent)"
- formtastic:
- titles:
- import_task:
- max_distance_for_commercial: "Maximal distance to merge homonymous stops in commercial stop in meter"
- max_distance_for_connection_link: "Maximal distance to link stops by connection link stop in meter"
- ignore_last_word: "ignore last word on stop name in homonymous detection (inappliable when just one word occurs)"
- ignore_end_chars: "ignore some chars at the end of stop names in homonymous detection"
- references_type: "Filter on stop areas import only GTFS stops and transfers files, these may contain extra attributes"
diff --git a/config/locales/import_tasks.fr.yml b/config/locales/import_tasks.fr.yml
deleted file mode 100644
index 002ca03cb..000000000
--- a/config/locales/import_tasks.fr.yml
+++ /dev/null
@@ -1,53 +0,0 @@
-fr:
- import_tasks:
- actions:
- new: "Nouvel import"
- new:
- title: "Nouvel import"
- all: "Tout"
- flash: "La demande d'import est mise en file d'attente, veuillez rafraichir régulièrement la page pour en suivre la progression"
- activemodel:
- models:
- import_task:
- zero: "import"
- one: "import"
- other: "imports"
- neptune_import:
- zero: "import"
- one: "import Neptune"
- other: "imports"
- gtfs_import:
- zero: "import"
- one: "import GTFS"
- other: "imports"
- netex_import:
- zero: "import"
- one: "import NeTEx"
- other: "imports"
- attributes:
- import_task:
- name: "Nom de l'import"
- no_save: "Pas de sauvegarde"
- resources: "Fichier à importer"
- references_type: "Données à importer"
- object_id_prefix: "Préfixe d'identifiants"
- max_distance_for_commercial: "Distance max pour créer les zones"
- max_distance_for_connection_link: "Distance max pour créer les correspondances"
- ignore_last_word: "ignorer le dernier mot"
- ignore_end_chars: "ignorer les n derniers caractères"
- errors:
- models:
- import_task:
- attributes:
- resources:
- maximum_file_size: "Le fichier ne peut dépasser %{maximum_file_size} (%{file_size} soumis)"
- invalid_mime_type: "Le fichier n'utilise pas le format attendu (%{mime_type} soumis)"
-
- formtastic:
- titles:
- import_task:
- max_distance_for_commercial: "Distance maximale entre deux arrêts homonymes pour créer les zones d'arrêt (en mètre)"
- max_distance_for_connection_link: "Distance maximale entre deux arrêts pour créer les correspondances (en mètre)"
- ignore_last_word: "Ignorer le dernier mot pour détecter l'homonymie des noms d'arrêt (inapplicable quand le nom ne comporte qu'un mot)"
- ignore_end_chars: "Ignorer les n derniers caractères du nom de l'arrêt pour détecter l'homonymie"
- references_type: "Le filtre sur arrêts importe uniquement les fichiers GTFS stops et transfers gtfs, ceux-ci pouvant contenir des attributs supplémentaires"
diff --git a/config/locales/imports.en.yml b/config/locales/imports.en.yml
index b0644acd3..c8683a2a7 100644
--- a/config/locales/imports.en.yml
+++ b/config/locales/imports.en.yml
@@ -26,6 +26,13 @@ en:
compliance_check: "Validation report"
compliance_check_of: "Validation of import: "
import_of_validation: "Import of the validation"
+ data_recovery: Data recovery
+ filename: Filename
+ referential_name: Referential name
+ stif_control: STIF Control
+ organisation_control: Organization control
+ results: "%{count} validated referential(s) out of %{total} in the file"
+ summary: Summay of import compliance check sets <span title="Lorem ipsum..." class="fa fa-lg fa-info-circle text-info"></span>
compliance_check_task: "Validate Report"
severities:
info: "Information"
@@ -59,11 +66,12 @@ en:
errors:
models:
import:
- attributes:
- file:
- wrong_file_extension: "The imported file must be a zip file"
+ base:
+ attributes:
+ file:
+ wrong_file_extension: "The imported file must be a zip file"
attributes:
- import:
+ attrs: &attrs
resources: "File to import"
created_at: "Created on"
started_at: "Started at"
@@ -77,6 +85,10 @@ en:
max_distance_for_connection_link: "Max distance for connection link"
ignore_last_word: "ignore last word"
ignore_end_chars: "ignore last chars"
+ import:
+ <<: *attrs
+ base:
+ <<: *attrs
flash:
imports:
create:
diff --git a/config/locales/imports.fr.yml b/config/locales/imports.fr.yml
index 2380eac45..733254fa4 100644
--- a/config/locales/imports.fr.yml
+++ b/config/locales/imports.fr.yml
@@ -1,5 +1,5 @@
fr:
- imports:
+ imports: &imports
search_no_results: "Aucun import ne correspond à votre recherche"
filters:
referential: "Sélectionnez un jeu de données..."
@@ -26,6 +26,13 @@ fr:
compliance_check: "Test de conformité"
compliance_check_of: "Validation de l'import : "
import_of_validation: "L'import de la validation"
+ data_recorvery: Récupération des données
+ filename: Nom de l'archive
+ referential_name: Nom du référentiel
+ stif_control: Contrôle STIF
+ organisation_control: Contrôle organisation
+ results: "%{count} jeu(x) de données validé(s) sur %{total}"
+ summary: Bilan des jeux de contrôles d'import <span title="Lorem ipsum..." class="fa fa-lg fa-info-circle text-info"></span>
compliance_check_task: "Validation"
severities:
info: "Information"
@@ -34,6 +41,9 @@ fr:
warning: "Alerte"
error: "Erreur"
fatal: "Fatal"
+ import:
+ base:
+ <<: *imports
activerecord:
models:
import:
@@ -59,11 +69,12 @@ fr:
errors:
models:
import:
- attributes:
- file:
- wrong_file_extension: "Le fichier importé doit être au format zip"
+ base:
+ attributes:
+ file:
+ wrong_file_extension: "Le fichier importé doit être au format zip"
attributes:
- import:
+ attrs: &attrs
resources: "Fichier à importer"
created_at: "Créé le"
started_at: Démarrage
@@ -77,6 +88,12 @@ fr:
max_distance_for_connection_link: "Distance max pour créer les correspondances"
ignore_last_word: "ignorer le dernier mot"
ignore_end_chars: "ignorer les n derniers caractères"
+
+ import:
+ <<: *attrs
+ base:
+ <<: *attrs
+
flash:
imports:
create:
diff --git a/config/locales/journey_patterns.en.yml b/config/locales/journey_patterns.en.yml
index 9d9bc21e2..70ae94dd9 100644
--- a/config/locales/journey_patterns.en.yml
+++ b/config/locales/journey_patterns.en.yml
@@ -1,6 +1,7 @@
en:
journey_patterns:
journey_pattern:
+ fetching_error: "There has been a problem fetching the data. Please reload the page to try again."
from_to: "From '%{departure}' to '%{arrival}'"
stop_count: "%{count}/%{route_count} stops"
vehicle_journeys_count: "Vehicle journeys: %{count}"
@@ -19,6 +20,13 @@ en:
show:
title: "Journey Pattern %{journey_pattern}"
stop_points: "Stop point on journey pattern list"
+ stop_points_count:
+ none: '%{count} stop areas'
+ one: '%{count} stop area'
+ other: '%{count} stop areas'
+ informations: Informations
+ confirmation: Confimation
+ confirm_page_change: You are about to change page. Would you like to save your work before that ?
index:
title: "Journey Patterns of %{route}"
form:
@@ -41,7 +49,6 @@ en:
name: "Name"
published_name: "Published name"
comment: "Comments"
- section_status: "Section status"
registration_number: "Registration number"
stop_point_ids: "Route's stop selection"
objectid: "Neptune identifier"
@@ -49,6 +56,10 @@ en:
created_at: Created at
updated_at: Updated at
creator_id: "Created by"
+ full_journey_time: Full journey
+ commercial_journey_time: Commercial journey
+ stop_points: Nb stop areas
+ checksum: Checksum
formtastic:
titles:
journey_pattern:
diff --git a/config/locales/journey_patterns.fr.yml b/config/locales/journey_patterns.fr.yml
index fb69f4190..10653a02d 100644
--- a/config/locales/journey_patterns.fr.yml
+++ b/config/locales/journey_patterns.fr.yml
@@ -1,6 +1,7 @@
fr:
journey_patterns:
journey_pattern:
+ fetching_error: "La récupération des courses a rencontré un problème. Rechargez la page pour tenter de corriger le problème."
from_to: "De '%{departure}' à '%{arrival}'"
stop_count: "%{count}/%{route_count} arrêts"
vehicle_journeys_count: "Courses: %{count}"
@@ -19,6 +20,13 @@ fr:
show:
title: "Mission %{journey_pattern}"
stop_points: "Liste des arrêts de la mission"
+ stop_points_count:
+ none: '%{count} arrêt'
+ one: '%{count} arrêt'
+ other: '%{count} arrêts'
+ informations: Informations
+ confirmation: Confimation
+ confirm_page_change: Vous vous apprêtez à changer de page. Voulez-vous valider vos modifications avant cela ?
index:
title: "Missions de %{route}"
form:
@@ -40,15 +48,18 @@ fr:
route: "Séquence d'arrêts"
name: "Nom"
published_name: "Nom public"
- section_status: "Status section"
comment: "Commentaire"
- registration_number: "Numéro d'enregistrement"
+ registration_number: "Code mission"
stop_point_ids: "Sélection des arrêts desservis"
objectid: "Identifiant Neptune"
object_version: "Version"
created_at: "Créé le"
updated_at: "Edité le"
creator_id: "Créé par"
+ full_journey_time: Parcours complet
+ commercial_journey_time: Parcours commercial
+ stop_points: Nb arrêts
+ checksum: Signature métier
formtastic:
titles:
journey_pattern:
diff --git a/config/locales/layouts.en.yml b/config/locales/layouts.en.yml
index debff05e5..31bff403c 100644
--- a/config/locales/layouts.en.yml
+++ b/config/locales/layouts.en.yml
@@ -3,15 +3,35 @@ en:
back_to_dashboard: "Back to Dashboard"
help: "Help"
home: "Home"
+ operations: Operations
user:
profile: "My Profile"
sign_out: "Sign out"
navbar:
return_to_referentials: "Return to data spaces"
select_referential: "Select data space"
+ select_referential_for_more_features: "Select data space for more foeatures"
select_referential_datas: "Select datas"
return_to_dashboard: "Return to Dashboard"
+ dashboard: Dashboard
referential_datas: "Datas"
+ line_referential: "Line referential"
+ stop_area_referential: "Stop area referential"
+ current_offer:
+ one: Current offer
+ other: Current offers
+ workbench_output:
+ organisation: Organisation offers
+ workgroup: Workgroup offers
+ tools: Tools
+ sync: Synchronization
+ sync_icar: iCAR synchronization
+ sync_ilico: iLICO synchronization
+ icar: iCAR
+ ilico: iLICO
+ portal: Portal (POSTIF)
+ support: Support
+ shapes: Shapes
history_tag:
title: "Metadatas"
created_at: "Created at"
@@ -50,4 +70,4 @@ en:
attributes:
author: "Edited by"
created_at: "Created at"
- updated_at: "Updated at" \ No newline at end of file
+ updated_at: "Updated at"
diff --git a/config/locales/layouts.fr.yml b/config/locales/layouts.fr.yml
index 5e835bcf7..019c72701 100644
--- a/config/locales/layouts.fr.yml
+++ b/config/locales/layouts.fr.yml
@@ -3,15 +3,35 @@ fr:
back_to_dashboard: "Retour au Tableau de Bord"
help: "Aide"
home: "Accueil"
+ operations: Opérations
user:
profile: "Mon Profil"
sign_out: "Déconnexion"
navbar:
return_to_referentials: "Retour à la liste des espaces de données"
select_referential: "Sélection de l'espace de données"
+ select_referential_for_more_features: "Sélectionnez un jeu de données pour accéder à plus de fonctionnalités"
select_referential_datas: "Sélection des données"
return_to_dashboard: "Retour au Tableau de Bord"
+ dashboard: Tableau de bord
referential_datas: "Données"
+ line_referential: "Référentiel de lignes"
+ stop_area_referential: "Référentiel d'arrêts"
+ current_offer:
+ one: Offres courante
+ other: Offres courantes
+ workbench_outputs:
+ organisation: Offre de mon organisation
+ workgroup: Offre du groupe de travail
+ tools: Outils
+ sync: Synchronisation
+ sync_icar: Synchronisation iCAR
+ sync_ilico: Synchronisation iLICO
+ icar: iCAR
+ ilico: iLICO
+ portal: Portail (POSTIF)
+ support: Support
+ shapes: Tracés
history_tag:
title: "Métadonnées"
created_at: "Créé le"
diff --git a/config/locales/line_referential_syncs.en.yml b/config/locales/line_referential_syncs.en.yml
index 5cbab1173..8d17fcefc 100644
--- a/config/locales/line_referential_syncs.en.yml
+++ b/config/locales/line_referential_syncs.en.yml
@@ -1,4 +1,6 @@
en:
+ line_referential_syncs:
+ search_no_results: "No line referential synchronisation matching your query"
activerecord:
errors:
models:
diff --git a/config/locales/line_referential_syncs.fr.yml b/config/locales/line_referential_syncs.fr.yml
index 33827fac9..7f1b1ba75 100644
--- a/config/locales/line_referential_syncs.fr.yml
+++ b/config/locales/line_referential_syncs.fr.yml
@@ -1,4 +1,6 @@
fr:
+ line_referential_syncs:
+ search_no_results: "Aucun synchronisation de référentiel de lignes ne correspond à votre recherche"
activerecord:
errors:
models:
diff --git a/config/locales/line_referentials.en.yml b/config/locales/line_referentials.en.yml
index 5663ed691..6c15b340a 100644
--- a/config/locales/line_referentials.en.yml
+++ b/config/locales/line_referentials.en.yml
@@ -7,9 +7,9 @@ en:
edit:
title: "Edit %{name} referential"
show:
- title: "iLICO synchronization"
+ title: Line referential
synchronized: Synchronized
- status: Status
+ state: Status
message: Message
activerecord:
models:
diff --git a/config/locales/lines.en.yml b/config/locales/lines.en.yml
index 8e0189bd8..c1f9063a7 100644
--- a/config/locales/lines.en.yml
+++ b/config/locales/lines.en.yml
@@ -1,6 +1,5 @@
en:
lines: &en_lines
- search_no_results: "No line matching your query"
actions:
new: "Add a new line"
edit: "Edit this line"
@@ -20,6 +19,9 @@ en:
show: 'Show'
show_network: 'Show network'
show_company: 'Show company'
+ search_no_results: "No results found"
+ filters:
+ name_or_objectid_cont: "Search by name or objectid"
new:
title: "Add a new line"
create:
@@ -33,11 +35,12 @@ en:
routes:
title: "Routes list"
group_of_lines: "Groups of lines"
+ search_no_results: "No line matching your query"
index:
deactivated: "Disabled line"
title: "Lines"
line: "Line %{line}"
- name_or_number_or_objectid: "Search by name, short name or ID Codif..."
+ name_or_number_or_objectid: "Search by name, short name or ID..."
no_networks: "No networks"
no_companies: "No companies"
no_group_of_lines: "No group of lines"
@@ -76,14 +79,13 @@ en:
name: "Network"
company_id: "Company"
company: "Company"
- secondary_company: "Secondary company"
+ secondary_companies: "Secondary companies"
companies:
name: "Company"
registration_number: "Registration number"
name: "Name"
published_name: "Published name"
registration_number: "Short name"
- deactivated: "Activated"
number: "Number"
transport_mode: "Transport mode"
transport_submode: "Transport Submode"
@@ -116,6 +118,9 @@ en:
creator_id: "Created by"
footnotes: "Footnotes"
stable_id: External permanent idenifier"
+ state: Status
+ activated: Activated
+ deactivated: Deactivated
formtastic:
titles:
line:
diff --git a/config/locales/lines.fr.yml b/config/locales/lines.fr.yml
index 2159f06ab..487cae35c 100644
--- a/config/locales/lines.fr.yml
+++ b/config/locales/lines.fr.yml
@@ -1,6 +1,5 @@
fr:
lines: &fr_lines
- search_no_results: "Aucune ligne ne correspond à votre recherche"
actions:
new: "Ajouter une ligne"
edit: "Editer cette ligne"
@@ -20,6 +19,9 @@ fr:
show: 'Consulter'
show_network: 'Voir le réseau'
show_company: 'Voir le transporteur principal'
+ search_no_results: "Aucun résultat"
+ filters:
+ name_or_objectid_cont: "Indiquez un nom d'itinéraire ou un ID..."
new:
title: "Ajouter une ligne"
create:
@@ -34,11 +36,12 @@ fr:
title: "Liste des Itinéraires"
itineraries: "Liste des séquences d'arrêts de la ligne"
group_of_lines: "Groupes de lignes"
+ search_no_results: "Aucune ligne ne correspond à votre recherche"
index:
deactivated: "Ligne désactivée"
title: "Lignes"
line: "Ligne %{line}"
- name_or_number_or_objectid: "Recherche par nom, nom court ou ID Codif..."
+ name_or_number_or_objectid: "Recherche par nom, nom court ou ID..."
no_networks: "Aucun réseaux"
no_companies: "Aucun transporteurs"
no_group_of_lines: "Aucun groupes de ligne"
@@ -77,11 +80,10 @@ fr:
name: "Réseau"
company_id: "Transporteur principal"
company: "Transporteur principal"
- secondary_company: "Transporteurs secondaires"
+ secondary_companies: "Transporteurs secondaires"
companies:
name: "Transporteur principal"
registration_number: "Nom court"
- deactivated: "Activé"
name: "Nom de la ligne"
published_name: "Nom public"
number: "Numéro"
@@ -116,6 +118,9 @@ fr:
creator_id: "Créé par"
footnotes: "Notes de bas de page"
stable_id: "Identifiant externe pérenne"
+ state: État
+ activated: Activée
+ deactivated: Désactivée
formtastic:
titles:
line:
diff --git a/config/locales/merges.en.yml b/config/locales/merges.en.yml
new file mode 100644
index 000000000..f9e90f1ef
--- /dev/null
+++ b/config/locales/merges.en.yml
@@ -0,0 +1,23 @@
+fr:
+ merges:
+ referential_name: "Merged offer %{date}"
+ index:
+ title: "Merged offers"
+ new:
+ title: "New merged offer"
+ show:
+ title: "Merged offer %{name}"
+ actions:
+ create: Merge data spaces
+ activerecord:
+ models:
+ merge: "Merged offer"
+ attributes:
+ merge:
+ created_at: "Created at"
+ started_at: Started at
+ name: Name
+ ended_at: Ended at
+ status: "Status"
+ creator: "Creator"
+ referentials: "Data spaces"
diff --git a/config/locales/merges.yml b/config/locales/merges.fr.yml
index d8511a7b4..345727b74 100644
--- a/config/locales/merges.yml
+++ b/config/locales/merges.fr.yml
@@ -8,7 +8,7 @@ fr:
show:
title: "Finalisation de l'offre %{name}"
actions:
- create: "Finaliser des Jeux de Données"
+ create: Finaliser des Jeux de Données
activerecord:
models:
merge: "Finalisation de l'offre"
diff --git a/config/locales/networks.en.yml b/config/locales/networks.en.yml
index 94a8d9df0..2046a30ae 100644
--- a/config/locales/networks.en.yml
+++ b/config/locales/networks.en.yml
@@ -15,7 +15,7 @@ en:
index:
title: "Networks"
name: "Search by name..."
- name_or_objectid: "Search by name or by Codifligne ID..."
+ name_or_objectid: "Search by name or by ID..."
advanced_search: "Advanced search"
activerecord:
models:
diff --git a/config/locales/purchase_windows.en.yml b/config/locales/purchase_windows.en.yml
index 9ce05a1b9..9ff1576cd 100644
--- a/config/locales/purchase_windows.en.yml
+++ b/config/locales/purchase_windows.en.yml
@@ -63,7 +63,7 @@ en:
one: purchase window
other: purchase windows
attributes:
- purchase_windows:
+ purchase_window:
name: Name
date_ranges: Date ranges
referential: Referential
@@ -71,7 +71,7 @@ en:
bounding_dates: Bounding Dates
errors:
models:
- purchase_windows:
+ purchase_window:
attributes:
dates:
date_in_date_ranges: A date can not be in Dates and in Date ranges.
diff --git a/config/locales/purchase_windows.fr.yml b/config/locales/purchase_windows.fr.yml
index 3d5582ead..7f2ec259f 100644
--- a/config/locales/purchase_windows.fr.yml
+++ b/config/locales/purchase_windows.fr.yml
@@ -27,7 +27,7 @@ fr:
show: "Consulter"
edit: Editer
destroy: Supprimer
- destroy_confirm: Etes vous sûr de supprimer cet calendrier commercial ?
+ destroy_confirm: Etes vous sûr de vouloir supprimer ce calendrier commercial ?
errors:
overlapped_periods: Une autre période chevauche cette période
short_period: "Une période doit être d'une durée de deux jours minimum"
diff --git a/config/locales/referentials.en.yml b/config/locales/referentials.en.yml
index b7483c0aa..1381d5ddd 100644
--- a/config/locales/referentials.en.yml
+++ b/config/locales/referentials.en.yml
@@ -3,7 +3,7 @@ en:
filters:
name_or_number_or_objectid: 'Search by name, number or objectid'
name: 'Search by name'
- line: 'Seach by associated lines'
+ line: 'Search by associated lines'
search_no_results: 'No data space matching your query'
error_period_filter: "The period filter must have valid bounding dates"
index:
@@ -51,7 +51,7 @@ en:
overview:
head:
dates: Dates
- lines: Lignes
+ lines: Lines
today: Today
prev_page: Prev. page
next_page: Next page
@@ -64,7 +64,7 @@ en:
other: "data spaces"
attributes:
referential:
- name: "Data space name"
+ name: "Name"
status: "Status"
slug: "Code"
prefix: "Neptune Object Id prefix"
@@ -105,7 +105,7 @@ en:
created_from: 'Created from'
updated_at: "Updated"
created_at: "Created"
- organisation: 'Organisation'
+ organisation: 'Organization'
number_of_lines: 'No. of lines'
formtastic:
titles:
diff --git a/config/locales/referentials.fr.yml b/config/locales/referentials.fr.yml
index 53183a4c2..cf012ef8e 100644
--- a/config/locales/referentials.fr.yml
+++ b/config/locales/referentials.fr.yml
@@ -32,7 +32,7 @@ fr:
title: 'Dupliquer un jeu de données'
submit: "Valider"
select_compliance_control_set:
- title: "Sélection du jeu de contôle"
+ title: "Sélection du jeu de contrôles"
actions:
new: "Créer un jeu de données"
destroy_confirm: "Etes vous sûr de vouloir supprimer ce jeu de données ?"
diff --git a/config/locales/routes.en.yml b/config/locales/routes.en.yml
index bd8358bdd..c1bacf7f0 100644
--- a/config/locales/routes.en.yml
+++ b/config/locales/routes.en.yml
@@ -1,8 +1,10 @@
en:
routes:
- search_no_results: "No route matching your query"
+ filters:
+ placeholder: Search by name or ID
+ no_results: "No route matching your query"
actions:
- new: "Add a new route"
+ new: "Add a route"
edit: "Edit this route"
edit_boarding_alighting: "Stop alighting and boarding"
destroy: "Remove this route"
@@ -13,9 +15,9 @@ en:
export_hub_all: "Export HUB routes"
add_stop_point: "Add stop point"
new_stop_point: "Create new stop"
- opposite_route_timetable: "Timetable back"
+ reversed_vehicle_journey: "Reversed vehicle journeys"
new:
- title: "Add a new route"
+ title: "Add a route"
edit:
title: "Update route %{name}"
select2:
@@ -55,7 +57,7 @@ en:
for_boarding: "Boarding"
for_alighting: "Alighting"
duplicate:
- title: "Duplicate route"
+ title: "Clone route"
success: "Route cloned with success"
route:
no_journey_pattern: "No Journey pattern"
@@ -82,7 +84,7 @@ en:
number: "Number"
direction: "Direction"
wayback: "Direction"
- stop_points: "Nb Stop points"
+ stop_points: "Nb Stop areas"
opposite_route: "Reversed route"
opposite_route_id: "Reversed route"
objectid: "Neptune identifier"
@@ -91,6 +93,8 @@ en:
updated_at: Updated at
creator_id: "Created by"
no_journey_pattern: "No journey pattern"
+ stop_area_departure: Stop area departure
+ stop_area_arrival: Stop area arrival
formtastic:
titles:
route:
diff --git a/config/locales/routes.fr.yml b/config/locales/routes.fr.yml
index c08e64cfd..f4eefa10d 100644
--- a/config/locales/routes.fr.yml
+++ b/config/locales/routes.fr.yml
@@ -1,6 +1,8 @@
fr:
routes:
- search_no_results: "Aucun itinéraire ne correspond à votre recherche"
+ filters:
+ placeholder: Indiquez un nom d'itinéraire ou un ID...
+ no_results: "Aucun itinéraire ne correspond à votre recherche"
actions:
new: "Ajouter un itinéraire"
edit: "Editer cet itinéraire"
@@ -13,7 +15,8 @@ fr:
export_hub_all: "Export HUB des itinéraires"
add_stop_point: "Ajouter un arrêt"
new_stop_point: "Créer un arrêt pour l'ajouter"
- opposite_route_timetable: "Horaires retour"
+ reversed_vehicle_journey: "Horaires retour"
+ opposite: "%{name} (retour)"
new:
title: "Ajouter un itinéraire"
edit:
@@ -54,6 +57,9 @@ fr:
stop_area_name: "Nom de l'arrêt"
for_boarding: "Montée"
for_alighting: "Descente"
+ create_opposite:
+ title: "Créer retour"
+ success: "itinéraire créé avec succès"
duplicate:
title: "Dupliquer l'itinéraire"
success: "itinéraire dupliqué avec succès"
@@ -95,6 +101,8 @@ fr:
updated_at: "Edité le"
creator_id: "Créé par"
no_journey_pattern: "Pas de mission"
+ stop_area_departure: Arrêt de départ
+ stop_area_arrival: Arrêt d'arrivée
formtastic:
titles:
route:
diff --git a/config/locales/routing_constraint_zones.en.yml b/config/locales/routing_constraint_zones.en.yml
index 5675fd5db..2143ce1e1 100644
--- a/config/locales/routing_constraint_zones.en.yml
+++ b/config/locales/routing_constraint_zones.en.yml
@@ -26,7 +26,11 @@ en:
stop_points_not_from_route: 'Stop point does not belong to the Route of this Routing constraint zone.'
all_stop_points_selected: 'All stop points from route cannot be selected.'
routing_constraint_zones:
- search_no_results: "No ITL matches your query"
+ filters:
+ associated_route:
+ title: Associated route
+ placeholder: Put the name of a route...
+ name_or_objectid_cont: Search by name or ID...
actions:
destroy_confirm: Are you sure you want to delete this routing constraint zone?
new:
@@ -36,4 +40,5 @@ en:
show:
title: "Routing constraint zone %{name}"
index:
- title: "Interdictions of local trafficous"
+ title: "Routing constraint zones"
+ search_no_results: "No ITL matches your query"
diff --git a/config/locales/routing_constraint_zones.fr.yml b/config/locales/routing_constraint_zones.fr.yml
index 024dd3288..b5e0fa7fb 100644
--- a/config/locales/routing_constraint_zones.fr.yml
+++ b/config/locales/routing_constraint_zones.fr.yml
@@ -2,9 +2,9 @@ fr:
activerecord:
models:
routing_constraint_zone:
- zero: zone de contrainte
- one: zone de contrainte
- other: zone de contraintes
+ zero: ITL
+ one: ITL
+ other: ITLs
attributes:
routing_constraint_zone:
checksum: Signature métier
@@ -26,7 +26,11 @@ fr:
stop_points_not_from_route: "Arrêt sur séquence d'arrêts n'appartient pas à la Route de cette Zone de contrainte."
all_stop_points_selected: "Une ITL ne peut pas couvrir tous les arrêts d'un itinéraire."
routing_constraint_zones:
- search_no_results: "Aucune ITL ne correspond à votre recherche"
+ filters:
+ associated_route:
+ title: Itinéraire associé
+ placeholder: Indiquez un itinéraire...
+ name_or_objectid_cont: Indiquez un nom d'ITL ou un ID...
actions:
destroy_confirm: Etes vous sûr de supprimer cette ITL ?
new:
@@ -37,3 +41,4 @@ fr:
title: "Zone de contrainte %{name}"
index:
title: "Interdictions de trafic local"
+ search_no_results: "Aucune ITL ne correspond à votre recherche"
diff --git a/config/locales/select2.en.yml b/config/locales/select2.en.yml
new file mode 100644
index 000000000..308540af0
--- /dev/null
+++ b/config/locales/select2.en.yml
@@ -0,0 +1,15 @@
+en:
+ select2:
+ error_loading: The results cannot be loaded.
+ input_too_long:
+ one: Remove %{count} letter
+ other: Remove %{count} letters
+ input_too_short:
+ one: Type %{count} letter
+ other: Type %{count} letters
+ loading_more: Loading more…
+ maximum_selected:
+ one: You can select %{count} element
+ other: You can select %{count} elements
+ no_results: No Results
+ searching: Searching...
diff --git a/config/locales/select2.fr.yml b/config/locales/select2.fr.yml
new file mode 100644
index 000000000..4a37a3d78
--- /dev/null
+++ b/config/locales/select2.fr.yml
@@ -0,0 +1,15 @@
+fr:
+ select2:
+ error_loading: Les résultats ne peuvent pas être chargés.
+ input_too_long:
+ one: Supprimez %{count} caractère
+ other: Supprimez %{count} caractères
+ input_too_short:
+ one: Saisissez %{count} caractère
+ other: Saisissez %{count} caractères
+ loading_more: Chargement de résultats supplémentaires…
+ maximum_selected:
+ one: Vous pouvez sélectionner %{count} élément
+ other: Vous pouvez sélectionner %{count} élément
+ no_results: Aucun résultat trouvé
+ searching: Recherche en cours... \ No newline at end of file
diff --git a/config/locales/stop_area_referential_syncs.en.yml b/config/locales/stop_area_referential_syncs.en.yml
index 2bfe0bc0a..1605f73f2 100644
--- a/config/locales/stop_area_referential_syncs.en.yml
+++ b/config/locales/stop_area_referential_syncs.en.yml
@@ -1,4 +1,6 @@
en:
+ stop_area_referential_syncs:
+ search_no_results: "No stop area referential synchronisation matching your query"
activerecord:
errors:
models:
diff --git a/config/locales/stop_area_referential_syncs.fr.yml b/config/locales/stop_area_referential_syncs.fr.yml
index cbed11883..b4ed7202b 100644
--- a/config/locales/stop_area_referential_syncs.fr.yml
+++ b/config/locales/stop_area_referential_syncs.fr.yml
@@ -1,4 +1,6 @@
fr:
+ stop_area_referential_syncs:
+ search_no_results: "Aucun synchronisation de référentiel d'arrêts ne correspond à votre recherche"
activerecord:
errors:
models:
diff --git a/config/locales/stop_area_referentials.en.yml b/config/locales/stop_area_referentials.en.yml
index 11baf67e2..3fa91bc92 100644
--- a/config/locales/stop_area_referentials.en.yml
+++ b/config/locales/stop_area_referentials.en.yml
@@ -5,6 +5,9 @@ en:
cancel_sync: "Cancel reflex synchronization"
show:
title: 'Synchronization iCAR'
+ synchronized: Synchronized
+ status: status
+ message: Message
activerecord:
models:
stop_area_referential:
diff --git a/config/locales/stop_area_referentials.fr.yml b/config/locales/stop_area_referentials.fr.yml
index bb4c4463a..956e801f1 100644
--- a/config/locales/stop_area_referentials.fr.yml
+++ b/config/locales/stop_area_referentials.fr.yml
@@ -5,6 +5,9 @@ fr:
cancel_sync: "Annuler la synchronisation Reflex"
show:
title: 'Synchronisation iCAR'
+ synchronized: Synchronisé
+ status: Statut
+ message: Message
activerecord:
models:
stop_area_referential:
diff --git a/config/locales/stop_areas.en.yml b/config/locales/stop_areas.en.yml
index c1ced1094..4d19a77e9 100644
--- a/config/locales/stop_areas.en.yml
+++ b/config/locales/stop_areas.en.yml
@@ -5,6 +5,10 @@ en:
errors:
empty: Aucun stop_area_id
parent_area_type: can not be of type %{area_type}
+ registration_number:
+ already_taken: Already taken
+ cannot_be_empty: This field is mandatory
+ invalid: "Incorrect value (expected value: \"%{mask}\")"
default_geometry_success: "%{count} modified stop areas"
stop_area:
no_position: "No Position"
@@ -14,12 +18,13 @@ en:
general: "General"
localisation: "Localisation"
accessibility: "Accessibility"
+ custom_fields: "Custom fields"
actions:
- new: "Add a new stop"
- create: "Add a new stop"
- edit: "Edit this stop"
- update: "Edit this stop"
- destroy: "Remove"
+ new: "Add a stop area"
+ create: "Add a stop area"
+ edit: "Edit stop area"
+ update: "Edit stop area"
+ destroy: "Delete stop area"
activate: "Activate this stop"
deactivate: "Deactivate this stop"
activate_confirm: "Are you sure you want to activate this stop ?"
@@ -43,9 +48,9 @@ en:
export_hub_physical: "Export HUB physical"
filters:
name_or_objectid: "Search by name or by objectid..."
- zip_code: Type a zip code...
- city_name: Type a city name...
- area_type: Type an area type...
+ zip_code: Enter a zip code...
+ city_name: Enter a city name...
+ area_type: Enter an area type...
new:
title: "Add a new stop"
update:
@@ -54,18 +59,21 @@ en:
address: "246 Boulevard Saint-Germain, 75007 Paris"
geolocalize: "Pinpoint "
edit:
- title: "Update stop %{stop_area}"
+ title: "Update stop %{name}"
update:
- title: "Update stop %{stop_area}"
+ title: "Update stop %{name}"
show:
- title: "Stop %{stop_area}"
+ title: "Stop %{name}"
geographic_data: "Geographic data"
no_geographic_data: "None"
itl_managment: "Routing constraint's links managment"
stop_managment: "Parent-child relations"
access_managment: "Access Points and Links managment"
access_points: "Access Points"
- not_editable: "Le type d'arrêt est non modifiable"
+ not_editable: "The area type is not editable"
+ state:
+ active: Active
+ deactivated: Deactivated
genealogical:
genealogical: "Links between stop area"
genealogical_routing: "Routing constraint's links"
@@ -103,8 +111,11 @@ en:
name: "Name"
registration_number: "Registration number"
published_name: "Published name"
- deleted: "Deleted"
- deleted_at: "Deleted at"
+ in_creation: "In creation"
+ confirmed: "Activated"
+ confirmed_at: "Activated at"
+ deleted: "Deactivated"
+ deleted_at: "Deactivated at"
comment: "Description"
stop_area_type: "Area type"
area_type: "Area type"
@@ -136,14 +147,14 @@ en:
coordinates: "Coordinates (lat,lng) WGS84"
zip_code: "Zip code"
city_name: "City"
- created_at: Created at
- updated_at: Updated at
waiting_time: Waiting time (minutes)
+ state: Status
formtastic:
titles:
stop_area:
name: ""
registration_number: "only alphanumerical or underscore characters"
+ registration_number_format: "authorized format : %{registration_number_format}"
objectid: "[prefix]:StopArea:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character"
nearest_topic_name: ""
city_name: ""
@@ -195,6 +206,9 @@ en:
comment: "Maximum length = 255."
coordinates: "Coordinates are mandatory."
projection_xy: "x,y in secondary referential, dot for decimal separator"
+ hints:
+ stop_area:
+ registration_number: Leave empty for automatic value.
referential_stop_areas:
<<: *en_stop_areas
diff --git a/config/locales/stop_areas.fr.yml b/config/locales/stop_areas.fr.yml
index ede1aada6..6a5fbf24b 100644
--- a/config/locales/stop_areas.fr.yml
+++ b/config/locales/stop_areas.fr.yml
@@ -6,6 +6,10 @@ fr:
empty: Aucun stop_area_id
parent_area_type: ne peut être de type %{area_type}
incorrect_kind_area_type: Ce type d'arrêt est invalide pour cette catégorie
+ registration_number:
+ already_taken: Déjà utilisé
+ cannot_be_empty: Ce champ est requis
+ invalid: "Valeur invalide (valeur attendue: \"%{mask}\")"
default_geometry_success: "%{count} arrêts édités"
stop_area:
no_position: "Pas de position"
@@ -15,6 +19,7 @@ fr:
general: "General"
localisation: "Localisation"
accessibility: "Accessibilité"
+ custom_fields: "Champs personnalisés"
actions:
new: "Ajouter un arrêt"
create: "Ajouter un arrêt"
@@ -67,6 +72,9 @@ fr:
access_managment: "Gestion des accès et liens associés"
access_points: "Points d'accès"
not_editable: "Le type d'arrêt est non modifiable"
+ state:
+ active: Actif
+ deactivated: Désactivé
genealogical:
genealogical: "Lien entre arrêts"
genealogical_routing: "Liens de l'ITL"
@@ -105,8 +113,12 @@ fr:
kind: "Catégorie"
registration_number: "Numéro d'enregistrement"
published_name: "Nom public"
- deleted: "Supprimé"
- deleted_at: "Activé"
+ in_creation: "En création"
+ confirmed: "Actif"
+ confirmed_at: "Activé le"
+ deleted: "Désactivé"
+ deactivated: "Désactivé"
+ deleted_at: "Désactivé le"
comment: "Commentaire"
stop_area_type: "Type d'arrêt"
area_type: "Type d'arrêt"
@@ -138,14 +150,14 @@ fr:
coordinates: "Coordonnées (lat,lng) WGS84"
zip_code: "Code postal"
city_name: "Commune"
- created_at: "Créé le"
- updated_at: "Edité le"
waiting_time: Temps de desserte (minutes)
+ state: État
formtastic:
titles:
stop_area:
name: ""
registration_number: "caractères autorisés : alphanumériques et 'souligné'"
+ registration_number_format: "format autorisé: %{registration_number_format}"
objectid: "[prefixe]:StopArea:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'"
nearest_topic_name: ""
city_name: ""
@@ -197,6 +209,9 @@ fr:
comment: "Longueur maximale = 255."
coordinates: "Les coordonnées sont obligatoires."
projection_xy: "x,y dans le référentiel secondaire, le séparateur de décimales est 'point'"
+ hints:
+ stop_area:
+ registration_number: Laisser blanc pour assigner une valeur automatiquement.
referential_stop_areas:
<<: *fr_stop_areas
diff --git a/config/locales/stop_points.en.yml b/config/locales/stop_points.en.yml
index 72e138270..bcdb56de8 100644
--- a/config/locales/stop_points.en.yml
+++ b/config/locales/stop_points.en.yml
@@ -43,8 +43,8 @@ en:
created_at: Created
updated_at: Updated
deleted_at: "Activated"
- for_boarding: "For boarding"
- for_alighting: "For alighting"
+ for_boarding: "Boarding"
+ for_alighting: "Alighting"
area_type: "Area type"
city_name: "City name"
zip_code: "Zip code"
@@ -52,7 +52,7 @@ en:
simple_form:
labels:
stop_point:
- name: Stop Point
- for_boarding: "Pickup"
- for_alighting: "Drop off"
+ name: Stop Area
+ for_boarding: Boarding
+ for_alighting: Alighting
reflex_id: ID
diff --git a/config/locales/table_builders.en.yml b/config/locales/table_builders.en.yml
new file mode 100644
index 000000000..9ee59a1e1
--- /dev/null
+++ b/config/locales/table_builders.en.yml
@@ -0,0 +1,3 @@
+en:
+ table_builders:
+ selected_elements: "selected element(s)" \ No newline at end of file
diff --git a/config/locales/table_builders.fr.yml b/config/locales/table_builders.fr.yml
new file mode 100644
index 000000000..3c92640fc
--- /dev/null
+++ b/config/locales/table_builders.fr.yml
@@ -0,0 +1,3 @@
+fr:
+ table_builders:
+ selected_elements: "élement(s) sélectionné(s)" \ No newline at end of file
diff --git a/config/locales/vehicle_journey_exports.en.yml b/config/locales/vehicle_journey_exports.en.yml
index 93a782026..4e658353e 100644
--- a/config/locales/vehicle_journey_exports.en.yml
+++ b/config/locales/vehicle_journey_exports.en.yml
@@ -1,7 +1,7 @@
en:
vehicle_journey_exports:
new:
- title: "Export existing vehicle journey at stops"
+ title: Vehicle journeys export
basename: "vehicle_journeys"
label:
vehicle_journey_id: "vj id (empty for new vj)"
diff --git a/config/locales/vehicle_journeys.en.yml b/config/locales/vehicle_journeys.en.yml
index 1fa2618dd..c0d6f74d4 100644
--- a/config/locales/vehicle_journeys.en.yml
+++ b/config/locales/vehicle_journeys.en.yml
@@ -1,14 +1,31 @@
en:
vehicle_journeys:
vehicle_journeys_matrix:
+ filters:
+ id: Filter by ID...
+ journey_pattern: Filter by journey pattern...
+ timetable: Filter by timetable...
+
+ purchase_window: Filter by purchase window
cancel_selection: "Cancel Selection"
fetching_error: "There has been a problem fetching the data. Please reload the page to try again."
line_routes: "Line's routes"
modal_confirm: 'Do you want to save mofications before moving on to the next page ?'
- pagination: "Schedules %{minVJ} to %{maxVJ} over %{total}"
selected_journeys: "%{count} selected journeys"
show_purchase_window: 'Show the purchase window'
show_timetable: 'Show calendar'
+ no_associated_timetables: No associated timetables
+ no_associated_purchase_windows: No associated purchase windows
+ no_associated_footnotes: No associated footnotes
+ duplicate:
+ one: Clone %{count} vehicle journey
+ other: Clone %{count} vehicle journeys
+ start_time: Indicative start time
+ number: Number of vehicle journeys to create and clone
+ delta: Delta from which vehicle journeys are created
+ affect_company: Affect company
+ no_line_footnotes: The line doesn't have any footnotes
+ select_footnotes: Select footnotes to associate with the vehicle journey
vehicle_journey:
title_stopless: "Vehicle journey %{name}"
title: "Vehicle journey leaving from %{stop} at %{time}"
@@ -17,10 +34,10 @@ en:
title: "Vehicle journey frequency leaving from %{stop} at %{time}"
title_frequency: "Vehicle journey frequency with %{interval}min leaving from %{stop} at %{time_first} to %{time_last}"
actions:
- index: "Vehicle time's board"
- new: "Add a new timed vehicle journey"
+ index: "Vehicle journeys"
+ new: "Add a new vehicle journey"
new_frequency: "Add a new frequency vehicle journey"
- edit: "Edit this timed vehicle journey"
+ edit: "Edit this vehicle journey"
edit_frequency: "Edit this frequency vehicle journey"
destroy: "Remove this vehicle journey"
destroy_confirm: "Are you sure you want destroy this vehicle journey?"
@@ -48,15 +65,18 @@ en:
show_journeys_without_schedule: "Show journeys without schedule"
slide_arrival: "arrival time at first stop"
slide_departure: "departure time at first stop"
- slide_title: "Shift all vehicle passing times"
+ slide_title: "Shift all the vehicle journey passing times : %{id}"
slide: "Shift"
+ slide_delta: "Shift of"
starting_stop: "Departure"
stop_title: "Stop"
submit_frequency_edit: "Edit frequency vehicle journey"
submit_frequency: "Create frequency vehicle journey"
submit_timed_edit: "Edit vehicle journey"
submit_timed: "Create vehicle journey"
- time_tables: "Associated calendars to vehicle journey"
+ time_tables: "Associated timetables"
+ purchase_windows: Associated purchase windows
+ footnotes: Associated footnotes
to_arrivals: "Copy departures to arrivals"
to_departures: "Copy arrivals to departures"
to: "at"
@@ -102,6 +122,7 @@ en:
checksum: "Checksum"
comment: "Comments"
company: "Company"
+ company_name: "Company name"
created_at: Created at
creator_id: "Created by"
departure_time: "Departure"
@@ -110,9 +131,11 @@ en:
footnote_ids: "Footnotes"
id: "Journey ID"
journey_frequency_ids: "Timeband"
- journey_name: "Name of the journey"
+ journey_name: "Name of the vehicle journey"
journey_pattern_id: "Pattern ID"
journey_pattern: "Journey Pattern"
+ journey_pattern_published_name: "Journey Pattern published name"
+ journey_length: "Journey length"
line: "Line"
mobility_restricted_suitability: "PRM accessibility"
name: "Journey Name"
@@ -126,7 +149,6 @@ en:
purchase_window: "Purchase availability"
regular_fs: "Regular service"
route: "Route"
- status_value: "Status Value"
time_slot: "Time Slot"
time_table_ids: "Calendar list"
time_tables: "Calendars"
@@ -138,6 +160,7 @@ en:
updated_at: Updated at
vehicle_journey_at_stop_ids: "Time list"
vehicle_type_identifier: "Vehicle Type Identifier"
+ start_time: Start time
errors:
models:
vehicle_journey:
diff --git a/config/locales/vehicle_journeys.fr.yml b/config/locales/vehicle_journeys.fr.yml
index a43fa4580..b17e102a8 100644
--- a/config/locales/vehicle_journeys.fr.yml
+++ b/config/locales/vehicle_journeys.fr.yml
@@ -1,14 +1,30 @@
fr:
vehicle_journeys:
vehicle_journeys_matrix:
+ filters:
+ id: Filtrer par ID course...
+ journey_pattern: 'Filtrer par code, nom ou OID de mission...'
+ timetable: Filtrer par calendrier...
+ purchase_windows: Filtrer par calendrier commercial...
cancel_selection: "Annuler la sélection"
fetching_error: "La récupération des missions a rencontré un problème. Rechargez la page pour tenter de corriger le problème."
line_routes: "Séquences d'arrêts de la ligne"
modal_confirm: 'Voulez-vous valider vos modifications avant de changer de page?'
- pagination: "Liste des horaires %{minVJ} à %{maxVJ} sur %{total}"
selected_journeys: "%{count} course(s) sélectionnée(s)"
show_purchase_window: 'Voir le calendrier commercial'
show_timetable: 'Voir le calendrier'
+ no_associated_timetables: Aucun calendrier associé
+ no_associated_purchase_windows: Aucun calendrier commercial associé
+ no_associated_footnotes: Aucune note associée
+ duplicate:
+ one: Dupliquer %{count} course
+ other: Dupliquer %{count} courses
+ start_time: Horaire de départ indicatif
+ number: Nombre de courses à créer et dupliquer
+ delta: Décalage à partir duquel on créé les courses
+ affect_company: Indiquez un nom de transporteur...
+ no_line_footnotes: La ligne ne possède pas de notes
+ select_footnotes: Sélectionnez les notes à associer à cette course
vehicle_journey:
title_stopless: "Course %{name}"
title: "Course partant de %{stop} à %{time}"
@@ -48,8 +64,9 @@ fr:
show_journeys_without_schedule: "Afficher les courses sans horaires"
slide_arrival: "horaire d'arrivée au 1° arrêt à"
slide_departure: "horaire de départ au 1° arrêt à"
- slide_title: "Décaler l'ensemble des horaires de course"
+ slide_title: "Décaler l'ensemble des horaires de la course : %{id}"
slide: "Décaler"
+ slide_delta: "Avec un décalage de"
starting_stop: "Origine"
stop_title: "Arrêt"
submit_frequency_edit: "Editer course en fréquence"
@@ -57,6 +74,8 @@ fr:
submit_timed_edit: "Editer course"
submit_timed: "Créer course"
time_tables: "Calendriers associés à la course"
+ purchase_windows: "Calendriers commerciaux associés à la course"
+ footnotes: "Notes associés à la course"
to_arrivals: "Copie départs vers arrivées"
to_arrivals: "Copie départs vers arrivées"
to_departures: "Copie arrivées vers départs"
@@ -103,6 +122,7 @@ fr:
checksum: "Signature métier"
comment: "Commentaires"
company: "Transporteur"
+ company_name: "Nom du transporteur"
created_at: "Créé le"
creator_id: "Créé par"
departure_time: "Départ"
@@ -114,6 +134,8 @@ fr:
journey_name: "Nom de la course"
journey_pattern_id: "ID Mission"
journey_pattern: "Mission"
+ journey_pattern_published_name: "Nom public de la mission"
+ journey_length: "Parcours commercial"
line: "Ligne"
mobility_restricted_suitability: "Accessibilité PMR"
name: "Nom Course"
@@ -122,15 +144,14 @@ fr:
object_version: "Version"
objectid: "Identifiant Neptune"
on_demand_fs: "Service à la demande"
- published_journey_identifier: "Identifiant public"
+ published_journey_identifier: "Numéro de train"
published_journey_name: "Nom public"
purchase_window: "Disponibilité commerciale"
regular_fs: "Service régulier"
route: "Itinéraire"
- status_value: "Etat de trafic"
time_slot: "Fréquence"
time_table_ids: "Liste des calendriers"
- time_tables: "Calendriers"
+ time_tables: "Calendriers associés"
train_number: "Numéro de train"
transport_mode: "Mode de transport"
transport_submode: "Sous-mode de transport"
@@ -139,6 +160,7 @@ fr:
updated_at: "Edité le"
vehicle_journey_at_stop_ids: "Liste des horaires"
vehicle_type_identifier: "Type d'identifiant du véhicule"
+ start_time: Heure de départ
errors:
models:
vehicle_journey:
diff --git a/config/locales/will_paginate.en.yml b/config/locales/will_paginate.en.yml
index 29b8fe2bf..8f3189675 100644
--- a/config/locales/will_paginate.en.yml
+++ b/config/locales/will_paginate.en.yml
@@ -32,11 +32,11 @@ en:
single_page:
zero: "No item found"
one: "1 %{model} shown"
- other: "%{model} 1 to %{count} of %{count}"
+ other: "%{model} 1 to %{count} out of %{count}"
single_page_html:
zero: "No item found"
one: "1 %{model} shown"
- other: "%{model} 1 to %{count} of %{count}"
+ other: "%{model} 1 to %{count} out of %{count}"
- multi_page: "%{model} %{from} to %{to} of %{count}"
- multi_page_html: "%{model} %{from} to %{to} of %{count}"
+ multi_page: "%{model} list %{from} to %{to} out of %{count}"
+ multi_page_html: "%{model} list %{from} to %{to} out of %{count}"
diff --git a/config/locales/workbench_outputs.en.yml b/config/locales/workbench_outputs.en.yml
index 05cf52d0e..2af2f7023 100644
--- a/config/locales/workbench_outputs.en.yml
+++ b/config/locales/workbench_outputs.en.yml
@@ -1,7 +1,7 @@
en:
workbench_outputs:
show:
- title: "Finalisations de l'offre"
- see_current_output: "Voir l'Offre actuelle"
+ title: Current offers
+ see_current_output: See the current offer
table_headers:
- ended_at: "Offer created date"
+ ended_at: "Ended at"
diff --git a/config/locales/workbench_outputs.fr.yml b/config/locales/workbench_outputs.fr.yml
index 560888c54..b4d339434 100644
--- a/config/locales/workbench_outputs.fr.yml
+++ b/config/locales/workbench_outputs.fr.yml
@@ -1,7 +1,7 @@
fr:
workbench_outputs:
show:
- title: "Finalisations de l'offre"
+ title: Finaliser des jeux de données
see_current_output: "Voir l'Offre actuelle"
table_headers:
- ended_at: "Date et heure de création de l'offre"
+ ended_at: "Date et heure de création"
diff --git a/config/locales/workbenches.en.yml b/config/locales/workbenches.en.yml
index 7f21f47a0..876f18766 100644
--- a/config/locales/workbenches.en.yml
+++ b/config/locales/workbenches.en.yml
@@ -1,7 +1,15 @@
en:
workbenches:
show:
- title: "%{name}"
+ title: "Transport offer %{name}"
+ edit:
+ title: "Configure the workbench"
+ update:
+ title: "Configure the workbench"
+ referential_count:
+ zero: "There are no referentials in your workbench"
+ one: "There is one referential in your workbench"
+ other: "There are #{count} referentials in your workbench"
index:
title: "%{organisation} dashboard"
offers:
@@ -12,13 +20,17 @@ en:
calendars: "Calendars"
see: "See the list"
no_content: "No content yet."
- referential_count:
- zero: "There is no referential in your workbench"
- one: "There is one referential in your workbench"
- other: "There are #{count} referentials in your workbench"
+ actions:
+ show_output: "Merge Transport Offer"
+ affect_ccset: "Configure"
activerecord:
models:
workbench:
zero: "workbench"
one: "workbench"
other: "workbenches"
+ attributes:
+ workbench:
+ import_compliance_control_set_id: Space data before import
+ merge_compliance_control_set_id: Space data before merge
+
diff --git a/config/locales/workbenches.fr.yml b/config/locales/workbenches.fr.yml
index e7a392e66..f857bfcd1 100644
--- a/config/locales/workbenches.fr.yml
+++ b/config/locales/workbenches.fr.yml
@@ -1,16 +1,35 @@
fr:
workbenches:
show:
- title: "%{name}"
+ title: "Offre de transport %{name}"
+ edit:
+ title: "Configurer l'espace de travail"
+ update:
+ title: "Configurer l'espace de travail"
referential_count:
zero: "Aucun jeu de données dans cet espace de travail"
one: "1 jeu de données dans cet espace de travail"
other: "#{count} jeux de données dans cet espace de travail"
+ index:
+ title: "%{organisation} dashboard"
+ offers:
+ title: "Offre de transport"
+ organisation: "Offres de mon Organisation"
+ idf: "Offres IDF"
+ referentials: "Jeux de données"
+ calendars: "Calendriers"
+ see: "Voir la liste"
+ no_content: "Aucun contenu"
actions:
show_output: "Finaliser l'Offre"
+ configure: "Configurer"
activerecord:
models:
workbench:
zero: "espace de travail"
one: "espace de travail"
other: "espaces de travail"
+ attributes:
+ workbench:
+ import_compliance_control_set_id: Jeu de données après import
+ merge_compliance_control_set_id: Jeu de Données avant intégration
diff --git a/config/locales/zzz-stif.yml b/config/locales/zzz-stif.yml
new file mode 100644
index 000000000..a9e6a0ef4
--- /dev/null
+++ b/config/locales/zzz-stif.yml
@@ -0,0 +1,5 @@
+fr:
+ layouts:
+ navbar:
+ workbench_outputs:
+ workgroup: Offre IDF
diff --git a/config/routes.rb b/config/routes.rb
index 456cb66f5..41b345aa5 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -1,9 +1,7 @@
-require 'sidekiq/web'
-
ChouetteIhm::Application.routes.draw do
resource :dashboard
- resources :workbenches, only: [:show, :index] do
+ resources :workbenches, except: [:destroy] do
delete :referentials, on: :member, action: :delete_referentials
resources :imports do
get :download, on: :member
@@ -11,6 +9,12 @@ ChouetteIhm::Application.routes.draw do
resources :import_messages, only: [:index]
end
end
+ resources :exports do
+ post :upload, on: :member
+ resources :export_resources, only: [:index] do
+ resources :export_messages, only: [:index]
+ end
+ end
resources :compliance_check_sets, only: [:index, :show] do
get :executed, on: :member
resources :compliance_checks, only: [:show]
@@ -57,6 +61,8 @@ ChouetteIhm::Application.routes.draw do
match 'lines' => 'lines#destroy_all', :via => :delete
resources :lines, controller: "referential_lines", except: :index do
+ get :autocomplete, on: :collection, to: 'autocomplete_lines#index'
+
resource :footnotes, controller: "line_footnotes"
delete :index, on: :collection, action: :delete_all
collection do
@@ -66,6 +72,7 @@ ChouetteIhm::Application.routes.draw do
member do
get 'edit_boarding_alighting'
put 'save_boarding_alighting'
+ get 'costs'
post 'duplicate', to: 'routes#duplicate'
end
resource :journey_patterns_collection, :only => [:show, :update]
@@ -170,11 +177,13 @@ ChouetteIhm::Application.routes.draw do
end
end
- mount Sidekiq::Web => '/sidekiq'
+ authenticate :user, lambda { |u| u.can_monitor_sidekiq? } do
+ mount Sidekiq::Web => '/sidekiq'
+ end
namespace :api do
namespace :v1 do
- resources :workbenches, only: [:index, :show] do
+ resources :workbenches, except: [:destroy] do
resources :imports, only: [:index, :show, :create]
end
resources :access_links, only: [:index, :show]
diff --git a/config/secrets.yml b/config/secrets.yml
index 0de3fd6ef..963bacd36 100644
--- a/config/secrets.yml
+++ b/config/secrets.yml
@@ -18,6 +18,7 @@ development:
# geoportail_api_key: "aaaaaaaaaaaaaaaaaaaaaa"
newrelic_licence_key: ""
osrm_endpoint: "http://router.project-osrm.org"
+ tomtom_api_key: ""
test:
secret_key_base: 54f61aab23322611dd0bbf73b7f034db34281f7f4b3c4992eaaff20ecc9673bbd467beaa6fcb48379ca69b80bc5662deac4e33ca144f2482146123d3e966016a
@@ -37,3 +38,4 @@ production:
# geoportail_api_key: "aaaaaaaaaaaaaaaaaaaaaa"
newrelic_licence_key: ""
osrm_endpoint: "http://router.project-osrm.org"
+ tomtom_api_key: ""
diff --git a/config/secrets.yml.docker b/config/secrets.yml.docker
index f9bbf5fa0..e35dd3d33 100644
--- a/config/secrets.yml.docker
+++ b/config/secrets.yml.docker
@@ -15,3 +15,4 @@
api_endpoint: <%= ENV.fetch 'IEV_API_ENDPOINT', 'http://iev:8080/chouette_iev/' %>
api_token: <%= ENV.fetch 'IEV_API_TOKEN', 'change this according to IEV configuration' %>
newrelic_licence_key: <%= ENV.fetch 'NR_LICENCE_KEY', 'will_not_work' %>
+ tomtom_api_key: <%= ENV.fetch 'TOMTOM_API_KEY', 'will_not_work' %>
diff --git a/config/webpacker.yml b/config/webpacker.yml
index be1105bad..24a7e32dc 100644
--- a/config/webpacker.yml
+++ b/config/webpacker.yml
@@ -41,7 +41,7 @@ development:
public: localhost:3035
hmr: false
# Inline should be set to true if using HMR
- inline: true
+ inline: false
overlay: true
disable_host_check: true
use_local_ip: false