aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZog2018-02-07 11:12:04 +0100
committerLuc Donnet2018-02-09 13:56:54 +0100
commitc20f034b60d39a4bcb56cd61f3fa314c64a8736c (patch)
treea50d80911e6885c38c7e8fb1050635aea8d60d36
parent8e83e4105a46f602d8701e7c70437367126704ff (diff)
downloadchouette-core-c20f034b60d39a4bcb56cd61f3fa314c64a8736c.tar.bz2
Refs #4126 @2h; Add more translations
-rw-r--r--app/assets/stylesheets/components/_tables.sass20
-rw-r--r--app/javascript/vehicle_journeys/components/Navigate.js5
-rw-r--r--app/javascript/vehicle_journeys/components/ToggleArrivals.js2
-rw-r--r--app/javascript/vehicle_journeys/components/Tools.js4
-rw-r--r--app/javascript/vehicle_journeys/components/tools/EditVehicleJourney.js18
-rw-r--r--app/javascript/vehicle_journeys/components/tools/VehicleJourneyInfoButton.js4
-rw-r--r--config/locales/vehicle_journeys.en.yml123
-rw-r--r--config/locales/vehicle_journeys.fr.yml127
8 files changed, 169 insertions, 134 deletions
diff --git a/app/assets/stylesheets/components/_tables.sass b/app/assets/stylesheets/components/_tables.sass
index 5f8b06f09..1e02ad586 100644
--- a/app/assets/stylesheets/components/_tables.sass
+++ b/app/assets/stylesheets/components/_tables.sass
@@ -326,7 +326,25 @@
border-bottom: 2px solid rgba($grey, 0.5)
border-top: 1px solid rgba($grey, 0.5)
text-transform: capitalize
-
+
+ .info-button
+ position: absolute
+ width: 20px
+ height: 20px
+ top: 0
+ right: 0
+ margin: 6px 8px
+ button
+ border: none
+ background: $blue
+ border-radius: 20px
+ width: 100%
+ height: 100%
+ font-size: 12px
+ line-height: 14px
+ color: white
+ outline: none
+
.td
position: relative
padding: 6px 8px
diff --git a/app/javascript/vehicle_journeys/components/Navigate.js b/app/javascript/vehicle_journeys/components/Navigate.js
index 0158b8392..24843babc 100644
--- a/app/javascript/vehicle_journeys/components/Navigate.js
+++ b/app/javascript/vehicle_journeys/components/Navigate.js
@@ -17,8 +17,7 @@ export default function Navigate({ dispatch, vehicleJourneys, pagination, status
if(status.fetchSuccess == true) {
return (
<div className="pagination">
- Liste des horaires {minVJ} à {maxVJ} sur {pagination.totalCount}
-
+ {I18n.t("vehicle_journeys.vehicle_journeys_matrix.pagination", {minVJ, maxVJ, total:pagination.totalCount})}
<form className='page_links' onSubmit={e => {e.preventDefault()}}>
<button
onClick={e => {
@@ -53,4 +52,4 @@ Navigate.propTypes = {
status: PropTypes.object.isRequired,
pagination: PropTypes.object.isRequired,
dispatch: PropTypes.func.isRequired
-} \ No newline at end of file
+}
diff --git a/app/javascript/vehicle_journeys/components/ToggleArrivals.js b/app/javascript/vehicle_journeys/components/ToggleArrivals.js
index 9e7089be5..9a2b0097f 100644
--- a/app/javascript/vehicle_journeys/components/ToggleArrivals.js
+++ b/app/javascript/vehicle_journeys/components/ToggleArrivals.js
@@ -5,7 +5,7 @@ import PropTypes from 'prop-types'
export default function ToggleArrivals({filters, onToggleArrivals}) {
return (
<div className='has_switch form-group inline'>
- <label htmlFor='toggleArrivals' className='control-label'>Afficher et éditer les horaires d'arrivée</label>
+ <label htmlFor='toggleArrivals' className='control-label'>{I18n.t('vehicle_journeys.form.show_arrival_time')}</label>
<div className='form-group'>
<div className='checkbox'>
<label>
diff --git a/app/javascript/vehicle_journeys/components/Tools.js b/app/javascript/vehicle_journeys/components/Tools.js
index ee02e5a68..22ea44283 100644
--- a/app/javascript/vehicle_journeys/components/Tools.js
+++ b/app/javascript/vehicle_journeys/components/Tools.js
@@ -44,8 +44,8 @@ export default class Tools extends Component {
<DeleteVehicleJourneys disabled={!this.hasPolicy("destroy") || !editMode}/>
</ul>
- <span className='info-msg'>{actions.getSelected(vehicleJourneys).length} course(s) sélectionnée(s)</span>
- <button className='btn btn-xs btn-link pull-right' onClick={onCancelSelection}>Annuler la sélection</button>
+ <span className='info-msg'>{I18n.t('vehicle_journeys.vehicle_journeys_matrix.selected_journeys', {count: actions.getSelected(vehicleJourneys).length})}</span>
+ <button className='btn btn-xs btn-link pull-right' onClick={onCancelSelection}>{I18n.t('vehicle_journeys.vehicle_journeys_matrix.cancel_selection')}</button>
</div>
)
}
diff --git a/app/javascript/vehicle_journeys/components/tools/EditVehicleJourney.js b/app/javascript/vehicle_journeys/components/tools/EditVehicleJourney.js
index bcfd4eb41..d3c01f154 100644
--- a/app/javascript/vehicle_journeys/components/tools/EditVehicleJourney.js
+++ b/app/javascript/vehicle_journeys/components/tools/EditVehicleJourney.js
@@ -59,7 +59,7 @@ export default class EditVehicleJourney extends Component {
<div className='modal-dialog'>
<div className='modal-content'>
<div className='modal-header'>
- <h4 className='modal-title'>Informations</h4>
+ <h4 className='modal-title'>{I18n.t('vehicle_journeys.form.infos')}</h4>
<span type="button" className="close modal-close" data-dismiss="modal">&times;</span>
</div>
@@ -69,7 +69,7 @@ export default class EditVehicleJourney extends Component {
<div className='row'>
<div className='col-lg-6 col-md-6 col-sm-6 col-xs-12'>
<div className='form-group'>
- <label className='control-label'>Nom de la course</label>
+ <label className='control-label'>{I18n.attribute_name('vehicle_journey', 'journey_name')}</label>
<input
type='text'
ref='published_journey_name'
@@ -82,7 +82,7 @@ export default class EditVehicleJourney extends Component {
</div>
<div className='col-lg-6 col-md-6 col-sm-6 col-xs-12'>
<div className='form-group'>
- <label className='control-label'>Mission</label>
+ <label className='control-label'>{I18n.attribute_name('vehicle_journey', 'journey_pattern')}</label>
<input
type='text'
className='form-control'
@@ -96,7 +96,7 @@ export default class EditVehicleJourney extends Component {
<div className='row'>
<div className='col-lg-6 col-md-6 col-sm-6 col-xs-12'>
<div className='form-group'>
- <label className='control-label'>Numéro de train</label>
+ <label className='control-label'>{I18n.attribute_name('vehicle_journey', 'company')}</label>
<input
type='text'
ref='published_journey_identifier'
@@ -109,7 +109,7 @@ export default class EditVehicleJourney extends Component {
</div>
<div className='col-lg-6 col-md-6 col-sm-6 col-xs-12'>
<div className='form-group'>
- <label className='control-label'>Transporteur</label>
+ <label className='control-label'>{I18n.attribute_name('vehicle_journey', 'company')}</label>
<CompanySelect2
editModal={this.props.modal.type == "edit"}
editMode={this.editMode()}
@@ -124,7 +124,7 @@ export default class EditVehicleJourney extends Component {
<div className='row'>
<div className='col-lg-6 col-md-6 col-sm-6 col-xs-12'>
<div className='form-group'>
- <label className='control-label'>Mode de transport</label>
+ <label className='control-label'>{I18n.attribute_name('vehicle_journey', 'transport_mode')}</label>
<input
type='text'
className='form-control'
@@ -135,18 +135,18 @@ export default class EditVehicleJourney extends Component {
</div>
<div className='col-lg-6 col-md-6 col-sm-6 col-xs-12'>
<div className='form-group'>
- <label className='control-label'>Sous mode de transport</label>
+ <label className='control-label'>{I18n.attribute_name('vehicle_journey', 'transport_submode')}</label>
<input
type='text'
className='form-control'
- value={window.I18n.fr.enumerize.transport_submode[this.props.modal.modalProps.vehicleJourney.transport_submode]}
+ value={I18n.enumerize('transport_submode', this.props.modal.modalProps.vehicleJourney.transport_submode)}
disabled={true}
/>
</div>
</div>
</div>
<div className='form-group'>
- <label className='control-label'>Signature métier</label>
+ <label className='control-label'>{I18n.attribute_name('vehicle_journey', 'checksum')}</label>
<input
type='text'
ref='checksum'
diff --git a/app/javascript/vehicle_journeys/components/tools/VehicleJourneyInfoButton.js b/app/javascript/vehicle_journeys/components/tools/VehicleJourneyInfoButton.js
index a63a1d701..538bbdbd6 100644
--- a/app/javascript/vehicle_journeys/components/tools/VehicleJourneyInfoButton.js
+++ b/app/javascript/vehicle_journeys/components/tools/VehicleJourneyInfoButton.js
@@ -10,7 +10,7 @@ export default class VehicleJourneyInfoButton extends Component {
render() {
return (
- <li className='st_action'>
+ <div className='info-button'>
<button
type='button'
data-toggle='modal'
@@ -19,7 +19,7 @@ export default class VehicleJourneyInfoButton extends Component {
>
<span className='fa fa-info'></span>
</button>
- </li>
+ </div>
)
}
}
diff --git a/config/locales/vehicle_journeys.en.yml b/config/locales/vehicle_journeys.en.yml
index a1f20a7e8..0c8a75b0c 100644
--- a/config/locales/vehicle_journeys.en.yml
+++ b/config/locales/vehicle_journeys.en.yml
@@ -1,11 +1,14 @@
en:
vehicle_journeys:
vehicle_journeys_matrix:
- line_routes: "Line's routes"
+ cancel_selection: "Cancel Selection"
fetching_error: "There has been a problem fetching the data. Please reload the page to try again."
- show_timetable: 'Show calendar'
- show_purchase_window: 'Show the purchase window'
+ line_routes: "Line's routes"
modal_confirm: 'Do you want to save mofications before moving on to the next page ?'
+ pagination: "Schedules %{minVJ} to %{maxVJ} over %{total}"
+ selected_journeys: "%{count} selected journeys"
+ show_purchase_window: 'Show the purchase window'
+ show_timetable: 'Show calendar'
vehicle_journey:
title_stopless: "Vehicle journey %{name}"
title: "Vehicle journey leaving from %{stop} at %{time}"
@@ -29,52 +32,54 @@ en:
title_stopless: "Update vehicle journey %{name}"
title: "Update vehicle journey %{name} leaving from %{stop} at %{time}"
form:
- stop_title: "Stop"
- departure: "Departure"
+ arrival_at: "Arrival at"
arrival: "Arrival"
departure_at: "Departure at"
- arrival_at: "Arrival at"
- to_arrivals: "Copy departures to arrivals"
- to_departures: "Copy arrivals to departures"
- time_tables: "Associated calendars to vehicle journey"
- slide: "Shift"
- slide_title: "Shift all vehicle passing times"
- set: "Set"
- to: "at"
+ departure: "Departure"
departure_range:
label: Journey departure range
start: Start
end: End
- show_journeys_without_schedule: "Show journeys without schedule"
+ infos: Informations
+ set: "Set"
+ show_arrival_time: "Show and edit arrival times"
show_journeys_with_calendar: "Show journeys with calendar"
- slide_departure: "departure time at first stop"
+ show_journeys_without_schedule: "Show journeys without schedule"
slide_arrival: "arrival time at first stop"
- submit_timed: "Create vehicle journey"
+ slide_departure: "departure time at first stop"
+ slide_title: "Shift all vehicle passing times"
+ slide: "Shift"
+ stop_title: "Stop"
+ submit_frequency_edit: "Edit frequency vehicle journey"
submit_frequency: "Create frequency vehicle journey"
submit_timed_edit: "Edit vehicle journey"
- submit_frequency_edit: "Edit frequency vehicle journey"
+ submit_timed: "Create vehicle journey"
+ time_tables: "Associated calendars to vehicle journey"
+ to_arrivals: "Copy departures to arrivals"
+ to_departures: "Copy arrivals to departures"
+ to: "at"
timeless:
title: "Timeless vehicle journeys"
vehicle_journeys: "Vehicle journeys with times at stop"
vehicles_list: "Vehicle journeys list"
show:
- title: "Vehicle Journey %{vehicle journey}"
- stop_title: "Stop"
- departure: "Departure"
arrival: "Arrival"
- time_tables: "Calendars list"
bounding: "From %{start} to %{end}"
- translation_form: "Vehicle journey translations"
+ departure: "Departure"
journey_frequencies: "Timeband"
+ stop_title: "Stop"
+ time_tables: "Calendars list"
+ title: "Vehicle Journey %{vehicle journey}"
+ translation_form: "Vehicle journey translations"
index:
- title: "Vehicle journeys on route %{route}"
- vehicle_journeys: "Departure's times"
- selection: "Filter on"
- selection_all: "All"
+ advanced_search: "Advanced Search"
select_journey_patterns: "Select journey pattern"
select_time_tables: "Enter a timetable"
+ selection_all: "All"
+ selection: "Filter on"
time_range: "Departure time threshold"
- advanced_search: "Advanced Search"
+ title: "Vehicle journeys on route %{route}"
+ vehicle_journeys: "Departure's times"
time_filter:
time_range_filter: "Filter"
sidebar:
@@ -90,43 +95,47 @@ en:
other: "vehicle journeys"
attributes:
vehicle_journey:
- line: "Line"
- route: "Route"
- journey_pattern: "Journey Pattern"
- journey_pattern_id: "Pattern ID"
- time_tables: "Calendars"
- time_slot: "Time Slot"
- company: "Company"
- number: "Number"
+ accessible: "Accessible"
+ arrival_time: "Arrival"
+ checksum: "Checksum"
comment: "Comments"
- status_value: "Status Value"
- transport_mode: "Transport Mode"
- mobility_restricted_suitability: "PRM accessibility"
+ company: "Company"
+ created_at: Created at
+ creator_id: "Created by"
+ departure_time: "Departure"
+ facility: "Facility"
flexible_service: "On demond transportation"
- unspecified_mrs: "Not specified"
- accessible: "Accessible"
+ footnote_ids: "Footnotes"
+ id: "Journey ID"
+ journey_frequency_ids: "Timeband"
+ journey_name: "Name of the journey"
+ journey_pattern_id: "Pattern ID"
+ journey_pattern: "Journey Pattern"
+ line: "Line"
+ mobility_restricted_suitability: "PRM accessibility"
+ name: "Journey Name"
not_accessible: "Not accessible"
- unspecified_fs: "Not specified"
+ number: "Number"
+ object_version: "Version"
+ objectid: "Neptune identifier"
on_demand_fs: "On demand service"
- regular_fs: "Regular service"
- published_journey_name: "Published Name"
published_journey_identifier: "Published Identifier"
- facility: "Facility"
- vehicle_type_identifier: "Vehicle Type Identifier"
+ published_journey_name: "Published Name"
+ purchase_window: "Purchase availability"
+ regular_fs: "Regular service"
+ route: "Route"
+ status_value: "Status Value"
+ time_slot: "Time Slot"
time_table_ids: "Calendar list"
- vehicle_journey_at_stop_ids: "Time list"
- journey_frequency_ids: "Timeband"
- objectid: "Neptune identifier"
- object_version: "Version"
- created_at: Created at
+ time_tables: "Calendars"
+ train_number: "Train number"
+ transport_mode: "Transport Mode"
+ transport_submode: "Transport Submode"
+ unspecified_fs: "Not specified"
+ unspecified_mrs: "Not specified"
updated_at: Updated at
- creator_id: "Created by"
- footnote_ids: "Footnotes"
- departure_time: "Departure"
- arrival_time: "Arrival"
- purchase_window: "Purchase availability"
- name: "Journey Name"
- id: "Journey ID"
+ vehicle_journey_at_stop_ids: "Time list"
+ vehicle_type_identifier: "Vehicle Type Identifier"
errors:
models:
vehicle_journey:
diff --git a/config/locales/vehicle_journeys.fr.yml b/config/locales/vehicle_journeys.fr.yml
index be5be2382..6bf167234 100644
--- a/config/locales/vehicle_journeys.fr.yml
+++ b/config/locales/vehicle_journeys.fr.yml
@@ -1,11 +1,14 @@
fr:
vehicle_journeys:
vehicle_journeys_matrix:
- line_routes: "Séquences d'arrêts de la ligne"
+ cancel_selection: "Annuler la sélection"
fetching_error: "La récupération des missions a rencontré un problème. Rechargez la page pour tenter de corriger le problème."
- show_timetable: 'Voir le calendrier'
- show_purchase_window: 'Voir le calendrier commercial'
+ line_routes: "Séquences d'arrêts de la ligne"
modal_confirm: 'Voulez-vous valider vos modifications avant de changer de page?'
+ pagination: "Liste des horaires %{minVJ} à %{maxVJ} sur %{total}"
+ selected_journeys: "%{count} course(s) sélectionnée(s)"
+ show_purchase_window: 'Voir le calendrier commercial'
+ show_timetable: 'Voir le calendrier'
vehicle_journey:
title_stopless: "Course %{name}"
title: "Course partant de %{stop} à %{time}"
@@ -29,53 +32,55 @@ fr:
title_stopless: "Editer la course %{name}"
title: "Editer la course partant de %{stop} à %{time}"
form:
- stop_title: "Arrêt"
- departure: "Départ"
- departure_at: "Départ à"
- arrival: "Arrivée"
arrival_at: "Arrivée à"
- to_arrivals: "Copie départs vers arrivées"
- to_arrivals: "Copie départs vers arrivées"
- to_departures: "Copie arrivées vers départs"
- time_tables: "Calendriers associés à la course"
- slide: "Décaler"
- slide_title: "Décaler l'ensemble des horaires de course"
- set: "Fixer"
- to: "à"
+ arrival: "Arrivée"
+ departure_at: "Départ à"
+ departure: "Départ"
departure_range:
label: Plage horaire au départ de la course
start: Début
end: Fin
- show_journeys_without_schedule: "Afficher les courses sans horaires"
+ infos: Informations
+ set: "Fixer"
+ show_arrival_time: "Afficher et éditer les horaires d'arrivée"
show_journeys_with_calendar: "Afficher les courses avec calendrier"
- slide_departure: "horaire de départ au 1° arrêt à"
+ show_journeys_without_schedule: "Afficher les courses sans horaires"
slide_arrival: "horaire d'arrivée au 1° arrêt à"
- submit_timed: "Créer course"
+ slide_departure: "horaire de départ au 1° arrêt à"
+ slide_title: "Décaler l'ensemble des horaires de course"
+ slide: "Décaler"
+ stop_title: "Arrêt"
+ submit_frequency_edit: "Editer course en fréquence"
submit_frequency: "Créer course en fréquence"
submit_timed_edit: "Editer course"
- submit_frequency_edit: "Editer course en fréquence"
+ submit_timed: "Créer course"
+ time_tables: "Calendriers associés à la course"
+ to_arrivals: "Copie départs vers arrivées"
+ to_arrivals: "Copie départs vers arrivées"
+ to_departures: "Copie arrivées vers départs"
+ to: "à"
timeless:
title: "Courses sans horaire"
vehicle_journeys: "Courses ayant des horaires"
vehicles_list: "Liste des courses"
show:
- title: "Course au départ de %{stop} à %{time} sur la séquence %{route}"
- stop_title: "Arrêt"
- departure: "Départ"
arrival: "Arrivée"
- time_tables: "Liste des calendriers"
bounding: "De %{start} à %{end}"
- translation_form: "Cloner la course"
+ departure: "Départ"
journey_frequencies: "Créneau horaire"
+ stop_title: "Arrêt"
+ time_tables: "Liste des calendriers"
+ title: "Course au départ de %{stop} à %{time} sur la séquence %{route}"
+ translation_form: "Cloner la course"
index:
- title: "Horaires de '%{route}'"
- vehicle_journeys: "Horaires de départ aux arrêts"
- selection: "Filtrer sur"
- selection_all: "Tous"
+ advanced_search: "Recherche avancée"
select_journey_patterns: "Sélectionner une mission"
select_time_tables: "Saisir un calendrier"
+ selection_all: "Tous"
+ selection: "Filtrer sur"
time_range: "Seuil horaire au départ"
- advanced_search: "Recherche avancée"
+ title: "Horaires de '%{route}'"
+ vehicle_journeys: "Horaires de départ aux arrêts"
time_filter:
time_range_filter: "Filtrer"
sidebar:
@@ -91,43 +96,47 @@ fr:
other: "courses"
attributes:
vehicle_journey:
- line: "Ligne"
- route: "Séquence d'arrêt"
- journey_pattern: "Mission"
- journey_pattern_id: "ID Mission"
- time_tables: "Calendriers"
- time_slot: "Fréquence"
- company: "Transporteur"
- number: "Numéro"
+ accessible: "Accessible"
+ arrival_time: "Arrivée"
+ checksum: "Signature métier"
comment: "Commentaires"
- status_value: "Etat de trafic"
- transport_mode: "Mode de transport"
- mobility_restricted_suitability: "Accessibilité PMR"
+ company: "Transporteur"
+ created_at: "Créé le"
+ creator_id: "Créé par"
+ departure_time: "Départ"
+ facility: "Equipement"
flexible_service: "Transport à la demande"
- unspecified_mrs: "Non spécifié"
- accessible: "Accessible"
+ footnote_ids: "Notes de bas de page"
+ id: "ID Course"
+ journey_frequency_ids: "Créneau horaire"
+ journey_name: "Nom de la course"
+ journey_pattern_id: "ID Mission"
+ journey_pattern: "Mission"
+ line: "Ligne"
+ mobility_restricted_suitability: "Accessibilité PMR"
+ name: "Nom Course"
not_accessible: "Non accessible"
- unspecified_fs: "Non spécifié"
+ number: "Numéro"
+ object_version: "Version"
+ objectid: "Identifiant Neptune"
on_demand_fs: "Service à la demande"
- regular_fs: "Service régulier"
- published_journey_name: "Nom public"
published_journey_identifier: "Identifiant public"
- facility: "Equipement"
- vehicle_type_identifier: "Type d'identifiant du véhicule"
+ published_journey_name: "Nom public"
+ purchase_window: "Disponibilité commerciale"
+ regular_fs: "Service régulier"
+ route: "Séquence d'arrêt"
+ status_value: "Etat de trafic"
+ time_slot: "Fréquence"
time_table_ids: "Liste des calendriers"
- vehicle_journey_at_stop_ids: "Liste des horaires"
- journey_frequency_ids: "Créneau horaire"
- objectid: "Identifiant Neptune"
- object_version: "Version"
- created_at: "Créé le"
+ time_tables: "Calendriers"
+ train_number: "Numéro de train"
+ transport_mode: "Mode de transport"
+ transport_submode: "Sous-mode de transport"
+ unspecified_fs: "Non spécifié"
+ unspecified_mrs: "Non spécifié"
updated_at: "Edité le"
- creator_id: "Créé par"
- footnote_ids: "Notes de bas de page"
- departure_time: "Départ"
- arrival_time: "Arrivée"
- purchase_window: "Disponibilité commerciale"
- name: "Nom Course"
- id: "ID Course"
+ vehicle_journey_at_stop_ids: "Liste des horaires"
+ vehicle_type_identifier: "Type d'identifiant du véhicule"
errors:
models:
vehicle_journey: