diff --git a/app/assets/javascripts/filters/filters.coffee b/app/assets/javascripts/filters/filters.coffee index 4b0c1498a..36e677925 100644 --- a/app/assets/javascripts/filters/filters.coffee +++ b/app/assets/javascripts/filters/filters.coffee @@ -173,16 +173,24 @@ Application.Filters.filter "eventsReservationsFilter", [ -> filteredElements = [] angular.forEach elements, (element)-> element.start_at = element.availability.start_at if angular.isUndefined(element.start_at) + element.end_at = element.availability.end_at if angular.isUndefined(element.end_at) switch selectedScope when "future" - if new Date(element.start_at) > new Date + if new Date(element.end_at) >= new Date + filteredElements.push(element) + when "future_asc" + if new Date(element.end_at) >= new Date filteredElements.push(element) when "passed" - if new Date(element.start_at) <= new Date + if new Date(element.end_at) <= new Date filteredElements.push(element) else return [] - filteredElements + switch selectedScope + when "future_asc" + filteredElements.reverse() + else + filteredElements else elements ] diff --git a/app/assets/templates/admin/events/monitoring.html.erb b/app/assets/templates/admin/events/monitoring.html.erb index 65b48857c..f8e094d8b 100644 --- a/app/assets/templates/admin/events/monitoring.html.erb +++ b/app/assets/templates/admin/events/monitoring.html.erb @@ -3,6 +3,7 @@ + @@ -11,25 +12,49 @@ {{ 'title' }} {{ 'dates' }} - + {{ 'booking' }} + - - + + + {{ event.title }} - - {{ 'from_DATE' | translate:{DATE:(event.start_date | amDateFormat:'LL')} }} {{ 'to_date' }} {{event.end_date | amDateFormat:'LL'}} -
- {{ 'all_day' }} - - {{ 'from_TIME' | translate:{TIME:(event.start_date | amDateFormat:'LT')} }} - {{ 'to_time' }} - {{event.end_date | amDateFormat:'LT'}} - + + + + + + {{ 'on_DATE' | translate:{DATE:(event.start_date | amDateFormat:'LL')} }} + + {{ 'from_TIME' | translate:{TIME:(event.start_date | amDateFormat:'LT')} }} + {{ 'to_time' }} + {{event.end_date | amDateFormat:'LT'}} + + + + + + {{'from_DATE' | translate:{DATE:(event.start_date | amDateFormat:'LL')} }} + {{'to_date' | translate}} {{event.end_date | amDateFormat:'LL'}} +
+ + {{ 'from_TIME' | translate:{TIME:(event.start_date | amDateFormat:'LT')} }} + {{ 'to_time' }} + {{event.end_date | amDateFormat:'LT'}} + +
- + + + {{ event.nb_total_places - event.nb_free_places }} / {{ event.nb_total_places }} + {{ 'cancelled' }} + {{ 'free_entry' }} + + +
{{ 'view_reservations' | translate }} @@ -47,4 +72,4 @@
{{ 'load_the_next_events' }}
-
\ No newline at end of file + diff --git a/app/assets/templates/events/_form.html.erb b/app/assets/templates/events/_form.html.erb index b99fbf639..e2c4c7cfb 100644 --- a/app/assets/templates/events/_form.html.erb +++ b/app/assets/templates/events/_form.html.erb @@ -78,7 +78,10 @@ @@ -194,14 +197,14 @@
- +
- +
diff --git a/app/assets/templates/events/index.html.erb b/app/assets/templates/events/index.html.erb index f440f8abc..341b53910 100644 --- a/app/assets/templates/events/index.html.erb +++ b/app/assets/templates/events/index.html.erb @@ -55,13 +55,22 @@

{{event.start_date | amDateFormat:'L'}}

{{event.start_date | amDateFormat:'L'}} {{ 'to_date' }} {{event.end_date | amDateFormat:'L'}}

+
{{ 'free_admission' }}
{{ 'full_price_' | translate }} {{event.amount | currency}} / {{ price.category.name }} {{price.amount | currency}}
{{event.event_themes[0].name}} {{event.age_range.name}}
+ +
+ {{event.nb_free_places}} {{ 'still_available' | translate }} + {{ 'sold_out' }} + {{ 'cancelled' }} + {{ 'free_entry' }} +
+
diff --git a/app/assets/templates/events/show.html.erb b/app/assets/templates/events/show.html.erb index 17b611282..382fe0f85 100644 --- a/app/assets/templates/events/show.html.erb +++ b/app/assets/templates/events/show.html.erb @@ -98,7 +98,8 @@
{{ 'tickets_still_availables' | translate }} {{event.nb_free_places}}
-
{{ 'sold_out' }}
+
{{ 'sold_out' }}
+
{{ 'cancelled' }}
{{ 'free_entry' }}
diff --git a/app/assets/templates/home.html.erb b/app/assets/templates/home.html.erb index 2109fd532..0f44dd80d 100644 --- a/app/assets/templates/home.html.erb +++ b/app/assets/templates/home.html.erb @@ -116,18 +116,26 @@ {{ 'from_time_to_time' | translate:{START:(event.start_date | amDateFormat:'LT'), END:(event.end_date | amDateFormat:'LT')} }}
-
- -
- {{ 'free_entry' }} - {{ 'free_admission' }} - {{event.amount | currency}} {{ 'full_price' | translate }} -
{{ 'event_full' }}
-
- -
-
+ +
+
+ +
+ {{ 'still_available' | translate }} {{event.nb_free_places}} + {{ 'free_entry' }} + {{ 'event_full' }} +
+
+
+ +
+ {{ 'free_admission' }} + {{ 'full_price' | translate }} {{event.amount | currency}} +
+
+
+
{{ 'consult' }}
diff --git a/app/controllers/api/events_controller.rb b/app/controllers/api/events_controller.rb index 2410323e9..fb690eae2 100644 --- a/app/controllers/api/events_controller.rb +++ b/app/controllers/api/events_controller.rb @@ -32,8 +32,10 @@ class API::EventsController < API::ApiController def upcoming limit = params[:limit] @events = Event.includes(:event_image, :event_files, :availability, :category) + .where('events.nb_total_places != -1 OR events.nb_total_places IS NULL') .where('availabilities.start_at >= ?', Time.now) - .order('availabilities.start_at ASC').references(:availabilities).limit(limit) + .order('availabilities.start_at ASC').references(:availabilities) + .limit(limit) end def show diff --git a/app/controllers/open_api/v1/events_controller.rb b/app/controllers/open_api/v1/events_controller.rb index 2dcba1e78..adcc4a6ed 100644 --- a/app/controllers/open_api/v1/events_controller.rb +++ b/app/controllers/open_api/v1/events_controller.rb @@ -3,7 +3,18 @@ class OpenAPI::V1::EventsController < OpenAPI::V1::BaseController expose_doc def index - @events = Event.order(created_at: :desc) + + if upcoming + @events = Event.includes(:event_image, :event_files, :availability, :category) + .where('availabilities.end_at >= ?', Time.now) + .order('availabilities.start_at ASC').references(:availabilities) + else + @events = Event.includes(:event_image, :event_files, :availability, :category).order(created_at: :desc) + end + + if params[:id].present? + @events = @events.where(id: params[:id]) + end if params[:page].present? @events = @events.page(params[:page]).per(per_page) @@ -15,4 +26,7 @@ class OpenAPI::V1::EventsController < OpenAPI::V1::BaseController def per_page params[:per_page] || 20 end + def upcoming + params[:upcoming] || false + end end diff --git a/app/doc/open_api/v1/events_doc.rb b/app/doc/open_api/v1/events_doc.rb index 46d511838..4b8f391de 100644 --- a/app/doc/open_api/v1/events_doc.rb +++ b/app/doc/open_api/v1/events_doc.rb @@ -11,6 +11,8 @@ class OpenAPI::V1::EventsDoc < OpenAPI::V1::BaseDoc doc_for :index do api :GET, "/#{API_VERSION}/events", "Events index" param_group :pagination + param :id, [Integer, Array], optional: true, desc: "Scope the request to one or various events." + param :upcoming, [FalseClass, TrueClass], optional: true, desc: "Scope for the upcoming events." description "Events index. Order by *created_at* desc." example <<-EOS # /open_api/v1/events?page=1&per_page=2 diff --git a/app/views/open_api/v1/events/index.json.jbuilder b/app/views/open_api/v1/events/index.json.jbuilder index 33478cd38..57f083cd4 100644 --- a/app/views/open_api/v1/events/index.json.jbuilder +++ b/app/views/open_api/v1/events/index.json.jbuilder @@ -1,6 +1,13 @@ json.events @events do |event| json.partial! 'open_api/v1/events/event', event: event json.extract! event, :nb_total_places, :nb_free_places + json.start_at event.availability.start_at + json.end_at event.availability.end_at + json.event_image do + json.large_url root_url.chomp('/') + event.event_image.attachment.large.url + json.medium_url root_url.chomp('/') + event.event_image.attachment.medium.url + json.small_url root_url.chomp('/') + event.event_image.attachment.small.url + end json.prices do json.normal do json.name I18n.t('app.public.home.full_price') diff --git a/config/locales/app.admin.en.yml b/config/locales/app.admin.en.yml index 6204649d4..e433afbe6 100644 --- a/config/locales/app.admin.en.yml +++ b/config/locales/app.admin.en.yml @@ -111,8 +111,15 @@ en: all_events: "All events" passed_events: "Passed events" events_to_come: "Events to come" - from_DATE: "From {{DATE}}" # angular interpolation - from_TIME: "From {{TIME}}" # angular interpolation + events_to_come_asc: "Events to come | chronological order" + on_DATE: "on {{DATE}}" # angular interpolation + from_DATE: "from {{DATE}}" # angular interpolation + from_TIME: "from {{TIME}}" # angular interpolation + booking: "Booking" + sold_out: "Sold out" + cancelled: "Cancelled" + free_entry: "Free entry" + free_admission: "Free admission" view_reservations: "View reservations" categories: "Categories" add_a_category: "Add a category" diff --git a/config/locales/app.admin.es.yml b/config/locales/app.admin.es.yml index e18bc8caf..666062303 100644 --- a/config/locales/app.admin.es.yml +++ b/config/locales/app.admin.es.yml @@ -59,6 +59,8 @@ es: unlocking_failed: "Ocurrió un error. El desbloqueo de la ranura ha fallado" reservations_locked: "La reserva está bloqueada" unlockable_because_reservations: "No se puede bloquear la reserva en esta ranura porque existen algunas reservas no canceladas." + delete_slot: "Delete this slot" # translation_missing + do_you_really_want_to_delete_this_slot: "Do you really want to delete this slot?" project_elements: # management of the projects' components @@ -71,6 +73,9 @@ es: trainings: # track and monitor the trainings training: "Formación" + add_a_new_training: "Add a new training" # translation_missing + associated_machines: "Associated machines" # translation_missing + number_of_tickets: "Number of tickets" # translation_missing year_NUMBER: "Año {{NUMBER}}" # angular interpolation month_of_NAME: "Mes of {{NAME}}" # angular interpolation NUMBER_reservation: "{NUMBER} {NUMBER, plural, one{reservation} other{reservations}}" # messageFormat interpolation @@ -87,11 +92,16 @@ es: training_successfully_deleted: "Entrenamiento eliminado correctamente." unable_to_delete_the_training_because_some_users_alredy_booked_it: "No se puede eliminar el entrenamiento porque algunos usuarios ya lo han reservado." do_you_really_want_to_delete_this_training: "¿De verdad quieres eliminar este entrenamiento?" + status_enabled: "Enabled" # translation_missing + status_disabled: "Disabled" # translation_missing + status_all: "All" # translation_missing trainings_new: # create a new training - beware_when_creating_a_training_its_reservation_prices_are_initialized_to_zero: "Tenga cuidado, al crear una formación, sus precios de reserva se inicializan en cero." - dont_forget_to_change_them_before_creating_slots_for_this_training: "No olvides cambiarlos antes de crear espacios para esta formación." + trainings_new: + add_a_new_training: "Add a new training" # translation_missing + beware_when_creating_a_training_its_reservation_prices_are_initialized_to_zero: "Tenga cuidado, al crear una formación, sus precios de reserva se inicializan en cero." + dont_forget_to_change_them_before_creating_slots_for_this_training: "No olvides cambiarlos antes de crear espacios para esta formación." events: # events tracking and management @@ -101,8 +111,15 @@ es: all_events: "Todos los eventos" passed_events: "Eventos pasados" events_to_come: "Eventos por venir" - from_DATE: "Desde {{DATE}}" # angular interpolation - from_TIME: "Desde {{TIME}}" # angular interpolation + events_to_come_asc: "Events to come | chronological order" + on_DATE: "on {{DATE}}" # angular interpolation # translation_missing + from_DATE: "Desde {{DATE}}" # angular interpolation # translation_missing + from_TIME: "Desde {{TIME}}" # angular interpolation # translation_missing + booking: "Booking" # translation_missing + sold_out: "Sold out" # translation_missing + cancelled: "Cancelled" # translation_missing + free_entry: "Free entry" # translation_missing + free_admission: "Free admission" # translation_missing view_reservations: "Ver reservas" categories: "Categorías" add_a_category: "Añadir una categoría" @@ -194,6 +211,7 @@ es: error_a_credit_linking_this_machine_with_that_subscription_already_exists: "Error: un crédito que vincula esta máquina con esa suscripción ya existe." changes_have_been_successfully_saved: "Los cambios se han guardado correctamented." credit_was_successfully_saved: "El crédito se ha guardado correctamente." + error_creating_credit: "Unable to create credit, an error occurred" # translation_missing do_you_really_want_to_delete_this_subscription_plan: "¿Realmente desea eliminar este plan de suscripción?" subscription_plan_was_successfully_deleted: "Plan de suscripción eliminado correctamente." unable_to_delete_the_specified_subscription_an_error_occurred: "No se pudo eliminar la suscripción especificada, se produjo un error.." @@ -228,6 +246,9 @@ es: add_a_space_credit: "Añadir un crédito de espacio" space: "Espacio" error_a_credit_linking_this_space_with_that_subscription_already_exists: "Error: un crédito que vincula este espacio con esa suscripción ya existe." + status_enabled: "Enabled" # translation_missing + status_disabled: "Disabled" # translation_missing + status_all: "All" # translation_missing coupons_new: # ajouter un code promotionnel @@ -359,7 +380,7 @@ es: an_error_occurred_while_activating_the_invoicing_code: "Se ha producido un error al activar el código de facturación." order_number_successfully_saved: "Número de pedido guardado correctamente." an_error_occurred_while_saving_the_order_number: "Se ha producido un error al guardar el número de orden." - VAT_rate_successfully_saved: "VAT rate successfully saved." + VAT_rate_successfully_saved: "VAT rate successfully saved." # translation_missing an_error_occurred_while_saving_the_VAT_rate: "La tasa de IVA se ha guardado correctamente." VAT_successfully_activated: "IVA activado correctamente." VAT_successfully_disabled: "IVA desactivado correctamente." @@ -391,14 +412,8 @@ es: this_may_take_a_while_please_wait: "Advertencia: esto puede tomar un tiempo, por favor, tenga paciencia." administrator_successfully_deleted: "Administrador eliminado correctamente." unable_to_delete_the_administrator: "No se puede eliminar el administrador." - add_a_group: "Añadir un grupo" - group_name: "Nombre del grupo" changes_successfully_saved: "Cambios guardados correctamente." an_error_occurred_while_saving_changes: "Se ha producido un error al guardar los cambios." - new_group_successfully_saved: "Nuevo grupo guardado correctamente." - an_error_occurred_when_saving_the_new_group: "Se ha producido un error al guardar el nuevo grupo." - group_successfully_deleted: "Grupo eliminado correctamente." - unable_to_delete_group_because_some_users_and_or_groups_are_still_linked_to_it: "No se puede eliminar el grupo porque algunos usuarios y / o grupos todavía están vinculados a él." add_a_tag: "Añadir una etiqueta" tag_name: "Nombre de la etiqueta" new_tag_successfully_saved: "Nueva etiqueta guardada correctamente." @@ -418,6 +433,23 @@ es: an_error_occurred_unable_to_delete_the_specified_provider: "Se ha producido un error: no se puede eliminar el proveedor especificado." local_database: "Base de datos local" o_auth2: "OAuth 2.0" + group_form: + add_a_group: "Añadir un grupo" + group_name: "Nombre del grupo" + disable: "Disable" # translation_missing + enable: "Enable" # translation_missing + changes_successfully_saved: "Changes successfully saved." # translation_missing + an_error_occurred_while_saving_changes: "An error occurred when saving changes." # translation_missing + new_group_successfully_saved: "Nuevo grupo guardado correctamente." + an_error_occurred_when_saving_the_new_group: "Se ha producido un error al guardar el nuevo grupo." + group_successfully_deleted: "Grupo eliminado correctamente." + unable_to_delete_group_because_some_users_and_or_groups_are_still_linked_to_it: "No se puede eliminar el grupo porque algunos usuarios y / o grupos todavía están vinculados a él." + group_successfully_enabled_disabled: "Group successfully {STATUS, select, true{disabled} other{enabled}}." # messageFormat interpolation # translation_missing + unable_to_enable_disable_group: "Unable to {STATUS, select, true{disable} other{enable}} group." # messageFormat interpolation # translation_missing + unable_to_disable_group_with_users: "Unable to disable group because it still contains {USERS} active {USERS, plural, =1{user} other{users}}." # messageFormat interpolation # translation_missing + status_enabled: "Enabled" # translation_missing + status_disabled: "Disabled" # translation_missing + status_all: "All" # translation_missing members_new: # add a member @@ -440,8 +472,8 @@ es: events: "Eventos" next_events: "Próximos eventos" no_upcoming_events: "No hay próximos eventos" - NUMBER_full_price_tickets_reserved: "{NUMBER, plural, =0{} one{1 full price ticket reserved} other{{NUMBER} full price tickets reserved}}" # messageFormat interpolation - NUMBER_NAME_tickets_reserved: "{NUMBER, plural, =0{} one{1 {NAME} ticket reserved} other{{NUMBER} {NAME} tickets reserved}}" # messageFormat interpolation + NUMBER_full_price_tickets_reserved: "{NUMBER, plural, =0{} one{1 full price ticket reserved} other{{NUMBER} full price tickets reserved}}" # messageFormat interpolation # translation_missing + NUMBER_NAME_tickets_reserved: "{NUMBER, plural, =0{} one{1 {NAME} ticket reserved} other{{NUMBER} {NAME} tickets reserved}}" # messageFormat interpolation # translation_missing passed_events: "Eventos pasados" invoices: "Facturas" invoice_#: "Factura #" @@ -449,7 +481,7 @@ es: expiration_date: "Fecha de caducidad" you_intentionally_decide_to_extend_the_user_s_subscription_by_offering_him_free_days: "Usted intencionalmente decide extender la suscripción del usuario ofreciéndole días libres." you_intentionally_decide_to_extend_the_user_s_subscription_by_charging_him_again_for_his_current_subscription: "Usted intencionalmente decide extender la suscripción del usuario al cobrarle de nuevo por su suscripción actual." - until_(expiration_date): "Until (expiration date):" + until_(expiration_date): "Until (expiration date):" # translation_missing you_successfully_changed_the_expiration_date_of_the_user_s_subscription: "Ha cambiado correctamente la fecha de caducidad de la suscripción del usuario" a_problem_occurred_while_saving_the_date: "Se ha producido un problema al guardar la fecha." new_subscription: "Nueva suscripción" @@ -546,8 +578,8 @@ es: customize_information_messages: "Personalizar mensajes de información" message_of_the_machine_booking_page: "Mensaje de la página de reserva de la máquina:" type_the_message_content: "Escriba el contenido del mensaje" - warning_message_of_the_training_booking_page: "Warning message of the training booking page:" - information_message_of_the_training_reservation_page: "Information message of the training reservation page:" + warning_message_of_the_training_booking_page: "Warning message of the training booking page:" # translation_missing + information_message_of_the_training_reservation_page: "Information message of the training reservation page:" # translation_missing message_of_the_subscriptions_page: "Mensaje de advertencia de la página de reserva de formación:" message_of_the_events_page: "Mensaje de la página de eventos:" message_of_the_spaces_page: "Mensaje de la página de espacios:" @@ -574,7 +606,7 @@ es: news_of_the_home_page: "Noticias de la página principal:" type_your_news_here: "Escriba sus noticias aquí" leave_it_empty_to_not_bring_up_any_news_on_the_home_page: "Déjelo vacío para no abrir ninguna noticia en la página principal" - twitter_stream: "Twitter Stream:" + twitter_stream: "Twitter Stream:" # translation_missing name_of_the_twitter_account: "Nombre de la cuenta de Twitter" title_of_the_about_page: "Título de la página Acerca de" shift_enter_to_force_carriage_return: "MAYÚS + ENTRAR para forzar el retorno de carro" @@ -610,7 +642,7 @@ es: main_color: "Color principal" secondary_color: "color secundario" home_blogpost: "Resumen de la página de inicio" - twitter_name: "Twitter feed name" + twitter_name: "Twitter feed name" # translation_missing about_title: "Título de la página \"Acerca de\"" about_body: "Contenido de la página \"Acerca de\"" about_contacts: "Página contactos\"Acerca de\"" @@ -645,12 +677,12 @@ es: # create a new space space_new: add_a_new_space: "Añadir un espacio nuevo" - watch_out_when_creating_a_new_space_its_prices_are_initialized_at_0_for_all_subscriptions: ¡Cuidado! Al crear un nuevo espacio, sus precios se inicializan en 0 para todas las suscripciones." + watch_out_when_creating_a_new_space_its_prices_are_initialized_at_0_for_all_subscriptions: "¡Cuidado! Al crear un nuevo espacio, sus precios se inicializan en 0 para todas las suscripciones." consider_changing_its_prices_before_creating_any_reservation_slot: "Considere cambiar sus precios antes de crear cualquier espacio de reserva." add_this_space: "Añadir este espacio" space_edit: # modify an exiting space space_edit: - edit_the_space_NAME: "Edit the space: {{NAME}}" # angular interpolation + edit_the_space_NAME: "Edit the space: {{NAME}}" # angular interpolation # translation_missing validate_the_changes: "Validar los cambios" diff --git a/config/locales/app.admin.fr.yml b/config/locales/app.admin.fr.yml index d907daed9..247f49140 100644 --- a/config/locales/app.admin.fr.yml +++ b/config/locales/app.admin.fr.yml @@ -111,8 +111,15 @@ fr: all_events: "Tous les évènements" passed_events: "Les évènements déjà passés" events_to_come: "Les évènements à venir" - from_DATE: "Du {{DATE}}" # angular interpolation - from_TIME: "De {{TIME}}" # angular interpolation + events_to_come_asc: "Les évènements à venir | ordre chronologique" + on_DATE: "le {{DATE}}" # angular interpolation + from_DATE: "du {{DATE}}" # angular interpolation + from_TIME: "de {{TIME}}" # angular interpolation + booking: "Réservations" + sold_out: "Complet" + cancelled: "Annulé" + free_entry: "Entrée libre" + free_admission: "Entrée gratuite" view_reservations: "Consulter les réservations" categories: "Catégories" add_a_category: "Ajouter une catégorie" diff --git a/config/locales/app.admin.pt.yml b/config/locales/app.admin.pt.yml index 3a621e400..5cf0fef93 100755 --- a/config/locales/app.admin.pt.yml +++ b/config/locales/app.admin.pt.yml @@ -111,8 +111,15 @@ pt: all_events: "Todos eventos" passed_events: "Eventos anteriores" events_to_come: "Eventos futuros" + events_to_come_asc: "Events to come | chronological order" #translation_missing + on_DATE: "on {{DATE}}" # angular interpolation #translation_missing from_DATE: "Em {{DATE}}" # angular interpolation from_TIME: "Ás {{TIME}}" # angular interpolation + booking: "Booking" #translation_missing + sold_out: "Sold out" #translation_missing + cancelled: "Cancelled" #translation_missing + free_entry: "Free entry" #translation_missing + free_admission: "Free admission" #translation_missing view_reservations: "Ver reservas" categories: "Categorias" add_a_category: "Adicionar categoria" diff --git a/config/locales/app.public.en.yml b/config/locales/app.public.en.yml index 3b71886a5..262077f50 100644 --- a/config/locales/app.public.en.yml +++ b/config/locales/app.public.en.yml @@ -134,6 +134,7 @@ en: free_admission: "Free admission" full_price: "Full price" event_full: "Event full" + still_available: "Available place(s)" projects_list: # projects gallery @@ -233,6 +234,11 @@ en: the_fablab_s_events: "The Fablab's events" all_categories: "All categories" for_all: "For all" + sold_out: "Sold Out" + cancelled: "Cancelled" + free_admission: "Free admission" + still_available: "available place(s)" + free_entry: "Free entry" events_show: # details and booking of an event @@ -245,6 +251,7 @@ en: tickets_still_availables: "Tickets still available:" sold_out: "Sold out." free_entry: "Free entry" + cancelled: "Cancelled" ticket: "{NUMBER, plural, one{ticket} other{tickets}}" # messageFormat interpolation make_a_gift_of_this_reservation: "Make a gift of this reservation" you_can_find_your_reservation_s_details_on_your_: "You can find your reservation's details on your" @@ -288,4 +295,4 @@ en: the_space_cant_be_deleted_because_it_is_already_reserved_by_some_users: "Unable to delete this space, because it is already reserved by some users." characteristics: "Characteristics" files_to_download: "Files to download" - projects_using_the_space: "Projects using the space" \ No newline at end of file + projects_using_the_space: "Projects using the space" diff --git a/config/locales/app.public.es.yml b/config/locales/app.public.es.yml index 7a36fb505..c37409001 100644 --- a/config/locales/app.public.es.yml +++ b/config/locales/app.public.es.yml @@ -134,6 +134,7 @@ es: free_admission: "Admisión gratuita" full_price: "Precio final" event_full: "Evento lleno" + still_available: "Available place(s)" #translation_missing projects_list: # projects gallery @@ -175,9 +176,14 @@ es: machines_list: # list of machines - the_fablab_s_machines: "Las máquinas del FabLab" - add_a_machine: "Añadir una máquina" - _or_the_: " o el " + machines_list: + the_fablab_s_machines: "Las máquinas del FabLab" + add_a_machine: "Añadir una máquina" + book: "Book" #translation_missing + _or_the_: " o el " + status_enabled: "Enabled" #translation_missing + status_disabled: "Disabled" #translation_missing + status_all: "All" #translation_missing machines_show: # details of a machine @@ -228,6 +234,11 @@ es: the_fablab_s_events: "Los eventos del FabLab" all_categories: "Todas las categorías" for_all: "Para todo" + sold_out: "Sold Out" #translation_missing + cancelled: "Cancelled" #translation_missing + free_admission: "Free admission" #translation_missing + still_available: "available place(s)" #translation_missing + free_entry: "Free entry" #translation_missing events_show: # details and booking of an event @@ -240,6 +251,7 @@ es: tickets_still_availables: "Entradas disponibles:" sold_out: "Entradas vendidas." free_entry: "Entrada gratuita" + cancelled: "Cancelled" #translation_missing ticket: "{NUMBER, plural, one{ticket} other{tickets}}" # messageFormat interpolation make_a_gift_of_this_reservation: "Regalar esta reserva" you_can_find_your_reservation_s_details_on_your_: "Puede encontrar los detalles de su reserva en" @@ -247,6 +259,10 @@ es: book: "Reservar" change_the_reservation: "Cambiar la reserva" you_can_shift_this_reservation_on_the_following_slots: "Puede cambiar la reserva en los siguientes campos:" + confirmation_required: "Confirmation required" #translation_missing + do_you_really_want_to_delete_this_event: "Do you really want to delete this event?" #translation_missing + event_successfully_deleted: "Event successfully deleted" #translation_missing + unable_to_delete_the_event_because_some_users_alredy_booked_it: "Unable to delete this event, it may have been already reserved by some users." #translation_missing calendar: # public calendar @@ -261,8 +277,13 @@ es: spaces_list: # list of spaces - the_spaces: "Espacios" - add_a_space: "Añadir espacios" + spaces_list: + the_spaces: "Espacios" + add_a_space: "Añadir espacios" + status_enabled: "Enabled" #translation_missing + status_disabled: "Disabled" #translation_missing + status_all: "All" #translation_missing + book: "Book" #translation_missing space_show: # display the details of a space diff --git a/config/locales/app.public.fr.yml b/config/locales/app.public.fr.yml index 073d56a60..577952267 100644 --- a/config/locales/app.public.fr.yml +++ b/config/locales/app.public.fr.yml @@ -127,13 +127,14 @@ fr: # résumé des prochains évènements sur la page d'acceuil fablab_s_next_events: "Les prochains évènements du Fab Lab" every_events: "Tous les évènements" - from_date_to_date: "Du {{START}} au {{END}}" # angular interpolation - on_the_date: "Le {{DATE}}" # angular interpolation - from_time_to_time: "De {{START}} à {{END}}" # angular interpolation - free_entry: "Entrée libre" + from_date_to_date: "du {{START}} au {{END}}" # angular interpolation + on_the_date: "le {{DATE}}" # angular interpolation + from_time_to_time: "de {{START}} à {{END}}" # angular interpolation + free_entry: "Accès libre" free_admission: "Entrée gratuite" - full_price: "Plein tarif" + full_price: "Plein tarif : " event_full: "Événement complet" + still_available: "Place(s) disponible(s) :" projects_list: # galerie des projets @@ -235,6 +236,11 @@ fr: the_fablab_s_events: "Les évènements du Fab Lab" all_categories: "Toutes les catégories" for_all: "Tout public" + sold_out: "Complet" + cancelled: "Annulé" + free_admission: "Gratuit" + still_available: "place(s) disponible(s)" + free_entry: "Accès libre" events_show: # détails d'un événement et réservation @@ -245,8 +251,9 @@ fr: ending: "Fin :" opening_hours: "Horaires :" tickets_still_availables: "Places encore disponibles :" - sold_out: "Événement complet." - free_entry: "Entrée libre" + sold_out: "Événement complet" + free_entry: "Accès libre" + cancelled: "Annulé" ticket: "{NUMBER, plural, =0{place} one{place} other{places}}" # messageFormat interpolation make_a_gift_of_this_reservation: "Offrir cette réservation" you_can_find_your_reservation_s_details_on_your_: "Vous pouvez retrouver le détail de votre réservation sur votre" diff --git a/config/locales/app.public.pt.yml b/config/locales/app.public.pt.yml index 38504a653..9fe70ac48 100755 --- a/config/locales/app.public.pt.yml +++ b/config/locales/app.public.pt.yml @@ -127,13 +127,14 @@ pt: # next events summary on the home page fablab_s_next_events: "Próximos eventos do FabLab" every_events: "Todos Eventos" - from_date_to_date: "De {{START}} até {{END}}" # angular interpolation - on_the_date: "Em {{DATE}}" # angular interpolation + from_date_to_date: "De {{START}} até {{END}}" # angular interpolation + on_the_date: "Em {{DATE}}" # angular interpolation from_time_to_time: "Das {{START}} até {{END}}" # angular interpolation free_entry: "Entrada franca" free_admission: "Admissão grátis" full_price: "Valor inteira" event_full: "Evento lotado" + still_available: "Available place(s)" # traduction_missing projects_list: # projects gallery @@ -233,6 +234,11 @@ pt: the_fablab_s_events: "Eventos do Fablab" all_categories: "Todas categorias" for_all: "Para todos" + sold_out: "Esgotado." + cancelled: "Cancelled" #translation_missing + free_admission: "Admissão grátis" + still_available: "available place(s)" #translation_missing + free_entry: "Entrada franca" events_show: # details and booking of an event @@ -245,6 +251,7 @@ pt: tickets_still_availables: "Tickets ainda disponíveis:" sold_out: "Esgotado." free_entry: "Entrada franca" + cancelled: "Cancelled" #translation_missing ticket: "{NUMBER, plural, one{ticket} other{tickets}}" # messageFormat interpolation make_a_gift_of_this_reservation: "Doe esta reserva" you_can_find_your_reservation_s_details_on_your_: "Você pode encontrar detalhes da sua reserva em seu" @@ -288,4 +295,4 @@ pt: the_space_cant_be_deleted_because_it_is_already_reserved_by_some_users: "Impossível remover este espaço, pois ele já foi reservado por alguns usuários." characteristics: "Características" files_to_download: "Arquivo para download" - projects_using_the_space: "Projetos usando espaço" \ No newline at end of file + projects_using_the_space: "Projetos usando espaço" diff --git a/config/locales/app.shared.en.yml b/config/locales/app.shared.en.yml index 6f2f961a3..82dd57d5d 100644 --- a/config/locales/app.shared.en.yml +++ b/config/locales/app.shared.en.yml @@ -458,4 +458,4 @@ en: cancellation_failed: "Cancellation failed." confirm_payment_of_html: "{ROLE, select, admin{Payment on site} other{Pay}}: {AMOUNT}" # messageFormat interpolation (context: confirm my payment of $20.00) a_problem_occured_during_the_payment_process_please_try_again_later: "A problem occurred during the payment process. Please try again later." - none: "None" \ No newline at end of file + none: "None" diff --git a/config/locales/app.shared.es.yml b/config/locales/app.shared.es.yml index 1dab51b47..0bbf158e8 100644 --- a/config/locales/app.shared.es.yml +++ b/config/locales/app.shared.es.yml @@ -230,14 +230,24 @@ es: as_part_of_a_partner_subscription_some_notifications_may_be_sent_to_this_user: "Como parte de la suscripción, algunas notificaciones podrían ser enviadas a este usuario." new_partner: "Nuevo compañero" email_address_is_required: "Se requiere un mail." + disabled: "Disable subscription" #translation_missing + disable_plan_will_not_unsubscribe_users: "Beware: disabling this plan won't unsubscribe users having active subscriptions with it." #translation_missing trainings: # training edition form - add_a_new_training: "Añadir curso" - validate_your_training: "Validar curso" - associated_machines: "Máquinas asociadas" - number_of_tickets: "Número de entradas" - public_page: "Hacer curso público" + trainings_form: + name: "Name" #translation_missing + name_is_required: "Name is required." #translation_missing + illustration: "Illustration" #translation_missing + add_an_illustration: "Add an illustration" #translation_missing + description: "Description" #translation_missing + description_is_required: "Description is required." #translation_missing + add_a_new_training: "Añadir curso" + validate_your_training: "Validar curso" + associated_machines: "Máquinas asociadas" + number_of_tickets: "Número de entradas" + public_page: "Hacer curso público" + disable_training: "Disable the training" #translation_missing user_admin: # partial form to edit/create an user (admin view) @@ -377,8 +387,8 @@ es: coupon_input: # coupon (input zone for users) - i_have_a_coupon: "I have a coupon!" - code_: "Code:" + i_have_a_coupon: "I have a coupon!" #translation_missing + code_: "Code:" #translation_missing the_coupon_has_been_applied_you_get_PERCENT_discount: "Se ha aplicado el cupón {{PERCENT}}% de descuento." # angular interpolation the_coupon_has_been_applied_you_get_AMOUNT_CURRENCY: "Se ha aplicado el cupón. Recibirá un descuento de {{AMOUNT}} {{CURRENCY}}." # angular interpolation unable_to_apply_the_coupon_because_disabled: "No se ha podido canjear el cupón: código inhabilitado." @@ -405,6 +415,7 @@ es: add_an_attachment: "Añadir adjunto" default_places: "Máximo de entradas predeterminado" default_places_is_required: "Se requiere un máximo de entradas predeterminado." + disable_space: "Disable space" #translation_missing cart: # module de panier d'achat de réservations diff --git a/config/locales/app.shared.fr.yml b/config/locales/app.shared.fr.yml index ceee826ec..c7fde0f83 100644 --- a/config/locales/app.shared.fr.yml +++ b/config/locales/app.shared.fr.yml @@ -55,7 +55,7 @@ fr: add_an_event: "Ajouter un évènement" load_the_next_events: "Charger les évènements suivants ..." no_passed_events: "Aucun évènement passé" - dates: "Dates :" + dates: "Dates" thank_you_your_payment_has_been_successfully_registered: "Merci. Votre paiement a bien été pris en compte !" surname: "Nom" first_name: "Prénom" diff --git a/config/locales/en.yml b/config/locales/en.yml index 36f41010d..92460e907 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -360,4 +360,4 @@ en: group: # name of the user's group for administrators - admins: 'Administrators' \ No newline at end of file + admins: 'Administrators' diff --git a/config/locales/mails.es.yml b/config/locales/mails.es.yml index 8edc7568e..530e9efd4 100644 --- a/config/locales/mails.es.yml +++ b/config/locales/mails.es.yml @@ -248,7 +248,7 @@ es: enabled: "A partir de ahora, todos los pagos realizados por este usuario en la recepción llevarán a la emisión de facturación. " notify_user_wallet_is_credited: - subject: "" + subject: "" #translation_missing body: wallet_credit_html: "Se han ingresado %{AMOUNT} por el administrador." diff --git a/config/locales/pt.yml b/config/locales/pt.yml index 6db56287e..badf770bb 100755 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -360,4 +360,4 @@ pt: group: # name of the user's group for administrators - admins: 'Administradores' \ No newline at end of file + admins: 'Administradores'