diff options
| author | Michel Etienne | 2015-09-24 14:56:42 +0200 |
|---|---|---|
| committer | Michel Etienne | 2015-09-24 14:56:42 +0200 |
| commit | d0ae24fa9d0082a322ed7457090e4dfecf89042f (patch) | |
| tree | 8d101e5017aeac41e95bb81bd5460f77e9419d11 | |
| parent | df9469f96e7ac102e27e682581f3f7b604934578 (diff) | |
| download | chouette-core-d0ae24fa9d0082a322ed7457090e4dfecf89042f.tar.bz2 | |
adapt to Neptune specifications V4
48 files changed, 1389 insertions, 737 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 6608ab53c..33e761a49 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,14 @@ +# Version 3.1.0 (en cours) +* Nouvelles fonctionnalités + * Validation GTFS lors de l'import +* Améliorations + * présentation des rapports d'import/export et validation + # Version 3.0.1 (en cours) * Corrections - * mise en place d'un formulaire de consultation des clés de l'API V1 + * mise en place d'un formulaire de consultation des clés de l'API V1 (Mantis 38248) + * restitution d'erreurs de clonage des arrêts sur clone invalide (Mantis 39159) + * corrections sur les restrictions hub # Version 3.0.0 (20/08/15) * Nouvelles fonctionnalités @@ -115,9 +115,9 @@ gem 'squeel' gem 'enumerize', '~> 0.10.0' -#gem 'ninoxe', :git => 'https://github.com/afimb/ninoxe.git', :branch => "rails4" gem 'ninoxe', :git => 'https://github.com/afimb/ninoxe.git' -#gem 'ninoxe', '1.2.0' +#gem 'ninoxe', '1.2.2' +#gem 'ninoxe',:path => '~/workspace/chouette/ninoxe' gem 'acts_as_list', '~> 0.6.0' gem "acts_as_tree", '~> 2.1.0', :require => "acts_as_tree" diff --git a/Gemfile.lock b/Gemfile.lock index 58465495e..319c0ce14 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,8 +1,8 @@ GIT remote: https://github.com/afimb/ninoxe.git - revision: 0c548adb266659e7aacd9a7b055e6eb9e21baf66 + revision: 766d2293bde741d34a5b9f23da21e5dc8d66bb2f specs: - ninoxe (1.2.0) + ninoxe (1.2.1) activerecord (~> 4.1.1) acts-as-taggable-on (>= 3) acts_as_list (>= 0.1.6) @@ -106,7 +106,7 @@ GEM coffee-script-source (1.9.1) daemons (1.1.9) database_cleaner (1.4.1) - dbf (2.0.9) + dbf (2.0.10) fastercsv (~> 1.5) debug_inspector (0.0.2) deep_cloneable (2.0.2) @@ -150,9 +150,9 @@ GEM faraday_middleware (0.9.1) faraday (>= 0.7.4, < 0.10) fastercsv (1.5.5) - ffi (1.9.8) - ffi (1.9.8-java) - ffi-geos (1.0.0) + ffi (1.9.10) + ffi (1.9.10-java) + ffi-geos (1.1.0) ffi (>= 1.0.0) font-awesome-sass (4.2.2) sass (~> 3.2) @@ -219,8 +219,8 @@ GEM jruby-rack (1.1.18) jruby-rack-worker (0.10.0) jruby-rack (>= 1.1.10) - json (1.8.2) - json (1.8.2-java) + json (1.8.3) + json (1.8.3-java) language_engine (0.0.6) rails (~> 4.1.1) launchy (2.4.3) @@ -247,9 +247,9 @@ GEM mime-types (2.4.3) mimemagic (0.3.0) mini_portile (0.6.2) - minitest (5.6.1) + minitest (5.8.1) modernizr-rails (2.0.6) - multi_json (1.11.0) + multi_json (1.11.2) multipart-post (2.0.0) nenv (0.2.0) net-scp (1.2.1) @@ -365,7 +365,7 @@ GEM ref (1.0.5) responders (1.1.2) railties (>= 3.2, < 4.2) - rgeo (0.3.20) + rgeo (0.4.0) roo (1.13.2) nokogiri rubyzip @@ -576,3 +576,6 @@ DEPENDENCIES warbler will_paginate (~> 3.0.7) will_paginate-bootstrap (~> 1.0.1) + +BUNDLED WITH + 1.10.6 diff --git a/app/controllers/access_links_controller.rb b/app/controllers/access_links_controller.rb index 8a01453eb..d590aba00 100644 --- a/app/controllers/access_links_controller.rb +++ b/app/controllers/access_links_controller.rb @@ -17,7 +17,7 @@ class AccessLinksController < ChouetteController def show @map = AccessLinkMap.new(resource).with_helpers(self) @access_point = Chouette::AccessPoint.find(params[:access_point_id]) - @access_link = Chouette::AccessLink.find(params[:id]) + #@access_link = Chouette::AccessLink.find(params[:id]) @stop_area = @access_link.stop_area show! do |format| format.html {build_breadcrumb :show} @@ -62,6 +62,15 @@ class AccessLinksController < ChouetteController end end + def update + @access_point = Chouette::AccessPoint.find(params[:access_point_id]) + @access_link = Chouette::AccessLink.find(params[:id]) + @stop_area = @access_link.stop_area + @orientation = @access_link.link_orientation_type + update! do |success, failure| + build_breadcrumb :edit + end + end protected diff --git a/app/controllers/lines_controller.rb b/app/controllers/lines_controller.rb index 6533278d2..514c82401 100644 --- a/app/controllers/lines_controller.rb +++ b/app/controllers/lines_controller.rb @@ -83,7 +83,7 @@ class LinesController < ChouetteController private def line_params - params.require(:line).permit( :transport_mode, :network_id, :company_id, :objectid, :object_version, :creation_time, :creator_id, :name, :number, :published_name, :transport_mode_name, :registration_number, :comment, :mobility_restricted_suitability, :int_user_needs, :flexible_service, :group_of_lines, :group_of_line_ids, :group_of_line_tokens, :url, :color, :text_color, { footnotes_attributes: [ :code, :label, :_destroy, :id ] } ) + params.require(:line).permit( :transport_mode, :network_id, :company_id, :objectid, :object_version, :creation_time, :creator_id, :name, :number, :published_name, :transport_mode_name, :registration_number, :comment, :mobility_restricted_suitability, :int_user_needs, :flexible_service, :group_of_lines, :group_of_line_ids, :group_of_line_tokens, :url, :color, :text_color, :stable_id, { footnotes_attributes: [ :code, :label, :_destroy, :id ] } ) end end diff --git a/app/controllers/networks_controller.rb b/app/controllers/networks_controller.rb index 5dff116c2..239f022b3 100644 --- a/app/controllers/networks_controller.rb +++ b/app/controllers/networks_controller.rb @@ -42,7 +42,7 @@ class NetworksController < ChouetteController end def network_params - params.require(:network).permit(:objectid, :object_version, :creation_time, :creator_id, :version_date, :description, :name, :registration_number, :source_name, :source_type, :source_identifier, :comment ) + params.require(:network).permit(:objectid, :object_version, :creation_time, :creator_id, :version_date, :description, :name, :registration_number, :source_name, :source_type_name, :source_identifier, :comment ) end end diff --git a/app/models/stop_area_copy.rb b/app/models/stop_area_copy.rb index 3401b5fde..0fa56ff68 100644 --- a/app/models/stop_area_copy.rb +++ b/app/models/stop_area_copy.rb @@ -56,7 +56,7 @@ class StopAreaCopy { :name => self.source.name, # TODO: change ninoxe to avoid that !!! :area_type => self.area_type.camelcase, :registration_number => nil, - :parent_id => copy_is_source_child? ? self.source_id : self.copy.parent_id + :parent_id => copy_is_source_child? ? self.source_id : nil } end @@ -71,11 +71,18 @@ class StopAreaCopy if self.valid? Chouette::StopArea.transaction do copy.update_attributes copy_modfied_attributes - unless source_modified_attributes.empty? - source.update_attributes source_modified_attributes - end + if copy.valid? + unless source_modified_attributes.empty? + source.update_attributes source_modified_attributes + end + true + else + copy.errors.full_messages.each do |m| + errors.add :base, m + end + false + end end - true else false end diff --git a/app/views/access_links/_form.html.erb b/app/views/access_links/_form.html.erb index 2ce44542f..d6c0c603e 100644 --- a/app/views/access_links/_form.html.erb +++ b/app/views/access_links/_form.html.erb @@ -4,12 +4,12 @@ <%= form.input :stop_area_id , :as => :hidden %> <%= form.input :link_orientation_type , :as => :hidden%> <%= form.input :name %> - <%= form.input :access_link_type, :as => :select, :collection => Chouette::AccessLink.access_link_types, :include_blank => false, :member_label => Proc.new { |type| t("connection_link_types.label.#{type}") } %> + <%= form.input :access_link_type, :as => :select, :collection => Chouette::AccessLink.access_link_types, :include_blank => true, :member_label => Proc.new { |type| t("connection_link_types.label.#{type}") } %> <%= form.input :comment %> <%= form.input :link_distance %> - <%= form.input :mobility_restricted_suitability,:as => :boolean %> - <%= form.input :stairs_availability,:as => :boolean %> - <%= form.input :lift_availability,:as => :boolean %> + <%= form.input :mobility_restricted_suitability, :as => :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true %> + <%= form.input :stairs_availability, :as => :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true %> + <%= form.input :lift_availability, :as => :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true %> <%= form.input :objectid, :required => !@access_link.new_record?, :input_html => { :title => t("formtastic.titles.access_link.objectid")} %> <%= form.inputs :name => t('access_links.show.durations') do %> <%= form.input :default_duration, :as => :extended_time_picker, :size => 8, :step => :seconds, :label => @access_link.human_attribute_name("default_duration"), :input_html => { :class => "form-control input-sm timepicker_seconds", :step => 1}, :wrapper_html => { :class => "input-append bootstrap-timepicker" } %> diff --git a/app/views/access_links/show.html.erb b/app/views/access_links/show.html.erb index 3999b0287..54f89297e 100644 --- a/app/views/access_links/show.html.erb +++ b/app/views/access_links/show.html.erb @@ -6,7 +6,11 @@ <div class="summary"> <p> <label><%= @access_link.human_attribute_name("access_link_type") %>: </label> - <%= t("connection_link_types.label.#{@access_link.access_link_type}") %> + <% if @access_link.access_link_type.present? %> + <%= t("connection_link_types.label.#{@access_link.access_link_type}") %> + <% else %> + <%=t("unknown") %> + <% end %> </p> <p> <label><%= @access_link.human_attribute_name("comment") %>: </label> @@ -39,21 +43,33 @@ </p> <p> <label class='duration'><%= @access_link.human_attribute_name("mobility_restricted_traveller_duration") %>: </label> - <% if (@access_link.mobility_restricted_traveller_duration.present?) %> + <% if (!@access_link.mobility_restricted_traveller_duration.nil?) %> <%= @access_link.mobility_restricted_traveller_duration.strftime('%Hh %Mm %Ss') %> <% end %> </p> <p> <label><%= @access_link.human_attribute_name("mobility_restricted_suitability") %>: </label> - <%= t((@access_link.mobility_restricted_suitability == true).to_s) %> + <% if (!@access_link.mobility_restricted_suitability.nil?) %> + <%= t((@access_link.mobility_restricted_suitability == true).to_s) %> + <% else %> + <%=t("unknown") %> + <% end %> </p> <p> <label><%= @access_link.human_attribute_name("stairs_availability") %>: </label> - <%= t((@access_link.stairs_availability == true).to_s) %> + <% if (!@access_link.stairs_availability.nil?) %> + <%= t((@access_link.stairs_availability == true).to_s) %> + <% else %> + <%=t("unknown") %> + <% end %> </p> <p> <label><%= @access_link.human_attribute_name("lift_availability") %>: </label> - <%= t((@access_link.lift_availability == true).to_s) %> + <% if (!@access_link.lift_availability.nil?) %> + <%= t((@access_link.lift_availability == true).to_s) %> + <% else %> + <%=t("unknown") %> + <% end %> </p> </div> </div> diff --git a/app/views/connection_links/_form.erb b/app/views/connection_links/_form.erb index 52f2a94c8..49ca68aef 100644 --- a/app/views/connection_links/_form.erb +++ b/app/views/connection_links/_form.erb @@ -1,12 +1,12 @@ <%= semantic_form_for [@referential, @connection_link] do |form| %> <%= form.inputs do %> <%= form.input :name %> - <%= form.input :connection_link_type, :as => :select, :collection => Chouette::ConnectionLink.connection_link_types, :include_blank => false, :member_label => Proc.new { |type| t("connection_link_types.label.#{type}") } %> + <%= form.input :connection_link_type, :as => :select, :collection => Chouette::ConnectionLink.connection_link_types, :include_blank => true, :member_label => Proc.new { |type| t("connection_link_types.label.#{type}") } %> <%= form.input :comment %> <%= form.input :link_distance, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.connection_link.link_distance") } %> - <%= form.input :mobility_restricted_suitability,:as => :boolean %> - <%= form.input :stairs_availability,:as => :boolean %> - <%= form.input :lift_availability,:as => :boolean %> + <%= form.input :mobility_restricted_suitability, :as => :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true %> + <%= form.input :stairs_availability, :as => :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true %> + <%= form.input :lift_availability, :as => :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true %> <%= form.input :objectid, :required => !@connection_link.new_record?, :input_html => { :title => t("formtastic.titles.connection_link.objectid")} %> <% end %> diff --git a/app/views/connection_links/show.html.erb b/app/views/connection_links/show.html.erb index 0771caac4..e715953fc 100644 --- a/app/views/connection_links/show.html.erb +++ b/app/views/connection_links/show.html.erb @@ -23,7 +23,7 @@ <p> <label><%= @connection_link.human_attribute_name("connection_link_type") %>: </label> <% if @connection_link.connection_link_type.blank? %> - <%= t("connection_link_types.label.undefined") %> + <%=t("unknown") %> <% else %> <%= t("connection_link_types.label.#{@connection_link.connection_link_type}") %> <% end %> @@ -65,15 +65,27 @@ </p> <p> <label><%= @connection_link.human_attribute_name("mobility_restricted_suitability") %>: </label> - <%= t((@connection_link.mobility_restricted_suitability == true).to_s) %> + <% if (!@connection_link.mobility_restricted_suitability.nil?) %> + <%= t((@connection_link.mobility_restricted_suitability == true).to_s) %> + <% else %> + <%=t("unknown") %> + <% end %> </p> <p> <label><%= @connection_link.human_attribute_name("stairs_availability") %>: </label> - <%= t((@connection_link.stairs_availability == true).to_s) %> + <% if (!@connection_link.stairs_availability.nil?) %> + <%= t((@connection_link.stairs_availability == true).to_s) %> + <% else %> + <%=t("unknown") %> + <% end %> </p> <p> <label><%= @connection_link.human_attribute_name("lift_availability") %>: </label> - <%= t((@connection_link.lift_availability == true).to_s) %> + <% if (!@connection_link.lift_availability.nil?) %> + <%= t((@connection_link.lift_availability == true).to_s) %> + <% else %> + <%=t("unknown") %> + <% end %> </p> </div> </div> diff --git a/app/views/help/introduction.textile b/app/views/help/introduction.textile index 8a30e7e0e..81e0a4284 100644 --- a/app/views/help/introduction.textile +++ b/app/views/help/introduction.textile @@ -16,7 +16,7 @@ D'autres utilisateurs potentiels sont également identifiés : services de l'ét h3. Ce que vous trouverez dans ce manuel Vous trouverez dans ce document, toutes les informations nécessaires à la prise en main de l’application. -Le manuel couvre la version 3.0.1. +Le manuel couvre la version 3.1.0. diff --git a/app/views/lines/_form.erb b/app/views/lines/_form.erb index 58cb7e6e3..442434d3b 100644 --- a/app/views/lines/_form.erb +++ b/app/views/lines/_form.erb @@ -9,6 +9,7 @@ <%= form.input :transport_mode, :as => :select, :collection => Chouette::Line.transport_modes, :include_blank => false, :member_label => Proc.new { |mode| t("transport_modes.label.#{mode}") } %> <%= form.input :color, :as => :string %> <%= form.input :text_color %> + <%= form.input :stable_id %> <%= form.input :url %> <%= form.input :mobility_restricted_suitability, :as => :select, :collection => [[@line.human_attribute_name("accessible"), true], [@line.human_attribute_name("not_accessible"), false]], :include_blank => true %> <%= form.input :flexible_service, :as => :select, :collection => [[@line.human_attribute_name("on_demaond_fs"), true], [@line.human_attribute_name("regular_fs"), false]], :include_blank => true %> diff --git a/app/views/lines/show.html.erb b/app/views/lines/show.html.erb index 3654840fd..0d9a47142 100644 --- a/app/views/lines/show.html.erb +++ b/app/views/lines/show.html.erb @@ -48,6 +48,11 @@ <%= t("transport_modes.label.#{@line.transport_mode}") %> </p> <p> + <label><%= @line.human_attribute_name("stable_id") %>: </label> + <%= @line.stable_id %> + </p> + + <p> <label><%= @line.human_attribute_name("url") %>: </label> <%= @line.url %> </p> diff --git a/app/views/networks/_form.erb b/app/views/networks/_form.erb index cb9575664..5794794fd 100644 --- a/app/views/networks/_form.erb +++ b/app/views/networks/_form.erb @@ -6,6 +6,7 @@ <%= form.input :version_date, :as => :date_picker %> <%= form.input :description %> <%= form.input :source_name %> + <%= form.input :source_type_name, :as => :select, :collection => Chouette::Network.source_type_names, :include_blank => true, :member_label => Proc.new { |mode| t("source_types.label.#{mode}") } %> <%= form.input :source_identifier %> <%= form.input :objectid, :required => !@network.new_record?, :input_html => { :title => t("formtastic.titles#{format_restriction_for_locales(@referential)}.network.objectid")} %> <% end %> diff --git a/app/views/networks/show.html.erb b/app/views/networks/show.html.erb index e7b103dda..d61974394 100644 --- a/app/views/networks/show.html.erb +++ b/app/views/networks/show.html.erb @@ -26,6 +26,12 @@ <%= @network.source_name %> </p> <p> + <label><%= Chouette::Network.human_attribute_name("source_type_name") %>: </label> + <% if @network.source_type_name.present? %> + <%= t("source_types.label.#{@network.source_type_name}") %> + <% end %> + </p> + <p> <label><%= Chouette::Network.human_attribute_name("source_identifier") %>: </label> <%= @network.source_identifier %> </p> diff --git a/app/views/stop_areas/_form.html.erb b/app/views/stop_areas/_form.html.erb index e34253828..bcbbe2bf9 100644 --- a/app/views/stop_areas/_form.html.erb +++ b/app/views/stop_areas/_form.html.erb @@ -43,9 +43,9 @@ <h3><%= t("stop_areas.stop_area.accessibility") %></h3> <%= form.inputs do %> <% if !manage_itl %> - <%= form.input :mobility_restricted_suitability,:as => :boolean %> - <%= form.input :stairs_availability,:as => :boolean %> - <%= form.input :lift_availability,:as => :boolean %> + <%= form.input :mobility_restricted_suitability, :as => :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true %> + <%= form.input :stairs_availability, :as => :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true %> + <%= form.input :lift_availability, :as => :select, :collection => [[t("true"), true], [t("false"), false]], :include_blank => true %> <% end %> <% end %> </div> diff --git a/app/views/stop_areas/show.html.erb b/app/views/stop_areas/show.html.erb index 7ca59cf70..1b3578b65 100644 --- a/app/views/stop_areas/show.html.erb +++ b/app/views/stop_areas/show.html.erb @@ -52,15 +52,27 @@ <% if !manage_itl %> <p> <label><%= @stop_area.human_attribute_name("mobility_restricted_suitability") %>: </label> - <%= t((@stop_area.mobility_restricted_suitability == true).to_s) %> + <% if (!@stop_area.mobility_restricted_suitability.nil?) %> + <%= t((@stop_area.mobility_restricted_suitability == true).to_s) %> + <% else %> + <%=t("unknown") %> + <% end %> </p> <p> <label><%= @stop_area.human_attribute_name("stairs_availability") %>: </label> - <%= t((@stop_area.stairs_availability == true).to_s) %> + <% if (!@stop_area.stairs_availability.nil?) %> + <%= t((@stop_area.stairs_availability == true).to_s) %> + <% else %> + <%=t("unknown") %> + <% end %> </p> <p> <label><%= @stop_area.human_attribute_name("lift_availability") %>: </label> - <%= t((@stop_area.lift_availability == true).to_s) %> + <% if (!@stop_area.lift_availability.nil?) %> + <%= t((@stop_area.lift_availability == true).to_s) %> + <% else %> + <%=t("unknown") %> + <% end %> </p> <p> <label><%= t('stop_areas.show.geographic_data') %> </label></p> <% if @stop_area.long_lat_type == nil %> diff --git a/app/views/vehicle_journeys/_form.html.erb b/app/views/vehicle_journeys/_form.html.erb index 3c175148f..e4b1ce432 100644 --- a/app/views/vehicle_journeys/_form.html.erb +++ b/app/views/vehicle_journeys/_form.html.erb @@ -7,7 +7,7 @@ <%= form.input :comment %> <%= form.input :transport_mode_name, :as => :select, :collection => Chouette::Line.transport_modes, :include_blank => true, :member_label => Proc.new { |mode| t("transport_modes.label.#{mode}") } %> <%= form.input :mobility_restricted_suitability, :as => :select, :collection => [[@vehicle_journey.human_attribute_name("accessible"), true], [@vehicle_journey.human_attribute_name("not_accessible"), false]], :include_blank => true %> - <%= form.input :flexible_service, :as => :select, :collection => [[@vehicle_journey.human_attribute_name("on_demaond_fs"), true], [@vehicle_journey.human_attribute_name("regular_fs"), false]], :include_blank => true %> + <%= form.input :flexible_service, :as => :select, :collection => [[@vehicle_journey.human_attribute_name("on_demand_fs"), true], [@vehicle_journey.human_attribute_name("regular_fs"), false]], :include_blank => true %> <%= form.input :status_value %> <%= form.input :facility %> <%= form.input :vehicle_type_identifier%> diff --git a/app/views/vehicle_journeys/show.html.erb b/app/views/vehicle_journeys/show.html.erb index 1e7c99a37..695b5c8b5 100644 --- a/app/views/vehicle_journeys/show.html.erb +++ b/app/views/vehicle_journeys/show.html.erb @@ -46,7 +46,7 @@ <% if @vehicle_journey.flexible_service.nil? %> <%= @vehicle_journey.human_attribute_name("unspecified_fs") %> <% elsif @vehicle_journey.flexible_service? %> - <%= @vehicle_journey.human_attribute_name("on_demaond_fs") %> + <%= @vehicle_journey.human_attribute_name("on_demand_fs") %> <% else %> <%= @vehicle_journey.human_attribute_name("regular_fs") %> <% end %> diff --git a/config/environment.rb b/config/environment.rb index dd88c63b5..1c2b830ee 100644 --- a/config/environment.rb +++ b/config/environment.rb @@ -5,4 +5,4 @@ require File.expand_path('../application', __FILE__) Rails.application.initialize! # Fix version -APP_VERSION = '3.0.1' +APP_VERSION = '3.1.0' diff --git a/config/locales/companies.yml b/config/locales/companies.yml index 9ffbdc0d5..a20f6059f 100644 --- a/config/locales/companies.yml +++ b/config/locales/companies.yml @@ -40,27 +40,27 @@ en: formtastic: titles: company: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "only alphanumerical or underscore characters " objectid: "[prefix]:Company:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" neptune: company: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "only alphanumerical or underscore characters " objectid: "[prefix]:Company:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" netex: company: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "only alphanumerical or underscore characters " objectid: "[prefix]:Company:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" gtfs: company: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "only alphanumerical or underscore characters " objectid: "[prefix]:Company:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" hub: company: - name: "Only alphanumerical or underscore characters. Maximum length = 75." + name: "maximum 75 characters" registration_number: "Positif integer, unique key, of no more than 8 digits." objectid: "[prefix]:Company:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character. Maximum length of the unique key = 3." @@ -106,27 +106,27 @@ fr: formtastic: titles: company: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "caractères autorisés : alphanumériques et 'souligné'" objectid: "[prefixe]:Company:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" neptune: company: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "caractères autorisés : alphanumériques et 'souligné'" objectid: "[prefixe]:Company:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" netex: company: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "caractères autorisés : alphanumériques et 'souligné'" objectid: "[prefixe]:Company:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" gtfs: company: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "caractères autorisés : alphanumériques et 'souligné'" objectid: "[prefixe]:Company:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" hub: company: - name: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 75." + name: "maximum 75 caractères" registration_number: "Entier positif, clé unique, d'un maximum de 8 chiffres." objectid: "[prefixe]:Company:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'. Longueur maximale de la clé unique = 3." diff --git a/config/locales/compliance_check_results.en.yml b/config/locales/compliance_check_results.en.yml new file mode 100644 index 000000000..9b31f1736 --- /dev/null +++ b/config/locales/compliance_check_results.en.yml @@ -0,0 +1,679 @@ +en: + compliance_check_results: + errors: 'Errors' + file: + zip_name_prefix: "compliance_check_results" + summary_errors_file_prefix: "summary_of_tests.csv" + detailed_errors_file_prefix: "detail_of_errors.csv" + index: + line: "Li" + column: "Col" + compliance_check_result: + severities: + error: "Required" + warning: "Optional" + error_txt: "Required" + warning_txt: "Optional" + statuses: + nok: "Error" + uncheck: "Unavailable" + ok: "Success" + details: + #### level 1 + ## NEPTUNE + detail_1_neptune_xml_1: "%{source_label} : %{error_value}" + detail_1_neptune_xml_2: "%{source_label} : %{error_value}" + + ## GTFS + detail_1_gtfs_csv_1: "TBD" + detail_1_gtfs_csv_2: "TBD" + detail_1_gtfs_csv_3: "TBD" + detail_1_gtfs_csv_6: "HTML tags in field names are not allowed" + detail_1_gtfs_csv_7: "Extra spaces in field names are not allowed" + detail_1_gtfs_csv_10: "The first line must comply with CSV" + detail_1_gtfs_csv_11: "Header fields could not be empty" + detail_1_gtfs_csv_12: "The header fields could not be duplicated" + detail_1_gtfs_csv_13: "Line must comply with CSV" + detail_1_gtfs_csv_14: "A problem occured while reading the file" + detail_1_gtfs_agency_1: "File missing" + detail_1_gtfs_agency_2: "Field agency_id required when more than one agency is provided" + detail_1_gtfs_agency_3: "Field agency_id must be unique" + detail_1_gtfs_agency_4: "Missing column" + detail_1_gtfs_agency_5: "Missing value on column" + detail_1_gtfs_agency_6: "TBD" + detail_1_gtfs_agency_7: "TBD" + detail_1_gtfs_agency_8: "TBD" + detail_1_gtfs_agency_9: "TBD" + detail_1_gtfs_agency_10: "Extra columns found" + detail_1_gtfs_agency_11: "File must contains at least one entry" + detail_1_gtfs_stop_1: "" + detail_1_gtfs_stop_2: "" + detail_1_gtfs_stop_3: "" + detail_1_gtfs_stop_4: "" + detail_1_gtfs_stop_5: "" + detail_1_gtfs_stop_6: "" + detail_1_gtfs_stop_7: "" + detail_1_gtfs_stop_8: "" + detail_1_gtfs_stop_9: "" + detail_1_gtfs_stop_10: "" + detail_1_gtfs_stop_11: "" + detail_1_gtfs_stop_12: "" + detail_1_gtfs_route_1: "" + detail_1_gtfs_route_2: "" + detail_1_gtfs_route_3: "" + detail_1_gtfs_route_4: "" + detail_1_gtfs_route_5: "" + detail_1_gtfs_route_6: "" + detail_1_gtfs_route_7: "" + detail_1_gtfs_route_8: "" + detail_1_gtfs_route_9: "" + detail_1_gtfs_route_10: "" + detail_1_gtfs_route_11: "" + detail_1_gtfs_trip_1: "" + detail_1_gtfs_trip_2: "" + detail_1_gtfs_trip_3: "" + detail_1_gtfs_trip_4: "" + detail_1_gtfs_trip_5: "" + detail_1_gtfs_trip_6: "" + detail_1_gtfs_trip_7: "" + detail_1_gtfs_trip_8: "" + detail_1_gtfs_trip_9: "" + detail_1_gtfs_stoptime_1: "" + detail_1_gtfs_stoptime_2: "" + detail_1_gtfs_stoptime_3: "" + detail_1_gtfs_stoptime_4: "" + detail_1_gtfs_stoptime_5: "" + detail_1_gtfs_stoptime_6: "" + detail_1_gtfs_stoptime_7: "" + detail_1_gtfs_stoptime_8: "" + detail_1_gtfs_stoptime_9: "" + detail_1_gtfs_stoptime_10: "" + detail_1_gtfs_stoptime_11: "" + detail_1_gtfs_stoptime_12: "" + detail_1_gtfs_stoptime_13: "" + detail_1_gtfs_stoptime_14: "" + detail_1_gtfs_calendar_1: "" + detail_1_gtfs_calendar_2: "" + detail_1_gtfs_calendar_3: "" + detail_1_gtfs_calendar_4: "" + detail_1_gtfs_calendar_5: "" + detail_1_gtfs_calendar_6: "" + detail_1_gtfs_calendar_7: "" + detail_1_gtfs_calendar_8: "" + detail_1_gtfs_calendar_9: "" + detail_1_gtfs_calendar_10: "" + detail_1_gtfs_calendar_11: "" + detail_1_gtfs_calendar_12: "" + detail_1_gtfs_calendar_13: "" + detail_1_gtfs_calendar_14: "" + detail_1_gtfs_calendar_15: "" + detail_1_gtfs_calendardate_2: "" + detail_1_gtfs_calendardate_3: "" + detail_1_gtfs_calendardate_4: "" + detail_1_gtfs_calendardate_5: "" + detail_1_gtfs_calendardate_6: "" + detail_1_gtfs_calendardate_7: "" + detail_1_gtfs_frequency_1: "" + detail_1_gtfs_frequency_2: "" + detail_1_gtfs_frequency_3: "" + detail_1_gtfs_frequency_4: "" + detail_1_gtfs_frequency_5: "" + detail_1_gtfs_frequency_6: "" + detail_1_gtfs_frequency_7: "" + detail_1_gtfs_transfer_1: "" + detail_1_gtfs_transfer_2: "" + detail_1_gtfs_transfer_3: "" + detail_1_gtfs_transfer_4: "" + detail_1_gtfs_transfer_5: "" + detail_1_gtfs_transfer_6: "" + detail_1_gtfs_shape_1: "" + detail_1_gtfs_shape_2: "" + detail_1_gtfs_shape_3: "" + detail_1_gtfs_shape_4: "" + detail_1_gtfs_shape_5: "" + detail_1_gtfs_shape_6: "" + detail_1_gtfs_shape_7: "" + detail_1_gtfs_shape_8: "" + + #### level 2 + ## NEPTUNE + detail_2_neptune_common_1: "L'élément %{source_objectid} a des attributs qui diffèrent entre les différents fichiers qui le définissent" + detail_2_neptune_common_2: "L'élément %{source_objectid} partage l'attribut RegistrationNumber = %{error_value} avec un autre objet de même type" + detail_2_neptune_network_1: "La ligne %{source_objectid} est absente de la liste des lignes du réseau %{target_0_objectid}" + detail_2_neptune_network_2: "Le réseau %{source_objectid} a un type de source non valide : %{error_value}, remplacé par %{reference_value}" + detail_2_neptune_groupofline_1: "La ligne %{source_objectid} est absente de la liste des lignes du du groupe de lignes %{target_0_objectid}" + detail_2_neptune_stoparea_1: "Le fils (contains = %{error_value}) de l'arrêt %{source_objectid} n'est pas de type StopArea ni StopPoint" + detail_2_neptune_stoparea_2: "L'arrêt %{source_objectid} de type %{reference_value} ne peut contenir que des arrêts de type StopPlace ou CommercialStopPoint, or un des arrêts contenus (contains = %{target_0_objectid}) est de type %{error_value}" + detail_2_neptune_stoparea_3: "L'arrêt %{source_objectid} de type %{reference_value} ne peut contenir que des arrêts de type BoardingPosition ou Quay, or un des arrêts contenus (contains = %{target_0_objectid}) est de type %{error_value}" + detail_2_neptune_stoparea_4: "L'arrêt %{source_objectid} de type %{reference_value} ne peut contenir que des points d'arrêt de séquence, or un des arrêts contenus (contains = %{target_0_objectid}) est un StopArea arrêt de type %{error_value}" + detail_2_neptune_stoparea_5: "L'arrêt %{source_objectid} référence une position géographique (centroidOfArea = %{error_value}) inexistante" + detail_2_neptune_stoparea_6: "L'arrêt %{source_objectid} référence une position géographique (centroidOfArea = %{target_0_objectid}) qui ne le référence pas en retour (containedIn = %{error_value})" + detail_2_neptune_itl_1: "Le fils (contains = %{target_0_objectid}) de type %{error_value} ne peut pas être contenu dans l'arrêt %{source_objectid} de type %{reference_value}" + detail_2_neptune_itl_2: "L'arrêt de type ITL %{source_objectid} n'est pas utilisé" + detail_2_neptune_itl_3: "L'arrêt areaId = %{error_value} référencé par l'ITL %{source_objectid} n'existe pas" + detail_2_neptune_itl_4: "L'arrêt areaId = %{target_0_objectid} référencé par l'ITL %{source_objectid} devrait être de type ITL et non de type %{error_value}" + detail_2_neptune_itl_5: "La référence lineIdShortCut = %{error_value} de l'ITL %{source_objectid} n'est pas cohérente avec la ligne %{target_0_objectid}" + detail_2_neptune_areacentroid_1: "La position géographique <AreaCentroid> %{source_objectid} référence un arrêt (containedIn = %{error_value}) inexistant" + detail_2_neptune_areacentroid_2: "La position géographique <AreaCentroid> %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide" + detail_2_neptune_connectionlink_1: "La correspondance %{source_objectid} référence 2 arrêts inexistants" + detail_2_neptune_accesspoint_1: "L'accès %{source_objectid} référence un arrêt parent (containedIn = %{error_value}) inexistant" + detail_2_neptune_accesspoint_2: "L'accès %{source_objectid} référence un arrêt parent (containedIn = %{target_0_objectid}) de type invalide (ITL)" + detail_2_neptune_accesspoint_3: "L'accès %{source_objectid} n'a pas de lien d'accès" + detail_2_neptune_accesspoint_4: "L'accès %{source_objectid} de type In a des liens d'accès sortants" + detail_2_neptune_accesspoint_5: "L'accès %{source_objectid} de type Out a des liens d'accès entrants" + detail_2_neptune_accesspoint_6: "L'accès %{source_objectid} de type InOut n'a que des liens d'accès entrants ou sortants" + detail_2_neptune_accesspoint_7: "L'accès %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide" + detail_2_neptune_accesslink_1: "La liaison d'accès %{source_objectid} référence %{error_value} qui n'existe pas" + detail_2_neptune_accesslink_2: "Sur la liaison d'accès %{source_objectid}, les références startOfLink = %{error_value} et endOfLink = %{reference_value} sont de même type" + detail_2_neptune_line_1: "La ligne %{source_objectid} référence un réseau (ptNetworkIdShortcut = %{error_value} inexistant" + detail_2_neptune_line_2: "La ligne %{source_objectid} référence un point d'arrêt <StopPoint> (lineEnd = %{error_value}) inexistant " + detail_2_neptune_line_3: "La ligne %{source_objectid} référence un point d'arrêt (lineEnd = %{error_value}) qui n'est pas terminus d'une séquence d'arrêts" + detail_2_neptune_line_4: "La ligne %{source_objectid} référence une séquence d'arrêt (routeId = %{error_value}) inexistante" + detail_2_neptune_line_5: "La séquence d'arrêts (routeId = %{target_0_objectid}) n'est pas référencée par la ligne %{source_objectid}" + detail_2_neptune_line_6: "La ligne %{source_objectid} ne renseigne aucun des champs name, number ou publishedName" + detail_2_neptune_route_1: "La séquence d'arrêts %{source_objectid} référence une mission (journeyPatternId = %{error_value}) inexistante" + detail_2_neptune_route_2: "La séquence d'arrêts %{source_objectid} référence un tronçon (ptLinkId = %{error_value}) inexistant" + detail_2_neptune_route_3: "La séquence retour (waybackRouteId = %{error_value}) de la séquence d'arrêts %{source_objectid} n'existe pas" + detail_2_neptune_route_4: "Le tronçon (ptLinkId = %{error_value}) référencé par la séquence d'arrêt %{source_objectid} est partagé avec %{target_0_objectid}" + detail_2_neptune_route_5: "Le tronçon %{source_objectid} partage un %{reference_value} : %{error_value} avec un autre tronçon" + detail_2_neptune_route_6_1: "La séquence d'arrêts %{source_objectid} n'est pas une séquence linéaire, le chainage des tronçons forme un anneau" + detail_2_neptune_route_6_2: "La séquence d'arrêts %{source_objectid} n'est pas une séquence linéaire, le chainage des tronçons est rompu au tronçon %{target_0_objectid}" + detail_2_neptune_route_7: "La séquence d'arrêts %{source_objectid} ne référence pas la mission %{target_0_objectid} alors que cette mission référence la séquence d'arrêt" + detail_2_neptune_route_8: "La mission journeyPatternId = %{target_0_objectid} de la séquence d'arrêts %{source_objectid} utilise des points d'arrêts hors séquence" + detail_2_neptune_route_9: "Le point d'arrêt (stopPointId = %{target_0_objectid}) de la séquence d'arrêts %{source_objectid} n'est utilisé dans aucune mission" + detail_2_neptune_route_10: "La séquence retour (waybackRouteId = %{target_0_objectid}) ne référence pas la séquence d'arrêts %{source_objectid} comme retour" + detail_2_neptune_route_11: "Le sens (%{reference_value}) de la séquence d'arrêt %{source_objectid} n'est pas compatible avec celui (%{error_value}) de la séquence opposée %{target_0_objectid}" + detail_2_neptune_route_12: "Le départ dans la zone %{reference_value}) de la séquence d'arrêts %{source_objectid} n'est pas dans la même zone que l'arrivée (zone %{error_value} de la séquence retour %{target_0_objectid}" + detail_2_neptune_ptlink_1: "Le tronçon %{source_objectid} reférence un %{reference_value} = %{error_value} inexistant" + detail_2_neptune_journeypattern_1: "La mission %{source_objectid} référence une séquence d'arrêts (routeId = %{error_value}) inexistante" + detail_2_neptune_journeypattern_2: "La mission %{source_objectid} référence un point d'arrêt (stopPointId = %{error_value}) inexistant" + detail_2_neptune_journeypattern_3: "La mission %{source_objectid} référence une ligne (lineIdShortcut = %{error_value}) inexistante" + detail_2_neptune_stoppoint_1: "Le point d'arrêt %{source_objectid} référence une ligne (lineIdShortcut = %{error_value}) inexistante" + detail_2_neptune_stoppoint_2: "Le point d'arrêt %{source_objectid} référence un réseau (ptNetworkIdShortcut = %{error_value}) inexistant" + detail_2_neptune_stoppoint_3: "Le point d'arrêt %{source_objectid} référence un arrêt (containedIn = %{error_value}) inexistant" + detail_2_neptune_stoppoint_4: "Le point d'arrêt %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide" + detail_2_neptune_timetable_1: "Le calendrier (<Timetable>) %{source_objectid} ne référence aucune course existante" + detail_2_neptune_timetable_2: "La course %{source_objectid} n'est référencée dans aucun calendrier (<Timetable>)" + detail_2_neptune_timetable_3: "Le calendrier (<Timetable>) %{source_objectid} contient une période invalide" + detail_2_neptune_vehiclejourney_1: "La course %{source_objectid} référence une séquence d'arrêts (routeId = %{error_value}) inexistante" + detail_2_neptune_vehiclejourney_2: "La course %{source_objectid} référence une mission (journeyPatternId = %{error_value}) inexistante" + detail_2_neptune_vehiclejourney_3: "La course %{source_objectid} référence une ligne (lineIdShortcut = %{error_value}) inexistante" + detail_2_neptune_vehiclejourney_4: "La course %{source_objectid} référence un opérateur (operatorId = %{error_value}) inexistant" + detail_2_neptune_vehiclejourney_5: "La course %{source_objectid} référence une fréquence horaire (timeSlotId = %{error_value}) inexistante" + detail_2_neptune_vehiclejourney_6: "La course %{source_objectid} référence une mission %{error_value} incompatible de la séquence d'arrêts %{reference_value}" + detail_2_neptune_vehiclejourney_7: "La mission %{source_objectid} n'est référencée par aucune course" + detail_2_neptune_vehiclejourney_8: "La course %{source_objectid} doit référencer une mission si la séquence d'arrêt en possède plusieurs" + detail_2_neptune_vehiclejourneyatstop_1: "La course %{source_objectid} fournit un horaire sur un point d'arrêt (stopPointId = %{error_value}) inexistant" + detail_2_neptune_vehiclejourneyatstop_2: "Un horaire de la course %{source_objectid} référence une autre course : vehicleJourneyId = %{error_value}" + detail_2_neptune_vehiclejourneyatstop_3: "La course %{source_objectid} ne fournit pas les horaires des points d'arrêts selon l'ordre de la séquence d'arrêts %{error_value}" + detail_2_neptune_vehiclejourneyatstop_4: "La course %{source_objectid} ne fournit pas les horaires des points d'arrêts de sa mission %{error_value}" + detail_2_neptune_facility_1: "L'équipement %{source_objectid} est situé sur un arrêt inexistant (containedId = %{error_value})" + detail_2_neptune_facility_2: "L'équipement %{source_objectid} référence un arrêt (stopAreaId = %{error_value}) inexistant" + detail_2_neptune_facility_3: "L'équipement %{source_objectid} référence une ligne (lineId = %{error_value} inexistante" + detail_2_neptune_facility_4: "L'équipement %{source_objectid} référence une correspondance (connectionLinkId = %{error_value} inexistante" + detail_2_neptune_facility_5: "L'équipement %{source_objectid} référence un point d'arrêt (stopPointId = %{error_value} inexistant" + detail_2_neptune_facility_6: "L'équipement %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide" + ## GTFS + detail_2_gtfs_common_1: "" + detail_2_gtfs_common_2: "" + detail_2_gtfs_common_3: "" + detail_2_gtfs_agency_1: "" + detail_2_gtfs_agency_2: "" + detail_2_gtfs_stop_1: "" + detail_2_gtfs_stop_2: "" + detail_2_gtfs_stop_3: "" + detail_2_gtfs_stop_4: "" + detail_2_gtfs_stop_5: "" + detail_2_gtfs_stop_6: "" + detail_2_gtfs_route_1: "" + detail_2_gtfs_route_2: "" + detail_2_gtfs_route_3: "" + detail_2_gtfs_route_4: "" + detail_2_gtfs_route_5: "" + detail_2_gtfs_route_6: "" + detail_2_gtfs_route_7: "non défini" + detail_2_gtfs_route_8: "" + detail_2_gtfs_route_9: "" + detail_2_gtfs_route_10: "" + detail_2_gtfs_route_11: "" + detail_2_gtfs_route_12: "" + detail_2_gtfs_trip_1: "" + detail_2_gtfs_trip_2: "" + detail_2_gtfs_trip_3: "" + detail_2_gtfs_trip_4: "" + detail_2_gtfs_trip_5: "" + detail_2_gtfs_trip_6: "" + detail_2_gtfs_trip_7: "" + detail_2_gtfs_stoptime_1: "" + detail_2_gtfs_stoptime_2: "" + detail_2_gtfs_stoptime_3: "" + detail_2_gtfs_stoptime_4: "" + detail_2_gtfs_stoptime_5: "" + detail_2_gtfs_stoptime_6: "" + detail_2_gtfs_stoptime_7: "" + detail_2_gtfs_stoptime_8: "" + detail_2_gtfs_stoptime_9: "" + detail_2_gtfs_calendar_1: "" + detail_2_gtfs_calendar_2: "" + detail_2_gtfs_calendar_3: "" + detail_2_gtfs_calendar_4: "" + detail_2_gtfs_calendar_5: "" + detail_2_gtfs_calendar_6: "" + detail_2_gtfs_frequency_1: "" + detail_2_gtfs_frequency_2: "" + detail_2_gtfs_transfer_1: "" + detail_2_gtfs_transfer_2: "" + + #### level 3 + detail_3_stoparea_1: "L'arrêt %{source_label} (%{source_objectid}) n'est pas géolocalisé" + detail_3_stoparea_2: "L'arrêt %{source_label} (%{source_objectid}) est localisé trop près de l'arrêt %{target_0_label} (%{target_0_objectid}) : distance %{error_value} < %{reference_value}" + detail_3_stoparea_3: "Les arrêts %{source_label} (%{source_objectid} et %{target_0_objectid}) sont desservis par les mêmes lignes" + detail_3_stoparea_4: "L'arrêt %{source_label} (%{source_objectid}) est en dehors du périmètre de contrôle" + detail_3_stoparea_5: "L'arrêt %{source_label} (%{source_objectid}) est localisé trop loin de son parent %{target_0_label} (%{target_0_objectid}) : distance %{error_value} > %{reference_value}" + detail_3_accesspoint_1: "L'accès %{source_label} (%{source_objectid}) n'est pas géolocalisé" + detail_3_accesspoint_2: "L'accès %{source_label} (%{source_objectid}) est localisé trop près de l'accès %{target_0_label} (%{target_0_objectid}) : distance %{error_value} < %{reference_value}" + detail_3_accesspoint_3: "L'accès %{source_label} (%{source_objectid}) est localisé trop loin de son parent %{target_0_label} (%{target_0_objectid}) : distance %{error_value} > %{reference_value}" + detail_3_connectionlink_1: "Sur la correspondance %{source_label} (%{source_objectid}), la distance entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}) est trop grande : distance %{error_value} > %{reference_value}" + detail_3_connectionlink_2: "Sur la correspondance %{source_label} (%{source_objectid}), la distance entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}) : %{error_value} est supérieure à la longueur du lien : %{reference_value}" + detail_3_connectionlink_3_1: "Sur la correspondance %{source_label} (%{source_objectid}), la vitesse par défaut %{error_value} est supérieure à %{reference_value} km/h" + detail_3_connectionlink_3_2: "Sur la correspondance %{source_label} (%{source_objectid}), la vitesse pour un voyageur occasionnel %{error_value} est supérieure à %{reference_value} km/h" + detail_3_connectionlink_3_3: "Sur la correspondance %{source_label} (%{source_objectid}), la vitesse pour un voyageur habitué %{error_value} est supérieure à %{reference_value} km/h" + detail_3_connectionlink_3_4: "Sur la correspondance %{source_label} (%{source_objectid}), la vitesse pour un voyageur à mobilité réduite %{error_value} est supérieure à %{reference_value} km/h" + detail_3_accesslink_1: "Sur le lien d'accès %{source_label} (%{source_objectid}), la distance entre l'arrêt %{target_0_label} (%{target_0_objectid}) et l'accès %{target_1_label} (%{target_1_objectid}) est trop grande : distance %{error_value} > %{reference_value}" + detail_3_accesslink_2: "Sur le lien d'accès %{source_label} (%{source_objectid}), la distance entre l'arrêt %{target_0_label} (%{target_0_objectid}) et l'accès %{target_1_label} (%{target_1_objectid}) : %{error_value} est supérieure à la longueur du lien : %{reference_value}" + detail_3_accesslink_3_1: "Sur le lien d'accès %{source_label} (%{source_objectid}), la vitesse par défaut %{error_value} est supérieure à %{reference_value} km/h" + detail_3_accesslink_3_2: "Sur le lien d'accès %{source_label} (%{source_objectid}), la vitesse pour un voyageur occasionnel %{error_value} est supérieure à %{reference_value} km/h" + detail_3_accesslink_3_3: "Sur le lien d'accès %{source_label} (%{source_objectid}), la vitesse pour un voyageur habitué %{error_value} est supérieure à %{reference_value} km/h" + detail_3_accesslink_3_4: "Sur le lien d'accès %{source_label} (%{source_objectid}), la vitesse pour un voyageur à mobilité réduite %{error_value} est supérieure à %{reference_value} km/h" + detail_3_line_1: "La ligne %{source_label} (%{source_objectid}) a une ligne homonyme sur le même réseau %{target_0_label} (%{target_0_objectid})" + detail_3_line_2: "La ligne %{source_label} (%{source_objectid}) n'a pas de séquence d'arrêts" + detail_3_route_1: "Sur la séquence d'arrêt %{source_label} (%{source_objectid}), l'arrêt %{target_0_label} (%{target_0_objectid}) est desservi 2 fois consécutivement" + detail_3_route_2: "Les terminus de la séquence d'arrêt %{source_label} (%{source_objectid}) ne sont pas cohérent avec ceux de sa séquence opposée : l'une part de %{target_0_label} (%{target_0_objectid}) et l'autre arrive à %{target_1_label} (%{target_1_objectid})" + detail_3_route_3_1: "Sur la séquence d'arrêt %{source_label} (%{source_objectid}), entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}), distance %{error_value} < %{reference_value} " + detail_3_route_3_2: "Sur la séquence d'arrêt %{source_label} (%{source_objectid}), entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}), distance %{error_value} > %{reference_value} " + detail_3_route_4: "La séquence d'arrêt %{source_label} (%{source_objectid}) utilise la même liste ordonnée d'arrêts que la séquence d'arrêts %{target_0_label} (%{target_0_objectid})" + detail_3_route_5: "La séquence d'arrêt %{source_label} (%{source_objectid}) peut admettre la séquence %{target_0_label} (%{target_0_objectid}) comme séquence opposée" + detail_3_route_6: "La séquence d'arrêt %{source_label} (%{source_objectid}) doit avoir un minimum de 2 arrêts" + detail_3_route_7: "La séquence d'arrêt %{source_label} (%{source_objectid}) n'a pas de mission" + detail_3_route_8: "La séquence d'arrêt %{source_label} (%{source_objectid}) a %{error_value} arrêts non utilisés par des missions" + detail_3_route_9: "La séquence d'arrêt %{source_label} (%{source_objectid}) n'a pas de mission desservant l'ensemble de ses arrêts" + detail_3_journeypattern_1: "La mission %{source_label} (%{source_objectid}) utilise les mêmes arrêts que la mission %{target_0_label} (%{target_0_objectid}) - nombre d'arrêts = %{error_value}" + detail_3_vehiclejourney_1: "Arrêt %{target_0_label} (%{target_0_objectid}) : durée d'arrêt mesurée %{error_value} > %{reference_value}" + detail_3_vehiclejourney_2_1: "La course %{source_label} (%{source_objectid}) a des horaires décroissants entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid})" + detail_3_vehiclejourney_2_2: "La course %{source_label} (%{source_objectid}) a une vitesse %{error_value} < %{reference_value} km/h entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid})" + detail_3_vehiclejourney_2_3: "La course %{source_label} (%{source_objectid}) a une vitesse %{error_value} > %{reference_value} km/h entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid})" + detail_3_vehiclejourney_3: "La course %{source_label} (%{source_objectid}) a une variation de progression entre les arrêts %{target_1_label} (%{target_1_objectid}) et %{target_2_label} (%{target_2_objectid}) %{error_value} > %{reference_value} avec la course %{target_0_label} (%{target_0_objectid})" + detail_3_vehiclejourney_4: "La course %{source_label} (%{source_objectid}) n'a pas de calendrier d'application" + detail_3_facility_1: "L'équipement %{source_label} (%{source_objectid}) n'est pas géolocalisé" + detail_3_facility_2: "L'équipement %{source_label} (%{source_objectid}) est localisé trop loin de son parent %{areaName} (%{areaId}) : distance %{error_value} > %{reference_value}" + + detail_4_network_1_min_size: "L'attribut %{reference_value} du réseau %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value}) " + detail_4_network_1_max_size: "L'attribut %{reference_value} du réseau %{source_label} (%{source_objectid}) est trop grand (%{error_value})" + detail_4_network_1_pattern: "L'attribut %{reference_value} du réseau %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" + detail_4_network_1_unique: "L'attribut %{reference_value} du réseau %{source_label} (%{source_objectid}) a une valeur partagée avec le réseau %{target_0_label} (%{target_0_objectid})" + detail_4_company_1_min_size: "L'attribut %{reference_value} du transporteur %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" + detail_4_company_1_max_size: "L'attribut %{reference_value} du transporteur %{source_label} (%{source_objectid}) est trop grand (%{error_value})" + detail_4_company_1_pattern: "L'attribut %{reference_value} du transporteur %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" + detail_4_company_1_unique: "L'attribut %{reference_value} du transporteur %{source_label} (%{source_objectid}) a une valeur partagée avec le transporteur %{target_0_label} (%{target_0_objectid})" + detail_4_groupofline_1_min_size: "L'attribut %{reference_value} du groupe de lignes %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" + detail_4_groupofline_1_max_size: "L'attribut %{reference_value} du groupe de lignes %{source_label} (%{source_objectid}) est trop grand (%{error_value})" + detail_4_groupofline_1_pattern: "L'attribut %{reference_value} du groupe de lignes %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" + detail_4_groupofline_1_unique: "L'attribut %{reference_value} du groupe de lignes %{source_label} (%{source_objectid}) a une valeur partagée avec le groupe de lignes %{target_0_label} (%{target_0_objectid})" + detail_4_stoparea_1_min_size: "L'attribut %{reference_value} de l'arrêt %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" + detail_4_stoparea_1_max_size: "L'attribut %{reference_value} de l'arrêt %{source_label} (%{source_objectid}) est trop grand (%{error_value})" + detail_4_stoparea_1_pattern: "L'attribut %{reference_value} de l'arrêt %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" + detail_4_stoparea_1_unique: "L'attribut %{reference_value} de l'arrêt %{source_label} (%{source_objectid}) a une valeur partagée avec l'arrêt %{target_0_label} (%{target_0_objectid})" + detail_4_stoparea_2: "L'arrêt physique %{source_label} (%{source_objectid}) n'a pas de parent" + detail_4_accesspoint_1_min_size: "L'attribut %{reference_value} du point d'accès %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" + detail_4_accesspoint_1_max_size: "L'attribut %{reference_value} du point d'accès %{source_label} (%{source_objectid}) est trop grand (%{error_value})" + detail_4_accesspoint_1_pattern: "L'attribut %{reference_value} du point d'accès %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" + detail_4_accesspoint_1_unique: "L'attribut %{reference_value} du point d'accès %{source_label} (%{source_objectid}) a une valeur partagée avec le point d'accès %{target_0_label} (%{target_0_objectid})" + detail_4_accesslink_1_min_size: "L'attribut %{reference_value} du lien d'accès %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" + detail_4_accesslink_1_max_size: "L'attribut %{reference_value} du lien d'accès %{source_label} (%{source_objectid}) est trop grand (%{error_value})" + detail_4_accesslink_1_pattern: "L'attribut %{reference_value} du lien d'accès %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" + detail_4_accesslink_1_unique: "L'attribut %{reference_value} du lien d'accès %{source_label} (%{source_objectid}) a une valeur partagée avec le lien d'accès %{target_0_label} (%{target_0_objectid})" + detail_4_connectionlink_1_min_size: "L'attribut %{reference_value} de la correspondance %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" + detail_4_connectionlink_1_max_size: "L'attribut %{reference_value} de la correspondance %{source_label} (%{source_objectid}) est trop grand (%{error_value})" + detail_4_connectionlink_1_pattern: "L'attribut %{reference_value} de la correspondance %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" + detail_4_connectionlink_1_unique: "L'attribut %{reference_value} de la correspondance %{source_label} (%{source_objectid}) a une valeur partagée avec la correspondance %{target_0_label} (%{target_0_objectid})" + detail_4_connectionlink_2: "Sur la correspondance %{source_label} (%{source_objectid}) au moins l'un des arrêts %{startName} (%{startId}) et %{endName} (%{endId}) n'est pas un arrêt physique" + detail_4_timetable_1_min_size: "L'attribut %{reference_value} du calendrier %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" + detail_4_timetable_1_max_size: "L'attribut %{reference_value} du calendrier %{source_label} (%{source_objectid}) est trop grand (%{error_value})" + detail_4_timetable_1_pattern: "L'attribut %{reference_value} du calendrier %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" + detail_4_timetable_1_unique: "L'attribut %{reference_value} du calendrier %{source_label} (%{source_objectid}) a une valeur partagée avec le calendrier %{target_0_label} (%{target_0_objectid})" + detail_4_line_1_min_size: "L'attribut %{reference_value} de la ligne %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" + detail_4_line_1_max_size: "L'attribut %{reference_value} de la ligne %{source_label} (%{source_objectid}) est trop grand (%{error_value})" + detail_4_line_1_pattern: "L'attribut %{reference_value} de la ligne %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" + detail_4_line_1_unique: "L'attribut %{reference_value} de la ligne %{source_label} (%{source_objectid}) a une valeur partagée avec la ligne %{target_0_label} (%{target_0_objectid})" + detail_4_line_2: "La ligne %{source_label} (%{source_objectid}) a un mode de transport interdit %{error_value}" + detail_4_line_3_1: "La ligne %{source_label} (%{source_objectid}) n'a pas de groupe de lignes" + detail_4_line_3_2: "La ligne %{source_label} (%{source_objectid}) a plusieurs groupes de lignes" + detail_4_line_4_1: "La ligne %{source_label} (%{source_objectid}) n'a pas de séquence d'arrêts" + detail_4_line_4_2: "La ligne %{source_label} (%{source_objectid}) a trop de séquences d'arrêts non associées (%{error_value})" + detail_4_route_1_min_size: "L'attribut %{reference_value} de la séquence d'arrêts %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" + detail_4_route_1_max_size: "L'attribut %{reference_value} de la séquence d'arrêts %{source_label} (%{source_objectid}) est trop grand (%{error_value})" + detail_4_route_1_pattern: "L'attribut %{reference_value} de la séquence d'arrêts %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" + detail_4_route_1_unique: "L'attribut %{reference_value} de la séquence d'arrêts %{source_label} (%{source_objectid}) a une valeur partagée avec la séquence d'arrêts %{target_0_label} (%{target_0_objectid})" + detail_4_journeypattern_1_min_size: "L'attribut %{reference_value} de la mission %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" + detail_4_journeypattern_1_max_size: "L'attribut %{reference_value} de la mission %{source_label} (%{source_objectid}) est trop grand (%{error_value})" + detail_4_journeypattern_1_pattern: "L'attribut %{reference_value} de la mission %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" + detail_4_journeypattern_1_unique: "L'attribut %{reference_value} de la mission %{source_label} (%{source_objectid}) a une valeur partagée avec la mission %{target_0_label} (%{target_0_objectid})" + detail_4_vehiclejourney_1_min_size: "L'attribut %{reference_value} de la course %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" + detail_4_vehiclejourney_1_max_size: "L'attribut %{reference_value} de la course %{source_label} (%{source_objectid}) est trop grand (%{error_value})" + detail_4_vehiclejourney_1_pattern: "L'attribut %{reference_value} de la course %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" + detail_4_vehiclejourney_1_unique: "L'attribut %{reference_value} de la course %{source_label} (%{source_objectid}) a une valeur partagée avec la course %{target_0_label} (%{target_0_objectid})" + detail_4_vehiclejourney_2: "La course %{source_label} (%{source_objectid}) a un mode de transport interdit %{error_value}" + activemodel: + models: + compliance_check_result: + zero: "Validation" + one: "Validation" + other: "Validation" + attributes: + compliance_check_result: + 1-NEPTUNE-XML-1: "Conformité à la syntaxe XML suivant les recommandations du W3C." + 1-NEPTUNE-XML-2: "Conformité au schéma défini par la XSD du profil TRIDENT/NEPTUNE." + 2-NEPTUNE-Common-1: "Unicité des éléments objectId des différents objets d'un lot de fichiers Neptune." + 2-NEPTUNE-Common-2: "Unicité des éléments regitrationNumber des différents objets d'un lot de fichiers Neptune." + 2-NEPTUNE-Network-1: "Correcte référence à des lignes <Line> dans version du réseau <PTNetwork>." + 2-NEPTUNE-Network-2: "Valeur autorisée pour le type de source <SourceType> dans version du réseau <PTNetwork>." + 2-NEPTUNE-GroupOfLine-1: "Correcte référence à des lignes <Line> dans groupe de lignes <GroupOfLine>." + 2-NEPTUNE-StopArea-1: "Correcte référence à des arrêts <StopArea> et/ou à des points d'arrêt sur parcours <StopPoint> dans les arrêts <StopArea>." + 2-NEPTUNE-StopArea-2: "Correcte référence à des arrêts <StopArea> dans les arrêts <StopArea> de type StopPlace." + 2-NEPTUNE-StopArea-3: "Correcte référence à des arrêts <StopArea> dans les arrêts <StopArea> de type CommercialStopPoint." + 2-NEPTUNE-StopArea-4: "Correcte référence à des points d'arrêt sur parcours <StopPoint> dans les arrêts <StopArea> de type BoardingPosition ou Quay." + 2-NEPTUNE-StopArea-5: "Correcte référence à une position géographique <AreaCentroid> dans les arrêts <StopArea> de tout type StopPlace, CommercialStopPoint, BoardingPosition et Quay." + 2-NEPTUNE-StopArea-6: "référenceréciproque d'une position géographique <AreaCentroid> dans les arrêts <StopArea> de tout type StopPlace, CommercialStopPoint, BoardingPosition et Quay." + 2-NEPTUNE-ITL-1: "Correcte référence à des arrêts <StopArea> dans les arrêts <StopArea> de type ITL." + 2-NEPTUNE-ITL-2: "Correcte référence à des arrêts <StopArea> de type ITL dans la classe d’objets <ITL>." + 2-NEPTUNE-ITL-3: "Correcte référence à des arrêts <StopArea> dans la classe d’objets <ITL>." + 2-NEPTUNE-ITL-4: "Vérification du type de référence à des arrêts <StopArea> type ITL dans la classe d’objets <ITL>." + 2-NEPTUNE-ITL-5: "Bonne référence à la ligne <Line> dans la classe d’objets <ITL>." + 2-NEPTUNE-AreaCentroid-1: "Correcte référence à des arrêts <StopArea> dans la classe d’objets <AreaCentroid>." + 2-NEPTUNE-AreaCentroid-2: "Vérification du modèle de projection de référence utilisé." + 2-NEPTUNE-ConnectionLink-1: "Correcte référence aux arrêts <StopArea> définissant des tronçons de correspondance <ConnectionLink>." + 2-NEPTUNE-AccessPoint-1: "Correcte référence à un arrêt <StopArea> dans les accès <AccessPoint>." + 2-NEPTUNE-AccessPoint-2: "Correcte référence à un arrêt <StopArea> dans les accès <AccessPoint>." + 2-NEPTUNE-AccessPoint-3: "Existence de liens d'accès <AccessLink> sur les accès <AccessPoint>." + 2-NEPTUNE-AccessPoint-4: "Existence de liens d'accès <AccessLink> sur les accès <AccessPoint> de type 'in'." + 2-NEPTUNE-AccessPoint-5: "Existence de liens d'accès <AccessLink> sur les accès <AccessPoint> sur les accès de type 'out'." + 2-NEPTUNE-AccessPoint-6: "Existence de liens d'accès <AccessLink> sur les accès <AccessPoint> sur les accès de type 'inout'." + 2-NEPTUNE-AccessPoint-7: "Vérification du modèle de projection de référence utilisé." + 2-NEPTUNE-AccessLink-1: "Correcte référence aux arrêts <StopArea> et accès <AccessPoint> définissant des liens d'accès <AccessLink>." + 2-NEPTUNE-AccessLink-2: "Correcte référence aux arrêts <StopArea> et accès <AccessPoint> définissant des liens d'accès <AccessLink>." + 2-NEPTUNE-Line-1: "Correcte référence au réseau dans l'objet ligne <Line>." + 2-NEPTUNE-Line-2: "Correcte référence à un point d'arrêt sur parcours <StopPoint> comme terminus de ligne <Line>." + 2-NEPTUNE-Line-3: "Correcte référence à un point d'arrêt sur parcours <StopPoint> comme terminus de ligne <Line>." + 2-NEPTUNE-Line-4: "Correcte référence aux séquences d'arrêts <ChouetteRoute> dans l'objet ligne <Line>." + 2-NEPTUNE-Line-5: "Correcte référence aux séquences d'arrêts <ChouetteRoute> dans l'objet ligne <Line>." + 2-NEPTUNE-Line-6: "Présence d'au moins une valeur parmi <name>,<number> ou <publishedName> dans l'objet ligne <Line>." + 2-NEPTUNE-Route-1: "Existence des missions <JourneyPattern> référencées par la séquence d'arrêt <ChouetteRoute>." + 2-NEPTUNE-Route-2: "Existence des tronçons commerciaux <PtLink> référencés par la séquence d'arrêt <ChouetteRoute>." + 2-NEPTUNE-Route-3: "Existence de la séquence opposée <ChouetteRoute> référencée par la séquence d'arrêt <ChouetteRoute>." + 2-NEPTUNE-Route-4: "Correcte référence à un tronçon commercial <PtLink> dans une séquence d'arrêts <ChouetteRoute>." + 2-NEPTUNE-Route-5: "Vérification que tous les points d'arrêts sur parcours sont rattachés à une séquence d'arrêts <ChouetteRoute> au départ d'un tronçon commercial <PtLink> et/ou à l'arrivée d'un autre tronçon commercial <PtLink> de la même séquence d'arrêts." + 2-NEPTUNE-Route-6: "Vérification du correct ordonnancement des points d'arrêts sur parcours <StopPoint> dans le chainage des tronçons <PtLink> d'une séquence d'arrêts <ChouetteRoute>." + 2-NEPTUNE-Route-7: "référence mutuelle des missions <JourneyPattern> et des séquences d'arrêts <ChouetteRoute>." + 2-NEPTUNE-Route-8: "Cohérence des références aux points d'arrêt des missions <JourneyPattern> et des séquences d'arrêts <ChouetteRoute>." + 2-NEPTUNE-Route-9: "Utilité des points d'arrêts sur parcours des séquences d'arrêts <ChouetteRoute>." + 2-NEPTUNE-Route-10: "référence d'une séquence d'arrêts <ChouetteRoute> à une séquence d'arrêts opposée." + 2-NEPTUNE-Route-11: "Cohérence des sens de la référence d'une séquence d'arrêts <ChouetteRoute> à une séquence d'arrêts opposée." + 2-NEPTUNE-Route-12: "Cohérence des terminus de la référence d'une séquence d'arrêts <ChouetteRoute> à une séquence d'arrêts opposée." + 2-NEPTUNE-PtLink-1: "Existence des arrêts <StopPoint> référencés par les tronçons commerciaux <PTLink>." + 2-NEPTUNE-JourneyPattern-1: "Existence de la séquence d'arrêt <ChouetteRoute> référencée par la mission <JourneyPattern>." + 2-NEPTUNE-JourneyPattern-2: "Existence des arrêts <StopPoint> référencés par la mission <JourneyPattern>." + 2-NEPTUNE-JourneyPattern-3: "Existence de la ligne <Line> référencée par la mission <JourneyPattern>." + 2-NEPTUNE-StopPoint-1: "Existence de la ligne <Line> référencée par l'arrêt <StopPoint>." + 2-NEPTUNE-StopPoint-2: "Existence du réseau <PTNetwork> référence par l'arrêt <StopPoint>." + 2-NEPTUNE-StopPoint-3: "Existence de l'arrêt <StopArea> référencé par l'arrêt <StopPoint>." + 2-NEPTUNE-StopPoint-4: "Vérification du modèle de projection de référence utilisé." + 2-NEPTUNE-Timetable-1: "Utilité des calendriers." + 2-NEPTUNE-Timetable-2: "Utilité des calendriers." + 2-NEPTUNE-Timetable-2: "Validité des dates de début et de fin des périodes des calendriers" + 2-NEPTUNE-VehicleJourney-1: "Existence de la séquence d'arrêt <ChouetteRoute> référencée par la course <VehicleJourney>." + 2-NEPTUNE-VehicleJourney-2: "Existence de la mission <JourneyPattern> référencée par la course <VehicleJourney>." + 2-NEPTUNE-VehicleJourney-3: "Existence de la ligne <Line> référencée par la course <VehicleJourney>." + 2-NEPTUNE-VehicleJourney-4: "Existence de l'opérateur <Company> référencé par la course <VehicleJourney>." + 2-NEPTUNE-VehicleJourney-5: "Existence de la tranche horaire <TimeSlot> référencée par la course <VehicleJourney>." + 2-NEPTUNE-VehicleJourney-6: "Cohérence entre la course, la mission et la séquence d'arrêts." + 2-NEPTUNE-VehicleJourney-7: "Utilité des missions" + 2-NEPTUNE-VehicleJourney-8: "Mission implicite" + 2-NEPTUNE-VehicleJourneyAtStop-1: "Existence de l'arrêt <StopPoint> référencé par l'horaire <VehicleJourneyAtStop>." + 2-NEPTUNE-VehicleJourneyAtStop-2: "Existence de la course <VehicleJourney> référenceé par l'horaire <VehicleJourneyAtStop>." + 2-NEPTUNE-VehicleJourneyAtStop-3: "adéquation des horaires de la course à la séquence d'arrêts." + 2-NEPTUNE-VehicleJourneyAtStop-4: "adéquation des horaires de la course à la mission." + 2-NEPTUNE-Facility-1: "Existence de l'arrêt <StopArea> référencé par l'équipement <Facility>." + 2-NEPTUNE-Facility-2: "Existence de l'arrêt <StopArea> référencé par l'équipement <Facility>." + 2-NEPTUNE-Facility-3: "Existence de la ligne <Line> référencée par l'équipement <Facility>." + 2-NEPTUNE-Facility-4: "Existence de la correspondance <ConnectionLink> référencée par l'équipement <Facility>." + 2-NEPTUNE-Facility-5: "Existence de l'arrêt <StopPoint> référencé par l'équipement <Facility>." + 2-NEPTUNE-Facility-6: "Vérification du modèle de projection de référence utilisé." + + ## GTFS + 1-GTFS-CSV-1: "Vérification du format CSV" + 1-GTFS-CSV-2: "Vérification de la présence d'un entête" + 1-GTFS-CSV-3: "Vérification de la casse des noms des colonnes" + 1-GTFS-CSV-6: "Vérification de la non présence de balise HTML" + 1-GTFS-CSV-7: "Vérification de la non présence d'espace en début ou fin de colonne" + 1-GTFS-CSV-10: "Vérification de la syntaxe d'une ligne" + 1-GTFS-CSV-11: "Vérification de la syntaxe des entêtes" + 1-GTFS-CSV-12: "Vérification de la non présence de doublons dans les entêtes" + 1-GTFS-CSV-13: "Vérification de la syntaxe CSV GTFS du fichier" + 1-GTFS-CSV-14: "Vérification de la lecture du fichier" + 1-GTFS-Agency-1: "Vérification de la présence du fichier agency.txt" + 1-GTFS-Agency-2: "Vérification de la présence de la colonne agency_id" + 1-GTFS-Agency-3: "Vérification de l'unicité des valeurs de la colonne agency_id" + 1-GTFS-Agency-4: "Vérification de la présence des colonnes obligatoires" + 1-GTFS-Agency-5: "Vérification de la présence d'un contenu pour les colonnes obligatoires" + 1-GTFS-Agency-6: "Vérification du format de la colonne agency_timezone" + 1-GTFS-Agency-7: "Vérification du format de la colonne agency_url" + 1-GTFS-Agency-8: "Vérification du format de la colonne agency_lang" + 1-GTFS-Agency-9: "Vérification du format de la colonne agency_fare_url" + 1-GTFS-Agency-10: "Vérification de la présence de colonnes inconnues" + 1-GTFS-Agency-11: "Vérification de la présence d'au moins une entrée agency" + 1-GTFS-Stop-1: "Vérification de la présence du fichier stops.txt" + 1-GTFS-Stop-2: "Vérification de la présence des colonnes obligatoires" + 1-GTFS-Stop-3: "Vérification de la présence d'un contenu pour les colonnes obligatoires" + 1-GTFS-Stop-4: "Vérification de l'unicité des valeurs de la colonne stop_id" + 1-GTFS-Stop-5: "Vérification du format de la colonne stop_lat" + 1-GTFS-Stop-6: "Vérification du format de la colonne stop_lon" + 1-GTFS-Stop-7: "Vérification du format de la colonne stop_url" + 1-GTFS-Stop-8: "Vérification du format de la colonne location_type" + 1-GTFS-Stop-9: "Vérification du format de la colonne stop_timezone" + 1-GTFS-Stop-10: "Vérification du format de la colonne wheelchair_boarding" + 1-GTFS-Stop-11: "Vérification de la présence de colonnes inconnues" + 1-GTFS-Stop-12: "Vérification de la présence d'au moins une entrée stop" + 1-GTFS-Route-1: "Vérification de la présence du fichier routes.txt" + 1-GTFS-Route-2: "Vérification de la présence des colonnes obligatoires" + 1-GTFS-Route-3: "Vérification de la présence d'un contenu pour les colonnes obligatoires" + 1-GTFS-Route-4: "Vérification de la présence au minimum de route_short_name ou route_long_name" + 1-GTFS-Route-5: "Vérification de l'unicité des valeurs de la colonne route_id" + 1-GTFS-Route-6: "Vérification du format de la colonne route_type" + 1-GTFS-Route-7: "Vérification du format de la colonne route_url" + 1-GTFS-Route-8: "Vérification du format de la colonne route_color" + 1-GTFS-Route-9: "Vérification du format de la colonne route_text_color" + 1-GTFS-Route-10: "Vérification de la présence de colonnes inconnues" + 1-GTFS-Route-11: "Vérification de la présence d'au moins une entrée route" + 1-GTFS-Trip-1: "Vérification de la présence du fichier trips.txt" + 1-GTFS-Trip-2: "Vérification de la présence des colonnes obligatoires" + 1-GTFS-Trip-3: "Vérification de la présence d'un contenu pour les colonnes obligatoires" + 1-GTFS-Trip-4: "Vérification de l'unicité des valeurs de la colonne trip_id" + 1-GTFS-Trip-5: "Vérification du format de la colonne direction_id" + 1-GTFS-Trip-6: "Vérification du format de la colonne wheelchair_accessible" + 1-GTFS-Trip-7: "Vérification du format de la colonne bikes_allowed" + 1-GTFS-Trip-8: "Vérification de la présence de colonnes inconnues" + 1-GTFS-Trip-9: "Vérification de la présence d'au moins une entrée trip" + 1-GTFS-StopTime-1: "Vérification de la présence du fichier stoptimes.txt" + 1-GTFS-StopTime-2: "Vérification de la présence des colonnes obligatoires" + 1-GTFS-StopTime-3: "Vérification de la présence d'un contenu pour les colonnes obligatoires" + 1-GTFS-StopTime-4: "Vérification de la présence simultanée des valeurs arrival_time et departure_time" + 1-GTFS-StopTime-5: "Vérification de l'unicité du couple de valeurs des colonnes trip_id et stop_sequence" + 1-GTFS-StopTime-6: "Vérification du format de la colonne stop_sequence" + 1-GTFS-StopTime-7: "Vérification du format de la colonne arrival_time" + 1-GTFS-StopTime-8: "Vérification du format de la colonne departure_time" + 1-GTFS-StopTime-9: "Vérification du format de la colonne pickup_type" + 1-GTFS-StopTime-10: "Vérification du format de la colonne drop_off_type" + 1-GTFS-StopTime-11: "Vérification du format de la colonne shape_dist_travel" + 1-GTFS-StopTime-12: "Vérification du format de la colonne timepoint" + 1-GTFS-StopTime-13: "Vérification de la présence de colonnes inconnues" + 1-GTFS-StopTime-14: "Vérification de la présence d'au moins une entrée stoptime" + 1-GTFS-Calendar-1: "Vérification de la présence d'un des fichiers calendar.txt ou calendar_dates.txt" + 1-GTFS-Calendar-2: "Vérification de la présence des colonnes obligatoires" + 1-GTFS-Calendar-3: "Vérification de la présence d'un contenu pour les colonnes obligatoires" + 1-GTFS-Calendar-4: "Vérification de l'unicité des valeurs de la colonne service_id" + 1-GTFS-Calendar-5: "Vérification du format de la colonne monday" + 1-GTFS-Calendar-6: "Vérification du format de la colonne tuesday" + 1-GTFS-Calendar-7: "Vérification du format de la colonne wednesday" + 1-GTFS-Calendar-8: "Vérification du format de la colonne thursday" + 1-GTFS-Calendar-9: "Vérification du format de la colonne friday" + 1-GTFS-Calendar-10: "Vérification du format de la colonne saturday" + 1-GTFS-Calendar-11: "Vérification du format de la colonne sunday" + 1-GTFS-Calendar-12: "Vérification du format de la colonne start_date" + 1-GTFS-Calendar-13: "Vérification du format de la colonne end_date" + 1-GTFS-Calendar-14: "Vérification de la présence de colonnes inconnues" + 1-GTFS-Calendar-15: "Vérification de la présence d'au moins une entrée calendar" + 1-GTFS-CalendarDate-2: "Vérification de la présence des colonnes obligatoires" + 1-GTFS-CalendarDate-3: "Vérification de la présence d'un contenu pour les colonnes obligatoires" + 1-GTFS-CalendarDate-4: "Vérification de l'unicité du couple de valeurs des colonnes service_id et date" + 1-GTFS-CalendarDate-5: "Vérification du format de la colonne date" + 1-GTFS-CalendarDate-6: "Vérification du format de la colonne exception_type" + 1-GTFS-CalendarDate-7: "Vérification de la présence de colonnes inconnues" + 1-GTFS-Frequency-1: "Vérification de la présence des colonnes obligatoires" + 1-GTFS-Frequency-2: "Vérification de la présence d'un contenu pour les colonnes obligatoires" + 1-GTFS-Frequency-3: "Vérification du format de la colonne start_time" + 1-GTFS-Frequency-4: "Vérification du format de la colonne end_time" + 1-GTFS-Frequency-5: "Vérification du format de la colonne headway_secs" + 1-GTFS-Frequency-6: "Vérification du format de la colonne exact_times" + 1-GTFS-Frequency-7: "Vérification de la présence de colonnes inconnues" + 1-GTFS-Transfer-1: "Vérification de la présence des colonnes obligatoires" + 1-GTFS-Transfer-2: "Vérification de la présence d'un contenu pour les colonnes obligatoires" + 1-GTFS-Transfer-3: "Vérification du format de la colonne transfer_type" + 1-GTFS-Transfer-4: "Vérification de la présence des valeurs de la colonne min_transfer_time" + 1-GTFS-Transfer-5: "Vérification du format de la colonne min_transfer_time" + 1-GTFS-Transfer-6: "Vérification de la présence de colonnes inconnues" + 1-GTFS-Shape-1: "Vérification de la présence des colonnes obligatoires" + 1-GTFS-Shape-2: "Vérification de la présence d'un contenu pour les colonnes obligatoires" + 1-GTFS-Shape-3: "Vérification de l'unicité du couple de valeurs des colonnes shape_id et shape_pt_sequence" + 1-GTFS-Shape-4: "Vérification du format de la colonne shape_pt_lat" + 1-GTFS-Shape-5: "Vérification du format de la colonne shape_pt_lon" + 1-GTFS-Shape-6: "Vérification du format de la colonne shape_pt_sequence" + 1-GTFS-Shape-7: "Vérification du format de la colonne shape_dist_traveled" + 1-GTFS-Shape-8: "Vérification de la présence de colonnes inconnues" + + 2-GTFS-Common-1: "Vérification de la taille des valeurs d'identifiant" + 2-GTFS-Common-2: "Vérification de la taille des valeurs des textes courts" + 2-GTFS-Common-3: "Vérification de la taille des valeurs des textes longs" + 2-GTFS-Agency-1: "Vérification de l'utilité des entrées agency" + 2-GTFS-Agency-2: "Vérification de la valeur de la colonne agency_id" + 2-GTFS-Stop-1: "Vérification de l'existence du stop référencé par parent_station" + 2-GTFS-Stop-2: "Vérification du type du parent_station" + 2-GTFS-Stop-3: "Vérification de la desserte du stop" + 2-GTFS-Stop-4: "Vérification de la non redondance des valeurs stop_name et stop_desc" + 2-GTFS-Stop-5: "Vérification de la pertinence de la valeur stop_url par rapport aux valeurs agency_url et route_url" + 2-GTFS-Stop-6: "Vérification de l'utilité de la colonne location_type" + 2-GTFS-Route-1: "Vérification de la non redondance des valeurs route_short_name et route_long_name" + 2-GTFS-Route-2: "Vérification de la présence des valeurs de agency_id" + 2-GTFS-Route-3: "Vérification de l'existence de l'agency référencée par agency_id" + 2-GTFS-Route-4: "Vérification de l'utilité des entrées route" + 2-GTFS-Route-5: "Vérification de l'unicité de désignation (route_short_name, route_long_name)" + 2-GTFS-Route-6: "Vérification de la longueur du champ route_short_name" + 2-GTFS-Route-7: "non défini" + 2-GTFS-Route-8: "Vérification de la non inclusion de route_short_name dans route_long_name" + 2-GTFS-Route-9: "Vérification du contraste des couleurs" + 2-GTFS-Route-10: "Vérification de la non redondance de la valeur route_desc par rapport aux valeurs route_short_name et route_long_name" + 2-GTFS-Route-11: "Vérification de la non présence d'une route inversant les valeurs route_short_name et route_long_name d'une autre" + 2-GTFS-Route-12: "Vérification de la pertinence de la valeur route_url par rapport aux valeurs agency_url" + 2-GTFS-Trip-1: "Vérification de la présence des valeurs de route_id" + 2-GTFS-Trip-2: "Vérification de la présence des valeurs de service_id" + 2-GTFS-Trip-3: "Vérification de la présence des valeurs de shape_id" + 2-GTFS-Trip-4: "Vérification de la non unicité des valeurs de block_id" + 2-GTFS-Trip-5: "Vérification de l'utilité des entrées trip" + 2-GTFS-Trip-6: "Vérification de la longueur des trips (minimum 2 horaires)" + 2-GTFS-Trip-7: "Vérification de la présence des valeurs de direction_id" + 2-GTFS-StopTime-1: "Vérification de la présence des valeurs de trip_id" + 2-GTFS-StopTime-2: "Vérification de la présence des valeurs de stop_id" + 2-GTFS-StopTime-3: "Vérification de la chronologie des horaires d'arrivé et départ" + 2-GTFS-StopTime-4: "Vérification de la présence des horaires d'arrivé et départ du premier stoptime d'un trip" + 2-GTFS-StopTime-5: "Vérification de la présence des horaires d'arrivé et départ du dernier stoptime d'un trip" + 2-GTFS-StopTime-6: "Vérification de la chronologie des horaires selon stop_sequence" + 2-GTFS-StopTime-7: "Vérification du non conflit des valeurs pick_type et drop_off_type" + 2-GTFS-StopTime-8: "Vérification de la croissance de la valeur shape_dist_travel selon stop_sequence" + 2-GTFS-StopTime-9: "Vérification du type du stop référencé par stop_id" + 2-GTFS-Calendar-1: "Vérification de la chronologie des plages horaires" + 2-GTFS-Calendar-2: "Vérification de la validité d'au moins un jour" + 2-GTFS-Calendar-3: "Vérification de la présence d'au moins un jour valide" + 2-GTFS-Calendar-4: "Vérification de l'utilité de la définition d'un jour exclu" + 2-GTFS-Calendar-5: "Vérification de la non obsolécence des calendriers" + 2-GTFS-Calendar-6: "Vérification de la non obsolécence future des calendriers" + 2-GTFS-Frequency-1: "Vérification de la chronologie des plages de fréquence" + 2-GTFS-Frequency-2: "Vérification du non chevauchement des plages d'un même trip" + 2-GTFS-Transfer-1: "Vérification de l'existance du stop référencé par from_stop_id" + 2-GTFS-Transfer-2: "Vérification de l'existance du stop référencé par to_stop_id" + + + 3-StopArea-1: "Vérification de la géolocalisation de tous les arrêts hors ITL" + 3-StopArea-2: "Vérification que 2 arrêts de noms différents en dehors d'un même regroupement d'arrêts ne sont pas trop proches" + 3-StopArea-3: "Vérification de l'unicité des arrêts" + 3-StopArea-4: "Vérification de la géolocalisation des arrêts" + 3-StopArea-5: "Vérification de la position relative des arrêts et de leur parent" + 3-AccessPoint-1: "Vérification de la géolocalisation de tous les accès" + 3-AccessPoint-2: "Vérification que deux accès de nom différents ne sont pas trop proches" + 3-AccessPoint-3: "Vérification de la proximité entre les accès et leur arrêt de rattachement" + 3-ConnectionLink-1: "Vérification de la proximité entre les deux arrêts d'une correspondance" + 3-ConnectionLink-2: "Vérification de la cohérence entre la distance fournie sur la correspondance et la distance géographique entre les deux arrêts de la correspondance" + 3-ConnectionLink-3: "Vérification de la vitesse de parcours entre les deux arrêts d'une correspondance" + 3-AccessLink-1: "Vérification de la proximité entre les deux extrémités d'un lien d'accès" + 3-AccessLink-2: "Vérification de la cohérence entre la distance fournie sur le lien d'accès et la distance géographique entre les deux extrémités du lien d'accès" + 3-AccessLink-3: "Vérification de la vitesse de parcours entre les deux extrémités d'un lien d'accès" + 3-Line-1: "Vérification de la non homonymie des lignes" + 3-Line-2: "Vérification de la présence de séquences d'arrêts sur la ligne" + 3-Route-1: "Vérification de la succession des arrêts de la séquence" + 3-Route-2: "Vérification de la séquence inverse" + 3-Route-3: "Vérification de la distance entre deux arrêts successifs de la séquence" + 3-Route-4: "Vérification de double définition de séquences" + 3-Route-5: "Vérification de séquences sans séquence opposée" + 3-Route-6: "Vérification de la présence d'arrêts dans la séquence" + 3-Route-7: "Vérification de la présence de missions" + 3-Route-8: "Vérification de l'utilisation des arrêts par les missions" + 3-Route-9: "Vérification de l’existence d’une mission passant par tous les arrêts de la séquence" + 3-JourneyPattern-1: "Vérification de double définition de missions" + 3-VehicleJourney-1: "Vérification de la chronologie des horaires de passage à un arrêt" + 3-VehicleJourney-2: "Vérification de la vitesse de transfert entre deux arrêts" + 3-VehicleJourney-3: "Vérification de la cohérence des courses successives desservant deux mêmes arrêts" + 3-VehicleJourney-4: "Vérification de l'affectation des courses à un calendrier" + 3-Facility-1: "Vérification de la géolocalisation de tous les accès" + 3-Facility-2: "Vérification de la proximité entre les équipements et leur arrêt de rattachement" + 4-Network-1: "Vérification de contraintes sur les attributs des réseaux" + 4-Company-1: "Vérification de contraintes sur les attributs des transporteurs" + 4-GroupOfLine-1: "Vérification de contraintes sur les attributs des groupes de lignes" + 4-StopArea-1: "Vérification de contraintes sur les attributs des arrêts" + 4-StopArea-2: "Vérification de l'existance d'un arrêt commercial pour les arrêts physiques" + 4-StopArea-3: "Vérification de la cohérence entre les noms de communes et leur code INSEE" + 4-AccessPoint-1: "Vérification de contraintes sur les attributs des accès" + 4-AccessLink-1: "Vérification de contraintes sur les attributs des liens d'accès" + 4-ConnectionLink-1: "Vérification de contraintes sur les attributs des correspondances" + 4-ConnectionLink-2: "Vérification des type d'arrêts en correspondance" + 4-Timetable-1: "Vérification de contraintes sur les attributs des calendiers" + 4-Line-1: "Vérification de contraintes sur les attributs des lignes" + 4-Line-2: "Vérification des modes de transport des lignes" + 4-Line-3: "Vérification des groupes de lignes d'une ligne" + 4-Line-4: "Vérification des séquences d'arrêts d'une ligne" + 4-Route-1: "Vérification de contraintes sur les attributs des séquences d'arrêt" + 4-JourneyPattern-1: "Vérification de contraintes sur les attributs des missions" + 4-VehicleJourney-1: "Vérification de contraintes sur les attributs des courses" + 4-VehicleJourney-2: "Vérification des modes de transport des courses" + severity: "Severity" + status: "Status" + rule_level: "Level" + rule_target: "Object" + rule_number: "Step" + rule_code: "Code" + violation_count: "errors" + violation_count_txt: "Number of errors" + objects: "Objects in violations" + detail: "Detail" + title: "Test title" + object: "Error object" + resource: "Resources of the error object" + url: "URL" + first_violations: "First violations" diff --git a/config/locales/compliance_check_results.yml b/config/locales/compliance_check_results.fr.yml index acbaa6826..8a4bafb97 100644 --- a/config/locales/compliance_check_results.yml +++ b/config/locales/compliance_check_results.fr.yml @@ -1,348 +1,3 @@ -en: - compliance_check_results: - errors: 'Errors' - file: - zip_name_prefix: "compliance_check_results" - summary_errors_file_prefix: "summary_of_tests.csv" - detailed_errors_file_prefix: "detail_of_errors.csv" - index: - line: "Li" - column: "Col" - compliance_check_result: - severities: - error: "Required" - warning: "Optional" - error_txt: "Required" - warning_txt: "Optional" - statuses: - nok: "Error" - uncheck: "Unavailable" - ok: "Success" - details: - #### level 1 - ## NEPTUNE - detail_1_neptune_xml_1: "%{source_label} : %{error_value}" - detail_1_neptune_xml_2: "%{source_label} : %{error_value}" - #### level 2 - ## NEPTUNE - detail_2_neptune_common_1: "L'élément %{source_objectid} a des attributs qui diffèrent entre les différents fichiers qui le définissent" - detail_2_neptune_common_2: "L'élément %{source_objectid} partage l'attribut RegistrationNumber = %{error_value} avec un autre objet de même type" - detail_2_neptune_network_1: "La ligne %{source_objectid} est absente de la liste des lignes du réseau %{target_0_objectid}" - detail_2_neptune_groupofline_1: "La ligne %{source_objectid} est absente de la liste des lignes du du groupe de lignes %{target_0_objectid}" - detail_2_neptune_stoparea_1: "Le fils (contains = %{error_value}) de l'arrêt %{source_objectid} n'est pas de type StopArea ni StopPoint" - detail_2_neptune_stoparea_2: "L'arrêt %{source_objectid} de type %{reference_value} ne peut contenir que des arrêts de type StopPlace ou CommercialStopPoint, or un des arrêts contenus (contains = %{target_0_objectid}) est de type %{error_value}" - detail_2_neptune_stoparea_3: "L'arrêt %{source_objectid} de type %{reference_value} ne peut contenir que des arrêts de type BoardingPosition ou Quay, or un des arrêts contenus (contains = %{target_0_objectid}) est de type %{error_value}" - detail_2_neptune_stoparea_4: "L'arrêt %{source_objectid} de type %{reference_value} ne peut contenir que des points d'arrêt de séquence, or un des arrêts contenus (contains = %{target_0_objectid}) est un StopArea arrêt de type %{error_value}" - detail_2_neptune_stoparea_5: "L'arrêt %{source_objectid} référence une position géographique (centroidOfArea = %{error_value}) inexistante" - detail_2_neptune_stoparea_6: "L'arrêt %{source_objectid} référence une position géographique (centroidOfArea = %{target_0_objectid}) qui ne le référence pas en retour (containedIn = %{error_value})" - detail_2_neptune_itl_1: "Le fils (contains = %{target_0_objectid}) de type %{error_value} ne peut pas être contenu dans l'arrêt %{source_objectid} de type %{reference_value}" - detail_2_neptune_itl_2: "L'arrêt de type ITL %{source_objectid} n'est pas utilisé" - detail_2_neptune_itl_3: "L'arrêt areaId = %{error_value} référencé par l'ITL %{source_objectid} n'existe pas" - detail_2_neptune_itl_4: "L'arrêt areaId = %{target_0_objectid} référencé par l'ITL %{source_objectid} devrait être de type ITL et non de type %{error_value}" - detail_2_neptune_itl_5: "La référence lineIdShortCut = %{error_value} de l'ITL %{source_objectid} n'est pas cohérente avec la ligne %{target_0_objectid}" - detail_2_neptune_areacentroid_1: "La position géographique <AreaCentroid> %{source_objectid} référence un arrêt (containedIn = %{error_value}) inexistant" - detail_2_neptune_areacentroid_2: "La position géographique <AreaCentroid> %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide" - detail_2_neptune_connectionlink_1: "La correspondance %{source_objectid} référence 2 arrêts inexistants" - detail_2_neptune_accesspoint_1: "L'accès %{source_objectid} référence un arrêt parent (containedIn = %{error_value}) inexistant" - detail_2_neptune_accesspoint_2: "L'accès %{source_objectid} référence un arrêt parent (containedIn = %{target_0_objectid}) de type invalide (ITL)" - detail_2_neptune_accesspoint_3: "L'accès %{source_objectid} n'a pas de lien d'accès" - detail_2_neptune_accesspoint_4: "L'accès %{source_objectid} de type In a des liens d'accès sortants" - detail_2_neptune_accesspoint_5: "L'accès %{source_objectid} de type Out a des liens d'accès entrants" - detail_2_neptune_accesspoint_6: "L'accès %{source_objectid} de type InOut n'a que des liens d'accès entrants ou sortants" - detail_2_neptune_accesspoint_7: "L'accès %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide" - detail_2_neptune_accesslink_1: "La liaison d'accès %{source_objectid} référence %{error_value} qui n'existe pas" - detail_2_neptune_accesslink_2: "Sur la liaison d'accès %{source_objectid}, les références startOfLink = %{error_value} et endOfLink = %{reference_value} sont de même type" - detail_2_neptune_line_1: "La ligne %{source_objectid} référence un réseau (ptNetworkIdShortcut = %{error_value} inexistant" - detail_2_neptune_line_2: "La ligne %{source_objectid} référence un point d'arrêt <StopPoint> (lineEnd = %{error_value}) inexistant " - detail_2_neptune_line_3: "La ligne %{source_objectid} référence un point d'arrêt (lineEnd = %{error_value}) qui n'est pas terminus d'une séquence d'arrêts" - detail_2_neptune_line_4: "La ligne %{source_objectid} référence une séquence d'arrêt (routeId = %{error_value}) inexistante" - detail_2_neptune_line_5: "La séquence d'arrêts (routeId = %{target_0_objectid}) n'est pas référencée par la ligne %{source_objectid}" - detail_2_neptune_route_1: "La séquence d'arrêts %{source_objectid} référence une mission (journeyPatternId = %{error_value}) inexistante" - detail_2_neptune_route_2: "La séquence d'arrêts %{source_objectid} référence un tronçon (ptLinkId = %{error_value}) inexistant" - detail_2_neptune_route_3: "La séquence retour (waybackRouteId = %{error_value}) de la séquence d'arrêts %{source_objectid} n'existe pas" - detail_2_neptune_route_4: "Le tronçon (ptLinkId = %{error_value}) référencé par la séquence d'arrêt %{source_objectid} est partagé avec %{target_0_objectid}" - detail_2_neptune_route_5: "Le tronçon %{source_objectid} partage un %{reference_value} : %{error_value} avec un autre tronçon" - detail_2_neptune_route_6_1: "La séquence d'arrêts %{source_objectid} n'est pas une séquence linéaire, le chainage des tronçons forme un anneau" - detail_2_neptune_route_6_2: "La séquence d'arrêts %{source_objectid} n'est pas une séquence linéaire, le chainage des tronçons est rompu au tronçon %{target_0_objectid}" - detail_2_neptune_route_7: "La séquence d'arrêts %{source_objectid} ne référence pas la mission %{target_0_objectid} alors que cette mission référence la séquence d'arrêt" - detail_2_neptune_route_8: "La mission journeyPatternId = %{target_0_objectid} de la séquence d'arrêts %{source_objectid} utilise des points d'arrêts hors séquence" - detail_2_neptune_route_9: "Le point d'arrêt (stopPointId = %{target_0_objectid}) de la séquence d'arrêts %{source_objectid} n'est utilisé dans aucune mission" - detail_2_neptune_route_10: "La séquence retour (waybackRouteId = %{target_0_objectid}) ne référence pas la séquence d'arrêts %{source_objectid} comme retour" - detail_2_neptune_route_11: "Le sens (%{reference_value}) de la séquence d'arrêt %{source_objectid} n'est pas compatible avec celui (%{error_value}) de la séquence opposée %{target_0_objectid}" - detail_2_neptune_route_12: "Le départ dans la zone %{reference_value}) de la séquence d'arrêts %{source_objectid} n'est pas dans la même zone que l'arrivée (zone %{error_value} de la séquence retour %{target_0_objectid}" - detail_2_neptune_ptlink_1: "Le tronçon %{source_objectid} reférence un %{reference_value} = %{error_value} inexistant" - detail_2_neptune_journeypattern_1: "La mission %{source_objectid} référence une séquence d'arrêts (routeId = %{error_value}) inexistante" - detail_2_neptune_journeypattern_2: "La mission %{source_objectid} référence un point d'arrêt (stopPointId = %{error_value}) inexistant" - detail_2_neptune_journeypattern_3: "La mission %{source_objectid} référence une ligne (lineIdShortcut = %{error_value}) inexistante" - detail_2_neptune_stoppoint_1: "Le point d'arrêt %{source_objectid} référence une ligne (lineIdShortcut = %{error_value}) inexistante" - detail_2_neptune_stoppoint_2: "Le point d'arrêt %{source_objectid} référence un réseau (ptNetworkIdShortcut = %{error_value}) inexistant" - detail_2_neptune_stoppoint_3: "Le point d'arrêt %{source_objectid} référence un arrêt (containedIn = %{error_value}) inexistant" - detail_2_neptune_stoppoint_4: "Le point d'arrêt %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide" - detail_2_neptune_timetable_1: "Le calendrier (<Timetable>) %{source_objectid} ne référence aucune course existante" - detail_2_neptune_timetable_2: "La course %{source_objectid} n'est référencée dans aucun calendrier (<Timetable>)" - detail_2_neptune_vehiclejourney_1: "La course %{source_objectid} référence une séquence d'arrêts (routeId = %{error_value}) inexistante" - detail_2_neptune_vehiclejourney_2: "La course %{source_objectid} référence une mission (journeyPatternId = %{error_value}) inexistante" - detail_2_neptune_vehiclejourney_3: "La course %{source_objectid} référence une ligne (lineIdShortcut = %{error_value}) inexistante" - detail_2_neptune_vehiclejourney_4: "La course %{source_objectid} référence un opérateur (operatorId = %{error_value}) inexistant" - detail_2_neptune_vehiclejourney_5: "La course %{source_objectid} référence une fréquence horaire (timeSlotId = %{error_value}) inexistante" - detail_2_neptune_vehiclejourney_6: "La course %{source_objectid} référence une mission %{error_value} incompatible de la séquence d'arrêts %{reference_value}" - detail_2_neptune_vehiclejourney_7: "La mission %{source_objectid} n'est référencée par aucune course" - detail_2_neptune_vehiclejourneyatstop_1: "La course %{source_objectid} fournit un horaire sur un point d'arrêt (stopPointId = %{error_value}) inexistant" - detail_2_neptune_vehiclejourneyatstop_2: "Un horaire de la course %{source_objectid} référence une autre course : vehicleJourneyId = %{error_value}" - detail_2_neptune_vehiclejourneyatstop_3: "La course %{source_objectid} ne fournit pas les horaires des points d'arrêts selon l'ordre de la séquence d'arrêts %{error_value}" - detail_2_neptune_vehiclejourneyatstop_4: "La course %{source_objectid} ne fournit pas les horaires des points d'arrêts de sa mission %{error_value}" - detail_2_neptune_facility_1: "L'équipement %{source_objectid} est situé sur un arrêt inexistant (containedId = %{error_value})" - detail_2_neptune_facility_2: "L'équipement %{source_objectid} référence un arrêt (stopAreaId = %{error_value}) inexistant" - detail_2_neptune_facility_3: "L'équipement %{source_objectid} référence une ligne (lineId = %{error_value} inexistante" - detail_2_neptune_facility_4: "L'équipement %{source_objectid} référence une correspondance (connectionLinkId = %{error_value} inexistante" - detail_2_neptune_facility_5: "L'équipement %{source_objectid} référence un point d'arrêt (stopPointId = %{error_value} inexistant" - detail_2_neptune_facility_6: "L'équipement %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide" - #### level 3 - detail_3_stoparea_1: "L'arrêt %{source_label} (%{source_objectid}) n'est pas géolocalisé" - detail_3_stoparea_2: "L'arrêt %{source_label} (%{source_objectid}) est localisé trop près de l'arrêt %{target_0_label} (%{target_0_objectid}) : distance %{error_value} < %{reference_value}" - detail_3_stoparea_3: "Les arrêts %{source_label} (%{source_objectid} et %{target_0_objectid}) sont desservis par les mêmes lignes" - detail_3_stoparea_4: "L'arrêt %{source_label} (%{source_objectid}) est en dehors du périmètre de contrôle" - detail_3_stoparea_5: "L'arrêt %{source_label} (%{source_objectid}) est localisé trop loin de son parent %{target_0_label} (%{target_0_objectid}) : distance %{error_value} > %{reference_value}" - detail_3_accesspoint_1: "L'accès %{source_label} (%{source_objectid}) n'est pas géolocalisé" - detail_3_accesspoint_2: "L'accès %{source_label} (%{source_objectid}) est localisé trop près de l'accès %{target_0_label} (%{target_0_objectid}) : distance %{error_value} < %{reference_value}" - detail_3_accesspoint_3: "L'accès %{source_label} (%{source_objectid}) est localisé trop loin de son parent %{target_0_label} (%{target_0_objectid}) : distance %{error_value} > %{reference_value}" - detail_3_connectionlink_1: "Sur la correspondance %{source_label} (%{source_objectid}), la distance entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}) est trop grande : distance %{error_value} > %{reference_value}" - detail_3_connectionlink_2: "Sur la correspondance %{source_label} (%{source_objectid}), la distance entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}) : %{error_value} est supérieure à la longueur du lien : %{reference_value}" - detail_3_connectionlink_3_1: "Sur la correspondance %{source_label} (%{source_objectid}), la vitesse par défaut %{error_value} est supérieure à %{reference_value} km/h" - detail_3_connectionlink_3_2: "Sur la correspondance %{source_label} (%{source_objectid}), la vitesse pour un voyageur occasionnel %{error_value} est supérieure à %{reference_value} km/h" - detail_3_connectionlink_3_3: "Sur la correspondance %{source_label} (%{source_objectid}), la vitesse pour un voyageur habitué %{error_value} est supérieure à %{reference_value} km/h" - detail_3_connectionlink_3_4: "Sur la correspondance %{source_label} (%{source_objectid}), la vitesse pour un voyageur à mobilité réduite %{error_value} est supérieure à %{reference_value} km/h" - detail_3_accesslink_1: "Sur le lien d'accès %{source_label} (%{source_objectid}), la distance entre l'arrêt %{target_0_label} (%{target_0_objectid}) et l'accès %{target_1_label} (%{target_1_objectid}) est trop grande : distance %{error_value} > %{reference_value}" - detail_3_accesslink_2: "Sur le lien d'accès %{source_label} (%{source_objectid}), la distance entre l'arrêt %{target_0_label} (%{target_0_objectid}) et l'accès %{target_1_label} (%{target_1_objectid}) : %{error_value} est supérieure à la longueur du lien : %{reference_value}" - detail_3_accesslink_3_1: "Sur le lien d'accès %{source_label} (%{source_objectid}), la vitesse par défaut %{error_value} est supérieure à %{reference_value} km/h" - detail_3_accesslink_3_2: "Sur le lien d'accès %{source_label} (%{source_objectid}), la vitesse pour un voyageur occasionnel %{error_value} est supérieure à %{reference_value} km/h" - detail_3_accesslink_3_3: "Sur le lien d'accès %{source_label} (%{source_objectid}), la vitesse pour un voyageur habitué %{error_value} est supérieure à %{reference_value} km/h" - detail_3_accesslink_3_4: "Sur le lien d'accès %{source_label} (%{source_objectid}), la vitesse pour un voyageur à mobilité réduite %{error_value} est supérieure à %{reference_value} km/h" - detail_3_line_1: "La ligne %{source_label} (%{source_objectid}) a une ligne homonyme sur le même réseau %{target_0_label} (%{target_0_objectid})" - detail_3_line_2: "La ligne %{source_label} (%{source_objectid}) n'a pas de séquence d'arrêts" - detail_3_route_1: "Sur la séquence d'arrêt %{source_label} (%{source_objectid}), l'arrêt %{target_0_label} (%{target_0_objectid}) est desservi 2 fois consécutivement" - detail_3_route_2: "Les terminus de la séquence d'arrêt %{source_label} (%{source_objectid}) ne sont pas cohérent avec ceux de sa séquence opposée : l'une part de %{target_0_label} (%{target_0_objectid}) et l'autre arrive à %{target_1_label} (%{target_1_objectid})" - detail_3_route_3_1: "Sur la séquence d'arrêt %{source_label} (%{source_objectid}), entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}), distance %{error_value} < %{reference_value} " - detail_3_route_3_2: "Sur la séquence d'arrêt %{source_label} (%{source_objectid}), entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid}), distance %{error_value} > %{reference_value} " - detail_3_route_4: "La séquence d'arrêt %{source_label} (%{source_objectid}) utilise la même liste ordonnée d'arrêts que la séquence d'arrêts %{target_0_label} (%{target_0_objectid})" - detail_3_route_5: "La séquence d'arrêt %{source_label} (%{source_objectid}) peut admettre la séquence %{target_0_label} (%{target_0_objectid}) comme séquence opposée" - detail_3_route_6: "La séquence d'arrêt %{source_label} (%{source_objectid}) doit avoir un minimum de 2 arrêts" - detail_3_route_7: "La séquence d'arrêt %{source_label} (%{source_objectid}) n'a pas de mission" - detail_3_route_8: "La séquence d'arrêt %{source_label} (%{source_objectid}) a %{error_value} arrêts non utilisés par des missions" - detail_3_route_9: "La séquence d'arrêt %{source_label} (%{source_objectid}) n'a pas de mission desservant l'ensemble de ses arrêts" - detail_3_journeypattern_1: "La mission %{source_label} (%{source_objectid}) utilise les mêmes arrêts que la mission %{target_0_label} (%{target_0_objectid}) - nombre d'arrêts = %{error_value}" - detail_3_vehiclejourney_1: "Arrêt %{target_0_label} (%{target_0_objectid}) : durée d'arrêt mesurée %{error_value} > %{reference_value}" - detail_3_vehiclejourney_2_1: "La course %{source_label} (%{source_objectid}) a des horaires décroissants entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid})" - detail_3_vehiclejourney_2_2: "La course %{source_label} (%{source_objectid}) a une vitesse %{error_value} < %{reference_value} km/h entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid})" - detail_3_vehiclejourney_2_3: "La course %{source_label} (%{source_objectid}) a une vitesse %{error_value} > %{reference_value} km/h entre les arrêts %{target_0_label} (%{target_0_objectid}) et %{target_1_label} (%{target_1_objectid})" - detail_3_vehiclejourney_3: "La course %{source_label} (%{source_objectid}) a une variation de progression entre les arrêts %{target_1_label} (%{target_1_objectid}) et %{target_2_label} (%{target_2_objectid}) %{error_value} > %{reference_value} avec la course %{target_0_label} (%{target_0_objectid})" - detail_3_vehiclejourney_4: "La course %{source_label} (%{source_objectid}) n'a pas de calendrier d'application" - detail_3_facility_1: "L'équipement %{source_label} (%{source_objectid}) n'est pas géolocalisé" - detail_3_facility_2: "L'équipement %{source_label} (%{source_objectid}) est localisé trop loin de son parent %{areaName} (%{areaId}) : distance %{error_value} > %{reference_value}" - - detail_4_network_1_min_size: "L'attribut %{reference_value} du réseau %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value}) " - detail_4_network_1_max_size: "L'attribut %{reference_value} du réseau %{source_label} (%{source_objectid}) est trop grand (%{error_value})" - detail_4_network_1_pattern: "L'attribut %{reference_value} du réseau %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" - detail_4_network_1_unique: "L'attribut %{reference_value} du réseau %{source_label} (%{source_objectid}) a une valeur partagée avec le réseau %{target_0_label} (%{target_0_objectid})" - detail_4_company_1_min_size: "L'attribut %{reference_value} du transporteur %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" - detail_4_company_1_max_size: "L'attribut %{reference_value} du transporteur %{source_label} (%{source_objectid}) est trop grand (%{error_value})" - detail_4_company_1_pattern: "L'attribut %{reference_value} du transporteur %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" - detail_4_company_1_unique: "L'attribut %{reference_value} du transporteur %{source_label} (%{source_objectid}) a une valeur partagée avec le transporteur %{target_0_label} (%{target_0_objectid})" - detail_4_groupofline_1_min_size: "L'attribut %{reference_value} du groupe de lignes %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" - detail_4_groupofline_1_max_size: "L'attribut %{reference_value} du groupe de lignes %{source_label} (%{source_objectid}) est trop grand (%{error_value})" - detail_4_groupofline_1_pattern: "L'attribut %{reference_value} du groupe de lignes %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" - detail_4_groupofline_1_unique: "L'attribut %{reference_value} du groupe de lignes %{source_label} (%{source_objectid}) a une valeur partagée avec le groupe de lignes %{target_0_label} (%{target_0_objectid})" - detail_4_stoparea_1_min_size: "L'attribut %{reference_value} de l'arrêt %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" - detail_4_stoparea_1_max_size: "L'attribut %{reference_value} de l'arrêt %{source_label} (%{source_objectid}) est trop grand (%{error_value})" - detail_4_stoparea_1_pattern: "L'attribut %{reference_value} de l'arrêt %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" - detail_4_stoparea_1_unique: "L'attribut %{reference_value} de l'arrêt %{source_label} (%{source_objectid}) a une valeur partagée avec l'arrêt %{target_0_label} (%{target_0_objectid})" - detail_4_stoparea_2: "L'arrêt physique %{source_label} (%{source_objectid}) n'a pas de parent" - detail_4_accesspoint_1_min_size: "L'attribut %{reference_value} du point d'accès %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" - detail_4_accesspoint_1_max_size: "L'attribut %{reference_value} du point d'accès %{source_label} (%{source_objectid}) est trop grand (%{error_value})" - detail_4_accesspoint_1_pattern: "L'attribut %{reference_value} du point d'accès %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" - detail_4_accesspoint_1_unique: "L'attribut %{reference_value} du point d'accès %{source_label} (%{source_objectid}) a une valeur partagée avec le point d'accès %{target_0_label} (%{target_0_objectid})" - detail_4_accesslink_1_min_size: "L'attribut %{reference_value} du lien d'accès %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" - detail_4_accesslink_1_max_size: "L'attribut %{reference_value} du lien d'accès %{source_label} (%{source_objectid}) est trop grand (%{error_value})" - detail_4_accesslink_1_pattern: "L'attribut %{reference_value} du lien d'accès %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" - detail_4_accesslink_1_unique: "L'attribut %{reference_value} du lien d'accès %{source_label} (%{source_objectid}) a une valeur partagée avec le lien d'accès %{target_0_label} (%{target_0_objectid})" - detail_4_connectionlink_1_min_size: "L'attribut %{reference_value} de la correspondance %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" - detail_4_connectionlink_1_max_size: "L'attribut %{reference_value} de la correspondance %{source_label} (%{source_objectid}) est trop grand (%{error_value})" - detail_4_connectionlink_1_pattern: "L'attribut %{reference_value} de la correspondance %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" - detail_4_connectionlink_1_unique: "L'attribut %{reference_value} de la correspondance %{source_label} (%{source_objectid}) a une valeur partagée avec la correspondance %{target_0_label} (%{target_0_objectid})" - detail_4_connectionlink_2: "Sur la correspondance %{source_label} (%{source_objectid}) au moins l'un des arrêts %{startName} (%{startId}) et %{endName} (%{endId}) n'est pas un arrêt physique" - detail_4_timetable_1_min_size: "L'attribut %{reference_value} du calendrier %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" - detail_4_timetable_1_max_size: "L'attribut %{reference_value} du calendrier %{source_label} (%{source_objectid}) est trop grand (%{error_value})" - detail_4_timetable_1_pattern: "L'attribut %{reference_value} du calendrier %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" - detail_4_timetable_1_unique: "L'attribut %{reference_value} du calendrier %{source_label} (%{source_objectid}) a une valeur partagée avec le calendrier %{target_0_label} (%{target_0_objectid})" - detail_4_line_1_min_size: "L'attribut %{reference_value} de la ligne %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" - detail_4_line_1_max_size: "L'attribut %{reference_value} de la ligne %{source_label} (%{source_objectid}) est trop grand (%{error_value})" - detail_4_line_1_pattern: "L'attribut %{reference_value} de la ligne %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" - detail_4_line_1_unique: "L'attribut %{reference_value} de la ligne %{source_label} (%{source_objectid}) a une valeur partagée avec la ligne %{target_0_label} (%{target_0_objectid})" - detail_4_line_2: "La ligne %{source_label} (%{source_objectid}) a un mode de transport interdit %{error_value}" - detail_4_line_3_1: "La ligne %{source_label} (%{source_objectid}) n'a pas de groupe de lignes" - detail_4_line_3_2: "La ligne %{source_label} (%{source_objectid}) a plusieurs groupes de lignes" - detail_4_line_4_1: "La ligne %{source_label} (%{source_objectid}) n'a pas de séquence d'arrêts" - detail_4_line_4_2: "La ligne %{source_label} (%{source_objectid}) a trop de séquences d'arrêts non associées (%{error_value})" - detail_4_route_1_min_size: "L'attribut %{reference_value} de la séquence d'arrêts %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" - detail_4_route_1_max_size: "L'attribut %{reference_value} de la séquence d'arrêts %{source_label} (%{source_objectid}) est trop grand (%{error_value})" - detail_4_route_1_pattern: "L'attribut %{reference_value} de la séquence d'arrêts %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" - detail_4_route_1_unique: "L'attribut %{reference_value} de la séquence d'arrêts %{source_label} (%{source_objectid}) a une valeur partagée avec la séquence d'arrêts %{target_0_label} (%{target_0_objectid})" - detail_4_journeypattern_1_min_size: "L'attribut %{reference_value} de la mission %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" - detail_4_journeypattern_1_max_size: "L'attribut %{reference_value} de la mission %{source_label} (%{source_objectid}) est trop grand (%{error_value})" - detail_4_journeypattern_1_pattern: "L'attribut %{reference_value} de la mission %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" - detail_4_journeypattern_1_unique: "L'attribut %{reference_value} de la mission %{source_label} (%{source_objectid}) a une valeur partagée avec la mission %{target_0_label} (%{target_0_objectid})" - detail_4_vehiclejourney_1_min_size: "L'attribut %{reference_value} de la course %{source_label} (%{source_objectid}) n'est pas renseigné ou trop petit (%{error_value})" - detail_4_vehiclejourney_1_max_size: "L'attribut %{reference_value} de la course %{source_label} (%{source_objectid}) est trop grand (%{error_value})" - detail_4_vehiclejourney_1_pattern: "L'attribut %{reference_value} de la course %{source_label} (%{source_objectid}) n'est pas au bon format (%{error_value})" - detail_4_vehiclejourney_1_unique: "L'attribut %{reference_value} de la course %{source_label} (%{source_objectid}) a une valeur partagée avec la course %{target_0_label} (%{target_0_objectid})" - detail_4_vehiclejourney_2: "La course %{source_label} (%{source_objectid}) a un mode de transport interdit %{error_value}" - activemodel: - models: - compliance_check_result: - zero: "Validation" - one: "Validation" - other: "Validation" - attributes: - compliance_check_result: - 1-NEPTUNE-XML-1: "Conformité à la syntaxe XML suivant les recommandations du W3C." - 1-NEPTUNE-XML-2: "Conformité au schéma défini par la XSD du profil TRIDENT/NEPTUNE." - 2-NEPTUNE-Common-1: "Unicité des éléments objectId des différents objets d'un lot de fichiers Neptune." - 2-NEPTUNE-Common-2: "Unicité des éléments regitrationNumber des différents objets d'un lot de fichiers Neptune." - 2-NEPTUNE-Network-1: "Correcte référence à des lignes <Line> dans version du réseau <PTNetwork>." - 2-NEPTUNE-GroupOfLine-1: "Correcte référence à des lignes <Line> dans groupe de lignes <GroupOfLine>." - 2-NEPTUNE-StopArea-1: "Correcte référence à des arrêts <StopArea> et/ou à des points d'arrêt sur parcours <StopPoint> dans les arrêts <StopArea>." - 2-NEPTUNE-StopArea-2: "Correcte référence à des arrêts <StopArea> dans les arrêts <StopArea> de type StopPlace." - 2-NEPTUNE-StopArea-3: "Correcte référence à des arrêts <StopArea> dans les arrêts <StopArea> de type CommercialStopPoint." - 2-NEPTUNE-StopArea-4: "Correcte référence à des points d'arrêt sur parcours <StopPoint> dans les arrêts <StopArea> de type BoardingPosition ou Quay." - 2-NEPTUNE-StopArea-5: "Correcte référence à une position géographique <AreaCentroid> dans les arrêts <StopArea> de tout type StopPlace, CommercialStopPoint, BoardingPosition et Quay." - 2-NEPTUNE-StopArea-6: "référenceréciproque d'une position géographique <AreaCentroid> dans les arrêts <StopArea> de tout type StopPlace, CommercialStopPoint, BoardingPosition et Quay." - 2-NEPTUNE-ITL-1: "Correcte référence à des arrêts <StopArea> dans les arrêts <StopArea> de type ITL." - 2-NEPTUNE-ITL-2: "Correcte référence à des arrêts <StopArea> de type ITL dans la classe d’objets <ITL>." - 2-NEPTUNE-ITL-3: "Correcte référence à des arrêts <StopArea> dans la classe d’objets <ITL>." - 2-NEPTUNE-ITL-4: "Vérification du type de référence à des arrêts <StopArea> type ITL dans la classe d’objets <ITL>." - 2-NEPTUNE-ITL-5: "Bonne référence à la ligne <Line> dans la classe d’objets <ITL>." - 2-NEPTUNE-AreaCentroid-1: "Correcte référence à des arrêts <StopArea> dans la classe d’objets <AreaCentroid>." - 2-NEPTUNE-AreaCentroid-2: "Vérification du modèle de projection de référence utilisé." - 2-NEPTUNE-ConnectionLink-1: "Correcte référence aux arrêts <StopArea> définissant des tronçons de correspondance <ConnectionLink>." - 2-NEPTUNE-AccessPoint-1: "Correcte référence à un arrêt <StopArea> dans les accès <AccessPoint>." - 2-NEPTUNE-AccessPoint-2: "Correcte référence à un arrêt <StopArea> dans les accès <AccessPoint>." - 2-NEPTUNE-AccessPoint-3: "Existence de liens d'accès <AccessLink> sur les accès <AccessPoint>." - 2-NEPTUNE-AccessPoint-4: "Existence de liens d'accès <AccessLink> sur les accès <AccessPoint> de type 'in'." - 2-NEPTUNE-AccessPoint-5: "Existence de liens d'accès <AccessLink> sur les accès <AccessPoint> sur les accès de type 'out'." - 2-NEPTUNE-AccessPoint-6: "Existence de liens d'accès <AccessLink> sur les accès <AccessPoint> sur les accès de type 'inout'." - 2-NEPTUNE-AccessPoint-7: "Vérification du modèle de projection de référence utilisé." - 2-NEPTUNE-AccessLink-1: "Correcte référence aux arrêts <StopArea> et accès <AccessPoint> définissant des liens d'accès <AccessLink>." - 2-NEPTUNE-AccessLink-2: "Correcte référence aux arrêts <StopArea> et accès <AccessPoint> définissant des liens d'accès <AccessLink>." - 2-NEPTUNE-Line-1: "Correcte référence au réseau dans l'objet ligne <Line>." - 2-NEPTUNE-Line-2: "Correcte référence à un point d'arrêt sur parcours <StopPoint> comme terminus de ligne <Line>." - 2-NEPTUNE-Line-3: "Correcte référence à un point d'arrêt sur parcours <StopPoint> comme terminus de ligne <Line>." - 2-NEPTUNE-Line-4: "Correcte référence aux séquences d'arrêts <ChouetteRoute> dans l'objet ligne <Line>." - 2-NEPTUNE-Line-5: "Correcte référence aux séquences d'arrêts <ChouetteRoute> dans l'objet ligne <Line>." - 2-NEPTUNE-Route-1: "Existence des missions <JourneyPattern> référencées par la séquence d'arrêt <ChouetteRoute>." - 2-NEPTUNE-Route-2: "Existence des tronçons commerciaux <PtLink> référencés par la séquence d'arrêt <ChouetteRoute>." - 2-NEPTUNE-Route-3: "Existence de la séquence opposée <ChouetteRoute> référencée par la séquence d'arrêt <ChouetteRoute>." - 2-NEPTUNE-Route-4: "Correcte référence à un tronçon commercial <PtLink> dans une séquence d'arrêts <ChouetteRoute>." - 2-NEPTUNE-Route-5: "Vérification que tous les points d'arrêts sur parcours sont rattachés à une séquence d'arrêts <ChouetteRoute> au départ d'un tronçon commercial <PtLink> et/ou à l'arrivée d'un autre tronçon commercial <PtLink> de la même séquence d'arrêts." - 2-NEPTUNE-Route-6: "Vérification du correct ordonnancement des points d'arrêts sur parcours <StopPoint> dans le chainage des tronçons <PtLink> d'une séquence d'arrêts <ChouetteRoute>." - 2-NEPTUNE-Route-7: "référence mutuelle des missions <JourneyPattern> et des séquences d'arrêts <ChouetteRoute>." - 2-NEPTUNE-Route-8: "Cohérence des références aux points d'arrêt des missions <JourneyPattern> et des séquences d'arrêts <ChouetteRoute>." - 2-NEPTUNE-Route-9: "Utilité des points d'arrêts sur parcours des séquences d'arrêts <ChouetteRoute>." - 2-NEPTUNE-Route-10: "référence d'une séquence d'arrêts <ChouetteRoute> à une séquence d'arrêts opposée." - 2-NEPTUNE-Route-11: "Cohérence des sens de la référence d'une séquence d'arrêts <ChouetteRoute> à une séquence d'arrêts opposée." - 2-NEPTUNE-Route-12: "Cohérence des terminus de la référence d'une séquence d'arrêts <ChouetteRoute> à une séquence d'arrêts opposée." - 2-NEPTUNE-PtLink-1: "Existence des arrêts <StopPoint> référencés par les tronçons commerciaux <PTLink>." - 2-NEPTUNE-JourneyPattern-1: "Existence de la séquence d'arrêt <ChouetteRoute> référencée par la mission <JourneyPattern>." - 2-NEPTUNE-JourneyPattern-2: "Existence des arrêts <StopPoint> référencés par la mission <JourneyPattern>." - 2-NEPTUNE-JourneyPattern-3: "Existence de la ligne <Line> référencée par la mission <JourneyPattern>." - 2-NEPTUNE-StopPoint-1: "Existence de la ligne <Line> référencée par l'arrêt <StopPoint>." - 2-NEPTUNE-StopPoint-2: "Existence du réseau <PTNetwork> référence par l'arrêt <StopPoint>." - 2-NEPTUNE-StopPoint-3: "Existence de l'arrêt <StopArea> référencé par l'arrêt <StopPoint>." - 2-NEPTUNE-StopPoint-4: "Vérification du modèle de projection de référence utilisé." - 2-NEPTUNE-Timetable-1: "Utilité des calendriers." - 2-NEPTUNE-Timetable-2: "Utilité des calendriers." - 2-NEPTUNE-VehicleJourney-1: "Existence de la séquence d'arrêt <ChouetteRoute> référencée par la course <VehicleJourney>." - 2-NEPTUNE-VehicleJourney-2: "Existence de la mission <JourneyPattern> référencée par la course <VehicleJourney>." - 2-NEPTUNE-VehicleJourney-3: "Existence de la ligne <Line> référencée par la course <VehicleJourney>." - 2-NEPTUNE-VehicleJourney-4: "Existence de l'opérateur <Company> référencé par la course <VehicleJourney>." - 2-NEPTUNE-VehicleJourney-5: "Existence de la tranche horaire <TimeSlot> référencée par la course <VehicleJourney>." - 2-NEPTUNE-VehicleJourney-6: "Cohérence entre la course, la mission et la séquence d'arrêts." - 2-NEPTUNE-VehicleJourney-7: "Utilité des missions" - 2-NEPTUNE-VehicleJourneyAtStop-1: "Existence de l'arrêt <StopPoint> référencé par l'horaire <VehicleJourneyAtStop>." - 2-NEPTUNE-VehicleJourneyAtStop-2: "Existence de la course <VehicleJourney> référenceé par l'horaire <VehicleJourneyAtStop>." - 2-NEPTUNE-VehicleJourneyAtStop-3: "adéquation des horaires de la course à la séquence d'arrêts." - 2-NEPTUNE-VehicleJourneyAtStop-4: "adéquation des horaires de la course à la mission." - 2-NEPTUNE-Facility-1: "Existence de l'arrêt <StopArea> référencé par l'équipement <Facility>." - 2-NEPTUNE-Facility-2: "Existence de l'arrêt <StopArea> référencé par l'équipement <Facility>." - 2-NEPTUNE-Facility-3: "Existence de la ligne <Line> référencée par l'équipement <Facility>." - 2-NEPTUNE-Facility-4: "Existence de la correspondance <ConnectionLink> référencée par l'équipement <Facility>." - 2-NEPTUNE-Facility-5: "Existence de l'arrêt <StopPoint> référencé par l'équipement <Facility>." - 2-NEPTUNE-Facility-6: "Vérification du modèle de projection de référence utilisé." - 3-StopArea-1: "Vérification de la géolocalisation de tous les arrêts hors ITL" - 3-StopArea-2: "Vérification que 2 arrêts de noms différents en dehors d'un même regroupement d'arrêts ne sont pas trop proches" - 3-StopArea-3: "Vérification de l'unicité des arrêts" - 3-StopArea-4: "Vérification de la géolocalisation des arrêts" - 3-StopArea-5: "Vérification de la position relative des arrêts et de leur parent" - 3-AccessPoint-1: "Vérification de la géolocalisation de tous les accès" - 3-AccessPoint-2: "Vérification que deux accès de nom différents ne sont pas trop proches" - 3-AccessPoint-3: "Vérification de la proximité entre les accès et leur arrêt de rattachement" - 3-ConnectionLink-1: "Vérification de la proximité entre les deux arrêts d'une correspondance" - 3-ConnectionLink-2: "Vérification de la cohérence entre la distance fournie sur la correspondance et la distance géographique entre les deux arrêts de la correspondance" - 3-ConnectionLink-3: "Vérification de la vitesse de parcours entre les deux arrêts d'une correspondance" - 3-AccessLink-1: "Vérification de la proximité entre les deux extrémités d'un lien d'accès" - 3-AccessLink-2: "Vérification de la cohérence entre la distance fournie sur le lien d'accès et la distance géographique entre les deux extrémités du lien d'accès" - 3-AccessLink-3: "Vérification de la vitesse de parcours entre les deux extrémités d'un lien d'accès" - 3-Line-1: "Vérification de la non homonymie des lignes" - 3-Line-2: "Vérification de la présence de séquences d'arrêts sur la ligne" - 3-Route-1: "Vérification de la succession des arrêts de la séquence" - 3-Route-2: "Vérification de la séquence inverse" - 3-Route-3: "Vérification de la distance entre deux arrêts successifs de la séquence" - 3-Route-4: "Vérification de double définition de séquences" - 3-Route-5: "Vérification de séquences sans séquence opposée" - 3-Route-6: "Vérification de la présence d'arrêts dans la séquence" - 3-Route-7: "Vérification de la présence de missions" - 3-Route-8: "Vérification de l'utilisation des arrêts par les missions" - 3-Route-9: "Vérification de l’existence d’une mission passant par tous les arrêts de la séquence" - 3-JourneyPattern-1: "Vérification de double définition de missions" - 3-VehicleJourney-1: "Vérification de la chronologie des horaires de passage à un arrêt" - 3-VehicleJourney-2: "Vérification de la vitesse de transfert entre deux arrêts" - 3-VehicleJourney-3: "Vérification de la cohérence des courses successives desservant deux mêmes arrêts" - 3-VehicleJourney-4: "Vérification de l'affectation des courses à un calendrier" - 3-Facility-1: "Vérification de la géolocalisation de tous les accès" - 3-Facility-2: "Vérification de la proximité entre les équipements et leur arrêt de rattachement" - 4-Network-1: "Vérification de contraintes sur les attributs des réseaux" - 4-Company-1: "Vérification de contraintes sur les attributs des transporteurs" - 4-GroupOfLine-1: "Vérification de contraintes sur les attributs des groupes de lignes" - 4-StopArea-1: "Vérification de contraintes sur les attributs des arrêts" - 4-StopArea-2: "Vérification de l'existance d'un arrêt commercial pour les arrêts physiques" - 4-StopArea-3: "Vérification de la cohérence entre les noms de communes et leur code INSEE" - 4-AccessPoint-1: "Vérification de contraintes sur les attributs des accès" - 4-AccessLink-1: "Vérification de contraintes sur les attributs des liens d'accès" - 4-ConnectionLink-1: "Vérification de contraintes sur les attributs des correspondances" - 4-ConnectionLink-2: "Vérification des type d'arrêts en correspondance" - 4-Timetable-1: "Vérification de contraintes sur les attributs des calendiers" - 4-Line-1: "Vérification de contraintes sur les attributs des lignes" - 4-Line-2: "Vérification des modes de transport des lignes" - 4-Line-3: "Vérification des groupes de lignes d'une ligne" - 4-Line-4: "Vérification des séquences d'arrêts d'une ligne" - 4-Route-1: "Vérification de contraintes sur les attributs des séquences d'arrêt" - 4-JourneyPattern-1: "Vérification de contraintes sur les attributs des missions" - 4-VehicleJourney-1: "Vérification de contraintes sur les attributs des courses" - 4-VehicleJourney-2: "Vérification des modes de transport des courses" - severity: "Severity" - status: "Status" - rule_level: "Level" - rule_target: "Object" - rule_number: "Step" - rule_code: "Code" - violation_count: "errors" - violation_count_txt: "Number of errors" - objects: "Objects in violations" - detail: "Detail" - title: "Test title" - object: "Error object" - resource: "Resources of the error object" - url: "URL" - first_violations: "First violations" fr: compliance_check_results: errors: 'Erreurs' @@ -368,11 +23,49 @@ fr: ## NEPTUNE detail_1_neptune_xml_1: "%{source_label} : %{error_value}" detail_1_neptune_xml_2: "%{source_label} : %{error_value}" + + ## GTFS + detail_1_gtfs_csv_1: "le fichier %{filename} est inexploitable" + detail_1-GTFS-CSV-2: "le fichier %{filename} est inexploitable" + detail_1-GTFS-CSV-3: "le fichier %{filename} contient un enête vide" + detail_1-GTFS-CSV-4: "le fichier %{filename} contient des entêtes en double" + detail_1-GTFS-CSV-5: "la ligne du fichier %{filename} ne respecet pas la syntaxe CSV" + detail_1-GTFS-CSV-6: "le fichier %{filename} contient des balises HTML" + detail_1-GTFS-CSV-7: "la valeur '%{error_value}' contient des espaces aux extrémités" + + detail_1_gtfs_common_1: "le fichier %{filename} est obligatoire" + detail_1_gtfs_common_2: "l'un des deux fichiers calendar.txt ou calendar_dates.txt est obligatoire" + detail_1_gtfs_common_3: "le fichier %{filename} optionnel n'est pas présent" + detail_1_gtfs_common_4: "le fichier %{filename} n'est pas traité" + + detail_1_gtfs_common_5: "le fichier %{filename} obligatoire doit définir au moins une entrée" + detail_1_gtfs_common_6: "l'un des deux fichiers calendar.txt ou calendar_dates.txt doit définir au moins une entrée" + detail_1_gtfs_common_7: "le fichier %{filename} optionnel ne contient aucune entrée" + + detail_1_gtfs_common_8: "la valeur %{error_value} est définie plusieurs fois pour la colonne " + detail_1_gtfs_common_9: "la colonne est obligatoire" + detail_1_gtfs_common_10: "la colonne agency_id devrait être présente dans le fichier %{filename}" + detail_1_gtfs_common_11: "la colonne %{error_value} n'est pas exploitée dans le fichier %{filename}" + + detail_1_gtfs_common_12: "Contrôle de la présence des données obligatoires" + # 1-GTFS-Common-4-2: "Contrôle de l'affectation d'au moins un jour à un calendrier" + detail_1_gtfs_common_13: "Contrôle de la présence de la colonne agency_id si plusieurs agences sont définies" + detail_1_gtfs_common_14: "Contrôle de la présence de la colonne agency_id même si une seule agence est définie" + #1-GTFS-Common-4-5: "Contrôle de la présence du binôme horaires départ et arrivées" + detail_1_gtfs_common_15: "Contrôle de la présence d'une donnée sur valeur d'une autre" + #1-GTFS-Common-4-7: "Contrôle de la valeur d'une donnée sur valeur d'une autre" + + detail_1_gtfs_common_16: "Contrôle du type des données" + + detail_1_gtfs_route_1: "les colonnes ne sont pas définies" + detail_1_gtfs_route_2: "Contrôle de la présence de données dans route_long_name ou route_short_name" + #### level 2 ## NEPTUNE detail_2_neptune_common_1: "L'élément %{source_objectid} a des attributs qui diffèrent entre les différents fichiers qui le définissent" detail_2_neptune_common_2: "L'élément %{source_objectid} partage l'attribut RegistrationNumber = %{error_value} avec un autre objet de même type" detail_2_neptune_network_1: "La ligne %{source_objectid} est absente de la liste des lignes du réseau %{target_0_objectid}" + detail_2_neptune_network_2: "Le réseau %{source_objectid} a un type de source non validee : %{error_value}, remplacé par %{reference_value}" detail_2_neptune_groupofline_1: "La ligne %{source_objectid} est absente de la liste des lignes du du groupe de lignes %{target_0_objectid}" detail_2_neptune_stoparea_1: "Le fils (contains = %{error_value}) de l'arrêt %{source_objectid} n'est pas de type StopArea ni StopPoint" detail_2_neptune_stoparea_2: "L'arrêt %{source_objectid} de type %{reference_value} ne peut contenir que des arrêts de type StopPlace ou CommercialStopPoint, or un des arrêts contenus (contains = %{target_0_objectid}) est de type %{error_value}" @@ -402,6 +95,7 @@ fr: detail_2_neptune_line_3: "La ligne %{source_objectid} référence un point d'arrêt (lineEnd = %{error_value}) qui n'est pas terminus d'une séquence d'arrêts" detail_2_neptune_line_4: "La ligne %{source_objectid} référence une séquence d'arrêt (routeId = %{error_value}) inexistante" detail_2_neptune_line_5: "La séquence d'arrêts (routeId = %{target_0_objectid}) n'est pas référencée par la ligne %{source_objectid}" + detail_2_neptune_line_6: "La ligne %{source_objectid} ne renseigne aucun des champs name, number ou publishedName" detail_2_neptune_route_1: "La séquence d'arrêts %{source_objectid} référence une mission (journeyPatternId = %{error_value}) inexistante" detail_2_neptune_route_2: "La séquence d'arrêts %{source_objectid} référence un tronçon (ptLinkId = %{error_value}) inexistant" detail_2_neptune_route_3: "La séquence retour (waybackRouteId = %{error_value}) de la séquence d'arrêts %{source_objectid} n'existe pas" @@ -425,6 +119,7 @@ fr: detail_2_neptune_stoppoint_4: "Le point d'arrêt %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide" detail_2_neptune_timetable_1: "Le calendrier (<Timetable>) %{source_objectid} ne référence aucune course existante" detail_2_neptune_timetable_2: "La course %{source_objectid} n'est référencée dans aucun calendrier (<Timetable>)" + detail_2_neptune_timetable_3: "Le calendrier (<Timetable>) %{source_objectid} contient une période invalide" detail_2_neptune_vehiclejourney_1: "La course %{source_objectid} référence une séquence d'arrêts (routeId = %{error_value}) inexistante" detail_2_neptune_vehiclejourney_2: "La course %{source_objectid} référence une mission (journeyPatternId = %{error_value}) inexistante" detail_2_neptune_vehiclejourney_3: "La course %{source_objectid} référence une ligne (lineIdShortcut = %{error_value}) inexistante" @@ -432,6 +127,7 @@ fr: detail_2_neptune_vehiclejourney_5: "La course %{source_objectid} référence une fréquence horaire (timeSlotId = %{error_value}) inexistante" detail_2_neptune_vehiclejourney_6: "La course %{source_objectid} référence une mission %{error_value} incompatible de la séquence d'arrêts %{reference_value}" detail_2_neptune_vehiclejourney_7: "La mission %{source_objectid} n'est référencée par aucune course" + detail_2_neptune_vehiclejourney_8: "La course %{source_objectid} doit référencer une mission si la séquence d'arrêt en possède plusieurs" detail_2_neptune_vehiclejourneyatstop_1: "La course %{source_objectid} fournit un horaire sur un point d'arrêt (stopPointId = %{error_value}) inexistant" detail_2_neptune_vehiclejourneyatstop_2: "Un horaire de la course %{source_objectid} référence une autre course : vehicleJourneyId = %{error_value}" detail_2_neptune_vehiclejourneyatstop_3: "La course %{source_objectid} ne fournit pas les horaires des points d'arrêts selon l'ordre de la séquence d'arrêts %{error_value}" @@ -442,6 +138,57 @@ fr: detail_2_neptune_facility_4: "L'équipement %{source_objectid} référence une correspondance (connectionLinkId = %{error_value} inexistante" detail_2_neptune_facility_5: "L'équipement %{source_objectid} référence un point d'arrêt (stopPointId = %{error_value} inexistant" detail_2_neptune_facility_6: "L'équipement %{source_objectid} utilise un référentiel géographique (longLatType = %{error_value}) invalide" + ## GTFS + detail_2_gtfs_common_1: "" + detail_2_gtfs_common_2: "" + detail_2_gtfs_common_3: "" + detail_2_gtfs_agency_1: "" + detail_2_gtfs_agency_2: "" + detail_2_gtfs_stop_1: "" + detail_2_gtfs_stop_2: "" + detail_2_gtfs_stop_3: "" + detail_2_gtfs_stop_4: "" + detail_2_gtfs_stop_5: "" + detail_2_gtfs_stop_6: "" + detail_2_gtfs_route_1: "" + detail_2_gtfs_route_2: "" + detail_2_gtfs_route_3: "" + detail_2_gtfs_route_4: "" + detail_2_gtfs_route_5: "" + detail_2_gtfs_route_6: "" + detail_2_gtfs_route_7: "non défini" + detail_2_gtfs_route_8: "" + detail_2_gtfs_route_9: "" + detail_2_gtfs_route_10: "" + detail_2_gtfs_route_11: "" + detail_2_gtfs_route_12: "" + detail_2_gtfs_trip_1: "" + detail_2_gtfs_trip_2: "" + detail_2_gtfs_trip_3: "" + detail_2_gtfs_trip_4: "" + detail_2_gtfs_trip_5: "" + detail_2_gtfs_trip_6: "" + detail_2_gtfs_trip_7: "" + detail_2_gtfs_stoptime_1: "" + detail_2_gtfs_stoptime_2: "" + detail_2_gtfs_stoptime_3: "" + detail_2_gtfs_stoptime_4: "" + detail_2_gtfs_stoptime_5: "" + detail_2_gtfs_stoptime_6: "" + detail_2_gtfs_stoptime_7: "" + detail_2_gtfs_stoptime_8: "" + detail_2_gtfs_stoptime_9: "" + detail_2_gtfs_calendar_1: "" + detail_2_gtfs_calendar_2: "" + detail_2_gtfs_calendar_3: "" + detail_2_gtfs_calendar_4: "" + detail_2_gtfs_calendar_5: "" + detail_2_gtfs_calendar_6: "" + detail_2_gtfs_frequency_1: "" + detail_2_gtfs_frequency_2: "" + detail_2_gtfs_transfer_1: "" + detail_2_gtfs_transfer_2: "" + #### level 3 detail_3_stoparea_1: "L'arrêt %{source_label} (%{source_objectid}) n'est pas géolocalisé" detail_3_stoparea_2: "L'arrêt %{source_label} (%{source_objectid}) est localisé trop près de l'arrêt %{target_0_label} (%{target_0_objectid}) : distance %{error_value} < %{reference_value}" @@ -549,11 +296,13 @@ fr: other: "Validations" attributes: compliance_check_result: + ## Neptune 1-NEPTUNE-XML-1: "Conformité à la syntaxe XML suivant les recommandations du W3C." 1-NEPTUNE-XML-2: "Conformité au schéma défini par la XSD du profil TRIDENT/NEPTUNE." 2-NEPTUNE-Common-1: "Unicité des éléments objectId des différents objets d'un lot de fichiers Neptune." 2-NEPTUNE-Common-2: "Unicité des éléments regitrationNumber des différents objets d'un lot de fichiers Neptune." 2-NEPTUNE-Network-1: "Correcte référence à des lignes <Line> dans version du réseau <PTNetwork>." + 2-NEPTUNE-Network-2: "Valeur autorisée pour le type de source <SourceType> dans version du réseau <PTNetwork>." 2-NEPTUNE-GroupOfLine-1: "Correcte référence à des lignes <Line> dans groupe de lignes <GroupOfLine>." 2-NEPTUNE-StopArea-1: "Correcte référence à des arrêts <StopArea> et/ou à des points d'arrêt sur parcours <StopPoint> dans les arrêts <StopArea>." 2-NEPTUNE-StopArea-2: "Correcte référence à des arrêts <StopArea> dans les arrêts <StopArea> de type StopPlace." @@ -583,6 +332,7 @@ fr: 2-NEPTUNE-Line-3: "Correcte référence à un point d'arrêt sur parcours <StopPoint> comme terminus de ligne <Line>." 2-NEPTUNE-Line-4: "Correcte référence aux séquences d'arrêts <ChouetteRoute> dans l'objet ligne <Line>." 2-NEPTUNE-Line-5: "Correcte référence aux séquences d'arrêts <ChouetteRoute> dans l'objet ligne <Line>." + 2-NEPTUNE-Line-6: "Présence d'au moins une valeur parmi <name>,<number> ou <publishedName> dans l'objet ligne <Line>." 2-NEPTUNE-Route-1: "Existence des missions <JourneyPattern> référencées par la séquence d'arrêt <ChouetteRoute>." 2-NEPTUNE-Route-2: "Existence des tronçons commerciaux <PtLink> référencés par la séquence d'arrêt <ChouetteRoute>." 2-NEPTUNE-Route-3: "Existence de la séquence opposée <ChouetteRoute> référencée par la séquence d'arrêt <ChouetteRoute>." @@ -605,6 +355,7 @@ fr: 2-NEPTUNE-StopPoint-4: "Vérification du modèle de projection de référence utilisé." 2-NEPTUNE-Timetable-1: "Utilité des calendriers." 2-NEPTUNE-Timetable-2: "Utilité des calendriers." + 2-NEPTUNE-Timetable-2: "Validité des dates de début et de fin des périodes des calendriers" 2-NEPTUNE-VehicleJourney-1: "Existence de la séquence d'arrêt <ChouetteRoute> référencée par la course <VehicleJourney>." 2-NEPTUNE-VehicleJourney-2: "Existence de la mission <JourneyPattern> référencée par la course <VehicleJourney>." 2-NEPTUNE-VehicleJourney-3: "Existence de la ligne <Line> référencée par la course <VehicleJourney>." @@ -612,6 +363,7 @@ fr: 2-NEPTUNE-VehicleJourney-5: "Existence de la tranche horaire <TimeSlot> référencée par la course <VehicleJourney>." 2-NEPTUNE-VehicleJourney-6: "Cohérence entre la course, la mission et la séquence d'arrêts." 2-NEPTUNE-VehicleJourney-7: "Utilité des missions" + 2-NEPTUNE-VehicleJourney-8: "Mission implicite" 2-NEPTUNE-VehicleJourneyAtStop-1: "Existence de l'arrêt <StopPoint> référencé par l'horaire <VehicleJourneyAtStop>." 2-NEPTUNE-VehicleJourneyAtStop-2: "Existence de la course <VehicleJourney> référenceé par l'horaire <VehicleJourneyAtStop>." 2-NEPTUNE-VehicleJourneyAtStop-3: "adéquation des horaires de la course à la séquence d'arrêts." @@ -622,6 +374,95 @@ fr: 2-NEPTUNE-Facility-4: "Existence de la correspondance <ConnectionLink> référencée par l'équipement <Facility>." 2-NEPTUNE-Facility-5: "Existence de l'arrêt <StopPoint> référencé par l'équipement <Facility>." 2-NEPTUNE-Facility-6: "Vérification du modèle de projection de référence utilisé." + + ## GTFS + 1-GTFS-CSV-1: "Vérification de la lecture du fichier" + 1-GTFS-CSV-2: "Vérification de la syntaxe d'une ligne" + 1-GTFS-CSV-3: "Vérification de la syntaxe des entêtes" + 1-GTFS-CSV-4: "Vérification de la non présence de doublons dans les entêtes" + 1-GTFS-CSV-5: "Vérification de la syntaxe CSV GTFS du fichier" + 1-GTFS-CSV-6: "Vérification de la non présence de balise HTML" + 1-GTFS-CSV-7: "Vérification de la non présence d'espace en début ou fin de colonne" + + 1-GTFS-Common-1: "Contrôle de la présence des fichiers obligatoires" + 1-GTFS-Common-2: "Contrôle de la présence des fichiers calendar ou calendar_dates" + 1-GTFS-Common-3: "Contrôle de la présence des fichiers optionnels" + 1-GTFS-Common-4: "Contrôle de la présence des fichiers non traités" + + 1-GTFS-Common-5: "Contrôle de la présence de données dans les fichiers obligatoires" + 1-GTFS-Common-6: "Contrôle de la présence de données dans les fichiers calendar ou calendar_dates" + 1-GTFS-Common-7: "Contrôle de la présence de données dans les fichiers optionnels" + + 1-GTFS-Common-8: "Contrôle de l'unicité des identifiants" + 1-GTFS-Common-9: "Contrôle de la présence des colonnes obligatoires" + 1-GTFS-Route-1: "Contrôle de la présence des colonnes obligatoires conditionnelles" + 1-GTFS-Common-10: "Contrôle de la présence des colonnes qui devraient être obligatoires " + 1-GTFS-Common-11: "Contrôle de la présence de colonnes non traités" + + 1-GTFS-Common-12: "Contrôle de la présence des données obligatoires" + # 1-GTFS-Common-4-2: "Contrôle de l'affectation d'au moins un jour à un calendrier" + 1-GTFS-Common-13: "Contrôle de la présence de la colonne agency_id si plusieurs agences sont définies" + 1-GTFS-Common-14: "Contrôle de la présence de la colonne agency_id même si une seule agence est définie" + #1-GTFS-Common-4-5: "Contrôle de la présence du binôme horaires départ et arrivées" + 1-GTFS-Common-15: "Contrôle de la présence d'une donnée sur valeur d'une autre" + #1-GTFS-Common-4-7: "Contrôle de la valeur d'une donnée sur valeur d'une autre" + + 1-GTFS-Common-16: "Contrôle du type des données" + + 1-GTFS-Route-1: "Contrôle de la présence des colonnes obligatoires conditionnelles" + 1-GTFS-Route-2: "Contrôle de la présence de données dans route_long_name ou route_short_name" + + 2-GTFS-Common-1: "Vérification de la taille des valeurs d'identifiant" + 2-GTFS-Common-2: "Vérification de la taille des valeurs des textes courts" + 2-GTFS-Common-3: "Vérification de la taille des valeurs des textes longs" + 2-GTFS-Agency-1: "Vérification de l'utilité des entrées agency" + 2-GTFS-Agency-2: "Vérification de la valeur de la colonne agency_id" + 2-GTFS-Stop-1: "Vérification de l'existence du stop référencé par parent_station" + 2-GTFS-Stop-2: "Vérification du type du parent_station" + 2-GTFS-Stop-3: "Vérification de la desserte du stop" + 2-GTFS-Stop-4: "Vérification de la non redondance des valeurs stop_name et stop_desc" + 2-GTFS-Stop-5: "Vérification de la pertinence de la valeur stop_url par rapport aux valeurs agency_url et route_url" + 2-GTFS-Stop-6: "Vérification de l'utilité de la colonne location_type" + 2-GTFS-Route-1: "Vérification de la non redondance des valeurs route_short_name et route_long_name" + 2-GTFS-Route-2: "Vérification de la présence des valeurs de agency_id" + 2-GTFS-Route-3: "Vérification de l'existence de l'agency référencée par agency_id" + 2-GTFS-Route-4: "Vérification de l'utilité des entrées route" + 2-GTFS-Route-5: "Vérification de l'unicité de désignation (route_short_name, route_long_name)" + 2-GTFS-Route-6: "Vérification de la longueur du champ route_short_name" + 2-GTFS-Route-7: "non défini" + 2-GTFS-Route-8: "Vérification de la non inclusion de route_short_name dans route_long_name" + 2-GTFS-Route-9: "Vérification du contraste des couleurs" + 2-GTFS-Route-10: "Vérification de la non redondance de la valeur route_desc par rapport aux valeurs route_short_name et route_long_name" + 2-GTFS-Route-11: "Vérification de la non présence d'une route inversant les valeurs route_short_name et route_long_name d'une autre" + 2-GTFS-Route-12: "Vérification de la pertinence de la valeur route_url par rapport aux valeurs agency_url" + 2-GTFS-Trip-1: "Vérification de la présence des valeurs de route_id" + 2-GTFS-Trip-2: "Vérification de la présence des valeurs de service_id" + 2-GTFS-Trip-3: "Vérification de la présence des valeurs de shape_id" + 2-GTFS-Trip-4: "Vérification de la non unicité des valeurs de block_id" + 2-GTFS-Trip-5: "Vérification de l'utilité des entrées trip" + 2-GTFS-Trip-6: "Vérification de la longueur des trips (minimum 2 horaires)" + 2-GTFS-Trip-7: "Vérification de la présence des valeurs de direction_id" + 2-GTFS-StopTime-1: "Vérification de la présence des valeurs de trip_id" + 2-GTFS-StopTime-2: "Vérification de la présence des valeurs de stop_id" + 2-GTFS-StopTime-3: "Vérification de la chronologie des horaires d'arrivé et départ" + 2-GTFS-StopTime-4: "Vérification de la présence des horaires d'arrivé et départ du premier stoptime d'un trip" + 2-GTFS-StopTime-5: "Vérification de la présence des horaires d'arrivé et départ du dernier stoptime d'un trip" + 2-GTFS-StopTime-6: "Vérification de la chronologie des horaires selon stop_sequence" + 2-GTFS-StopTime-7: "Vérification du non conflit des valeurs pick_type et drop_off_type" + 2-GTFS-StopTime-8: "Vérification de la croissance de la valeur shape_dist_travel selon stop_sequence" + 2-GTFS-StopTime-9: "Vérification du type du stop référencé par stop_id" + 2-GTFS-Calendar-1: "Vérification de la chronologie des plages horaires" + 2-GTFS-Calendar-2: "Vérification de la validité d'au moins un jour" + 2-GTFS-Calendar-3: "Vérification de la présence d'au moins un jour valide" + 2-GTFS-Calendar-4: "Vérification de l'utilité de la définition d'un jour exclu" + 2-GTFS-Calendar-5: "Vérification de la non obsolécence des calendriers" + 2-GTFS-Calendar-6: "Vérification de la non obsolécence future des calendriers" + 2-GTFS-Frequency-1: "Vérification de la chronologie des plages de fréquence" + 2-GTFS-Frequency-2: "Vérification du non chevauchement des plages d'un même trip" + 2-GTFS-Transfer-1: "Vérification de l'existance du stop référencé par from_stop_id" + 2-GTFS-Transfer-2: "Vérification de l'existance du stop référencé par to_stop_id" + + ## COMMON 3-StopArea-1: "Vérification de la géolocalisation de tous les arrêts hors ITL" 3-StopArea-2: "Vérification que 2 arrêts de noms différents en dehors d'un même regroupement d'arrêts ne sont pas trop proches" 3-StopArea-3: "Vérification de l'unicité des arrêts" diff --git a/config/locales/en.yml b/config/locales/en.yml index 4ebdcc94c..019e6dc0b 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,6 +1,7 @@ en: "true": "Yes" "false": "No" + "unknown": "Unknown" time: formats: hour: "%Hh%M" diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 6522fa211..696ae21a6 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1,6 +1,7 @@ fr: "true": "Oui" "false": "Non" + "unknown": "Non précisé" time: formats: hour: "%Hh%M" diff --git a/config/locales/group_of_lines.yml b/config/locales/group_of_lines.yml index d84c62682..d92cc3410 100644 --- a/config/locales/group_of_lines.yml +++ b/config/locales/group_of_lines.yml @@ -36,27 +36,27 @@ en: formtastic: titles: group_of_line: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "Positif integer." objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" neptune: group_of_line: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "Positif integer." objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" netex: group_of_line: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "Positif integer." objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" gtfs: group_of_line: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "Positif integer." objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" hub: group_of_lines: - name: "Only alphanumerical or underscore characters. Maximum length = 75." + name: "maximum 75 characters" registration_number: "Positif integer, unique key, of no more than 8 digits." objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character. Maximum length of the unique key = 6." @@ -98,27 +98,27 @@ fr: formtastic: titles: group_of_line: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "Entier positif." objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" neptune: group_of_line: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "Entier positif." objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" netex: group_of_line: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "Entier positif." objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" gtfs: group_of_line: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "Entier positif." objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" hub: group_of_lines: - name: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 75." + name: "maximum 75 caractères" registration_number: "Entier positif, clé unique, d'un maximum de 8 chiffres." objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'. Longueur maximale de la clé unique = 6." diff --git a/config/locales/journey_patterns.yml b/config/locales/journey_patterns.yml index 8d76778ef..6afe48666 100644 --- a/config/locales/journey_patterns.yml +++ b/config/locales/journey_patterns.yml @@ -42,27 +42,27 @@ en: formtastic: titles: journey_pattern: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "Positif integer." objectid: "[prefix]:JourneyPattern:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" neptune: journey_pattern: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "Positif integer." objectid: "[prefix]:JourneyPattern:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" netex: journey_pattern: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "Positif integer." objectid: "[prefix]:JourneyPattern:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" gtfs: journey_pattern: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "Positif integer." objectid: "[prefix]:JourneyPattern:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" hub: journey_pattern: - name: "Only alphanumerical or underscore characters. Maximum length = 75." + name: "Maximum length = 75." registration_number: "Positif integer, unique key, of no more than 8 digits." objectid: "[prefix]:JourneyPattern:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character. Maximum length of the unique key = 30." @@ -110,26 +110,26 @@ fr: formtastic: titles: journey_pattern: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "Entier positif." objectid: "[prefixe]:JourneyPattern:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" neptune: journey_pattern: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "Entier positif." objectid: "[prefixe]:JourneyPattern:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" netex: journey_pattern: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "Entier positif." objectid: "[prefixe]:JourneyPattern:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" gtfs: journey_pattern: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "Entier positif." objectid: "[prefixe]:JourneyPattern:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" hub: journey_pattern: - name: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 75." + name: "Longueur maximale = 75." registration_number: "Entier positif, clé unique, d'un maximum de 8 chiffres." objectid: "[prefixe]:JourneyPattern:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'. Longueur maximale de la clé unique = 30." diff --git a/config/locales/lines.yml b/config/locales/lines.yml deleted file mode 100644 index 331c09d1c..000000000 --- a/config/locales/lines.yml +++ /dev/null @@ -1,233 +0,0 @@ -en: - lines: - actions: - new: "Add a new line" - edit: "Edit this line" - destroy: "Remove this line" - destroy_confirm: "Are you sure you want destroy this line?" - destroy_selection_confirm: "Are you sure you want destroy those lines?" - import: "Import lines" - export_kml: "Export KML line" - export__kml_all: "Export KML lines" - export_hub: "Export HUB line" - export__hub_all: "Export HUB lines" - new: - title: "Add a new line" - edit: - title: "Update line %{line}" - show: - title: "Line %{line}" - itineraries: "Line's route list" - group_of_lines: "Groups of lines" - index: - title: "Lines" - name_or_number: "Search by name or number" - no_networks: "No networks" - no_companies: "No companies" - no_group_of_lines: "No group of lines" - all_networks: "All networks" - all_companies: "All companies" - all_group_of_lines: "All group of lines" - multi_selection: "Multiple selection" - multi_selection_enable: "Enable multiple selection" - multi_selection_disable: "Disable multiple selection" - delete_selected: "Delete lines" - export_selected: "Export lines" - select_all: "Select all" - deselect_all: "Deselect all" - unset: "undefined" - advanced_search: "Advanced Search" - color: "Colors" - form: - group_of_lines: "Associated groups of lines" - no_group_of_line: "No group of line" - several_group_of_lines: "%{count} groups of lines" - activerecord: - models: - line: - zero: "line" - one: "line" - other: "lines" - attributes: - line: - network: "Network" - company: "Company" - registration_number: "Registration number" - name: "Name" - published_name: "Published name" - number: "Number" - transport_mode: "Transport mode" - url: "Web page" - color: "Line color" - text_color: "Text color" - mobility_restricted_suitability: "PRM accessibility" - flexible_service: "On demond transportation" - unspecified_mrs: "Not specified" - accessible: "Accessible" - not_accessible: "Not accessible" - unspecified_fs: "Not specified" - on_demaond_fs: "On demond service" - regular_fs: "Regular service" - number_of_vj: "Total number of vehicle journeys" - number_of_fs_vj: "Number of on demond vehicle journeys" - number_of_mrs_vj: "Number of accessible vehicle journeys" - number_of_non_fs_vj: "Number of non on demond vehicle journeys" - number_of_non_mrs_vj: "Number of non accessible vehicle journeys" - number_of_null_fs_vj: "Number of unspecified on demond vehicle journeys" - number_of_null_mrs_vj: "Number of unspecified accessible vehicle journeys" - default_fs_msg: "These vehicle journeys are considered as regular" - group_of_line: "Group of lines" - comment: "Comments" - objectid: "Neptune identifier" - object_version: "Version" - creation_time: "Created on" - creator_id: "Created by" - footnotes: "Footnotes" - formtastic: - titles: - line: - name: "Only alphanumerical or underscore characters." - registration_number: "only alphanumerical or underscore characters" - objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" - number: "" - neptune: - line: - name: "Only alphanumerical or underscore characters." - registration_number: "only alphanumerical or underscore characters" - objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" - number: "" - netex: - line: - name: "Only alphanumerical or underscore characters." - registration_number: "only alphanumerical or underscore characters" - objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" - number: "" - gtfs: - line: - name: "Only alphanumerical or underscore characters." - registration_number: "only alphanumerical or underscore characters" - objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" - number: "" - hub: - line: - name: "Only alphanumerical or underscore characters. Maximum length = 75." - registration_number: "Positif integer, unique key, of no more than 8 digits." - objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character. Maximum length of the unique key = 14." - number: "Only alphanumerical or underscore characters. Maximum length = 6." - -fr: - lines: - actions: - new: "Ajouter une ligne" - edit: "Modifier cette ligne" - destroy: "Supprimer cette ligne" - destroy_confirm: "Etes vous sûr de supprimer cette ligne ?" - destroy_selection_confirm: "Etes vous sûr de supprimer cette sélection de lignes ?" - import: "Importer des lignes" - export_kml: "Export KML de la ligne" - export_kml_all: "Export KML des lignes" - export_hub: "Export HUB de la ligne" - export_hub_all: "Export HUB des lignes" - new: - title: "Ajouter une ligne" - edit: - title: "Modifier la ligne %{line}" - show: - title: "Ligne %{line}" - itineraries: "Liste des séquences d'arrêts de la ligne" - group_of_lines: "Groupes de lignes" - index: - name_or_number: "Recherche par nom ou indice" - title: "Lignes" - no_networks: "Aucun réseaux" - no_companies: "Aucun transporteurs" - no_group_of_lines: "Aucun groupes de ligne" - all_networks: "Tous les réseaux" - all_companies: "Tous les transporteurs" - all_group_of_lines: "Tous les groupes de ligne" - multi_selection: "Sélection multiple" - multi_selection_enable: "Activer la sélection multiple" - multi_selection_disable: "Désactiver la sélection multiple" - delete_selected: "Supprimer les lignes" - export_selected: "Exporter les lignes" - select_all: "Tout sélectionner" - deselect_all: "Tout désélectionner" - unset: "non défini" - advanced_search: "Recherche avancée" - color: "Couleurs" - form: - group_of_lines: "Groupes de lignes associés" - no_group_of_line: "Aucun groupe de lignes" - several_group_of_lines: "%{count} groupes of lignes" - activerecord: - models: - line: - zero: "ligne" - one: "ligne" - other: "lignes" - attributes: - line: - network: "Réseau" - company: "Transporteur" - registration_number: "Numéro d'enregistrement" - name: "Nom" - published_name: "Nom public" - number: "Indice" - transport_mode: "Mode de transport" - url: "Page web associée" - color: "Couleur du tracé" - text_color: "Couleur du texte" - mobility_restricted_suitability: "Accessibilité PMR" - flexible_service: "Transport à la demande" - unspecified_mrs: "Non spécifié" - accessible: "Accessible" - not_accessible: "Non accessible" - unspecified_fs: "Non spécifié" - on_demaond_fs: "Service à la demande" - regular_fs: "Service régulier" - number_of_vj: "Nombre total de courses" - number_of_fs_vj: "Nombre de courses à la demande" - number_of_mrs_vj: "Nombre de courses accessibles" - number_of_non_fs_vj: "Nombre de courses régulières" - number_of_non_mrs_vj: "Nombre de courses non accessibles" - number_of_null_fs_vj: "Nombre de courses sans spécification de type de service" - number_of_null_mrs_vj: "Nombre de courses sans spécification d'accessibilité" - default_fs_msg: "Ces courses sont considérées régulières" - group_of_line: "Groupe de lignes" - comment: "Commentaire" - objectid: "Identifiant Neptune" - object_version: "Version" - creation_time: "Créé le" - creator_id: "Créé par" - footnotes: "Notes de bas de page" - formtastic: - titles: - line: - name: "Caractères autorisés : alphanumériques et 'souligné'." - registration_number: "caractères autorisés : alphanumériques et 'souligné'" - objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" - number: "" - neptune: - line: - name: "Caractères autorisés : alphanumériques et 'souligné'." - registration_number: "caractères autorisés : alphanumériques et 'souligné'" - objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" - number: "" - netex: - line: - name: "Caractères autorisés : alphanumériques et 'souligné'." - registration_number: "caractères autorisés : alphanumériques et 'souligné'" - objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" - number: "" - gtfs: - line: - name: "Caractères autorisés : alphanumériques et 'souligné'." - registration_number: "caractères autorisés : alphanumériques et 'souligné'" - objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" - number: "" - hub: - line: - name: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 75." - registration_number: "Entier positif, clé unique, d'un maximum de 8 chiffres." - objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'. Longueur maximale de la clé unique = 14." - number: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 6." diff --git a/config/locales/lines_en.yml b/config/locales/lines_en.yml new file mode 100644 index 000000000..baaad6bbf --- /dev/null +++ b/config/locales/lines_en.yml @@ -0,0 +1,118 @@ +en: + lines: + actions: + new: "Add a new line" + edit: "Edit this line" + destroy: "Remove this line" + destroy_confirm: "Are you sure you want destroy this line?" + destroy_selection_confirm: "Are you sure you want destroy those lines?" + import: "Import lines" + export_kml: "Export KML line" + export__kml_all: "Export KML lines" + export_hub: "Export HUB line" + export__hub_all: "Export HUB lines" + new: + title: "Add a new line" + edit: + title: "Update line %{line}" + show: + title: "Line %{line}" + itineraries: "Line's route list" + group_of_lines: "Groups of lines" + index: + title: "Lines" + name_or_number: "Search by name or number" + no_networks: "No networks" + no_companies: "No companies" + no_group_of_lines: "No group of lines" + all_networks: "All networks" + all_companies: "All companies" + all_group_of_lines: "All group of lines" + multi_selection: "Multiple selection" + multi_selection_enable: "Enable multiple selection" + multi_selection_disable: "Disable multiple selection" + delete_selected: "Delete lines" + export_selected: "Export lines" + select_all: "Select all" + deselect_all: "Deselect all" + unset: "undefined" + advanced_search: "Advanced Search" + color: "Colors" + form: + group_of_lines: "Associated groups of lines" + no_group_of_line: "No group of line" + several_group_of_lines: "%{count} groups of lines" + activerecord: + models: + line: + zero: "line" + one: "line" + other: "lines" + attributes: + line: + network: "Network" + company: "Company" + registration_number: "Registration number" + name: "Name" + published_name: "Published name" + number: "Number" + transport_mode: "Transport mode" + url: "Web page" + color: "Line color" + text_color: "Text color" + mobility_restricted_suitability: "PRM accessibility" + flexible_service: "On demond transportation" + unspecified_mrs: "Not specified" + accessible: "Accessible" + not_accessible: "Not accessible" + unspecified_fs: "Not specified" + on_demaond_fs: "On demond service" + regular_fs: "Regular service" + number_of_vj: "Total number of vehicle journeys" + number_of_fs_vj: "Number of on demond vehicle journeys" + number_of_mrs_vj: "Number of accessible vehicle journeys" + number_of_non_fs_vj: "Number of non on demond vehicle journeys" + number_of_non_mrs_vj: "Number of non accessible vehicle journeys" + number_of_null_fs_vj: "Number of unspecified on demond vehicle journeys" + number_of_null_mrs_vj: "Number of unspecified accessible vehicle journeys" + default_fs_msg: "These vehicle journeys are considered as regular" + group_of_line: "Group of lines" + comment: "Comments" + objectid: "Neptune identifier" + object_version: "Version" + creation_time: "Created on" + creator_id: "Created by" + footnotes: "Footnotes" + stable_id: External permanent idenifier" + formtastic: + titles: + line: + name: "" + registration_number: "only alphanumerical or underscore characters" + objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" + number: "" + neptune: + line: + name: "" + registration_number: "only alphanumerical or underscore characters" + objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" + number: "" + netex: + line: + name: "" + registration_number: "only alphanumerical or underscore characters" + objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" + number: "" + gtfs: + line: + name: "" + registration_number: "only alphanumerical or underscore characters" + objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" + number: "" + hub: + line: + name: "maximum 75 characters" + registration_number: "Positif integer, unique key, of no more than 8 digits." + objectid: "[prefix]:Line:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character. Maximum length of the unique key = 14." + number: "Only alphanumerical or underscore characters. Maximum length = 6." + diff --git a/config/locales/lines_fr.yml b/config/locales/lines_fr.yml new file mode 100644 index 000000000..3661f6856 --- /dev/null +++ b/config/locales/lines_fr.yml @@ -0,0 +1,117 @@ +fr: + lines: + actions: + new: "Ajouter une ligne" + edit: "Modifier cette ligne" + destroy: "Supprimer cette ligne" + destroy_confirm: "Etes vous sûr de supprimer cette ligne ?" + destroy_selection_confirm: "Etes vous sûr de supprimer cette sélection de lignes ?" + import: "Importer des lignes" + export_kml: "Export KML de la ligne" + export_kml_all: "Export KML des lignes" + export_hub: "Export HUB de la ligne" + export_hub_all: "Export HUB des lignes" + new: + title: "Ajouter une ligne" + edit: + title: "Modifier la ligne %{line}" + show: + title: "Ligne %{line}" + itineraries: "Liste des séquences d'arrêts de la ligne" + group_of_lines: "Groupes de lignes" + index: + name_or_number: "Recherche par nom ou indice" + title: "Lignes" + no_networks: "Aucun réseaux" + no_companies: "Aucun transporteurs" + no_group_of_lines: "Aucun groupes de ligne" + all_networks: "Tous les réseaux" + all_companies: "Tous les transporteurs" + all_group_of_lines: "Tous les groupes de ligne" + multi_selection: "Sélection multiple" + multi_selection_enable: "Activer la sélection multiple" + multi_selection_disable: "Désactiver la sélection multiple" + delete_selected: "Supprimer les lignes" + export_selected: "Exporter les lignes" + select_all: "Tout sélectionner" + deselect_all: "Tout désélectionner" + unset: "non défini" + advanced_search: "Recherche avancée" + color: "Couleurs" + form: + group_of_lines: "Groupes de lignes associés" + no_group_of_line: "Aucun groupe de lignes" + several_group_of_lines: "%{count} groupes of lignes" + activerecord: + models: + line: + zero: "ligne" + one: "ligne" + other: "lignes" + attributes: + line: + network: "Réseau" + company: "Transporteur" + registration_number: "Numéro d'enregistrement" + name: "Nom" + published_name: "Nom public" + number: "Indice" + transport_mode: "Mode de transport" + url: "Page web associée" + color: "Couleur du tracé" + text_color: "Couleur du texte" + mobility_restricted_suitability: "Accessibilité PMR" + flexible_service: "Transport à la demande" + unspecified_mrs: "Non spécifié" + accessible: "Accessible" + not_accessible: "Non accessible" + unspecified_fs: "Non spécifié" + on_demaond_fs: "Service à la demande" + regular_fs: "Service régulier" + number_of_vj: "Nombre total de courses" + number_of_fs_vj: "Nombre de courses à la demande" + number_of_mrs_vj: "Nombre de courses accessibles" + number_of_non_fs_vj: "Nombre de courses régulières" + number_of_non_mrs_vj: "Nombre de courses non accessibles" + number_of_null_fs_vj: "Nombre de courses sans spécification de type de service" + number_of_null_mrs_vj: "Nombre de courses sans spécification d'accessibilité" + default_fs_msg: "Ces courses sont considérées régulières" + group_of_line: "Groupe de lignes" + comment: "Commentaire" + objectid: "Identifiant Neptune" + object_version: "Version" + creation_time: "Créé le" + creator_id: "Créé par" + footnotes: "Notes de bas de page" + stable_id: "Identifiant externe pérenne" + formtastic: + titles: + line: + name: "" + registration_number: "caractères autorisés : alphanumériques et 'souligné'" + objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" + number: "" + neptune: + line: + name: "" + registration_number: "caractères autorisés : alphanumériques et 'souligné'" + objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" + number: "" + netex: + line: + name: "" + registration_number: "caractères autorisés : alphanumériques et 'souligné'" + objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" + number: "" + gtfs: + line: + name: "" + registration_number: "caractères autorisés : alphanumériques et 'souligné'" + objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" + number: "" + hub: + line: + name: "maximum 75 caractères" + registration_number: "Entier positif, clé unique, d'un maximum de 8 chiffres." + objectid: "[prefixe]:Line:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'. Longueur maximale de la clé unique = 14." + number: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 6." diff --git a/config/locales/networks.yml b/config/locales/networks.yml index 127d2b920..c6c3eb401 100644 --- a/config/locales/networks.yml +++ b/config/locales/networks.yml @@ -27,7 +27,7 @@ en: comment: "Comments" version_date: "Date of this network's version" description: "Description" - source_type: "Source type" + source_type_name: "Source type" source_name: "Source name" source_identifier: "Source identifier" objectid: "Neptune identifier" @@ -37,29 +37,29 @@ en: formtastic: titles: network: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "only alphanumerical or underscore characters" - objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" + objectid: "[prefix]:PTNetwork:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" neptune: network: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "only alphanumerical or underscore characters" - objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" + objectid: "[prefix]:PTNetwork:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" netex: network: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "only alphanumerical or underscore characters" - objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" + objectid: "[prefix]:PTNetwork:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" gtfs: network: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "only alphanumerical or underscore characters" - objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" + objectid: "[prefix]:PTNetwork:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" hub: network: - name: "Only alphanumerical or underscore characters. Maximum length = 75." + name: "maximum 75 characters" registration_number: "Positif integer, unique key, of no more than 8 digits." - objectid: "[prefix]:GroupOfLine:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character. Maximum length of the unique key = 3." + objectid: "[prefix]:PTNetwork:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character. Maximum length of the unique key = 3." fr: networks: @@ -90,7 +90,7 @@ fr: comment: "Commentaire" version_date: "Date de version" description: "Description" - source_type: "Type de système origine" + source_type_name: "Type de système origine" source_name: "Nom du système origine" source_identifier: "Identifiant du système origine" objectid: "Identifiant Neptune" @@ -100,27 +100,27 @@ fr: formtastic: titles: network: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "caractères autorisés : alphanumériques et 'souligné'" - objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" + objectid: "[prefixe]:PTNetwork:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" neptune: network: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "caractères autorisés : alphanumériques et 'souligné'" - objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" + objectid: "[prefixe]:PTNetwork:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" netex: network: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "caractères autorisés : alphanumériques et 'souligné'" - objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" + objectid: "[prefixe]:PTNetwork:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" gtfs: network: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "caractères autorisés : alphanumériques et 'souligné'" - objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" + objectid: "[prefixe]:PTNetwork:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" hub: network: - name: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 75." + name: "maximum 75 caractères" registration_number: "Entier positif, clé unique, d'un maximum de 8 chiffres." - objectid: "[prefixe]:GroupOfLine:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'. Longueur maximale de la clé unique = 3." + objectid: "[prefixe]:PTNetwork:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'. Longueur maximale de la clé unique = 3." diff --git a/config/locales/source_types.yml b/config/locales/source_types.yml new file mode 100644 index 000000000..8e419c9bd --- /dev/null +++ b/config/locales/source_types.yml @@ -0,0 +1,27 @@ +en: + source_types: + name: "Source type" + label: + public_and_private_utilities: "public and private utilities" + road_authorities: "road authorities" + transit_operator: "transit operator" + public_transport: "public transport" + passenger_transport_coordinating_authority: "passenger transport coordinating authority" + travel_information_service_provider: "travel information service provider" + travel_agency: "travel_agency" + individual_subject_of_travel_itinerary: "individual subject of travel itinerary" + other_information: "other information" + +fr: + source_types: + name: "Type de source" + label: + public_and_private_utilities: "Service public ou privé" + road_authorities: "Autorité routière" + transit_operator: "Exploitant de transport public" + public_transport: "Transport public" + passenger_transport_coordinating_authority: "Autorité organisatrice de transport public" + travel_information_service_provider: "Opérateur de voyage (voyagiste/tour operator ...)" + travel_agency: "Agence de voyage" + individual_subject_of_travel_itinerary: "Voyageur individuel" + other_information: "Autre source d'information" diff --git a/config/locales/stop_areas.yml b/config/locales/stop_areas.yml index 227a3dbb6..36d18d70d 100644 --- a/config/locales/stop_areas.yml +++ b/config/locales/stop_areas.yml @@ -111,7 +111,7 @@ en: formtastic: titles: stop_area: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "only alphanumerical or underscore characters" objectid: "[prefix]:StopArea:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" nearest_topic_name: "" @@ -122,7 +122,7 @@ en: projection_xy: "x,y in secondary referential, dot for decimal separator" neptune: stop_area: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "only alphanumerical or underscore characters" objectid: "[prefix]:StopArea:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" nearest_topic_name: "" @@ -133,7 +133,7 @@ en: projection_xy: "x,y in secondary referential, dot for decimal separator" netex: stop_area: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "only alphanumerical or underscore characters" objectid: "[prefix]:StopArea:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" nearest_topic_name: "" @@ -144,7 +144,7 @@ en: projection_xy: "x,y in secondary referential, dot for decimal separator" gtfs: stop_area: - name: "Only alphanumerical or underscore characters." + name: "" registration_number: "only alphanumerical or underscore characters" objectid: "[prefix]:StopArea:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" nearest_topic_name: "" @@ -155,13 +155,13 @@ en: projection_xy: "x,y in secondary referential, dot for decimal separator" hub: stop_area: - name: "Only alphanumerical or underscore characters. Maximum length = 75." + name: "Maximum length = 255." registration_number: "Positif integer, unique key, of no more than 8 digits. Mandatory for physical stops." objectid: "[prefix]:StopArea:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character. Maximum length of the unique key = 12." - nearest_topic_name: "Only alphanumerical or underscore characters. Maximum length = 255 for logical stops and 60 for physical stops." - city_name: "Only alphanumerical or underscore characters. Mandatory for physical stops. Maximum length = 75." + nearest_topic_name: "Maximum length = 255 for logical stops and 60 for physical stops." + city_name: "Mandatory for physical stops. Maximum length = 75." zip_code: "Positif integer 5 digits. Mandatory for physical stops." - comment: "Only alphanumerical or underscore characters. Maximum length = 255." + comment: "Maximum length = 255." coordinates: "Coordinates are mandatory." projection_xy: "x,y in secondary referential, dot for decimal separator" @@ -280,7 +280,7 @@ fr: formtastic: titles: stop_area: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "caractères autorisés : alphanumériques et 'souligné'" 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: "" @@ -291,7 +291,7 @@ fr: projection_xy: "x,y dans le référentiel secondaire, le séparateur de décimales est 'point'" neptune: stop_area: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "caractères autorisés : alphanumériques et 'souligné'" 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: "" @@ -302,7 +302,7 @@ fr: projection_xy: "x,y dans le référentiel secondaire, le séparateur de décimales est 'point'" netex: stop_area: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "caractères autorisés : alphanumériques et 'souligné'" 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: "" @@ -313,7 +313,7 @@ fr: projection_xy: "x,y dans le référentiel secondaire, le séparateur de décimales est 'point'" gtfs: stop_area: - name: "Caractères autorisés : alphanumériques et 'souligné'." + name: "" registration_number: "caractères autorisés : alphanumériques et 'souligné'" 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: "" @@ -324,13 +324,13 @@ fr: projection_xy: "x,y dans le référentiel secondaire, le séparateur de décimales est 'point'" hub: stop_area: - name: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 75." + name: "Longueur maximale = 75." registration_number: "Entier positif, clé unique, d'un maximum de 8 chiffres. Obligatoire pour les arrêts physiques." 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'. Longueur maximale de la clé unique = 12." - nearest_topic_name: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 255 pour les arrêts logiques et 60 pour les arrêts physiques." - city_name: "Caractères autorisés : alphanumériques et 'souligné'. Obligatoire pour les arrêts physiques. Longueur maximale = 80." + nearest_topic_name: "Longueur maximale = 255 pour les arrêts logiques et 60 pour les arrêts physiques." + city_name: "Obligatoire pour les arrêts physiques. Longueur maximale = 80." zip_code: "Entier positif de 8 chiffres. Obligatoire pour les arrêts physiques." - comment: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 255." + 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'" diff --git a/config/locales/time_tables.yml b/config/locales/time_tables.yml index b0d469297..b9eb3babf 100644 --- a/config/locales/time_tables.yml +++ b/config/locales/time_tables.yml @@ -84,23 +84,23 @@ en: formtastic: titles: time_table: - comment: "Only alphanumerical or underscore characters." + comment: "" objectid: "[prefix]:Timetable:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" neptune: time_table: - comment: "Only alphanumerical or underscore characters." + comment: "" objectid: "[prefix]:Timetable:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" netex: time_table: - comment: "Only alphanumerical or underscore characters." + comment: "" objectid: "[prefix]:Timetable:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" gtfs: time_table: - comment: "Only alphanumerical or underscore characters." + comment: "" objectid: "[prefix]:Timetable:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character" hub: time_table: - comment: "Only alphanumerical or underscore characters. Maximum length = 75." + comment: "Maximum length = 75." objectid: "[prefix]:Timetable:[unique_key] : prefix contains only alphanumerical or underscore characters, unique_key accepts also minus character. Maximum length of the unique key = 6." placeholders: time_table: @@ -196,23 +196,23 @@ fr: formtastic: titles: time_table: - comment: "Caractères autorisés : alphanumériques et 'souligné'." + comment: "" objectid: "[prefixe]:Timetable:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" neptune: time_table: - comment: "Caractères autorisés : alphanumériques et 'souligné'." + comment: "" objectid: "[prefixe]:Timetable:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" netex: time_table: - comment: "Caractères autorisés : alphanumériques et 'souligné'." + comment: "" objectid: "[prefixe]:Timetable:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" gtfs: time_table: - comment: "Caractères autorisés : alphanumériques et 'souligné'." + comment: "" objectid: "[prefixe]:Timetable:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'" hub: time_table: - comment: "Caractères autorisés : alphanumériques et 'souligné'. Longueur maximale = 75." + comment: "Longueur maximale = 75." objectid: "[prefixe]:Timetable:[clé_unique] caractères autorisés : alphanumériques et 'souligné' pour le préfixe, la clé unique accepte en plus le 'moins'. Longueur maximale de la clé unique = 6." placeholders: time_table: diff --git a/config/locales/vehicle_journeys.yml b/config/locales/vehicle_journeys.yml index 9b872b222..3b18447f4 100644 --- a/config/locales/vehicle_journeys.yml +++ b/config/locales/vehicle_journeys.yml @@ -78,7 +78,7 @@ en: accessible: "Accessible" not_accessible: "Not accessible" unspecified_fs: "Not specified" - on_demaond_fs: "On demond service" + on_demand_fs: "On demand service" regular_fs: "Regular service" published_journey_name: "Published Name" published_journey_identifier: "Published Identifier" @@ -192,7 +192,7 @@ fr: accessible: "Accessible" not_accessible: "Non accessible" unspecified_fs: "Non spécifié" - on_demaond_fs: "Service à la demande" + on_demand_fs: "Service à la demande" regular_fs: "Service régulier" published_journey_name: "Nom public" published_journey_identifier: "Identifiant public" diff --git a/db/migrate/20150922095511_add_stable_id_to_line.ninoxe_engine.rb b/db/migrate/20150922095511_add_stable_id_to_line.ninoxe_engine.rb new file mode 100644 index 000000000..847a15668 --- /dev/null +++ b/db/migrate/20150922095511_add_stable_id_to_line.ninoxe_engine.rb @@ -0,0 +1,8 @@ +# This migration comes from ninoxe_engine (originally 20150922093109) +class AddStableIdToLine < ActiveRecord::Migration + def change + change_table :lines do |t| + t.string :stable_id + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 97bf1836e..b68c3190a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20150526081746) do +ActiveRecord::Schema.define(version: 20150922095511) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -93,7 +93,7 @@ ActiveRecord::Schema.define(version: 20150526081746) do end add_index "companies", ["objectid"], name: "companies_objectid_key", unique: true, using: :btree - add_index "companies", ["registration_number"], name: "companies_registration_number_key", unique: true, using: :btree + add_index "companies", ["registration_number"], name: "companies_registration_number_key", using: :btree create_table "connection_links", force: true do |t| t.integer "departure_id", limit: 8 @@ -237,10 +237,11 @@ ActiveRecord::Schema.define(version: 20150526081746) do t.string "url" t.string "color", limit: 6 t.string "text_color", limit: 6 + t.string "stable_id" end add_index "lines", ["objectid"], name: "lines_objectid_key", unique: true, using: :btree - add_index "lines", ["registration_number"], name: "lines_registration_number_key", unique: true, using: :btree + add_index "lines", ["registration_number"], name: "lines_registration_number_key", using: :btree create_table "networks", force: true do |t| t.string "objectid", null: false @@ -258,7 +259,7 @@ ActiveRecord::Schema.define(version: 20150526081746) do end add_index "networks", ["objectid"], name: "networks_objectid_key", unique: true, using: :btree - add_index "networks", ["registration_number"], name: "networks_registration_number_key", unique: true, using: :btree + add_index "networks", ["registration_number"], name: "networks_registration_number_key", using: :btree create_table "organisations", force: true do |t| t.string "name" diff --git a/lib/ninoxe_extension/hub/company_restrictions.rb b/lib/ninoxe_extension/hub/company_restrictions.rb index 190b63cd2..6cb12f0b6 100644 --- a/lib/ninoxe_extension/hub/company_restrictions.rb +++ b/lib/ninoxe_extension/hub/company_restrictions.rb @@ -9,7 +9,8 @@ module NinoxeExtension::Hub # HUB-7 g.validate :specific_objectid # HUB-8 - g.validates_format_of :name, :with => %r{\A[\w]{1,75}\z} + #g.validates_format_of :name, :with => %r{\A[\w ]{1,75}\z} + g.validates_length_of :name, :minimum => 1, :maximum => 75 # HUB-9 g.validates_format_of :registration_number, :with => %r{\A[\d]{1,8}\z} g.validates_uniqueness_of :registration_number diff --git a/lib/ninoxe_extension/hub/connection_link_restrictions.rb b/lib/ninoxe_extension/hub/connection_link_restrictions.rb index bf433379b..600222455 100644 --- a/lib/ninoxe_extension/hub/connection_link_restrictions.rb +++ b/lib/ninoxe_extension/hub/connection_link_restrictions.rb @@ -6,9 +6,9 @@ module NinoxeExtension::Hub included do include ObjectidRestrictions - with_options if: :hub_restricted? do |jp| + with_options if: :hub_restricted? do |cl| # HUB-34 - jp.validates :link_distance, :numericality => { :max => 10000.0 } + cl.validates :link_distance, :numericality => { :max => 10000.0 } end end end diff --git a/lib/ninoxe_extension/hub/group_of_line_restrictions.rb b/lib/ninoxe_extension/hub/group_of_line_restrictions.rb index d5de71ce0..f8370faf1 100644 --- a/lib/ninoxe_extension/hub/group_of_line_restrictions.rb +++ b/lib/ninoxe_extension/hub/group_of_line_restrictions.rb @@ -10,7 +10,8 @@ module NinoxeExtension::Hub # HUB-11 g.validate :specific_objectid # HUB-12 - g.validates_format_of :name, :with => %r{\A[\w]{1,75}\z} + #g.validates_format_of :name, :with => %r{\A[\w ]{1,75}\z} + g.validates_length_of :name, :minimum => 1, :maximum => 75 # HUB-13 g.validates_format_of :registration_number, :with => %r{\A[\d]{1,8}\z} g.validates_uniqueness_of :registration_number diff --git a/lib/ninoxe_extension/hub/journey_pattern_restrictions.rb b/lib/ninoxe_extension/hub/journey_pattern_restrictions.rb index 448be9665..d4e881d1f 100644 --- a/lib/ninoxe_extension/hub/journey_pattern_restrictions.rb +++ b/lib/ninoxe_extension/hub/journey_pattern_restrictions.rb @@ -12,7 +12,8 @@ module NinoxeExtension::Hub # HUB-40 jp.validates :registration_number, :numericality => { :less_than => 10 ** 8 } # HUB-41 - jp.validates_format_of :name, :with => %r{\A[\w]{0,75}\z} + #jp.validates_format_of :name, :with => %r{\A[\w ]{0,75}\z} + jp.validates_length_of :name, :maximum => 75, :allow_blank => true, :allow_nil => true end end def specific_objectid diff --git a/lib/ninoxe_extension/hub/line_restrictions.rb b/lib/ninoxe_extension/hub/line_restrictions.rb index 616d1fd52..9d8f22112 100644 --- a/lib/ninoxe_extension/hub/line_restrictions.rb +++ b/lib/ninoxe_extension/hub/line_restrictions.rb @@ -14,7 +14,8 @@ module NinoxeExtension::Hub # HUB-16 l.validates_format_of :number, :with => %r{\A[\w]{1,6}\z} # HUB-17 - l.validates_format_of :name, :with => %r{\A[\w]{0,75}\z} + #l.validates_format_of :name, :with => %r{\A[\w ]{0,75}\z} + l.validates_length_of :name, :maximum => 75 # HUB-21 l.validates :registration_number, :numericality => { :less_than => 10 ** 8 } # HUB-22 diff --git a/lib/ninoxe_extension/hub/network_restrictions.rb b/lib/ninoxe_extension/hub/network_restrictions.rb index 7966736ec..b18a6c033 100644 --- a/lib/ninoxe_extension/hub/network_restrictions.rb +++ b/lib/ninoxe_extension/hub/network_restrictions.rb @@ -5,14 +5,15 @@ module NinoxeExtension::Hub included do include ObjectidRestrictions - with_options if: :hub_restricted? do |g| + with_options if: :hub_restricted? do |n| # HUB-3 - g.validate :specific_objectid + n.validate :specific_objectid # HUB-4 - g.validates_format_of :name, :with => %r{\A[\w]{1,75}\z} + #n.validates_format_of :name, :with => %r{\A[\w ]{1,75}\z} + n.validates_length_of :name, :minimum => 1, :maximum => 75 # HUB-5 - g.validates_format_of :registration_number, :with => %r{\A[\d]{1,8}\z} - g.validates_uniqueness_of :registration_number + n.validates_format_of :registration_number, :with => %r{\A[\d]{1,8}\z} + n.validates_uniqueness_of :registration_number end end def specific_objectid diff --git a/lib/ninoxe_extension/hub/objectid_restrictions.rb b/lib/ninoxe_extension/hub/objectid_restrictions.rb index a84e1428f..1fcdb94cb 100644 --- a/lib/ninoxe_extension/hub/objectid_restrictions.rb +++ b/lib/ninoxe_extension/hub/objectid_restrictions.rb @@ -22,7 +22,7 @@ module NinoxeExtension::Hub::ObjectidRestrictions return unless hub_restricted? return true unless third_part_objectid - likes = Chouette::Line.where( "objectid LIKE ?", "%:#{self.third_part_objectid}" ) + likes = self.class.where( "objectid LIKE ?", "%:#{self.third_part_objectid}" ) likes.size.zero? || ( likes.size==1 && likes.first.id==self.id) end end diff --git a/lib/ninoxe_extension/hub/stop_area_restrictions.rb b/lib/ninoxe_extension/hub/stop_area_restrictions.rb index 8701c291c..676dac05e 100644 --- a/lib/ninoxe_extension/hub/stop_area_restrictions.rb +++ b/lib/ninoxe_extension/hub/stop_area_restrictions.rb @@ -10,10 +10,10 @@ module NinoxeExtension::Hub self.area_type=="CommercialStopPoint" end def physical_hub_restricted? - hub_restricted? && commercial? + hub_restricted? && physical? end def commercial_hub_restricted? - hub_restricted? && physical? + hub_restricted? && commercial? end def commercial_and_physical_hub_restricted? physical_hub_restricted? || commercial_hub_restricted? @@ -27,28 +27,34 @@ module NinoxeExtension::Hub with_options if: :commercial_and_physical_hub_restricted? do |sa| - # HUB-23 + # HUB-23 sa.validate :specific_objectid - sa.validates_format_of :name, :with => %r{\A[\w]{1,75}\z} + #sa.validates_format_of :name, :with => %r{\A[\w ]{1,75}\z} + sa.validates_length_of :name, :minimum => 1, :maximum => 75 end + with_options if: :commercial_hub_restricted? do |sa| # HUB-24 - validates_format_of :nearest_topic_name, :with => %r{\A[\w]{0,255}\z} + #sa.validates_format_of :nearest_topic_name, :with => %r{\A[\w ]{0,255}\z} + sa.validates_length_of :nearest_topic_name, :maximum => 255, :allow_blank => true, :allow_nil => true end with_options if: :physical_hub_restricted? do |sa| # HUB-25 - sa.validates_format_of :nearest_topic_name, :with => %r{\A[\w]{0,60}\z} + #sa.validates_format_of :nearest_topic_name, :with => %r{\A[\w ]{0,60}\z} + sa.validates_length_of :nearest_topic_name, :maximum => 60, :allow_blank => true, :allow_nil => true # HUB-28 sa.validates_presence_of :longitude sa.validates_presence_of :latitude # HUB-29 - sa.validates_format_of :city_name, :with => %r{\A[\w]{1,80}\z} + #sa.validates_format_of :city_name, :with => %r{\A[\w ]{1,80}\z} + sa.validates_length_of :city_name, :minimum => 1, :maximum => 80 + # HUB-30 sa.validates_format_of :zip_code, :with => %r{\A[\d]{5}\z} # HUB-31 - sa.validates_format_of :comment, :with => %r{\A[\w]{0,255}\z} - # HUB-32 + # sa.validates_format_of :comment, :with => %r{\A[\w ]{0,255}\z} + sa.validates_length_of :comment, :maximum => 255, :allow_blank => true, :allow_nil => true sa.validates_format_of :registration_number, :with => %r{\A[\w]{1,8}\z}, :allow_blank => true, :allow_nil => true end end diff --git a/lib/ninoxe_extension/hub/time_table_restrictions.rb b/lib/ninoxe_extension/hub/time_table_restrictions.rb index 591810f42..36e6846ae 100644 --- a/lib/ninoxe_extension/hub/time_table_restrictions.rb +++ b/lib/ninoxe_extension/hub/time_table_restrictions.rb @@ -6,11 +6,12 @@ module NinoxeExtension::Hub included do include ObjectidRestrictions - with_options if: :hub_restricted? do |jp| + with_options if: :hub_restricted? do |tt| # HUB-44 - jp.validate :specific_objectid + tt.validate :specific_objectid # HUB-45 - jp.validates_format_of :comment, :with => %r{\A[\w]{0,75}\z} + #tt.validates_format_of :comment, :with => %r{\A[\w ]{0,75}\z} + tt.validates_length_of :comment, :maximum => 75, :allow_blank => true, :allow_nil => true end end def specific_objectid diff --git a/lib/ninoxe_extension/hub/vehicle_journey_restrictions.rb b/lib/ninoxe_extension/hub/vehicle_journey_restrictions.rb index 151123a43..b1a493207 100644 --- a/lib/ninoxe_extension/hub/vehicle_journey_restrictions.rb +++ b/lib/ninoxe_extension/hub/vehicle_journey_restrictions.rb @@ -7,8 +7,8 @@ module NinoxeExtension::Hub include ObjectidRestrictions # HUB-42 - with_options if: :hub_restricted? do |jp| - jp.validate :specific_objectid + with_options if: :hub_restricted? do |vj| + vj.validate :specific_objectid end end def specific_objectid |
