From bb752f121889a23d9b4ffadce5cd4af968400493 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:47:18 +0100 Subject: [PATCH 001/136] refactor translations to work with crowdin pull requests --- config/locales/app.admin.en.yml | 115 +++++++++++-------------------- config/locales/app.admin.es.yml | 59 ++++------------ config/locales/app.admin.fr.yml | 112 +++++++++++------------------- config/locales/app.admin.pt.yml | 115 +++++++++++-------------------- config/locales/app.logged.en.yml | 39 ++++------- config/locales/app.logged.es.yml | 11 +-- config/locales/app.logged.fr.yml | 11 +-- config/locales/app.logged.pt.yml | 11 +-- config/locales/app.public.en.yml | 105 ++++++++++------------------ config/locales/app.public.es.yml | 95 +++++++++---------------- config/locales/app.public.fr.yml | 105 ++++++++++------------------ config/locales/app.public.pt.yml | 105 ++++++++++------------------ config/locales/app.shared.en.yml | 80 ++++++++------------- config/locales/app.shared.es.yml | 64 ++++++----------- config/locales/app.shared.fr.yml | 76 +++++++------------- config/locales/app.shared.pt.yml | 76 +++++++------------- config/locales/base.en.yml | 12 ++++ config/locales/base.es.yml | 12 ++++ config/locales/base.fr.yml | 12 ++++ config/locales/base.pt.yml | 12 ++++ config/locales/devise.en.yml | 10 +-- config/locales/en.yml | 82 ++++++++-------------- config/locales/es.yml | 67 ++++++------------ config/locales/fr.yml | 81 ++++++++-------------- config/locales/mails.en.yml | 56 ++------------- config/locales/mails.es.yml | 56 ++------------- config/locales/mails.fr.yml | 56 ++------------- config/locales/mails.pt.yml | 56 ++------------- config/locales/pt.yml | 81 ++++++++-------------- 29 files changed, 576 insertions(+), 1196 deletions(-) create mode 100644 config/locales/base.en.yml create mode 100644 config/locales/base.es.yml create mode 100644 config/locales/base.fr.yml create mode 100644 config/locales/base.pt.yml diff --git a/config/locales/app.admin.en.yml b/config/locales/app.admin.en.yml index c95ae604c..d6ab5d717 100644 --- a/config/locales/app.admin.en.yml +++ b/config/locales/app.admin.en.yml @@ -2,17 +2,15 @@ en: app: admin: machines_new: - # add a new machine + #add a new machine declare_a_new_machine: "Declare a new machine" watch_out_when_creating_a_new_machine_its_prices_are_initialized_at_0_for_all_subscriptions: "Watch out! When creating a new machine, its prices are initialized at 0 for all subscriptions." consider_changing_them_before_creating_any_reservation_slot: "Consider changing them before creating any reservation slot." - machines_edit: - # machine edition + #machine edition machine_edit: "Edit a machine" - calendar: - # manage the trainings & machines slots + #manage the trainings & machines slots calendar_management: "Calendar management" trainings: "Trainings" machines: "Machines" @@ -49,7 +47,7 @@ en: manage_trainings: "Click here to add or remove trainings." number_of_tickets: "Number of tickets: " adjust_the_opening_hours: "Adjust the opening hours" - to_time: "to" # eg. from 18:00 to 21:00 + to_time: "to" #eg. from 18:00 to 21:00 restrict_options: "Restriction options" restrict_with_labels: "Restrict this slot with labels" restrict_for_subscriptions: "Restrict this slot for subscription users" @@ -100,7 +98,6 @@ en: legend: "legend" and: "and" external_sync: "Calendar synchronization" - icalendar: icalendar_import: "iCalendar import" intro: "Fab-manager allows to automatically import calendar events, at RFC 5545 iCalendar format, from external URL. These URL are synchronized every hours and the events are shown in the public calendar. You can trigger a synchronisation too, by clicking on the corresponding button, in front of each import." @@ -121,9 +118,8 @@ en: confirmation_required: "Confirmation required" confirm_delete_import: "Do you really want to delete this iCalendar import?" delete_success: "iCalendar import successfully deleted" - project_elements: - # management of the projects' components + #management of the projects' components name: "Name" projects_elements_management: "Projects elements management" materials: "Materials" @@ -134,9 +130,8 @@ en: description: "Description" add_a_new_licence: "Add a new licence" manage_abuses: "Manage the reports" - trainings: - # track and monitor the trainings + #track and monitor the trainings trainings_monitoring: "Trainings monitoring" plan_session: "Schedule a new session" trainings: "Trainings" @@ -168,15 +163,13 @@ en: status_enabled: "Enabled" status_disabled: "Disabled" status_all: "All" - trainings_new: - # create a new training + #create a new training add_a_new_training: "Add a new training" beware_when_creating_a_training_its_reservation_prices_are_initialized_to_zero: "Beware, when creating a training, its reservation prices are initialized at zero." dont_forget_to_change_them_before_creating_slots_for_this_training: "Don't forget to change them before creating slots for this training." - events: - # events tracking and management + #events tracking and management events_monitoring: "Events monitoring" manage_filters: "Manage filters" fablab_events: "Fablab events" @@ -188,8 +181,8 @@ en: on_DATE: "on {DATE}" from_DATE: "from {DATE}" from_TIME: "from {TIME}" - to_date: "to" # eg: from 01/01 to 01/05 - to_time: "to" # eg. from 18:00 to 21:00 + to_date: "to" #eg: from 01/01 to 01/05 + to_time: "to" #eg. from 18:00 to 21:00 title: "Title" dates: "Dates" booking: "Booking" @@ -229,18 +222,16 @@ en: do_you_really_want_to_delete_this_price_category: "Do you really want to delete this price category?" price_category_successfully_deleted: "Price category successfully deleted." price_category_deletion_failed: "Price category deletion failed." - events_new: - # add a new event + #add a new event add_an_event: "Add an event" none: "None" every_days: "Every days" every_week: "Every week" every_month: "Every month" every_year: "Every year" - events_edit: - # edit an existing event + #edit an existing event edit_the_event: "Edit the event" confirmation_required: "Confirmation required" edit_recurring_event: "You're about to update a periodic event. What do you want to update ?" @@ -254,9 +245,8 @@ en: events_not_updated: "On {TOTAL} events, {COUNT, plural, =1{one was not updated} other{{COUNT} were not deleted}}." error_deleting_reserved_price: "Unable to delete the requested price because it is associated with some reservations" other_error: "An unexpected error occurred while updating the event" - event_reservations: - # event reservations list + #event reservations list the_reservations: "Reservations:" user: "User" payment_date: "Payment date" @@ -266,9 +256,8 @@ en: no_reservations_for_now: "No reservation for now." back_to_monitoring: "Back to monitoring" canceled: "Canceled" - pricing: - # subscriptions, prices, credits and coupons management + #subscriptions, prices, credits and coupons management pricing_management: "Pricing management" subscriptions: "Subscriptions" trainings: "Trainings" @@ -297,7 +286,7 @@ en: hours: "Slots of {DURATION} minutes" related_subscriptions: "Related subscriptions" please_specify_a_number: "Please specify a number." - none: "None" # grammar concordance with training. + none: "None" #grammar concordance with training. an_error_occurred_while_saving_the_number_of_credits: "An error occurred while saving the number of credits." an_error_occurred_while_deleting_credit_with_the_TRAINING: "An error occurred while deleting credit with the {TRAINING}." an_error_occurred_unable_to_find_the_credit_to_revoke: "An error occurred : unable to find the credit to revoke." @@ -347,26 +336,23 @@ en: status_enabled: "Enabled" status_disabled: "Disabled" status_all: "All" - coupons_new: - # ajouter un code promotionnel + #ajouter un code promotionnel add_a_coupon: "Add a coupon" unable_to_create_the_coupon_check_code_already_used: "Unable to create the coupon. Please check that the code is not already used" - coupons_edit: - # mettre à jour un code promotionnel + #mettre à jour un code promotionnel coupon: "Coupon:" unable_to_update_the_coupon_an_error_occurred: "Unable to update the coupon: an error occurred." - plans: new: - # add a subscription plan on the platform + #add a subscription plan on the platform add_a_subscription_plan: "Add a subscription plan" unable_to_create_the_subscription_please_try_again: "Unable to create the subscription plan. Please try again." successfully_created_subscriptions_dont_forget_to_redefine_prices: "Subscription(s) successfully created. Don't forget to redefine prices." unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Unable to save this user. Check that there isn't an already defined user with the same name." edit: - # edit a subscription plan / machine slots prices + #edit a subscription plan / machine slots prices subscription_plan: "Subscription plan:" prices: "Prices" copy_prices_from: "Copy prices from" @@ -377,9 +363,8 @@ en: space: "Space" unable_to_save_subscription_changes_please_try_again: "Unable to save subscription changes. Please try again." subscription_successfully_changed: "Subscription successfully changed." - invoices: - # list of all invoices & invoicing parameters + #list of all invoices & invoicing parameters invoices: "Invoices" accounting_periods: "Accounting periods" invoices_list: "Invoices list" @@ -425,7 +410,7 @@ en: year: "Year" month: "Month" day: "Day" - num_of_invoice: "# of invoice" + num_of_invoice: "#of invoice" online_sales: "Online sales" wallet: "Wallet" refund: "Refund" @@ -477,7 +462,7 @@ en: description: "Description" description_optional: "Description (optional):" will_appear_on_the_refund_invoice: "Will appear on the refund invoice." - none: "None" # grammar concordance with payment mean + none: "None" #grammar concordance with payment mean by_cash: "By cash" by_cheque: "By cheque" by_transfer: "By transfer" @@ -595,9 +580,8 @@ en: debit_euro: "Euro debit" credit_euro: "Euro credit" lettering: "Lettering" - members: - # management of users, labels, groups, and so on + #management of users, labels, groups, and so on users_management: "Users management" members: "Members" subscriptions: "Subscriptions" @@ -675,14 +659,12 @@ en: member_filter_all: "All" member_filter_not_confirmed: "Unconfirmed" member_filter_inactive_for_3_years: "Inactive for 3 years" - members_new: - # add a member + #add a member add_a_member: "Add a member" user_is_an_organization: "User is an organization" - members_import: - # members bulk import + #members bulk import import_members: "Import members" info: "You can upload a CSV file to create new members or update existing ones. Your file must user the identifiers below to specify the group, the trainings and the tags of the members." required_fields: "Your file must contain, at least, the following information for each user to create: email, name, first name and group. If the password is empty, it will be generated. On updates, the empty fields will be kept as is." @@ -706,9 +688,8 @@ en: update_on_id: "ID" update_on_username: "Username" update_on_email: "Email address" - members_import_result: - # import results + #import results import_results: "Import results" import_details: "Import #{ID}, of {DATE}, initiated by {USER}" results: "Results" @@ -718,9 +699,8 @@ en: success: "Success" failed: "Failed" error_details: "Error's details:" - members_edit: - # edit a member + #edit a member subscription: "Subscription" duration: "Duration:" expires_at: "Expires at:" @@ -762,9 +742,8 @@ en: a_problem_occurred_while_taking_the_subscription: "A problem occurred while taking the subscription" wallet: "Wallet" to_credit: 'Credit' - admins_new: - # add a new administrator to the platform + #add a new administrator to the platform add_an_administrator: "Add an administrator" administrator_successfully_created_he_will_receive_his_connection_directives_by_email: "Administrator successfully created. {GENDER, select, female{She} other{He}} receive {GENDER, select, female{her} other{his}} connection directives by e-mail." failed_to_create_admin: "Unable to create the administrator:" @@ -781,9 +760,8 @@ en: birth_date: "Date of birth" address: "Address" phone_number: "Phone number" - authentication_new: - # add a new authentication provider (SSO) + #add a new authentication provider (SSO) local_database: "Local Database" o_auth2: "OAuth 2.0" add_a_new_authentication_provider: "Add a new authentication provider" @@ -796,21 +774,19 @@ en: do_you_really_want_to_continue: "Do you really want to continue?" unsecured_oauth2_provider_successfully_added: "Unsecured OAuth 2.0 provider successfully added." oauth2_provider_successfully_added: "OAuth 2.0 provider successfully added." - authentication_edit: - # edit an authentication provider (SSO) + #edit an authentication provider (SSO) provider: "Provider :" it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "It is required to set the matching between User.uid and the API to add this provider" provider_successfully_updated: "Provider successfully updated" an_error_occurred_unable_to_update_the_provider: "An error occurred: unable to update the provider." - statistics: - # statistics tables + #statistics tables statistics: "Statistics" evolution: "Evolution" age_filter: "Age filter" - from_age: "From" # eg. from 8 to 40 years old - to_age: "to" # eg. from 8 to 40 years old + from_age: "From" #eg. from 8 to 40 years old + to_age: "to" #eg. from 8 to 40 years old _years_old: "years old" start: "Start:" end: "End:" @@ -819,8 +795,8 @@ en: criterion: "Criterion:" value: "Value:" exclude: "Exclude" - from_date: "From" # eg: from 01/01 to 01/05 - to_date: "to" # eg: from 01/01 to 01/05 + from_date: "From" #eg: from 01/01 to 01/05 + to_date: "to" #eg: from 01/01 to 01/05 entries: "Entries:" revenue_: "Revenue:" average_age: "Average age:" @@ -847,15 +823,14 @@ en: export_is_running_you_ll_be_notified_when_its_ready: "Export is running. You'll be notified when it's ready." create_plans_to_start: "Start by creating new subscription plans." click_here: "Click here to create your first one." - stats_graphs: - # statistics graphs + #statistics graphs statistics: "Statistics" data: "Data" day: "Day" week: "Week" - from_date: "From" # eg: from 01/01 to 01/05 - to_date: "to" # eg: from 01/01 to 01/05 + from_date: "From" #eg: from 01/01 to 01/05 + to_date: "to" #eg: from 01/01 to 01/05 month: "Month" start: "Start:" end: "End:" @@ -867,9 +842,8 @@ en: week_of_START_to_END: "Week of {START} to {END}" no_data_for_this_period: "No data for this period" date: "Date" - settings: - # global application parameters and customization + #global application parameters and customization title: "Title" customize_the_application: "Customize the application" general: "General" @@ -1029,7 +1003,6 @@ en: online_payment: "Is the online payment module active?" invoices: "Is the invoicing module active?" openlab: "Is the project sharing module (OpenLab) active?" - open_api_clients: add_new_client: "Create new API client" api_documentation: "API documentation" @@ -1047,21 +1020,18 @@ en: client_successfully_updated: "Client successfully updated." client_successfully_deleted: "Client successfully deleted." access_successfully_revoked: "Access successfully revoked." - space_new: - # create a new space + #create a new space add_a_new_space: "Add a new space" watch_out_when_creating_a_new_space_its_prices_are_initialized_at_0_for_all_subscriptions: "Watch out! When creating a new space, its prices are initialized at 0 for all subscriptions." consider_changing_its_prices_before_creating_any_reservation_slot: "Consider changing its prices before creating any reservation slot." add_this_space: "Add this space" - space_edit: - # modify an exiting space + #modify an exiting space edit_the_space_NAME: "Edit the space: {NAME}" validate_the_changes: "Validate the changes" - manage_abuses: - # process and delete abuses reports + #process and delete abuses reports abuses_list: "Reports list" no_reports: "No reports for now" published_by: "published by" @@ -1071,7 +1041,6 @@ en: report_will_be_destroyed: "Once the report has been processed, it will be deleted. This can't be undone, continue?" report_removed: "The report has been deleted" failed_to_remove: "An error occurred, unable to delete the report" - tour: conclusion: title: "Thank you for your attention" diff --git a/config/locales/app.admin.es.yml b/config/locales/app.admin.es.yml index eece2f1fb..62724d2b2 100644 --- a/config/locales/app.admin.es.yml +++ b/config/locales/app.admin.es.yml @@ -6,11 +6,9 @@ es: declare_a_new_machine: "Declara una nueva máquina" watch_out_when_creating_a_new_machine_its_prices_are_initialized_at_0_for_all_subscriptions: "Cuidado al crear una nueva máquina, los precios están inicializados a 0 para todas las subscripciones." consider_changing_them_before_creating_any_reservation_slot: "Considera cambiarlos antes de crear cualquier ranura de reserva." - machines_edit: #machine edition machine_edit: "Editar una máquina" - calendar: #manage the trainings & machines slots calendar_management: "Administración de calendario" @@ -49,7 +47,7 @@ es: manage_trainings: "Click here to add or remove trainings." number_of_tickets: "Número de tickets: " adjust_the_opening_hours: "Ajustar el horario de apertura" - to_time: "a" # eg. from 18:00 to 21:00 + to_time: "a" #eg. from 18:00 to 21:00 restrict_options: "Restriction options" restrict_with_labels: "Restringir este horario con etiquetas" restrict_for_subscriptions: "Restrict this slot for subscription users" @@ -100,7 +98,6 @@ es: legend: "leyenda" and: "y" external_sync: "Calendar synchronization" - icalendar: icalendar_import: "iCalendar import" intro: "Fab-manager allows to automatically import calendar events, at RFC 5545 iCalendar format, from external URL. These URL are synchronized every hours and the events are shown in the public calendar. You can trigger a synchronisation too, by clicking on the corresponding button, in front of each import." @@ -121,7 +118,6 @@ es: confirmation_required: "Confirmation required" confirm_delete_import: "Do you really want to delete this iCalendar import?" delete_success: "iCalendar import successfully deleted" - project_elements: #management of the projects' components name: "Name" @@ -134,7 +130,6 @@ es: description: "Description" add_a_new_licence: "Agregar una nueva licencia" manage_abuses: "Administrar informes" - trainings: #track and monitor the trainings trainings_monitoring: "Trainings monitoring" @@ -168,13 +163,11 @@ es: status_enabled: "Enabled" status_disabled: "Disabled" status_all: "All" - trainings_new: #create a new training add_a_new_training: "Add 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." - events: #events tracking and management events_monitoring: "Monitoreo de eventos" @@ -188,8 +181,8 @@ es: on_DATE: "on {DATE}" from_DATE: "Desde {DATE}" from_TIME: "Desde {TIME}" - to_date: "to" # eg: from 01/01 to 01/05 - to_time: "to" # eg: from 18:00 to 21:00 + to_date: "to" #eg: from 01/01 to 01/05 + to_time: "to" #eg: from 18:00 to 21:00 title: "Title" dates: "Dates" booking: "Booking" @@ -229,7 +222,6 @@ es: do_you_really_want_to_delete_this_price_category: "¿Desea realmente eliminar esta categoría de precios?" price_category_successfully_deleted: "Categoría de precio eliminada correctamente." price_category_deletion_failed: "Error al eliminar la categoría de precio." - events_new: #add a new event add_an_event: "Add an event" @@ -238,7 +230,6 @@ es: every_week: "Cada semana" every_month: "Cada mes" every_year: "Cada año" - events_edit: #edit an existing event edit_the_event: "Editar el evento" @@ -254,7 +245,6 @@ es: events_not_updated: "On {TOTAL} events, {COUNT, plural, =1{one was not updated} other{{COUNT} were not deleted}}." error_deleting_reserved_price: "No se puede eliminar el precio solicitado porque está asociado con algunas reservas." other_error: "Se ha producido un error inesperado al actualizar el evento." - event_reservations: #event reservations list the_reservations: "Reservas :" @@ -266,7 +256,6 @@ es: no_reservations_for_now: "No hay reservas por ahora." back_to_monitoring: "Volver a monitorizar" canceled: "cancelada" - pricing: #subscriptions, prices, credits and coupons management pricing_management: "Gestión de precios" @@ -347,17 +336,14 @@ es: status_enabled: "Enabled" status_disabled: "Disabled" status_all: "All" - coupons_new: #ajouter un code promotionnel add_a_coupon: "Añadir un cupón" unable_to_create_the_coupon_check_code_already_used: "No se puede crear el cupón. Compruebe que el código no esté ya utilizado" - coupons_edit: #mettre à jour un code promotionnel coupon: "Coupon:" unable_to_update_the_coupon_an_error_occurred: "No se puede actualizar el cupón: se ha producido un error." - plans: new: #add a subscription plan on the platform @@ -377,7 +363,6 @@ es: space: "Espacio" unable_to_save_subscription_changes_please_try_again: "No se pueden guardar los cambios de suscripción. Por favor, inténtelo de nuevo." subscription_successfully_changed: "Suscripción cambiada correctamente." - invoices: #list of all invoices & invoicing parameters invoices: "Facturas" @@ -425,7 +410,7 @@ es: year: "Año" month: "Mes" day: "Día" - num_of_invoice: "# de factura" + num_of_invoice: "#de factura" online_sales: "Ventas en línea" wallet: "Cartera" refund: "Reembolso" @@ -477,7 +462,7 @@ es: description: "Descripción" description_optional: "Descripción (opcional):" will_appear_on_the_refund_invoice: "Aparecerá en la factura de reembolso." - none: "Nada" # grammar note: concordancia con medio de pago + none: "Nada" #grammar note: concordancia con medio de pago by_cash: "En efectivo" by_cheque: "Mediante cheque" by_transfer: "Por transferencia" @@ -595,7 +580,6 @@ es: debit_euro: "Euro debit" credit_euro: "Euro credit" lettering: "Lettering" - members: #management of users, labels, groups, and so on users_management: "Gestión de usuarios" @@ -675,12 +659,10 @@ es: member_filter_all: "All" member_filter_not_confirmed: "Unconfirmed" member_filter_inactive_for_3_years: "Inactive for 3 years" - members_new: #add a member add_a_member: "Agregar un miembro" user_is_an_organization: "El usuario es una organización" - members_import: #members bulk import import_members: "Import members" @@ -706,7 +688,6 @@ es: update_on_id: "ID" update_on_username: "Username" update_on_email: "Email address" - members_import_result: #import results import_results: "Import results" @@ -718,7 +699,6 @@ es: success: "Success" failed: "Failed" error_details: "Error's details:" - members_edit: #edit a member subscription: "Subscription" @@ -762,7 +742,6 @@ es: a_problem_occurred_while_taking_the_subscription: "Se ha producido un problema al realizar la suscripción." wallet: "Wallet" to_credit: 'Credit' - admins_new: #add a new administrator to the platform add_an_administrator: "Agregar un administrador" @@ -781,9 +760,8 @@ es: birth_date: "Date of birth" address: "Address" phone_number: "Phone number" - authentication_new: - # add a new authentication provider (SSO) + #add a new authentication provider (SSO) local_database: "Base de datos local" o_auth2: "OAuth 2.0" add_a_new_authentication_provider: "Agregar un nuevo proveedor de autenticación" @@ -796,14 +774,12 @@ es: do_you_really_want_to_continue: "¿De verdad quieres continuar?" unsecured_oauth2_provider_successfully_added: "Proveedor de OAuth 2.0 no seguro, se ha agregado correctamente." oauth2_provider_successfully_added: "OAuth 2.0 proveedor agregado correctamente." - authentication_edit: #edit an authentication provider (SSO) provider: "Proveedor :" it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "Es necesario establecer la coincidencia entre User.uid y la API para agregar este proveedor" provider_successfully_updated: "Proveedor actualizado correctamente" an_error_occurred_unable_to_update_the_provider: "Se ha producido un error: no se puede actualizar el proveedor." - statistics: #statistics tables statistics: "Statistics" @@ -819,8 +795,8 @@ es: criterion: "Criterio:" value: "Valor:" exclude: "Excluir" - from_date: "From" # eg: from 01/01 to 01/05 - to_date: "to" # eg: from 01/01 to 01/05 + from_date: "From" #eg: from 01/01 to 01/05 + to_date: "to" #eg: from 01/01 to 01/05 entries: "Entradas:" revenue_: "Ingresos:" average_age: "Edad media:" @@ -847,15 +823,14 @@ es: export_is_running_you_ll_be_notified_when_its_ready: "Export is running. You'll be notified when it's ready." create_plans_to_start: "Start by creating new subscription plans." click_here: "Click here to create your first one." - stats_graphs: #statistics graphs statistics: "Statistics" data: "Datos" day: "Dia" week: "Semana" - from_date: "From" # eg: from 01/01 to 01/05 - to_date: "to" # eg: from 01/01 to 01/05 + from_date: "From" # eg: from 01/01 to 01/05 + to_date: "to" # eg: from 01/01 to 01/05 month: "Month" start: "Inicio:" end: "Final:" @@ -867,9 +842,8 @@ es: week_of_START_to_END: "Semana del {START} a {END}" no_data_for_this_period: "No hay datos para este periodo" date: "Date" - settings: - # global application parameters and customization + #global application parameters and customization title: "Título" customize_the_application: "Personalizar la aplicación" general: "General" @@ -1029,7 +1003,6 @@ es: online_payment: "Is the online payment module active?" invoices: "Is the invoicing module active?" openlab: "Is the project sharing module (OpenLab) active?" - open_api_clients: add_new_client: "Crear un nuevo cliente de API" api_documentation: "Documentation API" @@ -1047,21 +1020,18 @@ es: client_successfully_updated: "Cliente actualizado correctamente." client_successfully_deleted: "Cliente borrado correctamente." access_successfully_revoked: "Acceso revocado correctamente." - space_new: - # create a new space + #create a new space 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." 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 + #modify an exiting space edit_the_space_NAME: "Edit the space: {NAME}" validate_the_changes: "Validar los cambios" - manage_abuses: - # process and delete abuses reports + #process and delete abuses reports abuses_list: "Lista de informes" no_reports: "No informes por ahora" published_by: "published by" @@ -1071,7 +1041,6 @@ es: report_will_be_destroyed: "Once the report has been processed, it will be deleted. This can't be undone, continue?" report_removed: "The report has been deleted" failed_to_remove: "An error occurred, unable to delete the report" - tour: conclusion: title: "Thank you for your attention" diff --git a/config/locales/app.admin.fr.yml b/config/locales/app.admin.fr.yml index 7de812b7e..e55e8443d 100644 --- a/config/locales/app.admin.fr.yml +++ b/config/locales/app.admin.fr.yml @@ -2,17 +2,15 @@ fr: app: admin: machines_new: - # ajout d'une nouvelle machine + #ajout d'une nouvelle machine declare_a_new_machine: "Déclarer une nouvelle machine" watch_out_when_creating_a_new_machine_its_prices_are_initialized_at_0_for_all_subscriptions: "Attention, lors de la création d'une machine, ses tarifs de réservation sont initialisés à zero pour tous les abonnements." consider_changing_them_before_creating_any_reservation_slot: "Pensez à les modifier avant de créer des créneaux pour cette machine." - machines_edit: - # edition d'une machine + #edition d'une machine machine_edit: "Modifier une machine" - calendar: - # gestion des créneaux machines et formations + #gestion des créneaux machines et formations calendar_management: "Gestion du calendrier" trainings: "Formations" machines: "Machines" @@ -49,7 +47,7 @@ fr: manage_trainings: "Cliquez-ici pour ajouter ou supprimer des formations." number_of_tickets: "Nombre de places : " adjust_the_opening_hours: "Ajuster l'horaire" - to_time: "à" # eg. from 18:00 to 21:00 + to_time: "à" #eg. from 18:00 to 21:00 restrict_options: "Options de restriction" restrict_with_labels: "Restreindre ce créneau avec des étiquettes" restrict_for_subscriptions: "Restreindre ce créneau pour les abonnements" @@ -100,7 +98,6 @@ fr: legend: "Légende" and: "et" external_sync: "Synchronisation d'agendas" - icalendar: icalendar_import: "Import iCalendar" intro: "Fab-manager vous permet d'importer automatiquement des évènements de calendrier, au format iCalendar RFC 5545, depuis des URL externes. Ces URL seront synchronisée toutes les heures et les évènements seront affichés dans le calendrier publique. Vous pouvez aussi déclencher une synchronisation en cliquant sur le bouton correspondant, en face de chaque import." @@ -121,9 +118,8 @@ fr: confirmation_required: "Confirmation requise" confirm_delete_import: "Êtes-vous sur de vouloir supprimer cet import iCalendar ?" delete_success: "L'import iCalendar a bien été supprimé" - project_elements: - # gestion des éléments constituant les projets + #gestion des éléments constituant les projets name: "Nom" projects_elements_management: "Gestion des éléments projets" materials: "Matériaux" @@ -134,9 +130,8 @@ fr: description: "Description" add_a_new_licence: "Ajouter une nouvelle licence" manage_abuses: "Gérer les signalements" - trainings: - # suivre et surveiller les formations + #suivre et surveiller les formations trainings_monitoring: "Suivi formations" plan_session: "Planifier une nouvelle session" trainings: "Formations" @@ -168,15 +163,13 @@ fr: status_enabled: "Actifs" status_disabled: "Désactivés" status_all: "Tous" - trainings_new: - # créer une nouvelle formation + #créer une nouvelle formation add_a_new_training: "Ajouter une nouvelle formation" beware_when_creating_a_training_its_reservation_prices_are_initialized_to_zero: "Attention, lors de la création d'une formation, ses tarifs de réservation sont initialisés à zero." dont_forget_to_change_them_before_creating_slots_for_this_training: "Pensez à les modifier avant de créer des créneaux pour cette formation." - events: - # gestion et suivi des évènements + #gestion et suivi des évènements events_monitoring: "Suivi des évènements" manage_filters: "Gérer les filtres" fablab_events: "Les évènements du Fab Lab" @@ -188,8 +181,8 @@ fr: on_DATE: "le {DATE}" from_DATE: "du {DATE}" from_TIME: "de {TIME}" - to_date: "au" # eg: from 01/01 to 01/05 - to_time: "à" # eg. from 18:00 to 21:00 + to_date: "au" #eg: from 01/01 to 01/05 + to_time: "à" #eg. from 18:00 to 21:00 title: "Titre" dates: "Dates" booking: "Réservations" @@ -229,18 +222,16 @@ fr: do_you_really_want_to_delete_this_price_category: "Êtes vous sur de vouloir supprimer cette catégorie tarifaire ?" price_category_successfully_deleted: "Catégorie tarifaire supprimée avec succès." price_category_deletion_failed: "Échec de la suppression de la catégorie tarifaire." - events_new: - # ajouter un nouvel évènement + #ajouter un nouvel évènement add_an_event: "Ajouter un évènement" none: "Aucune" every_days: "Tous les jours" every_week: "Chaque semaine" every_month: "Chaque mois" every_year: "Chaque année" - events_edit: - # modifier un évènement existant + #modifier un évènement existant edit_the_event: "Éditer l'évènement" confirmation_required: "Confirmation requise" edit_recurring_event: "Vous êtes sur le point de modifier un évènement périodique. Que voulez-vous modifier ?" @@ -254,9 +245,8 @@ fr: events_not_updated: "Sur {TOTAL} évènements, {COUNT, plural, =1{un n'a pas pu être modifié} other{{COUNT} n'ont pas pu être modifiés}}." error_deleting_reserved_price: "Impossible de supprimer le tarif demandé car il est associé à des réservations" other_error: "Une erreur inattendue est survenue lors de la mise à jour de l'évènement" - event_reservations: - # liste des réservations sur un évènement + #liste des réservations sur un évènement the_reservations: "Les réservations :" user: "Utilisateur" payment_date: "Date de paiement" @@ -266,9 +256,8 @@ fr: no_reservations_for_now: "Aucune réservation pour le moment." back_to_monitoring: "Retour au suivi" canceled: "Annulée" - pricing: - # gestion des abonnements, des tarifs, des crédits et des codes promo + #gestion des abonnements, des tarifs, des crédits et des codes promo pricing_management: "Gestion de la tarification" subscriptions: "Abonnements" trainings: "Formations" @@ -297,7 +286,7 @@ fr: hours: "Créneaux de {DURATION} minutes" related_subscriptions: "Abonnements associés" please_specify_a_number: "Veuillez spécifier un nombre." - none: "Aucune" # grammar concordance with training. + none: "Aucune" #grammar concordance with training. an_error_occurred_while_saving_the_number_of_credits: "Une erreur est survenue lors de l'enregistrement du nombre de crédits." an_error_occurred_while_deleting_credit_with_the_TRAINING: "Une erreur est survenue lors de la suppression du crédit avec la {TRAINING}." an_error_occurred_unable_to_find_the_credit_to_revoke: "Une erreur est survenue : impossible de retrouver le crédit à enlever." @@ -347,26 +336,23 @@ fr: status_enabled: "Actifs" status_disabled: "Désactivés" status_all: "Tous" - coupons_new: - # ajouter un code promotionnel + #ajouter un code promotionnel add_a_coupon: "Ajouter un code promotionnel" unable_to_create_the_coupon_check_code_already_used: "Impossible de créer le code promotionnel. Vérifiez que le code n'est pas utilisé." - coupons_edit: - # mettre à jour un code promotionnel + #mettre à jour un code promotionnel coupon: "Code promo :" unable_to_update_the_coupon_an_error_occurred: "Impossible de mettre à jour le code promotionnel : une erreur est survenue." - plans: new: - # ajouter une formule d'abonnement sur la plate-forme + #ajouter une formule d'abonnement sur la plate-forme add_a_subscription_plan: "Ajouter une formule d'abonnement" unable_to_create_the_subscription_please_try_again: "L'abonnement n'a pas pu être créé. Veuillez réessayer." successfully_created_subscriptions_dont_forget_to_redefine_prices: "Création du/des abonnement(s) réussie. N'oubliez pas de redéfinir les tarifs." unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Impossible d'enregistrer cet utilisateur. Vérifiez qu'il n'existe pas déjà un utilisateur du même nom." edit: - # modifier une formule d'abonnement / les prix des créneaux machines + #modifier une formule d'abonnement / les prix des créneaux machines subscription_plan: "Formule d'abonnement :" prices: "Tarifs" copy_prices_from: "Copier les prix depuis" @@ -377,9 +363,8 @@ fr: space: "Espace" unable_to_save_subscription_changes_please_try_again: "Les modifications de l'abonnement n'ont pas pu être enregistrées. Veuillez réessayer." subscription_successfully_changed: "Modification de l'abonnement réussie." - invoices: - # liste de toutes les factures & paramètres de facturation + #liste de toutes les factures & paramètres de facturation invoices: "Factures" accounting_periods: "Périodes comptables" invoices_list: "Liste des factures" @@ -477,7 +462,7 @@ fr: description: "Description" description_optional: "Description (optionnelle) :" will_appear_on_the_refund_invoice: "Apparaîtra sur la facture de remboursement." - none: "Aucun" # grammar concordance with payment mean + none: "Aucun" #grammar concordance with payment mean by_cash: "En espèces" by_cheque: "Par chèque" by_transfer: "Par virement" @@ -595,9 +580,8 @@ fr: debit_euro: "Débit euro" credit_euro: "Crédit euro" lettering: "Lettrage" - members: - # gestion des utilisateurs, des groupes, des étiquettes, etc. + #gestion des utilisateurs, des groupes, des étiquettes, etc. users_management: "Gestion des utilisateurs" members: "Membres" subscriptions: "Abonnements" @@ -675,14 +659,12 @@ fr: member_filter_all: "Tous" member_filter_not_confirmed: "Non confirmés" member_filter_inactive_for_3_years: "Inactifs depuis 3 ans" - members_new: - # ajouter un membre + #ajouter un membre add_a_member: "Ajouter un membre" user_is_an_organization: "L'utilisateur est une structure" - members_import: - # import massif de members + #import massif de members import_members: "Importer des membres" info: "Vous pouvez téléverser un fichier CSV afin de créer des nouveaux membres ou de mettre à jour les existants. Votre fichier doit utiliser les identifiants ci-dessous pour spécifier le groupe, les formations et les étiquettes des membres." required_fields: "Votre fichier doit obligatoirement comporter, au minimum, les informations suivantes pour chaque utilisateur à créer : courriel, nom, prénom et groupe. Si le mot passe n'est pas rempli, il sera généré automatiquement. Lors d'une mise à jour, les champs non remplis seront gardés tel quels." @@ -706,9 +688,8 @@ fr: update_on_id: "ID" update_on_username: "Pseudonyme" update_on_email: "Adresse de courriel" - members_import_result: - # résultats de l'import + #résultats de l'import import_results: "Résultats de l'import" import_details: "Import n°{ID}, du {DATE}, initié par {USER}" results: "Résultats" @@ -718,9 +699,8 @@ fr: success: "Succès" failed: "Échec" error_details: "Détails de l'erreur :" - members_edit: - # modifier un membre + #modifier un membre subscription: "Abonnement" duration: "Durée :" expires_at: "Expire le :" @@ -762,9 +742,8 @@ fr: a_problem_occurred_while_taking_the_subscription: "Il y a eu un problème lors de la souscription à l'abonnement" wallet: "Porte-monnaie" to_credit: 'Créditer' - admins_new: - # ajouter un nouvel administrateur à la plate-forme + #ajouter un nouvel administrateur à la plate-forme add_an_administrator: "Ajouter un administrateur" administrator_successfully_created_he_will_receive_his_connection_directives_by_email: "L'administrateur a bien été créé. {GENDER, select, female{Elle} other{Il}} recevra ses instructions de connexion par email." failed_to_create_admin: "Impossible de créer l'administrateur :" @@ -781,9 +760,8 @@ fr: birth_date: "Date de naissance" address: "Adresse" phone_number: "Numéro de téléphone" - authentication_new: - # ajouter un nouveau fournisseur d'authentification (SSO) + #ajouter un nouveau fournisseur d'authentification (SSO) local_database: "Base de données locale" o_auth2: "OAuth 2.0" add_a_new_authentication_provider: "Ajouter un fournisseur d'authentification" @@ -796,21 +774,19 @@ fr: do_you_really_want_to_continue: "Êtes vous sur de vouloir continuer ?" unsecured_oauth2_provider_successfully_added: "Le fournisseur OAuth 2.0 (non sécurisé) a bien été enregistré." oauth2_provider_successfully_added: "Le fournisseur OAuth 2.0 a bien été enregistré." - authentication_edit: - # modifier un fournisseur d'authentification (SSO) + #modifier un fournisseur d'authentification (SSO) provider: "Fournisseur :" it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "Il est obligatoire d'établir la correspondance entre User.uid et l'API pour pouvoir ajouter ce fournisseur." provider_successfully_updated: "Le fournisseur a bien été mis à jour." an_error_occurred_unable_to_update_the_provider: "Une error est survenue : impossible de mettre à jour le fournisseur." - statistics: - # tableau de statistiques + #tableau de statistiques statistics: "Statistiques" evolution: "évolution" age_filter: "Filtre d'âge" - from_age: "De" # eg: from 8 to 40 years old - to_age: "à" # eg: from 8 to 40 years old + from_age: "De" #eg: from 8 to 40 years old + to_age: "à" #eg: from 8 to 40 years old _years_old: "ans" start: "Début :" end: "Fin :" @@ -819,8 +795,8 @@ fr: criterion: "Critère :" value: "Valeur :" exclude: "Exclure" - from_date: "Du" # eg: from 01/01 to 01/05 - to_date: "au" # eg: from 01/01 to 01/05 + from_date: "Du" #eg: from 01/01 to 01/05 + to_date: "au" #eg: from 01/01 to 01/05 entries: "Entrées :" revenue_: "Chiffre d'affaires :" average_age: "Âge moyen :" @@ -847,15 +823,14 @@ fr: export_is_running_you_ll_be_notified_when_its_ready: "L'export est en cours. Vous serez notifié lorsqu'il sera prêt." create_plans_to_start: "Pour commencer, créez de nouvelles formules d'abonnement." click_here: "Cliquez ici pour créer votre première formule." - stats_graphs: - # graphiques de statistiques + #graphiques de statistiques statistics: "Statistiques" data: "Données" day: "Jour" week: "Semaine" - from_date: "Du" # eg: from 01/01 to 01/05 - to_date: "au" # eg: from 01/01 to 01/05 + from_date: "Du" #eg: from 01/01 to 01/05 + to_date: "au" #eg: from 01/01 to 01/05 month: "Mois" start: "Début :" end: "Fin :" @@ -867,9 +842,8 @@ fr: week_of_START_to_END: "Semaine du {START} au {END}" no_data_for_this_period: "Pas de données pour cette période" date: "Date" - settings: - # paramètres globaux de l'application et personnalisation + #paramètres globaux de l'application et personnalisation title: "Titre" customize_the_application: "Personnalisation de l'application" general: "Général" @@ -1029,7 +1003,6 @@ fr: online_payment: "Le module de paiement par carte bancaire est-il actif ?" invoices: "Le module est facturation est-il actif ?" openlab: "Le module de partage de projets (OpenLab) est-il actif ?" - open_api_clients: add_new_client: "Créer un compte client" api_documentation: "Documentation de l'API" @@ -1047,21 +1020,18 @@ fr: client_successfully_updated: "Les modifications ont été enregistrées." client_successfully_deleted: "Le compte client a bien été supprimé." access_successfully_revoked: "L'accès a bien été revoqué." - space_new: - # créer un nouvel espace + #créer un nouvel espace add_a_new_space: "Ajouter un nouvel espace" watch_out_when_creating_a_new_space_its_prices_are_initialized_at_0_for_all_subscriptions: "Attention, lors de la création d'un espace, ses tarifs de réservation sont initialisés à zero pour tous les abonnements." consider_changing_its_prices_before_creating_any_reservation_slot: "Pensez à modifier ces prix avant de créer des créneaux pour cet espace." add_this_space: "Ajouter cet espace" - space_edit: - # modifier un espace existant + #modifier un espace existant edit_the_space_NAME: "Modifier l'espace : {NAME}" validate_the_changes: "Valider les modifications" - manage_abuses: - # traiter et supprimer les rapports d'abus + #traiter et supprimer les rapports d'abus abuses_list: "Liste des signalements" no_reports: "Aucun signalement pour le moment" published_by: "publié par" diff --git a/config/locales/app.admin.pt.yml b/config/locales/app.admin.pt.yml index 7aa637e4a..00c95c3db 100755 --- a/config/locales/app.admin.pt.yml +++ b/config/locales/app.admin.pt.yml @@ -2,17 +2,15 @@ pt: app: admin: machines_new: - # add a new machine + #add a new machine declare_a_new_machine: "Criar nova máquina" watch_out_when_creating_a_new_machine_its_prices_are_initialized_at_0_for_all_subscriptions: "Cuidado! Ao criar uma nova máquina, os preços são inicializados em 0 para todas as assinaturas." consider_changing_them_before_creating_any_reservation_slot: "Concidere alterá-lo antes de criar qualquer slot de reserva." - machines_edit: - # machine edition + #machine edition machine_edit: "Editar máquina" - calendar: - # manage the trainings & machines slots + #manage the trainings & machines slots calendar_management: "Gerenciamento do calendário" trainings: "Treinamentos" machines: "Máquinas" @@ -49,7 +47,7 @@ pt: manage_trainings: "Click here to add or remove trainings." number_of_tickets: "Número de vagas: " adjust_the_opening_hours: "Ajustar o horário de funcionamento" - to_time: "ás" # eg. from 18:00 to 21:00 + to_time: "ás" #eg. from 18:00 to 21:00 restrict_options: "Restriction options" restrict_with_labels: "Restrinja este slot com etiquetas" restrict_for_subscriptions: "Restrict this slot for subscription users" @@ -100,7 +98,6 @@ pt: legend: "legenda" and: "and" external_sync: "Calendar synchronization" - icalendar: icalendar_import: "iCalendar import" intro: "Fab-manager allows to automatically import calendar events, at RFC 5545 iCalendar format, from external URL. These URL are synchronized every hours and the events are shown in the public calendar. You can trigger a synchronisation too, by clicking on the corresponding button, in front of each import." @@ -121,9 +118,8 @@ pt: confirmation_required: "Confirmation required" confirm_delete_import: "Do you really want to delete this iCalendar import?" delete_success: "iCalendar import successfully deleted" - project_elements: - # management of the projects' components + #management of the projects' components name: "Name" projects_elements_management: "Gerenciar projetos e elementos" materials: "Materials" @@ -134,9 +130,8 @@ pt: description: "Description" add_a_new_licence: "Adicionar uma nova licença" manage_abuses: "Gerenciar relatórios" - trainings: - # track and monitor the trainings + #track and monitor the trainings trainings_monitoring: "Trainings monitoring" plan_session: "Schedule a new session" trainings: "Treinamentos" @@ -168,15 +163,13 @@ pt: status_enabled: "Ativos" status_disabled: "Desabilitados" status_all: "Todos" - trainings_new: - # create a new training + #create a new training add_a_new_training: "Adicionar um novo treinamento" beware_when_creating_a_training_its_reservation_prices_are_initialized_to_zero: "Cuidado, ao criar um treinamento, seu preço de reserva é inicializado em zero." dont_forget_to_change_them_before_creating_slots_for_this_training: "Não se esqueça de alterá-lo antes de criar slots para este treinamento." - events: - # events tracking and management + #events tracking and management events_monitoring: "Monitoramento de eventos" manage_filters: "Gerenciar filtros" fablab_events: "Eventos do FabLab" @@ -188,8 +181,8 @@ pt: on_DATE: "No {DATE}" from_DATE: "Em {DATE}" from_TIME: "Ás {TIME}" - to_date: "to" # eg: from 01/01 to 01/05 - to_time: "to" # eg. from 18:00 to 21:00 + to_date: "to" #eg: from 01/01 to 01/05 + to_time: "to" #eg. from 18:00 to 21:00 title: "Title" dates: "Dates" booking: "Reserva" @@ -229,18 +222,16 @@ pt: do_you_really_want_to_delete_this_price_category: "Você realmente quer deletar este preço de categoria?" price_category_successfully_deleted: "Preço de categoria deletado com sucesso." price_category_deletion_failed: "Falha ao deletar preço de categoria." - events_new: - # add a new event + #add a new event add_an_event: "Add an event" none: "Vazio" every_days: "Todos os dias" every_week: "Toda semana" every_month: "Todo mês" every_year: "Todo ano" - events_edit: - # edit an existing event + #edit an existing event edit_the_event: "Editar evento" confirmation_required: "Confirmation required" edit_recurring_event: "You're about to update a periodic event. What do you want to update ?" @@ -254,9 +245,8 @@ pt: events_not_updated: "On {TOTAL} events, {COUNT, plural, =1{one was not updated} other{{COUNT} were not deleted}}." error_deleting_reserved_price: "Não permitido deletar o preço requisitado, pois está associado a algumas reservas" other_error: "Um erro inesperado ocorreu enquanto o evento era atualizado" - event_reservations: - # event reservations list + #event reservations list the_reservations: "Reservas :" user: "User" payment_date: "Data de pagamento" @@ -266,9 +256,8 @@ pt: no_reservations_for_now: "Nenhuma reserva." back_to_monitoring: "Voltar ao monitoramento" canceled: "cancelada" - pricing: - # subscriptions, prices, credits and coupons management + #subscriptions, prices, credits and coupons management pricing_management: "Gerenciamento de preços" subscriptions: "Inscrições" trainings: "Treinamentos" @@ -297,7 +286,7 @@ pt: hours: "Slots of {DURATION} minutes" related_subscriptions: "Assinaturas relacionadas" please_specify_a_number: "Por favor especifique um número." - none: "Vazio" # grammar concordance with training. + none: "Vazio" #grammar concordance with training. an_error_occurred_while_saving_the_number_of_credits: "Um erro ocorreu enquanto era salvo o número de créditos." an_error_occurred_while_deleting_credit_with_the_TRAINING: "Um erro ocorreu enquanto o crédito era deletado do {TRAINING}." an_error_occurred_unable_to_find_the_credit_to_revoke: "Um erro ocorreu : incapaz de encontrar o crédito para revogar." @@ -347,26 +336,23 @@ pt: status_enabled: "Ativos" status_disabled: "Desabilitados" status_all: "Todos" - coupons_new: - # ajouter un code promotionnel + #ajouter un code promotionnel add_a_coupon: "Adicionar cupom" unable_to_create_the_coupon_check_code_already_used: "Impossível criar cupom. Por favor certifique-se que o código já não foi utilizado" - coupons_edit: - # mettre à jour un code promotionnel + #mettre à jour un code promotionnel coupon: "Coupon:" unable_to_update_the_coupon_an_error_occurred: "Impossível atualizar cupom: um erro ocorreu." - plans: new: - # add a subscription plan on the platform + #add a subscription plan on the platform add_a_subscription_plan: "Adicionar plano de assinatura" unable_to_create_the_subscription_please_try_again: "Não é possível criar plano de assinatura. por favor tente novamente." successfully_created_subscriptions_dont_forget_to_redefine_prices: "Assinaturas criadas com sucesso. Não se esqueça de redefinir os preços." unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Impossível salvar este usuário. Certifique-se que ele não possui o mesmo nome de outro usuário." edit: - # edit a subscription plan / machine slot prices + #edit a subscription plan / machine slot prices subscription_plan: "Plano de assinatura:" prices: "Preços" copy_prices_from: "Copiar preços de" @@ -377,9 +363,8 @@ pt: space: "Espaço" unable_to_save_subscription_changes_please_try_again: "Impossível salvar mudanças da assinatura. Por favor tente novamente." subscription_successfully_changed: "Assinatura alterada com sucesso." - invoices: - # list of all invoices & invoicing parameters + #list of all invoices & invoicing parameters invoices: "Faturas" accounting_periods: "Accounting periods" invoices_list: "Lista de faturas" @@ -425,7 +410,7 @@ pt: year: "Ano" month: "Mês" day: "Dia" - num_of_invoice: "# da fatura" + num_of_invoice: "#da fatura" online_sales: "Vendas online" wallet: "Carteira" refund: "Restituição" @@ -477,7 +462,7 @@ pt: description: "Descrição" description_optional: "Descrição (optional):" will_appear_on_the_refund_invoice: "Aparecerá na fatura de reembolso." - none: "Vazio" # grammar concordance with payment mean + none: "Vazio" #grammar concordance with payment mean by_cash: "Em dinheiro" by_cheque: "Em cheque" by_transfer: "Por transferência" @@ -595,9 +580,8 @@ pt: debit_euro: "Euro debit" credit_euro: "Euro credit" lettering: "Lettering" - members: - # management of users, labels, groups, and so on + #management of users, labels, groups, and so on users_management: "Gerenciamento de usuários" members: "Membros" subscriptions: "Subscriptions" @@ -675,14 +659,12 @@ pt: member_filter_all: "All" member_filter_not_confirmed: "Unconfirmed" member_filter_inactive_for_3_years: "Inactive for 3 years" - members_new: - # add a member + #add a member add_a_member: "Adicionar membro" user_is_an_organization: "Usuário é uma organização" - members_import: - # members bulk import + #members bulk import import_members: "Import members" info: "You can upload a CSV file to create new members or update existing ones. Your file must user the identifiers below to specify the group, the trainings and the tags of the members." required_fields: "Your file must contain, at least, the following information for each user to create: email, name, first name and group. If the password is empty, it will be generated. On updates, the empty fields will be kept as is." @@ -706,9 +688,8 @@ pt: update_on_id: "ID" update_on_username: "Username" update_on_email: "Email address" - members_import_result: - # import results + #import results import_results: "Import results" import_details: "Import #{ID}, of {DATE}, initiated by {USER}" results: "Results" @@ -718,9 +699,8 @@ pt: success: "Success" failed: "Failed" error_details: "Error's details:" - members_edit: - # edit a member + #edit a member subscription: "Subscription" duration: "Duração:" expires_at: "Experia em:" @@ -762,9 +742,8 @@ pt: a_problem_occurred_while_taking_the_subscription: "Ocorreu um problema ao fazer a assinatura" wallet: "Wallet" to_credit: 'Credit' - admins_new: - # add a new administrator to the platform + #add a new administrator to the platform add_an_administrator: "Adicionar administrador" administrator_successfully_created_he_will_receive_his_connection_directives_by_email: "Administrator criado com sucesso. {GENDER, select, female{Ela} other{Ele}} receberá {GENDER, select, female{sua} other{seu}} diretivas de conexão por e-mail." failed_to_create_admin: "Não é possível criar administrador:" @@ -781,9 +760,8 @@ pt: birth_date: "Date of birth" address: "Address" phone_number: "Phone number" - authentication_new: - # add a new authentication provider (SSO) + #add a new authentication provider (SSO) local_database: "Local Database" o_auth2: "OAuth 2.0" add_a_new_authentication_provider: "Adicionar novo provedor de autenticação" @@ -796,21 +774,19 @@ pt: do_you_really_want_to_continue: "Você realmente deseja continuar?" unsecured_oauth2_provider_successfully_added: "Provedor OAuth 2.0 não seguro adicionado com êxito." oauth2_provider_successfully_added: "Provedor OAuth 2.0 adicionado com sucesso." - authentication_edit: - # edit an authentication provider (SSO) + #edit an authentication provider (SSO) provider: "Provedor :" it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "É necessário definir a correspondência entre User.uid ea API para adicionar este fornecedor" provider_successfully_updated: "Provedor modificado com sucesso" an_error_occurred_unable_to_update_the_provider: "Um erro ocorreu: não é possível atualizar provedor." - statistics: - # statistics tables + #statistics tables statistics: "Statistics" evolution: "Evolução" age_filter: "Filtro de idade" - from_age: "Dos" # eg: from 8 to 40 years old - to_age: "aos" # eg: from 8 to 40 years old + from_age: "Dos" #eg: from 8 to 40 years old + to_age: "aos" #eg: from 8 to 40 years old _years_old: "anos de idade" start: "Início:" end: "Fim:" @@ -819,8 +795,8 @@ pt: criterion: "Critério:" value: "Valor:" exclude: "Excluir" - from_date: "From" # eg: from 01/01 to 01/05 - to_date: "to" # eg: from 01/01 to 01/05 + from_date: "From" #eg: from 01/01 to 01/05 + to_date: "to" #eg: from 01/01 to 01/05 entries: "Entradas:" revenue_: "Receita:" average_age: "Idade média:" @@ -847,15 +823,14 @@ pt: export_is_running_you_ll_be_notified_when_its_ready: "Export is running. You'll be notified when it's ready." create_plans_to_start: "Start by creating new subscription plans." click_here: "Click here to create your first one." - stats_graphs: - # statistics graphs + #statistics graphs statistics: "Statistics" data: "Dado" day: "Dia" week: "Semana" - from_date: "From" # eg: from 01/01 to 01/05 - to_date: "to" # eg: from 01/01 to 01/05 + from_date: "From" #eg: from 01/01 to 01/05 + to_date: "to" #eg: from 01/01 to 01/05 month: "Month" start: "Início:" end: "Fim:" @@ -867,9 +842,8 @@ pt: week_of_START_to_END: "Semana de {START} á {END}" no_data_for_this_period: "Nenhum dado para este período" date: "Date" - settings: - # global application parameters and customization + #global application parameters and customization title: "Title" customize_the_application: "Customizar a aplicação" general: "Geral" @@ -1029,7 +1003,6 @@ pt: online_payment: "Is the online payment module active?" invoices: "Is the invoicing module active?" openlab: "Is the project sharing module (OpenLab) active?" - open_api_clients: add_new_client: "Criar novo cliente de API" api_documentation: "Documentação da API" @@ -1047,21 +1020,18 @@ pt: client_successfully_updated: "Cliente alterado com sucesso." client_successfully_deleted: "Cliente excluído com sucesso." access_successfully_revoked: "Acesso revogado com sucesso." - space_new: - # create a new space + #create a new space add_a_new_space: "Adicionar um novo espaço" watch_out_when_creating_a_new_space_its_prices_are_initialized_at_0_for_all_subscriptions: "Cuidado! Ao criar um novo espaço, seus preços são inicializados em 0 para todas as assinaturas." consider_changing_its_prices_before_creating_any_reservation_slot: "Considere alterar seus preços antes de criar qualquer slot de reserva." add_this_space: "Adicionar este espaço" - space_edit: - # modify an exiting space + #modify an exiting space edit_the_space_NAME: "Editar o espaço: {NAME}" validate_the_changes: "Validar mudanças" - manage_abuses: - # process and delete abuses reports + #process and delete abuses reports abuses_list: "Lista de relatórios" no_reports: "Não há relatos de agora" published_by: "published by" @@ -1071,7 +1041,6 @@ pt: report_will_be_destroyed: "Once the report has been processed, it will be deleted. This can't be undone, continue?" report_removed: "The report has been deleted" failed_to_remove: "An error occurred, unable to delete the report" - tour: conclusion: title: "Thank you for your attention" diff --git a/config/locales/app.logged.en.yml b/config/locales/app.logged.en.yml index 753a20fde..97308ec37 100644 --- a/config/locales/app.logged.en.yml +++ b/config/locales/app.logged.en.yml @@ -2,7 +2,7 @@ en: app: logged: profile_completion: - # user's profile completion page when logging from an SSO provider + #user's profile completion page when logging from an SSO provider confirm_your_new_account: "Confirm your new account" you_ve_just_created_a_new_account_on_the_fablab_by_logging_from: "You've just created a new account on {GENDER, select, neutral{} other{the}} {NAME}, by logging from" we_need_some_more_details: "To finalize the platform setup, we need some more details" @@ -39,13 +39,12 @@ en: _click_on_the_synchronization_button_opposite_: "click on the synchronization button opposite" _disconnect_then_reconnect_: "disconnect then reconnect" _for_your_changes_to_take_effect: "for your changes to take effect." - dashboard: - # dashboard: public profile + #dashboard: public profile profile: empty: '' settings: - # dashboard: edit my profile + #dashboard: edit my profile last_activity_on_: "Last activity on" i_want_to_change_group: "I want to change group!" your_subscription_expires_on_: "Your subscription expires on" @@ -93,7 +92,7 @@ en: _disconnect_then_reconnect_: "disconnect then reconnect" _for_your_changes_to_take_effect: "for your changes to take effect." projects: - # dashboard: my projects + #dashboard: my projects you_dont_have_any_projects: "You don't have any projects." add_a_project: "Add a project" author: "Author" @@ -105,13 +104,13 @@ en: materials: "Materials" collaborators: "Collaborators" trainings: - # dashboard: my trainings + #dashboard: my trainings your_next_trainings: "Your next trainings" your_previous_trainings: "Your previous trainings" your_approved_trainings: "Your approved trainings" no_trainings: "No trainings" events: - # dashboard: my events + #dashboard: my events your_next_events: "Your next events" no_events_to_come: "No events to come" your_previous_events: "Your previous events" @@ -119,20 +118,18 @@ en: NUMBER_normal_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{normal place reserved} other{normal places reserved}}" NUMBER_of_NAME_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{of {NAME} place reserved} other{of {NAME} places reserved}}" invoices: - # dashboard: my invoices + #dashboard: my invoices reference_number: "Reference number" date: "Date" price: "Price" download_the_invoice: "Download the invoice" download_the_credit_note: "Download the refund invoice" no_invoices_for_now: "No invoices for now." - members_show: - # public profil of a member + #public profil of a member members_list: "Members list" - members: - # list of members accepting to be contacted + #list of members accepting to be contacted the_fablab_members: "The Fab Lab members" display_more_members: "Display more members..." no_members_for_now: "No members for now" @@ -140,19 +137,16 @@ en: user: "User" pseudonym: "Pseudonym" email_address: "Email address" - projects_new: - # add a new project + #add a new project add_a_new_project: "Add a new project" - projects_edit: - # modify an existing project + #modify an existing project edit_the_project: "Edit the project" rough_draft: "Draft" publish: "Publish" - machines_reserve: - # book a machine + #book a machine machine_planning: "Machine planning" i_ve_reserved: "I've reserved" not_available: "Not available" @@ -163,24 +157,21 @@ en: reservation_was_cancelled_successfully: "Reservation was cancelled successfully." cancellation_failed: "Cancellation failed." a_problem_occured_during_the_payment_process_please_try_again_later: "A problem occurred during the payment process. Please try again later." - trainings_reserve: - # book a training + #book a training trainings_planning: "Trainings planning" - planning_of: "Planning of" # followed by the training name (eg. "Planning of 3d printer training") + planning_of: "Planning of" #followed by the training name (eg. Planning of 3d printer training) all_trainings: "All trainings" cancel_my_selection: "Cancel my selection" i_change: "I change" i_shift: "I shift" i_ve_reserved: "I've reserved" - space_reserve: - # book a space + #book a space planning_of_space_NAME: "Planning of the {NAME} space" i_ve_reserved: "I've reserved" i_shift: "I shift" i_change: "I change" - notifications: notifications_center: "Notifications center" mark_all_as_read: "Mark all as read" diff --git a/config/locales/app.logged.es.yml b/config/locales/app.logged.es.yml index e1b2e9556..faf628241 100644 --- a/config/locales/app.logged.es.yml +++ b/config/locales/app.logged.es.yml @@ -39,7 +39,6 @@ es: _click_on_the_synchronization_button_opposite_: "click on the synchronization button opposite" _disconnect_then_reconnect_: "disconnect then reconnect" _for_your_changes_to_take_effect: "for your changes to take effect." - dashboard: # dashboard: public profile profile: @@ -126,11 +125,9 @@ es: download_the_invoice: "Download the invoice" download_the_credit_note: "Download the refund invoice" no_invoices_for_now: "No invoices for now." - members_show: # public profil of a member members_list: "Lista de miembros" - members: # list of members accepting to be contacted the_fablab_members: "Los miembros del fablab" @@ -140,17 +137,14 @@ es: user: "User" pseudonym: "Pseudonym" email_address: "Email address" - projects_new: # add a new project add_a_new_project: "Añadir nuevo proyecto" - projects_edit: # modify an existing project edit_the_project: "Editar proyecto" rough_draft: "Draft" publish: "Publicar" - machines_reserve: # book a machine machine_planning: "Planning de la máquina" @@ -163,24 +157,21 @@ es: reservation_was_cancelled_successfully: "Reservation was cancelled successfully." cancellation_failed: "Cancellation failed." a_problem_occured_during_the_payment_process_please_try_again_later: "A problem occurred during the payment process. Please try again later." - trainings_reserve: # book a training trainings_planning: "Plan de curso" - planning_of: "Plan de " # followed by the training name (eg. "Planning of 3d printer training") + planning_of: "Plan de " # followed by the training name (eg. Planning of 3d printer training) all_trainings: "Todos los cursos" cancel_my_selection: "Cancelar mi selección" i_change: "I change" i_shift: "I shift" i_ve_reserved: "He reservado" - space_reserve: # book a space planning_of_space_NAME: "Planes de {NAME} " i_ve_reserved: "he reservado" i_shift: "reemplazo" i_change: "cambio" - notifications: notifications_center: "Centro de notificaciones" mark_all_as_read: "Marcar como leido" diff --git a/config/locales/app.logged.fr.yml b/config/locales/app.logged.fr.yml index 6af4cb177..0d8dae68b 100644 --- a/config/locales/app.logged.fr.yml +++ b/config/locales/app.logged.fr.yml @@ -39,7 +39,6 @@ fr: _click_on_the_synchronization_button_opposite_: "cliquez sur le bouton de synchronisation ci-contre" _disconnect_then_reconnect_: "déconnectez-vous puis re-connectez vous" _for_your_changes_to_take_effect: "pour que les modifications soient prises en compte." - dashboard: # tableau de bord: profile publique profile: @@ -126,11 +125,9 @@ fr: download_the_invoice: "Télécharger la facture" download_the_credit_note: "Télécharger l'avoir" no_invoices_for_now: "Aucune facture pour le moment." - members_show: # profil public d'un membre members_list: "Liste des membres" - members: # liste des membres qui acceptent d'être contactés the_fablab_members: "Les membres du Fab Lab" @@ -140,17 +137,14 @@ fr: user: "Utilisateur" pseudonym: "Pseudonyme" email_address: "Adresse électronique" - projects_new: # ajouter un nouveau projet add_a_new_project: "Ajouter un nouveau projet" - projects_edit: # modifier un projet existant edit_the_project: "Éditer le projet" rough_draft: "Brouillon" publish: "Publier" - machines_reserve: # réserver une machine machine_planning: "Planning machine" @@ -163,24 +157,21 @@ fr: reservation_was_cancelled_successfully: "La réservation a bien été annulée." cancellation_failed: "Échec de l'annulation." a_problem_occured_during_the_payment_process_please_try_again_later: "Un problème est survenu pendant le processus de paiement. Merci de réessayer ultérieurement." - trainings_reserve: # réserver une formation trainings_planning: "Planning formations" - planning_of: "Planning de la" # suivi du nom de la formation (eg. "Planning de la formation imprimante 3d") + planning_of: "Planning de la" # suivi du nom de la formation (eg. Planning de la formation imprimante 3d) all_trainings: "Toutes les formations" cancel_my_selection: "Annuler ma sélection" i_change: "Je change" i_shift: "Je déplace" i_ve_reserved: "J'ai réservé" - space_reserve: # réserver un espace planning_of_space_NAME: "Planning de l'espace {NAME}" i_ve_reserved: "J'ai réservé" i_shift: "Je déplace" i_change: "Je change" - notifications: notifications_center: "Centre de notifications" mark_all_as_read: "Tout marquer comme lu" diff --git a/config/locales/app.logged.pt.yml b/config/locales/app.logged.pt.yml index 0cefc4a70..5bb66f2fc 100755 --- a/config/locales/app.logged.pt.yml +++ b/config/locales/app.logged.pt.yml @@ -39,7 +39,6 @@ pt: _click_on_the_synchronization_button_opposite_: "click on the synchronization button opposite" _disconnect_then_reconnect_: "disconnect then reconnect" _for_your_changes_to_take_effect: "for your changes to take effect." - dashboard: # dashboard: public profile profile: @@ -126,11 +125,9 @@ pt: download_the_invoice: "Download the invoice" download_the_credit_note: "Download the refund invoice" no_invoices_for_now: "No invoices for now." - members_show: # public profil of a member members_list: "Lista de membros" - members: # list of members accepting to be contacted the_fablab_members: "Membros do FabLab" @@ -140,17 +137,14 @@ pt: user: "User" pseudonym: "Pseudonym" email_address: "Email address" - projects_new: # add a new project add_a_new_project: "Adicionar novo projeto" - projects_edit: # modify an existing project edit_the_project: "Editar projeto" rough_draft: "Draft" publish: "Publicar" - machines_reserve: # book a machine machine_planning: "Planejamento de máquinas" @@ -163,24 +157,21 @@ pt: reservation_was_cancelled_successfully: "Reservation was cancelled successfully." cancellation_failed: "Cancellation failed." a_problem_occured_during_the_payment_process_please_try_again_later: "A problem occurred during the payment process. Please try again later." - trainings_reserve: # book a training trainings_planning: "Planos de treinamento" - planning_of: "Planejamento de" # followed by the training name (eg. "Planning of 3d printer training") + planning_of: "Planejamento de" # followed by the training name (eg. Planning of 3d printer training) all_trainings: "Todos treinamentos" cancel_my_selection: "Cancelar minha seleção" i_change: "I change" i_shift: "I shift" i_ve_reserved: "Eu reservei" - space_reserve: # book a space planning_of_space_NAME: "Plano de {NAME} espaço" i_ve_reserved: "Eu reservei" i_shift: "Eu troco" i_change: "Eu altero" - notifications: notifications_center: "Centro de notificações" mark_all_as_read: "Marcar todas como lidas" diff --git a/config/locales/app.public.en.yml b/config/locales/app.public.en.yml index 0c4881928..9dbd7eb7e 100644 --- a/config/locales/app.public.en.yml +++ b/config/locales/app.public.en.yml @@ -1,19 +1,17 @@ en: app: public: + #header and "about" page common: - # header and "about" page about_the_fablab: "About {GENDER, select, male{the} female{the} neutral{} other{the}} {NAME}" return: "Return" - - # cookies + #cookies cookies: about_cookies: "This website uses cookies for audience measurement purposes." learn_more: "Learn more" accept: "Accept cookies" decline: "Refuse" - - # dashboard sections + #dashboard sections dashboard: "Dashboard" my_profile: "My Profile" my_settings: "My Settings" @@ -22,21 +20,17 @@ en: my_events: "My Events" my_invoices: "My Invoices" my_wallet: "My Wallet" - - # contextual help + #contextual help help: "Help" - - # login/logout + #login/logout sign_out: "Sign Out" sign_up: "Sign Up" sign_in: "Sign In" - - # left menu + #left menu notifications: "Notifications" admin: "Admin" reduce_panel: "Reduce panel" - - # left menu (public) + #left menu (public) home: "Home" reserve_a_machine: "Reserve a Machine" trainings_registrations: "Trainings registrations" @@ -45,8 +39,7 @@ en: projects_gallery: "Projects gallery" subscriptions: "Subscriptions" public_calendar: "Calendar" - - # left menu (admin) + #left menu (admin) trainings_monitoring: "Trainings" manage_the_calendar: "Calendar" manage_the_users: "Users" @@ -59,8 +52,7 @@ en: statistics: "Statistics" customization: "Customization" open_api_clients: "OpenAPI clients" - - # account creation modal + #account creation modal create_your_account: "Create your account" man: "Man" woman: "Woman" @@ -102,13 +94,11 @@ en: used_for_profile: "This data will only be displayed on your profile" public_profile: "You will have a public profile and other users will be able to associate you in their projects" you_will_receive_confirmation_instructions_by_email_detailed: "You will receive an email with instructions about how to confirm your account in a few minutes." - - # password modification modal + #password modification modal change_your_password: "Change your password" your_new_password: "Your new password" your_password_was_successfully_changed: "Your password was successfully changed." - - # connection modal + #connection modal connection: "Connection" password_forgotten: "Forgotten password?" confirm_my_account: "Confirm my e-mail" @@ -116,15 +106,12 @@ en: create_an_account: "Create an account" wrong_email_or_password: "Wrong e-mail or password." caps_lock_is_on: "Caps lock key is on." - - # confirmation modal - you_will_receive_confirmation_instructions_by_email: You will receive confirmation instructions by email. - - # forgotten password modal + #confirmation modal + you_will_receive_confirmation_instructions_by_email: "You will receive confirmation instructions by email." + #forgotten password modal your_email_address_is_unknown: "Your e-mail address is unknown." you_will_receive_in_a_moment_an_email_with_instructions_to_reset_your_password: "You will receive in a moment, an e-mail with instructions to reset your password." - - # Fab-manager's version + #Fab-manager's version version: "Version:" upgrade_fabmanager: "Upgrade Fab-manager" current_version: "You are currently using version {VERSION} of Fab-manager." @@ -132,33 +119,28 @@ en: read_more: "View the details of this release" security_version_html: "Your current version is vulnerable!
A later version, currently available, includes security fixes. Upgrade as soon as possible!" how_to: "How to upgrade?" - - # Notifications + #Notifications and_NUMBER_other_notifications: "and {NUMBER, plural, =0{no other notifications} =1{one other notification} other{{NUMBER} other notifications}}..." - + #about page about: - # about page read_the_fablab_policy: "Read the FabLab policy" read_the_fablab_s_general_terms_and_conditions: "Read the FabLab's general terms and conditions" your_fablab_s_contacts: "Your FabLab's contacts" privacy_policy: "Privacy policy" - + #'privacy policy' page privacy: - # 'privacy policy' page title: "Privacy policy" dpo: "Data protection officer" last_update: "Last update," - + #home page home: - # home page latest_documented_projects: "The latest documented projects" follow_us: "Follow Us" latest_tweets: "The latest tweets" latest_registered_members: "Latest registered members" create_an_account: "Create an account" discover_members: "Discover members" - - # next events summary on the home page + #next events summary on the home page fablab_s_next_events: "Fablab's next events" every_events: "Every events" from_date_to_date: "From {START} to {END}" @@ -169,9 +151,8 @@ en: full_price: "Full price" event_full: "Event full" still_available: "Available place(s)" - + #projects gallery projects_list: - # projects gallery the_fablab_projects: "The Fab Lab projects" add_a_project: "Add a project" search_over_the_whole_network: "Search over the whole Fab-manager network" @@ -188,9 +169,8 @@ en: all_materials: "All materials" load_next_projects: "Load next projects" rough_draft: "Rough draft" - + #details of a projet projects_show: - # details of a projet rough_draft: "Draft" project_description: "Project description" by_name: "By {NAME}" @@ -218,9 +198,8 @@ en: message_is_required: "Message is required." report: "Report" do_you_really_want_to_delete_this_project: "Do you really want to delete this project?" - + #list of machines machines_list: - # list of machines the_fablab_s_machines: "The FabLab's machines" add_a_machine: "Add a machine" new_availability: "Open reservations" @@ -229,9 +208,8 @@ en: status_enabled: "Enabled" status_disabled: "Disabled" status_all: "All" - + #details of a machine machines_show: - # details of a machine book_this_machine: "Book this machine" technical_specifications: "Technical specifications" files_to_download: "Files to download" @@ -241,22 +219,19 @@ en: do_you_really_want_to_delete_this_machine: "Do you really want to delete this machine?" unauthorized_operation: "Unauthorized operation" the_machine_cant_be_deleted_because_it_is_already_reserved_by_some_users: "The machine can't be deleted because it's already reserved by some users." - + #list of trainings trainings_list: - # list of trainings book: "Book" the_trainings: "The trainings" - + #details of a training training_show: - # details of a training book_this_training: "Book this training" do_you_really_want_to_delete_this_training: "Do you really want to delete this training?" unauthorized_operation: "Unauthorized operation" confirmation_required: "Confirmation required" the_training_cant_be_deleted_because_it_is_already_reserved_by_some_users: "The training can't be deleted because it's already reserved by some users." - + #summary of the subscriptions plans: - # summary of the subscriptions subscriptions: "Subscriptions" i_choose_that_plan: "I choose that plan" i_subscribe_online: "I subscribe online" @@ -282,11 +257,10 @@ en: an_error_occured_during_the_payment_process_please_try_again_later: "An error occurred during the payment process. Please try again later." subscription_confirmation: "Subscription confirmation" here_is_the_NAME_subscription_summary: "Here is the {NAME}'s subscription summary:" - confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" # (contexte : validate a payment of $20,00) + confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" #(contexte : validate a payment of $20,00) online_payment_disabled: "Payment by credit card is not available. Please contact the Fablab's reception directly." - + #Fablab's events list events_list: - # Fablab's events list the_fablab_s_events: "The Fablab's events" all_categories: "All categories" for_all: "For all" @@ -298,11 +272,10 @@ en: add_an_event: "Add an event" load_the_next_events: "Load the next events..." full_price_: "Full price:" - to_date: "to" # eg. from 01/01 to 01/05 + to_date: "to" #eg. from 01/01 to 01/05 all_themes: "All themes" - + #details and booking of an event events_show: - # details and booking of an event event_description: "Event description" downloadable_documents: "Downloadable documents" information_and_booking: "Information and booking" @@ -311,8 +284,8 @@ en: ending: "Ending:" opening_hours: "Opening hours:" all_day: "All day" - from_time: "From" # eg. from 18:00 to 21:00 - to_time: "to" # eg. from 18:00 to 21:00 + from_time: "From" #eg. from 18:00 to 21:00 + to_time: "to" #eg. from 18:00 to 21:00 full_price_: "Full price:" tickets_still_availables: "Tickets still available:" sold_out: "Sold out." @@ -327,7 +300,7 @@ en: canceled_reservation_SEATS: "Reservation canceled ({SEATS} seats)" book: "Book" confirm_and_pay: "Confirm and pay" - confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" # (contexte : validate a payment of $20,00) + confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" #(contexte : validate a payment of $20,00) online_payment_disabled: "Payment by credit card is not available. Please contact the Fablab's reception directly." please_select_a_member_first: "Please select a member first" change_the_reservation: "Change the reservation" @@ -351,9 +324,8 @@ en: view_event_list: "View events to come" share_on_facebook: "Share on Facebook" share_on_twitter: "Share on Twitter" - + #public calendar calendar: - # public calendar calendar: "Calendar" show_unavailables: "Show unavailable slots" filter_calendar: "Filter calendar" @@ -362,9 +334,8 @@ en: spaces: "Spaces" events: "Events" externals: "Other calendars" - + #list of spaces spaces_list: - # list of spaces the_spaces: "The spaces" new_availability: "Open reservations" add_a_space: "Add a space" @@ -372,9 +343,8 @@ en: status_disabled: "Disabled" status_all: "All" book: "Book" - + #display the details of a space space_show: - # display the details of a space book_this_space: "Book this space" unauthorized_operation: "Unauthorized operation" confirmation_required: "Confirmation required" @@ -383,7 +353,6 @@ en: characteristics: "Characteristics" files_to_download: "Files to download" projects_using_the_space: "Projects using the space" - tour: conclusion: title: "Thank you for your attention" diff --git a/config/locales/app.public.es.yml b/config/locales/app.public.es.yml index 3974f7260..16525e472 100644 --- a/config/locales/app.public.es.yml +++ b/config/locales/app.public.es.yml @@ -2,18 +2,16 @@ es: app: public: common: - # header and "about" page + #header and "about" page about_the_fablab: "Acerca de {GENDER, select, male{el} female{la} neutral{} other{las}} {NAME}" return: "Volver" - - # cookies + #cookies cookies: about_cookies: "Este sitio web utiliza cookies para medir la audiencia." learn_more: "Saber más" accept: "Aceptar cookies" decline: "Rechazar" - - # dashboard sections + #dashboard sections dashboard: "Panel" my_profile: "My Perfil" my_settings: "Mis ajustes" @@ -22,21 +20,17 @@ es: my_events: "Mis eventos" my_invoices: "Mis facturas" my_wallet: "Mi cartera" - - # contextual help + #contextual help help: "Help" - - # login/logout + #login/logout sign_out: "Salir" sign_up: "Registrarse" sign_in: "Ingresar" - - # left menu + #left menu notifications: "Notificaciones" admin: "Administrador" reduce_panel: "Reducir panel" - - # left menu (public) + #left menu (public) home: "Menú principal" reserve_a_machine: "Reservar una máquina" trainings_registrations: "Registro de cursos" @@ -45,8 +39,7 @@ es: projects_gallery: "Galería de proyectos" subscriptions: "Suscripciones" public_calendar: "Agenda" - - # left menu (admin) + #left menu (admin) trainings_monitoring: "Cursos" manage_the_calendar: "Agenda" manage_the_users: "Usuarios" @@ -59,8 +52,7 @@ es: statistics: "Estadísticas" customization: "Customización" open_api_clients: "Clientes OpenAPI" - - # account creation modal + #account creation modal create_your_account: "Crear su cuenta" man: "Hombre" woman: "Mujer" @@ -102,13 +94,11 @@ es: used_for_profile: "This data will only be displayed on your profile" public_profile: "You will have a public profile and other users will be able to associate you in their projects" you_will_receive_confirmation_instructions_by_email_detailed: "Recibirá un correo electrónico con instrucciones sobre cómo confirmar su cuenta en unos minutos." - - # password modification modal + #password modification modal change_your_password: "Cambiar contraseña" your_new_password: "Nueva contraseña" your_password_was_successfully_changed: "Su contraseña ha sido cambiada con éxito." - - # connection modal + #connection modal connection: "Conexión" password_forgotten: "¿Ha olvidado su contraseña?" confirm_my_account: "Confirmar mi E-mail" @@ -116,15 +106,12 @@ es: create_an_account: "Crear una cuenta" wrong_email_or_password: "E-mail o contraseña incorrecta." caps_lock_is_on: "Las mayusculas están activadas." - - # confirmation modal + #confirmation modal you_will_receive_confirmation_instructions_by_email: "Recibirá las instrucciones de confirmación por email." - - # forgotten password modal + #forgotten password modal your_email_address_is_unknown: "Se desconoce su email." you_will_receive_in_a_moment_an_email_with_instructions_to_reset_your_password: "En un momento recibirá las instrucciones para restablecer su contraseña en su mail." - - # Fab-manager's version + #Fab-manager's version version: "Version:" upgrade_fabmanager: "Upgrade Fab-manager" current_version: "You are currently using version {VERSION} of Fab-manager." @@ -132,33 +119,28 @@ es: read_more: "View the details of this release" security_version_html: "Your current version is vulnerable!
A later version, currently available, includes security fixes. Upgrade as soon as possible!" how_to: "How to upgrade?" - - # Notifications + #Notifications and_NUMBER_other_notifications: "y {NUMBER, plural, =0{no other notifications} =1{one other notification} otras{{NUMBER} other notifications}}..." - about: #about page read_the_fablab_policy: "Leer la politica del FabLab" read_the_fablab_s_general_terms_and_conditions: "Leer los terminos y condiciones del FabLab" your_fablab_s_contacts: "Sus contactos del FabLab" privacy_policy: "Política de privacidad" - privacy: #'privacy policy' page title: "Política de privacidad" dpo: "Oficial de protección de datos" last_update: "Última actualización," - home: - # home page + #home page latest_documented_projects: "Los últimos proyectos documentados" follow_us: "Siguenos" latest_tweets: "Los últimos tweets" latest_registered_members: "Miembros más recientes" create_an_account: "Crear una cuenta" discover_members: "Descubrir miembros" - - # next events summary on the home page + #next events summary on the home page fablab_s_next_events: "Próximos eventos del FabLab" every_events: "Todos los eventos" from_date_to_date: "Desde {START} hasta {END}" @@ -169,9 +151,8 @@ es: full_price: "Precio final" event_full: "Evento lleno" still_available: "Available place(s)" - projects_list: - # projects gallery + #projects gallery the_fablab_projects: "Los proyectos del FabLab" add_a_project: "Añadir un proyecto" search_over_the_whole_network: "Buscar en toda la red de FabLab" @@ -188,9 +169,8 @@ es: all_materials: "Todo el material" load_next_projects: "Cargar más proyectos" rough_draft: "Borrador" - projects_show: - # details of a projet + #details of a projet rough_draft: "Draft" project_description: "Descripción de proyecto" by_name: "Por {NAME}" @@ -218,9 +198,8 @@ es: message_is_required: "El mensaje es obligatorio." report: "Reportar" do_you_really_want_to_delete_this_project: "¿Está seguro de querer eliminar este proyecto?" - machines_list: - # list of machines + #list of machines the_fablab_s_machines: "Las máquinas del FabLab" add_a_machine: "Añadir una máquina" new_availability: "Open reservations" @@ -229,9 +208,8 @@ es: status_enabled: "Activas" status_disabled: "No activas" status_all: "Todas" - machines_show: - # details of a machine + #details of a machine book_this_machine: "Alquilar máquina" technical_specifications: "Technical specifications" files_to_download: "Archivos a descargar" @@ -241,22 +219,19 @@ es: do_you_really_want_to_delete_this_machine: "¿Está seguro de querer eliminar esta máquina?" unauthorized_operation: "Unauthorized operation" the_machine_cant_be_deleted_because_it_is_already_reserved_by_some_users: "La máquina no puede borrarse porque está siendo usada o ha sido reservada por algún usuario." - trainings_list: - # list of trainings + #list of trainings book: "Reservar" the_trainings: "Lista de cursos" - training_show: - # details of a training + #details of a training book_this_training: "reservar plaza en este curso" do_you_really_want_to_delete_this_training: "Está seguro de querer eliminar este curso?" unauthorized_operation: "Operación no autorizada" confirmation_required: "Confirmation required" the_training_cant_be_deleted_because_it_is_already_reserved_by_some_users: "El curso no puede borrarse porque ya ha sido reservado por algún usuario." - plans: - # summary of the subscriptions + #summary of the subscriptions subscriptions: "Suscripciones" i_choose_that_plan: "Elijo este plan" i_subscribe_online: "Suscribirme online" @@ -284,9 +259,8 @@ es: here_is_the_NAME_subscription_summary: "Resumen de la suscrpición de {NAME}:" confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" #(contexte : validate a payment of $20,00) online_payment_disabled: "Payment by credit card is not available. Please contact the Fablab's reception directly." - events_list: - # Fablab's events list + #Fablab's events list the_fablab_s_events: "Los eventos del FabLab" all_categories: "Todas las categorías" for_all: "Para todo" @@ -298,11 +272,10 @@ es: add_an_event: "Add an event" load_the_next_events: "Cargar los próximos eventos..." full_price_: "Full price:" - to_date: "to" # eg. from 01/01 to 01/05 + to_date: "to" #eg. from 01/01 to 01/05 all_themes: "All themes" - events_show: - # details and booking of an event + #details and booking of an event event_description: "Descripción del evento" downloadable_documents: "Archivos descargables" information_and_booking: "Información y reservas" @@ -311,8 +284,8 @@ es: ending: "Termina:" opening_hours: "Hora de apertura:" all_day: "All day" - from_time: "From" # eg. from 18:00 to 21:00 - to_time: "to" # eg. from 18:00 to 21:00 + from_time: "From" #eg. from 18:00 to 21:00 + to_time: "to" #eg. from 18:00 to 21:00 full_price_: "Full price:" tickets_still_availables: "Entradas disponibles:" sold_out: "Entradas vendidas." @@ -351,9 +324,8 @@ es: view_event_list: "View events to come" share_on_facebook: "Share on Facebook" share_on_twitter: "Share on Twitter" - calendar: - # public calendar + #public calendar calendar: "Calendario" show_unavailables: "Mostrar campos inválidos" filter_calendar: "Filtrar calendario" @@ -362,9 +334,8 @@ es: spaces: "Espacios" events: "Eventos" externals: "Otros calendarios" - spaces_list: - # list of spaces + #list of spaces the_spaces: "Espacios" new_availability: "Open reservations" add_a_space: "Añadir espacios" @@ -372,9 +343,8 @@ es: status_disabled: "No activos" status_all: "Todos" book: "Reservar" - space_show: - # display the details of a space + #display the details of a space book_this_space: "Reservar este espacio" unauthorized_operation: "Operación no autorizada" confirmation_required: "Confirmación requerida" @@ -383,7 +353,6 @@ es: characteristics: "Características" files_to_download: "Archivos para descargar" projects_using_the_space: "Proyectos que usan el espacio" - tour: conclusion: title: "Thank you for your attention" diff --git a/config/locales/app.public.fr.yml b/config/locales/app.public.fr.yml index 1e31566b4..20d8c63e8 100644 --- a/config/locales/app.public.fr.yml +++ b/config/locales/app.public.fr.yml @@ -2,18 +2,16 @@ fr: app: public: common: - # en-tête et page "à propos" + #en-tête et page "à propos" about_the_fablab: "A propos {GENDER, select, male{du} female{de la} neutral{} other{des}} {NAME}" return: "Retour" - - # cookies + #cookies cookies: about_cookies: "Ce site web utilise des cookies à des fins de mesure d'audience." learn_more: "En savoir plus" accept: "Accepter les cookies" decline: "Refuser" - - # sections du tableau de bord + #sections du tableau de bord dashboard: "Tableau de bord" my_profile: "Mon profil" my_settings: "Mes paramètres" @@ -22,21 +20,17 @@ fr: my_events: "Mes évènements" my_invoices: "Mes factures" my_wallet: "Mon porte-monnaie" - - # aide contextuelle + #aide contextuelle help: "Aide" - - # connexion / déconnexion + #connexion / déconnexion sign_out: "Se déconnecter" sign_up: "S'inscrire" sign_in: "Se connecter" - - # menu de gauche + #menu de gauche notifications: "Notifications" admin: "Admin" reduce_panel: "Réduire le volet" - - # menu de gauche (partie publique) + #menu de gauche (partie publique) home: "Accueil" reserve_a_machine: "Réserver une machine" trainings_registrations: "Inscriptions formations" @@ -45,8 +39,7 @@ fr: projects_gallery: "Galerie de projets" subscriptions: "Abonnements" public_calendar: "Agenda" - - # menu de gauche (partie admin) + #menu de gauche (partie admin) trainings_monitoring: "Formations" manage_the_calendar: "Agenda" manage_the_users: "Utilisateurs" @@ -59,8 +52,7 @@ fr: statistics: "Statistiques" customization: "Personnalisation" open_api_clients: "Clients OpenAPI" - - # fenêtre de création de compte + #fenêtre de création de compte create_your_account: "Créer votre compte" man: "Homme" woman: "Femme" @@ -102,13 +94,11 @@ fr: used_for_profile: "Cette donnée sera seulement affichée sur votre profil" public_profile: "Vous aurez un profil public et les autres utilisateurs pourront vous associer à leurs projets" you_will_receive_confirmation_instructions_by_email_detailed: "Vous allez recevoir dans quelques minutes un email comportant des instructions pour confirmer votre compte." - - # fenêtre de changement de mot de passe + #fenêtre de changement de mot de passe change_your_password: "Modifier votre mot de passe" your_new_password: "Votre nouveau mot de passe" your_password_was_successfully_changed: "Votre mot de passe a bien été modifié." - - # fenêtre de connexion + #fenêtre de connexion connection: "Connexion" password_forgotten: "Mot de passe oublié ?" confirm_my_account: "Confirmer mon adresse de courriel" @@ -116,15 +106,12 @@ fr: create_an_account: "Créer un compte" wrong_email_or_password: "Adresse courriel ou mot de passe incorrect." caps_lock_is_on: "La touche de verrouillage des majuscules est activée." - - # fenêtre d'envoi des instructions de confirmation - you_will_receive_confirmation_instructions_by_email: Vous recevrez les instructions de confirmation par email. - - # mot de passe oublié + #fenêtre d'envoi des instructions de confirmation + you_will_receive_confirmation_instructions_by_email: "Vous recevrez les instructions de confirmation par email." + #mot de passe oublié your_email_address_is_unknown: "Votre adresse de courriel est inconnue." you_will_receive_in_a_moment_an_email_with_instructions_to_reset_your_password: "Vous allez recevoir sous quelques minutes un courriel vous indiquant comment réinitialiser votre mot de passe." - - # Fab-manager's version + #Fab-manager's version version: "Version :" upgrade_fabmanager: "Mettez à jour Fab-manager" current_version: "Vous utilisez actuellement la version {VERSION} de Fab-manager." @@ -132,33 +119,28 @@ fr: read_more: "Voir les détails de cette version" security_version_html: "Votre version actuelle est vulnérable !
Une version ultérieure, actuellement disponible, inclut des correctifs de sécurité. Mettez à jour dès que possible !" how_to: "Comment mettre à jour ?" - - # Notifications + #Notifications and_NUMBER_other_notifications: "et {NUMBER, plural, =0{aucune autre notification} =1{une autre notification} other{{NUMBER} autres notifications}}..." - about: - # page à propos + #page à propos read_the_fablab_policy: "Consulter les règles d'utilisation du Fab Lab" read_the_fablab_s_general_terms_and_conditions: "Consulter les conditions générales de vente du Fab Lab" your_fablab_s_contacts: "Vos contacts au Fab Lab" privacy_policy: "Politique de confidentialité" - privacy: - # page 'politique de confidentialité' + #page 'politique de confidentialité' title: "Politique de confidentialité" dpo: "Délégué à la protection des données" last_update: "Dernière mise à jour," - home: - # page d'accueil + #page d'accueil latest_documented_projects: "Les derniers projets documentés" follow_us: "Suivez-nous" latest_tweets: "Les derniers tweets" latest_registered_members: "Derniers membres inscrits" create_an_account: "Créer un compte" discover_members: "Découvrir les membres" - - # résumé des prochains évènements sur la page d'acceuil + #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}" @@ -169,9 +151,8 @@ fr: full_price: "Plein tarif : " event_full: "Événement complet" still_available: "Place(s) disponible(s) :" - projects_list: - # galerie des projets + #galerie des projets the_fablab_projects: "Les projets du FabLab" add_a_project: "Ajouter un projet" search_over_the_whole_network: "Chercher sur tout le réseau Fab-manager" @@ -188,9 +169,8 @@ fr: all_materials: "Tous les matériaux" load_next_projects: "Charger les projets suivants" rough_draft: "Brouillon" - projects_show: - # détails d'un projet + #détails d'un projet rough_draft: "Brouillon" project_description: "Description du projet" by_name: "Par {NAME}" @@ -218,9 +198,8 @@ fr: message_is_required: "Le message est requis." report: "Signaler" do_you_really_want_to_delete_this_project: "Êtes-vous sur de vouloir supprimer ce projet ?" - machines_list: - # liste des machines + #liste des machines the_fablab_s_machines: "Les machines du FabLab" add_a_machine: "Ajouter une machine" new_availability: "Ouvrir des réservations" @@ -229,9 +208,8 @@ fr: status_enabled: "Actives" status_disabled: "Désactivées" status_all: "Toutes" - machines_show: - # détail d'une machine + #détail d'une machine book_this_machine: "Réserver cette machine" technical_specifications: "Caractéristiques techniques" files_to_download: "Fichiers à télécharger" @@ -241,22 +219,19 @@ fr: do_you_really_want_to_delete_this_machine: "Êtes-vous sur de vouloir supprimer cette machine ?" unauthorized_operation: "Opération non autorisée" the_machine_cant_be_deleted_because_it_is_already_reserved_by_some_users: "La machine ne peut pas être supprimée car elle a déjà été réservée par des utilisateurs." - trainings_list: - # liste des formations + #liste des formations book: "Réserver" the_trainings: "Les formations" - training_show: - # détails d'une formation + #détails d'une formation book_this_training: "Réserver cette formation" do_you_really_want_to_delete_this_training: "Êtes-vous sur de vouloir supprimer cette formation ?" unauthorized_operation: "Opération non autorisée" confirmation_required: "Confirmation requise" the_training_cant_be_deleted_because_it_is_already_reserved_by_some_users: "La formation ne peut pas être supprimée car elle a déjà été réservée par des utilisateurs." - plans: - # page récapitulative des abonnements + #page récapitulative des abonnements subscriptions: "Les abonnements" i_choose_that_plan: "Je choisis cette formule" i_subscribe_online: "Je m'abonne en ligne" @@ -282,11 +257,10 @@ fr: an_error_occured_during_the_payment_process_please_try_again_later: "Il y a eu un problème lors de la procédure de paiement. Veuillez réessayer plus tard." subscription_confirmation: "Validation de l'abonnement" here_is_the_NAME_subscription_summary: "Voici le récapitulatif de l'abonnement de {NAME} :" - confirm_payment_of_html: "{ROLE, select, admin{Encaisser} other{Payer}} : {AMOUNT}" # (contexte : valider un paiement de 20,00 €) + confirm_payment_of_html: "{ROLE, select, admin{Encaisser} other{Payer}} : {AMOUNT}" #(contexte : valider un paiement de 20,00 €) online_payment_disabled: "Le paiement par carte bancaire n'est pas disponible. Merci de contacter directement l'accueil du Fablab." - events_list: - # liste des évènements du fablab + #liste des évènements du fablab the_fablab_s_events: "Les évènements du Fab Lab" all_categories: "Toutes les catégories" for_all: "Tout public" @@ -298,11 +272,10 @@ fr: add_an_event: "Ajouter un évènement" load_the_next_events: "Charger les évènements suivants..." full_price_: "Plein tarif :" - to_date: "au" # eg. from 01/01 to 01/05 + to_date: "au" #eg. from 01/01 to 01/05 all_themes: "Toutes les thématiques" - events_show: - # détails d'un événement et réservation + #détails d'un événement et réservation event_description: "Description de l'évènement" downloadable_documents: "Documents à télécharger" information_and_booking: "Informations et réservation" @@ -311,8 +284,8 @@ fr: ending: "Fin :" opening_hours: "Horaires :" all_day: "Toute la journée" - from_time: "De" # eg. from 18:00 to 21:00 - to_time: "à" # eg. from 18:00 to 21:00 + from_time: "De" #eg. from 18:00 to 21:00 + to_time: "à" #eg. from 18:00 to 21:00 full_price_: "Plein tarif :" tickets_still_availables: "Places encore disponibles :" sold_out: "Événement complet" @@ -327,7 +300,7 @@ fr: canceled_reservation_SEATS: "Réservation annulée ({SEATS} places)" book: "Réserver" confirm_and_pay: "Valider et payer" - confirm_payment_of_html: "{ROLE, select, admin{Encaisser} other{Payer}} : {AMOUNT}" # (contexte : valider un paiement de 20,00 €) + confirm_payment_of_html: "{ROLE, select, admin{Encaisser} other{Payer}} : {AMOUNT}" #(contexte : valider un paiement de 20,00 €) online_payment_disabled: "Le payment par carte bancaire n'est pas disponible. Merci de contacter directement l'accueil du Fablab." please_select_a_member_first: "Veuillez tout d'abord sélectionner un membre" change_the_reservation: "Modifier la réservation" @@ -351,9 +324,8 @@ fr: view_event_list: "Voir les évènements à venir" share_on_facebook: "Partager sur Facebook" share_on_twitter: "Partager sur Twitter" - calendar: - # calendrier publique + #calendrier publique calendar: "Calendrier" show_unavailables: "Afficher les créneaux non disponibles" filter_calendar: "Filtrer le calendrier" @@ -362,9 +334,8 @@ fr: spaces: "Espaces" events: "Évènements" externals: "Autres calendriers" - spaces_list: - # liste des espaces + #liste des espaces the_spaces: "Les espaces" new_availability: "Ouvrir des réservations" add_a_space: "Ajouter un espace" @@ -372,9 +343,8 @@ fr: status_disabled: "Désactivés" status_all: "Tous" book: "Réserver" - space_show: - # affichage des détails d'un espace + #affichage des détails d'un espace book_this_space: "Réserver cet espace" unauthorized_operation: "Opération non autorisée" confirmation_required: "Confirmation requise" @@ -383,7 +353,6 @@ fr: characteristics: "Caractéristiques" files_to_download: "Fichiers à télécharger" projects_using_the_space: "Projets utilisant l'espace" - tour: conclusion: title: "Merci de votre attention" diff --git a/config/locales/app.public.pt.yml b/config/locales/app.public.pt.yml index 23efeed25..deeff8433 100755 --- a/config/locales/app.public.pt.yml +++ b/config/locales/app.public.pt.yml @@ -2,18 +2,16 @@ pt: app: public: common: - # header and "about" page + #header and "about" page about_the_fablab: "Sobre {GENDER, select, male{o} female{a} neutral{} other{do}} {NAME}" return: "Voltar" - - # cookies + #cookies cookies: about_cookies: "Este site usa cookies para fins de medição de audiência." learn_more: "Saber mais" accept: "Aceitar cookies" decline: "Recusar" - - # dashboard sections + #dashboard sections dashboard: "Dashboard" my_profile: "Meu Perfil" my_settings: "Minhas Configurações" @@ -22,21 +20,17 @@ pt: my_events: "Meus Eventos" my_invoices: "Minhas Contas" my_wallet: "Minha Carteira" - - # contextual help + #contextual help help: "Help" - - # login/logout + #login/logout sign_out: "Sair" sign_up: "Cadastrar" sign_in: "Entrar" - - # left menu + #left menu notifications: "Nofificações" admin: "Admin" reduce_panel: "Reduzir painel" - - # left menu (public) + #left menu (public) home: "Início" reserve_a_machine: "Reservar Máquina" trainings_registrations: "Registro de treinamentos" @@ -45,8 +39,7 @@ pt: projects_gallery: "Galeria de Projetos" subscriptions: "Assinaturas" public_calendar: "Agenda" - - # left menu (admin) + #left menu (admin) trainings_monitoring: "Treinamentos" manage_the_calendar: "Agenda" manage_the_users: "Uusuários" @@ -59,8 +52,7 @@ pt: statistics: "Estatísticas" customization: "Customizações" open_api_clients: "OpenAPI clients" - - # account creation modal + #account creation modal create_your_account: "Criar sua conta" man: "Masculino" woman: "Feminino" @@ -102,13 +94,11 @@ pt: used_for_profile: "This data will only be displayed on your profile" public_profile: "You will have a public profile and other users will be able to associate you in their projects" you_will_receive_confirmation_instructions_by_email_detailed: "Você receberá um email com instruções sobre como confirmar sua conta em alguns minutos." - - # password modification modal + #password modification modal change_your_password: "Mudar sua senha" your_new_password: "Sua nova senha" your_password_was_successfully_changed: "Sua senha foi mudada com sucesso." - - # connection modal + #connection modal connection: "Login" password_forgotten: "Esqueceu sua senha?" confirm_my_account: "Confirmar sua conta" @@ -116,15 +106,12 @@ pt: create_an_account: "Criar conta" wrong_email_or_password: "E-mail ou senha incorretos." caps_lock_is_on: "A tecla Caps Lock está ativada." - - # confirmation modal - you_will_receive_confirmation_instructions_by_email: Você receberá instruções de confirmação por e-mail. - - # forgotten password modal + #confirmation modal + you_will_receive_confirmation_instructions_by_email: "Você receberá instruções de confirmação por e-mail." + #forgotten password modal your_email_address_is_unknown: "Seu e-mail não está cadastrado." you_will_receive_in_a_moment_an_email_with_instructions_to_reset_your_password: "Você irá receber um e-mail com as instruções para resetar sua senha." - - # Fab-manager's version + #Fab-manager's version version: "Versão:" upgrade_fabmanager: "Upgrade Fab-manager" current_version: "You are currently using version {VERSION} of Fab-manager." @@ -132,33 +119,28 @@ pt: read_more: "View the details of this release" security_version_html: "Your current version is vulnerable!
A later version, currently available, includes security fixes. Upgrade as soon as possible!" how_to: "How to upgrade?" - - # Notifications + #Notifications and_NUMBER_other_notifications: "and {NUMBER, plural, =0{no other notifications} =1{one other notification} other{{NUMBER} other notifications}}..." - about: - # about page + #about page read_the_fablab_policy: "Ler a política do FabLab" read_the_fablab_s_general_terms_and_conditions: "Ler os termos e condições do FabLab" your_fablab_s_contacts: "Nossos contatos" privacy_policy: "Política de privacidade" - privacy: - # 'privacy policy' page + #'privacy policy' page title: "Política de privacidade" dpo: "Oficial de proteção de dados" last_update: "Última atualização," - home: - # home page + #home page latest_documented_projects: "Últimos projetos documentados" follow_us: "Siga nos" latest_tweets: "Os últimos tweets" latest_registered_members: "Últimos membros registrados" create_an_account: "Criar uma conta" discover_members: "Ver membros" - - # next events summary on the home page + #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}" @@ -169,9 +151,8 @@ pt: full_price: "Valor inteira" event_full: "Evento lotado" still_available: "Locais disponíveis" - projects_list: - # projects gallery + #projects gallery the_fablab_projects: "Projetos do Fab Lab" add_a_project: "Adicionar projeto" search_over_the_whole_network: "Pesquisar em todos os FabLabs" @@ -188,9 +169,8 @@ pt: all_materials: "Todos os materiais" load_next_projects: "Carregar próximos projetos" rough_draft: "Rascunho" - projects_show: - # details of a projet + #details of a projet rough_draft: "Draft" project_description: "Descrição do projeto" by_name: "Por {NAME}" @@ -218,9 +198,8 @@ pt: message_is_required: "Menssagem é obrigatório." report: "Enviar" do_you_really_want_to_delete_this_project: "Você quer realmente deletar esse projeto?" - machines_list: - # list of machines + #list of machines the_fablab_s_machines: "Lista de máquinas no FabLab" add_a_machine: "Adicionar uma máquina" new_availability: "Open reservations" @@ -229,9 +208,8 @@ pt: status_enabled: "Ativo" status_disabled: "Desabilitado" status_all: "Todos" - machines_show: - # details of a machine + #details of a machine book_this_machine: "Reservar essa máquina" technical_specifications: "Technical specifications" files_to_download: "Arquivos para download" @@ -241,22 +219,19 @@ pt: do_you_really_want_to_delete_this_machine: "Você realmente quer deletar essa máquina?" unauthorized_operation: "Operação não autorizada" the_machine_cant_be_deleted_because_it_is_already_reserved_by_some_users: "Esta máquina não pode ser deletada, pois já está em reservada por alguns usuários." - trainings_list: - # list of trainings + #list of trainings book: "Book" the_trainings: "Os treinamentos" - training_show: - # details of a training + #details of a training book_this_training: "Reservar este treinamento" do_you_really_want_to_delete_this_training: "Você realmente quer deletar esse treinamento?" unauthorized_operation: "Operação não autorizada" confirmation_required: "Confirmation required" the_training_cant_be_deleted_because_it_is_already_reserved_by_some_users: "O treinamento não pode ser deletado pois já foi reservado por alguns usuários." - plans: - # summary of the subscriptions + #summary of the subscriptions subscriptions: "Assinaturas" i_choose_that_plan: "Eu escolho esse plano" i_subscribe_online: "Me inscrever online" @@ -282,11 +257,10 @@ pt: an_error_occured_during_the_payment_process_please_try_again_later: "Um erro ocorreu durante o processo de pagamento. Por favor tente novamente mais tarde." subscription_confirmation: "Inscrição confirmada" here_is_the_NAME_subscription_summary: "Aqui é o sumário de inscrição do {NAME}:" - confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" # (contexte : validate a payment of $20,00) + confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" #(contexte : validate a payment of $20,00) online_payment_disabled: "Payment by credit card is not available. Please contact the Fablab's reception directly." - events_list: - # Fablab's events list + #Fablab's events list the_fablab_s_events: "Eventos do Fablab" all_categories: "Todas categorias" for_all: "Para todos" @@ -298,11 +272,10 @@ pt: add_an_event: "Add an event" load_the_next_events: "Load the next events..." full_price_: "Full price:" - to_date: "to" # eg. from 01/01 to 01/05 + to_date: "to" #eg. from 01/01 to 01/05 all_themes: "All themes" - events_show: - # details and booking of an event + #details and booking of an event event_description: "Descrição do evento" downloadable_documents: "Documentos para download" information_and_booking: "Informações e reservas" @@ -311,8 +284,8 @@ pt: ending: "Término:" opening_hours: "Abre ás:" all_day: "All day" - from_time: "From" # eg. from 18:00 to 21:00 - to_time: "to" # eg. from 18:00 to 21:00 + from_time: "From" #eg. from 18:00 to 21:00 + to_time: "to" #eg. from 18:00 to 21:00 full_price_: "Full price:" tickets_still_availables: "Tickets ainda disponíveis:" sold_out: "Esgotado." @@ -327,7 +300,7 @@ pt: canceled_reservation_SEATS: "Reservation canceled ({SEATS} seats)" book: "Reservar" confirm_and_pay: "Confirm and pay" - confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" # (contexte : validate a payment of $20,00) + confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" #(contexte : validate a payment of $20,00) online_payment_disabled: "Payment by credit card is not available. Please contact the Fablab's reception directly." please_select_a_member_first: "Please select a member first" change_the_reservation: "Alterar reserva" @@ -351,9 +324,8 @@ pt: view_event_list: "View events to come" share_on_facebook: "Share on Facebook" share_on_twitter: "Share on Twitter" - calendar: - # public calendar + #public calendar calendar: "Calendário" show_unavailables: "Mostrar slots não disponíveis" filter_calendar: "Filtrar calendário" @@ -362,9 +334,8 @@ pt: spaces: "Espaços" events: "Eventos" externals: "Outras agendas" - spaces_list: - # list of spaces + #list of spaces the_spaces: "Os espaços" new_availability: "Open reservations" add_a_space: "Adicionar espaço" @@ -372,9 +343,8 @@ pt: status_disabled: "Desabilitado" status_all: "Todos" book: "Reservar" - space_show: - # display the details of a space + #display the details of a space book_this_space: "Marcar este espaço" unauthorized_operation: "Operação não autorizada" confirmation_required: "Confirmação obrigatória" @@ -383,7 +353,6 @@ pt: characteristics: "Características" files_to_download: "Arquivo para download" projects_using_the_space: "Projetos usando espaço" - tour: conclusion: title: "Thank you for your attention" diff --git a/config/locales/app.shared.en.yml b/config/locales/app.shared.en.yml index 840bc8f77..9711eb136 100644 --- a/config/locales/app.shared.en.yml +++ b/config/locales/app.shared.en.yml @@ -1,8 +1,8 @@ en: app: shared: + #translations of common buttons buttons: - # translations of common buttons confirm_changes: "Confirm changes" consult: "Consult" edit: "Edit" @@ -18,14 +18,12 @@ en: "yes": "Yes" "no": "No" apply: "Apply" - messages: you_will_lose_any_unsaved_modification_if_you_quit_this_page: "You will lose any unsaved modification if you quit this page" you_will_lose_any_unsaved_modification_if_you_reload_this_page: "You will lose any unsaved modification if you reload this page" payment_card_error: "A problem has occurred with your credit card:" - + #user edition form user: - # user edition form man: "Man" woman: "Woman" add_an_avatar: "Add an avatar" @@ -64,9 +62,8 @@ en: used_for_invoicing: "This data will be used for billing purposes" used_for_reservation: "This data will be used in case of change on one of your bookings" used_for_profile: "This data will only be displayed on your profile" - + #project edition form project: - # project edition form name: "Name" name_is_required: "Name is required." illustration: "Visual" @@ -94,9 +91,8 @@ en: themes: "Themes" tags: "Tags" save_as_draft: "Save as draft" - + #machine edition form machine: - # machine edition form name: "Name" name_is_required: "Name is required." illustration: "Visual" @@ -110,33 +106,28 @@ en: add_an_attachment: "Add an attachment" disable_machine: "Disable machine" validate_your_machine: "Validate your machine" - + #frame to select a plan to subscribe plan_subscribe: - # frame to select a plan to subscribe subscribe_online: "subscribe online" do_not_subscribe: "do not subscribe" - + #admin: choose a member to interact with member_select: - # admin: choose a member to interact with select_a_member: "Select a member" start_typing: "Start typing..." - + #stripe payment modal stripe: - # stripe payment modal online_payment: "Online payment" i_have_read_and_accept_: "I have read, and accept" _the_general_terms_and_conditions: "the general terms and conditions." credit_amount_for_pay_reservation: "{amount} {currency} remains to be paid to confirm your reservation" client_credit_amount_for_pay_reservation: "{amount} {currency} remains to be paid to confirm reservation of client" confirm_payment_of_: "Pay: {AMOUNT}" - + #dialog of on site payment for reservations valid_reservation_modal: - # dialog of on site payment for reservations booking_confirmation: "Booking confirmation" here_is_the_summary_of_the_slots_to_book_for_the_current_user: "Here is the summary of the slots to book for the current user:" - + #event edition form event: - # event edition form title: "Title" title_is_required: "Title is required." matching_visual: "Matching visual" @@ -160,9 +151,8 @@ en: tickets_available: "Tickets available" event_theme: "Event theme" age_range: "Age range" - + #subscription plan edition form plan: - # subscription plan edition form general_information: "General information" name: "Name" name_is_required: "Name is required" @@ -203,9 +193,8 @@ en: email_address_is_required: "Email address is required." disabled: "Disable subscription" disable_plan_will_not_unsubscribe_users: "Beware: disabling this plan won't unsubscribe users having active subscriptions with it." - + #training edition form trainings: - # training edition form name: "Name" name_is_required: "Name is required." illustration: "Illustration" @@ -218,9 +207,8 @@ en: number_of_tickets: "Number of tickets" public_page: "Show in training lists" disable_training: "Disable the training" - + #partial form to edit/create an user (admin view) user_admin: - # partial form to edit/create an user (admin view) user: "User" incomplete_profile: "Incomplete profile" user_profile: "User profile" @@ -229,9 +217,8 @@ en: group_is_required: "Group is required" trainings: "Trainings" tags: "Tags" - + #partial form to edit/create an authentication provider (SSO) authentication: - # partial form to edit/create an authentication provider (SSO) name: "Name" provider_name_is_required: "Provider name is required." authentication_type: "Authentication type" @@ -242,9 +229,8 @@ en: expected_data_type: "Expected data type" input_format: "Input format" mappings: "Mappings" - + #edition/creation form of an OAuth2 authentication provider oauth2: - # edition/creation form of an OAuth2 authentication provider common_url: "Common URL" common_url_is_required: "Common URL is required." provided_url_is_not_a_valid_url: "Provided URL is not a valid URL." @@ -267,29 +253,25 @@ en: api_endpoint_url: "API endpoint URL" api_type: "API type" api_fields: "API fields" - + #machine/training slot modification modal confirm_modify_slot_modal: - # machine/training slot modification modal change_the_slot: "Change the slot" do_you_want_to_change_your_booking_slot_initially_planned_at: "Do you want to change your booking slot, initially planned at:" do_you_want_to_change_NAME_s_booking_slot_initially_planned_at: "Do you want to change {NAME}'s booking slot, initially planned at:" cancel_this_reservation: "Cancel this reservation" i_want_to_change_date: "I want to change date" - + #modal introducing that a training is requested before booking a machine request_training_modal: - # modal introducing that a training is requested before booking a machine to_book_the_MACHINE_you_must_have_completed_the_TRAINING: "To book the \"{MACHINE}\" you must have completed the {TRAINING}." register_for_the_training: "Enroll in the training" i_dont_want_to_register_now: "I don't want to enroll now" - + #modal introducing that a user must wait for his training being validated before booking a machine training_reservation_modal: - # modal introducing that a user must wait for his training being validated before booking a machine machine_reservation: "Machine reservation" you_must_wait_for_your_training_is_being_validated_by_the_fablab_team_to_book_this_machine: "You must wait for your training is being validated by the FabLab team to book this machine." your_training_will_occur_: "Your training will occur" - + #user public profile public_profile: - # user public profile last_activity_html: "Last activity
on {DATE}" to_come: "to come" approved: "approved" @@ -303,9 +285,8 @@ en: email_address: "Email address" trainings: "Trainings" no_trainings: "No trainings" - + #wallet wallet: - # wallet wallet: 'Wallet' your_wallet_amount: 'Your amount available' wallet_amount: 'Amount available' @@ -340,9 +321,8 @@ en: debit_reservation_machine: "Debit by reservation of machine" debit_reservation_event: "Debit by reservation of event" warning_uneditable_credit: "Warning: once validated, the credited amount won't be editable anymore." - + #promotional coupon (creation/edition form) coupon: - # promotional coupon (creation/edition form) name: "Name" name_is_required: "Name is required." code: "Code" @@ -364,9 +344,8 @@ en: max_usages: "Maximum usages allowed" max_usages_must_be_equal_or_greater_than_0: "The maximum usages allowed must be greater than 0." enabled: "Active" - + #coupon (input zone for users) coupon_input: - # coupon (input zone for users) i_have_a_coupon: "I have a coupon!" code_: "Code:" the_coupon_has_been_applied_you_get_PERCENT_discount: "The coupon has been applied. You get a {PERCENT}% discount." @@ -378,9 +357,8 @@ en: unable_to_apply_the_coupon_because_amount_exceeded: "Unable to apply the coupon: the discount exceed the total amount of this purchase." unable_to_apply_the_coupon_because_undefined: "Unable to apply the coupon: an unexpected error occurred, please contact the Fablab's manager." unable_to_apply_the_coupon_because_rejected: "This code does not exists." - + #form to create/edit a space space: - # form to create/edit a space name: "Name" name_is_required: "Name is required." illustration: "Illustration" @@ -395,13 +373,12 @@ en: default_places: "Default maximum tickets" default_places_is_required: "Default maximum tickets is required." disable_space: "Disable space" - + #shopping cart module for reservations cart: - # module de panier d'achat de réservations summary: "Summary" select_one_or_more_slots_in_the_calendar: "Select one {SINGLE, select, true{slot} other{or more slots}} in the calendar" you_ve_just_selected_the_slot: "You've just selected the slot:" - datetime_to_time: "{START_DATETIME} to {END_TIME}" # eg: Thursday, September 4 1986 8:30 PM to 10:00 PM + datetime_to_time: "{START_DATETIME} to {END_TIME}" #eg: Thursday, September 4 1986 8:30 PM to 10:00 PM cost_of_TYPE: "Cost of {TYPE, select, Machine{a machine hour} Training{the training} other{the element}}" offer_this_slot: "Offer this slot" confirm_this_slot: "Confirm this slot" @@ -427,15 +404,15 @@ en: tags_of_the_destination_slot: "Tags of the destination slot:" confirm_my_modification: "Confirm my modification" your_booking_slot_was_successfully_moved_from_: "Your booking slot was successfully moved from" - to_date: "to" # eg. from 01/01 to 01/05 - please_select_a_member_first: 'Please select a member first' - unable_to_select_plan_if_slots_in_the_past: 'Unable to select a plan if any of the selected slots is in the past' + to_date: "to" #eg. from 01/01 to 01/05 + please_select_a_member_first: "Please select a member first" + unable_to_select_plan_if_slots_in_the_past: "Unable to select a plan if any of the selected slots is in the past" unable_to_change_the_reservation: "Unable to change the reservation" confirmation_required: "Confirmation required" do_you_really_want_to_cancel_this_reservation: "Do you really want to cancel this reservation?" reservation_was_cancelled_successfully: "Reservation was cancelled successfully." cancellation_failed: "Cancellation failed." - confirm_payment_of_html: "{ROLE, select, admin{Payment on site} other{Pay}}: {AMOUNT}" # eg. confirm my payment of $20.00 + confirm_payment_of_html: "{ROLE, select, admin{Payment on site} other{Pay}}: {AMOUNT}" #eg. confirm my payment of $20.00 a_problem_occurred_during_the_payment_process_please_try_again_later: "A problem occurred during the payment process. Please try again later." none: "None" online_payment_disabled: "Online payment is not available. Please contact the Fablab reception directly." @@ -448,7 +425,6 @@ en: slot_at_same_time: "Conflict with others reservations" do_you_really_want_to_book_slot_at_same_time: "Do you really want to book this slot? Other bookings take place at the same time" unable_to_book_slot_because_really_have_reservation_at_same_time: "Unable to book this slot because the following reservation occurs at the same time." - tour: previous: "Previous" next: "Next" diff --git a/config/locales/app.shared.es.yml b/config/locales/app.shared.es.yml index c549c993d..742e82504 100644 --- a/config/locales/app.shared.es.yml +++ b/config/locales/app.shared.es.yml @@ -2,7 +2,7 @@ es: app: shared: buttons: - # translations of common buttons + #translations of common buttons confirm_changes: "Confirmar cambios" consult: "Consultar" edit: "Editar" @@ -18,14 +18,12 @@ es: "yes": "Sí" "no": "No" apply: "Aplicar" - messages: you_will_lose_any_unsaved_modification_if_you_quit_this_page: "Si cierra la página se perderán todas las modificaciones que no se hayan guardado" you_will_lose_any_unsaved_modification_if_you_reload_this_page: "Si recarga la página se perderán todas las modificaciones que no se hayan guardado" payment_card_error: "A problem has occurred with your credit card:" - user: - # user edition form + #user edition form man: "Man" woman: "Woman" add_an_avatar: "Añadir un avatar" @@ -64,9 +62,8 @@ es: used_for_invoicing: "This data will be used for billing purposes" used_for_reservation: "This data will be used in case of change on one of your bookings" used_for_profile: "This data will only be displayed on your profile" - project: - # project edition form + #project edition form name: "Name" name_is_required: "Name is required." illustration: "Ilustración" @@ -94,9 +91,8 @@ es: themes: "Themes" tags: "Tags" save_as_draft: "Save as draft" - machine: - # machine edition form + #machine edition form name: "Nombre" name_is_required: "Se requiere un nombre." illustration: "Ilustración" @@ -110,33 +106,28 @@ es: add_an_attachment: "añadir archivo adjunto" disable_machine: "Disable machine" validate_your_machine: "Validar su máquina" - plan_subscribe: - # frame to select a plan to subscribe + #frame to select a plan to subscribe subscribe_online: "suscribirse online" do_not_subscribe: "no suscribe" - member_select: - # admin: choose a member to interact with + #admin: choose a member to interact with select_a_member: "Selecciona un miembro" start_typing: "Empezar a escribir..." - stripe: - # stripe payment modal + #stripe payment modal online_payment: "Online payment" i_have_read_and_accept_: "He leido y acepto" _the_general_terms_and_conditions: "Los términos y condiciones." credit_amount_for_pay_reservation: "{amount} {currency} falta por pagar para efectuar su reserva" client_credit_amount_for_pay_reservation: "{amount} {currency} falta por pagar para efectuar la reserva del cliente" confirm_payment_of_: "Pay: {AMOUNT}" - valid_reservation_modal: #dialog of on site payment for reservations booking_confirmation: "Confirmar reserva" here_is_the_summary_of_the_slots_to_book_for_the_current_user: "Resumen de los espacios reservados por el usuario actual:" - event: - # event edition form + #event edition form title: "Title" title_is_required: "Se requiere un título." matching_visual: "Coincidencia visual" @@ -160,9 +151,8 @@ es: tickets_available: "Entradas disponibles" event_theme: "Tema del evento" age_range: "Rango de edades" - plan: - # subscription plan edition form + #subscription plan edition form general_information: "Información general" name: "Nombre" name_is_required: "Se requiere un nombre." @@ -203,9 +193,8 @@ es: email_address_is_required: "Se requiere un mail." disabled: "Disable subscription" disable_plan_will_not_unsubscribe_users: "Beware: disabling this plan won't unsubscribe users having active subscriptions with it." - trainings: - # training edition form + #training edition form name: "Nombre" name_is_required: "Se requiere un nombre." illustration: "Ilustración" @@ -218,9 +207,8 @@ es: number_of_tickets: "Número de entradas" public_page: "Hacer curso público" disable_training: "Disable the training" - user_admin: - # partial form to edit/create an user (admin view) + #partial form to edit/create an user (admin view) user: "User" incomplete_profile: "Incomplete profile" user_profile: "Profil utilisateur" @@ -229,9 +217,8 @@ es: group_is_required: "Se requiere un grupo" trainings: "Cursos" tags: "Tags" - authentication: - # partial form to edit/create an authentication provider (SSO) + #partial form to edit/create an authentication provider (SSO) name: "Nombre" provider_name_is_required: "Se requiere el nombre del proveedor." authentication_type: "Tipo de autenticación" @@ -242,7 +229,6 @@ es: expected_data_type: "Tipo de datos esperado" input_format: "Formato de entrada" mappings: "Mapeos" - oauth2: #edition/creation form of an OAuth2 authentication provider common_url: "URL común" @@ -267,9 +253,8 @@ es: api_endpoint_url: "API final de URL" api_type: "Tipo de API" api_fields: "Campos de API" - confirm_modify_slot_modal: - # machine/training slot modification modal + #machine/training slot modification modal change_the_slot: "Cambiar la ranura" do_you_want_to_change_your_booking_slot_initially_planned_at: "Desea cambiar su reserva efectuada inicialmente el:" do_you_want_to_change_NAME_s_booking_slot_initially_planned_at: "Desea cambiar la reserva de {NAME} , efectuada inicialmente el:" @@ -277,19 +262,18 @@ es: i_want_to_change_date: "Quiero cambiar la fecha" request_training_modal: - # modal introducing that a training is requested before booking a machine + #modal introducing that a training is requested before booking a machine to_book_the_MACHINE_you_must_have_completed_the_TRAINING: "Para reservar \"{MACHINE}\" debes haber completado el curso: {TRAINING}." register_for_the_training: "Apuntarse al curso" i_dont_want_to_register_now: "No quiero apuntarme aún" training_reservation_modal: - # modal introducing that a user must wait for his training being validated before booking a machine + #modal introducing that a user must wait for his training being validated before booking a machine machine_reservation: "Reserva de máquina" you_must_wait_for_your_training_is_being_validated_by_the_fablab_team_to_book_this_machine: "Debes esperar a que el Fablab valide tu curso para reservar la máquina." your_training_will_occur_: "Tu curso será realizado" - public_profile: - # user public profile + #user public profile last_activity_html: "Last activity
on {DATE}" to_come: "por llegar" approved: "aprobada" @@ -303,7 +287,6 @@ es: email_address: "Email address" trainings: "Trainings" no_trainings: "No trainings" - wallet: #wallet wallet: 'Cartera' @@ -340,9 +323,8 @@ es: debit_reservation_machine: "Débito por reserva de máquina" debit_reservation_event: "Débito por reserva de evento" warning_uneditable_credit: "ADVERTENCIA: una vez validada la reserva no podrá modificarse el pago." - coupon: - # promotional coupon (creation/edition form) + #promotional coupon (creation/edition form) name: "Nombre" name_is_required: "Name is required." code: "Código" @@ -364,9 +346,8 @@ es: max_usages: "Usos máximos permitidos" max_usages_must_be_equal_or_greater_than_0: "El número de usos máximos permitidos debe ser mayor que 0." enabled: "Activo" - coupon_input: - # coupon (input zone for users) + #coupon (input zone for users) i_have_a_coupon: "I have a coupon!" code_: "Code:" the_coupon_has_been_applied_you_get_PERCENT_discount: "Se ha aplicado el cupón {PERCENT}% de descuento." @@ -378,9 +359,8 @@ es: unable_to_apply_the_coupon_because_amount_exceeded: "No se puede aplicar el cupón: el descuento excede el monto total de esta compra." unable_to_apply_the_coupon_because_undefined: "No se puede aplicar el cupón: se ha producido un error inesperado, póngase en contacto con el gerente del Fablab." unable_to_apply_the_coupon_because_rejected: "Este código no existe." - space: - # form to create/edit a space + #form to create/edit a space name: "Nombre" name_is_required: "Se requiere un nombre." illustration: "Ilustración" @@ -395,9 +375,8 @@ es: default_places: "Máximo de entradas predeterminado" default_places_is_required: "Se requiere un máximo de entradas predeterminado." disable_space: "Disable space" - cart: - # module de panier d'achat de réservations + #module de panier d'achat de réservations summary: "Resumen" select_one_or_more_slots_in_the_calendar: "Selecciona uno {SINGLE, select, true{slot} other{or more slots}} en el calendario" you_ve_just_selected_the_slot: "Acaba de seleccionar el espacio :" @@ -427,7 +406,7 @@ es: tags_of_the_destination_slot: "Etiquetas del espacio final:" confirm_my_modification: "Confirmar modificación" your_booking_slot_was_successfully_moved_from_: "Tu reserva de espacio ha sido reemplazada con éxito" - to_date: "a" # eg: from 01/01 to 01/05 + to_date: "a" #eg: from 01/01 to 01/05 please_select_a_member_first: "Por favor, selecciona un miembro de la lista" unable_to_select_plan_if_slots_in_the_past: 'No se puede seleccionar un plan si alguno de los espacios seleccionados está en el pasado' unable_to_change_the_reservation: "Imposible cambiar reserva" @@ -448,7 +427,6 @@ es: slot_at_same_time: "Conflict with others reservations" do_you_really_want_to_book_slot_at_same_time: "Do you really want to book this slot? Other bookings take place at the same time" unable_to_book_slot_because_really_have_reservation_at_same_time: "Unable to book this slot because the following reservation occurs at the same time." - tour: previous: "Previous" next: "Next" diff --git a/config/locales/app.shared.fr.yml b/config/locales/app.shared.fr.yml index 052604fae..a306b13ee 100644 --- a/config/locales/app.shared.fr.yml +++ b/config/locales/app.shared.fr.yml @@ -2,7 +2,7 @@ fr: app: shared: buttons: - # traductions de boutons communs + #traductions de boutons communs confirm_changes: "Valider les modifications" consult: "Consulter" edit: "Éditer" @@ -18,14 +18,12 @@ fr: "yes": "Oui" "no": "Non" apply: "Appliquer" - messages: you_will_lose_any_unsaved_modification_if_you_quit_this_page: "Vous perdrez les modifications non enregistrées si vous quittez cette page" you_will_lose_any_unsaved_modification_if_you_reload_this_page: "Vous perdrez les modifications non enregistrées si vous rechargez cette page" payment_card_error: "Un problème est survenu avec votre carte bancaire :" - user: - # formulaire d'édition du profil utilisateur + #formulaire d'édition du profil utilisateur man: "Homme" woman: "Femme" add_an_avatar: "Ajouter un avatar" @@ -64,9 +62,8 @@ fr: used_for_invoicing: "Cette donnée sera utilisée à des fins de facturation" used_for_reservation: "Cette donnée sera utilisée en cas de changement sur une de vos réservations" used_for_profile: "Cette donnée sera seulement affichée sur votre profil" - project: - # formulaire d'étition d'un projet + #formulaire d'étition d'un projet name: "Nom" name_is_required: "Le nom est requis." illustration: "Illustration" @@ -94,9 +91,8 @@ fr: themes: "Thématiques" tags: "Étiquettes" save_as_draft: "Enregistrer comme brouillon" - machine: - # formulaire d'édition d'une machine + #formulaire d'édition d'une machine name: "Nom" name_is_required: "Le nom est requis." illustration: "Visuel" @@ -110,33 +106,28 @@ fr: add_an_attachment: "Ajouter une pièce jointe" disable_machine: "Désactiver la machine" validate_your_machine: "Valider votre machine" - plan_subscribe: - # cadre de souscription à un abonnement + #cadre de souscription à un abonnement subscribe_online: "je m'abonne en ligne" do_not_subscribe: "je ne souhaite pas m'abonner" - member_select: - # admin : choisir un membre avec lequel interagir + #admin : choisir un membre avec lequel interagir select_a_member: "Sélectionnez un membre" start_typing: "Commencez à écrire..." - stripe: - # fenêtre de paiement stripe + #fenêtre de paiement stripe online_payment: "Paiement en ligne" i_have_read_and_accept_: "J'ai bien pris connaissance, et accepte" _the_general_terms_and_conditions: "les conditions générales de vente." credit_amount_for_pay_reservation: "Il vous reste {amount} {currency} à payer pour valider votre réservation" client_credit_amount_for_pay_reservation: "Il reste {amount} {currency} à payer pour valider la réservation" confirm_payment_of_: "Payer : {AMOUNT}" - valid_reservation_modal: - # fenêtre de paiement sur place d'une réservation + #fenêtre de paiement sur place d'une réservation booking_confirmation: "Validation réservation" here_is_the_summary_of_the_slots_to_book_for_the_current_user: "Voici le récapitulatif des créneaux à réserver pour l'utilisateur courant :" - event: - # formulaire d'édition d'un événement + #formulaire d'édition d'un événement title: "Titre" title_is_required: "Le titre est requis." matching_visual: "Visuel associé" @@ -160,9 +151,8 @@ fr: tickets_available: "Places disponibles" event_theme: "Thème de l'évènement" age_range: "Tranche d'âge" - plan: - # formulaire d'édition d'une formule d'abonnement + #formulaire d'édition d'une formule d'abonnement general_information: "Informations générales" name: "Nom" name_is_required: "Le nom est requis" @@ -203,9 +193,8 @@ fr: email_address_is_required: "L'adresse e-mail est requise." disabled: "Désactiver l'abonnement" disable_plan_will_not_unsubscribe_users: "Attention : désactiver l'abonnement ne désabonnera pas les utilisateurs ayant actuellement cet abonnement actif." - trainings: - # formulaire d'édition d'une formation + #formulaire d'édition d'une formation name: "Nom" name_is_required: "Le nom est requis." illustration: "Visuel" @@ -218,9 +207,8 @@ fr: number_of_tickets: "Nombre de places" public_page: "Afficher dans la liste de formation" disable_training: "Désactiver la formation" - user_admin: - # formulaire partiel d'édition/création utilisateur (vue admin) + #formulaire partiel d'édition/création utilisateur (vue admin) user: "Utilisateur" incomplete_profile: "Profil incomplet" user_profile: "Profil utilisateur" @@ -229,9 +217,8 @@ fr: group_is_required: "Le groupe est requis." trainings: "Formations" tags: "Étiquettes" - authentication: - # formulaire partiel d'édition/création d'un fournisseur d'authentification (SSO) + #formulaire partiel d'édition/création d'un fournisseur d'authentification (SSO) name: "Nom" provider_name_is_required: "Le nom du fournisseur est requis." authentication_type: "Type d'authentification" @@ -242,9 +229,8 @@ fr: expected_data_type: "Type de données attendues" input_format: "Format d'entrée" mappings: "Correspondances" - oauth2: - # formulaire d'édition/création d'un fournisseur d'authentification de type OAuth2 + #formulaire d'édition/création d'un fournisseur d'authentification de type OAuth2 common_url: "URL commune" common_url_is_required: "L'URL commune est requise." provided_url_is_not_a_valid_url: "L'URL fournie n'est pas une URL valide." @@ -267,29 +253,25 @@ fr: api_endpoint_url: "Terminaison/URL de l'API" api_type: "Type d'API" api_fields: "Champ de l'API" - confirm_modify_slot_modal: - # fenêtre de modification d'un créneau de réservation machine/formation + #fenêtre de modification d'un créneau de réservation machine/formation change_the_slot: "Modifier le créneau" do_you_want_to_change_your_booking_slot_initially_planned_at: "Souhaitez-vous changer votre créneau de réservation initialement prévu au :" do_you_want_to_change_NAME_s_booking_slot_initially_planned_at: "Souhaitez-vous changer le créneau de réservation de {NAME}, initialement prévu au :" cancel_this_reservation: "Annuler cette réservation" i_want_to_change_date: "Je veux changer de date" - request_training_modal: - # fenêtre présentant l'obligation de participer à une formation avant de réserver une machine + #fenêtre présentant l'obligation de participer à une formation avant de réserver une machine to_book_the_MACHINE_you_must_have_completed_the_TRAINING: "Pour réserver la machine \"{MACHINE}\" vous devez avoir suivi la {TRAINING}." register_for_the_training: "S'inscrire à la formation" i_dont_want_to_register_now: "Je ne souhaite pas m'inscrire pour l'instant" - training_reservation_modal: - # fenêtre présentant l'obligation d'attendre la validation de la formation pour réserver une machine + #fenêtre présentant l'obligation d'attendre la validation de la formation pour réserver une machine machine_reservation: "Réservation machine" you_must_wait_for_your_training_is_being_validated_by_the_fablab_team_to_book_this_machine: "Il faut attendre que votre formation soit validée par l'équipe du Fab Lab pour réserver cette machine." your_training_will_occur_: "Votre formation aura lieu le" - public_profile: - # profil publique d'un utilisateur + #profil publique d'un utilisateur last_activity_html: "Dernière activité
le {DATE}" to_come: "à venir" approved: "validée" @@ -303,9 +285,8 @@ fr: email_address: "Adresse électronique" trainings: "Formations" no_trainings: "Aucune formation" - wallet: - # porte-monnaie + #porte-monnaie wallet: 'Porte-monnaie' your_wallet_amount: 'Votre montant disponible' wallet_amount: 'Montant disponible' @@ -340,9 +321,8 @@ fr: debit_reservation_machine: "Payer un reservation de machine" debit_reservation_event: "Payer un reservation d'évenement" warning_uneditable_credit: "Attention : une fois validé, le montant crédité ne sera plus modifiable." - coupon: - # code promotionnel (formulaire de création/édition) + #code promotionnel (formulaire de création/édition) name: "Nom" name_is_required: "le nom est requis." code: "Code" @@ -364,9 +344,8 @@ fr: max_usages: "Nombre maximum d'utilisations autorisées" max_usages_must_be_equal_or_greater_than_0: "Le nombre d'utilisations maximum doit être supérieur ou égal à 0." enabled: "Activé" - coupon_input: - # code promotionnel (zone de saisie pour les utilisateurs) + #code promotionnel (zone de saisie pour les utilisateurs) i_have_a_coupon: "J'ai un code promo !" code_: "Code :" the_coupon_has_been_applied_you_get_PERCENT_discount: "Le code promo a bien été appliqué. Vous bénéficiez d'une remise de {PERCENT} %." @@ -378,9 +357,8 @@ fr: unable_to_apply_the_coupon_because_amount_exceeded: "Impossible d'appliquer la réduction : la réduction dépasse le total de cet achat." unable_to_apply_the_coupon_because_undefined: "Impossible d'appliquer la réduction : une erreur inattendue s'est produite, veuillez contacter le gestionnaire du Fablab." unable_to_apply_the_coupon_because_rejected: "Ce code promo n'existe pas." - space: - # formulaire de création/modification d'un espace + #formulaire de création/modification d'un espace name: "Nom" name_is_required: "Le nom est requis." illustration: "Visuel" @@ -395,13 +373,12 @@ fr: default_places: "Maximum de places par défaut" default_places_is_required: "Le nombre de places maximum par défaut est requis." disable_space: "Désactiver l'espace" - cart: - # module de panier d'achat de réservations + #module de panier d'achat de réservations summary: "Résumé" select_one_or_more_slots_in_the_calendar: "Sélectionnez un {SINGLE, select, true{créneau} other{ou plusieurs créneaux}} dans le calendrier" you_ve_just_selected_the_slot: "Vous venez de sélectionner le créneau :" - datetime_to_time: "{START_DATETIME} à {END_TIME}" # eg: Thursday, September 4 1986 8:30 PM to 10:00 PM + datetime_to_time: "{START_DATETIME} à {END_TIME}" #eg: Thursday, September 4 1986 8:30 PM to 10:00 PM cost_of_TYPE: "Coût de {TYPE, select, Machine{l'heure machine} Training{la formation} other{l'élément}}" offer_this_slot: "Offrir ce créneau" confirm_this_slot: "Valider ce créneau" @@ -427,7 +404,7 @@ fr: tags_of_the_destination_slot: "Étiquettes du créneau de destination :" confirm_my_modification: "Valider ma modification" your_booking_slot_was_successfully_moved_from_: "Votre créneau de réservation a bien été déplacé du" - to_date: "au" # eg. from 01/01 to 01/05 + to_date: "au" #eg. from 01/01 to 01/05 please_select_a_member_first: "Veuillez tout d'abord sélectionner un membre" unable_to_select_plan_if_slots_in_the_past: "Impossible de sélectionner un abonnement si l'un des créneaux sélectionné est dans le passé" unable_to_change_the_reservation: "Impossible de modifier la réservation" @@ -435,7 +412,7 @@ fr: do_you_really_want_to_cancel_this_reservation: "Êtes-vous sur de vouloir annuler cette réservation ?" reservation_was_cancelled_successfully: "La réservation a bien été annulée." cancellation_failed: "L'annulation a échouée." - confirm_payment_of_html: "{ROLE, select, admin{Paiement sur place} other{Payer}} : {AMOUNT}" # eg. valider mon paiement de 20,00 € + confirm_payment_of_html: "{ROLE, select, admin{Paiement sur place} other{Payer}} : {AMOUNT}" #eg. valider mon paiement de 20,00 € a_problem_occurred_during_the_payment_process_please_try_again_later: "Il y a eu un problème lors de la procédure de paiement. Veuillez réessayer plus tard." none: "Aucune" online_payment_disabled: "Le payment par carte bancaire n'est pas disponible. Merci de contacter directement l'accueil du Fablab." @@ -448,7 +425,6 @@ fr: slot_at_same_time: "Conflit avec d'autres réservations" do_you_really_want_to_book_slot_at_same_time: "Êtes-vous sûr de réserver ce créneau ? D'autres réservations ont lieu en même temps" unable_to_book_slot_because_really_have_reservation_at_same_time: "Impossible de réserver ce créneau car les réservations ci-dessous ont lieu en même temps." - tour: previous: "Précédent" next: "Suivant" diff --git a/config/locales/app.shared.pt.yml b/config/locales/app.shared.pt.yml index 75c662873..406a28a70 100755 --- a/config/locales/app.shared.pt.yml +++ b/config/locales/app.shared.pt.yml @@ -2,7 +2,7 @@ pt: app: shared: buttons: - # translations of common buttons + #translations of common buttons confirm_changes: "Confirmar mudanças" consult: "Consultar" edit: "Editar" @@ -18,14 +18,12 @@ pt: "yes": "Sim" "no": "Não" apply: "Aplicar" - messages: you_will_lose_any_unsaved_modification_if_you_quit_this_page: "Você irá perder todas as modificações não salvas se sair desta página" you_will_lose_any_unsaved_modification_if_you_reload_this_page: "Você irá perder todas as modificações não salvas se recarregar desta página" payment_card_error: "A problem has occurred with your credit card:" - user: - # user edition form + #user edition form man: "Man" woman: "Woman" add_an_avatar: "Adicionar avatar" @@ -64,9 +62,8 @@ pt: used_for_invoicing: "This data will be used for billing purposes" used_for_reservation: "This data will be used in case of change on one of your bookings" used_for_profile: "This data will only be displayed on your profile" - project: - # project edition form + #project edition form name: "Name" name_is_required: "Name is required." illustration: "Ilustração" @@ -94,9 +91,8 @@ pt: themes: "Themes" tags: "Tags" save_as_draft: "Save as draft" - machine: - # machine edition form + #machine edition form name: "Nome" name_is_required: "Nome é obrigatório." illustration: "Ilustração" @@ -110,33 +106,28 @@ pt: add_an_attachment: "Adicionar anexo" disable_machine: "Desativar máquina" validate_your_machine: "Validar sua máquina" - plan_subscribe: - # frame to select a plan to subscribe + #frame to select a plan to subscribe subscribe_online: "Inscrição online" do_not_subscribe: "não inscrito" - member_select: - # admin: choose a member to interact with + #admin: choose a member to interact with select_a_member: "Selecionar um membro" start_typing: "Escrevendo..." - stripe: - # stripe payment modal + #stripe payment modal online_payment: "Online payment" i_have_read_and_accept_: "Eu li e aceito" _the_general_terms_and_conditions: "os termos e condições." credit_amount_for_pay_reservation: "{amount} {currency} a ser pago para confirmar sua inscrição" client_credit_amount_for_pay_reservation: "{amount} {currency} a ser pago para confirmar a inscrição do cliente" confirm_payment_of_: "Pay: {AMOUNT}" - valid_reservation_modal: - # dialog of on site payment for reservations + #dialog of on site payment for reservations booking_confirmation: "Confirmação de reserva" here_is_the_summary_of_the_slots_to_book_for_the_current_user: "Aqui está um resumo das reservas para o usuário atual:" - event: - # event edition form + #event edition form title: "Title" title_is_required: "Título é obrigatório." matching_visual: "Correspondência visual" @@ -160,9 +151,8 @@ pt: tickets_available: "Tickets disponíveis" event_theme: "Tema do evento" age_range: "Faixa etária" - plan: - # subscription plan edition form + #subscription plan edition form general_information: "Informação geral" name: "Nome" name_is_required: "Nome é obrigatório." @@ -203,9 +193,8 @@ pt: email_address_is_required: "Email é obrigatório." disabled: "Disable subscrição" disable_plan_will_not_unsubscribe_users: "Aviso: desativar a assinatura não desautorizará os usuários que atualmente possuem esta assinatura ativa." - trainings: - # training edition form + #training edition form name: "Nome" name_is_required: "Nome é obrigatório." illustration: "Ilustração" @@ -218,9 +207,8 @@ pt: number_of_tickets: "Número de vagas" public_page: "Mostrar na lista de treinamentos" disable_training: "Desativar treinamento" - user_admin: - # partial form to edit/create an user (admin view) + #partial form to edit/create an user (admin view) user: "User" incomplete_profile: "Incomplete profile" user_profile: "Perfil de usuário" @@ -229,9 +217,8 @@ pt: group_is_required: "Grupo é obrigatório" trainings: "Treinamentos" tags: "Tags" - authentication: - # partial form to edit/create an authentication provider (SSO) + #partial form to edit/create an authentication provider (SSO) name: "Nome" provider_name_is_required: "Nome da provider é obrigatório." authentication_type: "Tipo de autenticação" @@ -242,9 +229,8 @@ pt: expected_data_type: "Esperado tipo de dado" input_format: "Insira o formato" mappings: "Mapeamentos" - oauth2: - # edition/creation form of an OAuth2 authentication provider + #edition/creation form of an OAuth2 authentication provider common_url: "Common URL" common_url_is_required: "Common URL is required." provided_url_is_not_a_valid_url: "Provided URL is not a valid URL." @@ -267,29 +253,25 @@ pt: api_endpoint_url: "API endpoint URL" api_type: "API tipo" api_fields: "API linhas" - confirm_modify_slot_modal: - # machine/training slot modification modal + #machine/training slot modification modal change_the_slot: "Alterar o slot" do_you_want_to_change_your_booking_slot_initially_planned_at: "Você deseja alterar seu agendamento, inicialmente marcado para:" do_you_want_to_change_NAME_s_booking_slot_initially_planned_at: "Você deseja alterar o agendamento do usuário {NAME}, inicialmente marcado para:" cancel_this_reservation: "Cancelar essa reserva" i_want_to_change_date: "Eu quero alterar a data" - request_training_modal: - # modal introducing that a training is requested before booking a machine + #modal introducing that a training is requested before booking a machine to_book_the_MACHINE_you_must_have_completed_the_TRAINING: "Para agendar \"{MACHINE}\" você deve completar o treinamento {TRAINING}." register_for_the_training: "Inscrever-se no treinamento" i_dont_want_to_register_now: "Não desejo me inscrever agora" - training_reservation_modal: - # modal introducing that a user must wait for his training being validated before booking a machine + #modal introducing that a user must wait for his training being validated before booking a machine machine_reservation: "Reserva de máquina" you_must_wait_for_your_training_is_being_validated_by_the_fablab_team_to_book_this_machine: "Você deve esperar que seu treinamento seja validado pela equipe do FabLab para reservar esta máquina." your_training_will_occur_: "Seu treinamento ocorrerá" - public_profile: - # user public profile + #user public profile last_activity_html: "Última atividade
em {DATE}" to_come: "vir" approved: "aprovado" @@ -303,9 +285,8 @@ pt: email_address: "Email address" trainings: "Trainings" no_trainings: "No trainings" - wallet: - # wallet + #wallet wallet: 'Carteira' your_wallet_amount: 'Seus créditos disponíveis' wallet_amount: 'Crédito disponível' @@ -340,9 +321,8 @@ pt: debit_reservation_machine: "Débito por reserva de máquina" debit_reservation_event: "Débito por reserva de evento" warning_uneditable_credit: "Aviso: uma vez validado, o valor creditado não será mais editado." - coupon: - # promotional coupon (creation/edition form) + #promotional coupon (creation/edition form) name: "Nome" name_is_required: "Name is required." code: "Código" @@ -364,9 +344,8 @@ pt: max_usages: "Máximo de usos permitido" max_usages_must_be_equal_or_greater_than_0: "Os usos máximos permitidos devem ser maiores que 0." enabled: "Ativo" - coupon_input: - # coupon (input zone for users) + #coupon (input zone for users) i_have_a_coupon: "Eu tenho um cupom!" code_: "Código:" the_coupon_has_been_applied_you_get_PERCENT_discount: "O cupom foi aplicado. Você recebeu {PERCENT}% de desconto." @@ -378,9 +357,8 @@ pt: unable_to_apply_the_coupon_because_amount_exceeded: "Não é possível aplicar o cupom: o desconto excede o valor total desta compra." unable_to_apply_the_coupon_because_undefined: "Não é possível aplicar o cupom: um erro inesperado aconteceu, por favor entre em contato com o FabLab." unable_to_apply_the_coupon_because_rejected: "Este código não existe." - space: - # form to create/edit a space + #form to create/edit a space name: "Nome" name_is_required: "Nome é obrigatório." illustration: "Ilustração" @@ -395,13 +373,12 @@ pt: default_places: "Tickets máximo padrão" default_places_is_required: "Tickets máximo padrão é obrigatório." disable_space: "Desativar espaço" - cart: - # module de panier d'achat de réservations + #module de panier d'achat de réservations summary: "Sumário" select_one_or_more_slots_in_the_calendar: "Selecionar um {SINGLE, select, true{slot} other{ou mais slots}} no calendário" you_ve_just_selected_the_slot: "Você selecionou apenas o slot:" - datetime_to_time: "{START_DATETIME} até {END_TIME}" # eg: Thursday, September 4 1986 8:30 PM to 10:00 PM + datetime_to_time: "{START_DATETIME} até {END_TIME}" #eg: Thursday, September 4 1986 8:30 PM to 10:00 PM cost_of_TYPE: "Custo de {TYPE, select, Machine{máquina hora} Training{o treinamento} other{o elemento}}" offer_this_slot: "Oferecer este slot" confirm_this_slot: "Confirmar este slot" @@ -427,7 +404,7 @@ pt: tags_of_the_destination_slot: "Tags do slot de destino:" confirm_my_modification: "Confirmar minha modificação" your_booking_slot_was_successfully_moved_from_: "Seu slot de reserva foi movido com sucesso para" - to_date: "até" # eg. from 01/01 to 01/05 + to_date: "até" #eg. from 01/01 to 01/05 please_select_a_member_first: "Por favor selecione o membro primeiramente" unable_to_select_plan_if_slots_in_the_past: 'Não é possível selecionar um plano se algum dos slots selecionados estiver no passado' unable_to_change_the_reservation: "Não permitido alterar esta reserva" @@ -435,7 +412,7 @@ pt: do_you_really_want_to_cancel_this_reservation: "Você realmente quer cancelar essa reserva?" reservation_was_cancelled_successfully: "Reserva a foi cancelada com sucesso." cancellation_failed: "Cancelamento falhou." - confirm_payment_of_html: "{ROLE, select, admin{Pagamento pelo site} other{Pagar}}: {AMOUNT}" # (context: confirm my payment of $20.00) + confirm_payment_of_html: "{ROLE, select, admin{Pagamento pelo site} other{Pagar}}: {AMOUNT}" #(context: confirm my payment of $20.00) a_problem_occurred_during_the_payment_process_please_try_again_later: "Um problema ocorreu durante o processo de pagamento. Por favor tente novamente mais tarde." none: "Vazio" online_payment_disabled: "O pagamento online não está disponível. Entre em contato diretamente com a recepção do Fablab." @@ -448,7 +425,6 @@ pt: slot_at_same_time: "Conflict with others reservations" do_you_really_want_to_book_slot_at_same_time: "Do you really want to book this slot? Other bookings take place at the same time" unable_to_book_slot_because_really_have_reservation_at_same_time: "Unable to book this slot because the following reservation occurs at the same time." - tour: previous: "Previous" next: "Next" diff --git a/config/locales/base.en.yml b/config/locales/base.en.yml new file mode 100644 index 000000000..d14ddc6de --- /dev/null +++ b/config/locales/base.en.yml @@ -0,0 +1,12 @@ +en: + time: + formats: + # See http://apidock.com/ruby/DateTime/strftime for a list of available directives + hour_minute: "%I:%M %p" + + errors: &errors + messages: &errors_messages + + activemodel: + errors: + <<: *errors diff --git a/config/locales/base.es.yml b/config/locales/base.es.yml new file mode 100644 index 000000000..129307c63 --- /dev/null +++ b/config/locales/base.es.yml @@ -0,0 +1,12 @@ +es: + time: + formats: + # See http://apidock.com/ruby/DateTime/strftime for a list of available directives + hour_minute: "%I:%M %p" + + errors: &errors + messages: &errors_messages + + activemodel: + errors: + <<: *errors diff --git a/config/locales/base.fr.yml b/config/locales/base.fr.yml new file mode 100644 index 000000000..d45afe2ae --- /dev/null +++ b/config/locales/base.fr.yml @@ -0,0 +1,12 @@ +fr: + time: + formats: + # Liste des directives disponibles sur http://apidock.com/ruby/DateTime/strftime + hour_minute: "%H:%M" + + errors: &errors + messages: &errors_messages + + activemodel: + errors: + <<: *errors diff --git a/config/locales/base.pt.yml b/config/locales/base.pt.yml new file mode 100644 index 000000000..f0c6a999f --- /dev/null +++ b/config/locales/base.pt.yml @@ -0,0 +1,12 @@ +pt: + time: + formats: + # See http://apidock.com/ruby/DateTime/strftime for a list of available directives + hour_minute: "%I:%M %p" + + errors: &errors + messages: &errors_messages + + activemodel: + errors: + <<: *errors diff --git a/config/locales/devise.en.yml b/config/locales/devise.en.yml index b0ccd6ec1..7cd1f63b4 100644 --- a/config/locales/devise.en.yml +++ b/config/locales/devise.en.yml @@ -18,13 +18,13 @@ en: unconfirmed: "You have to confirm your account before continuing. Please click on the link below the form." mailer: confirmation_instructions: - action: - instruction: + action: "Confirm my email address" + instruction: "You can finalize your registration by confirming your email address. Please click on the following link:" subject: "Confirmation instructions" reset_password_instructions: - action: - instruction: - ignore_otherwise: + action: "Change my password" + instruction: "Someone asked for a link to change your password. You can do it through the link below." + ignore_otherwise: "If you have not made this request, please ignore this message." subject: "Reset password instructions" unlock_instructions: subject: "Unlock Instructions" diff --git a/config/locales/en.yml b/config/locales/en.yml index afa3f319e..511a38bbd 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1,6 +1,6 @@ en: + #subscription plan duration duration: - # subscription plan duration year: one: 'one year' other: '%{count} years' @@ -10,15 +10,9 @@ en: week: one: 'one week' other: '%{count} weeks' - - time: - formats: - # See http://apidock.com/ruby/DateTime/strftime for a list of available directives - hour_minute: "%I:%M %p" - - errors: &errors - messages: &errors_messages - # CarrierWave + errors: + #CarrierWave + messages: carrierwave_processing_error: "failed to be processed" carrierwave_integrity_error: "is not of an allowed file type" carrierwave_download_error: "could not be downloaded" @@ -42,38 +36,29 @@ en: end_before_start: "The end date can't be before the start date. Pick a date after %{START}" invalid_duration: "The allowed duration must be between 1 day and 1 year. Your period is %{DAYS} days long." must_be_in_the_past: "The period must be strictly prior to today's date." - - activemodel: - errors: - <<: *errors - apipie: api_documentation: "API Documentation" - + #error messages when importing an account from a SSO omniauth: - # error messages when importing an account from a SSO email_already_linked_to_another_account_please_input_your_authentication_code: "E-mail address \"%{OLD_MAIL}\" is already linked to another account, please input your authentication code." your_username_is_already_linked_to_another_account_unable_to_update_it: "Your username (%{USERNAME}) is already linked to another account, unable to update it." your_email_address_is_already_linked_to_another_account_unable_to_update_it: "Your e-mail address (%{EMAIL}) is already linked to another account, unable to update it." this_account_is_already_linked_to_an_user_of_the_platform: "This %{NAME} account is already linked to an user of the platform." - + #availability slots in the calendar availabilities: - # availability slots in the calendar not_available: "Not available" i_ve_reserved: "I've reserved" length_must_be_slot_multiple: "must be at least %{MIN} minutes after the start date" must_be_associated_with_at_least_1_machine: "must be associated with at least 1 machine" - + #members management members: - # members management unable_to_change_the_group_while_a_subscription_is_running: "Unable to change the group while a subscription is running" please_input_the_authentication_code_sent_to_the_address: "Please input the authentication code sent to the e-mail address %{EMAIL}" your_authentication_code_is_not_valid: "Your authentication code is not valid." current_authentication_method_no_code: "The current authentication method does not require any migration code" requested_account_does_not_exists: "The requested account does not exist" - + #PDF invoices generation invoices: - # PDF invoices generation refund_invoice_reference: "Refund invoice reference: %{REF}" invoice_reference: "Invoice reference: %{REF}" code: "Code: %{CODE}" @@ -101,7 +86,7 @@ en: one: "One %{NAME} ticket" other: "%{count} %{NAME} tickets" reservation_other: "Reservation (other)" - coupon_CODE_discount_of_DISCOUNT: "Coupon {CODE}: discount of {DISCOUNT}{TYPE, select, percent_off{%} other{}}" # messageFormat interpolation + coupon_CODE_discount_of_DISCOUNT: "Coupon {CODE}: discount of {DISCOUNT}{TYPE, select, percent_off{%} other{}}" #messageFormat interpolation total_including_all_taxes: "Total incl. all taxes" including_VAT_RATE: "Including VAT %{RATE}%" including_total_excluding_taxes: "Including Total excl. taxes" @@ -119,12 +104,12 @@ en: settlement_by_wallet: "Settlement by wallet" on_DATE_at_TIME: "on %{DATE} at %{TIME}," for_an_amount_of_AMOUNT: "for an amount of %{AMOUNT}" - on_DATE_from_START_to_END: "On %{DATE} from %{START} to %{END}" # eg: on feb. 7 from 7AM to 9AM - from_STARTDATE_to_ENDDATE_from_STARTTIME_to_ENDTIME: "From %{STARTDATE} to %{ENDDATE}, from %{STARTTIME} to %{ENDTIME}" # eg: from feb. 7 to feb. 10, from 6PM to 10PM + on_DATE_from_START_to_END: "On %{DATE} from %{START} to %{END}" #eg: on feb. 7 from 7AM to 9AM + from_STARTDATE_to_ENDDATE_from_STARTTIME_to_ENDTIME: "From %{STARTDATE} to %{ENDDATE}, from %{STARTTIME} to %{ENDTIME}" #eg: from feb. 7 to feb. 10, from 6PM to 10PM subscription_of_NAME_for_DURATION_starting_from_DATE: "Subscription of %{NAME} for %{DURATION} starting from %{DATE}" subscription_of_NAME_extended_starting_from_STARTDATE_until_ENDDATE: "Subscription of %{NAME} extended (Free days) starting from %{STARTDATE} until %{ENDDATE}" and: 'and' - + # CVS accounting export (columns headers) accounting_export: journal_code: "Journal code" date: "Entry date" @@ -144,22 +129,19 @@ en: Event_reservation: "event reserv." Space_reservation: "space reserv." wallet: "wallet" - + #training availabilities trainings: - # training availabilities i_ve_reserved: "I've reserved" completed: "Full" - + #error messages when updating an event events: - # error messages when updating an event error_deleting_reserved_price: "Unable to delete the requested price because it is associated with some reservations" other_error: "An unexpected error occurred while updating the event" - # event duration + #event duration from_STARTDATE_to_ENDDATE: "From %{STARTDATE} to %{ENDDATE}," from_STARTTIME_to_ENDTIME: "from %{STARTTIME} to %{ENDTIME}" - + #members list export to EXCEL format export_members: - # members list export to EXCEL format members: "Members" id: "ID" surname: "Surname" @@ -190,9 +172,8 @@ en: man: "Man" woman: "Woman" without_subscriptions: "Without subscriptions" - + #machines/trainings/events reservations list to EXCEL format export_reservations: - # machines/trainings/events reservations list to EXCEL format reservations: "Reservations" customer_id: "Customer ID" customer: "Customer" @@ -204,9 +185,8 @@ en: payment_method: "Payment method" local_payment: "Payment at the reception" online_payment: "Online payment" - + #subscriptions list export to EXCEL format export_subscriptions: - # subscriptions list export to EXCEL format subscriptions: "Subscriptions" id: "ID" customer: "Customer" @@ -219,9 +199,8 @@ en: payment_method: "Payment method" local_payment: "Payment at the reception" online_payment: "Online payment" - + #reservation slots export, by type, to EXCEL format export_availabilities: - # reservation slots export, by type, to EXCEL format machines: "Machines" trainings: "Trainings" spaces: "Spaces" @@ -235,10 +214,9 @@ en: event: "Event" reservations: "Reservations" available_seats: "Available seats" - api: + #internal app notifications notifications: - # internal app notifications deleted_user: "Deleted user" notify_admin_abuse_reported: an_abuse_was_reported_on_TYPE_ID_NAME_html: "An abuse was reported on %{TYPE} %{ID}: %{NAME}." @@ -255,15 +233,15 @@ en: notify_admin_subscription_canceled: USER_s_subscription_has_been_cancelled: "%{USER}'s subscription has been cancelled." notify_admin_subscription_extended: - subscription_PLAN_of_the_member_USER_has_been_extended_FREE_until_DATE_html: "Subscription {PLAN} of the member {USER} has been extended {FREE, select, true{for free} other{}} until {DATE}." # messageFormat interpolation + subscription_PLAN_of_the_member_USER_has_been_extended_FREE_until_DATE_html: "Subscription {PLAN} of the member {USER} has been extended {FREE, select, true{for free} other{}} until {DATE}." #messageFormat interpolation notify_admin_subscription_is_expired: USER_s_subscription_has_expired: "%{USER}'s subscription has expired." notify_admin_subscription_will_expire_in_7_days: USER_s_subscription_will_expire_in_7_days: "%{USER}'s subscription will expire in 7 days." notify_admin_user_group_changed: - user_NAME_changed_his_group_html: "User {NAME} changed {GENDER, select, true{his} other{her}} group." # messageFormat interpolation + user_NAME_changed_his_group_html: "User {NAME} changed {GENDER, select, true{his} other{her}} group." #messageFormat interpolation notify_admin_user_merged: - user_NAME_has_merged_his_account_with_the_one_imported_from_PROVIDER_UID_html: "User {NAME} has merged {GENDER, select, true{his} other{her}} account with the one imported from {PROVIDER} ({UID})." # messageFormat interpolation + user_NAME_has_merged_his_account_with_the_one_imported_from_PROVIDER_UID_html: "User {NAME} has merged {GENDER, select, true{his} other{her}} account with the one imported from {PROVIDER} ({UID})." #messageFormat interpolation notify_admin_when_project_published: project_NAME_has_been_published_html: "Project %{NAME} has been published." notify_admin_when_user_is_created: @@ -285,7 +263,7 @@ en: notify_member_subscription_canceled: your_subscription_PLAN_was_successfully_cancelled_html: "Your subscription %{PLAN} was successfully cancelled." notify_member_subscription_extended: - your_subscription_PLAN_has_been_extended_FREE_until_DATE_html: "Your subscription {PLAN} has been extended {FREE, select, true{for free} other{}} until {DATE}." # messageFormat interpolation + your_subscription_PLAN_has_been_extended_FREE_until_DATE_html: "Your subscription {PLAN} has been extended {FREE, select, true{for free} other{}} until {DATE}." #messageFormat interpolation notify_member_subscription_is_expired: your_subscription_has_expired: "Your subscription has expired." notify_member_subscription_will_expire_in_7_days: @@ -351,9 +329,8 @@ en: click_to_show: "Click here to consult" notify_admin_refund_created: refund_created: "A refund of %{AMOUNT} has been created for user %{USER}" - + #statistics tools for admins statistics: - # statistics tools for admins subscriptions: "Subscriptions" machines_hours: "Machines slots" spaces: "Spaces" @@ -379,9 +356,8 @@ en: revenue: "Revenue" account_creation: "Account creation" project_publication: "Project publication" - + #statistics exports to the excel file format export: - # statistics exports to the excel file format entries: "Entries" revenue: "Revenue" average_age: "Average Age" @@ -395,12 +371,10 @@ en: type: "Type" male: "Man" female: "Woman" - + #initial price's category for events, created to replace the old "reduced amount" property price_category: - # initial price's category for events, created to replace the old "reduced amount" property reduced_fare: "Reduced fare" reduced_fare_if_you_are_under_25_student_or_unemployed: "Reduced fare if you are under 25, student or unemployed." - group: - # name of the user's group for administrators + #name of the user's group for administrators admins: 'Administrators' diff --git a/config/locales/es.yml b/config/locales/es.yml index bad47cf82..3d6c33a41 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1,6 +1,6 @@ es: duration: - # subscription plan duration + #subscription plan duration year: one: 'un año' other: '%{count} años' @@ -10,15 +10,9 @@ es: week: one: 'una semana' other: '%{count} semanas' - - time: - formats: - # See http://apidock.com/ruby/DateTime/strftime for a list of available directives - hour_minute: "%I:%M %p" - - errors: &errors - messages: &errors_messages - # CarrierWave + errors: + messages: + #CarrierWave carrierwave_processing_error: "falló al procesar" carrierwave_integrity_error: "es un tipo de archivo no permitido" carrierwave_download_error: "no pudo ser descargado" @@ -42,38 +36,29 @@ es: end_before_start: "La fecha de fin no puede ser anterior a la fecha de inicio. Elija una fecha posterior a %{START}" invalid_duration: "La duración permitida es de 1 día a 1 año. Su período es %{DAYS} días de largo." must_be_in_the_past: "El período debe ser estrictamente anterior a la fecha de hoy." - - activemodel: - errors: - <<: *errors - apipie: api_documentation: "Documentación API" - omniauth: - # error messages when importing an account from a SSO + #error messages when importing an account from a SSO email_already_linked_to_another_account_please_input_your_authentication_code: "El correo electrónico \"%{OLD_MAIL}\" ya está ligado a otra cuenta, ingrese su código de autenticación." your_username_is_already_linked_to_another_account_unable_to_update_it: "Su nombre de usuario (%{USERNAME}) ya está ligado a otra cuenta, no se puede actualizar." your_email_address_is_already_linked_to_another_account_unable_to_update_it: "Your e-mail address (%{EMAIL}) ya está ligado a otra cuenta, no se puede actualizar." this_account_is_already_linked_to_an_user_of_the_platform: "Esta cuenta %{NAME} ya está ligada a un usuario de la plataforma." - availabilities: - # availability slots in the calendar + #availability slots in the calendar not_available: "No disponible" i_ve_reserved: "He reservado" length_must_be_slot_multiple: "Debe ser al menos %{MIN} minutos después de la fecha de inicio" must_be_associated_with_at_least_1_machine: "debe estar asociado con al menos 1 máquina" - members: - # members management + #members management unable_to_change_the_group_while_a_subscription_is_running: "No se puede cambiar de grupo mientras haya una suscripción en curso" please_input_the_authentication_code_sent_to_the_address: "Por favor Ingrese el código de autenticación enviado a la dirección de correo electrónico %{EMAIL}" your_authentication_code_is_not_valid: "Su código de autenticación no es válido." current_authentication_method_no_code: "El método de autenticación actual no requiere ningún código de migración" requested_account_does_not_exists: "La cuenta solicitada no existe" - invoices: - # PDF invoices generation + #PDF invoices generation refund_invoice_reference: "Referencia de la factura de reembolso: %{REF}" invoice_reference: "Referencia de factura: %{REF}" code: "Código: %{CODE}" @@ -124,7 +109,6 @@ es: subscription_of_NAME_for_DURATION_starting_from_DATE: "Suscripción %{NAME} por %{DURATION} empezando desde %{DATE}" subscription_of_NAME_extended_starting_from_STARTDATE_until_ENDDATE: "Subscripción de %{NAME} extendida (días gratuitos) empezando desde %{STARTDATE} hasta %{ENDDATE}" and: 'y' - accounting_export: journal_code: "Código de registro" date: "Fecha contable" @@ -144,22 +128,19 @@ es: Event_reservation: "reserv. evento" Space_reservation: "reserv. espacio" wallet: "cartera" - trainings: - # training availabilities + #training availabilities i_ve_reserved: "Reservé" completed: "Lleno" - events: - # error messages when updating an event + #error messages when updating an event error_deleting_reserved_price: "No se puede eliminar el precio solicitado porque está asociado con algunas reservas." other_error: "Se ha producido un error inesperado al actualizar el evento." - # event duration + #event duration from_STARTDATE_to_ENDDATE: "Del %{STARTDATE} al %{ENDDATE}," from_STARTTIME_to_ENDTIME: "de %{STARTTIME} a %{ENDTIME}" - export_members: - # members list export to EXCEL format + #members list export to EXCEL format members: "Miembros" id: "ID" surname: "Apellido" @@ -190,9 +171,8 @@ es: man: "hombre" woman: "mujer" without_subscriptions: "Sin suscripciones" - export_reservations: - # machines/trainings/events reservations list to EXCEL format + #machines/trainings/events reservations list to EXCEL format reservations: "Reservas" customer_id: "Identificación del cliente" customer: "Cliente" @@ -204,9 +184,8 @@ es: payment_method: "Método de pago" local_payment: "Pago en recepción" online_payment: "Pago online" - export_subscriptions: - # subscriptions list export to EXCEL format + #subscriptions list export to EXCEL format subscriptions: "Suscripciones" id: "ID" customer: "Cliente" @@ -219,9 +198,8 @@ es: payment_method: "Método de pago" local_payment: "Pago en recepción" online_payment: "Pago en línea" - export_availabilities: - # reservation slots export, by type, to EXCEL format + #reservation slots export, by type, to EXCEL format machines: "Máquinas" trainings: "Formaciones" spaces: "Espacios" @@ -235,10 +213,9 @@ es: event: "Evento" reservations: "Reservas" available_seats: "Asientos disponibles" - api: notifications: - # internal app notifications + #internal app notifications deleted_user: "Usuario eliminado" notify_admin_abuse_reported: an_abuse_was_reported_on_TYPE_ID_NAME_html: "Un abuso ha sido reportado %{TYPE} %{ID}: %{NAME}." @@ -351,9 +328,8 @@ es: click_to_show: "Haga clic aquí para consultar" notify_admin_refund_created: refund_created: "Se ha creado un reembolso de %{AMOUNT} para el usuario %{USER}" - statistics: - # statistics tools for admins + #statistics tools for admins subscriptions: "Suscripciones" machines_hours: "Machine slots" spaces: "Espacios" @@ -379,9 +355,8 @@ es: revenue: "Ingresos" account_creation: "Creación de cuenta" project_publication: "Publicación de proyectos" - export: - # statistics exports to the excel file format + #statistics exports to the excel file format entries: "Entradas" revenue: "Ingresos" average_age: "Edad media" @@ -395,12 +370,10 @@ es: type: "Tipo" male: "Hombre" female: "Mujer" - price_category: - # initial price's category for events, created to replace the old "reduced amount" property + #initial price's category for events, created to replace the old "reduced amount" property reduced_fare: "Tarifa reducida" reduced_fare_if_you_are_under_25_student_or_unemployed: "Tarifa reducida si tienes menos de 25 años, eres estudiante o estás desempleado." - group: - # name of the user's group for administrators + #name of the user's group for administrators admins: 'Administradores' diff --git a/config/locales/fr.yml b/config/locales/fr.yml index fbe80fd8e..2f64a9e45 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1,6 +1,6 @@ fr: duration: - # durée d'une formule d'abonnement + #durée d'une formule d'abonnement year: one: 'un an' other: '%{count} ans' @@ -10,15 +10,9 @@ fr: week: one: 'une semaine' other: '%{count} semaines' - - time: - formats: - # Liste des directives disponibles sur http://apidock.com/ruby/DateTime/strftime - hour_minute: "%H:%M" - - errors: &errors - messages: &errors_messages - # CarrierWave + errors: + messages: + #CarrierWave carrierwave_processing_error: "n'a pas pu être traité" carrierwave_integrity_error: "n'est pas d'un type de fichier autorisé" carrierwave_download_error: "ne peut pas être téléchargé" @@ -42,38 +36,29 @@ fr: end_before_start: "La date de fin ne peut pas être antérieure à la date de début. Choisissez une date après le %{START}" invalid_duration: "La durée doit être comprise entre 1 jour et 1 an. Votre période dure %{DAYS} jours." must_be_in_the_past: "La période doit être strictement antérieure à la date du jour." - - activemodel: - errors: - <<: *errors - apipie: api_documentation: "Documentation de l'API" - omniauth: - # messages d'erreur lors de l'import d'un compte depuis un SSO + #messages d'erreur lors de l'import d'un compte depuis un SSO email_already_linked_to_another_account_please_input_your_authentication_code: "L'adresse de courriel \"%{OLD_MAIL}\" est déjà associée à un compte utilisateur, merci de saisir votre code d'authentification." your_username_is_already_linked_to_another_account_unable_to_update_it: "Votre nom d'utilisateur (%{USERNAME}) est déjà associée à un autre compte utilisateur, impossible de le mettre à jour." your_email_address_is_already_linked_to_another_account_unable_to_update_it: "Votre adresse de courriel (%{EMAIL}) est déjà associée à un autre compte utilisateur, impossible de la mettre à jour." this_account_is_already_linked_to_an_user_of_the_platform: "Ce compte %{NAME} est déjà lié à un utilisateur de la plate-forme." - availabilities: - # créneaux de disponibilité dans le calendrier + #créneaux de disponibilité dans le calendrier not_available: "Non disponible" i_ve_reserved: "J'ai réservé" length_must_be_slot_multiple: "doit être au moins %{MIN} minutes après la date de début" must_be_associated_with_at_least_1_machine: "doit être associé avec au moins 1 machine" - members: - # gestion des membres + #gestion des membres unable_to_change_the_group_while_a_subscription_is_running: "Impossible de changer le groupe tant qu'un abonnement est en cours" please_input_the_authentication_code_sent_to_the_address: "Merci d'enter le code d'authentification qui a été envoyé à l'adresse de courriel %{EMAIL}" your_authentication_code_is_not_valid: "Votre code d'authentification n'est pas valide." current_authentication_method_no_code: "La méthode d'authentification actuelle ne requiert pas de code de migration" requested_account_does_not_exists: "Le compte utilisateur demandé n'existe pas" - invoices: - # génération des factures en PDF + #génération des factures en PDF refund_invoice_reference: "Référence de l'avoir : %{REF}" invoice_reference: "Référence facture : %{REF}" code: "Code : %{CODE}" @@ -101,7 +86,7 @@ fr: one: "Une place %{NAME}" other: "%{count} places %{NAME}" reservation_other: "Réservation (autre)" - coupon_CODE_discount_of_DISCOUNT: "Code {CODE} : remise de {DISCOUNT} {TYPE, select, percent_off{%} other{}}" # messageFormat interpolation + coupon_CODE_discount_of_DISCOUNT: "Code {CODE} : remise de {DISCOUNT} {TYPE, select, percent_off{%} other{}}" #messageFormat interpolation total_including_all_taxes: "Total TTC" including_VAT_RATE: "Dont TVA %{RATE}%" including_total_excluding_taxes: "Dont total HT" @@ -119,12 +104,11 @@ fr: settlement_by_wallet: "Règlement effectué par porte-monnaie" on_DATE_at_TIME: "le %{DATE} à %{TIME}," for_an_amount_of_AMOUNT: "pour un montant de %{AMOUNT}" - on_DATE_from_START_to_END: "Le %{DATE} de %{START} à %{END}" # eg: on feb. 7 from 7AM to 9AM - from_STARTDATE_to_ENDDATE_from_STARTTIME_to_ENDTIME: "Du %{STARTDATE} au %{ENDDATE}, de %{STARTTIME} à %{ENDTIME}" # eg: from feb. 7 to feb. 10, from 6PM to 10PM + on_DATE_from_START_to_END: "Le %{DATE} de %{START} à %{END}" #eg: on feb. 7 from 7AM to 9AM + from_STARTDATE_to_ENDDATE_from_STARTTIME_to_ENDTIME: "Du %{STARTDATE} au %{ENDDATE}, de %{STARTTIME} à %{ENDTIME}" #eg: from feb. 7 to feb. 10, from 6PM to 10PM subscription_of_NAME_for_DURATION_starting_from_DATE: "Abonnement de %{NAME} pour %{DURATION} à compter du %{DATE}" subscription_of_NAME_extended_starting_from_STARTDATE_until_ENDDATE: "Prolongement Abonnement (Jours gratuits) de %{NAME} à compter du %{STARTDATE} jusqu'au %{ENDDATE}" and: 'et' - accounting_export: journal_code: "Code journal" date: "Date écriture" @@ -144,22 +128,19 @@ fr: Event_reservation: "réserv. évènement" Space_reservation: "réserv. espace" wallet: "porte-monnaie" - trainings: - # disponibilités formations + #disponibilités formations i_ve_reserved: "J'ai réservé" completed: "Complet" - events: - # messages d'erreur lors de la mise à jour d'un évènement + #messages d'erreur lors de la mise à jour d'un évènement error_deleting_reserved_price: "Impossible de supprimer le tarif demandé car il est associé à des réservations" other_error: "Une erreur inattendue est survenue lors de la mise à jour de l'évènement" - # durée d'un évènement + #durée d'un évènement from_STARTDATE_to_ENDDATE: "Du %{STARTDATE} au %{ENDDATE}," from_STARTTIME_to_ENDTIME: "de %{STARTTIME} à %{ENDTIME}" - export_members: - # export de la liste des members au format EXCEL + #export de la liste des members au format EXCEL members: "Membres" id: "ID" surname: "Nom" @@ -190,9 +171,8 @@ fr: man: "Homme" woman: "Femme" without_subscriptions: "Sans Abonnement" - export_reservations: - # export de la liste des réservations machines/formations/évènements au format EXCEL + #export de la liste des réservations machines/formations/évènements au format EXCEL reservations: "Réservations" customer_id: "ID client" customer: "Client" @@ -204,9 +184,8 @@ fr: payment_method: "Méthode de paiement" local_payment: "Paiement à l'accueil" online_payment: "Paiement en ligne" - export_subscriptions: - # export de la liste des abonnements au format EXCEL + #export de la liste des abonnements au format EXCEL subscriptions: "Abonnements" id: "ID" customer: "Client" @@ -219,9 +198,8 @@ fr: payment_method: "Méthode de paiement" local_payment: "Paiement à l'accueil" online_payment: "Paiement en ligne" - export_availabilities: - # export des listes de créneaux de réservations, par type, au format EXCEL + #export des listes de créneaux de réservations, par type, au format EXCEL machines: "Machines" trainings: "Formations" spaces: "Espaces" @@ -235,10 +213,9 @@ fr: event: "Évènement" reservations: "Réservations" available_seats: "Places disponibles" - api: notifications: - # notifications internes à l'application + #notifications internes à l'application deleted_user: "Utilisateur supprimé" notify_admin_abuse_reported: an_abuse_was_reported_on_TYPE_ID_NAME_html: "Un abus a été signalé sur %{TYPE} %{ID} : %{NAME}." @@ -255,15 +232,15 @@ fr: notify_admin_subscription_canceled: USER_s_subscription_has_been_cancelled: "L'abonnement de %{USER} a été annulé." notify_admin_subscription_extended: - subscription_PLAN_of_the_member_USER_has_been_extended_FREE_until_DATE_html: "L'abonnement {PLAN} du membre {USER} a été prolongé {FREE, select, true{gratuitement} other{}} jusqu'au {DATE}." # messageFormat interpolation + subscription_PLAN_of_the_member_USER_has_been_extended_FREE_until_DATE_html: "L'abonnement {PLAN} du membre {USER} a été prolongé {FREE, select, true{gratuitement} other{}} jusqu'au {DATE}." #messageFormat interpolation notify_admin_subscription_is_expired: USER_s_subscription_has_expired: "L'abonnement de %{USER} est arrivé à expiration." notify_admin_subscription_will_expire_in_7_days: USER_s_subscription_will_expire_in_7_days: "L'abonnement de %{USER} expire dans 7 jours." notify_admin_user_group_changed: - user_NAME_changed_his_group_html: "L'utilisateur {NAME} a changé de groupe." # messageFormat interpolation + user_NAME_changed_his_group_html: "L'utilisateur {NAME} a changé de groupe." #messageFormat interpolation notify_admin_user_merged: - user_NAME_has_merged_his_account_with_the_one_imported_from_PROVIDER_UID_html: "L'utilisateur {NAME} a fusionné son compte avec le compte importé depuis {PROVIDER} ({UID})." # messageFormat interpolation + user_NAME_has_merged_his_account_with_the_one_imported_from_PROVIDER_UID_html: "L'utilisateur {NAME} a fusionné son compte avec le compte importé depuis {PROVIDER} ({UID})." #messageFormat interpolation notify_admin_when_project_published: project_NAME_has_been_published_html: "Le projet %{NAME} vient d'être publié." notify_admin_when_user_is_created: @@ -285,7 +262,7 @@ fr: notify_member_subscription_canceled: your_subscription_PLAN_was_successfully_cancelled_html: "Votre abonnement %{PLAN} est bien annulé." notify_member_subscription_extended: - your_subscription_PLAN_has_been_extended_FREE_until_DATE_html: "Votre abonnement {PLAN} a été prolongé {FREE, select, true{gratuitement} other{}} jusqu'au {DATE}." # messageFormat interpolation + your_subscription_PLAN_has_been_extended_FREE_until_DATE_html: "Votre abonnement {PLAN} a été prolongé {FREE, select, true{gratuitement} other{}} jusqu'au {DATE}." #messageFormat interpolation notify_member_subscription_is_expired: your_subscription_has_expired: "Votre abonnement est arrivé à expiration." notify_member_subscription_will_expire_in_7_days: @@ -351,9 +328,8 @@ fr: click_to_show: "Cliquez ici pour la consulter" notify_admin_refund_created: refund_created: "Un avoir de %{AMOUNT} a été généré pour l'utilisateur %{USER}" - statistics: - # outil de statistiques pour les administrateurs + #outil de statistiques pour les administrateurs subscriptions: "Abonnements" machines_hours: "Créneaux machines" spaces: "Espaces" @@ -379,9 +355,8 @@ fr: revenue: "Chiffre d'affaires" account_creation: "Création de compte" project_publication: "Publication de projet" - export: - # export des statistiques au format excel + #export des statistiques au format excel entries: "Entrées" revenue: "Chiffre d'affaires" average_age: "Âge moyen" @@ -395,12 +370,10 @@ fr: type: "Type" male: "Homme" female: "Femme" - price_category: - # catégorie initiale de prix pour les évènements, en remplacement de l'ancienne propriété "montant réduit" + #catégorie initiale de prix pour les évènements, en remplacement de l'ancienne propriété "montant réduit" reduced_fare: "Tarif réduit" reduced_fare_if_you_are_under_25_student_or_unemployed: "Tarif réduit si vous avez moins de 25 ans, que vous êtes étudiant ou demandeur d'emploi." - group: - # nom du groupe utilisateur pour les administrateurs + #nom du groupe utilisateur pour les administrateurs admins: 'Administrateurs' diff --git a/config/locales/mails.en.yml b/config/locales/mails.en.yml index b66edd9ee..71868dee3 100644 --- a/config/locales/mails.en.yml +++ b/config/locales/mails.en.yml @@ -1,17 +1,16 @@ en: layouts: notifications_mailer: - see_you_later: "See you soon on {GENDER, select, neutral{} other{the}}" # messageFormat interpolation + see_you_later: "See you soon on {GENDER, select, neutral{} other{the}}" #messageFormat interpolation sincerely: "Sincerely," signature: "The Fab Lab team." do_not_reply: "Please do not reply to this email." - users_mailer: notify_user_account_created: subject: "Your FabLab account has been successfully created" body: hello: "Hello %{NAME}," - intro: "The FabLab team has just created an account for you, on {GENDER, select, neutral{} other{the}} {FABLAB} website:" # messageFormat interpolation + intro: "The FabLab team has just created an account for you, on {GENDER, select, neutral{} other{the}} {FABLAB} website:" #messageFormat interpolation connection_parameters: "Here are your connection parameters:" account_name: "Account name:" password: "Password:" @@ -20,25 +19,21 @@ en: to_use_platform: "To use the website, please" logon_or_login: "create a new account or log in by clicking here." token_if_link_problem: "If you experience issues with the link, you can enter the following code at your first connection attempt:" - notifications_mailer: notify_user_user_group_changed: subject: "Your have changed group" body: warning: "You have changed group. Inspections can be conducted at the lab to verify the legitimacy of this change." - notify_admin_user_group_changed: subject: "A member has changed group" body: user_changed_group_html: "User %{NAME} has changed group." previous_group: "Previous group:" new_group: "New group:" - notify_admin_subscription_extended: subject: "A subscription has been extended" body: - subscription_extended_html: "Subscription {PLAN} for user {NAME} has been extended {FREE, select, true{for free} other{}} until {DATE}." # messageFormat interpolation - + subscription_extended_html: "Subscription {PLAN} for user {NAME} has been extended {FREE, select, true{for free} other{}} until {DATE}." #messageFormat interpolation notify_member_subscription_extended: subject: "Your subscription plan has been extended" body: @@ -46,111 +41,93 @@ en: has_been_extended: "has been extended" free: "for free" until: "until" - notify_partner_subscribed_plan: subject: "A subscription plan has been purchased" body: a_plan: "A subscription plan" was_purchased_by_member: "has been purchased by user" - notify_admin_when_project_published: subject: "A project has been published" body: new_project_published: "A new project has been published:" - notify_project_collaborator_to_valid: subject: "Invitation to collaborate on a project" body: your_are_invited_to_take_part_in_a_project: "You are invited to join this project:" to_accept_the_invitation_click_on_following_link: "To accept this invitation, please click on the following link:" - notify_project_author_when_collaborator_valid: subject: "New collaborator in your project" body: the_member: "the user" accepted_your_invitation_to_take_part_in_the_project: "has accepted your invitation to join your project:" - notify_user_training_valid: subject: "Your training has been validated" body: your_training: "Your training" has_been_validated: "has been validated" - notify_member_subscribed_plan: subject: "Your subscription has been successfully purchased" body: plan_subscribed_html: "You have subscribed the plan: %{PLAN}." rolling_subscription_stops_on: "Your subscription will end %{DURATION} after your first training. Otherwise, it will stop on %{DATE}." subscription_stops_on: "Your subscription will end on %{DATE}." - notify_member_create_reservation: subject: "Your reservation has been successfully saved" body: reservation_saved_html: "You reservation %{RESERVATION} has been successfully saved" your_reserved_slots: "Your reserved slots are:" - notify_member_subscribed_plan_is_changed: subject: "Your subscription has been updated" body: new_plan_html: "You have changed your plan to %{PLAN}." - notify_admin_member_create_reservation: subject: "New reservation" body: member_reserved_html: "User %{NAME} has reserved %{RESERVABLE}." reserved_slots: "Reserved slots are:" - notify_member_slot_is_modified: subject: "Your reservation slot has been successfully changed" body: reservation_changed_to: "Your reservation slot has been changed to:" previous_date: "Previous date:" - notify_admin_slot_is_modified: subject: "A reservation slot has been modified" body: slot_modified: "User %{NAME} had modified his reservation slot" new_date: "New slot" old_date: "Previous slot" - notify_admin_when_user_is_created: subject: "A user account has been created" body: new_account_created: "A new user account has been created on the website:" account_for_organization: "This account manage an organization:" - notify_admin_subscribed_plan: subject: "A subscription has been purchased" body: plan_subscribed_html: "A plan %{PLAN} has been subscribed by user %{NAME}." - notify_member_invoice_ready: subject: "Your FabLab's invoice" body: - please_find_attached_html: "Please find as attached file your invoice from {DATE}, with an amount of {AMOUNT} concerning your {TYPE, select, Reservation{reservation} other{subscription}}." # messageFormat interpolation + please_find_attached_html: "Please find as attached file your invoice from {DATE}, with an amount of {AMOUNT} concerning your {TYPE, select, Reservation{reservation} other{subscription}}." #messageFormat interpolation invoice_in_your_dashboard_html: "You can access your invoice in %{DASHBOARD} on the Fab Lab website." your_dashboard: "your dashboard" - notify_member_reservation_reminder: subject: "Reservation reminder" body: this_is_a_reminder_about_your_reservation_RESERVABLE_to_be_held_on_DATE_html: "This is a reminder about your reservation %{RESERVABLE} to be held on %{DATE}" this_reservation_concerns_the_following_slots: "This reservation concerns the following slots:" - notify_member_avoir_ready: subject: "Your FabLab's refund invoice" body: - please_find_attached_html: "Please find as attached file your refund invoice from {DATE}, with an amount of {AMOUNT} concerning your {TYPE, select, Reservation{reservation} WalletTransaction{wallet credit} other{subscription}}." # messageFormat interpolation + please_find_attached_html: "Please find as attached file your refund invoice from {DATE}, with an amount of {AMOUNT} concerning your {TYPE, select, Reservation{reservation} WalletTransaction{wallet credit} other{subscription}}." #messageFormat interpolation invoice_in_your_dashboard_html: "You can access your refund invoice in %{DASHBOARD} on the Fab Lab website." your_dashboard: "your dashboard" - notify_member_subscription_will_expire_in_7_days: subject: "Your subscription expires in 7 days" body: your_plan: "you plan" expires_in_7_days: "will expire in 7 days." to_renew_your_plan_follow_the_link: "Please, follow this link to renew your plan" - notify_member_subscription_is_expired: subject: "Your subscription has expired" body: @@ -158,41 +135,34 @@ en: has_expired: "has expired." you_can_go_to: "Please go to" to_renew_your_plan: "to renew you plan" - notify_admin_subscription_will_expire_in_7_days: subject: "A member subscription expires in 7 days" body: subscription_will_expire_html: "Subscription plan for user %{NAME} %{PLAN} will expire in 7 days." - notify_admin_subscription_is_expired: subject: "A member subscription has expired" body: subscription_expired_html: "Subscription plan for user %{NAME} %{PLAN} is now expired." - notify_admin_subscription_canceled: subject: "A member subscription has been cancelled" body: subscription_canceled_html: "Subscription %{PLAN} for user %{NAME} has been cancelled." - notify_member_subscription_canceled: subject: "Your subscription has been cancelled" body: your_plan_was_canceled: "Your subscription plan has been cancelled." your_plan: "your subscription plan" end_at: "ends on" - notify_member_slot_is_canceled: subject: "Your reservation has been canceled" body: reservation_canceled: "Your reservation for %{RESERVABLE} has been canceled" - notify_admin_slot_is_canceled: subject: "A reservation has been cancelled" body: member_cancelled: "User %{NAME} has cancelled his reservation" item_details: "%{START} - %{END}, concerning %{RESERVABLE}" generate_refund: "Do not forget to generate a credit note or a refund for this cancellation." - notify_admin_when_user_is_imported: subject: "A user account has been imported from the SSO" body: @@ -201,12 +171,10 @@ en: known_information: "Here is what we know about this provider:" address_already_used: "This address is already associated with another user" no_more_info_available: "No other info about this user can be provided before he completes his profile." - notify_user_profile_complete: subject: "You now have access to the whole website" body: message: "Your account informations has been correctly updated, you now have access to the whole website." - notify_user_auth_migration: subject: "Important change to your FabLab account" body: @@ -218,20 +186,17 @@ en: create_an_account_on: "create an account on" or_use_an_existing_account_clicking_here: "or use an existing account by clicking here" in_case_of_problem_enter_the_following_code: "In case of problem with this link, you can enter the following code at your first connection attempt in order to migrate your actual account into the new authentification system:" - notify_admin_user_merged: subject: "An imported account has been merged with an existing account" body: imported_account_merged: "A previously imported user account via %{PROVIDER) has been merged with the existing account %{NAME}" provider_uid: "its provider ID is:" - notify_admin_profile_complete: subject: "An imported account has completed its profile" body: account_completed: "An user account has completed its profile:" imported_account_completed: "An user account, previously imported through %{PROVIDER}, has completed its profile:" provider_id: "its provider ID is:" - notify_admin_abuse_reported: subject: "An abusive content has been reported" body: @@ -241,17 +206,14 @@ en: signaled_on: "flagged on:" message: "Message:" visit_management_interface: "Refer to the Reporting Management Interface for more information." - notify_user_wallet_is_credited: subject: "Your wallet has been credited" body: wallet_credit_html: "Your wallet has been credited %{AMOUNT} by administrator." - notify_admin_user_wallet_is_credited: subject: "The wallet of an user has been credited" body: wallet_credit_html: "The wallet of member %{USER} has been credited %{AMOUNT} by administrator %{ADMIN}." - notify_admin_export_complete: subject: "Export completed" body: @@ -274,31 +236,26 @@ en: file_type: xlsx: "Excel" csv: "CSV" - notify_admin_import_complete: subject: "Import completed" body: you_made_an_import: "You have initiated an import %{CATEGORY}" category_members: "of the members" click_to_view_results: "Click here to view results" - notify_member_about_coupon: subject: "Coupon" body: enjoy_a_discount_of_PERCENT_with_code_CODE: "Enjoy a discount of %{PERCENT}% on the whole site with the code %{CODE}." enjoy_a_discount_of_AMOUNT_with_code_CODE: "Enjoy a discount of %{AMOUNT} on the whole site with the code %{CODE}." this_coupon_is_valid_USAGE_times_until_DATE_for_all_your_purchases: "This coupon is valid {USAGE, plural, =1{just once} other{many times}}: for all your purchases {TYPE, select, amount_off{at least equal to the amount of the coupon} other{}}, from now {DATE, select, NO-DATE{and without time limit} other{and until {DATE}}}." - notify_admin_free_disk_space: subject: "Low disk space" body: "Warning: available disk space on the server hosting Fab-manager is less than %{THRESHOLD} MiB. This can affect its operation and prevent saving some data. Currently, %{AVAILABLE} MiB of free disk space remains available on the mount point." - notify_admin_close_period_reminder: subject: "Remind to close your accounting periods" body: warning_last_closed_period_over_1_year: "Please remind to periodically close your accounting periods. Last closed period ended at %{LAST_END}." warning_no_closed_periods: "Please remind to periodically close your accounting periods. You have to close periods from %{FIRST_DATE}." - notify_admin_archive_complete: subject: "Archiving completed" body: @@ -306,18 +263,15 @@ en: click_to_download: "To download the ZIP archive, click" here: "here." save_on_secured: "Remember that you must save this archive on a secured external support, which may be requested by the tax authorities during a check." - notify_privacy_policy_changed: subject: "Privacy policy updated" body: content_html: "

We wish to inform you that we have just updated our privacy policy.

We may change our privacy policy regularly. In accordance with the regulations, you will receive a notification for each update.

By accessing or using our services after the privacy policy update, we will consider that you agree its terms, updates included.

" link_to_policy: "Cliquez ici pour consultez la politique de confidentialité." - notify_admin_refund_created: subject: "A refund has been generated" body: refund_created: "A refund of %{AMOUNT} has been generated on invoice %{INVOICE} of user %{USER}" download: "Click here to download this refund invoice" - shared: hello: "Hello %{user_name}" diff --git a/config/locales/mails.es.yml b/config/locales/mails.es.yml index 649ce1799..60ae3e371 100644 --- a/config/locales/mails.es.yml +++ b/config/locales/mails.es.yml @@ -1,17 +1,16 @@ es: layouts: notifications_mailer: - see_you_later: "Nos vemos pronto en {GENDER, select, male{el} female{la} neutral{} other{las}}" # messageFormat interpolation + see_you_later: "Nos vemos pronto en {GENDER, select, male{el} female{la} neutral{} other{las}}" #messageFormat interpolation sincerely: "Atentamente," signature: "El equipo del FabLab." do_not_reply: "Por favor no conteste a este mail." - users_mailer: notify_user_account_created: subject: "Tu cuenta FabLab se ha creado con éxito" body: hello: "Hola %{NAME}," - intro: "El equipo FabLab acaba de crear una cuenta para ti, en la web {GENDER, select, male{del} female{de la} neutral{de} other{de las}} {FABLAB}" # messageFormat interpolation + intro: "El equipo FabLab acaba de crear una cuenta para ti, en la web {GENDER, select, male{del} female{de la} neutral{de} other{de las}} {FABLAB}" #messageFormat interpolation connection_parameters: "Estos son los datos asociados a tu cuenta:" account_name: "Nombre de usuario:" password: "Contraseña:" @@ -20,25 +19,21 @@ es: to_use_platform: "Para usar el sitio web, por favor" logon_or_login: "crea una nueva cuenta o inicia sesión haciendo clic aquí." token_if_link_problem: "Si experimenta problemas con el enlace, puede introducir el siguiente código en el primer intento de conexión:" - notifications_mailer: notify_user_user_group_changed: subject: "Tu has cambiado grupo" body: warning: "Has cambiado de grupo. Se pueden realizar inspecciones en el laboratorio para verificar la legitimidad de este cambio.." - notify_admin_user_group_changed: subject: "Un miembro ha cambiado de grupo." body: user_changed_group_html: "El usuario %{NAME} ha cambiado de grupo." previous_group: "Grupo anterior:" new_group: "Nuevo grupo:" - notify_admin_subscription_extended: subject: "Una suscripción ha sido extendida" body: - subscription_extended_html: "La suscripción {PLAN} del usuario {NAME} ha sido extendida {FREE, select, true{for free} other{}} until {DATE}." # messageFormat interpolation - + subscription_extended_html: "La suscripción {PLAN} del usuario {NAME} ha sido extendida {FREE, select, true{for free} other{}} until {DATE}." #messageFormat interpolation notify_member_subscription_extended: subject: "Su suscripción ha sido extendida" body: @@ -46,111 +41,93 @@ es: has_been_extended: "ha sido extendida" free: "gratuitamente" until: "hasta" - notify_partner_subscribed_plan: subject: "Ha adquirido un plan de suscripción" body: a_plan: "Un plan de suscripción" was_purchased_by_member: "ha sido adquirido por el usuario" - notify_admin_when_project_published: subject: "Un proyecto ha sido publicado" body: new_project_published: "Un nuevo proyecto ha sido publicado:" - notify_project_collaborator_to_valid: subject: "Invitación de colaboración a un proyecto" body: your_are_invited_to_take_part_in_a_project: "Ha sido invitado a colaborar en el proyecto:" to_accept_the_invitation_click_on_following_link: "Para aceptar la invitación por favor haga clic en el siguiente enlace:" - notify_project_author_when_collaborator_valid: subject: "Nuevo colaborador en tu proyecto" body: the_member: "El usuario" accepted_your_invitation_to_take_part_in_the_project: "ha aceptado unirse a tu proyecto:" - notify_user_training_valid: subject: "Su curso ha sido validado" body: your_training: "Su curso" has_been_validated: "Ha sido validado" - notify_member_subscribed_plan: subject: "Su suscripción ha sido correctamente comprada" body: plan_subscribed_html: "Se ha suscrito al plan: %{PLAN}." rolling_subscription_stops_on: "Su suscripción terminará %{DURATION} después de su primer entrenamiento. De lo contrario, se detendrá el %{DATE}." subscription_stops_on: "Su suscripción terminará el %{DATE}." - notify_member_create_reservation: subject: "Su reserva se ha registrado correctamente" body: reservation_saved_html: "Su reserva %{RESERVATION} se ha registrado correctamente" your_reserved_slots: "Sus espacios reservados son:" - notify_member_subscribed_plan_is_changed: subject: "Su suscripción ha sido actualizada" body: new_plan_html: "Ha cambiado su plan a %{PLAN}." - notify_admin_member_create_reservation: subject: "Nueva reserva" body: member_reserved_html: "El usuario %{NAME} ha reservado %{RESERVABLE}." reserved_slots: "Los espacios de reserva están aquí:" - notify_member_slot_is_modified: subject: "Su espacio de reserva ha sido cambiado correctamente" body: reservation_changed_to: "Su espacio de reserva se ha cambiado a:" previous_date: "Fecha anterior:" - notify_admin_slot_is_modified: subject: "Un espacio de reservra ha sido modificado" body: slot_modified: "El usuario %{NAME} ha modificado su reserva" new_date: "Nuevo espacio" old_date: "Espacio anterior" - notify_admin_when_user_is_created: subject: "Se ha creado una nueva cuenta" body: new_account_created: "Se ha creado un nuevo usuario en la web:" account_for_organization: "Esta cuenta gestiona una organización :" - notify_admin_subscribed_plan: subject: "Se ha adquirido un plan de suscripción" body: plan_subscribed_html: "Un plan de suscripción %{PLAN} ha sido adquirido por el usuario %{NAME}." - notify_member_invoice_ready: subject: "La factura de su FabLab" body: - please_find_attached_html: "Por favor, encuentre como archivo adjunto su factura de {DATE}, por un valor de {AMOUNT} referente a {TYPE, select, Reservation{reservation} other{subscription}}." # messageFormat interpolation + please_find_attached_html: "Por favor, encuentre como archivo adjunto su factura de {DATE}, por un valor de {AMOUNT} referente a {TYPE, select, Reservation{reservation} other{subscription}}." #messageFormat interpolation invoice_in_your_dashboard_html: "Puede acceder a su factura en %{DASHBOARD} en la web del FabLab." your_dashboard: "Su Panel" - notify_member_reservation_reminder: subject: "Recordatorio de reserva" body: this_is_a_reminder_about_your_reservation_RESERVABLE_to_be_held_on_DATE_html: "Este es un recordatorio sobre su reserva %{RESERVABLE} a realizarse en %{DATE}" this_reservation_concerns_the_following_slots: "Esta reserva involucra los siguientes espacios:" - notify_member_avoir_ready: subject: "Su factura de reembolso de FabLab" body: - please_find_attached_html: "Por favor, encuentre como archivo adjunto su factura de reembolso de {DATE}, con una cantidad de {AMOUNT} referente a su {TYPE, select, Reservation{reservation} WalletTransaction{wallet credit} other{subscription}}." # messageFormat interpolation + please_find_attached_html: "Por favor, encuentre como archivo adjunto su factura de reembolso de {DATE}, con una cantidad de {AMOUNT} referente a su {TYPE, select, Reservation{reservation} WalletTransaction{wallet credit} other{subscription}}." #messageFormat interpolation invoice_in_your_dashboard_html: "Puede acceder a su factura en %{DASHBOARD} en la web del FabLab." your_dashboard: "Su panel" - notify_member_subscription_will_expire_in_7_days: subject: "Su suscripción expira en 7 dias" body: your_plan: "su plan de suscripción" expires_in_7_days: "expirará en 7 dias." to_renew_your_plan_follow_the_link: "Por favor, haga clic en el siguiente enlace para renovar su suscripción" - notify_member_subscription_is_expired: subject: "Su suscripción ha expirado" body: @@ -158,41 +135,34 @@ es: has_expired: "ha expirado." you_can_go_to: "Por favor acceda a" to_renew_your_plan: "para renovar su suscripción" - notify_admin_subscription_will_expire_in_7_days: subject: "La suscripción de un miembre expira en 7 días" body: subscription_will_expire_html: "El plan de suscripción de %{NAME} %{PLAN} expirará en 7 días." - notify_admin_subscription_is_expired: subject: "La suscripción de un miembro ha expirado" body: subscription_expired_html: "La suscripción del usuario %{NAME} %{PLAN} ha expirado." - notify_admin_subscription_canceled: subject: "La suscripción de un miembro ha sido cancelada" body: subscription_canceled_html: "La suscripción %{PLAN} del usuario %{NAME} ha sido cancelada." - notify_member_subscription_canceled: subject: "Su suscripción ha sido cancelada" body: your_plan_was_canceled: "Su suscripción ha sido cancelada." your_plan: "Su suscripción" end_at: "termina el" - notify_member_slot_is_canceled: subject: "Su reserva ha sido cancelada" body: reservation_canceled: "Su reserva para %{RESERVABLE} ha sido cancelada" - notify_admin_slot_is_canceled: subject: "Una reserva ha sido cancelada" body: member_cancelled: "El usuario %{NAME} ha cancelado una reserva" item_details: "%{START} - %{END}, referido a %{RESERVABLE}" generate_refund: "No olvide generar una nota de crédito o un reembolso por esta cancelación." - notify_admin_when_user_is_imported: subject: "Una cuenta de usuario ha sido importada (SSO)" body: @@ -201,12 +171,10 @@ es: known_information: "Esto es lo que sabemos del proveedor:" address_already_used: "Esta dirección ya está asociada con otro usuario." no_more_info_available: "No se puede proporcionar ninguna otra información sobre este usuario antes de completar su perfil." - notify_user_profile_complete: subject: "Ahora tienes acceso a nuestra web" body: message: "La información de su cuenta se ha actualizado correctamente, ahora tiene acceso a todo el sitio web." - notify_user_auth_migration: subject: "Cambio importante a su cuenta FabLab" body: @@ -218,20 +186,17 @@ es: create_an_account_on: "cree una cuenta en" or_use_an_existing_account_clicking_here: "o utilice una cuenta existente haciendo clic aquí" in_case_of_problem_enter_the_following_code: "En caso de problemas con este enlace, puede ingresar el siguiente código en su primer intento de conexión para migrar su cuenta real al nuevo sistema de autenticación:" - notify_admin_user_merged: subject: "Una cuenta importada se ha fusionado con una cuenta existente" body: imported_account_merged: "Una cuenta de usuario previamente importada vía %{PROVIDER) se ha fusionado con la cuenta existente %{NAME}" provider_uid: "La identificación del proveedor es:" - notify_admin_profile_complete: subject: "Una cuenta importada ha completado su perfil" body: account_completed: "Una cuenta de usuario importada previamente %{PROVIDER} ha completado su perfil:" imported_account_completed: "An user account previously imported through %{PROVIDER} has just completed his/her profile data:" provider_id: "su ID de proveedor es:" - notify_admin_abuse_reported: subject: "Se ha informado un contenido abusivo" body: @@ -241,17 +206,14 @@ es: signaled_on: "marcado el:" message: "Mensaje:" visit_management_interface: "Refer to the Reporting Management Interface for more information." - notify_user_wallet_is_credited: subject: "Your wallet has been credited" body: wallet_credit_html: "Se han ingresado %{AMOUNT} por el administrador." - notify_admin_user_wallet_is_credited: subject: "Se han ingresado fondos en la cartera de un usuario" body: wallet_credit_html: "Se han ingresado %{AMOUNT} fondos en la cartera del usuario %{USER} por el administrador %{ADMIN}." - notify_admin_export_complete: subject: "Exportación completada" body: @@ -274,31 +236,26 @@ es: file_type: xlsx: "Excel" csv: "CSV" - notify_admin_import_complete: subject: "Import completed" body: you_made_an_import: "You have initiated an import %{CATEGORY}" category_members: "of the members" click_to_view_results: "Click here to view results" - notify_member_about_coupon: subject: "Cupón" body: enjoy_a_discount_of_PERCENT_with_code_CODE: "Disfruta de un descuento del %{PERCENT}% en toda la web con el código %{CODE}." enjoy_a_discount_of_AMOUNT_with_code_CODE: "Disfruta de un descuento de %{AMOUNT} en toda la web con el código %{CODE}." this_coupon_is_valid_USAGE_times_until_DATE_for_all_your_purchases: "Este cupón es válido {USAGE, plural, =1{just once} other{many times}}: para todas tus compras {TYPE, select, amount_off{at least equal to the amount of the coupon} other{}}, desde ahora {DATE, select, NO-DATE{and without time limit} other{and until {DATE}}}." - notify_admin_free_disk_space: subject: "Low disk space" body: "Warning: available disk space on the server hosting Fab-manager is less than %{THRESHOLD} MiB. This can affect its operation and prevent saving some data. Currently, %{AVAILABLE} MiB of free disk space remains available on the mount point." - notify_admin_close_period_reminder: subject: "Remind to close your accounting periods" body: warning_last_closed_period_over_1_year: "Please remind to periodically close your accounting periods. Last closed period ended at %{LAST_END}." warning_no_closed_periods: "Please remind to periodically close your accounting periods. You have to close periods from %{FIRST_DATE}." - notify_admin_archive_complete: subject: "Archiving completed" body: @@ -306,18 +263,15 @@ es: click_to_download: "To download the ZIP archive, click" here: "here." save_on_secured: "Remember that you must save this archive on a secured external support, which may be requested by the tax authorities during a check." - notify_privacy_policy_changed: subject: "Privacy policy updated" body: content_html: "

We wish to inform you that we have just updated our privacy policy.

We may change our privacy policy regularly. In accordance with the regulations, you will receive a notification for each update.

By accessing or using our services after the privacy policy update, we will consider that you agree its terms, updates included.

" link_to_policy: "Cliquez ici pour consultez la politique de confidentialité." - notify_admin_refund_created: subject: "A refund has been generated" body: refund_created: "A refund of %{AMOUNT} has been generated on invoice %{INVOICE} of user %{USER}" download: "Click here to download this refund invoice" - shared: hello: "¡Hola %{user_name}!" diff --git a/config/locales/mails.fr.yml b/config/locales/mails.fr.yml index 904c0d02c..203affae0 100644 --- a/config/locales/mails.fr.yml +++ b/config/locales/mails.fr.yml @@ -1,17 +1,16 @@ fr: layouts: notifications_mailer: - see_you_later: "A très bientôt sur {GENDER, select, male{le} female{la} neutral{} other{les}}" # messageFormat interpolation + see_you_later: "A très bientôt sur {GENDER, select, male{le} female{la} neutral{} other{les}}" #messageFormat interpolation sincerely: "Cordialement," signature: "L'équipe du Fab Lab." do_not_reply: "Merci de ne pas répondre directement à cet email." - users_mailer: notify_user_account_created: subject: "Votre compte Fab Lab a bien été créé" body: hello: "Bonjour %{NAME}," - intro: "L’équipe du Fab Lab vient de vous créer un compte sur le site {GENDER, select, male{du} female{de la} neutral{} other{des}} {FABLAB} :" # messageFormat interpolation + intro: "L’équipe du Fab Lab vient de vous créer un compte sur le site {GENDER, select, male{du} female{de la} neutral{} other{des}} {FABLAB} :" #messageFormat interpolation connection_parameters: "Voici vos paramètres de connexion :" account_name: "Nom de compte :" password: "Mot de passe :" @@ -20,25 +19,21 @@ fr: to_use_platform: "Pour pouvoir utiliser la plateforme, merci de vous" logon_or_login: "créer un compte sur %{PROVIDER} ou utiliser un compte pré-existant en cliquant ici." token_if_link_problem: "En cas de problème avec le lien, vous pourrez saisir manuellement le code suivant lors de votre première connexion :" - notifications_mailer: notify_user_user_group_changed: subject: "Vous avez changé de groupe" body: warning: "Vous venez de changer de groupe utilisateurs. Des contrôles pourront être opérés au Fab Lab afin de vérifier que ce changement est justifié." - notify_admin_user_group_changed: subject: "Un membre a changé de groupe" body: user_changed_group_html: "L'utilisateur %{NAME} a changé de groupe." previous_group: "Ancien groupe :" new_group: "Nouveau groupe :" - notify_admin_subscription_extended: subject: "Un abonnement a été prolongé" body: - subscription_extended_html: "L'abonnement {PLAN} du membre {NAME} a été prolongé {FREE, select, true{gratuitment} other{}} jusqu'au {DATE}." # messageFormat interpolation - + subscription_extended_html: "L'abonnement {PLAN} du membre {NAME} a été prolongé {FREE, select, true{gratuitment} other{}} jusqu'au {DATE}." #messageFormat interpolation notify_member_subscription_extended: subject: "Votre abonnement a été prolongé" body: @@ -46,111 +41,93 @@ fr: has_been_extended: "a été prolongé" free: "gratuitement" until: "jusqu'au" - notify_partner_subscribed_plan: subject: "Un abonnement a été souscrit" body: a_plan: "Un abonnement" was_purchased_by_member: "vient d'être souscrit par le membre" - notify_admin_when_project_published: subject: "Un projet a été publié." body: new_project_published: "Un nouveau projet vient d'être publié :" - notify_project_collaborator_to_valid: subject: "Invitation à collaborer sur un projet" body: your_are_invited_to_take_part_in_a_project: "Vous êtes invité à collaborer sur ce projet :" to_accept_the_invitation_click_on_following_link: "Pour accepter cette invitation, il vous suffit de cliquer sur le lien suivant:" - notify_project_author_when_collaborator_valid: subject: "Un nouveau collaborateur dans votre projet" body: the_member: "Le membre" accepted_your_invitation_to_take_part_in_the_project: "a accepté votre demande de collaboration sur votre projet :" - notify_user_training_valid: subject: "Votre formation a été validée" body: your_training: "Votre formation" has_been_validated: "a bien été validée" - notify_member_subscribed_plan: subject: "Votre abonnement a bien été souscrit" body: plan_subscribed_html: "Vous avez souscrit à l'abonnement : %{PLAN}." rolling_subscription_stops_on: "Votre abonnement s'arrêtera automatiquement %{DURATION} après votre première formation. À défaut, il s'arrêtera le %{DATE}." subscription_stops_on: "Votre abonnement s'arrêtera automatiquement le %{DATE}." - notify_member_create_reservation: subject: "Votre réservation a bien été enregistrée" body: reservation_saved_html: "Votre réservation %{RESERVATION} a bien été enregistrée." your_reserved_slots: "Les créneaux que vous avez réservés sont :" - notify_member_subscribed_plan_is_changed: subject: "Votre abonnement a été mis à jour" body: new_plan_html: "Vous avez changé votre abonnement à %{PLAN}." - notify_admin_member_create_reservation: subject: "Nouvelle réservation" body: member_reserved_html: "Le membre %{NAME} a réservé %{RESERVABLE}." reserved_slots: "Les créneaux réservés sont :" - notify_member_slot_is_modified: subject: "Votre créneau de réservation a bien été modifié" body: reservation_changed_to: "Votre créneau de réservation a bien été déplacé au :" previous_date: "Ancienne date :" - notify_admin_slot_is_modified: subject: "Un créneau de réservation a été modifié" body: slot_modified: "Le membre %{NAME} a modifié son créneau de réservation." new_date: "Nouvelle date :" old_date: "Ancienne date :" - notify_admin_when_user_is_created: subject: "Un compte utilisateur a été créé" body: new_account_created: "Un nouveau compte utilisateur vient d'être créé sur la plateforme :" account_for_organization: "Ce compte gère une structure :" - notify_admin_subscribed_plan: subject: "Un abonnement a été souscrit" body: plan_subscribed_html: "Un abonnement %{PLAN} vient d'être souscrit par le membre %{NAME}." - notify_member_invoice_ready: subject: "Votre facture du FabLab" body: - please_find_attached_html: "Vous trouverez en pièce jointe votre facture du {DATE}, d'un montant de {AMOUNT} concernant votre {TYPE, select, Reservation{réservation} other{abonnement}}." # messageFormat interpolation + please_find_attached_html: "Vous trouverez en pièce jointe votre facture du {DATE}, d'un montant de {AMOUNT} concernant votre {TYPE, select, Reservation{réservation} other{abonnement}}." #messageFormat interpolation invoice_in_your_dashboard_html: "Vous pouvez à tout moment retrouver votre facture dans %{DASHBOARD} sur le site du Fab Lab." your_dashboard: "votre tableau de bord" - notify_member_reservation_reminder: subject: "Rappel de réservation" body: this_is_a_reminder_about_your_reservation_RESERVABLE_to_be_held_on_DATE_html: "Ceci est un rappel concernant votre réservation %{RESERVABLE} qui aura lieu le %{DATE}" this_reservation_concerns_the_following_slots: "Cette réservation concerne les créneaux suivants :" - notify_member_avoir_ready: subject: "Votre facture d'avoir du FabLab" body: - please_find_attached_html: "Vous trouverez en pièce jointe votre facture d'avoir du {DATE}, d'un montant de {AMOUNT} concernant votre {TYPE, select, Reservation{réservation} WalletTransaction{crédit du porte-monnaie} other{abonnement}}." # messageFormat interpolation + please_find_attached_html: "Vous trouverez en pièce jointe votre facture d'avoir du {DATE}, d'un montant de {AMOUNT} concernant votre {TYPE, select, Reservation{réservation} WalletTransaction{crédit du porte-monnaie} other{abonnement}}." #messageFormat interpolation invoice_in_your_dashboard_html: "Vous pouvez à tout moment retrouver votre facture d'avoir dans %{DASHBOARD} sur le site du Fab Lab." your_dashboard: "votre tableau de bord" - notify_member_subscription_will_expire_in_7_days: subject: "Votre abonnement expire dans 7 jours" body: your_plan: "Votre abonnement" expires_in_7_days: "expire dans 7 jours" to_renew_your_plan_follow_the_link: "Si vous souhaitez renouveler votre abonnement, vous pouvez vous rendre sur" - notify_member_subscription_is_expired: subject: "Votre abonnement est arrivé à expiration" body: @@ -158,41 +135,34 @@ fr: has_expired: "est arrivé à expiration" you_can_go_to: "Vous pouvez vous rendre sur notre page" to_renew_your_plan: "afin de renouveler votre abonnement" - notify_admin_subscription_will_expire_in_7_days: subject: "L'abonnement d'un membre expire dans 7 jours" body: subscription_will_expire_html: "L'abonnement du membre %{NAME} %{PLAN} expire dans 7 jours." - notify_admin_subscription_is_expired: subject: "L'abonnement d'un membre est arrivé à expiration" body: subscription_expired_html: "L'abonnement du membre %{NAME} %{PLAN} est arrivé à expiration." - notify_admin_subscription_canceled: subject: "L'abonnement d'un membre a été annulé" body: subscription_canceled_html: "L'abonnement %{PLAN} du membre %{NAME} vient d'être annulé." - notify_member_subscription_canceled: subject: "Votre abonnement a été annulé" body: your_plan_was_canceled: "Votre abonnement a bien été annulé" your_plan: "votre abonnement" end_at: "fin au" - notify_member_slot_is_canceled: subject: "Votre réservation a bien été annulée" body: reservation_canceled: "Votre réservation %{RESERVABLE} a bien été annulée :" - notify_admin_slot_is_canceled: subject: "Une réservation a été annulée" body: member_cancelled: "Le membre %{NAME} a annulé sa réservation :" item_details: "%{START} - %{END}, concernant %{RESERVABLE}" generate_refund: "Pensez à générer un avoir ou un remboursement pour cette annulation, le cas échéant." - notify_admin_when_user_is_imported: subject: "Un compte utilisateur a été importé depuis le SSO" body: @@ -201,12 +171,10 @@ fr: known_information: "Voici les informations connues à son propos :" address_already_used: "Cette adresse est déjà associée à un autre utilisateur" no_more_info_available: "Aucune autre information sur cet utilisateur n'est disponible tant que celui-ci n'aura pas complété son profil." - notify_user_profile_complete: subject: "Vous avez désormais accès à l'ensemble de la plate-forme" body: message: "Les informations de votre nouveau compte ont correctement été mises à jour, vous avez désormais accès à l'ensemble de la plateforme." - notify_user_auth_migration: subject: "Changement important pour votre compte FabLab" body: @@ -218,20 +186,17 @@ fr: create_an_account_on: "créer un compte sur" or_use_an_existing_account_clicking_here: "ou utiliser un compte pré-existant en cliquant ici" in_case_of_problem_enter_the_following_code: "En cas de problème avec le lien, vous pourrez saisir manuellement le code suivant lors de votre première connexion, pour migrer votre compte actuel vers le nouveau système d'authentification :" - notify_admin_user_merged: subject: "Un compte importé a été fusionné avec un compte existant" body: imported_account_merged: "Un compte utilisateur précédemment importé via %{PROVIDER} vient d'être fusionné avec le compte existant de %{NAME}" provider_uid: "Son identifiant fournisseur est %{UID}" - notify_admin_profile_complete: subject: "Un compte importé a complété ses informations" body: account_completed: "Un compte utilisateur vient de compléter ses informations de profil :" imported_account_completed: "Un compte utilisateur précédemment importé via %{PROVIDER} vient de compléter ses informations de profil :" provider_id: "Son identifiant fournisseur est %{UID}" - notify_admin_abuse_reported: subject: "Un contenu abusif a été rapporté" body: @@ -241,17 +206,14 @@ fr: signaled_on: "Signalé le :" message: "Message :" visit_management_interface: "Reportez-vous à l'interface de gestion des signalements pour plus d'informations." - notify_user_wallet_is_credited: subject: "Votre porte-monnaie a bien été crédité" body: wallet_credit_html: "Votre porte-monnaie a bien été crédité de %{AMOUNT} par l'administrateur." - notify_admin_user_wallet_is_credited: subject: "Le porte-monnaie d'un utilisateur a bien été crédité" body: wallet_credit_html: "Le porte-monnaie du membre %{USER} a bien été crédité de %{AMOUNT} par l'administrateur %{ADMIN}." - notify_admin_export_complete: subject: "Export terminé" body: @@ -274,31 +236,26 @@ fr: file_type: xlsx: "Excel" csv: "CSV" - notify_admin_import_complete: subject: "Import terminé" body: you_made_an_import: "Vous avez initié un import %{CATEGORY}" category_members: "des membres" click_to_view_results: "Cliquez ici pour voir les résultats" - notify_member_about_coupon: subject: "Code promo" body: enjoy_a_discount_of_PERCENT_with_code_CODE: "Bénéficiez d'une remise de %{PERCENT} % sur tout le site en utilisant le code promo %{CODE}." enjoy_a_discount_of_AMOUNT_with_code_CODE: "Bénéficiez d'une remise de %{AMOUNT} sur tout le site en utilisant le code promo %{CODE}." this_coupon_is_valid_USAGE_times_until_DATE_for_all_your_purchases: "Ce code promo est valable {USAGE, plural, =1{une seule fois} other{plusieurs fois}} : pour tous vos achats {TYPE, select, amount_off{dont le montant est au moins égal à celui du code promo} other{}}, dès maintenant {DATE, select, NO-DATE{et sans limitation de durée} other{et jusqu'au {DATE}}}." - notify_admin_free_disk_space: subject: "Espace disque faible" body: "Attention : l'espace disque disponible sur le serveur hébergeant Fab-manager est inférieur à %{THRESHOLD} MiO. Cela peut nuire à son bon fonctionnement et empêcher la sauvegarde de certaines données. Actuellement, il reste %{AVAILABLE} MiO d'espace libre sur le point de montage." - notify_admin_close_period_reminder: subject: "Pensez à clôturer vos périodes comptables" body: warning_last_closed_period_over_1_year: "Pensez à clôturer régulièrement vos périodes comptables. Les comptes sont actuellement clôturés jusqu'au %{LAST_END}." warning_no_closed_periods: "Pensez à clôturer régulièrement vos périodes comptables. Vous devez clôturer des périodes depuis le %{FIRST_DATE}." - notify_admin_archive_complete: subject: "Archivage terminé" body: @@ -306,18 +263,15 @@ fr: click_to_download: "Pour télécharger l'archive ZIP, cliquez" here: "ici." save_on_secured: "N'oubliez pas que vous devez obligatoirement enregistrer cette archive sur un support externe sécurisé, qui peut vous être demandé par l'administration fiscale lors d'un contrôle." - notify_privacy_policy_changed: subject: "Mise à jour de la Politique de confidentialité" body: content_html: "

Nous souhaitons vous signaler que nous venons de mettre à jour notre politique de confidentialité.

Nous pouvons apporter régulièrement des modifications à notre politique de confidentialité. Conformément à la réglementation, une notification vous sera envoyée à chaque mise à jour.

En accédant ou en utilisant nos services après la mise à jour de la Politique de confidentialité, nous considérerons que vous acceptez les termes de celle-ci, mises à jour comprises.

" link_to_policy: "Cliquez ici pour consultez la politique de confidentialité." - notify_admin_refund_created: subject: "Un avoir a été généré" body: refund_created: "Un avoir de %{AMOUNT} a été généré sur la facture %{INVOICE} de l'utilisateur %{USER}" download: "Cliquez ici pour télécharger cet avoir" - shared: hello: "Bonjour %{user_name}" diff --git a/config/locales/mails.pt.yml b/config/locales/mails.pt.yml index 57201cabd..5060d078b 100755 --- a/config/locales/mails.pt.yml +++ b/config/locales/mails.pt.yml @@ -1,17 +1,16 @@ pt: layouts: notifications_mailer: - see_you_later: "Te vejo em breve em {GENDER, select, male{o} female{a} neutral{} other{do}}" # messageFormat interpolation + see_you_later: "Te vejo em breve em {GENDER, select, male{o} female{a} neutral{} other{do}}" #messageFormat interpolation sincerely: "Atenciosamente," signature: "Equipe do Fab Lab." do_not_reply: "Por favor não responda este email." - users_mailer: notify_user_account_created: subject: "Sua conta no FabLab foi criada com sucesso" body: hello: "Olá %{NAME}," - intro: "A equipe do FabLab acaba de criar uma conta para você em {GENDER, select, male{o} female{a} neutral{} other{do}} {FABLAB} website:" # messageFormat interpolation + intro: "A equipe do FabLab acaba de criar uma conta para você em {GENDER, select, male{o} female{a} neutral{} other{do}} {FABLAB} website:" #messageFormat interpolation connection_parameters: "Aqui estão seus parâmetros de conexão:" account_name: "Nome da conta:" password: "Senha:" @@ -20,25 +19,21 @@ pt: to_use_platform: "Para usar o site, por favor" logon_or_login: "criar uma nova conta ou fazer login clicando aqui." token_if_link_problem: "Se você tiver problemas com o link, você poderá inserir o código a seguir na primeira tentativa de conexão:" - notifications_mailer: notify_user_user_group_changed: subject: "Seu grupo mudou" body: warning: "Você mudou de grupo. As inspeções podem ser realizadas no laboratório para verificar a legitimidade dessa mudança." - notify_admin_user_group_changed: subject: "Um membro mudou de grupo" body: user_changed_group_html: "O usuário %{NAME} mudou de grupo." previous_group: "Grupo anterior:" new_group: "Novo grupo:" - notify_admin_subscription_extended: subject: "Uma assinatura foi estendida" body: - subscription_extended_html: "Assinatura {PLAN} pelo usuário {NAME} foi extendida {FREE, select, true{grátis} other{}} until {DATE}." # messageFormat interpolation - + subscription_extended_html: "Assinatura {PLAN} pelo usuário {NAME} foi extendida {FREE, select, true{grátis} other{}} until {DATE}." #messageFormat interpolation notify_member_subscription_extended: subject: "Sua assinatura foi extendida" body: @@ -46,111 +41,93 @@ pt: has_been_extended: "foi estendido" free: "grátis" until: "até" - notify_partner_subscribed_plan: subject: "Um plano de assinatura foi adquirido" body: a_plan: "Plano de assinatura" was_purchased_by_member: "foi comprado pelo usuário" - notify_admin_when_project_published: subject: "Um projeto foi publicado" body: new_project_published: "Um novo projeto foi publicado:" - notify_project_collaborator_to_valid: subject: "Convite para colaborar em um projeto" body: your_are_invited_to_take_part_in_a_project: "Vocề convidado para fazer parte deste projeto:" to_accept_the_invitation_click_on_following_link: "Para aceitar este convite, por favor clique no link a seguir:" - notify_project_author_when_collaborator_valid: subject: "Novo colaborador em seu projeto" body: the_member: "o usuário" accepted_your_invitation_to_take_part_in_the_project: "aceitou o convite para fazer parte do seu projeto:" - notify_user_training_valid: subject: "Seu treinamento foi validado" body: your_training: "Seu treinamento" has_been_validated: "foi validado" - notify_member_subscribed_plan: subject: "Sua assinatura foi adquirida com êxito" body: plan_subscribed_html: "Você assinou o plano: %{PLAN}." rolling_subscription_stops_on: "Sua assinatura encerrará %{DURATION} após seu primeiro treinamento. Caso contrário, ele será interrompido em %{DATE}." subscription_stops_on: "Sua assinatura será encerrada em %{DATE}." - notify_member_create_reservation: subject: "Sua reserva foi salva com sucesso" body: reservation_saved_html: "Sua reserva %{RESERVATION} foi salva com sucesso" your_reserved_slots: "Seus slots reservados são:" - notify_member_subscribed_plan_is_changed: subject: "Sua inscrição foi modificada" body: new_plan_html: "Você mudou seu plano para %{PLAN}." - notify_admin_member_create_reservation: subject: "Nova reserva" body: member_reserved_html: "O usuário %{NAME} reservou %{RESERVABLE}." reserved_slots: "Slots reservados são:" - notify_member_slot_is_modified: subject: "Seu slot de reserva foi alterado com sucesso" body: reservation_changed_to: "Seu slot de reserva foi alterado para:" previous_date: "Data anterior:" - notify_admin_slot_is_modified: subject: "O slot de reserva foi modificado" body: slot_modified: "O usuário %{NAME} modificou seu slot de reserva" new_date: "Novo slot" old_date: "Slot anterior" - notify_admin_when_user_is_created: subject: "A conta de usuário foi criada" body: new_account_created: "Uma nova conta de usuário foi criada no site:" account_for_organization: "Esta conta gerencia uma organização:" - notify_admin_subscribed_plan: subject: "Uma assinatura foi comprada" body: plan_subscribed_html: "O plano %{PLAN} foi assinado pelo usuário %{NAME}." - notify_member_invoice_ready: subject: "Fatura do seu FabLab" body: - please_find_attached_html: "Por favor, encontre como anexo a sua fatura de {DATE}, com o montante de {AMOUNT} sobre o seu {TYPE, select, Reservation{reserva} other{assinatura}}." # messageFormat interpolation + please_find_attached_html: "Por favor, encontre como anexo a sua fatura de {DATE}, com o montante de {AMOUNT} sobre o seu {TYPE, select, Reservation{reserva} other{assinatura}}." #messageFormat interpolation invoice_in_your_dashboard_html: "Você pode acessar sua fatura em %{DASHBOARD} no site Fab Lab." your_dashboard: "seu dashboard" - notify_member_reservation_reminder: subject: "Lembrete de reserva" body: this_is_a_reminder_about_your_reservation_RESERVABLE_to_be_held_on_DATE_html: "Este é um lembrete sobre a sua reserva %{RESERVABLE} a ser realizada em %{DATE} " this_reservation_concerns_the_following_slots: "Esta reserva diz respeito aos seguintes slots:" - notify_member_avoir_ready: subject: "Fatura de reembolso do seu FabLab" body: - please_find_attached_html: "Por favor, encontre como anexo a sua fatura de reembolso {DATE}, com o montante de {AMOUNT} sobre o seu {TYPE, select, Reservation{reserva} WalletTransaction{carteira de crédito} other{assinatura}}." # messageFormat interpolation + please_find_attached_html: "Por favor, encontre como anexo a sua fatura de reembolso {DATE}, com o montante de {AMOUNT} sobre o seu {TYPE, select, Reservation{reserva} WalletTransaction{carteira de crédito} other{assinatura}}." #messageFormat interpolation invoice_in_your_dashboard_html: "Você pode acessar sua fatura de reembolso em %{DASHBOARD} no site Fab Lab." your_dashboard: "seu dashboard" - notify_member_subscription_will_expire_in_7_days: subject: "Sua assinatura expira em 7 dias" body: your_plan: "seu plano" expires_in_7_days: "expira em 7 dias." to_renew_your_plan_follow_the_link: "Por favor, siga este link para renovar seu plano" - notify_member_subscription_is_expired: subject: "Sua assinatura expirou" body: @@ -158,41 +135,34 @@ pt: has_expired: "expirou." you_can_go_to: "Por favor vá para" to_renew_your_plan: "para renovar seu plano" - notify_admin_subscription_will_expire_in_7_days: subject: "Uma assinatura de membro expira em 7 dias" body: subscription_will_expire_html: "O plano de assinatura do usuário %{NAME} %{PLAN} expirará em 7 dias." - notify_admin_subscription_is_expired: subject: "A assinatura de um membro expirou" body: subscription_expired_html: "O plano de assinatura do usuário %{NAME} %{PLAN} está expirado." - notify_admin_subscription_canceled: subject: "Uma assinatura de um membro foi cancelada" body: subscription_canceled_html: "A assinatura %{PLAN} do usuário %{NAME} foi cancelada." - notify_member_subscription_canceled: subject: "Sua assinatura foi cancelada" body: your_plan_was_canceled: "Seu plano de assinatura foi cancelado." your_plan: "seu plano de assinatura" end_at: "termina em" - notify_member_slot_is_canceled: subject: "Sua reserva foi cancelada" body: reservation_canceled: "Sua reserva para %{RESERVABLE} foi cancelada" - notify_admin_slot_is_canceled: subject: "Uma reserva foi cancelada" body: member_cancelled: "O usuário %{NAME} cancelou sua reserva" item_details: "%{START} - %{END}, sobre %{RESERVABLE}" generate_refund: "Não se esqueça de gerar uma nota de crédito ou um reembolso para este cancelamento." - notify_admin_when_user_is_imported: subject: "Uma conta de usuário foi importada do SSO" body: @@ -201,12 +171,10 @@ pt: known_information: "Aqui está o que sabemos sobre este provedor:" address_already_used: "Esse endereço já está associado a outro usuário" no_more_info_available: "Nenhuma outra informação sobre este usuário pode ser fornecida antes que complete seu perfil." - notify_user_profile_complete: subject: "Agora você tem acesso a todo o site" body: message: "As informações de sua conta foram atualizadas corretamente, agora você tem acesso a todo o site." - notify_user_auth_migration: subject: "Mudança importante na sua conta FabLab" body: @@ -218,20 +186,17 @@ pt: create_an_account_on: "crie uma conta em" or_use_an_existing_account_clicking_here: "ou use uma conta existente clicando aqui" in_case_of_problem_enter_the_following_code: "Em caso de problema com este link, você pode inserir o seguinte código na sua primeira tentativa de conexão para migrar sua conta real para o novo sistema de autenticação:" - notify_admin_user_merged: subject: "Uma conta importada foi mesclada com uma conta existente" body: imported_account_merged: "Uma conta de usuário importada anteriormente via %{PROVIDER) foi mesclada com a conta existente %{NAME}" provider_uid: "este é o ID do provedor:" - notify_admin_profile_complete: subject: "Uma conta importada teve o perfil completado" body: account_completed: "Uma conta de usuário completou seu perfil:" imported_account_completed: "Uma conta de usuário importada anteriormente via %{PROVIDER} completou seu perfil:" provider_id: "Seu ID de provedor é:" - notify_admin_abuse_reported: subject: "Um conteúdo abusivo foi relatado" body: @@ -241,17 +206,14 @@ pt: signaled_on: "sinalizado em:" message: "Menssagem:" visit_management_interface: "Refer to the Reporting Management Interface for more information." - notify_user_wallet_is_credited: subject: "Sua carteira foi creditada" body: wallet_credit_html: "Sua carteira foi creditada em %{AMOUNT} pelo administrador." - notify_admin_user_wallet_is_credited: subject: "A carteira de um usuário foi creditada" body: wallet_credit_html: "A carteira do membro %{USER} foi creditada %{AMOUNT} pelo administrador %{ADMIN}." - notify_admin_export_complete: subject: "Exportação completa" body: @@ -274,31 +236,26 @@ pt: file_type: xlsx: "Excel" csv: "CSV" - notify_admin_import_complete: subject: "Import completed" body: you_made_an_import: "You have initiated an import %{CATEGORY}" category_members: "of the members" click_to_view_results: "Click here to view results" - notify_member_about_coupon: subject: "Cupom" body: enjoy_a_discount_of_PERCENT_with_code_CODE: "Desfrute de um desconto de %{PERCENT}% em todo o site com o código %{CODE}." enjoy_a_discount_of_AMOUNT_with_code_CODE: "Desfrute de um desconto de %{AMOUNT} em todo o site com o código %{CODE}." this_coupon_is_valid_USAGE_times_until_DATE_for_all_your_purchases: "Esse cupom é válido {USAGE, plural, =1{uma vez} other{vérias vezes}}: para todas as suas compras {TYPE, select, amount_off{pelo menos igual ao montante do cupom} other{}}, from now {DATE, select, NO-DATE{e sem limite de tempo} other{até {DATE}}}." - notify_admin_free_disk_space: subject: "Low disk space" body: "Warning: available disk space on the server hosting Fab-manager is less than %{THRESHOLD} MiB. This can affect its operation and prevent saving some data. Currently, %{AVAILABLE} MiB of free disk space remains available on the mount point." - notify_admin_close_period_reminder: subject: "Remind to close your accounting periods" body: warning_last_closed_period_over_1_year: "Please remind to periodically close your accounting periods. Last closed period ended at %{LAST_END}." warning_no_closed_periods: "Please remind to periodically close your accounting periods. You have to close periods from %{FIRST_DATE}." - notify_admin_archive_complete: subject: "Archiving completed" body: @@ -306,18 +263,15 @@ pt: click_to_download: "To download the ZIP archive, click" here: "here." save_on_secured: "Remember that you must save this archive on a secured external support, which may be requested by the tax authorities during a check." - notify_privacy_policy_changed: subject: "Privacy policy updated" body: content_html: "

We wish to inform you that we have just updated our privacy policy.

We may change our privacy policy regularly. In accordance with the regulations, you will receive a notification for each update.

By accessing or using our services after the privacy policy update, we will consider that you agree its terms, updates included.

" link_to_policy: "Cliquez ici pour consultez la politique de confidentialité." - notify_admin_refund_created: subject: "A refund has been generated" body: refund_created: "A refund of %{AMOUNT} has been generated on invoice %{INVOICE} of user %{USER}" download: "Click here to download this refund invoice" - shared: hello: "Olá %{user_name}" diff --git a/config/locales/pt.yml b/config/locales/pt.yml index c1544b52b..931365c03 100755 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -1,6 +1,6 @@ pt: duration: - # subscription plan duration + #subscription plan duration year: one: 'um ano' other: '%{count} anos' @@ -10,15 +10,9 @@ pt: week: one: 'uma semana' other: '%{count} semanas' - - time: - formats: - # See http://apidock.com/ruby/DateTime/strftime for a list of available directives - hour_minute: "%I:%M %p" - - errors: &errors - messages: &errors_messages - # CarrierWave + errors: + messages: + #CarrierWave carrierwave_processing_error: "falhou ao ser processado" carrierwave_integrity_error: "não é de um tipo de arquivo permitido" carrierwave_download_error: "não pode ser baixado" @@ -42,38 +36,29 @@ pt: end_before_start: "The end date can't be before the start date. Pick a date after %{START}" invalid_duration: "The allowed duration must be between 1 day and 1 year. Your period is %{DAYS} days long." must_be_in_the_past: "The period must be strictly prior to today's date." - - activemodel: - errors: - <<: *errors - apipie: api_documentation: "Documentação da API" - omniauth: - # error messages when importing an account from a SSO + #error messages when importing an account from a SSO email_already_linked_to_another_account_please_input_your_authentication_code: "E-mail \"%{OLD_MAIL}\" já está vinculado a outra conta, insira seu código de autenticação." your_username_is_already_linked_to_another_account_unable_to_update_it: "Seu nome de usuário ( %{USERNAME}) já está vinculado a outra conta, não conseguindo atualizá-lo." your_email_address_is_already_linked_to_another_account_unable_to_update_it: "Seu endereço de e-mail ( %{EMAIL}) já está vinculado a outra conta, não conseguindo atualizá-lo." this_account_is_already_linked_to_an_user_of_the_platform: "Esta conta %{NAME} já está ligada a um utilizador da plataforma." - availabilities: - # availability slots in the calendar + #availability slots in the calendar not_available: "Não disponível " i_ve_reserved: "Eu reservei" length_must_be_slot_multiple: "deve ser pelo menos %{MIN} minutos após a data de início" must_be_associated_with_at_least_1_machine: "deve estar associada a pelo menos uma máquina" - members: - # members management + #members management unable_to_change_the_group_while_a_subscription_is_running: "Não é possível alterar o grupo enquanto uma assinatura está sendo executada" please_input_the_authentication_code_sent_to_the_address: "Por favor insira o código de autenticação enviado para seu endereço de email %{EMAIL}" your_authentication_code_is_not_valid: "Seu código de autentiicação não é válido." current_authentication_method_no_code: "O método de autenticação atual não requer nenhum código de migração" requested_account_does_not_exists: "A conta requisitada não existe" - invoices: - # PDF invoices generation + #PDF invoices generation refund_invoice_reference: "Referência da fatura de reembolso: %{REF}" invoice_reference: "Fatura de referência: %{REF}" code: "Código: %{CODE}" @@ -101,7 +86,7 @@ pt: one: "Um %{NAME} ticket" other: "%{count} %{NAME} tickets" reservation_other: "Reserva (outro)" - coupon_CODE_discount_of_DISCOUNT: "Cupom {CODE}: desconto de {DISCOUNT}{TYPE, select, percent_off{%} other{}}" # messageFormat interpolation + coupon_CODE_discount_of_DISCOUNT: "Cupom {CODE}: desconto de {DISCOUNT}{TYPE, select, percent_off{%} other{}}" #messageFormat interpolation total_including_all_taxes: "Total de taxas inclusas" including_VAT_RATE: "Incluindo VAT %{RATE}%" including_total_excluding_taxes: "Incluindo total de faixas exclusas" @@ -119,12 +104,11 @@ pt: settlement_by_wallet: "Liquidação por carteira" on_DATE_at_TIME: "em %{DATE} ás %{TIME}," for_an_amount_of_AMOUNT: "para uma quantidade de %{AMOUNT}" - on_DATE_from_START_to_END: "Em %{DATE} de %{START} até %{END}" # eg: on feb. 7 from 7AM to 9AM - from_STARTDATE_to_ENDDATE_from_STARTTIME_to_ENDTIME: "De %{STARTDATE} até %{ENDDATE}, das %{STARTTIME} ás %{ENDTIME}" # eg: from feb. 7 to feb. 10, from 6PM to 10PM + on_DATE_from_START_to_END: "Em %{DATE} de %{START} até %{END}" #eg: on feb. 7 from 7AM to 9AM + from_STARTDATE_to_ENDDATE_from_STARTTIME_to_ENDTIME: "De %{STARTDATE} até %{ENDDATE}, das %{STARTTIME} ás %{ENDTIME}" #eg: from feb. 7 to feb. 10, from 6PM to 10PM subscription_of_NAME_for_DURATION_starting_from_DATE: "Assinatura de %{NAME} de %{DURATION} começando em %{DATE}" subscription_of_NAME_extended_starting_from_STARTDATE_until_ENDDATE: "Assinatura de %{NAME} estendida (dias livres) a partir de% STARTDATE até %{ENDDATE}" and: 'e' - accounting_export: journal_code: "Journal code" date: "Entry date" @@ -144,22 +128,19 @@ pt: Event_reservation: "event reserv." Space_reservation: "space reserv." wallet: "wallet" - trainings: - # training availabilities + #training availabilities i_ve_reserved: "Eu reservei" completed: "Cheio" - events: - # error messages when updating an event + #error messages when updating an event error_deleting_reserved_price: "Não permitido deletar o preço requisitado, pois está associado a algumas reservas" other_error: "Um erro inesperado ocorreu enquanto o evento era atualizado" - # event duration + #event duration from_STARTDATE_to_ENDDATE: "De %{STARTDATE} a %{ENDDATE}," from_STARTTIME_to_ENDTIME: "das %{STARTTIME} às %{ENDTIME}" - export_members: - # members list export to EXCEL format + #members list export to EXCEL format members: "Membros" id: "ID" surname: "Sobrenome" @@ -190,9 +171,8 @@ pt: man: "Homem" woman: "Mulher" without_subscriptions: "Sem assinaturas" - export_reservations: - # machines/trainings/events reservations list to EXCEL format + #machines/trainings/events reservations list to EXCEL format reservations: "Reservas" customer_id: "ID do cliente" customer: "Cliente" @@ -204,9 +184,8 @@ pt: payment_method: "Método de pagamento" local_payment: "Pagamento na recepção" online_payment: "Pagamento online" - export_subscriptions: - # subscriptions list export to EXCEL format + #subscriptions list export to EXCEL format subscriptions: "Assinaturas" id: "ID" customer: "Cliente" @@ -219,9 +198,8 @@ pt: payment_method: "Método de pagamento" local_payment: "Pagamento na recepção" online_payment: "Pagamento online" - export_availabilities: - # reservation slots export, by type, to EXCEL format + #reservation slots export, by type, to EXCEL format machines: "Máquinas" trainings: "Treinamentos" spaces: "Espaços" @@ -235,10 +213,9 @@ pt: event: "Evento" reservations: "Reservas" available_seats: "Assentos disponíveis" - api: notifications: - # internal app notifications + #internal app notifications deleted_user: "Usuário deletado" notify_admin_abuse_reported: an_abuse_was_reported_on_TYPE_ID_NAME_html: "Um abuso foi relatado em %{TYPE} %{ID}: %{NAME} ." @@ -255,15 +232,15 @@ pt: notify_admin_subscription_canceled: USER_s_subscription_has_been_cancelled: "Assinatura do usuário %{USER} foi cancelado." notify_admin_subscription_extended: - subscription_PLAN_of_the_member_USER_has_been_extended_FREE_until_DATE_html: "A assinatura {PLAN} do membro {USER} foi extendida {FREE, select, true{grátis} other{}} until {DATE}." # messageFormat interpolation + subscription_PLAN_of_the_member_USER_has_been_extended_FREE_until_DATE_html: "A assinatura {PLAN} do membro {USER} foi extendida {FREE, select, true{grátis} other{}} until {DATE}." #messageFormat interpolation notify_admin_subscription_is_expired: USER_s_subscription_has_expired: "A assinatura do usuário %{USER} expirou." notify_admin_subscription_will_expire_in_7_days: USER_s_subscription_will_expire_in_7_days: "A assinatura do usuário %{USER} expira em 7 dias." notify_admin_user_group_changed: - user_NAME_changed_his_group_html: "Usuário {NAME} mudou {GENDER, select, true{seu} other{seu}} grupo." # messageFormat interpolation + user_NAME_changed_his_group_html: "Usuário {NAME} mudou {GENDER, select, true{seu} other{seu}} grupo." #messageFormat interpolation notify_admin_user_merged: - user_NAME_has_merged_his_account_with_the_one_imported_from_PROVIDER_UID_html: "Usuário {NAME} vinculou {GENDER, select, true{sua} other{sua}} conta com a importada de {PROVIDER} ({UID}) ." # messageFormat interpolation + user_NAME_has_merged_his_account_with_the_one_imported_from_PROVIDER_UID_html: "Usuário {NAME} vinculou {GENDER, select, true{sua} other{sua}} conta com a importada de {PROVIDER} ({UID}) ." #messageFormat interpolation notify_admin_when_project_published: project_NAME_has_been_published_html: "Projeto %{NAME} foi publicado." notify_admin_when_user_is_created: @@ -285,7 +262,7 @@ pt: notify_member_subscription_canceled: your_subscription_PLAN_was_successfully_cancelled_html: "Sua assinatura %{PLAN} foi cancelada com sucesso." notify_member_subscription_extended: - your_subscription_PLAN_has_been_extended_FREE_until_DATE_html: "Sua inscrição {PLAN} foi estendida {FREE, select, true{for free} other{}} until {DATE}." # messageFormat interpolation + your_subscription_PLAN_has_been_extended_FREE_until_DATE_html: "Sua inscrição {PLAN} foi estendida {FREE, select, true{for free} other{}} until {DATE}." #messageFormat interpolation notify_member_subscription_is_expired: your_subscription_has_expired: "Sua assinatura expirou." notify_member_subscription_will_expire_in_7_days: @@ -351,9 +328,8 @@ pt: click_to_show: "Click here to consult" notify_admin_refund_created: refund_created: "A refund of %{AMOUNT} has been created for user %{USER}" - statistics: - # statistics tools for admins + #statistics tools for admins subscriptions: "Assinaturas" machines_hours: "Slots de máquina" spaces: "Espaços" @@ -379,9 +355,8 @@ pt: revenue: "Receita" account_creation: "Criação de conta" project_publication: "Publicação de projeto" - export: - # statistics exports to the excel file format + #statistics exports to the excel file format entries: "Entradas" revenue: "Receita" average_age: "Idade média" @@ -395,12 +370,10 @@ pt: type: "Tipo" male: "Homem" female: "Mulher" - price_category: - # initial price's category for events, created to replace the old "reduced amount" property + #initial price's category for events, created to replace the old "reduced amount" property reduced_fare: "Tarifa reduzida" reduced_fare_if_you_are_under_25_student_or_unemployed: "Tarifa reduzida se tiver menos de 25 anos, estudante ou desempregado." - group: - # name of the user's group for administrators + #name of the user's group for administrators admins: 'Administradores' From da6af320f741f8dc547cb9ccc62c79128ddb67aa Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:53:48 +0100 Subject: [PATCH 002/136] New translations en.yml (French) --- config/locales/fr.yml | 47 ++++++++++++++++++++++--------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 2f64a9e45..cb157bda8 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -1,6 +1,6 @@ fr: + #subscription plan duration duration: - #durée d'une formule d'abonnement year: one: 'un an' other: '%{count} ans' @@ -11,8 +11,8 @@ fr: one: 'une semaine' other: '%{count} semaines' errors: + #CarrierWave messages: - #CarrierWave carrierwave_processing_error: "n'a pas pu être traité" carrierwave_integrity_error: "n'est pas d'un type de fichier autorisé" carrierwave_download_error: "ne peut pas être téléchargé" @@ -38,27 +38,27 @@ fr: must_be_in_the_past: "La période doit être strictement antérieure à la date du jour." apipie: api_documentation: "Documentation de l'API" + #error messages when importing an account from a SSO omniauth: - #messages d'erreur lors de l'import d'un compte depuis un SSO email_already_linked_to_another_account_please_input_your_authentication_code: "L'adresse de courriel \"%{OLD_MAIL}\" est déjà associée à un compte utilisateur, merci de saisir votre code d'authentification." your_username_is_already_linked_to_another_account_unable_to_update_it: "Votre nom d'utilisateur (%{USERNAME}) est déjà associée à un autre compte utilisateur, impossible de le mettre à jour." your_email_address_is_already_linked_to_another_account_unable_to_update_it: "Votre adresse de courriel (%{EMAIL}) est déjà associée à un autre compte utilisateur, impossible de la mettre à jour." this_account_is_already_linked_to_an_user_of_the_platform: "Ce compte %{NAME} est déjà lié à un utilisateur de la plate-forme." + #availability slots in the calendar availabilities: - #créneaux de disponibilité dans le calendrier not_available: "Non disponible" i_ve_reserved: "J'ai réservé" length_must_be_slot_multiple: "doit être au moins %{MIN} minutes après la date de début" must_be_associated_with_at_least_1_machine: "doit être associé avec au moins 1 machine" + #members management members: - #gestion des membres unable_to_change_the_group_while_a_subscription_is_running: "Impossible de changer le groupe tant qu'un abonnement est en cours" please_input_the_authentication_code_sent_to_the_address: "Merci d'enter le code d'authentification qui a été envoyé à l'adresse de courriel %{EMAIL}" your_authentication_code_is_not_valid: "Votre code d'authentification n'est pas valide." current_authentication_method_no_code: "La méthode d'authentification actuelle ne requiert pas de code de migration" requested_account_does_not_exists: "Le compte utilisateur demandé n'existe pas" + #PDF invoices generation invoices: - #génération des factures en PDF refund_invoice_reference: "Référence de l'avoir : %{REF}" invoice_reference: "Référence facture : %{REF}" code: "Code : %{CODE}" @@ -86,7 +86,7 @@ fr: one: "Une place %{NAME}" other: "%{count} places %{NAME}" reservation_other: "Réservation (autre)" - coupon_CODE_discount_of_DISCOUNT: "Code {CODE} : remise de {DISCOUNT} {TYPE, select, percent_off{%} other{}}" #messageFormat interpolation + coupon_CODE_discount_of_DISCOUNT: "Code {CODE} : remise de {DISCOUNT} {TYPE, select, percent_off{%} other{}}" #messageFormat interpolation total_including_all_taxes: "Total TTC" including_VAT_RATE: "Dont TVA %{RATE}%" including_total_excluding_taxes: "Dont total HT" @@ -109,6 +109,7 @@ fr: subscription_of_NAME_for_DURATION_starting_from_DATE: "Abonnement de %{NAME} pour %{DURATION} à compter du %{DATE}" subscription_of_NAME_extended_starting_from_STARTDATE_until_ENDDATE: "Prolongement Abonnement (Jours gratuits) de %{NAME} à compter du %{STARTDATE} jusqu'au %{ENDDATE}" and: 'et' + #CVS accounting export (columns headers) accounting_export: journal_code: "Code journal" date: "Date écriture" @@ -128,19 +129,19 @@ fr: Event_reservation: "réserv. évènement" Space_reservation: "réserv. espace" wallet: "porte-monnaie" + #training availabilities trainings: - #disponibilités formations i_ve_reserved: "J'ai réservé" completed: "Complet" + #error messages when updating an event events: - #messages d'erreur lors de la mise à jour d'un évènement error_deleting_reserved_price: "Impossible de supprimer le tarif demandé car il est associé à des réservations" other_error: "Une erreur inattendue est survenue lors de la mise à jour de l'évènement" - #durée d'un évènement + #event duration from_STARTDATE_to_ENDDATE: "Du %{STARTDATE} au %{ENDDATE}," from_STARTTIME_to_ENDTIME: "de %{STARTTIME} à %{ENDTIME}" + #members list export to EXCEL format export_members: - #export de la liste des members au format EXCEL members: "Membres" id: "ID" surname: "Nom" @@ -171,8 +172,8 @@ fr: man: "Homme" woman: "Femme" without_subscriptions: "Sans Abonnement" + #machines/trainings/events reservations list to EXCEL format export_reservations: - #export de la liste des réservations machines/formations/évènements au format EXCEL reservations: "Réservations" customer_id: "ID client" customer: "Client" @@ -184,8 +185,8 @@ fr: payment_method: "Méthode de paiement" local_payment: "Paiement à l'accueil" online_payment: "Paiement en ligne" + #subscriptions list export to EXCEL format export_subscriptions: - #export de la liste des abonnements au format EXCEL subscriptions: "Abonnements" id: "ID" customer: "Client" @@ -198,8 +199,8 @@ fr: payment_method: "Méthode de paiement" local_payment: "Paiement à l'accueil" online_payment: "Paiement en ligne" + #reservation slots export, by type, to EXCEL format export_availabilities: - #export des listes de créneaux de réservations, par type, au format EXCEL machines: "Machines" trainings: "Formations" spaces: "Espaces" @@ -214,8 +215,8 @@ fr: reservations: "Réservations" available_seats: "Places disponibles" api: + #internal app notifications notifications: - #notifications internes à l'application deleted_user: "Utilisateur supprimé" notify_admin_abuse_reported: an_abuse_was_reported_on_TYPE_ID_NAME_html: "Un abus a été signalé sur %{TYPE} %{ID} : %{NAME}." @@ -232,15 +233,15 @@ fr: notify_admin_subscription_canceled: USER_s_subscription_has_been_cancelled: "L'abonnement de %{USER} a été annulé." notify_admin_subscription_extended: - subscription_PLAN_of_the_member_USER_has_been_extended_FREE_until_DATE_html: "L'abonnement {PLAN} du membre {USER} a été prolongé {FREE, select, true{gratuitement} other{}} jusqu'au {DATE}." #messageFormat interpolation + subscription_PLAN_of_the_member_USER_has_been_extended_FREE_until_DATE_html: "L'abonnement {PLAN} du membre {USER} a été prolongé {FREE, select, true{gratuitement} other{}} jusqu'au {DATE}." #messageFormat interpolation notify_admin_subscription_is_expired: USER_s_subscription_has_expired: "L'abonnement de %{USER} est arrivé à expiration." notify_admin_subscription_will_expire_in_7_days: USER_s_subscription_will_expire_in_7_days: "L'abonnement de %{USER} expire dans 7 jours." notify_admin_user_group_changed: - user_NAME_changed_his_group_html: "L'utilisateur {NAME} a changé de groupe." #messageFormat interpolation + user_NAME_changed_his_group_html: "L'utilisateur {NAME} a changé de groupe." #messageFormat interpolation notify_admin_user_merged: - user_NAME_has_merged_his_account_with_the_one_imported_from_PROVIDER_UID_html: "L'utilisateur {NAME} a fusionné son compte avec le compte importé depuis {PROVIDER} ({UID})." #messageFormat interpolation + user_NAME_has_merged_his_account_with_the_one_imported_from_PROVIDER_UID_html: "L'utilisateur {NAME} a fusionné son compte avec le compte importé depuis {PROVIDER} ({UID})." #messageFormat interpolation notify_admin_when_project_published: project_NAME_has_been_published_html: "Le projet %{NAME} vient d'être publié." notify_admin_when_user_is_created: @@ -262,7 +263,7 @@ fr: notify_member_subscription_canceled: your_subscription_PLAN_was_successfully_cancelled_html: "Votre abonnement %{PLAN} est bien annulé." notify_member_subscription_extended: - your_subscription_PLAN_has_been_extended_FREE_until_DATE_html: "Votre abonnement {PLAN} a été prolongé {FREE, select, true{gratuitement} other{}} jusqu'au {DATE}." #messageFormat interpolation + your_subscription_PLAN_has_been_extended_FREE_until_DATE_html: "Votre abonnement {PLAN} a été prolongé {FREE, select, true{gratuitement} other{}} jusqu'au {DATE}." #messageFormat interpolation notify_member_subscription_is_expired: your_subscription_has_expired: "Votre abonnement est arrivé à expiration." notify_member_subscription_will_expire_in_7_days: @@ -328,8 +329,8 @@ fr: click_to_show: "Cliquez ici pour la consulter" notify_admin_refund_created: refund_created: "Un avoir de %{AMOUNT} a été généré pour l'utilisateur %{USER}" + #statistics tools for admins statistics: - #outil de statistiques pour les administrateurs subscriptions: "Abonnements" machines_hours: "Créneaux machines" spaces: "Espaces" @@ -355,8 +356,8 @@ fr: revenue: "Chiffre d'affaires" account_creation: "Création de compte" project_publication: "Publication de projet" + #statistics exports to the excel file format export: - #export des statistiques au format excel entries: "Entrées" revenue: "Chiffre d'affaires" average_age: "Âge moyen" @@ -370,10 +371,10 @@ fr: type: "Type" male: "Homme" female: "Femme" + #initial price's category for events, created to replace the old "reduced amount" property price_category: - #catégorie initiale de prix pour les évènements, en remplacement de l'ancienne propriété "montant réduit" reduced_fare: "Tarif réduit" reduced_fare_if_you_are_under_25_student_or_unemployed: "Tarif réduit si vous avez moins de 25 ans, que vous êtes étudiant ou demandeur d'emploi." group: - #nom du groupe utilisateur pour les administrateurs + #name of the user's group for administrators admins: 'Administrateurs' From 1da5cde40021348f0e47e71ac7d98bb96ebc401f Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:53:50 +0100 Subject: [PATCH 003/136] New translations devise.en.yml (Spanish) --- config/locales/devise.es.yml | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/config/locales/devise.es.yml b/config/locales/devise.es.yml index edd45da3d..1a7cc20fe 100644 --- a/config/locales/devise.es.yml +++ b/config/locales/devise.es.yml @@ -1,5 +1,4 @@ -# Additional translations at https://github.com/plataformatec/devise/wiki/I18n - +#Additional translations at https://github.com/plataformatec/devise/wiki/I18n es: devise: confirmations: @@ -15,16 +14,16 @@ es: not_found_in_database: "mail o contraseña inválidos." timeout: "Su sesión ha expirado. Por favor, inicie sesión de nuevo." unauthenticated: "Necesita iniciar sesión o registrarse antes de contiunar." - unconfirmed: "Debe confirmar su cuenta antes de continuar. Por favor haga clic en el enlace abajo del formulario." + unconfirmed: "You have to confirm your account before continuing. Please click on the link below the form." mailer: confirmation_instructions: - action: - instruction: + action: "Confirm my email address" + instruction: "You can finalize your registration by confirming your email address. Please click on the following link:" subject: "Instrucciones de confirmación" reset_password_instructions: - action: - instruction: - ignore_otherwise: + action: "Change my password" + instruction: "Someone asked for a link to change your password. You can do it through the link below." + ignore_otherwise: "If you have not made this request, please ignore this message." subject: "Instrucciones para restablecer contraseña" unlock_instructions: subject: "Desbloquear instrucciones" @@ -54,10 +53,10 @@ es: unlocked: "Tu cuenta se ha desbloqueado con éxito. Por favor inicie sesión para continuar." errors: messages: - already_confirmed: "Ya se confirmó, intente iniciar sesión." + already_confirmed: "This email was already confirmed, please try signing in." confirmation_period_expired: "Necesita ser confirmado dentro de %{period}, por favor, solicite uno nuevo" expired: "ha expirado, por favor, solicite uno nuevo" - not_found: "Este correo no esta associado con ninguna cuenta." + not_found: "This email was not found" not_locked: "no estaba bloqueado" not_saved: one: "un error prohibió que %{resource} fuese guardado:" From b2c1d31a6383bc9da5b7ffa06850418df1935028 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:53:51 +0100 Subject: [PATCH 004/136] New translations app.public.en.yml (Acholi) --- config/locales/app.public.ach.yml | 174 ++++++++++++++++++++++-------- 1 file changed, 129 insertions(+), 45 deletions(-) diff --git a/config/locales/app.public.ach.yml b/config/locales/app.public.ach.yml index bc623609c..1bff3055b 100644 --- a/config/locales/app.public.ach.yml +++ b/config/locales/app.public.ach.yml @@ -1,8 +1,8 @@ ach: app: public: + #header and "about" page common: - #header and "about" page about_the_fablab: "crwdns8805:0GENDER={GENDER}crwdnd8805:0NAME={NAME}crwdne8805:0" return: "crwdns8807:0crwdne8807:0" #cookies @@ -20,6 +20,8 @@ ach: my_events: "crwdns8827:0crwdne8827:0" my_invoices: "crwdns8829:0crwdne8829:0" my_wallet: "crwdns8831:0crwdne8831:0" + #contextual help + help: "crwdns19580:0crwdne19580:0" #login/logout sign_out: "crwdns8833:0crwdne8833:0" sign_up: "crwdns8835:0crwdne8835:0" @@ -38,15 +40,15 @@ ach: subscriptions: "crwdns8857:0crwdne8857:0" public_calendar: "crwdns8859:0crwdne8859:0" #left menu (admin) - trainings_monitoring: "crwdns8861:0crwdne8861:0" - manage_the_calendar: "crwdns8863:0crwdne8863:0" - manage_the_users: "crwdns8865:0crwdne8865:0" - manage_the_invoices: "crwdns8867:0crwdne8867:0" + trainings_monitoring: "crwdns19582:0crwdne19582:0" + manage_the_calendar: "crwdns19584:0crwdne19584:0" + manage_the_users: "crwdns19586:0crwdne19586:0" + manage_the_invoices: "crwdns19588:0crwdne19588:0" subscriptions_and_prices: "crwdns8869:0crwdne8869:0" - manage_the_events: "crwdns8871:0crwdne8871:0" - manage_the_machines: "crwdns8873:0crwdne8873:0" - manage_the_spaces: "crwdns8875:0crwdne8875:0" - manage_the_projects_elements: "crwdns8877:0crwdne8877:0" + manage_the_events: "crwdns19590:0crwdne19590:0" + manage_the_machines: "crwdns19592:0crwdne19592:0" + manage_the_spaces: "crwdns19594:0crwdne19594:0" + manage_the_projects_elements: "crwdns19596:0crwdne19596:0" statistics: "crwdns8879:0crwdne8879:0" customization: "crwdns8881:0crwdne8881:0" open_api_clients: "crwdns8883:0crwdne8883:0" @@ -91,7 +93,7 @@ ach: used_for_reservation: "crwdns8959:0crwdne8959:0" used_for_profile: "crwdns8961:0crwdne8961:0" public_profile: "crwdns8963:0crwdne8963:0" - you_will_receive_confirmation_instructions_by_email_detailed: "crwdns19539:0crwdne19539:0" + you_will_receive_confirmation_instructions_by_email_detailed: "crwdns19598:0crwdne19598:0" #password modification modal change_your_password: "crwdns8965:0crwdne8965:0" your_new_password: "crwdns8967:0crwdne8967:0" @@ -99,39 +101,39 @@ ach: #connection modal connection: "crwdns8971:0crwdne8971:0" password_forgotten: "crwdns8973:0crwdne8973:0" - confirm_my_account: "crwdns19541:0crwdne19541:0" + confirm_my_account: "crwdns19600:0crwdne19600:0" not_registered_to_the_fablab: "crwdns8975:0crwdne8975:0" create_an_account: "crwdns8977:0crwdne8977:0" wrong_email_or_password: "crwdns8979:0crwdne8979:0" caps_lock_is_on: "crwdns8981:0crwdne8981:0" #confirmation modal - you_will_receive_confirmation_instructions_by_email: crwdns19543:0crwdne19543:0 + you_will_receive_confirmation_instructions_by_email: "crwdns19602:0crwdne19602:0" #forgotten password modal your_email_address_is_unknown: "crwdns8983:0crwdne8983:0" you_will_receive_in_a_moment_an_email_with_instructions_to_reset_your_password: "crwdns8985:0crwdne8985:0" #Fab-manager's version version: "crwdns8987:0crwdne8987:0" - upgrade_fabmanager: "crwdns19545:0crwdne19545:0" - current_version: "crwdns19547:0{VERSION}crwdne19547:0" - upgrade_to: "crwdns19549:0{VERSION}crwdne19549:0" - read_more: "crwdns19551:0crwdne19551:0" - security_version_html: "crwdns19553:0crwdne19553:0" - how_to: "crwdns19555:0crwdne19555:0" + upgrade_fabmanager: "crwdns19604:0crwdne19604:0" + current_version: "crwdns19606:0{VERSION}crwdne19606:0" + upgrade_to: "crwdns19608:0{VERSION}crwdne19608:0" + read_more: "crwdns19610:0crwdne19610:0" + security_version_html: "crwdns19612:0crwdne19612:0" + how_to: "crwdns19614:0crwdne19614:0" #Notifications and_NUMBER_other_notifications: "crwdns8989:0NUMBER={NUMBER}crwdnd8989:0NUMBER={NUMBER}crwdne8989:0" + #about page about: - #about page read_the_fablab_policy: "crwdns8991:0crwdne8991:0" read_the_fablab_s_general_terms_and_conditions: "crwdns8993:0crwdne8993:0" your_fablab_s_contacts: "crwdns8995:0crwdne8995:0" privacy_policy: "crwdns8997:0crwdne8997:0" + #'privacy policy' page privacy: - #'privacy policy' page title: "crwdns8999:0crwdne8999:0" dpo: "crwdns9001:0crwdne9001:0" last_update: "crwdns9003:0crwdne9003:0" + #home page home: - #home page latest_documented_projects: "crwdns9005:0crwdne9005:0" follow_us: "crwdns9007:0crwdne9007:0" latest_tweets: "crwdns9009:0crwdne9009:0" @@ -149,11 +151,11 @@ ach: full_price: "crwdns9031:0crwdne9031:0" event_full: "crwdns9033:0crwdne9033:0" still_available: "crwdns9035:0crwdne9035:0" + #projects gallery projects_list: - #projects gallery the_fablab_projects: "crwdns9037:0crwdne9037:0" add_a_project: "crwdns9039:0crwdne9039:0" - search_over_the_whole_network: "crwdns9041:0crwdne9041:0" + search_over_the_whole_network: "crwdns19616:0crwdne19616:0" tooltip_openlab_projects_switch: "crwdns9043:0crwdne9043:0" openlab_search_not_available_at_the_moment: "crwdns9045:0crwdne9045:0" project_search_result_is_empty: "crwdns9047:0crwdne9047:0" @@ -167,8 +169,8 @@ ach: all_materials: "crwdns9063:0crwdne9063:0" load_next_projects: "crwdns9065:0crwdne9065:0" rough_draft: "crwdns9067:0crwdne9067:0" + #details of a projet projects_show: - #details of a projet rough_draft: "crwdns9069:0crwdne9069:0" project_description: "crwdns9071:0crwdne9071:0" by_name: "crwdns9073:0{NAME}crwdne9073:0" @@ -196,17 +198,18 @@ ach: message_is_required: "crwdns9117:0crwdne9117:0" report: "crwdns9119:0crwdne9119:0" do_you_really_want_to_delete_this_project: "crwdns9121:0crwdne9121:0" + #list of machines machines_list: - #list of machines the_fablab_s_machines: "crwdns9123:0crwdne9123:0" add_a_machine: "crwdns9125:0crwdne9125:0" + new_availability: "crwdns19618:0crwdne19618:0" book: "crwdns9127:0crwdne9127:0" _or_the_: "crwdns9129:0crwdne9129:0" status_enabled: "crwdns9131:0crwdne9131:0" status_disabled: "crwdns9133:0crwdne9133:0" status_all: "crwdns9135:0crwdne9135:0" + #details of a machine machines_show: - #details of a machine book_this_machine: "crwdns9137:0crwdne9137:0" technical_specifications: "crwdns9139:0crwdne9139:0" files_to_download: "crwdns9141:0crwdne9141:0" @@ -216,20 +219,20 @@ ach: do_you_really_want_to_delete_this_machine: "crwdns9149:0crwdne9149:0" unauthorized_operation: "crwdns9151:0crwdne9151:0" the_machine_cant_be_deleted_because_it_is_already_reserved_by_some_users: "crwdns9153:0crwdne9153:0" + #list of trainings trainings_list: - #list of trainings book: "crwdns9155:0crwdne9155:0" the_trainings: "crwdns9157:0crwdne9157:0" + #details of a training training_show: - #details of a training book_this_training: "crwdns9159:0crwdne9159:0" do_you_really_want_to_delete_this_training: "crwdns9161:0crwdne9161:0" unauthorized_operation: "crwdns9163:0crwdne9163:0" confirmation_required: "crwdns9165:0crwdne9165:0" the_training_cant_be_deleted_because_it_is_already_reserved_by_some_users: "crwdns9167:0crwdne9167:0" + #summary of the subscriptions plans: - #summary of the subscriptions - subscriptions: "crwdns9169:0crwdne9169:0" + subscriptions: "crwdns19620:0crwdne19620:0" i_choose_that_plan: "crwdns9171:0crwdne9171:0" i_subscribe_online: "crwdns9173:0crwdne9173:0" i_already_subscribed: "crwdns9175:0crwdne9175:0" @@ -256,8 +259,8 @@ ach: here_is_the_NAME_subscription_summary: "crwdns9217:0{NAME}crwdne9217:0" confirm_payment_of_html: "crwdns9219:0ROLE={ROLE}crwdnd9219:0AMOUNT={AMOUNT}crwdne9219:0" #(contexte : validate a payment of $20,00) online_payment_disabled: "crwdns9221:0crwdne9221:0" + #Fablab's events list events_list: - #Fablab's events list the_fablab_s_events: "crwdns9223:0crwdne9223:0" all_categories: "crwdns9225:0crwdne9225:0" for_all: "crwdns9227:0crwdne9227:0" @@ -269,9 +272,10 @@ ach: add_an_event: "crwdns9239:0crwdne9239:0" load_the_next_events: "crwdns9241:0crwdne9241:0" full_price_: "crwdns9243:0crwdne9243:0" - to_date: crwdns10123:0crwdne10123:0 + to_date: "crwdns19622:0crwdne19622:0" #eg. from 01/01 to 01/05 + all_themes: "crwdns19624:0crwdne19624:0" + #details and booking of an event events_show: - #details and booking of an event event_description: "crwdns9247:0crwdne9247:0" downloadable_documents: "crwdns9249:0crwdne9249:0" information_and_booking: "crwdns9251:0crwdne9251:0" @@ -280,8 +284,8 @@ ach: ending: "crwdns9257:0crwdne9257:0" opening_hours: "crwdns9259:0crwdne9259:0" all_day: "crwdns9261:0crwdne9261:0" - from_time: crwdns10125:0crwdne10125:0 - to_time: crwdns10127:0crwdne10127:0 + from_time: "crwdns19626:0crwdne19626:0" #eg. from 18:00 to 21:00 + to_time: "crwdns19628:0crwdne19628:0" #eg. from 18:00 to 21:00 full_price_: "crwdns9267:0crwdne9267:0" tickets_still_availables: "crwdns9269:0crwdne9269:0" sold_out: "crwdns9271:0crwdne9271:0" @@ -303,14 +307,14 @@ ach: you_can_shift_this_reservation_on_the_following_slots: "crwdns9303:0crwdne9303:0" confirmation_required: "crwdns9305:0crwdne9305:0" do_you_really_want_to_delete_this_event: "crwdns9307:0crwdne9307:0" - delete_recurring_event: "crwdns19557:0crwdne19557:0" - delete_this_event: "crwdns19559:0crwdne19559:0" - delete_this_and_next: "crwdns19561:0crwdne19561:0" - delete_all: "crwdns19563:0crwdne19563:0" + delete_recurring_event: "crwdns19630:0crwdne19630:0" + delete_this_event: "crwdns19632:0crwdne19632:0" + delete_this_and_next: "crwdns19634:0crwdne19634:0" + delete_all: "crwdns19636:0crwdne19636:0" event_successfully_deleted: "crwdns9309:0crwdne9309:0" - events_deleted: "crwdns19565:0COUNT={COUNT}crwdnd19565:0COUNT={COUNT}crwdne19565:0" - unable_to_delete_the_event: "crwdns19567:0crwdne19567:0" - events_not_deleted: "crwdns19569:0TOTAL={TOTAL}crwdnd19569:0COUNT={COUNT}crwdnd19569:0COUNT={COUNT}crwdnd19569:0COUNT={COUNT}crwdne19569:0" + events_deleted: "crwdns19638:0COUNT={COUNT}crwdnd19638:0COUNT={COUNT}crwdne19638:0" + unable_to_delete_the_event: "crwdns19640:0crwdne19640:0" + events_not_deleted: "crwdns19642:0TOTAL={TOTAL}crwdnd19642:0COUNT={COUNT}crwdnd19642:0COUNT={COUNT}crwdnd19642:0COUNT={COUNT}crwdne19642:0" cancel_the_reservation: "crwdns9313:0crwdne9313:0" do_you_really_want_to_cancel_this_reservation_this_apply_to_all_booked_tickets: "crwdns9315:0crwdne9315:0" reservation_was_successfully_cancelled: "crwdns9317:0crwdne9317:0" @@ -320,8 +324,8 @@ ach: view_event_list: "crwdns9325:0crwdne9325:0" share_on_facebook: "crwdns9327:0crwdne9327:0" share_on_twitter: "crwdns9329:0crwdne9329:0" + #public calendar calendar: - #public calendar calendar: "crwdns9331:0crwdne9331:0" show_unavailables: "crwdns9333:0crwdne9333:0" filter_calendar: "crwdns9335:0crwdne9335:0" @@ -330,16 +334,17 @@ ach: spaces: "crwdns9341:0crwdne9341:0" events: "crwdns9343:0crwdne9343:0" externals: "crwdns9345:0crwdne9345:0" + #list of spaces spaces_list: - #list of spaces the_spaces: "crwdns9347:0crwdne9347:0" + new_availability: "crwdns19644:0crwdne19644:0" add_a_space: "crwdns9349:0crwdne9349:0" status_enabled: "crwdns9351:0crwdne9351:0" status_disabled: "crwdns9353:0crwdne9353:0" status_all: "crwdns9355:0crwdne9355:0" book: "crwdns9357:0crwdne9357:0" + #display the details of a space space_show: - #display the details of a space book_this_space: "crwdns9359:0crwdne9359:0" unauthorized_operation: "crwdns9361:0crwdne9361:0" confirmation_required: "crwdns9363:0crwdne9363:0" @@ -348,3 +353,82 @@ ach: characteristics: "crwdns9369:0crwdne9369:0" files_to_download: "crwdns9371:0crwdne9371:0" projects_using_the_space: "crwdns9373:0crwdne9373:0" + tour: + conclusion: + title: "crwdns19646:0crwdne19646:0" + content: "crwdns20176:0crwdne20176:0" + welcome: + welcome: + title: "crwdns19650:0crwdne19650:0" + content: "crwdns19652:0crwdne19652:0" + home: + title: "crwdns19654:0crwdne19654:0" + content: "crwdns19656:0crwdne19656:0" + machines: + title: "crwdns19658:0crwdne19658:0" + content: "crwdns19660:0crwdne19660:0" + trainings: + title: "crwdns19662:0crwdne19662:0" + content: "crwdns19664:0crwdne19664:0" + spaces: + title: "crwdns19666:0crwdne19666:0" + content: "crwdns19668:0crwdne19668:0" + events: + title: "crwdns19670:0crwdne19670:0" + content: "crwdns19672:0crwdne19672:0" + calendar: + title: "crwdns19674:0crwdne19674:0" + content: "crwdns19676:0crwdne19676:0" + projects: + title: "crwdns19678:0crwdne19678:0" + content: "crwdns19680:0crwdne19680:0" + plans: + title: "crwdns19682:0crwdne19682:0" + content: "crwdns19684:0crwdne19684:0" + admin: + title: "crwdns19686:0crwdne19686:0" + content: "crwdns19688:0crwdne19688:0" + about: + title: "crwdns19690:0crwdne19690:0" + content: "crwdns19692:0crwdne19692:0" + notifications: + title: "crwdns19694:0crwdne19694:0" + content: "crwdns19696:0crwdne19696:0" + profile: + title: "crwdns19698:0crwdne19698:0" + content: "crwdns19700:0crwdne19700:0" + news: + title: "crwdns19702:0crwdne19702:0" + content: "crwdns19704:0[Customization]crwdne19704:0" + last_projects: + title: "crwdns19706:0crwdne19706:0" + content: "crwdns19708:0crwdne19708:0" + last_tweet: + title: "crwdns19710:0crwdne19710:0" + content: "crwdns19712:0[Customization]crwdne19712:0" + last_members: + title: "crwdns19714:0crwdne19714:0" + content: "crwdns19716:0crwdne19716:0" + next_events: + title: "crwdns19718:0crwdne19718:0" + content: "crwdns19720:0crwdne19720:0" + customize: + title: "crwdns19722:0crwdne19722:0" + content: "crwdns19724:0crwdne19724:0" + version: + title: "crwdns19726:0crwdne19726:0" + content: "crwdns19728:0crwdne19728:0" + machines: + welcome: + title: "crwdns19730:0crwdne19730:0" + content: "crwdns19732:0crwdne19732:0" + view: + title: "crwdns19734:0crwdne19734:0" + content: "crwdns19736:0crwdne19736:0" + spaces: + welcome: + title: "crwdns19738:0crwdne19738:0" + content: "crwdns19740:0crwdne19740:0" + view: + title: "crwdns19742:0crwdne19742:0" + content: "crwdns19744:0crwdne19744:0" From e5e969cb5cee3540c0d1bd416a43747cd0fa67f2 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:53:52 +0100 Subject: [PATCH 005/136] New translations app.logged.en.yml (Acholi) --- config/locales/app.logged.ach.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.ach.yml b/config/locales/app.logged.ach.yml index f594b4b04..00b0421ee 100644 --- a/config/locales/app.logged.ach.yml +++ b/config/locales/app.logged.ach.yml @@ -160,7 +160,7 @@ ach: trainings_reserve: #book a training trainings_planning: "crwdns8767:0crwdne8767:0" - planning_of: "crwdns8769:0crwdne8769:0" + planning_of: "crwdns20180:0crwdne20180:0" #followed by the training name (eg. Planning of 3d printer training) all_trainings: "crwdns8771:0crwdne8771:0" cancel_my_selection: "crwdns8773:0crwdne8773:0" i_change: "crwdns8775:0crwdne8775:0" From b9e12822920c8c294dbc5617b894b2e6835b34bf Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:53:54 +0100 Subject: [PATCH 006/136] New translations app.admin.en.yml (Acholi) --- config/locales/app.admin.ach.yml | 323 +++++++++++++++++++++++++------ 1 file changed, 269 insertions(+), 54 deletions(-) diff --git a/config/locales/app.admin.ach.yml b/config/locales/app.admin.ach.yml index 1b6266adc..f99aaeb7b 100644 --- a/config/locales/app.admin.ach.yml +++ b/config/locales/app.admin.ach.yml @@ -30,6 +30,8 @@ ach: beware_this_cannot_be_reverted: "crwdns6739:0crwdne6739:0" the_machine_was_successfully_removed_from_the_slot: "crwdns6741:0crwdne6741:0" deletion_failed: "crwdns6743:0crwdne6743:0" + do_you_really_want_to_remove_PLAN_from_this_slot: "crwdns19746:0{PLAN}crwdne19746:0" + the_plan_was_successfully_removed_from_the_slot: "crwdns19748:0crwdne19748:0" DATE_slot: "crwdns6745:0{DATE}crwdne6745:0" what_kind_of_slot_do_you_want_to_create: "crwdns6747:0crwdne6747:0" training: "crwdns6749:0crwdne6749:0" @@ -38,12 +40,19 @@ ach: next: "crwdns6755:0crwdne6755:0" previous: "crwdns6757:0crwdne6757:0" select_some_machines: "crwdns6759:0crwdne6759:0" - select_all: "crwdns19459:0crwdne19459:0" - select_none: "crwdns19461:0crwdne19461:0" + select_all: "crwdns19750:0crwdne19750:0" + select_none: "crwdns19752:0crwdne19752:0" + manage_machines: "crwdns19754:0crwdne19754:0" + manage_spaces: "crwdns19756:0crwdne19756:0" + manage_trainings: "crwdns19758:0crwdne19758:0" number_of_tickets: "crwdns6761:0crwdne6761:0" adjust_the_opening_hours: "crwdns6763:0crwdne6763:0" - to_time: crwdns10109:0crwdne10109:0 - restrict_with_labels: "crwdns6767:0crwdne6767:0" + to_time: "crwdns19760:0crwdne19760:0" #eg. from 18:00 to 21:00 + restrict_options: "crwdns19762:0crwdne19762:0" + restrict_with_labels: "crwdns19764:0crwdne19764:0" + restrict_for_subscriptions: "crwdns19766:0crwdne19766:0" + select_some_plans: "crwdns19768:0crwdne19768:0" + plans: "crwdns19770:0crwdne19770:0" recurrence: "crwdns6769:0crwdne6769:0" enabled: "crwdns6771:0crwdne6771:0" period: "crwdns6773:0crwdne6773:0" @@ -56,6 +65,7 @@ ach: select_nb_period: "crwdns6787:0crwdne6787:0" select_end_date: "crwdns6789:0crwdne6789:0" about_to_create: "crwdns6791:0TYPE={TYPE}crwdnd6791:0NUMBER={NUMBER}crwdne6791:0" + divided_in_slots: "crwdns20172:0COUNT={COUNT}crwdnd20172:0DURATION={DURATION}crwdne20172:0" reservable: "crwdns6793:0crwdne6793:0" labels: "crwdns6795:0crwdne6795:0" none: "crwdns6797:0crwdne6797:0" @@ -87,9 +97,10 @@ ach: view_reservations: "crwdns6849:0crwdne6849:0" legend: "crwdns6851:0crwdne6851:0" and: "crwdns6853:0crwdne6853:0" + external_sync: "crwdns19774:0crwdne19774:0" icalendar: icalendar_import: "crwdns6855:0crwdne6855:0" - intro: "crwdns6857:0crwdne6857:0" + intro: "crwdns19776:0crwdne19776:0" new_import: "crwdns6859:0crwdne6859:0" color: "crwdns6861:0crwdne6861:0" text_color: "crwdns6863:0crwdne6863:0" @@ -122,6 +133,7 @@ ach: trainings: #track and monitor the trainings trainings_monitoring: "crwdns6913:0crwdne6913:0" + plan_session: "crwdns19778:0crwdne19778:0" trainings: "crwdns6915:0crwdne6915:0" add_a_new_training: "crwdns6917:0crwdne6917:0" name: "crwdns6919:0crwdne6919:0" @@ -169,8 +181,8 @@ ach: on_DATE: "crwdns6995:0{DATE}crwdne6995:0" from_DATE: "crwdns6997:0{DATE}crwdne6997:0" from_TIME: "crwdns6999:0{TIME}crwdne6999:0" - to_date: crwdns10111:0crwdne10111:0 - to_time: crwdns10113:0crwdne10113:0 + to_date: "crwdns19780:0crwdne19780:0" #eg: from 01/01 to 01/05 + to_time: "crwdns19782:0crwdne19782:0" #eg. from 18:00 to 21:00 title: "crwdns7005:0crwdne7005:0" dates: "crwdns7007:0crwdne7007:0" booking: "crwdns7009:0crwdne7009:0" @@ -221,6 +233,18 @@ ach: events_edit: #edit an existing event edit_the_event: "crwdns7095:0crwdne7095:0" + confirmation_required: "crwdns19784:0crwdne19784:0" + edit_recurring_event: "crwdns19786:0crwdne19786:0" + edit_this_event: "crwdns19788:0crwdne19788:0" + edit_this_and_next: "crwdns19790:0crwdne19790:0" + edit_all: "crwdns19792:0crwdne19792:0" + date_wont_change: "crwdns19794:0crwdne19794:0" + event_successfully_updated: "crwdns19796:0crwdne19796:0" + events_updated: "crwdns19798:0COUNT={COUNT}crwdnd19798:0COUNT={COUNT}crwdne19798:0" + unable_to_update_the_event: "crwdns19800:0crwdne19800:0" + events_not_updated: "crwdns19802:0TOTAL={TOTAL}crwdnd19802:0COUNT={COUNT}crwdnd19802:0COUNT={COUNT}crwdne19802:0" + error_deleting_reserved_price: "crwdns19804:0crwdne19804:0" + other_error: "crwdns19806:0crwdne19806:0" event_reservations: #event reservations list the_reservations: "crwdns7097:0crwdne7097:0" @@ -262,7 +286,7 @@ ach: hours: "crwdns7165:0{DURATION}crwdne7165:0" related_subscriptions: "crwdns7167:0crwdne7167:0" please_specify_a_number: "crwdns7169:0crwdne7169:0" - none: crwdns7171:0crwdne7171:0 + none: "crwdns19808:0crwdne19808:0" #grammar concordance with training. an_error_occurred_while_saving_the_number_of_credits: "crwdns7173:0crwdne7173:0" an_error_occurred_while_deleting_credit_with_the_TRAINING: "crwdns7175:0{TRAINING}crwdne7175:0" an_error_occurred_unable_to_find_the_credit_to_revoke: "crwdns7177:0crwdne7177:0" @@ -386,7 +410,7 @@ ach: year: "crwdns7391:0crwdne7391:0" month: "crwdns7393:0crwdne7393:0" day: "crwdns7395:0crwdne7395:0" - num_of_invoice: "crwdns7397:0crwdne7397:0" + num_of_invoice: "crwdns20178:0crwdne20178:0" online_sales: "crwdns7399:0crwdne7399:0" wallet: "crwdns7401:0crwdne7401:0" refund: "crwdns7403:0crwdne7403:0" @@ -438,7 +462,7 @@ ach: description: "crwdns7495:0crwdne7495:0" description_optional: "crwdns7497:0crwdne7497:0" will_appear_on_the_refund_invoice: "crwdns7499:0crwdne7499:0" - none: "crwdns7501:0crwdne7501:0" + none: "crwdns19810:0crwdne19810:0" #grammar concordance with payment mean by_cash: "crwdns7503:0crwdne7503:0" by_cheque: "crwdns7505:0crwdne7505:0" by_transfer: "crwdns7507:0crwdne7507:0" @@ -632,9 +656,9 @@ ach: status_enabled: "crwdns7871:0crwdne7871:0" status_disabled: "crwdns7873:0crwdne7873:0" status_all: "crwdns7875:0crwdne7875:0" - member_filter_all: "crwdns19463:0crwdne19463:0" - member_filter_not_confirmed: "crwdns19465:0crwdne19465:0" - member_filter_inactive_for_3_years: "crwdns19467:0crwdne19467:0" + member_filter_all: "crwdns19812:0crwdne19812:0" + member_filter_not_confirmed: "crwdns19814:0crwdne19814:0" + member_filter_inactive_for_3_years: "crwdns19816:0crwdne19816:0" members_new: #add a member add_a_member: "crwdns7877:0crwdne7877:0" @@ -761,8 +785,8 @@ ach: statistics: "crwdns8091:0crwdne8091:0" evolution: "crwdns8093:0crwdne8093:0" age_filter: "crwdns8095:0crwdne8095:0" - from_age: "crwdns8097:0crwdne8097:0" #context: age. eg: from 8 to 40 years old - to_age: "crwdns8099:0crwdne8099:0" #context: age. eg: from 8 to 40 years old + from_age: "crwdns8097:0crwdne8097:0" #eg. from 8 to 40 years old + to_age: "crwdns8099:0crwdne8099:0" #eg. from 8 to 40 years old _years_old: "crwdns8101:0crwdne8101:0" start: "crwdns8103:0crwdne8103:0" end: "crwdns8105:0crwdne8105:0" @@ -771,8 +795,8 @@ ach: criterion: "crwdns8111:0crwdne8111:0" value: "crwdns8113:0crwdne8113:0" exclude: "crwdns8115:0crwdne8115:0" - from_date: crwdns10115:0crwdne10115:0 - to_date: crwdns10117:0crwdne10117:0 + from_date: "crwdns19818:0crwdne19818:0" #eg: from 01/01 to 01/05 + to_date: "crwdns19820:0crwdne19820:0" #eg: from 01/01 to 01/05 entries: "crwdns8121:0crwdne8121:0" revenue_: "crwdns8123:0crwdne8123:0" average_age: "crwdns8125:0crwdne8125:0" @@ -797,14 +821,16 @@ ach: man: "crwdns8163:0crwdne8163:0" woman: "crwdns8165:0crwdne8165:0" export_is_running_you_ll_be_notified_when_its_ready: "crwdns8167:0crwdne8167:0" + create_plans_to_start: "crwdns20160:0crwdne20160:0" + click_here: "crwdns20162:0crwdne20162:0" stats_graphs: #statistics graphs statistics: "crwdns8169:0crwdne8169:0" data: "crwdns8171:0crwdne8171:0" day: "crwdns8173:0crwdne8173:0" week: "crwdns8175:0crwdne8175:0" - from_date: crwdns10119:0crwdne10119:0 - to_date: crwdns10121:0crwdne10121:0 + from_date: "crwdns19822:0crwdne19822:0" #eg: from 01/01 to 01/05 + to_date: "crwdns19824:0crwdne19824:0" #eg: from 01/01 to 01/05 month: "crwdns8181:0crwdne8181:0" start: "crwdns8183:0crwdne8183:0" end: "crwdns8185:0crwdne8185:0" @@ -829,7 +855,7 @@ ach: neutral: "crwdns8219:0crwdne8219:0" eg: "crwdns8221:0crwdne8221:0" about: "crwdns8223:0crwdne8223:0" - the_team: "crwdns19469:0crwdne19469:0" + the_team: "crwdns19826:0crwdne19826:0" male_preposition: "crwdns8225:0crwdne8225:0" female_preposition: "crwdns8227:0crwdne8227:0" neutral_preposition: "crwdns8229:0crwdne8229:0" @@ -866,9 +892,9 @@ ach: leave_it_empty_to_not_bring_up_any_news_on_the_home_page: "crwdns8291:0crwdne8291:0" twitter_stream: "crwdns8293:0crwdne8293:0" name_of_the_twitter_account: "crwdns8295:0crwdne8295:0" - link: "crwdns19471:0crwdne19471:0" - link_to_about: 'crwdns19473:0crwdne19473:0' - content: "crwdns19475:0crwdne19475:0" + link: "crwdns19828:0crwdne19828:0" + link_to_about: 'crwdns19830:0crwdne19830:0' + content: "crwdns19832:0crwdne19832:0" title_of_the_about_page: "crwdns8297:0crwdne8297:0" shift_enter_to_force_carriage_return: "crwdns8299:0crwdne8299:0" input_the_main_content: "crwdns8301:0crwdne8301:0" @@ -902,22 +928,22 @@ ach: space_explications_alert: "crwdns8357:0crwdne8357:0" main_color: "crwdns8359:0crwdne8359:0" secondary_color: "crwdns8361:0crwdne8361:0" - customize_home_page: "crwdns19477:0crwdne19477:0" - reset_home_page: "crwdns19479:0crwdne19479:0" - confirmation_required: "crwdns19481:0crwdne19481:0" - confirm_reset_home_page: "crwdns19483:0crwdne19483:0" - home_items: "crwdns19485:0crwdne19485:0" - item_news: "crwdns19487:0crwdne19487:0" - item_projects: "crwdns19489:0crwdne19489:0" - item_twitter: "crwdns19491:0crwdne19491:0" - item_members: "crwdns19493:0crwdne19493:0" - item_events: "crwdns19495:0crwdne19495:0" - home_content: "crwdns19497:0crwdne19497:0" - home_content_reset: "crwdns19499:0crwdne19499:0" - home_css: "crwdns19501:0crwdne19501:0" + customize_home_page: "crwdns19834:0crwdne19834:0" + reset_home_page: "crwdns19836:0crwdne19836:0" + confirmation_required: "crwdns19838:0crwdne19838:0" + confirm_reset_home_page: "crwdns19840:0crwdne19840:0" + home_items: "crwdns19842:0crwdne19842:0" + item_news: "crwdns19844:0crwdne19844:0" + item_projects: "crwdns19846:0crwdne19846:0" + item_twitter: "crwdns19848:0crwdne19848:0" + item_members: "crwdns19850:0crwdne19850:0" + item_events: "crwdns19852:0crwdne19852:0" + home_content: "crwdns19854:0crwdne19854:0" + home_content_reset: "crwdns19856:0crwdne19856:0" + home_css: "crwdns19858:0crwdne19858:0" home_blogpost: "crwdns8363:0crwdne8363:0" twitter_name: "crwdns8365:0crwdne8365:0" - link_name: "crwdns19503:0crwdne19503:0" + link_name: "crwdns19860:0crwdne19860:0" about_title: "crwdns8367:0crwdne8367:0" about_body: "crwdns8369:0crwdne8369:0" about_contacts: "crwdns8371:0crwdne8371:0" @@ -940,13 +966,13 @@ ach: display_name: "crwdns8405:0crwdne8405:0" display_name_enable: "crwdns8407:0crwdne8407:0" machines_sort_by: "crwdns8409:0crwdne8409:0" - fab_analytics: "crwdns19505:0crwdne19505:0" + fab_analytics: "crwdns19862:0crwdne19862:0" elements_ordering: "crwdns8411:0crwdne8411:0" machines_order: "crwdns8413:0crwdne8413:0" display_machines_sorted_by: "crwdns8415:0crwdne8415:0" - advanced: "crwdns19507:0crwdne19507:0" - customize_home_page_css: "crwdns19509:0crwdne19509:0" - home_css_notice_html: "crwdns19511:0crwdne19511:0" + advanced: "crwdns19864:0crwdne19864:0" + customize_home_page_css: "crwdns19866:0crwdne19866:0" + home_css_notice_html: "crwdns19868:0crwdne19868:0" sort_by: default: "crwdns8417:0crwdne8417:0" name: "crwdns8419:0crwdne8419:0" @@ -962,20 +988,21 @@ ach: publish_will_notify: "crwdns8437:0crwdne8437:0" publish: "crwdns8439:0crwdne8439:0" users_notified: "crwdns8441:0crwdne8441:0" - about_analytics: "crwdns19513:0crwdne19513:0" - read_more: "crwdns19515:0crwdne19515:0" + about_analytics: "crwdns19870:0crwdne19870:0" + read_more: "crwdns19872:0crwdne19872:0" analytics: - intro_analytics_html: "crwdns19517:0crwdne19517:0" - version: "crwdns19519:0crwdne19519:0" - members: "crwdns19521:0crwdne19521:0" - admins: "crwdns19523:0crwdne19523:0" - availabilities: "crwdns19525:0crwdne19525:0" - reservations: "crwdns19527:0crwdne19527:0" - plans: "crwdns19529:0crwdne19529:0" - spaces: "crwdns19531:0crwdne19531:0" - online_payment: "crwdns19533:0crwdne19533:0" - invoices: "crwdns19535:0crwdne19535:0" - openlab: "crwdns19537:0crwdne19537:0" + title: "crwdns19874:0crwdne19874:0" + intro_analytics_html: "crwdns19876:0crwdne19876:0" + version: "crwdns19878:0crwdne19878:0" + members: "crwdns19880:0crwdne19880:0" + admins: "crwdns19882:0crwdne19882:0" + availabilities: "crwdns19884:0crwdne19884:0" + reservations: "crwdns19886:0crwdne19886:0" + plans: "crwdns19888:0crwdne19888:0" + spaces: "crwdns19890:0crwdne19890:0" + online_payment: "crwdns19892:0crwdne19892:0" + invoices: "crwdns19894:0crwdne19894:0" + openlab: "crwdns19896:0crwdne19896:0" open_api_clients: add_new_client: "crwdns8443:0crwdne8443:0" api_documentation: "crwdns8445:0crwdne8445:0" @@ -1014,3 +1041,191 @@ ach: report_will_be_destroyed: "crwdns8499:0crwdne8499:0" report_removed: "crwdns8501:0crwdne8501:0" failed_to_remove: "crwdns8503:0crwdne8503:0" + tour: + conclusion: + title: "crwdns19898:0crwdne19898:0" + content: "crwdns20174:0crwdne20174:0" + trainings: + welcome: + title: "crwdns19902:0crwdne19902:0" + content: "crwdns19904:0crwdne19904:0" + trainings: + title: "crwdns19906:0crwdne19906:0" + content: "crwdns19908:0[Calendar]crwdne19908:0" + filter: + title: "crwdns19910:0crwdne19910:0" + content: "crwdns19912:0crwdne19912:0" + tracking: + title: "crwdns19914:0crwdne19914:0" + content: "crwdns19916:0crwdne19916:0" + calendar: + welcome: + title: "crwdns19918:0crwdne19918:0" + content: "crwdns19920:0crwdne19920:0" + agenda: + title: "crwdns19922:0crwdne19922:0" + content: "crwdns19924:0crwdne19924:0" + export: + title: "crwdns19926:0crwdne19926:0" + content: "crwdns19928:0crwdne19928:0" + import: + title: "crwdns19930:0crwdne19930:0" + content: "crwdns19932:0crwdne19932:0" + members: + welcome: + title: "crwdns19934:0crwdne19934:0" + content: "crwdns19936:0crwdne19936:0" + list: + title: "crwdns19938:0crwdne19938:0" + content: "crwdns19940:0crwdne19940:0" + search: + title: "crwdns19942:0crwdne19942:0" + content: "crwdns19944:0crwdne19944:0" + filter: + title: "crwdns19946:0crwdne19946:0" + content: "crwdns19948:0crwdne19948:0" + actions: + title: "crwdns19950:0crwdne19950:0" + content: "crwdns19952:0crwdne19952:0" + exports: + title: "crwdns19954:0crwdne19954:0" + content: "crwdns19956:0crwdne19956:0" + import: + title: "crwdns19958:0crwdne19958:0" + content: "crwdns19960:0crwdne19960:0" + admins: + title: "crwdns19962:0crwdne19962:0" + content: "crwdns19964:0crwdne19964:0" + groups: + title: "crwdns19966:0crwdne19966:0" + content: "crwdns20164:0crwdne20164:0" + labels: + title: "crwdns19970:0crwdne19970:0" + content: "crwdns19972:0crwdne19972:0" + sso: + title: "crwdns19974:0crwdne19974:0" + content: "crwdns19976:0crwdne19976:0" + invoices: + welcome: + title: "crwdns19978:0crwdne19978:0" + content: "crwdns19980:0crwdne19980:0" + list: + title: "crwdns19982:0crwdne19982:0" + content: "crwdns19984:0crwdne19984:0" + chained: + title: "crwdns19986:0crwdne19986:0" + content: "crwdns19988:0crwdne19988:0" + download: + title: "crwdns19990:0crwdne19990:0" + content: "crwdns19992:0crwdne19992:0" + refund: + title: "crwdns19994:0crwdne19994:0" + content: "crwdns19996:0crwdne19996:0" + settings: + title: "crwdns19998:0crwdne19998:0" + content: "crwdns20000:0crwdne20000:0" + codes: + title: "crwdns20002:0crwdne20002:0" + content: "crwdns20004:0crwdne20004:0" + export: + title: "crwdns20006:0crwdne20006:0" + content: "crwdns20008:0crwdne20008:0" + periods: + title: "crwdns20010:0crwdne20010:0" + content: "crwdns20012:0crwdne20012:0" + pricing: + welcome: + title: "crwdns20014:0crwdne20014:0" + content: "crwdns20016:0crwdne20016:0" + new_plan: + title: "crwdns20018:0crwdne20018:0" + content: "crwdns20020:0crwdne20020:0" + trainings: + title: "crwdns20022:0crwdne20022:0" + content: "crwdns20024:0crwdne20024:0" + machines: + title: "crwdns20026:0crwdne20026:0" + content: "crwdns20028:0crwdne20028:0" + spaces: + title: "crwdns20030:0crwdne20030:0" + content: "crwdns20032:0crwdne20032:0" + credits: + title: "crwdns20034:0crwdne20034:0" + content: "crwdns20036:0crwdne20036:0" + coupons: + title: "crwdns20038:0crwdne20038:0" + content: "crwdns20040:0crwdne20040:0" + events: + welcome: + title: "crwdns20042:0crwdne20042:0" + content: "crwdns20044:0crwdne20044:0" + list: + title: "crwdns20046:0crwdne20046:0" + content: "crwdns20048:0crwdne20048:0" + filter: + title: "crwdns20050:0crwdne20050:0" + content: "crwdns20052:0crwdne20052:0" + categories: + title: "crwdns20054:0crwdne20054:0" + content: "crwdns20056:0crwdne20056:0" + themes: + title: "crwdns20058:0crwdne20058:0" + content: "crwdns20060:0crwdne20060:0" + ages: + title: "crwdns20062:0crwdne20062:0" + content: "crwdns20064:0crwdne20064:0" + prices: + title: "crwdns20066:0crwdne20066:0" + content: "crwdns20068:0crwdne20068:0" + project_elements: + welcome: + title: "crwdns20070:0crwdne20070:0" + content: "crwdns20072:0crwdne20072:0" + abuses: + title: "crwdns20074:0crwdne20074:0" + content: "crwdns20076:0crwdne20076:0" + statistics: + welcome: + title: "crwdns20078:0crwdne20078:0" + content: "crwdns20080:0crwdne20080:0" + export: + title: "crwdns20082:0crwdne20082:0" + content: "crwdns20084:0crwdne20084:0" + trending: + title: "crwdns20086:0crwdne20086:0" + content: "crwdns20088:0crwdne20088:0" + settings: + welcome: + title: "crwdns20090:0crwdne20090:0" + content: "crwdns20092:0crwdne20092:0" + home: + title: "crwdns20094:0crwdne20094:0" + content: "crwdns20096:0crwdne20096:0" + components: + title: "crwdns20098:0crwdne20098:0" + content: "crwdns20100:0crwdne20100:0" + codeview: + title: "crwdns20102:0crwdne20102:0" + content: "crwdns20104:0crwdne20104:0" + reset: + title: "crwdns20106:0crwdne20106:0" + content: "crwdns20108:0crwdne20108:0" + css: + title: "crwdns20110:0crwdne20110:0" + content: "crwdns20112:0crwdne20112:0" + about: + title: "crwdns20114:0crwdne20114:0" + content: "crwdns20116:0crwdne20116:0" + privacy: + title: "crwdns20118:0crwdne20118:0" + content: "crwdns20120:0crwdne20120:0" + draft: + title: "crwdns20122:0crwdne20122:0" + content: "crwdns20124:0crwdne20124:0" + open_api: + welcome: + title: "crwdns20126:0crwdne20126:0" + content: "crwdns20128:0crwdne20128:0" + doc: + title: "crwdns20130:0crwdne20130:0" + content: "crwdns20132:0crwdne20132:0" From 88648202b6b01be1faf5802a2230b2c034a94440 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:53:55 +0100 Subject: [PATCH 007/136] New translations rails.en.yml (Acholi) --- config/locales/rails.ach.yml | 54 ++++++++++++++++++------------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/config/locales/rails.ach.yml b/config/locales/rails.ach.yml index 59db18b20..ebbd2611c 100644 --- a/config/locales/rails.ach.yml +++ b/config/locales/rails.ach.yml @@ -31,9 +31,9 @@ ach: - crwdns4265:0crwdne4265:0 - crwdns4267:0crwdne4267:0 formats: - default: "%Y-%m-%d" - long: "%B %d, %Y" - short: "%b %d" + default: "crwdns4269:0%Y-%m-%dcrwdne4269:0" + long: "crwdns4271:0%Bcrwdnd4271:0%dcrwdnd4271:0%Ycrwdne4271:0" + short: "crwdns4273:0%bcrwdnd4273:0%dcrwdne4273:0" month_names: - - crwdns4275:0crwdne4275:0 @@ -49,9 +49,9 @@ ach: - crwdns4295:0crwdne4295:0 - crwdns4297:0crwdne4297:0 order: - - :year - - :month - - :day + - crwdns4299:0crwdne4299:0 + - crwdns4301:0crwdne4301:0 + - crwdns4303:0crwdne4303:0 datetime: distance_in_words: about_x_hours: @@ -146,36 +146,36 @@ ach: number: currency: format: - delimiter: "," - format: "%u%n" - precision: 2 - separator: "." + delimiter: "crwdns4407:0crwdne4407:0" + format: "crwdns4409:0%ucrwdnd4409:0%ncrwdne4409:0" + precision: 0 + separator: "crwdns4413:0crwdne4413:0" significant: false strip_insignificant_zeros: false - unit: "$" + unit: "crwdns4415:0crwdne4415:0" format: - delimiter: "," - precision: 3 - separator: "." + delimiter: "crwdns4417:0crwdne4417:0" + precision: 0 + separator: "crwdns4421:0crwdne4421:0" significant: false strip_insignificant_zeros: false human: decimal_units: - format: "%n %u" + format: "crwdns4423:0%ncrwdnd4423:0%ucrwdne4423:0" units: billion: crwdns4425:0crwdne4425:0 million: crwdns4427:0crwdne4427:0 quadrillion: crwdns4429:0crwdne4429:0 thousand: crwdns4431:0crwdne4431:0 trillion: crwdns4433:0crwdne4433:0 - unit: '' + unit: 'crwdns4435:0crwdne4435:0' format: - delimiter: '' - precision: 3 + delimiter: 'crwdns4437:0crwdne4437:0' + precision: 0 significant: true strip_insignificant_zeros: true storage_units: - format: "%n %u" + format: "crwdns4441:0%ncrwdnd4441:0%ucrwdne4441:0" units: byte: one: crwdns4443:1crwdne4443:1 @@ -186,20 +186,20 @@ ach: tb: crwdns4451:0crwdne4451:0 percentage: format: - delimiter: '' - format: "%n%" + delimiter: 'crwdns4453:0crwdne4453:0' + format: "crwdns4455:0%ncrwdne4455:0" precision: format: - delimiter: '' + delimiter: 'crwdns4457:0crwdne4457:0' support: array: last_word_connector: "crwdns4459:0crwdne4459:0" two_words_connector: "crwdns4461:0crwdne4461:0" words_connector: "crwdns4463:0crwdne4463:0" time: - am: am + am: crwdns4465:0crwdne4465:0 formats: - default: "%a, %d %b %Y %H:%M:%S %z" - long: "%B %d, %Y %H:%M" - short: "%d %b %H:%M" - pm: pm + default: "crwdns4467:0%acrwdnd4467:0%dcrwdnd4467:0%bcrwdnd4467:0%Ycrwdnd4467:0%H:%M:%Scrwdnd4467:0%zcrwdne4467:0" + long: "crwdns4469:0%Bcrwdnd4469:0%dcrwdnd4469:0%Ycrwdnd4469:0%H:%Mcrwdne4469:0" + short: "crwdns4471:0%dcrwdnd4471:0%bcrwdnd4471:0%H:%Mcrwdne4471:0" + pm: crwdns4473:0crwdne4473:0 From b66b0b4ba934048b0fed498d93e1539e2683861f Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:53:56 +0100 Subject: [PATCH 008/136] New translations mails.en.yml (Acholi) --- config/locales/mails.ach.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/mails.ach.yml b/config/locales/mails.ach.yml index d1efe86e3..1f8bed984 100644 --- a/config/locales/mails.ach.yml +++ b/config/locales/mails.ach.yml @@ -250,7 +250,7 @@ ach: this_coupon_is_valid_USAGE_times_until_DATE_for_all_your_purchases: "crwdns4187:0USAGE={USAGE}crwdnd4187:0TYPE={TYPE}crwdnd4187:0DATE={DATE}crwdnd4187:0DATE={DATE}crwdne4187:0" notify_admin_free_disk_space: subject: "crwdns4189:0crwdne4189:0" - body: "crwdns4191:0%{THRESHOLD}crwdnd4191:0%{AVAILABLE}crwdne4191:0" + body: "crwdns20156:0%{THRESHOLD}crwdnd20156:0%{AVAILABLE}crwdne20156:0" notify_admin_close_period_reminder: subject: "crwdns4193:0crwdne4193:0" body: From 0bbc3005841ff5f0e92d714374aa01cf46f9cec5 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:53:58 +0100 Subject: [PATCH 009/136] New translations devise.en.yml (Acholi) --- config/locales/devise.ach.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/config/locales/devise.ach.yml b/config/locales/devise.ach.yml index b6b4e5736..5f8010b6f 100644 --- a/config/locales/devise.ach.yml +++ b/config/locales/devise.ach.yml @@ -14,16 +14,16 @@ ach: not_found_in_database: "crwdns3787:0crwdne3787:0" timeout: "crwdns3789:0crwdne3789:0" unauthenticated: "crwdns3791:0crwdne3791:0" - unconfirmed: "crwdns3793:0crwdne3793:0" + unconfirmed: "crwdns19573:0crwdne19573:0" mailer: confirmation_instructions: - action: crwdns3795:0crwdne3795:0 - instruction: crwdns3797:0crwdne3797:0 + action: "crwdns20182:0crwdne20182:0" + instruction: "crwdns20184:0crwdne20184:0" subject: "crwdns3799:0crwdne3799:0" reset_password_instructions: - action: crwdns3801:0crwdne3801:0 - instruction: crwdns3803:0crwdne3803:0 - ignore_otherwise: crwdns3805:0crwdne3805:0 + action: "crwdns20186:0crwdne20186:0" + instruction: "crwdns20188:0crwdne20188:0" + ignore_otherwise: "crwdns20190:0crwdne20190:0" subject: "crwdns3807:0crwdne3807:0" unlock_instructions: subject: "crwdns3809:0crwdne3809:0" @@ -53,10 +53,10 @@ ach: unlocked: "crwdns3847:0crwdne3847:0" errors: messages: - already_confirmed: "crwdns3849:0crwdne3849:0" + already_confirmed: "crwdns19575:0crwdne19575:0" confirmation_period_expired: "crwdns3851:0%{period}crwdne3851:0" expired: "crwdns3853:0crwdne3853:0" - not_found: "crwdns3855:0crwdne3855:0" + not_found: "crwdns19577:0crwdne19577:0" not_locked: "crwdns3857:0crwdne3857:0" not_saved: one: "crwdns3859:1%{resource}crwdne3859:1" From de5ac12906c01be283dc718d10c33efd1e4abcd1 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:53:59 +0100 Subject: [PATCH 010/136] New translations en.yml (Acholi) --- config/locales/ach.yml | 65 ++++++++++++------------------------------ 1 file changed, 18 insertions(+), 47 deletions(-) diff --git a/config/locales/ach.yml b/config/locales/ach.yml index 6a335e902..42d9408a1 100644 --- a/config/locales/ach.yml +++ b/config/locales/ach.yml @@ -1,6 +1,6 @@ ach: + #subscription plan duration duration: - #subscription plan duration year: one: 'crwdns3157:1crwdne3157:1' other: 'crwdns3157:5%{count}crwdne3157:5' @@ -10,13 +10,9 @@ ach: week: one: 'crwdns3161:1crwdne3161:1' other: 'crwdns3161:5%{count}crwdne3161:5' - time: - formats: - # See http://apidock.com/ruby/DateTime/strftime for a list of available directives - hour_minute: "%I:%M %p" errors: + #CarrierWave messages: - #CarrierWave carrierwave_processing_error: "crwdns3165:0crwdne3165:0" carrierwave_integrity_error: "crwdns3167:0crwdne3167:0" carrierwave_download_error: "crwdns3169:0crwdne3169:0" @@ -40,55 +36,29 @@ ach: end_before_start: "crwdns3205:0%{START}crwdne3205:0" invalid_duration: "crwdns3207:0%{DAYS}crwdne3207:0" must_be_in_the_past: "crwdns3209:0crwdne3209:0" - activemodel: - errors: - messages: - carrierwave_processing_error: crwdns3211:0crwdne3211:0 - carrierwave_integrity_error: crwdns3213:0crwdne3213:0 - carrierwave_download_error: crwdns3215:0crwdne3215:0 - extension_white_list_error: crwdns3217:0%{extension}crwdnd3217:0%{allowed_types}crwdne3217:0 - extension_black_list_error: crwdns3219:0%{extension}crwdnd3219:0%{prohibited_types}crwdne3219:0 - rmagick_processing_error: crwdns3221:0%{e}crwdne3221:0 - mime_types_processing_error: crwdns3223:0%{e}crwdne3223:0 - mini_magick_processing_error: crwdns3225:0%{e}crwdne3225:0 - wrong_size: crwdns3227:0%{file_size}crwdne3227:0 - size_too_small: crwdns3229:0%{file_size}crwdne3229:0 - size_too_big: crwdns3231:0%{file_size}crwdne3231:0 - export_not_found: crwdns3233:0crwdne3233:0 - percentage_out_of_range: crwdns3235:0crwdne3235:0 - cannot_be_blank_at_same_time: crwdns3237:0%{field}crwdne3237:0 - cannot_be_in_the_past: crwdns3239:0crwdne3239:0 - cannot_be_before_previous_value: crwdns3241:0crwdne3241:0 - cannot_overlap: crwdns3243:0crwdne3243:0 - cannot_encompass: crwdns3245:0crwdne3245:0 - in_closed_period: crwdns3247:0crwdne3247:0 - invalid_footprint: crwdns3249:0crwdne3249:0 - end_before_start: crwdns3251:0%{START}crwdne3251:0 - invalid_duration: crwdns3253:0%{DAYS}crwdne3253:0 - must_be_in_the_past: crwdns3255:0crwdne3255:0 apipie: api_documentation: "crwdns3257:0crwdne3257:0" + #error messages when importing an account from a SSO omniauth: - #error messages when importing an account from a SSO email_already_linked_to_another_account_please_input_your_authentication_code: "crwdns3259:0%{OLD_MAIL}crwdne3259:0" your_username_is_already_linked_to_another_account_unable_to_update_it: "crwdns3261:0%{USERNAME}crwdne3261:0" your_email_address_is_already_linked_to_another_account_unable_to_update_it: "crwdns3263:0%{EMAIL}crwdne3263:0" this_account_is_already_linked_to_an_user_of_the_platform: "crwdns3265:0%{NAME}crwdne3265:0" + #availability slots in the calendar availabilities: - #availability slots in the calendar not_available: "crwdns3267:0crwdne3267:0" i_ve_reserved: "crwdns3269:0crwdne3269:0" length_must_be_slot_multiple: "crwdns3271:0%{MIN}crwdne3271:0" must_be_associated_with_at_least_1_machine: "crwdns3273:0crwdne3273:0" + #members management members: - #members management unable_to_change_the_group_while_a_subscription_is_running: "crwdns3275:0crwdne3275:0" please_input_the_authentication_code_sent_to_the_address: "crwdns3277:0%{EMAIL}crwdne3277:0" your_authentication_code_is_not_valid: "crwdns3279:0crwdne3279:0" current_authentication_method_no_code: "crwdns3281:0crwdne3281:0" requested_account_does_not_exists: "crwdns3283:0crwdne3283:0" + #PDF invoices generation invoices: - #PDF invoices generation refund_invoice_reference: "crwdns3285:0%{REF}crwdne3285:0" invoice_reference: "crwdns3287:0%{REF}crwdne3287:0" code: "crwdns3289:0%{CODE}crwdne3289:0" @@ -139,6 +109,7 @@ ach: subscription_of_NAME_for_DURATION_starting_from_DATE: "crwdns3371:0%{NAME}crwdnd3371:0%{DURATION}crwdnd3371:0%{DATE}crwdne3371:0" subscription_of_NAME_extended_starting_from_STARTDATE_until_ENDDATE: "crwdns3373:0%{NAME}crwdnd3373:0%{STARTDATE}crwdnd3373:0%{ENDDATE}crwdne3373:0" and: 'crwdns3375:0crwdne3375:0' + #CVS accounting export (columns headers) accounting_export: journal_code: "crwdns3377:0crwdne3377:0" date: "crwdns3379:0crwdne3379:0" @@ -158,19 +129,19 @@ ach: Event_reservation: "crwdns3407:0crwdne3407:0" Space_reservation: "crwdns3409:0crwdne3409:0" wallet: "crwdns3411:0crwdne3411:0" + #training availabilities trainings: - #training availabilities i_ve_reserved: "crwdns3413:0crwdne3413:0" completed: "crwdns3415:0crwdne3415:0" + #error messages when updating an event events: - #error messages when updating an event error_deleting_reserved_price: "crwdns3417:0crwdne3417:0" other_error: "crwdns3419:0crwdne3419:0" #event duration from_STARTDATE_to_ENDDATE: "crwdns3421:0%{STARTDATE}crwdnd3421:0%{ENDDATE}crwdne3421:0" from_STARTTIME_to_ENDTIME: "crwdns3423:0%{STARTTIME}crwdnd3423:0%{ENDTIME}crwdne3423:0" + #members list export to EXCEL format export_members: - #members list export to EXCEL format members: "crwdns3425:0crwdne3425:0" id: "crwdns3427:0crwdne3427:0" surname: "crwdns3429:0crwdne3429:0" @@ -201,8 +172,8 @@ ach: man: "crwdns3479:0crwdne3479:0" woman: "crwdns3481:0crwdne3481:0" without_subscriptions: "crwdns3483:0crwdne3483:0" + #machines/trainings/events reservations list to EXCEL format export_reservations: - #machines/trainings/events reservations list to EXCEL format reservations: "crwdns3485:0crwdne3485:0" customer_id: "crwdns3487:0crwdne3487:0" customer: "crwdns3489:0crwdne3489:0" @@ -214,8 +185,8 @@ ach: payment_method: "crwdns3501:0crwdne3501:0" local_payment: "crwdns3503:0crwdne3503:0" online_payment: "crwdns3505:0crwdne3505:0" + #subscriptions list export to EXCEL format export_subscriptions: - #subscriptions list export to EXCEL format subscriptions: "crwdns3507:0crwdne3507:0" id: "crwdns3509:0crwdne3509:0" customer: "crwdns3511:0crwdne3511:0" @@ -228,8 +199,8 @@ ach: payment_method: "crwdns3525:0crwdne3525:0" local_payment: "crwdns3527:0crwdne3527:0" online_payment: "crwdns3529:0crwdne3529:0" + #reservation slots export, by type, to EXCEL format export_availabilities: - #reservation slots export, by type, to EXCEL format machines: "crwdns3531:0crwdne3531:0" trainings: "crwdns3533:0crwdne3533:0" spaces: "crwdns3535:0crwdne3535:0" @@ -244,15 +215,15 @@ ach: reservations: "crwdns3553:0crwdne3553:0" available_seats: "crwdns3555:0crwdne3555:0" api: + #internal app notifications notifications: - #internal app notifications deleted_user: "crwdns3557:0crwdne3557:0" notify_admin_abuse_reported: an_abuse_was_reported_on_TYPE_ID_NAME_html: "crwdns3559:0%{TYPE}crwdnd3559:0%{ID}crwdnd3559:0%{NAME}crwdne3559:0" notify_admin_member_create_reservation: a_RESERVABLE_reservation_was_made_by_USER_html: "crwdns3561:0%{RESERVABLE}crwdnd3561:0%{USER}crwdne3561:0" notify_admin_profile_complete: - account_imported_from_PROVIDER_UID_has_completed_its_information_html: "crwdns3563:0%{PROVIDER}crwdnd3563:0%{UID}crwdne3563:0" + account_imported_from_PROVIDER_UID_has_completed_its_information_html: "crwdns20158:0%{PROVIDER}crwdnd20158:0%{UID}crwdne20158:0" notify_admin_slot_is_canceled: USER_s_reservation_on_the_DATE_was_cancelled_remember_to_generate_a_refund_invoice_if_applicable_html: "crwdns3565:0%{USER}crwdnd3565:0%{DATE}crwdne3565:0" notify_admin_slot_is_modified: @@ -358,8 +329,8 @@ ach: click_to_show: "crwdns3687:0crwdne3687:0" notify_admin_refund_created: refund_created: "crwdns4559:0%{AMOUNT}crwdnd4559:0%{USER}crwdne4559:0" + #statistics tools for admins statistics: - #statistics tools for admins subscriptions: "crwdns3689:0crwdne3689:0" machines_hours: "crwdns4561:0crwdne4561:0" spaces: "crwdns3693:0crwdne3693:0" @@ -385,8 +356,8 @@ ach: revenue: "crwdns3733:0crwdne3733:0" account_creation: "crwdns3735:0crwdne3735:0" project_publication: "crwdns3737:0crwdne3737:0" + #statistics exports to the excel file format export: - #statistics exports to the excel file format entries: "crwdns3739:0crwdne3739:0" revenue: "crwdns3741:0crwdne3741:0" average_age: "crwdns3743:0crwdne3743:0" @@ -400,8 +371,8 @@ ach: type: "crwdns3759:0crwdne3759:0" male: "crwdns3761:0crwdne3761:0" female: "crwdns3763:0crwdne3763:0" + #initial price's category for events, created to replace the old "reduced amount" property price_category: - #initial price's category for events, created to replace the old "reduced amount" property reduced_fare: "crwdns3765:0crwdne3765:0" reduced_fare_if_you_are_under_25_student_or_unemployed: "crwdns3767:0crwdne3767:0" group: From 6cb0124c944ececbda9b35eb28353c532f4260c4 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:54:01 +0100 Subject: [PATCH 011/136] New translations app.shared.en.yml (Spanish) --- config/locales/app.shared.es.yml | 54 +++++++++++++++----------------- 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/config/locales/app.shared.es.yml b/config/locales/app.shared.es.yml index 742e82504..d3bfee661 100644 --- a/config/locales/app.shared.es.yml +++ b/config/locales/app.shared.es.yml @@ -1,8 +1,8 @@ es: app: shared: + #translations of common buttons buttons: - #translations of common buttons confirm_changes: "Confirmar cambios" consult: "Consultar" edit: "Editar" @@ -22,8 +22,8 @@ es: you_will_lose_any_unsaved_modification_if_you_quit_this_page: "Si cierra la página se perderán todas las modificaciones que no se hayan guardado" you_will_lose_any_unsaved_modification_if_you_reload_this_page: "Si recarga la página se perderán todas las modificaciones que no se hayan guardado" payment_card_error: "A problem has occurred with your credit card:" + #user edition form user: - #user edition form man: "Man" woman: "Woman" add_an_avatar: "Añadir un avatar" @@ -62,8 +62,8 @@ es: used_for_invoicing: "This data will be used for billing purposes" used_for_reservation: "This data will be used in case of change on one of your bookings" used_for_profile: "This data will only be displayed on your profile" + #project edition form project: - #project edition form name: "Name" name_is_required: "Name is required." illustration: "Ilustración" @@ -91,8 +91,8 @@ es: themes: "Themes" tags: "Tags" save_as_draft: "Save as draft" + #machine edition form machine: - #machine edition form name: "Nombre" name_is_required: "Se requiere un nombre." illustration: "Ilustración" @@ -106,28 +106,28 @@ es: add_an_attachment: "añadir archivo adjunto" disable_machine: "Disable machine" validate_your_machine: "Validar su máquina" + #frame to select a plan to subscribe plan_subscribe: - #frame to select a plan to subscribe subscribe_online: "suscribirse online" do_not_subscribe: "no suscribe" + #admin: choose a member to interact with member_select: - #admin: choose a member to interact with select_a_member: "Selecciona un miembro" start_typing: "Empezar a escribir..." + #stripe payment modal stripe: - #stripe payment modal online_payment: "Online payment" i_have_read_and_accept_: "He leido y acepto" _the_general_terms_and_conditions: "Los términos y condiciones." credit_amount_for_pay_reservation: "{amount} {currency} falta por pagar para efectuar su reserva" client_credit_amount_for_pay_reservation: "{amount} {currency} falta por pagar para efectuar la reserva del cliente" confirm_payment_of_: "Pay: {AMOUNT}" + #dialog of on site payment for reservations valid_reservation_modal: - #dialog of on site payment for reservations booking_confirmation: "Confirmar reserva" here_is_the_summary_of_the_slots_to_book_for_the_current_user: "Resumen de los espacios reservados por el usuario actual:" + #event edition form event: - #event edition form title: "Title" title_is_required: "Se requiere un título." matching_visual: "Coincidencia visual" @@ -151,8 +151,8 @@ es: tickets_available: "Entradas disponibles" event_theme: "Tema del evento" age_range: "Rango de edades" + #subscription plan edition form plan: - #subscription plan edition form general_information: "Información general" name: "Nombre" name_is_required: "Se requiere un nombre." @@ -193,8 +193,8 @@ es: email_address_is_required: "Se requiere un mail." disabled: "Disable subscription" disable_plan_will_not_unsubscribe_users: "Beware: disabling this plan won't unsubscribe users having active subscriptions with it." + #training edition form trainings: - #training edition form name: "Nombre" name_is_required: "Se requiere un nombre." illustration: "Ilustración" @@ -207,8 +207,8 @@ es: number_of_tickets: "Número de entradas" public_page: "Hacer curso público" disable_training: "Disable the training" + #partial form to edit/create an user (admin view) user_admin: - #partial form to edit/create an user (admin view) user: "User" incomplete_profile: "Incomplete profile" user_profile: "Profil utilisateur" @@ -217,8 +217,8 @@ es: group_is_required: "Se requiere un grupo" trainings: "Cursos" tags: "Tags" + #partial form to edit/create an authentication provider (SSO) authentication: - #partial form to edit/create an authentication provider (SSO) name: "Nombre" provider_name_is_required: "Se requiere el nombre del proveedor." authentication_type: "Tipo de autenticación" @@ -229,8 +229,8 @@ es: expected_data_type: "Tipo de datos esperado" input_format: "Formato de entrada" mappings: "Mapeos" + #edition/creation form of an OAuth2 authentication provider oauth2: - #edition/creation form of an OAuth2 authentication provider common_url: "URL común" common_url_is_required: "se requiere una URL común." provided_url_is_not_a_valid_url: "La URL cedida no es válida." @@ -253,27 +253,25 @@ es: api_endpoint_url: "API final de URL" api_type: "Tipo de API" api_fields: "Campos de API" + #machine/training slot modification modal confirm_modify_slot_modal: - #machine/training slot modification modal change_the_slot: "Cambiar la ranura" do_you_want_to_change_your_booking_slot_initially_planned_at: "Desea cambiar su reserva efectuada inicialmente el:" do_you_want_to_change_NAME_s_booking_slot_initially_planned_at: "Desea cambiar la reserva de {NAME} , efectuada inicialmente el:" cancel_this_reservation: "Cancelar reserva" i_want_to_change_date: "Quiero cambiar la fecha" - + #modal introducing that a training is requested before booking a machine request_training_modal: - #modal introducing that a training is requested before booking a machine to_book_the_MACHINE_you_must_have_completed_the_TRAINING: "Para reservar \"{MACHINE}\" debes haber completado el curso: {TRAINING}." register_for_the_training: "Apuntarse al curso" i_dont_want_to_register_now: "No quiero apuntarme aún" - + #modal introducing that a user must wait for his training being validated before booking a machine training_reservation_modal: - #modal introducing that a user must wait for his training being validated before booking a machine machine_reservation: "Reserva de máquina" you_must_wait_for_your_training_is_being_validated_by_the_fablab_team_to_book_this_machine: "Debes esperar a que el Fablab valide tu curso para reservar la máquina." your_training_will_occur_: "Tu curso será realizado" + #user public profile public_profile: - #user public profile last_activity_html: "Last activity
on {DATE}" to_come: "por llegar" approved: "aprobada" @@ -287,8 +285,8 @@ es: email_address: "Email address" trainings: "Trainings" no_trainings: "No trainings" + #wallet wallet: - #wallet wallet: 'Cartera' your_wallet_amount: 'Su dinero disponible' wallet_amount: 'Cantidad disponible' @@ -323,8 +321,8 @@ es: debit_reservation_machine: "Débito por reserva de máquina" debit_reservation_event: "Débito por reserva de evento" warning_uneditable_credit: "ADVERTENCIA: una vez validada la reserva no podrá modificarse el pago." + #promotional coupon (creation/edition form) coupon: - #promotional coupon (creation/edition form) name: "Nombre" name_is_required: "Name is required." code: "Código" @@ -346,8 +344,8 @@ es: max_usages: "Usos máximos permitidos" max_usages_must_be_equal_or_greater_than_0: "El número de usos máximos permitidos debe ser mayor que 0." enabled: "Activo" + #coupon (input zone for users) coupon_input: - #coupon (input zone for users) i_have_a_coupon: "I have a coupon!" code_: "Code:" the_coupon_has_been_applied_you_get_PERCENT_discount: "Se ha aplicado el cupón {PERCENT}% de descuento." @@ -359,8 +357,8 @@ es: unable_to_apply_the_coupon_because_amount_exceeded: "No se puede aplicar el cupón: el descuento excede el monto total de esta compra." unable_to_apply_the_coupon_because_undefined: "No se puede aplicar el cupón: se ha producido un error inesperado, póngase en contacto con el gerente del Fablab." unable_to_apply_the_coupon_because_rejected: "Este código no existe." + #form to create/edit a space space: - #form to create/edit a space name: "Nombre" name_is_required: "Se requiere un nombre." illustration: "Ilustración" @@ -375,8 +373,8 @@ es: default_places: "Máximo de entradas predeterminado" default_places_is_required: "Se requiere un máximo de entradas predeterminado." disable_space: "Disable space" + #shopping cart module for reservations cart: - #module de panier d'achat de réservations summary: "Resumen" select_one_or_more_slots_in_the_calendar: "Selecciona uno {SINGLE, select, true{slot} other{or more slots}} en el calendario" you_ve_just_selected_the_slot: "Acaba de seleccionar el espacio :" @@ -406,15 +404,15 @@ es: tags_of_the_destination_slot: "Etiquetas del espacio final:" confirm_my_modification: "Confirmar modificación" your_booking_slot_was_successfully_moved_from_: "Tu reserva de espacio ha sido reemplazada con éxito" - to_date: "a" #eg: from 01/01 to 01/05 + to_date: "a" #eg. from 01/01 to 01/05 please_select_a_member_first: "Por favor, selecciona un miembro de la lista" - unable_to_select_plan_if_slots_in_the_past: 'No se puede seleccionar un plan si alguno de los espacios seleccionados está en el pasado' + unable_to_select_plan_if_slots_in_the_past: "No se puede seleccionar un plan si alguno de los espacios seleccionados está en el pasado" unable_to_change_the_reservation: "Imposible cambiar reserva" confirmation_required: "Confirmación requerida" do_you_really_want_to_cancel_this_reservation: "¿Está seguro de querer cancelar la reserva?" reservation_was_cancelled_successfully: "La reserva se ha cancelado con éxito." cancellation_failed: "Cancelación fallida." - confirm_payment_of_html: "{ROLE, select, admin{Payment on site} other{Pay}}: {AMOUNT}" #(context: confirm my payment of $20.00) + confirm_payment_of_html: "{ROLE, select, admin{Payment on site} other{Pay}}: {AMOUNT}" #eg. confirm my payment of $20.00 a_problem_occurred_during_the_payment_process_please_try_again_later: "A problem occurred during the payment process. Please try again later." none: "Ninguno" online_payment_disabled: "El pago en línea no está disponible. Póngase en contacto directamente con la recepción de Fablab." From 812081148180702edea82e237fc9fbc968705b3e Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:54:04 +0100 Subject: [PATCH 012/136] New translations app.public.en.yml (Spanish) --- config/locales/app.public.es.yml | 34 ++++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/config/locales/app.public.es.yml b/config/locales/app.public.es.yml index 16525e472..d18bd3860 100644 --- a/config/locales/app.public.es.yml +++ b/config/locales/app.public.es.yml @@ -1,8 +1,8 @@ es: app: public: + #header and "about" page common: - #header and "about" page about_the_fablab: "Acerca de {GENDER, select, male{el} female{la} neutral{} other{las}} {NAME}" return: "Volver" #cookies @@ -121,19 +121,19 @@ es: how_to: "How to upgrade?" #Notifications and_NUMBER_other_notifications: "y {NUMBER, plural, =0{no other notifications} =1{one other notification} otras{{NUMBER} other notifications}}..." + #about page about: - #about page read_the_fablab_policy: "Leer la politica del FabLab" read_the_fablab_s_general_terms_and_conditions: "Leer los terminos y condiciones del FabLab" your_fablab_s_contacts: "Sus contactos del FabLab" privacy_policy: "Política de privacidad" + #'privacy policy' page privacy: - #'privacy policy' page title: "Política de privacidad" dpo: "Oficial de protección de datos" last_update: "Última actualización," + #home page home: - #home page latest_documented_projects: "Los últimos proyectos documentados" follow_us: "Siguenos" latest_tweets: "Los últimos tweets" @@ -151,8 +151,8 @@ es: full_price: "Precio final" event_full: "Evento lleno" still_available: "Available place(s)" + #projects gallery projects_list: - #projects gallery the_fablab_projects: "Los proyectos del FabLab" add_a_project: "Añadir un proyecto" search_over_the_whole_network: "Buscar en toda la red de FabLab" @@ -169,8 +169,8 @@ es: all_materials: "Todo el material" load_next_projects: "Cargar más proyectos" rough_draft: "Borrador" + #details of a projet projects_show: - #details of a projet rough_draft: "Draft" project_description: "Descripción de proyecto" by_name: "Por {NAME}" @@ -198,8 +198,8 @@ es: message_is_required: "El mensaje es obligatorio." report: "Reportar" do_you_really_want_to_delete_this_project: "¿Está seguro de querer eliminar este proyecto?" + #list of machines machines_list: - #list of machines the_fablab_s_machines: "Las máquinas del FabLab" add_a_machine: "Añadir una máquina" new_availability: "Open reservations" @@ -208,8 +208,8 @@ es: status_enabled: "Activas" status_disabled: "No activas" status_all: "Todas" + #details of a machine machines_show: - #details of a machine book_this_machine: "Alquilar máquina" technical_specifications: "Technical specifications" files_to_download: "Archivos a descargar" @@ -219,19 +219,19 @@ es: do_you_really_want_to_delete_this_machine: "¿Está seguro de querer eliminar esta máquina?" unauthorized_operation: "Unauthorized operation" the_machine_cant_be_deleted_because_it_is_already_reserved_by_some_users: "La máquina no puede borrarse porque está siendo usada o ha sido reservada por algún usuario." + #list of trainings trainings_list: - #list of trainings book: "Reservar" the_trainings: "Lista de cursos" + #details of a training training_show: - #details of a training book_this_training: "reservar plaza en este curso" do_you_really_want_to_delete_this_training: "Está seguro de querer eliminar este curso?" unauthorized_operation: "Operación no autorizada" confirmation_required: "Confirmation required" the_training_cant_be_deleted_because_it_is_already_reserved_by_some_users: "El curso no puede borrarse porque ya ha sido reservado por algún usuario." + #summary of the subscriptions plans: - #summary of the subscriptions subscriptions: "Suscripciones" i_choose_that_plan: "Elijo este plan" i_subscribe_online: "Suscribirme online" @@ -259,8 +259,8 @@ es: here_is_the_NAME_subscription_summary: "Resumen de la suscrpición de {NAME}:" confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" #(contexte : validate a payment of $20,00) online_payment_disabled: "Payment by credit card is not available. Please contact the Fablab's reception directly." + #Fablab's events list events_list: - #Fablab's events list the_fablab_s_events: "Los eventos del FabLab" all_categories: "Todas las categorías" for_all: "Para todo" @@ -274,8 +274,8 @@ es: full_price_: "Full price:" to_date: "to" #eg. from 01/01 to 01/05 all_themes: "All themes" + #details and booking of an event events_show: - #details and booking of an event event_description: "Descripción del evento" downloadable_documents: "Archivos descargables" information_and_booking: "Información y reservas" @@ -285,7 +285,7 @@ es: opening_hours: "Hora de apertura:" all_day: "All day" from_time: "From" #eg. from 18:00 to 21:00 - to_time: "to" #eg. from 18:00 to 21:00 + to_time: "to" #eg. from 18:00 to 21:00 full_price_: "Full price:" tickets_still_availables: "Entradas disponibles:" sold_out: "Entradas vendidas." @@ -324,8 +324,8 @@ es: view_event_list: "View events to come" share_on_facebook: "Share on Facebook" share_on_twitter: "Share on Twitter" + #public calendar calendar: - #public calendar calendar: "Calendario" show_unavailables: "Mostrar campos inválidos" filter_calendar: "Filtrar calendario" @@ -334,8 +334,8 @@ es: spaces: "Espacios" events: "Eventos" externals: "Otros calendarios" + #list of spaces spaces_list: - #list of spaces the_spaces: "Espacios" new_availability: "Open reservations" add_a_space: "Añadir espacios" @@ -343,8 +343,8 @@ es: status_disabled: "No activos" status_all: "Todos" book: "Reservar" + #display the details of a space space_show: - #display the details of a space book_this_space: "Reservar este espacio" unauthorized_operation: "Operación no autorizada" confirmation_required: "Confirmación requerida" From dc7a36e4008e64d18ff7a2224785a78b44cf9aa3 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:54:05 +0100 Subject: [PATCH 013/136] New translations app.logged.en.yml (Spanish) --- config/locales/app.logged.es.yml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/config/locales/app.logged.es.yml b/config/locales/app.logged.es.yml index faf628241..c7cfa86e8 100644 --- a/config/locales/app.logged.es.yml +++ b/config/locales/app.logged.es.yml @@ -2,7 +2,7 @@ es: app: logged: profile_completion: - # user's profile completion page when logging from an SSO provider + #user's profile completion page when logging from an SSO provider confirm_your_new_account: "Confirme su nueva cuenta" you_ve_just_created_a_new_account_on_the_fablab_by_logging_from: "Acaba de crear una nueva cuenta en {GENDER, select, male{el} female{la} neutral{} other{las}} {NAME}, al iniciar sesión desde" we_need_some_more_details: "Para finalizar la configuración de la plataforma, necesitamos algunos detalles más." @@ -40,11 +40,11 @@ es: _disconnect_then_reconnect_: "disconnect then reconnect" _for_your_changes_to_take_effect: "for your changes to take effect." dashboard: - # dashboard: public profile + #dashboard: public profile profile: empty: '' settings: - # dashboard: edit my profile + #dashboard: edit my profile last_activity_on_: "Última vez activo" i_want_to_change_group: "Quiero cambiar de grupo" your_subscription_expires_on_: "su suscripción acaba el" @@ -92,7 +92,7 @@ es: _disconnect_then_reconnect_: "reconectarse" _for_your_changes_to_take_effect: "para que sus cambios sean aplicados." projects: - # dashboard: my projects + #dashboard: my projects you_dont_have_any_projects: "Aún no tiene proyectos." add_a_project: "Add a project" author: "Autor" @@ -104,13 +104,13 @@ es: materials: "Materials" collaborators: "Collaborators" trainings: - # dashboard: my trainings + #dashboard: my trainings your_next_trainings: "Sus próximos cursos" your_previous_trainings: "Sus cursos anteriores" your_approved_trainings: "Sus cursos aprobados" no_trainings: "No trainings" events: - # dashboard: my events + #dashboard: my events your_next_events: "Sus próximos eventos" no_events_to_come: "No hay próximos eventos" your_previous_events: "Sus eventos anteriores" @@ -118,7 +118,7 @@ es: NUMBER_normal_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{normal place reserved} other{normal places reserved}}" NUMBER_of_NAME_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{of {NAME} place reserved} other{of {NAME} places reserved}}" invoices: - # dashboard: my invoices + #dashboard: my invoices reference_number: "Numero de referencia" date: "Date" price: "Price" @@ -126,10 +126,10 @@ es: download_the_credit_note: "Download the refund invoice" no_invoices_for_now: "No invoices for now." members_show: - # public profil of a member + #public profil of a member members_list: "Lista de miembros" members: - # list of members accepting to be contacted + #list of members accepting to be contacted the_fablab_members: "Los miembros del fablab" display_more_members: "Ver más miembros" no_members_for_now: "Aún no hay miembros" @@ -138,15 +138,15 @@ es: pseudonym: "Pseudonym" email_address: "Email address" projects_new: - # add a new project + #add a new project add_a_new_project: "Añadir nuevo proyecto" projects_edit: - # modify an existing project + #modify an existing project edit_the_project: "Editar proyecto" rough_draft: "Draft" publish: "Publicar" machines_reserve: - # book a machine + #book a machine machine_planning: "Planning de la máquina" i_ve_reserved: "He reservado" not_available: "No disponible" @@ -158,16 +158,16 @@ es: cancellation_failed: "Cancellation failed." a_problem_occured_during_the_payment_process_please_try_again_later: "A problem occurred during the payment process. Please try again later." trainings_reserve: - # book a training + #book a training trainings_planning: "Plan de curso" - planning_of: "Plan de " # followed by the training name (eg. Planning of 3d printer training) + planning_of: "Planning of" #followed by the training name (eg. Planning of 3d printer training) all_trainings: "Todos los cursos" cancel_my_selection: "Cancelar mi selección" i_change: "I change" i_shift: "I shift" i_ve_reserved: "He reservado" space_reserve: - # book a space + #book a space planning_of_space_NAME: "Planes de {NAME} " i_ve_reserved: "he reservado" i_shift: "reemplazo" From 0d525790b8ac011d73a8ef31155309e83c1c2878 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:54:07 +0100 Subject: [PATCH 014/136] New translations app.admin.en.yml (Spanish) --- config/locales/app.admin.es.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/config/locales/app.admin.es.yml b/config/locales/app.admin.es.yml index 62724d2b2..c402a01ba 100644 --- a/config/locales/app.admin.es.yml +++ b/config/locales/app.admin.es.yml @@ -182,7 +182,7 @@ es: from_DATE: "Desde {DATE}" from_TIME: "Desde {TIME}" to_date: "to" #eg: from 01/01 to 01/05 - to_time: "to" #eg: from 18:00 to 21:00 + to_time: "to" #eg. from 18:00 to 21:00 title: "Title" dates: "Dates" booking: "Booking" @@ -286,7 +286,7 @@ es: hours: "Slots of {DURATION} minutes" related_subscriptions: "Suscripciónes relacionada" please_specify_a_number: "Por favor, especifique un número." - none: "Nada" + none: "Nada" #grammar concordance with training. an_error_occurred_while_saving_the_number_of_credits: "Se ha producido un error al guardar el número de créditos." an_error_occurred_while_deleting_credit_with_the_TRAINING: "Se ha producido un error al eliminar el crédito con la {TRAINING}." an_error_occurred_unable_to_find_the_credit_to_revoke: "Se ha producido un error: no se puede encontrar el crédito a revocar." @@ -410,7 +410,7 @@ es: year: "Año" month: "Mes" day: "Día" - num_of_invoice: "#de factura" + num_of_invoice: "#of invoice" online_sales: "Ventas en línea" wallet: "Cartera" refund: "Reembolso" @@ -462,7 +462,7 @@ es: description: "Descripción" description_optional: "Descripción (opcional):" will_appear_on_the_refund_invoice: "Aparecerá en la factura de reembolso." - none: "Nada" #grammar note: concordancia con medio de pago + none: "Nada" #grammar concordance with payment mean by_cash: "En efectivo" by_cheque: "Mediante cheque" by_transfer: "Por transferencia" @@ -553,7 +553,7 @@ es: general_space_code: "Accounting code for all spaces" accounting_Space_label: "Spaces label" general_space_label: "Account label for all spaces" - codes_customization_success: "Customization of the accounting codes successfully saved." + codes_customization_success: "Customization of accounting codes successfully saved." export_accounting_data: "Export accounting data" export_to: "Export to the accounting software" export_is_running: "Exportando, será notificado cuando esté listo." @@ -564,7 +564,7 @@ es: encoding: "Encoding" separator: "Separator" dateFormat: "Date format" - labelMaxLength: "Label (max)" + labelMaxLength: "Label maximum length" decimalSeparator: "Decimal separator" exportInvoicesAtZero: "Export invoices equal to 0" columns: "Columns" @@ -785,8 +785,8 @@ es: statistics: "Statistics" evolution: "Evolución" age_filter: "Filtro de edad" - from_age: "Desde" #context: age. eg: from 8 to 40 years old - to_age: "a" #context: age. eg: from 8 to 40 years old + from_age: "Desde" #eg. from 8 to 40 years old + to_age: "a" #eg. from 8 to 40 years old _years_old: "años" start: "Principio:" end: "Final:" @@ -829,8 +829,8 @@ es: data: "Datos" day: "Dia" week: "Semana" - from_date: "From" # eg: from 01/01 to 01/05 - to_date: "to" # eg: from 01/01 to 01/05 + from_date: "From" #eg: from 01/01 to 01/05 + to_date: "to" #eg: from 01/01 to 01/05 month: "Month" start: "Inicio:" end: "Final:" From 67eb3086d177a0ef80b7728a46be02181061019d Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:54:10 +0100 Subject: [PATCH 015/136] New translations mails.en.yml (Spanish) --- config/locales/mails.es.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/config/locales/mails.es.yml b/config/locales/mails.es.yml index 60ae3e371..ca43a34db 100644 --- a/config/locales/mails.es.yml +++ b/config/locales/mails.es.yml @@ -1,7 +1,7 @@ es: layouts: notifications_mailer: - see_you_later: "Nos vemos pronto en {GENDER, select, male{el} female{la} neutral{} other{las}}" #messageFormat interpolation + see_you_later: "Nos vemos pronto en {GENDER, select, male{el} female{la} neutral{} other{las}}" #messageFormat interpolation sincerely: "Atentamente," signature: "El equipo del FabLab." do_not_reply: "Por favor no conteste a este mail." @@ -10,7 +10,7 @@ es: subject: "Tu cuenta FabLab se ha creado con éxito" body: hello: "Hola %{NAME}," - intro: "El equipo FabLab acaba de crear una cuenta para ti, en la web {GENDER, select, male{del} female{de la} neutral{de} other{de las}} {FABLAB}" #messageFormat interpolation + intro: "El equipo FabLab acaba de crear una cuenta para ti, en la web {GENDER, select, male{del} female{de la} neutral{de} other{de las}} {FABLAB}" #messageFormat interpolation connection_parameters: "Estos son los datos asociados a tu cuenta:" account_name: "Nombre de usuario:" password: "Contraseña:" @@ -33,7 +33,7 @@ es: notify_admin_subscription_extended: subject: "Una suscripción ha sido extendida" body: - subscription_extended_html: "La suscripción {PLAN} del usuario {NAME} ha sido extendida {FREE, select, true{for free} other{}} until {DATE}." #messageFormat interpolation + subscription_extended_html: "La suscripción {PLAN} del usuario {NAME} ha sido extendida {FREE, select, true{for free} other{}} until {DATE}." #messageFormat interpolation notify_member_subscription_extended: subject: "Su suscripción ha sido extendida" body: @@ -108,8 +108,8 @@ es: notify_member_invoice_ready: subject: "La factura de su FabLab" body: - please_find_attached_html: "Por favor, encuentre como archivo adjunto su factura de {DATE}, por un valor de {AMOUNT} referente a {TYPE, select, Reservation{reservation} other{subscription}}." #messageFormat interpolation - invoice_in_your_dashboard_html: "Puede acceder a su factura en %{DASHBOARD} en la web del FabLab." + please_find_attached_html: "Por favor, encuentre como archivo adjunto su factura de {DATE}, por un valor de {AMOUNT} referente a {TYPE, select, Reservation{reservation} other{subscription}}." #messageFormat interpolation + invoice_in_your_dashboard_html: "Puede acceder a su factura en %{DASHBOARD} en la web del FabLab." your_dashboard: "Su Panel" notify_member_reservation_reminder: subject: "Recordatorio de reserva" @@ -119,7 +119,7 @@ es: notify_member_avoir_ready: subject: "Su factura de reembolso de FabLab" body: - please_find_attached_html: "Por favor, encuentre como archivo adjunto su factura de reembolso de {DATE}, con una cantidad de {AMOUNT} referente a su {TYPE, select, Reservation{reservation} WalletTransaction{wallet credit} other{subscription}}." #messageFormat interpolation + please_find_attached_html: "Por favor, encuentre como archivo adjunto su factura de reembolso de {DATE}, con una cantidad de {AMOUNT} referente a su {TYPE, select, Reservation{reservation} WalletTransaction{wallet credit} other{subscription}}." #messageFormat interpolation invoice_in_your_dashboard_html: "Puede acceder a su factura en %{DASHBOARD} en la web del FabLab." your_dashboard: "Su panel" notify_member_subscription_will_expire_in_7_days: @@ -246,7 +246,7 @@ es: subject: "Cupón" body: enjoy_a_discount_of_PERCENT_with_code_CODE: "Disfruta de un descuento del %{PERCENT}% en toda la web con el código %{CODE}." - enjoy_a_discount_of_AMOUNT_with_code_CODE: "Disfruta de un descuento de %{AMOUNT} en toda la web con el código %{CODE}." + enjoy_a_discount_of_AMOUNT_with_code_CODE: "Disfruta de un descuento de %{AMOUNT} en toda la web con el código %{CODE}." this_coupon_is_valid_USAGE_times_until_DATE_for_all_your_purchases: "Este cupón es válido {USAGE, plural, =1{just once} other{many times}}: para todas tus compras {TYPE, select, amount_off{at least equal to the amount of the coupon} other{}}, desde ahora {DATE, select, NO-DATE{and without time limit} other{and until {DATE}}}." notify_admin_free_disk_space: subject: "Low disk space" From caa82107125608980779f3a1b89d2da80581c01c Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:54:11 +0100 Subject: [PATCH 016/136] New translations en.yml (Spanish) --- config/locales/es.yml | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/config/locales/es.yml b/config/locales/es.yml index 3d6c33a41..66be26758 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -1,6 +1,6 @@ es: + #subscription plan duration duration: - #subscription plan duration year: one: 'un año' other: '%{count} años' @@ -11,8 +11,8 @@ es: one: 'una semana' other: '%{count} semanas' errors: + #CarrierWave messages: - #CarrierWave carrierwave_processing_error: "falló al procesar" carrierwave_integrity_error: "es un tipo de archivo no permitido" carrierwave_download_error: "no pudo ser descargado" @@ -38,27 +38,27 @@ es: must_be_in_the_past: "El período debe ser estrictamente anterior a la fecha de hoy." apipie: api_documentation: "Documentación API" + #error messages when importing an account from a SSO omniauth: - #error messages when importing an account from a SSO email_already_linked_to_another_account_please_input_your_authentication_code: "El correo electrónico \"%{OLD_MAIL}\" ya está ligado a otra cuenta, ingrese su código de autenticación." your_username_is_already_linked_to_another_account_unable_to_update_it: "Su nombre de usuario (%{USERNAME}) ya está ligado a otra cuenta, no se puede actualizar." your_email_address_is_already_linked_to_another_account_unable_to_update_it: "Your e-mail address (%{EMAIL}) ya está ligado a otra cuenta, no se puede actualizar." this_account_is_already_linked_to_an_user_of_the_platform: "Esta cuenta %{NAME} ya está ligada a un usuario de la plataforma." + #availability slots in the calendar availabilities: - #availability slots in the calendar not_available: "No disponible" i_ve_reserved: "He reservado" length_must_be_slot_multiple: "Debe ser al menos %{MIN} minutos después de la fecha de inicio" must_be_associated_with_at_least_1_machine: "debe estar asociado con al menos 1 máquina" + #members management members: - #members management unable_to_change_the_group_while_a_subscription_is_running: "No se puede cambiar de grupo mientras haya una suscripción en curso" please_input_the_authentication_code_sent_to_the_address: "Por favor Ingrese el código de autenticación enviado a la dirección de correo electrónico %{EMAIL}" your_authentication_code_is_not_valid: "Su código de autenticación no es válido." current_authentication_method_no_code: "El método de autenticación actual no requiere ningún código de migración" requested_account_does_not_exists: "La cuenta solicitada no existe" + #PDF invoices generation invoices: - #PDF invoices generation refund_invoice_reference: "Referencia de la factura de reembolso: %{REF}" invoice_reference: "Referencia de factura: %{REF}" code: "Código: %{CODE}" @@ -109,6 +109,7 @@ es: subscription_of_NAME_for_DURATION_starting_from_DATE: "Suscripción %{NAME} por %{DURATION} empezando desde %{DATE}" subscription_of_NAME_extended_starting_from_STARTDATE_until_ENDDATE: "Subscripción de %{NAME} extendida (días gratuitos) empezando desde %{STARTDATE} hasta %{ENDDATE}" and: 'y' + #CVS accounting export (columns headers) accounting_export: journal_code: "Código de registro" date: "Fecha contable" @@ -128,19 +129,19 @@ es: Event_reservation: "reserv. evento" Space_reservation: "reserv. espacio" wallet: "cartera" + #training availabilities trainings: - #training availabilities i_ve_reserved: "Reservé" completed: "Lleno" + #error messages when updating an event events: - #error messages when updating an event error_deleting_reserved_price: "No se puede eliminar el precio solicitado porque está asociado con algunas reservas." other_error: "Se ha producido un error inesperado al actualizar el evento." #event duration from_STARTDATE_to_ENDDATE: "Del %{STARTDATE} al %{ENDDATE}," from_STARTTIME_to_ENDTIME: "de %{STARTTIME} a %{ENDTIME}" + #members list export to EXCEL format export_members: - #members list export to EXCEL format members: "Miembros" id: "ID" surname: "Apellido" @@ -171,8 +172,8 @@ es: man: "hombre" woman: "mujer" without_subscriptions: "Sin suscripciones" + #machines/trainings/events reservations list to EXCEL format export_reservations: - #machines/trainings/events reservations list to EXCEL format reservations: "Reservas" customer_id: "Identificación del cliente" customer: "Cliente" @@ -184,8 +185,8 @@ es: payment_method: "Método de pago" local_payment: "Pago en recepción" online_payment: "Pago online" + #subscriptions list export to EXCEL format export_subscriptions: - #subscriptions list export to EXCEL format subscriptions: "Suscripciones" id: "ID" customer: "Cliente" @@ -198,8 +199,8 @@ es: payment_method: "Método de pago" local_payment: "Pago en recepción" online_payment: "Pago en línea" + #reservation slots export, by type, to EXCEL format export_availabilities: - #reservation slots export, by type, to EXCEL format machines: "Máquinas" trainings: "Formaciones" spaces: "Espacios" @@ -214,8 +215,8 @@ es: reservations: "Reservas" available_seats: "Asientos disponibles" api: + #internal app notifications notifications: - #internal app notifications deleted_user: "Usuario eliminado" notify_admin_abuse_reported: an_abuse_was_reported_on_TYPE_ID_NAME_html: "Un abuso ha sido reportado %{TYPE} %{ID}: %{NAME}." @@ -328,8 +329,8 @@ es: click_to_show: "Haga clic aquí para consultar" notify_admin_refund_created: refund_created: "Se ha creado un reembolso de %{AMOUNT} para el usuario %{USER}" + #statistics tools for admins statistics: - #statistics tools for admins subscriptions: "Suscripciones" machines_hours: "Machine slots" spaces: "Espacios" @@ -355,8 +356,8 @@ es: revenue: "Ingresos" account_creation: "Creación de cuenta" project_publication: "Publicación de proyectos" + #statistics exports to the excel file format export: - #statistics exports to the excel file format entries: "Entradas" revenue: "Ingresos" average_age: "Edad media" @@ -370,8 +371,8 @@ es: type: "Tipo" male: "Hombre" female: "Mujer" + #initial price's category for events, created to replace the old "reduced amount" property price_category: - #initial price's category for events, created to replace the old "reduced amount" property reduced_fare: "Tarifa reducida" reduced_fare_if_you_are_under_25_student_or_unemployed: "Tarifa reducida si tienes menos de 25 años, eres estudiante o estás desempleado." group: From 206745b74ba204dd8936756ca39079636c9d5537 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:54:12 +0100 Subject: [PATCH 017/136] New translations devise.en.yml (French) --- config/locales/devise.fr.yml | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml index 861b32de2..7f7a7cae8 100644 --- a/config/locales/devise.fr.yml +++ b/config/locales/devise.fr.yml @@ -1,5 +1,4 @@ -# Autres traductions disponibles sur https://github.com/plataformatec/devise/wiki/I18n - +#Additional translations at https://github.com/plataformatec/devise/wiki/I18n fr: devise: confirmations: @@ -9,22 +8,22 @@ fr: failure: already_authenticated: "Vous êtes déjà connecté(e)." inactive: "Votre compte n’est pas encore activé." - invalid: "Adresse courriel ou mot de passe incorrect." - invalid_token: "Jeton d'authentification incorrect." + invalid: "E-mail ou mot de passe incorrect." locked: "Votre compte est verrouillé." + last_attempt: "You have one more attempt before your account will be locked." not_found_in_database: "E-mail ou mot de passe incorrect." timeout: "Votre session est périmée, veuillez vous reconnecter pour continuer." unauthenticated: "Vous devez vous connecter ou vous enregistrer pour continuer." - unconfirmed: "Vous devez confirmer votre adresse de courriel pour pouvoir vous connecter. Veuillez cliquer sur le lien en dessous du formulaire." + unconfirmed: "You have to confirm your account before continuing. Please click on the link below the form." mailer: confirmation_instructions: - action: "Confirmer mon e-mail !" - instruction: "Vous pouvez finaliser votre inscription en confirmant votre adresse mail, en cliquant sur le lien suivant :" + action: "Confirm my email address" + instruction: "You can finalize your registration by confirming your email address. Please click on the following link:" subject: "Confirmation d'inscription" reset_password_instructions: - action: "Changer mon mot de passe" - instruction: "Quelqu'un a demandé un lien pour changer votre mot de passe. Vous pouvez le faire via le lien ci-dessous." - ignore_otherwise: "Si vous n'êtes pas à l'origine de cette demande, merci d'ignorer ce message." + action: "Change my password" + instruction: "Someone asked for a link to change your password. You can do it through the link below." + ignore_otherwise: "If you have not made this request, please ignore this message." subject: "Instructions pour changer le mot de passe" unlock_instructions: subject: "Instructions pour déverrouiller le compte" @@ -54,10 +53,10 @@ fr: unlocked: "Votre compte a été débloqué avec succès. Veuillez vous connecter." errors: messages: - already_confirmed: "Cette adresse de courriel a déjà été confirmée." + already_confirmed: "This email was already confirmed, please try signing in." confirmation_period_expired: "doit être confirmé(e) en %{period}, veuillez en demander un(e) autre" expired: "est périmé, veuillez en demander un autre" - not_found: "Cette adresse de courriel n'est associée à aucun compte." + not_found: "This email was not found" not_locked: "n’était pas verrouillé(e)" not_saved: one: "une erreur a empêché ce (ou cette) %{resource} d’être enregistré(e) :" From 7ac9fc0468226ea99bb5c583bd7d274700c92ce7 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:54:14 +0100 Subject: [PATCH 018/136] New translations app.shared.en.yml (Portuguese) --- config/locales/app.shared.pt.yml | 80 ++++++++++++++++---------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/config/locales/app.shared.pt.yml b/config/locales/app.shared.pt.yml index 406a28a70..5ca3e88eb 100755 --- a/config/locales/app.shared.pt.yml +++ b/config/locales/app.shared.pt.yml @@ -1,8 +1,8 @@ pt: app: shared: + #translations of common buttons buttons: - #translations of common buttons confirm_changes: "Confirmar mudanças" consult: "Consultar" edit: "Editar" @@ -22,8 +22,8 @@ pt: you_will_lose_any_unsaved_modification_if_you_quit_this_page: "Você irá perder todas as modificações não salvas se sair desta página" you_will_lose_any_unsaved_modification_if_you_reload_this_page: "Você irá perder todas as modificações não salvas se recarregar desta página" payment_card_error: "A problem has occurred with your credit card:" + #user edition form user: - #user edition form man: "Man" woman: "Woman" add_an_avatar: "Adicionar avatar" @@ -62,8 +62,8 @@ pt: used_for_invoicing: "This data will be used for billing purposes" used_for_reservation: "This data will be used in case of change on one of your bookings" used_for_profile: "This data will only be displayed on your profile" + #project edition form project: - #project edition form name: "Name" name_is_required: "Name is required." illustration: "Ilustração" @@ -91,8 +91,8 @@ pt: themes: "Themes" tags: "Tags" save_as_draft: "Save as draft" + #machine edition form machine: - #machine edition form name: "Nome" name_is_required: "Nome é obrigatório." illustration: "Ilustração" @@ -106,28 +106,28 @@ pt: add_an_attachment: "Adicionar anexo" disable_machine: "Desativar máquina" validate_your_machine: "Validar sua máquina" + #frame to select a plan to subscribe plan_subscribe: - #frame to select a plan to subscribe subscribe_online: "Inscrição online" do_not_subscribe: "não inscrito" + #admin: choose a member to interact with member_select: - #admin: choose a member to interact with select_a_member: "Selecionar um membro" start_typing: "Escrevendo..." + #stripe payment modal stripe: - #stripe payment modal online_payment: "Online payment" i_have_read_and_accept_: "Eu li e aceito" _the_general_terms_and_conditions: "os termos e condições." credit_amount_for_pay_reservation: "{amount} {currency} a ser pago para confirmar sua inscrição" client_credit_amount_for_pay_reservation: "{amount} {currency} a ser pago para confirmar a inscrição do cliente" confirm_payment_of_: "Pay: {AMOUNT}" + #dialog of on site payment for reservations valid_reservation_modal: - #dialog of on site payment for reservations booking_confirmation: "Confirmação de reserva" here_is_the_summary_of_the_slots_to_book_for_the_current_user: "Aqui está um resumo das reservas para o usuário atual:" + #event edition form event: - #event edition form title: "Title" title_is_required: "Título é obrigatório." matching_visual: "Correspondência visual" @@ -151,8 +151,8 @@ pt: tickets_available: "Tickets disponíveis" event_theme: "Tema do evento" age_range: "Faixa etária" + #subscription plan edition form plan: - #subscription plan edition form general_information: "Informação geral" name: "Nome" name_is_required: "Nome é obrigatório." @@ -193,8 +193,8 @@ pt: email_address_is_required: "Email é obrigatório." disabled: "Disable subscrição" disable_plan_will_not_unsubscribe_users: "Aviso: desativar a assinatura não desautorizará os usuários que atualmente possuem esta assinatura ativa." + #training edition form trainings: - #training edition form name: "Nome" name_is_required: "Nome é obrigatório." illustration: "Ilustração" @@ -207,8 +207,8 @@ pt: number_of_tickets: "Número de vagas" public_page: "Mostrar na lista de treinamentos" disable_training: "Desativar treinamento" + #partial form to edit/create an user (admin view) user_admin: - #partial form to edit/create an user (admin view) user: "User" incomplete_profile: "Incomplete profile" user_profile: "Perfil de usuário" @@ -217,8 +217,8 @@ pt: group_is_required: "Grupo é obrigatório" trainings: "Treinamentos" tags: "Tags" + #partial form to edit/create an authentication provider (SSO) authentication: - #partial form to edit/create an authentication provider (SSO) name: "Nome" provider_name_is_required: "Nome da provider é obrigatório." authentication_type: "Tipo de autenticação" @@ -229,8 +229,8 @@ pt: expected_data_type: "Esperado tipo de dado" input_format: "Insira o formato" mappings: "Mapeamentos" + #edition/creation form of an OAuth2 authentication provider oauth2: - #edition/creation form of an OAuth2 authentication provider common_url: "Common URL" common_url_is_required: "Common URL is required." provided_url_is_not_a_valid_url: "Provided URL is not a valid URL." @@ -253,25 +253,25 @@ pt: api_endpoint_url: "API endpoint URL" api_type: "API tipo" api_fields: "API linhas" + #machine/training slot modification modal confirm_modify_slot_modal: - #machine/training slot modification modal change_the_slot: "Alterar o slot" do_you_want_to_change_your_booking_slot_initially_planned_at: "Você deseja alterar seu agendamento, inicialmente marcado para:" do_you_want_to_change_NAME_s_booking_slot_initially_planned_at: "Você deseja alterar o agendamento do usuário {NAME}, inicialmente marcado para:" cancel_this_reservation: "Cancelar essa reserva" i_want_to_change_date: "Eu quero alterar a data" + #modal introducing that a training is requested before booking a machine request_training_modal: - #modal introducing that a training is requested before booking a machine to_book_the_MACHINE_you_must_have_completed_the_TRAINING: "Para agendar \"{MACHINE}\" você deve completar o treinamento {TRAINING}." register_for_the_training: "Inscrever-se no treinamento" i_dont_want_to_register_now: "Não desejo me inscrever agora" + #modal introducing that a user must wait for his training being validated before booking a machine training_reservation_modal: - #modal introducing that a user must wait for his training being validated before booking a machine machine_reservation: "Reserva de máquina" you_must_wait_for_your_training_is_being_validated_by_the_fablab_team_to_book_this_machine: "Você deve esperar que seu treinamento seja validado pela equipe do FabLab para reservar esta máquina." your_training_will_occur_: "Seu treinamento ocorrerá" + #user public profile public_profile: - #user public profile last_activity_html: "Última atividade
em {DATE}" to_come: "vir" approved: "aprovado" @@ -285,8 +285,8 @@ pt: email_address: "Email address" trainings: "Trainings" no_trainings: "No trainings" + #wallet wallet: - #wallet wallet: 'Carteira' your_wallet_amount: 'Seus créditos disponíveis' wallet_amount: 'Crédito disponível' @@ -321,8 +321,8 @@ pt: debit_reservation_machine: "Débito por reserva de máquina" debit_reservation_event: "Débito por reserva de evento" warning_uneditable_credit: "Aviso: uma vez validado, o valor creditado não será mais editado." + #promotional coupon (creation/edition form) coupon: - #promotional coupon (creation/edition form) name: "Nome" name_is_required: "Name is required." code: "Código" @@ -344,8 +344,8 @@ pt: max_usages: "Máximo de usos permitido" max_usages_must_be_equal_or_greater_than_0: "Os usos máximos permitidos devem ser maiores que 0." enabled: "Ativo" + #coupon (input zone for users) coupon_input: - #coupon (input zone for users) i_have_a_coupon: "Eu tenho um cupom!" code_: "Código:" the_coupon_has_been_applied_you_get_PERCENT_discount: "O cupom foi aplicado. Você recebeu {PERCENT}% de desconto." @@ -357,28 +357,28 @@ pt: unable_to_apply_the_coupon_because_amount_exceeded: "Não é possível aplicar o cupom: o desconto excede o valor total desta compra." unable_to_apply_the_coupon_because_undefined: "Não é possível aplicar o cupom: um erro inesperado aconteceu, por favor entre em contato com o FabLab." unable_to_apply_the_coupon_because_rejected: "Este código não existe." + #form to create/edit a space space: - #form to create/edit a space - name: "Nome" - name_is_required: "Nome é obrigatório." - illustration: "Ilustração" - add_an_illustration: "Adicionar ilustração" - description: "Descrição" - description_is_required: "Descrição é obrigatório." - characteristics: "Características" - characteristics_are_required: "Características são obrigatórias." - attached_files_pdf: "Arquivos anexos (pdf)" - attach_a_file: "Anexar arquivo" - add_an_attachment: "Adicionar um anexo" - default_places: "Tickets máximo padrão" - default_places_is_required: "Tickets máximo padrão é obrigatório." - disable_space: "Desativar espaço" + name: "Nome" + name_is_required: "Nome é obrigatório." + illustration: "Ilustração" + add_an_illustration: "Adicionar ilustração" + description: "Descrição" + description_is_required: "Descrição é obrigatório." + characteristics: "Características" + characteristics_are_required: "Características são obrigatórias." + attached_files_pdf: "Arquivos anexos (pdf)" + attach_a_file: "Anexar arquivo" + add_an_attachment: "Adicionar um anexo" + default_places: "Tickets máximo padrão" + default_places_is_required: "Tickets máximo padrão é obrigatório." + disable_space: "Desativar espaço" + #shopping cart module for reservations cart: - #module de panier d'achat de réservations summary: "Sumário" select_one_or_more_slots_in_the_calendar: "Selecionar um {SINGLE, select, true{slot} other{ou mais slots}} no calendário" you_ve_just_selected_the_slot: "Você selecionou apenas o slot:" - datetime_to_time: "{START_DATETIME} até {END_TIME}" #eg: Thursday, September 4 1986 8:30 PM to 10:00 PM + datetime_to_time: "{START_DATETIME} até {END_TIME}" #eg: Thursday, September 4 1986 8:30 PM to 10:00 PM cost_of_TYPE: "Custo de {TYPE, select, Machine{máquina hora} Training{o treinamento} other{o elemento}}" offer_this_slot: "Oferecer este slot" confirm_this_slot: "Confirmar este slot" @@ -406,13 +406,13 @@ pt: your_booking_slot_was_successfully_moved_from_: "Seu slot de reserva foi movido com sucesso para" to_date: "até" #eg. from 01/01 to 01/05 please_select_a_member_first: "Por favor selecione o membro primeiramente" - unable_to_select_plan_if_slots_in_the_past: 'Não é possível selecionar um plano se algum dos slots selecionados estiver no passado' + unable_to_select_plan_if_slots_in_the_past: "Não é possível selecionar um plano se algum dos slots selecionados estiver no passado" unable_to_change_the_reservation: "Não permitido alterar esta reserva" confirmation_required: "Confirmação é obrigatória" do_you_really_want_to_cancel_this_reservation: "Você realmente quer cancelar essa reserva?" reservation_was_cancelled_successfully: "Reserva a foi cancelada com sucesso." cancellation_failed: "Cancelamento falhou." - confirm_payment_of_html: "{ROLE, select, admin{Pagamento pelo site} other{Pagar}}: {AMOUNT}" #(context: confirm my payment of $20.00) + confirm_payment_of_html: "{ROLE, select, admin{Pagamento pelo site} other{Pagar}}: {AMOUNT}" #eg. confirm my payment of $20.00 a_problem_occurred_during_the_payment_process_please_try_again_later: "Um problema ocorreu durante o processo de pagamento. Por favor tente novamente mais tarde." none: "Vazio" online_payment_disabled: "O pagamento online não está disponível. Entre em contato diretamente com a recepção do Fablab." From 3dcd41f4295479309042ded5f1b62c7b8f1ed0f4 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:54:16 +0100 Subject: [PATCH 019/136] New translations app.public.en.yml (Portuguese) --- config/locales/app.public.pt.yml | 38 ++++++++++++++++---------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/config/locales/app.public.pt.yml b/config/locales/app.public.pt.yml index deeff8433..85c146a2c 100755 --- a/config/locales/app.public.pt.yml +++ b/config/locales/app.public.pt.yml @@ -1,8 +1,8 @@ pt: app: public: + #header and "about" page common: - #header and "about" page about_the_fablab: "Sobre {GENDER, select, male{o} female{a} neutral{} other{do}} {NAME}" return: "Voltar" #cookies @@ -121,19 +121,19 @@ pt: how_to: "How to upgrade?" #Notifications and_NUMBER_other_notifications: "and {NUMBER, plural, =0{no other notifications} =1{one other notification} other{{NUMBER} other notifications}}..." + #about page about: - #about page read_the_fablab_policy: "Ler a política do FabLab" read_the_fablab_s_general_terms_and_conditions: "Ler os termos e condições do FabLab" your_fablab_s_contacts: "Nossos contatos" privacy_policy: "Política de privacidade" + #'privacy policy' page privacy: - #'privacy policy' page title: "Política de privacidade" dpo: "Oficial de proteção de dados" last_update: "Última atualização," + #home page home: - #home page latest_documented_projects: "Últimos projetos documentados" follow_us: "Siga nos" latest_tweets: "Os últimos tweets" @@ -151,8 +151,8 @@ pt: full_price: "Valor inteira" event_full: "Evento lotado" still_available: "Locais disponíveis" + #projects gallery projects_list: - #projects gallery the_fablab_projects: "Projetos do Fab Lab" add_a_project: "Adicionar projeto" search_over_the_whole_network: "Pesquisar em todos os FabLabs" @@ -169,8 +169,8 @@ pt: all_materials: "Todos os materiais" load_next_projects: "Carregar próximos projetos" rough_draft: "Rascunho" + #details of a projet projects_show: - #details of a projet rough_draft: "Draft" project_description: "Descrição do projeto" by_name: "Por {NAME}" @@ -198,8 +198,8 @@ pt: message_is_required: "Menssagem é obrigatório." report: "Enviar" do_you_really_want_to_delete_this_project: "Você quer realmente deletar esse projeto?" + #list of machines machines_list: - #list of machines the_fablab_s_machines: "Lista de máquinas no FabLab" add_a_machine: "Adicionar uma máquina" new_availability: "Open reservations" @@ -208,8 +208,8 @@ pt: status_enabled: "Ativo" status_disabled: "Desabilitado" status_all: "Todos" + #details of a machine machines_show: - #details of a machine book_this_machine: "Reservar essa máquina" technical_specifications: "Technical specifications" files_to_download: "Arquivos para download" @@ -219,19 +219,19 @@ pt: do_you_really_want_to_delete_this_machine: "Você realmente quer deletar essa máquina?" unauthorized_operation: "Operação não autorizada" the_machine_cant_be_deleted_because_it_is_already_reserved_by_some_users: "Esta máquina não pode ser deletada, pois já está em reservada por alguns usuários." + #list of trainings trainings_list: - #list of trainings book: "Book" the_trainings: "Os treinamentos" + #details of a training training_show: - #details of a training book_this_training: "Reservar este treinamento" do_you_really_want_to_delete_this_training: "Você realmente quer deletar esse treinamento?" unauthorized_operation: "Operação não autorizada" confirmation_required: "Confirmation required" the_training_cant_be_deleted_because_it_is_already_reserved_by_some_users: "O treinamento não pode ser deletado pois já foi reservado por alguns usuários." + #summary of the subscriptions plans: - #summary of the subscriptions subscriptions: "Assinaturas" i_choose_that_plan: "Eu escolho esse plano" i_subscribe_online: "Me inscrever online" @@ -259,8 +259,8 @@ pt: here_is_the_NAME_subscription_summary: "Aqui é o sumário de inscrição do {NAME}:" confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" #(contexte : validate a payment of $20,00) online_payment_disabled: "Payment by credit card is not available. Please contact the Fablab's reception directly." + #Fablab's events list events_list: - #Fablab's events list the_fablab_s_events: "Eventos do Fablab" all_categories: "Todas categorias" for_all: "Para todos" @@ -274,8 +274,8 @@ pt: full_price_: "Full price:" to_date: "to" #eg. from 01/01 to 01/05 all_themes: "All themes" + #details and booking of an event events_show: - #details and booking of an event event_description: "Descrição do evento" downloadable_documents: "Documentos para download" information_and_booking: "Informações e reservas" @@ -285,7 +285,7 @@ pt: opening_hours: "Abre ás:" all_day: "All day" from_time: "From" #eg. from 18:00 to 21:00 - to_time: "to" #eg. from 18:00 to 21:00 + to_time: "to" #eg. from 18:00 to 21:00 full_price_: "Full price:" tickets_still_availables: "Tickets ainda disponíveis:" sold_out: "Esgotado." @@ -306,7 +306,7 @@ pt: change_the_reservation: "Alterar reserva" you_can_shift_this_reservation_on_the_following_slots: "Você pode alterar essa reserva nos campos a seguir:" confirmation_required: "Confirmação obrigatória" - do_you_really_want_to_delete_this_event: "Vocêrealmente deseja remover este evento?" + do_you_really_want_to_delete_this_event: "Vocêrealmente deseja remover este evento?" delete_recurring_event: "You're about to delete a periodic event. What do you want to do?" delete_this_event: "Only this event" delete_this_and_next: "This event and the following" @@ -318,14 +318,14 @@ pt: cancel_the_reservation: "Cancel the reservation" do_you_really_want_to_cancel_this_reservation_this_apply_to_all_booked_tickets: "Do you really want to cancel this reservation? This apply to ALL booked tickets." reservation_was_successfully_cancelled: "Reservation was successfully cancelled" - cancellation_failed: "Cancellation failed." #translation_missin + cancellation_failed: "Cancellation failed." event_is_over: "The event is over" thanks_for_coming: "Thanks for coming!" view_event_list: "View events to come" share_on_facebook: "Share on Facebook" share_on_twitter: "Share on Twitter" + #public calendar calendar: - #public calendar calendar: "Calendário" show_unavailables: "Mostrar slots não disponíveis" filter_calendar: "Filtrar calendário" @@ -334,8 +334,8 @@ pt: spaces: "Espaços" events: "Eventos" externals: "Outras agendas" + #list of spaces spaces_list: - #list of spaces the_spaces: "Os espaços" new_availability: "Open reservations" add_a_space: "Adicionar espaço" @@ -343,8 +343,8 @@ pt: status_disabled: "Desabilitado" status_all: "Todos" book: "Reservar" + #display the details of a space space_show: - #display the details of a space book_this_space: "Marcar este espaço" unauthorized_operation: "Operação não autorizada" confirmation_required: "Confirmação obrigatória" From a02899278a3137e4f1d080d4c242017d799abe02 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:54:18 +0100 Subject: [PATCH 020/136] New translations app.logged.en.yml (Portuguese) --- config/locales/app.logged.pt.yml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/config/locales/app.logged.pt.yml b/config/locales/app.logged.pt.yml index 5bb66f2fc..475c8c7a1 100755 --- a/config/locales/app.logged.pt.yml +++ b/config/locales/app.logged.pt.yml @@ -2,7 +2,7 @@ pt: app: logged: profile_completion: - # user's profile completion page when logging from an SSO provider + #user's profile completion page when logging from an SSO provider confirm_your_new_account: "Confirme sua nova conta" you_ve_just_created_a_new_account_on_the_fablab_by_logging_from: "Você acabou de criar uma nova conta como {GENDER, select, male{o} female{a} neutral{} other{do}} {NAME}" we_need_some_more_details: "Para finalizar a configuração da plataforma, precisamos de mais detalhes" @@ -40,11 +40,11 @@ pt: _disconnect_then_reconnect_: "disconnect then reconnect" _for_your_changes_to_take_effect: "for your changes to take effect." dashboard: - # dashboard: public profile + #dashboard: public profile profile: empty: '' settings: - # dashboard: edit my profile + #dashboard: edit my profile last_activity_on_: "Última atividade em" i_want_to_change_group: "Eu quero trocar de grupo!" your_subscription_expires_on_: "Sua inscrição expira em" @@ -92,7 +92,7 @@ pt: _disconnect_then_reconnect_: "disconecte e se conecte novamente" _for_your_changes_to_take_effect: "para que suas alterações tenham efeitos." projects: - # dashboard: my projects + #dashboard: my projects you_dont_have_any_projects: "Você não tem nenhum projeto." add_a_project: "Add a project" author: "Autor" @@ -104,13 +104,13 @@ pt: materials: "Materials" collaborators: "Collaborators" trainings: - # dashboard: my trainings + #dashboard: my trainings your_next_trainings: "Seus próximos treinamentos" your_previous_trainings: "Seus treinamentos anteriores" your_approved_trainings: "Seus treinamentos aprovados" no_trainings: "No trainings" events: - # dashboard: my events + #dashboard: my events your_next_events: "Seus próximos eventos" no_events_to_come: "Sem eventos futuros" your_previous_events: "Seus eventos anteriores" @@ -118,7 +118,7 @@ pt: NUMBER_normal_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{lugar normal reservado} other{lugares normais reservados}}" NUMBER_of_NAME_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{{NAME} lugar reservado} other{{NAME} lugares reservados}}" invoices: - # dashboard: my invoices + #dashboard: my invoices reference_number: "Número de referência" date: "Date" price: "Price" @@ -126,10 +126,10 @@ pt: download_the_credit_note: "Download the refund invoice" no_invoices_for_now: "No invoices for now." members_show: - # public profil of a member + #public profil of a member members_list: "Lista de membros" members: - # list of members accepting to be contacted + #list of members accepting to be contacted the_fablab_members: "Membros do FabLab" display_more_members: "Mostrar mais membros..." no_members_for_now: "Sem membros" @@ -138,15 +138,15 @@ pt: pseudonym: "Pseudonym" email_address: "Email address" projects_new: - # add a new project + #add a new project add_a_new_project: "Adicionar novo projeto" projects_edit: - # modify an existing project + #modify an existing project edit_the_project: "Editar projeto" rough_draft: "Draft" publish: "Publicar" machines_reserve: - # book a machine + #book a machine machine_planning: "Planejamento de máquinas" i_ve_reserved: "Eu tenho reserva" not_available: "Não disponível" @@ -158,16 +158,16 @@ pt: cancellation_failed: "Cancellation failed." a_problem_occured_during_the_payment_process_please_try_again_later: "A problem occurred during the payment process. Please try again later." trainings_reserve: - # book a training + #book a training trainings_planning: "Planos de treinamento" - planning_of: "Planejamento de" # followed by the training name (eg. Planning of 3d printer training) + planning_of: "Planning of" #followed by the training name (eg. Planning of 3d printer training) all_trainings: "Todos treinamentos" cancel_my_selection: "Cancelar minha seleção" i_change: "I change" i_shift: "I shift" i_ve_reserved: "Eu reservei" space_reserve: - # book a space + #book a space planning_of_space_NAME: "Plano de {NAME} espaço" i_ve_reserved: "Eu reservei" i_shift: "Eu troco" From 9704803478aa26cc29ecf697ebc142791d5af83d Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 11:54:21 +0100 Subject: [PATCH 021/136] New translations app.admin.en.yml (Portuguese) --- config/locales/app.admin.pt.yml | 40 ++++++++++++++++----------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/config/locales/app.admin.pt.yml b/config/locales/app.admin.pt.yml index 00c95c3db..97f7cc873 100755 --- a/config/locales/app.admin.pt.yml +++ b/config/locales/app.admin.pt.yml @@ -47,7 +47,7 @@ pt: manage_trainings: "Click here to add or remove trainings." number_of_tickets: "Número de vagas: " adjust_the_opening_hours: "Ajustar o horário de funcionamento" - to_time: "ás" #eg. from 18:00 to 21:00 + to_time: "ás" #eg. from 18:00 to 21:00 restrict_options: "Restriction options" restrict_with_labels: "Restrinja este slot com etiquetas" restrict_for_subscriptions: "Restrict this slot for subscription users" @@ -147,7 +147,7 @@ pt: NUMBER_reservation: "{NUMBER} {NUMBER, plural, one{reserva} other{reservas}}" none: "Vazio" training_validation: "Validação de treinamentos" - training_of_the_DATE_TIME_html : "Training of the {DATE} - {TIME}" + training_of_the_DATE_TIME_html: "Training of the {DATE} - {TIME}" you_can_validate_the_training_of_the_following_members: "Você pode validar um treinamento dos seguintes membros:" deleted_user: "Deleted user" no_reservation: "Sem reservas" @@ -182,7 +182,7 @@ pt: from_DATE: "Em {DATE}" from_TIME: "Ás {TIME}" to_date: "to" #eg: from 01/01 to 01/05 - to_time: "to" #eg. from 18:00 to 21:00 + to_time: "to" #eg. from 18:00 to 21:00 title: "Title" dates: "Dates" booking: "Reserva" @@ -286,7 +286,7 @@ pt: hours: "Slots of {DURATION} minutes" related_subscriptions: "Assinaturas relacionadas" please_specify_a_number: "Por favor especifique um número." - none: "Vazio" #grammar concordance with training. + none: "Vazio" #grammar concordance with training. an_error_occurred_while_saving_the_number_of_credits: "Um erro ocorreu enquanto era salvo o número de créditos." an_error_occurred_while_deleting_credit_with_the_TRAINING: "Um erro ocorreu enquanto o crédito era deletado do {TRAINING}." an_error_occurred_unable_to_find_the_credit_to_revoke: "Um erro ocorreu : incapaz de encontrar o crédito para revogar." @@ -352,7 +352,7 @@ pt: successfully_created_subscriptions_dont_forget_to_redefine_prices: "Assinaturas criadas com sucesso. Não se esqueça de redefinir os preços." unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Impossível salvar este usuário. Certifique-se que ele não possui o mesmo nome de outro usuário." edit: - #edit a subscription plan / machine slot prices + #edit a subscription plan / machine slots prices subscription_plan: "Plano de assinatura:" prices: "Preços" copy_prices_from: "Copiar preços de" @@ -410,7 +410,7 @@ pt: year: "Ano" month: "Mês" day: "Dia" - num_of_invoice: "#da fatura" + num_of_invoice: "#of invoice" online_sales: "Vendas online" wallet: "Carteira" refund: "Restituição" @@ -462,7 +462,7 @@ pt: description: "Descrição" description_optional: "Descrição (optional):" will_appear_on_the_refund_invoice: "Aparecerá na fatura de reembolso." - none: "Vazio" #grammar concordance with payment mean + none: "Vazio" #grammar concordance with payment mean by_cash: "Em dinheiro" by_cheque: "Em cheque" by_transfer: "Por transferência" @@ -785,8 +785,8 @@ pt: statistics: "Statistics" evolution: "Evolução" age_filter: "Filtro de idade" - from_age: "Dos" #eg: from 8 to 40 years old - to_age: "aos" #eg: from 8 to 40 years old + from_age: "Dos" #eg. from 8 to 40 years old + to_age: "aos" #eg. from 8 to 40 years old _years_old: "anos de idade" start: "Início:" end: "Fim:" @@ -961,23 +961,23 @@ pt: default_value_is_24_hours: "Se o campo estiver vazio: 24 horas." visibility_yearly: "visibilidade máxima para assinantes anuais" visibility_others: "visibilidade máxima para outros membros" - confidentiality: "Confidentiality" - display_machine_reservation_user_name: "Display the full name of the user who booked a machine slot" - display_name: "Display the name" - display_name_enable: "name display" - machines_sort_by: "machines display order" + confidentiality: "TODO" + display_machine_reservation_user_name: "TODO" + display_name: "TODO" + display_name_enable: "TODO" + machines_sort_by: "TODO" fab_analytics: "Fab Analytics" - elements_ordering: "Elements ordering" - machines_order: "Machines order" - display_machines_sorted_by: "Display machines sorted by" + elements_ordering: "TODO" + machines_order: "TODO" + display_machines_sorted_by: "TODO" advanced: "Advanced settings" customize_home_page_css: "Customise the stylesheet og the home page" home_css_notice_html: "You can customize the stylesheet which will apply to the home page, using the SASS syntax. These styles will be automatically subordinated to the .home-page selector to prevent any risk of breaking the application. Meanwhile please be careful, any changes in the home page editor at the top of the page may broke your styles, always refer to the HTML code." sort_by: - default: "Default" + default: "TODO" name: "Nome" - created_at: "Creation date" - updated_at: "Last update date" + created_at: "TODO" + updated_at: "TODO" privacy: title: "Política de privacidade" input_the_dpo: "Input the contact of the Data Protection Officer" From 63d671609ff4e64616c71c48adf0d0893f351e8a Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:08:01 +0100 Subject: [PATCH 022/136] refactor translations to work with crowdin pull requests --- config/locales/app.admin.en.yml | 2 +- config/locales/app.admin.es.yml | 2 +- config/locales/app.admin.pt.yml | 18 +++++++++--------- config/locales/app.logged.en.yml | 28 ++++++++++++++-------------- config/locales/app.logged.es.yml | 30 +++++++++++++++--------------- config/locales/app.logged.pt.yml | 30 +++++++++++++++--------------- config/locales/app.public.pt.yml | 2 +- 7 files changed, 56 insertions(+), 56 deletions(-) diff --git a/config/locales/app.admin.en.yml b/config/locales/app.admin.en.yml index d6ab5d717..42a8bd190 100644 --- a/config/locales/app.admin.en.yml +++ b/config/locales/app.admin.en.yml @@ -410,7 +410,7 @@ en: year: "Year" month: "Month" day: "Day" - num_of_invoice: "#of invoice" + num_of_invoice: "# of invoice" online_sales: "Online sales" wallet: "Wallet" refund: "Refund" diff --git a/config/locales/app.admin.es.yml b/config/locales/app.admin.es.yml index 62724d2b2..28c867b2d 100644 --- a/config/locales/app.admin.es.yml +++ b/config/locales/app.admin.es.yml @@ -410,7 +410,7 @@ es: year: "Año" month: "Mes" day: "Día" - num_of_invoice: "#de factura" + num_of_invoice: "# de factura" online_sales: "Ventas en línea" wallet: "Cartera" refund: "Reembolso" diff --git a/config/locales/app.admin.pt.yml b/config/locales/app.admin.pt.yml index 00c95c3db..eb88006f7 100755 --- a/config/locales/app.admin.pt.yml +++ b/config/locales/app.admin.pt.yml @@ -47,7 +47,7 @@ pt: manage_trainings: "Click here to add or remove trainings." number_of_tickets: "Número de vagas: " adjust_the_opening_hours: "Ajustar o horário de funcionamento" - to_time: "ás" #eg. from 18:00 to 21:00 + to_time: "ás" #eg. from 18:00 to 21:00 restrict_options: "Restriction options" restrict_with_labels: "Restrinja este slot com etiquetas" restrict_for_subscriptions: "Restrict this slot for subscription users" @@ -147,7 +147,7 @@ pt: NUMBER_reservation: "{NUMBER} {NUMBER, plural, one{reserva} other{reservas}}" none: "Vazio" training_validation: "Validação de treinamentos" - training_of_the_DATE_TIME_html : "Training of the {DATE} - {TIME}" + training_of_the_DATE_TIME_html: "Training of the {DATE} - {TIME}" you_can_validate_the_training_of_the_following_members: "Você pode validar um treinamento dos seguintes membros:" deleted_user: "Deleted user" no_reservation: "Sem reservas" @@ -182,7 +182,7 @@ pt: from_DATE: "Em {DATE}" from_TIME: "Ás {TIME}" to_date: "to" #eg: from 01/01 to 01/05 - to_time: "to" #eg. from 18:00 to 21:00 + to_time: "to" #eg. from 18:00 to 21:00 title: "Title" dates: "Dates" booking: "Reserva" @@ -286,7 +286,7 @@ pt: hours: "Slots of {DURATION} minutes" related_subscriptions: "Assinaturas relacionadas" please_specify_a_number: "Por favor especifique um número." - none: "Vazio" #grammar concordance with training. + none: "Vazio" #grammar concordance with training. an_error_occurred_while_saving_the_number_of_credits: "Um erro ocorreu enquanto era salvo o número de créditos." an_error_occurred_while_deleting_credit_with_the_TRAINING: "Um erro ocorreu enquanto o crédito era deletado do {TRAINING}." an_error_occurred_unable_to_find_the_credit_to_revoke: "Um erro ocorreu : incapaz de encontrar o crédito para revogar." @@ -352,7 +352,7 @@ pt: successfully_created_subscriptions_dont_forget_to_redefine_prices: "Assinaturas criadas com sucesso. Não se esqueça de redefinir os preços." unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Impossível salvar este usuário. Certifique-se que ele não possui o mesmo nome de outro usuário." edit: - #edit a subscription plan / machine slot prices + #edit a subscription plan / machine slots prices subscription_plan: "Plano de assinatura:" prices: "Preços" copy_prices_from: "Copiar preços de" @@ -410,7 +410,7 @@ pt: year: "Ano" month: "Mês" day: "Dia" - num_of_invoice: "#da fatura" + num_of_invoice: "# da fatura" online_sales: "Vendas online" wallet: "Carteira" refund: "Restituição" @@ -462,7 +462,7 @@ pt: description: "Descrição" description_optional: "Descrição (optional):" will_appear_on_the_refund_invoice: "Aparecerá na fatura de reembolso." - none: "Vazio" #grammar concordance with payment mean + none: "Vazio" #grammar concordance with payment mean by_cash: "Em dinheiro" by_cheque: "Em cheque" by_transfer: "Por transferência" @@ -785,8 +785,8 @@ pt: statistics: "Statistics" evolution: "Evolução" age_filter: "Filtro de idade" - from_age: "Dos" #eg: from 8 to 40 years old - to_age: "aos" #eg: from 8 to 40 years old + from_age: "Dos" #eg. from 8 to 40 years old + to_age: "aos" #eg. from 8 to 40 years old _years_old: "anos de idade" start: "Início:" end: "Fim:" diff --git a/config/locales/app.logged.en.yml b/config/locales/app.logged.en.yml index 97308ec37..06dbad3bc 100644 --- a/config/locales/app.logged.en.yml +++ b/config/locales/app.logged.en.yml @@ -1,8 +1,8 @@ en: app: logged: + #user's profile completion page when logging from an SSO provider profile_completion: - #user's profile completion page when logging from an SSO provider confirm_your_new_account: "Confirm your new account" you_ve_just_created_a_new_account_on_the_fablab_by_logging_from: "You've just created a new account on {GENDER, select, neutral{} other{the}} {NAME}, by logging from" we_need_some_more_details: "To finalize the platform setup, we need some more details" @@ -43,8 +43,8 @@ en: #dashboard: public profile profile: empty: '' + #dashboard: edit my profile settings: - #dashboard: edit my profile last_activity_on_: "Last activity on" i_want_to_change_group: "I want to change group!" your_subscription_expires_on_: "Your subscription expires on" @@ -91,8 +91,8 @@ en: _click_on_the_synchronization_button_opposite_: "click on the synchronization button opposite" _disconnect_then_reconnect_: "disconnect then reconnect" _for_your_changes_to_take_effect: "for your changes to take effect." + #dashboard: my projects projects: - #dashboard: my projects you_dont_have_any_projects: "You don't have any projects." add_a_project: "Add a project" author: "Author" @@ -103,33 +103,33 @@ en: machines: "Machines" materials: "Materials" collaborators: "Collaborators" + #dashboard: my trainings trainings: - #dashboard: my trainings your_next_trainings: "Your next trainings" your_previous_trainings: "Your previous trainings" your_approved_trainings: "Your approved trainings" no_trainings: "No trainings" + #dashboard: my events events: - #dashboard: my events your_next_events: "Your next events" no_events_to_come: "No events to come" your_previous_events: "Your previous events" no_passed_events: "No passed events" NUMBER_normal_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{normal place reserved} other{normal places reserved}}" NUMBER_of_NAME_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{of {NAME} place reserved} other{of {NAME} places reserved}}" + #dashboard: my invoices invoices: - #dashboard: my invoices reference_number: "Reference number" date: "Date" price: "Price" download_the_invoice: "Download the invoice" download_the_credit_note: "Download the refund invoice" no_invoices_for_now: "No invoices for now." + #public profil of a member members_show: - #public profil of a member members_list: "Members list" + #list of members accepting to be contacted members: - #list of members accepting to be contacted the_fablab_members: "The Fab Lab members" display_more_members: "Display more members..." no_members_for_now: "No members for now" @@ -137,16 +137,16 @@ en: user: "User" pseudonym: "Pseudonym" email_address: "Email address" + #add a new project projects_new: - #add a new project add_a_new_project: "Add a new project" + #modify an existing project projects_edit: - #modify an existing project edit_the_project: "Edit the project" rough_draft: "Draft" publish: "Publish" + #book a machine machines_reserve: - #book a machine machine_planning: "Machine planning" i_ve_reserved: "I've reserved" not_available: "Not available" @@ -157,17 +157,17 @@ en: reservation_was_cancelled_successfully: "Reservation was cancelled successfully." cancellation_failed: "Cancellation failed." a_problem_occured_during_the_payment_process_please_try_again_later: "A problem occurred during the payment process. Please try again later." + #book a training trainings_reserve: - #book a training trainings_planning: "Trainings planning" - planning_of: "Planning of" #followed by the training name (eg. Planning of 3d printer training) + planning_of: "Planning of " #followed by the training name (eg. Planning of 3d printer training) all_trainings: "All trainings" cancel_my_selection: "Cancel my selection" i_change: "I change" i_shift: "I shift" i_ve_reserved: "I've reserved" + #book a space space_reserve: - #book a space planning_of_space_NAME: "Planning of the {NAME} space" i_ve_reserved: "I've reserved" i_shift: "I shift" diff --git a/config/locales/app.logged.es.yml b/config/locales/app.logged.es.yml index faf628241..fbe4c8712 100644 --- a/config/locales/app.logged.es.yml +++ b/config/locales/app.logged.es.yml @@ -2,7 +2,7 @@ es: app: logged: profile_completion: - # user's profile completion page when logging from an SSO provider + #user's profile completion page when logging from an SSO provider confirm_your_new_account: "Confirme su nueva cuenta" you_ve_just_created_a_new_account_on_the_fablab_by_logging_from: "Acaba de crear una nueva cuenta en {GENDER, select, male{el} female{la} neutral{} other{las}} {NAME}, al iniciar sesión desde" we_need_some_more_details: "Para finalizar la configuración de la plataforma, necesitamos algunos detalles más." @@ -40,11 +40,11 @@ es: _disconnect_then_reconnect_: "disconnect then reconnect" _for_your_changes_to_take_effect: "for your changes to take effect." dashboard: - # dashboard: public profile + #dashboard: public profile profile: empty: '' settings: - # dashboard: edit my profile + #dashboard: edit my profile last_activity_on_: "Última vez activo" i_want_to_change_group: "Quiero cambiar de grupo" your_subscription_expires_on_: "su suscripción acaba el" @@ -92,7 +92,7 @@ es: _disconnect_then_reconnect_: "reconectarse" _for_your_changes_to_take_effect: "para que sus cambios sean aplicados." projects: - # dashboard: my projects + #dashboard: my projects you_dont_have_any_projects: "Aún no tiene proyectos." add_a_project: "Add a project" author: "Autor" @@ -104,13 +104,13 @@ es: materials: "Materials" collaborators: "Collaborators" trainings: - # dashboard: my trainings + #dashboard: my trainings your_next_trainings: "Sus próximos cursos" your_previous_trainings: "Sus cursos anteriores" your_approved_trainings: "Sus cursos aprobados" no_trainings: "No trainings" events: - # dashboard: my events + #dashboard: my events your_next_events: "Sus próximos eventos" no_events_to_come: "No hay próximos eventos" your_previous_events: "Sus eventos anteriores" @@ -118,7 +118,7 @@ es: NUMBER_normal_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{normal place reserved} other{normal places reserved}}" NUMBER_of_NAME_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{of {NAME} place reserved} other{of {NAME} places reserved}}" invoices: - # dashboard: my invoices + #dashboard: my invoices reference_number: "Numero de referencia" date: "Date" price: "Price" @@ -126,10 +126,10 @@ es: download_the_credit_note: "Download the refund invoice" no_invoices_for_now: "No invoices for now." members_show: - # public profil of a member + #public profil of a member members_list: "Lista de miembros" members: - # list of members accepting to be contacted + #list of members accepting to be contacted the_fablab_members: "Los miembros del fablab" display_more_members: "Ver más miembros" no_members_for_now: "Aún no hay miembros" @@ -138,15 +138,15 @@ es: pseudonym: "Pseudonym" email_address: "Email address" projects_new: - # add a new project + #add a new project add_a_new_project: "Añadir nuevo proyecto" projects_edit: - # modify an existing project + #modify an existing project edit_the_project: "Editar proyecto" rough_draft: "Draft" publish: "Publicar" machines_reserve: - # book a machine + #book a machine machine_planning: "Planning de la máquina" i_ve_reserved: "He reservado" not_available: "No disponible" @@ -158,16 +158,16 @@ es: cancellation_failed: "Cancellation failed." a_problem_occured_during_the_payment_process_please_try_again_later: "A problem occurred during the payment process. Please try again later." trainings_reserve: - # book a training + #book a training trainings_planning: "Plan de curso" - planning_of: "Plan de " # followed by the training name (eg. Planning of 3d printer training) + planning_of: "Plan de " #followed by the training name (eg. Planning of 3d printer training) all_trainings: "Todos los cursos" cancel_my_selection: "Cancelar mi selección" i_change: "I change" i_shift: "I shift" i_ve_reserved: "He reservado" space_reserve: - # book a space + #book a space planning_of_space_NAME: "Planes de {NAME} " i_ve_reserved: "he reservado" i_shift: "reemplazo" diff --git a/config/locales/app.logged.pt.yml b/config/locales/app.logged.pt.yml index 5bb66f2fc..570c0d7bf 100755 --- a/config/locales/app.logged.pt.yml +++ b/config/locales/app.logged.pt.yml @@ -2,7 +2,7 @@ pt: app: logged: profile_completion: - # user's profile completion page when logging from an SSO provider + #user's profile completion page when logging from an SSO provider confirm_your_new_account: "Confirme sua nova conta" you_ve_just_created_a_new_account_on_the_fablab_by_logging_from: "Você acabou de criar uma nova conta como {GENDER, select, male{o} female{a} neutral{} other{do}} {NAME}" we_need_some_more_details: "Para finalizar a configuração da plataforma, precisamos de mais detalhes" @@ -40,11 +40,11 @@ pt: _disconnect_then_reconnect_: "disconnect then reconnect" _for_your_changes_to_take_effect: "for your changes to take effect." dashboard: - # dashboard: public profile + #dashboard: public profile profile: empty: '' settings: - # dashboard: edit my profile + #dashboard: edit my profile last_activity_on_: "Última atividade em" i_want_to_change_group: "Eu quero trocar de grupo!" your_subscription_expires_on_: "Sua inscrição expira em" @@ -92,7 +92,7 @@ pt: _disconnect_then_reconnect_: "disconecte e se conecte novamente" _for_your_changes_to_take_effect: "para que suas alterações tenham efeitos." projects: - # dashboard: my projects + #dashboard: my projects you_dont_have_any_projects: "Você não tem nenhum projeto." add_a_project: "Add a project" author: "Autor" @@ -104,13 +104,13 @@ pt: materials: "Materials" collaborators: "Collaborators" trainings: - # dashboard: my trainings + #dashboard: my trainings your_next_trainings: "Seus próximos treinamentos" your_previous_trainings: "Seus treinamentos anteriores" your_approved_trainings: "Seus treinamentos aprovados" no_trainings: "No trainings" events: - # dashboard: my events + #dashboard: my events your_next_events: "Seus próximos eventos" no_events_to_come: "Sem eventos futuros" your_previous_events: "Seus eventos anteriores" @@ -118,7 +118,7 @@ pt: NUMBER_normal_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{lugar normal reservado} other{lugares normais reservados}}" NUMBER_of_NAME_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{{NAME} lugar reservado} other{{NAME} lugares reservados}}" invoices: - # dashboard: my invoices + #dashboard: my invoices reference_number: "Número de referência" date: "Date" price: "Price" @@ -126,10 +126,10 @@ pt: download_the_credit_note: "Download the refund invoice" no_invoices_for_now: "No invoices for now." members_show: - # public profil of a member + #public profil of a member members_list: "Lista de membros" members: - # list of members accepting to be contacted + #list of members accepting to be contacted the_fablab_members: "Membros do FabLab" display_more_members: "Mostrar mais membros..." no_members_for_now: "Sem membros" @@ -138,15 +138,15 @@ pt: pseudonym: "Pseudonym" email_address: "Email address" projects_new: - # add a new project + #add a new project add_a_new_project: "Adicionar novo projeto" projects_edit: - # modify an existing project + #modify an existing project edit_the_project: "Editar projeto" rough_draft: "Draft" publish: "Publicar" machines_reserve: - # book a machine + #book a machine machine_planning: "Planejamento de máquinas" i_ve_reserved: "Eu tenho reserva" not_available: "Não disponível" @@ -158,16 +158,16 @@ pt: cancellation_failed: "Cancellation failed." a_problem_occured_during_the_payment_process_please_try_again_later: "A problem occurred during the payment process. Please try again later." trainings_reserve: - # book a training + #book a training trainings_planning: "Planos de treinamento" - planning_of: "Planejamento de" # followed by the training name (eg. Planning of 3d printer training) + planning_of: "Planejamento de" #followed by the training name (eg. Planning of 3d printer training) all_trainings: "Todos treinamentos" cancel_my_selection: "Cancelar minha seleção" i_change: "I change" i_shift: "I shift" i_ve_reserved: "Eu reservei" space_reserve: - # book a space + #book a space planning_of_space_NAME: "Plano de {NAME} espaço" i_ve_reserved: "Eu reservei" i_shift: "Eu troco" diff --git a/config/locales/app.public.pt.yml b/config/locales/app.public.pt.yml index deeff8433..866dc8fbe 100755 --- a/config/locales/app.public.pt.yml +++ b/config/locales/app.public.pt.yml @@ -318,7 +318,7 @@ pt: cancel_the_reservation: "Cancel the reservation" do_you_really_want_to_cancel_this_reservation_this_apply_to_all_booked_tickets: "Do you really want to cancel this reservation? This apply to ALL booked tickets." reservation_was_successfully_cancelled: "Reservation was successfully cancelled" - cancellation_failed: "Cancellation failed." #translation_missin + cancellation_failed: "Cancellation failed." event_is_over: "The event is over" thanks_for_coming: "Thanks for coming!" view_event_list: "View events to come" From 969b6682d59bce9bc0be43fe8b2b9a7c29e6b601 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:10:31 +0100 Subject: [PATCH 023/136] New translations app.logged.en.yml (Acholi) --- config/locales/app.logged.ach.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/config/locales/app.logged.ach.yml b/config/locales/app.logged.ach.yml index 00b0421ee..01df0642f 100644 --- a/config/locales/app.logged.ach.yml +++ b/config/locales/app.logged.ach.yml @@ -1,8 +1,8 @@ ach: app: logged: + #user's profile completion page when logging from an SSO provider profile_completion: - #user's profile completion page when logging from an SSO provider confirm_your_new_account: "crwdns8505:0crwdne8505:0" you_ve_just_created_a_new_account_on_the_fablab_by_logging_from: "crwdns8507:0GENDER={GENDER}crwdnd8507:0NAME={NAME}crwdne8507:0" we_need_some_more_details: "crwdns8509:0crwdne8509:0" @@ -43,8 +43,8 @@ ach: #dashboard: public profile profile: empty: 'crwdns8577:0crwdne8577:0' + #dashboard: edit my profile settings: - #dashboard: edit my profile last_activity_on_: "crwdns8579:0crwdne8579:0" i_want_to_change_group: "crwdns8581:0crwdne8581:0" your_subscription_expires_on_: "crwdns8583:0crwdne8583:0" @@ -91,8 +91,8 @@ ach: _click_on_the_synchronization_button_opposite_: "crwdns8665:0crwdne8665:0" _disconnect_then_reconnect_: "crwdns8667:0crwdne8667:0" _for_your_changes_to_take_effect: "crwdns8669:0crwdne8669:0" + #dashboard: my projects projects: - #dashboard: my projects you_dont_have_any_projects: "crwdns8671:0crwdne8671:0" add_a_project: "crwdns8673:0crwdne8673:0" author: "crwdns8675:0crwdne8675:0" @@ -103,33 +103,33 @@ ach: machines: "crwdns8685:0crwdne8685:0" materials: "crwdns8687:0crwdne8687:0" collaborators: "crwdns8689:0crwdne8689:0" + #dashboard: my trainings trainings: - #dashboard: my trainings your_next_trainings: "crwdns8691:0crwdne8691:0" your_previous_trainings: "crwdns8693:0crwdne8693:0" your_approved_trainings: "crwdns8695:0crwdne8695:0" no_trainings: "crwdns8697:0crwdne8697:0" + #dashboard: my events events: - #dashboard: my events your_next_events: "crwdns8699:0crwdne8699:0" no_events_to_come: "crwdns8701:0crwdne8701:0" your_previous_events: "crwdns8703:0crwdne8703:0" no_passed_events: "crwdns8705:0crwdne8705:0" NUMBER_normal_places_reserved: "crwdns8707:0NUMBER={NUMBER}crwdnd8707:0NUMBER={NUMBER}crwdne8707:0" NUMBER_of_NAME_places_reserved: "crwdns8709:0NUMBER={NUMBER}crwdnd8709:0NUMBER={NUMBER}crwdnd8709:0NAME={NAME}crwdnd8709:0NAME={NAME}crwdne8709:0" + #dashboard: my invoices invoices: - #dashboard: my invoices reference_number: "crwdns8711:0crwdne8711:0" date: "crwdns8713:0crwdne8713:0" price: "crwdns8715:0crwdne8715:0" download_the_invoice: "crwdns8717:0crwdne8717:0" download_the_credit_note: "crwdns8719:0crwdne8719:0" no_invoices_for_now: "crwdns8721:0crwdne8721:0" + #public profil of a member members_show: - #public profil of a member members_list: "crwdns8723:0crwdne8723:0" + #list of members accepting to be contacted members: - #list of members accepting to be contacted the_fablab_members: "crwdns8725:0crwdne8725:0" display_more_members: "crwdns8727:0crwdne8727:0" no_members_for_now: "crwdns8729:0crwdne8729:0" @@ -137,16 +137,16 @@ ach: user: "crwdns8733:0crwdne8733:0" pseudonym: "crwdns8735:0crwdne8735:0" email_address: "crwdns8737:0crwdne8737:0" + #add a new project projects_new: - #add a new project add_a_new_project: "crwdns8739:0crwdne8739:0" + #modify an existing project projects_edit: - #modify an existing project edit_the_project: "crwdns8741:0crwdne8741:0" rough_draft: "crwdns8743:0crwdne8743:0" publish: "crwdns8745:0crwdne8745:0" + #book a machine machines_reserve: - #book a machine machine_planning: "crwdns8747:0crwdne8747:0" i_ve_reserved: "crwdns8749:0crwdne8749:0" not_available: "crwdns8751:0crwdne8751:0" @@ -157,17 +157,17 @@ ach: reservation_was_cancelled_successfully: "crwdns8761:0crwdne8761:0" cancellation_failed: "crwdns8763:0crwdne8763:0" a_problem_occured_during_the_payment_process_please_try_again_later: "crwdns8765:0crwdne8765:0" + #book a training trainings_reserve: - #book a training trainings_planning: "crwdns8767:0crwdne8767:0" - planning_of: "crwdns20180:0crwdne20180:0" #followed by the training name (eg. Planning of 3d printer training) + planning_of: "crwdns20194:0crwdne20194:0" #followed by the training name (eg. Planning of 3d printer training) all_trainings: "crwdns8771:0crwdne8771:0" cancel_my_selection: "crwdns8773:0crwdne8773:0" i_change: "crwdns8775:0crwdne8775:0" i_shift: "crwdns8777:0crwdne8777:0" i_ve_reserved: "crwdns8779:0crwdne8779:0" + #book a space space_reserve: - #book a space planning_of_space_NAME: "crwdns8781:0{NAME}crwdne8781:0" i_ve_reserved: "crwdns8783:0crwdne8783:0" i_shift: "crwdns8785:0crwdne8785:0" From 59692507d5a6252f68704cc04a2a81cccf425181 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:10:33 +0100 Subject: [PATCH 024/136] New translations app.admin.en.yml (Acholi) --- config/locales/app.admin.ach.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.admin.ach.yml b/config/locales/app.admin.ach.yml index f99aaeb7b..ef60861fa 100644 --- a/config/locales/app.admin.ach.yml +++ b/config/locales/app.admin.ach.yml @@ -410,7 +410,7 @@ ach: year: "crwdns7391:0crwdne7391:0" month: "crwdns7393:0crwdne7393:0" day: "crwdns7395:0crwdne7395:0" - num_of_invoice: "crwdns20178:0crwdne20178:0" + num_of_invoice: "crwdns20192:0crwdne20192:0" online_sales: "crwdns7399:0crwdne7399:0" wallet: "crwdns7401:0crwdne7401:0" refund: "crwdns7403:0crwdne7403:0" From 264d4d8da35661d93fa9010db71cce30b83d0344 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:10:38 +0100 Subject: [PATCH 025/136] New translations app.logged.en.yml (Spanish) --- config/locales/app.logged.es.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/config/locales/app.logged.es.yml b/config/locales/app.logged.es.yml index c7cfa86e8..dbecdb544 100644 --- a/config/locales/app.logged.es.yml +++ b/config/locales/app.logged.es.yml @@ -1,8 +1,8 @@ es: app: logged: + #user's profile completion page when logging from an SSO provider profile_completion: - #user's profile completion page when logging from an SSO provider confirm_your_new_account: "Confirme su nueva cuenta" you_ve_just_created_a_new_account_on_the_fablab_by_logging_from: "Acaba de crear una nueva cuenta en {GENDER, select, male{el} female{la} neutral{} other{las}} {NAME}, al iniciar sesión desde" we_need_some_more_details: "Para finalizar la configuración de la plataforma, necesitamos algunos detalles más." @@ -43,8 +43,8 @@ es: #dashboard: public profile profile: empty: '' + #dashboard: edit my profile settings: - #dashboard: edit my profile last_activity_on_: "Última vez activo" i_want_to_change_group: "Quiero cambiar de grupo" your_subscription_expires_on_: "su suscripción acaba el" @@ -91,8 +91,8 @@ es: _click_on_the_synchronization_button_opposite_: "haz clic en el botón de sincronización" _disconnect_then_reconnect_: "reconectarse" _for_your_changes_to_take_effect: "para que sus cambios sean aplicados." + #dashboard: my projects projects: - #dashboard: my projects you_dont_have_any_projects: "Aún no tiene proyectos." add_a_project: "Add a project" author: "Autor" @@ -103,33 +103,33 @@ es: machines: "Machines" materials: "Materials" collaborators: "Collaborators" + #dashboard: my trainings trainings: - #dashboard: my trainings your_next_trainings: "Sus próximos cursos" your_previous_trainings: "Sus cursos anteriores" your_approved_trainings: "Sus cursos aprobados" no_trainings: "No trainings" + #dashboard: my events events: - #dashboard: my events your_next_events: "Sus próximos eventos" no_events_to_come: "No hay próximos eventos" your_previous_events: "Sus eventos anteriores" no_passed_events: "No passed events" NUMBER_normal_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{normal place reserved} other{normal places reserved}}" NUMBER_of_NAME_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{of {NAME} place reserved} other{of {NAME} places reserved}}" + #dashboard: my invoices invoices: - #dashboard: my invoices reference_number: "Numero de referencia" date: "Date" price: "Price" download_the_invoice: "Download the invoice" download_the_credit_note: "Download the refund invoice" no_invoices_for_now: "No invoices for now." + #public profil of a member members_show: - #public profil of a member members_list: "Lista de miembros" + #list of members accepting to be contacted members: - #list of members accepting to be contacted the_fablab_members: "Los miembros del fablab" display_more_members: "Ver más miembros" no_members_for_now: "Aún no hay miembros" @@ -137,16 +137,16 @@ es: user: "User" pseudonym: "Pseudonym" email_address: "Email address" + #add a new project projects_new: - #add a new project add_a_new_project: "Añadir nuevo proyecto" + #modify an existing project projects_edit: - #modify an existing project edit_the_project: "Editar proyecto" rough_draft: "Draft" publish: "Publicar" + #book a machine machines_reserve: - #book a machine machine_planning: "Planning de la máquina" i_ve_reserved: "He reservado" not_available: "No disponible" @@ -157,17 +157,17 @@ es: reservation_was_cancelled_successfully: "Reservation was cancelled successfully." cancellation_failed: "Cancellation failed." a_problem_occured_during_the_payment_process_please_try_again_later: "A problem occurred during the payment process. Please try again later." + #book a training trainings_reserve: - #book a training trainings_planning: "Plan de curso" - planning_of: "Planning of" #followed by the training name (eg. Planning of 3d printer training) + planning_of: "Planning of " #followed by the training name (eg. Planning of 3d printer training) all_trainings: "Todos los cursos" cancel_my_selection: "Cancelar mi selección" i_change: "I change" i_shift: "I shift" i_ve_reserved: "He reservado" + #book a space space_reserve: - #book a space planning_of_space_NAME: "Planes de {NAME} " i_ve_reserved: "he reservado" i_shift: "reemplazo" From d5861737e117bb1bd19d0634c02bbdb9403ed798 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:10:42 +0100 Subject: [PATCH 026/136] New translations app.admin.en.yml (Spanish) --- config/locales/app.admin.es.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.admin.es.yml b/config/locales/app.admin.es.yml index c402a01ba..2f2056389 100644 --- a/config/locales/app.admin.es.yml +++ b/config/locales/app.admin.es.yml @@ -410,7 +410,7 @@ es: year: "Año" month: "Mes" day: "Día" - num_of_invoice: "#of invoice" + num_of_invoice: "# of invoice" online_sales: "Ventas en línea" wallet: "Cartera" refund: "Reembolso" From 8fc79b411ae856977e46e01e01417d9a1f37323f Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:10:48 +0100 Subject: [PATCH 027/136] New translations app.logged.en.yml (Portuguese) --- config/locales/app.logged.pt.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/config/locales/app.logged.pt.yml b/config/locales/app.logged.pt.yml index 475c8c7a1..60d8f29b9 100755 --- a/config/locales/app.logged.pt.yml +++ b/config/locales/app.logged.pt.yml @@ -1,8 +1,8 @@ pt: app: logged: + #user's profile completion page when logging from an SSO provider profile_completion: - #user's profile completion page when logging from an SSO provider confirm_your_new_account: "Confirme sua nova conta" you_ve_just_created_a_new_account_on_the_fablab_by_logging_from: "Você acabou de criar uma nova conta como {GENDER, select, male{o} female{a} neutral{} other{do}} {NAME}" we_need_some_more_details: "Para finalizar a configuração da plataforma, precisamos de mais detalhes" @@ -43,8 +43,8 @@ pt: #dashboard: public profile profile: empty: '' + #dashboard: edit my profile settings: - #dashboard: edit my profile last_activity_on_: "Última atividade em" i_want_to_change_group: "Eu quero trocar de grupo!" your_subscription_expires_on_: "Sua inscrição expira em" @@ -91,8 +91,8 @@ pt: _click_on_the_synchronization_button_opposite_: "clique no botão de sincronização" _disconnect_then_reconnect_: "disconecte e se conecte novamente" _for_your_changes_to_take_effect: "para que suas alterações tenham efeitos." + #dashboard: my projects projects: - #dashboard: my projects you_dont_have_any_projects: "Você não tem nenhum projeto." add_a_project: "Add a project" author: "Autor" @@ -103,33 +103,33 @@ pt: machines: "Machines" materials: "Materials" collaborators: "Collaborators" + #dashboard: my trainings trainings: - #dashboard: my trainings your_next_trainings: "Seus próximos treinamentos" your_previous_trainings: "Seus treinamentos anteriores" your_approved_trainings: "Seus treinamentos aprovados" no_trainings: "No trainings" + #dashboard: my events events: - #dashboard: my events your_next_events: "Seus próximos eventos" no_events_to_come: "Sem eventos futuros" your_previous_events: "Seus eventos anteriores" no_passed_events: "No passed events" NUMBER_normal_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{lugar normal reservado} other{lugares normais reservados}}" NUMBER_of_NAME_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{{NAME} lugar reservado} other{{NAME} lugares reservados}}" + #dashboard: my invoices invoices: - #dashboard: my invoices reference_number: "Número de referência" date: "Date" price: "Price" download_the_invoice: "Download the invoice" download_the_credit_note: "Download the refund invoice" no_invoices_for_now: "No invoices for now." + #public profil of a member members_show: - #public profil of a member members_list: "Lista de membros" + #list of members accepting to be contacted members: - #list of members accepting to be contacted the_fablab_members: "Membros do FabLab" display_more_members: "Mostrar mais membros..." no_members_for_now: "Sem membros" @@ -137,16 +137,16 @@ pt: user: "User" pseudonym: "Pseudonym" email_address: "Email address" + #add a new project projects_new: - #add a new project add_a_new_project: "Adicionar novo projeto" + #modify an existing project projects_edit: - #modify an existing project edit_the_project: "Editar projeto" rough_draft: "Draft" publish: "Publicar" + #book a machine machines_reserve: - #book a machine machine_planning: "Planejamento de máquinas" i_ve_reserved: "Eu tenho reserva" not_available: "Não disponível" @@ -157,17 +157,17 @@ pt: reservation_was_cancelled_successfully: "Reservation was cancelled successfully." cancellation_failed: "Cancellation failed." a_problem_occured_during_the_payment_process_please_try_again_later: "A problem occurred during the payment process. Please try again later." + #book a training trainings_reserve: - #book a training trainings_planning: "Planos de treinamento" - planning_of: "Planning of" #followed by the training name (eg. Planning of 3d printer training) + planning_of: "Planning of " #followed by the training name (eg. Planning of 3d printer training) all_trainings: "Todos treinamentos" cancel_my_selection: "Cancelar minha seleção" i_change: "I change" i_shift: "I shift" i_ve_reserved: "Eu reservei" + #book a space space_reserve: - #book a space planning_of_space_NAME: "Plano de {NAME} espaço" i_ve_reserved: "Eu reservei" i_shift: "Eu troco" From 8c4fa92031f147cb426b2ba472073887aae5cd1f Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:10:51 +0100 Subject: [PATCH 028/136] New translations app.admin.en.yml (Portuguese) --- config/locales/app.admin.pt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.admin.pt.yml b/config/locales/app.admin.pt.yml index 97f7cc873..ec3e25667 100755 --- a/config/locales/app.admin.pt.yml +++ b/config/locales/app.admin.pt.yml @@ -410,7 +410,7 @@ pt: year: "Ano" month: "Mês" day: "Dia" - num_of_invoice: "#of invoice" + num_of_invoice: "# of invoice" online_sales: "Vendas online" wallet: "Carteira" refund: "Restituição" From 0e11ccabccb6dc2638a2878b6759a878cc683dd9 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:10:53 +0100 Subject: [PATCH 029/136] New translations mails.en.yml (Portuguese) --- config/locales/mails.pt.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/config/locales/mails.pt.yml b/config/locales/mails.pt.yml index 5060d078b..22d86666d 100755 --- a/config/locales/mails.pt.yml +++ b/config/locales/mails.pt.yml @@ -1,7 +1,7 @@ pt: layouts: notifications_mailer: - see_you_later: "Te vejo em breve em {GENDER, select, male{o} female{a} neutral{} other{do}}" #messageFormat interpolation + see_you_later: "Te vejo em breve em {GENDER, select, male{o} female{a} neutral{} other{do}}" #messageFormat interpolation sincerely: "Atenciosamente," signature: "Equipe do Fab Lab." do_not_reply: "Por favor não responda este email." @@ -10,7 +10,7 @@ pt: subject: "Sua conta no FabLab foi criada com sucesso" body: hello: "Olá %{NAME}," - intro: "A equipe do FabLab acaba de criar uma conta para você em {GENDER, select, male{o} female{a} neutral{} other{do}} {FABLAB} website:" #messageFormat interpolation + intro: "A equipe do FabLab acaba de criar uma conta para você em {GENDER, select, male{o} female{a} neutral{} other{do}} {FABLAB} website:" #messageFormat interpolation connection_parameters: "Aqui estão seus parâmetros de conexão:" account_name: "Nome da conta:" password: "Senha:" @@ -33,7 +33,7 @@ pt: notify_admin_subscription_extended: subject: "Uma assinatura foi estendida" body: - subscription_extended_html: "Assinatura {PLAN} pelo usuário {NAME} foi extendida {FREE, select, true{grátis} other{}} until {DATE}." #messageFormat interpolation + subscription_extended_html: "Assinatura {PLAN} pelo usuário {NAME} foi extendida {FREE, select, true{grátis} other{}} until {DATE}." #messageFormat interpolation notify_member_subscription_extended: subject: "Sua assinatura foi extendida" body: @@ -108,8 +108,8 @@ pt: notify_member_invoice_ready: subject: "Fatura do seu FabLab" body: - please_find_attached_html: "Por favor, encontre como anexo a sua fatura de {DATE}, com o montante de {AMOUNT} sobre o seu {TYPE, select, Reservation{reserva} other{assinatura}}." #messageFormat interpolation - invoice_in_your_dashboard_html: "Você pode acessar sua fatura em %{DASHBOARD} no site Fab Lab." + please_find_attached_html: "Por favor, encontre como anexo a sua fatura de {DATE}, com o montante de {AMOUNT} sobre o seu {TYPE, select, Reservation{reserva} other{assinatura}}." #messageFormat interpolation + invoice_in_your_dashboard_html: "Você pode acessar sua fatura em %{DASHBOARD} no site Fab Lab." your_dashboard: "seu dashboard" notify_member_reservation_reminder: subject: "Lembrete de reserva" @@ -119,7 +119,7 @@ pt: notify_member_avoir_ready: subject: "Fatura de reembolso do seu FabLab" body: - please_find_attached_html: "Por favor, encontre como anexo a sua fatura de reembolso {DATE}, com o montante de {AMOUNT} sobre o seu {TYPE, select, Reservation{reserva} WalletTransaction{carteira de crédito} other{assinatura}}." #messageFormat interpolation + please_find_attached_html: "Por favor, encontre como anexo a sua fatura de reembolso {DATE}, com o montante de {AMOUNT} sobre o seu {TYPE, select, Reservation{reserva} WalletTransaction{carteira de crédito} other{assinatura}}." #messageFormat interpolation invoice_in_your_dashboard_html: "Você pode acessar sua fatura de reembolso em %{DASHBOARD} no site Fab Lab." your_dashboard: "seu dashboard" notify_member_subscription_will_expire_in_7_days: @@ -246,7 +246,7 @@ pt: subject: "Cupom" body: enjoy_a_discount_of_PERCENT_with_code_CODE: "Desfrute de um desconto de %{PERCENT}% em todo o site com o código %{CODE}." - enjoy_a_discount_of_AMOUNT_with_code_CODE: "Desfrute de um desconto de %{AMOUNT} em todo o site com o código %{CODE}." + enjoy_a_discount_of_AMOUNT_with_code_CODE: "Desfrute de um desconto de %{AMOUNT} em todo o site com o código %{CODE}." this_coupon_is_valid_USAGE_times_until_DATE_for_all_your_purchases: "Esse cupom é válido {USAGE, plural, =1{uma vez} other{vérias vezes}}: para todas as suas compras {TYPE, select, amount_off{pelo menos igual ao montante do cupom} other{}}, from now {DATE, select, NO-DATE{e sem limite de tempo} other{até {DATE}}}." notify_admin_free_disk_space: subject: "Low disk space" From 5be85b800737cfd7af098a0990f212c7a90af709 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:10:55 +0100 Subject: [PATCH 030/136] New translations devise.en.yml (Portuguese) --- config/locales/devise.pt.yml | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/config/locales/devise.pt.yml b/config/locales/devise.pt.yml index 5781441f8..bcc5e6543 100755 --- a/config/locales/devise.pt.yml +++ b/config/locales/devise.pt.yml @@ -1,5 +1,4 @@ -# Additional translations at https://github.com/plataformatec/devise/wiki/I18n - +#Additional translations at https://github.com/plataformatec/devise/wiki/I18n pt: devise: confirmations: @@ -15,17 +14,17 @@ pt: not_found_in_database: "Email ou senha inválidos." timeout: "Sua sessão expirou, faça login novamente para continuar." unauthenticated: "Você precisa fazer login ou se registrar, antes de continuar." - unconfirmed: "Você precisa confirmar sua conta, antes de continuar. Por favor, clique no link abaixo do formulário." + unconfirmed: "You have to confirm your account before continuing. Please click on the link below the form." mailer: confirmation_instructions: - action: - instruction: - subject: "Instruções de confirmação" + action: "Confirm my email address" + instruction: "You can finalize your registration by confirming your email address. Please click on the following link:" + subject: "Confirmation instructions" reset_password_instructions: - action: - instruction: - ignore_otherwise: - subject: "Instruções para redefinir sua senha" + action: "Change my password" + instruction: "Someone asked for a link to change your password. You can do it through the link below." + ignore_otherwise: "If you have not made this request, please ignore this message." + subject: "Reset password instructions" unlock_instructions: subject: "Instruções para desbloquear sua conta" omniauth_callbacks: @@ -54,10 +53,10 @@ pt: unlocked: "Sua conta foi desbloqueada com sucesso. Faça login para continuar." errors: messages: - already_confirmed: "Este email já foi confirmado." + already_confirmed: "This email was already confirmed, please try signing in." confirmation_period_expired: "deve ser confirmada dentro de %{period}, por favor solicite uma nova" expired: "expirado, por favor solicite uma nova" - not_found: "Este email não está associado a nenhuma conta." + not_found: "This email was not found" not_locked: "não encontra-se bloqueada" not_saved: one: "1 erro impediu a gravação de %{resource} :" From 4cb19929e7b4ee42dc51d70c85062913567003e4 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:10:57 +0100 Subject: [PATCH 031/136] New translations en.yml (Portuguese) --- config/locales/pt.yml | 45 ++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/config/locales/pt.yml b/config/locales/pt.yml index 931365c03..01bf18932 100755 --- a/config/locales/pt.yml +++ b/config/locales/pt.yml @@ -1,6 +1,6 @@ pt: + #subscription plan duration duration: - #subscription plan duration year: one: 'um ano' other: '%{count} anos' @@ -11,8 +11,8 @@ pt: one: 'uma semana' other: '%{count} semanas' errors: + #CarrierWave messages: - #CarrierWave carrierwave_processing_error: "falhou ao ser processado" carrierwave_integrity_error: "não é de um tipo de arquivo permitido" carrierwave_download_error: "não pode ser baixado" @@ -38,27 +38,27 @@ pt: must_be_in_the_past: "The period must be strictly prior to today's date." apipie: api_documentation: "Documentação da API" + #error messages when importing an account from a SSO omniauth: - #error messages when importing an account from a SSO email_already_linked_to_another_account_please_input_your_authentication_code: "E-mail \"%{OLD_MAIL}\" já está vinculado a outra conta, insira seu código de autenticação." your_username_is_already_linked_to_another_account_unable_to_update_it: "Seu nome de usuário ( %{USERNAME}) já está vinculado a outra conta, não conseguindo atualizá-lo." your_email_address_is_already_linked_to_another_account_unable_to_update_it: "Seu endereço de e-mail ( %{EMAIL}) já está vinculado a outra conta, não conseguindo atualizá-lo." this_account_is_already_linked_to_an_user_of_the_platform: "Esta conta %{NAME} já está ligada a um utilizador da plataforma." + #availability slots in the calendar availabilities: - #availability slots in the calendar not_available: "Não disponível " i_ve_reserved: "Eu reservei" length_must_be_slot_multiple: "deve ser pelo menos %{MIN} minutos após a data de início" must_be_associated_with_at_least_1_machine: "deve estar associada a pelo menos uma máquina" + #members management members: - #members management unable_to_change_the_group_while_a_subscription_is_running: "Não é possível alterar o grupo enquanto uma assinatura está sendo executada" please_input_the_authentication_code_sent_to_the_address: "Por favor insira o código de autenticação enviado para seu endereço de email %{EMAIL}" your_authentication_code_is_not_valid: "Seu código de autentiicação não é válido." current_authentication_method_no_code: "O método de autenticação atual não requer nenhum código de migração" requested_account_does_not_exists: "A conta requisitada não existe" + #PDF invoices generation invoices: - #PDF invoices generation refund_invoice_reference: "Referência da fatura de reembolso: %{REF}" invoice_reference: "Fatura de referência: %{REF}" code: "Código: %{CODE}" @@ -86,7 +86,7 @@ pt: one: "Um %{NAME} ticket" other: "%{count} %{NAME} tickets" reservation_other: "Reserva (outro)" - coupon_CODE_discount_of_DISCOUNT: "Cupom {CODE}: desconto de {DISCOUNT}{TYPE, select, percent_off{%} other{}}" #messageFormat interpolation + coupon_CODE_discount_of_DISCOUNT: "Cupom {CODE}: desconto de {DISCOUNT}{TYPE, select, percent_off{%} other{}}" #messageFormat interpolation total_including_all_taxes: "Total de taxas inclusas" including_VAT_RATE: "Incluindo VAT %{RATE}%" including_total_excluding_taxes: "Incluindo total de faixas exclusas" @@ -97,8 +97,8 @@ pt: by_cheque: "em cheque" by_transfer: "por transferência" by_cash: "em dinheiro" - no_refund: "Sem reembolso" by_wallet: "pela carteira" + no_refund: "Sem reembolso" settlement_by_debit_card: "Liquidação por cartão de débito" settlement_done_at_the_reception: "Liquidação feita na recepção" settlement_by_wallet: "Liquidação por carteira" @@ -109,6 +109,7 @@ pt: subscription_of_NAME_for_DURATION_starting_from_DATE: "Assinatura de %{NAME} de %{DURATION} começando em %{DATE}" subscription_of_NAME_extended_starting_from_STARTDATE_until_ENDDATE: "Assinatura de %{NAME} estendida (dias livres) a partir de% STARTDATE até %{ENDDATE}" and: 'e' + #CVS accounting export (columns headers) accounting_export: journal_code: "Journal code" date: "Entry date" @@ -128,19 +129,19 @@ pt: Event_reservation: "event reserv." Space_reservation: "space reserv." wallet: "wallet" + #training availabilities trainings: - #training availabilities i_ve_reserved: "Eu reservei" completed: "Cheio" + #error messages when updating an event events: - #error messages when updating an event error_deleting_reserved_price: "Não permitido deletar o preço requisitado, pois está associado a algumas reservas" other_error: "Um erro inesperado ocorreu enquanto o evento era atualizado" #event duration from_STARTDATE_to_ENDDATE: "De %{STARTDATE} a %{ENDDATE}," from_STARTTIME_to_ENDTIME: "das %{STARTTIME} às %{ENDTIME}" + #members list export to EXCEL format export_members: - #members list export to EXCEL format members: "Membros" id: "ID" surname: "Sobrenome" @@ -171,8 +172,8 @@ pt: man: "Homem" woman: "Mulher" without_subscriptions: "Sem assinaturas" + #machines/trainings/events reservations list to EXCEL format export_reservations: - #machines/trainings/events reservations list to EXCEL format reservations: "Reservas" customer_id: "ID do cliente" customer: "Cliente" @@ -184,8 +185,8 @@ pt: payment_method: "Método de pagamento" local_payment: "Pagamento na recepção" online_payment: "Pagamento online" + #subscriptions list export to EXCEL format export_subscriptions: - #subscriptions list export to EXCEL format subscriptions: "Assinaturas" id: "ID" customer: "Cliente" @@ -198,8 +199,8 @@ pt: payment_method: "Método de pagamento" local_payment: "Pagamento na recepção" online_payment: "Pagamento online" + #reservation slots export, by type, to EXCEL format export_availabilities: - #reservation slots export, by type, to EXCEL format machines: "Máquinas" trainings: "Treinamentos" spaces: "Espaços" @@ -214,8 +215,8 @@ pt: reservations: "Reservas" available_seats: "Assentos disponíveis" api: + #internal app notifications notifications: - #internal app notifications deleted_user: "Usuário deletado" notify_admin_abuse_reported: an_abuse_was_reported_on_TYPE_ID_NAME_html: "Um abuso foi relatado em %{TYPE} %{ID}: %{NAME} ." @@ -232,15 +233,15 @@ pt: notify_admin_subscription_canceled: USER_s_subscription_has_been_cancelled: "Assinatura do usuário %{USER} foi cancelado." notify_admin_subscription_extended: - subscription_PLAN_of_the_member_USER_has_been_extended_FREE_until_DATE_html: "A assinatura {PLAN} do membro {USER} foi extendida {FREE, select, true{grátis} other{}} until {DATE}." #messageFormat interpolation + subscription_PLAN_of_the_member_USER_has_been_extended_FREE_until_DATE_html: "A assinatura {PLAN} do membro {USER} foi extendida {FREE, select, true{grátis} other{}} until {DATE}." #messageFormat interpolation notify_admin_subscription_is_expired: USER_s_subscription_has_expired: "A assinatura do usuário %{USER} expirou." notify_admin_subscription_will_expire_in_7_days: USER_s_subscription_will_expire_in_7_days: "A assinatura do usuário %{USER} expira em 7 dias." notify_admin_user_group_changed: - user_NAME_changed_his_group_html: "Usuário {NAME} mudou {GENDER, select, true{seu} other{seu}} grupo." #messageFormat interpolation + user_NAME_changed_his_group_html: "Usuário {NAME} mudou {GENDER, select, true{seu} other{seu}} grupo." #messageFormat interpolation notify_admin_user_merged: - user_NAME_has_merged_his_account_with_the_one_imported_from_PROVIDER_UID_html: "Usuário {NAME} vinculou {GENDER, select, true{sua} other{sua}} conta com a importada de {PROVIDER} ({UID}) ." #messageFormat interpolation + user_NAME_has_merged_his_account_with_the_one_imported_from_PROVIDER_UID_html: "Usuário {NAME} vinculou {GENDER, select, true{sua} other{sua}} conta com a importada de {PROVIDER} ({UID}) ." #messageFormat interpolation notify_admin_when_project_published: project_NAME_has_been_published_html: "Projeto %{NAME} foi publicado." notify_admin_when_user_is_created: @@ -262,7 +263,7 @@ pt: notify_member_subscription_canceled: your_subscription_PLAN_was_successfully_cancelled_html: "Sua assinatura %{PLAN} foi cancelada com sucesso." notify_member_subscription_extended: - your_subscription_PLAN_has_been_extended_FREE_until_DATE_html: "Sua inscrição {PLAN} foi estendida {FREE, select, true{for free} other{}} until {DATE}." #messageFormat interpolation + your_subscription_PLAN_has_been_extended_FREE_until_DATE_html: "Sua inscrição {PLAN} foi estendida {FREE, select, true{for free} other{}} until {DATE}." #messageFormat interpolation notify_member_subscription_is_expired: your_subscription_has_expired: "Sua assinatura expirou." notify_member_subscription_will_expire_in_7_days: @@ -328,8 +329,8 @@ pt: click_to_show: "Click here to consult" notify_admin_refund_created: refund_created: "A refund of %{AMOUNT} has been created for user %{USER}" + #statistics tools for admins statistics: - #statistics tools for admins subscriptions: "Assinaturas" machines_hours: "Slots de máquina" spaces: "Espaços" @@ -355,8 +356,8 @@ pt: revenue: "Receita" account_creation: "Criação de conta" project_publication: "Publicação de projeto" + #statistics exports to the excel file format export: - #statistics exports to the excel file format entries: "Entradas" revenue: "Receita" average_age: "Idade média" @@ -370,8 +371,8 @@ pt: type: "Tipo" male: "Homem" female: "Mulher" + #initial price's category for events, created to replace the old "reduced amount" property price_category: - #initial price's category for events, created to replace the old "reduced amount" property reduced_fare: "Tarifa reduzida" reduced_fare_if_you_are_under_25_student_or_unemployed: "Tarifa reduzida se tiver menos de 25 anos, estudante ou desempregado." group: From 31e331202e74bf842a32d4ed710826d82972ca37 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:10:58 +0100 Subject: [PATCH 032/136] New translations app.shared.en.yml (French) --- config/locales/app.shared.fr.yml | 52 ++++++++++++++++---------------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/config/locales/app.shared.fr.yml b/config/locales/app.shared.fr.yml index a306b13ee..c5c73f881 100644 --- a/config/locales/app.shared.fr.yml +++ b/config/locales/app.shared.fr.yml @@ -1,8 +1,8 @@ fr: app: shared: + #translations of common buttons buttons: - #traductions de boutons communs confirm_changes: "Valider les modifications" consult: "Consulter" edit: "Éditer" @@ -22,8 +22,8 @@ fr: you_will_lose_any_unsaved_modification_if_you_quit_this_page: "Vous perdrez les modifications non enregistrées si vous quittez cette page" you_will_lose_any_unsaved_modification_if_you_reload_this_page: "Vous perdrez les modifications non enregistrées si vous rechargez cette page" payment_card_error: "Un problème est survenu avec votre carte bancaire :" + #user edition form user: - #formulaire d'édition du profil utilisateur man: "Homme" woman: "Femme" add_an_avatar: "Ajouter un avatar" @@ -57,13 +57,13 @@ fr: phone_number: "Numéro de téléphone" phone_number_is_required: "Le numéro de téléphone est requis." i_authorize_Fablab_users_registered_on_the_site_to_contact_me: "J'autorise les utilisateurs du Fab Lab inscrits sur le site à me contacter" - i_accept_to_receive_information_from_the_fablab: "J'accepte de recevoir des informations du Fab Lab" + i_accept_to_receive_information_from_the_fablab: "I accept to receive information from the FabLab" used_for_statistics: "Cette donnée sera utilisée à des fins statistiques" used_for_invoicing: "Cette donnée sera utilisée à des fins de facturation" used_for_reservation: "Cette donnée sera utilisée en cas de changement sur une de vos réservations" used_for_profile: "Cette donnée sera seulement affichée sur votre profil" + #project edition form project: - #formulaire d'étition d'un projet name: "Nom" name_is_required: "Le nom est requis." illustration: "Illustration" @@ -91,8 +91,8 @@ fr: themes: "Thématiques" tags: "Étiquettes" save_as_draft: "Enregistrer comme brouillon" + #machine edition form machine: - #formulaire d'édition d'une machine name: "Nom" name_is_required: "Le nom est requis." illustration: "Visuel" @@ -106,28 +106,28 @@ fr: add_an_attachment: "Ajouter une pièce jointe" disable_machine: "Désactiver la machine" validate_your_machine: "Valider votre machine" + #frame to select a plan to subscribe plan_subscribe: - #cadre de souscription à un abonnement subscribe_online: "je m'abonne en ligne" do_not_subscribe: "je ne souhaite pas m'abonner" + #admin: choose a member to interact with member_select: - #admin : choisir un membre avec lequel interagir select_a_member: "Sélectionnez un membre" start_typing: "Commencez à écrire..." + #stripe payment modal stripe: - #fenêtre de paiement stripe online_payment: "Paiement en ligne" i_have_read_and_accept_: "J'ai bien pris connaissance, et accepte" _the_general_terms_and_conditions: "les conditions générales de vente." credit_amount_for_pay_reservation: "Il vous reste {amount} {currency} à payer pour valider votre réservation" client_credit_amount_for_pay_reservation: "Il reste {amount} {currency} à payer pour valider la réservation" confirm_payment_of_: "Payer : {AMOUNT}" + #dialog of on site payment for reservations valid_reservation_modal: - #fenêtre de paiement sur place d'une réservation booking_confirmation: "Validation réservation" here_is_the_summary_of_the_slots_to_book_for_the_current_user: "Voici le récapitulatif des créneaux à réserver pour l'utilisateur courant :" + #event edition form event: - #formulaire d'édition d'un événement title: "Titre" title_is_required: "Le titre est requis." matching_visual: "Visuel associé" @@ -151,8 +151,8 @@ fr: tickets_available: "Places disponibles" event_theme: "Thème de l'évènement" age_range: "Tranche d'âge" + #subscription plan edition form plan: - #formulaire d'édition d'une formule d'abonnement general_information: "Informations générales" name: "Nom" name_is_required: "Le nom est requis" @@ -193,8 +193,8 @@ fr: email_address_is_required: "L'adresse e-mail est requise." disabled: "Désactiver l'abonnement" disable_plan_will_not_unsubscribe_users: "Attention : désactiver l'abonnement ne désabonnera pas les utilisateurs ayant actuellement cet abonnement actif." + #training edition form trainings: - #formulaire d'édition d'une formation name: "Nom" name_is_required: "Le nom est requis." illustration: "Visuel" @@ -207,8 +207,8 @@ fr: number_of_tickets: "Nombre de places" public_page: "Afficher dans la liste de formation" disable_training: "Désactiver la formation" + #partial form to edit/create an user (admin view) user_admin: - #formulaire partiel d'édition/création utilisateur (vue admin) user: "Utilisateur" incomplete_profile: "Profil incomplet" user_profile: "Profil utilisateur" @@ -217,8 +217,8 @@ fr: group_is_required: "Le groupe est requis." trainings: "Formations" tags: "Étiquettes" + #partial form to edit/create an authentication provider (SSO) authentication: - #formulaire partiel d'édition/création d'un fournisseur d'authentification (SSO) name: "Nom" provider_name_is_required: "Le nom du fournisseur est requis." authentication_type: "Type d'authentification" @@ -229,8 +229,8 @@ fr: expected_data_type: "Type de données attendues" input_format: "Format d'entrée" mappings: "Correspondances" + #edition/creation form of an OAuth2 authentication provider oauth2: - #formulaire d'édition/création d'un fournisseur d'authentification de type OAuth2 common_url: "URL commune" common_url_is_required: "L'URL commune est requise." provided_url_is_not_a_valid_url: "L'URL fournie n'est pas une URL valide." @@ -253,25 +253,25 @@ fr: api_endpoint_url: "Terminaison/URL de l'API" api_type: "Type d'API" api_fields: "Champ de l'API" + #machine/training slot modification modal confirm_modify_slot_modal: - #fenêtre de modification d'un créneau de réservation machine/formation change_the_slot: "Modifier le créneau" do_you_want_to_change_your_booking_slot_initially_planned_at: "Souhaitez-vous changer votre créneau de réservation initialement prévu au :" do_you_want_to_change_NAME_s_booking_slot_initially_planned_at: "Souhaitez-vous changer le créneau de réservation de {NAME}, initialement prévu au :" cancel_this_reservation: "Annuler cette réservation" i_want_to_change_date: "Je veux changer de date" + #modal introducing that a training is requested before booking a machine request_training_modal: - #fenêtre présentant l'obligation de participer à une formation avant de réserver une machine to_book_the_MACHINE_you_must_have_completed_the_TRAINING: "Pour réserver la machine \"{MACHINE}\" vous devez avoir suivi la {TRAINING}." register_for_the_training: "S'inscrire à la formation" i_dont_want_to_register_now: "Je ne souhaite pas m'inscrire pour l'instant" + #modal introducing that a user must wait for his training being validated before booking a machine training_reservation_modal: - #fenêtre présentant l'obligation d'attendre la validation de la formation pour réserver une machine machine_reservation: "Réservation machine" you_must_wait_for_your_training_is_being_validated_by_the_fablab_team_to_book_this_machine: "Il faut attendre que votre formation soit validée par l'équipe du Fab Lab pour réserver cette machine." your_training_will_occur_: "Votre formation aura lieu le" + #user public profile public_profile: - #profil publique d'un utilisateur last_activity_html: "Dernière activité
le {DATE}" to_come: "à venir" approved: "validée" @@ -285,8 +285,8 @@ fr: email_address: "Adresse électronique" trainings: "Formations" no_trainings: "Aucune formation" + #wallet wallet: - #porte-monnaie wallet: 'Porte-monnaie' your_wallet_amount: 'Votre montant disponible' wallet_amount: 'Montant disponible' @@ -321,8 +321,8 @@ fr: debit_reservation_machine: "Payer un reservation de machine" debit_reservation_event: "Payer un reservation d'évenement" warning_uneditable_credit: "Attention : une fois validé, le montant crédité ne sera plus modifiable." + #promotional coupon (creation/edition form) coupon: - #code promotionnel (formulaire de création/édition) name: "Nom" name_is_required: "le nom est requis." code: "Code" @@ -344,8 +344,8 @@ fr: max_usages: "Nombre maximum d'utilisations autorisées" max_usages_must_be_equal_or_greater_than_0: "Le nombre d'utilisations maximum doit être supérieur ou égal à 0." enabled: "Activé" + #coupon (input zone for users) coupon_input: - #code promotionnel (zone de saisie pour les utilisateurs) i_have_a_coupon: "J'ai un code promo !" code_: "Code :" the_coupon_has_been_applied_you_get_PERCENT_discount: "Le code promo a bien été appliqué. Vous bénéficiez d'une remise de {PERCENT} %." @@ -357,8 +357,8 @@ fr: unable_to_apply_the_coupon_because_amount_exceeded: "Impossible d'appliquer la réduction : la réduction dépasse le total de cet achat." unable_to_apply_the_coupon_because_undefined: "Impossible d'appliquer la réduction : une erreur inattendue s'est produite, veuillez contacter le gestionnaire du Fablab." unable_to_apply_the_coupon_because_rejected: "Ce code promo n'existe pas." + #form to create/edit a space space: - #formulaire de création/modification d'un espace name: "Nom" name_is_required: "Le nom est requis." illustration: "Visuel" @@ -373,12 +373,12 @@ fr: default_places: "Maximum de places par défaut" default_places_is_required: "Le nombre de places maximum par défaut est requis." disable_space: "Désactiver l'espace" + #shopping cart module for reservations cart: - #module de panier d'achat de réservations summary: "Résumé" select_one_or_more_slots_in_the_calendar: "Sélectionnez un {SINGLE, select, true{créneau} other{ou plusieurs créneaux}} dans le calendrier" you_ve_just_selected_the_slot: "Vous venez de sélectionner le créneau :" - datetime_to_time: "{START_DATETIME} à {END_TIME}" #eg: Thursday, September 4 1986 8:30 PM to 10:00 PM + datetime_to_time: "{START_DATETIME} à {END_TIME}" #eg: Thursday, September 4 1986 8:30 PM to 10:00 PM cost_of_TYPE: "Coût de {TYPE, select, Machine{l'heure machine} Training{la formation} other{l'élément}}" offer_this_slot: "Offrir ce créneau" confirm_this_slot: "Valider ce créneau" @@ -412,7 +412,7 @@ fr: do_you_really_want_to_cancel_this_reservation: "Êtes-vous sur de vouloir annuler cette réservation ?" reservation_was_cancelled_successfully: "La réservation a bien été annulée." cancellation_failed: "L'annulation a échouée." - confirm_payment_of_html: "{ROLE, select, admin{Paiement sur place} other{Payer}} : {AMOUNT}" #eg. valider mon paiement de 20,00 € + confirm_payment_of_html: "{ROLE, select, admin{Paiement sur place} other{Payer}} : {AMOUNT}" #eg. confirm my payment of $20.00 a_problem_occurred_during_the_payment_process_please_try_again_later: "Il y a eu un problème lors de la procédure de paiement. Veuillez réessayer plus tard." none: "Aucune" online_payment_disabled: "Le payment par carte bancaire n'est pas disponible. Merci de contacter directement l'accueil du Fablab." From 81e597f40afedb883e5ce9b96a15ad7b4c318935 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:11:00 +0100 Subject: [PATCH 033/136] New translations app.public.en.yml (French) --- config/locales/app.public.fr.yml | 64 ++++++++++++++++---------------- 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/config/locales/app.public.fr.yml b/config/locales/app.public.fr.yml index 20d8c63e8..970e6fcf3 100644 --- a/config/locales/app.public.fr.yml +++ b/config/locales/app.public.fr.yml @@ -1,8 +1,8 @@ fr: app: public: + #header and "about" page common: - #en-tête et page "à propos" about_the_fablab: "A propos {GENDER, select, male{du} female{de la} neutral{} other{des}} {NAME}" return: "Retour" #cookies @@ -11,7 +11,7 @@ fr: learn_more: "En savoir plus" accept: "Accepter les cookies" decline: "Refuser" - #sections du tableau de bord + #dashboard sections dashboard: "Tableau de bord" my_profile: "Mon profil" my_settings: "Mes paramètres" @@ -20,17 +20,17 @@ fr: my_events: "Mes évènements" my_invoices: "Mes factures" my_wallet: "Mon porte-monnaie" - #aide contextuelle + #contextual help help: "Aide" - #connexion / déconnexion + #login/logout sign_out: "Se déconnecter" sign_up: "S'inscrire" sign_in: "Se connecter" - #menu de gauche + #left menu notifications: "Notifications" admin: "Admin" reduce_panel: "Réduire le volet" - #menu de gauche (partie publique) + #left menu (public) home: "Accueil" reserve_a_machine: "Réserver une machine" trainings_registrations: "Inscriptions formations" @@ -39,7 +39,7 @@ fr: projects_gallery: "Galerie de projets" subscriptions: "Abonnements" public_calendar: "Agenda" - #menu de gauche (partie admin) + #left menu (admin) trainings_monitoring: "Formations" manage_the_calendar: "Agenda" manage_the_users: "Utilisateurs" @@ -52,7 +52,7 @@ fr: statistics: "Statistiques" customization: "Personnalisation" open_api_clients: "Clients OpenAPI" - #fenêtre de création de compte + #account creation modal create_your_account: "Créer votre compte" man: "Homme" woman: "Femme" @@ -94,11 +94,11 @@ fr: used_for_profile: "Cette donnée sera seulement affichée sur votre profil" public_profile: "Vous aurez un profil public et les autres utilisateurs pourront vous associer à leurs projets" you_will_receive_confirmation_instructions_by_email_detailed: "Vous allez recevoir dans quelques minutes un email comportant des instructions pour confirmer votre compte." - #fenêtre de changement de mot de passe + #password modification modal change_your_password: "Modifier votre mot de passe" your_new_password: "Votre nouveau mot de passe" your_password_was_successfully_changed: "Votre mot de passe a bien été modifié." - #fenêtre de connexion + #connection modal connection: "Connexion" password_forgotten: "Mot de passe oublié ?" confirm_my_account: "Confirmer mon adresse de courriel" @@ -106,9 +106,9 @@ fr: create_an_account: "Créer un compte" wrong_email_or_password: "Adresse courriel ou mot de passe incorrect." caps_lock_is_on: "La touche de verrouillage des majuscules est activée." - #fenêtre d'envoi des instructions de confirmation + #confirmation modal you_will_receive_confirmation_instructions_by_email: "Vous recevrez les instructions de confirmation par email." - #mot de passe oublié + #forgotten password modal your_email_address_is_unknown: "Votre adresse de courriel est inconnue." you_will_receive_in_a_moment_an_email_with_instructions_to_reset_your_password: "Vous allez recevoir sous quelques minutes un courriel vous indiquant comment réinitialiser votre mot de passe." #Fab-manager's version @@ -121,26 +121,26 @@ fr: how_to: "Comment mettre à jour ?" #Notifications and_NUMBER_other_notifications: "et {NUMBER, plural, =0{aucune autre notification} =1{une autre notification} other{{NUMBER} autres notifications}}..." + #about page about: - #page à propos read_the_fablab_policy: "Consulter les règles d'utilisation du Fab Lab" read_the_fablab_s_general_terms_and_conditions: "Consulter les conditions générales de vente du Fab Lab" your_fablab_s_contacts: "Vos contacts au Fab Lab" privacy_policy: "Politique de confidentialité" + #'privacy policy' page privacy: - #page 'politique de confidentialité' title: "Politique de confidentialité" dpo: "Délégué à la protection des données" last_update: "Dernière mise à jour," + #home page home: - #page d'accueil latest_documented_projects: "Les derniers projets documentés" follow_us: "Suivez-nous" latest_tweets: "Les derniers tweets" latest_registered_members: "Derniers membres inscrits" create_an_account: "Créer un compte" discover_members: "Découvrir les membres" - #résumé des prochains évènements sur la page d'acceuil + #next events summary on the home page 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}" @@ -151,8 +151,8 @@ fr: full_price: "Plein tarif : " event_full: "Événement complet" still_available: "Place(s) disponible(s) :" + #projects gallery projects_list: - #galerie des projets the_fablab_projects: "Les projets du FabLab" add_a_project: "Ajouter un projet" search_over_the_whole_network: "Chercher sur tout le réseau Fab-manager" @@ -169,8 +169,8 @@ fr: all_materials: "Tous les matériaux" load_next_projects: "Charger les projets suivants" rough_draft: "Brouillon" + #details of a projet projects_show: - #détails d'un projet rough_draft: "Brouillon" project_description: "Description du projet" by_name: "Par {NAME}" @@ -198,8 +198,8 @@ fr: message_is_required: "Le message est requis." report: "Signaler" do_you_really_want_to_delete_this_project: "Êtes-vous sur de vouloir supprimer ce projet ?" + #list of machines machines_list: - #liste des machines the_fablab_s_machines: "Les machines du FabLab" add_a_machine: "Ajouter une machine" new_availability: "Ouvrir des réservations" @@ -208,8 +208,8 @@ fr: status_enabled: "Actives" status_disabled: "Désactivées" status_all: "Toutes" + #details of a machine machines_show: - #détail d'une machine book_this_machine: "Réserver cette machine" technical_specifications: "Caractéristiques techniques" files_to_download: "Fichiers à télécharger" @@ -219,19 +219,19 @@ fr: do_you_really_want_to_delete_this_machine: "Êtes-vous sur de vouloir supprimer cette machine ?" unauthorized_operation: "Opération non autorisée" the_machine_cant_be_deleted_because_it_is_already_reserved_by_some_users: "La machine ne peut pas être supprimée car elle a déjà été réservée par des utilisateurs." + #list of trainings trainings_list: - #liste des formations book: "Réserver" the_trainings: "Les formations" + #details of a training training_show: - #détails d'une formation book_this_training: "Réserver cette formation" do_you_really_want_to_delete_this_training: "Êtes-vous sur de vouloir supprimer cette formation ?" unauthorized_operation: "Opération non autorisée" confirmation_required: "Confirmation requise" the_training_cant_be_deleted_because_it_is_already_reserved_by_some_users: "La formation ne peut pas être supprimée car elle a déjà été réservée par des utilisateurs." + #summary of the subscriptions plans: - #page récapitulative des abonnements subscriptions: "Les abonnements" i_choose_that_plan: "Je choisis cette formule" i_subscribe_online: "Je m'abonne en ligne" @@ -257,10 +257,10 @@ fr: an_error_occured_during_the_payment_process_please_try_again_later: "Il y a eu un problème lors de la procédure de paiement. Veuillez réessayer plus tard." subscription_confirmation: "Validation de l'abonnement" here_is_the_NAME_subscription_summary: "Voici le récapitulatif de l'abonnement de {NAME} :" - confirm_payment_of_html: "{ROLE, select, admin{Encaisser} other{Payer}} : {AMOUNT}" #(contexte : valider un paiement de 20,00 €) + confirm_payment_of_html: "{ROLE, select, admin{Encaisser} other{Payer}} : {AMOUNT}" #(contexte : validate a payment of $20,00) online_payment_disabled: "Le paiement par carte bancaire n'est pas disponible. Merci de contacter directement l'accueil du Fablab." + #Fablab's events list events_list: - #liste des évènements du fablab the_fablab_s_events: "Les évènements du Fab Lab" all_categories: "Toutes les catégories" for_all: "Tout public" @@ -274,8 +274,8 @@ fr: full_price_: "Plein tarif :" to_date: "au" #eg. from 01/01 to 01/05 all_themes: "Toutes les thématiques" + #details and booking of an event events_show: - #détails d'un événement et réservation event_description: "Description de l'évènement" downloadable_documents: "Documents à télécharger" information_and_booking: "Informations et réservation" @@ -285,7 +285,7 @@ fr: opening_hours: "Horaires :" all_day: "Toute la journée" from_time: "De" #eg. from 18:00 to 21:00 - to_time: "à" #eg. from 18:00 to 21:00 + to_time: "à" #eg. from 18:00 to 21:00 full_price_: "Plein tarif :" tickets_still_availables: "Places encore disponibles :" sold_out: "Événement complet" @@ -300,13 +300,13 @@ fr: canceled_reservation_SEATS: "Réservation annulée ({SEATS} places)" book: "Réserver" confirm_and_pay: "Valider et payer" - confirm_payment_of_html: "{ROLE, select, admin{Encaisser} other{Payer}} : {AMOUNT}" #(contexte : valider un paiement de 20,00 €) + confirm_payment_of_html: "{ROLE, select, admin{Encaisser} other{Payer}} : {AMOUNT}" #(contexte : validate a payment of $20,00) online_payment_disabled: "Le payment par carte bancaire n'est pas disponible. Merci de contacter directement l'accueil du Fablab." please_select_a_member_first: "Veuillez tout d'abord sélectionner un membre" change_the_reservation: "Modifier la réservation" you_can_shift_this_reservation_on_the_following_slots: "Vous pouvez déplacer cette réservation sur les créneaux suivants :" confirmation_required: "Confirmation requise" - do_you_really_want_to_delete_this_event: "Voulez-vous vraiment supprimer cet évènement ?" + do_you_really_want_to_delete_this_event: "Voulez-vous vraiment supprimer cet évènement ?" delete_recurring_event: "Vous êtes sur le point de supprimer un évènement périodique. Que voulez-vous supprimer ?" delete_this_event: "Uniquement cet évènement" delete_this_and_next: "Cet évènement et tous les suivants" @@ -324,8 +324,8 @@ fr: view_event_list: "Voir les évènements à venir" share_on_facebook: "Partager sur Facebook" share_on_twitter: "Partager sur Twitter" + #public calendar calendar: - #calendrier publique calendar: "Calendrier" show_unavailables: "Afficher les créneaux non disponibles" filter_calendar: "Filtrer le calendrier" @@ -334,8 +334,8 @@ fr: spaces: "Espaces" events: "Évènements" externals: "Autres calendriers" + #list of spaces spaces_list: - #liste des espaces the_spaces: "Les espaces" new_availability: "Ouvrir des réservations" add_a_space: "Ajouter un espace" @@ -343,8 +343,8 @@ fr: status_disabled: "Désactivés" status_all: "Tous" book: "Réserver" + #display the details of a space space_show: - #affichage des détails d'un espace book_this_space: "Réserver cet espace" unauthorized_operation: "Opération non autorisée" confirmation_required: "Confirmation requise" From 571541d68cfaab6a2804d40e5335b20e97457792 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:11:02 +0100 Subject: [PATCH 034/136] New translations app.logged.en.yml (French) --- config/locales/app.logged.fr.yml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/config/locales/app.logged.fr.yml b/config/locales/app.logged.fr.yml index 0d8dae68b..59fb5792d 100644 --- a/config/locales/app.logged.fr.yml +++ b/config/locales/app.logged.fr.yml @@ -1,8 +1,8 @@ fr: app: logged: + #user's profile completion page when logging from an SSO provider profile_completion: - # page de complétion du profil utilisateur, à la première connexion depuis un SSO confirm_your_new_account: "Confirmez votre nouveau compte" you_ve_just_created_a_new_account_on_the_fablab_by_logging_from: "Vous venez de créer un nouveau compte sur {GENDER, select, male{le} female{la} neutral{} other{les}} {NAME}, en vous connectant depuis" we_need_some_more_details: "Afin de finaliser le paramétrage de la plate-forme, nous avons besoin de quelques renseignements supplémentaires" @@ -40,11 +40,11 @@ fr: _disconnect_then_reconnect_: "déconnectez-vous puis re-connectez vous" _for_your_changes_to_take_effect: "pour que les modifications soient prises en compte." dashboard: - # tableau de bord: profile publique + #dashboard: public profile profile: empty: '' + #dashboard: edit my profile settings: - # tableau de bord : éditer mon profil last_activity_on_: "Dernière activité le {DATE}" i_want_to_change_group: "Je veux changer de groupe !" your_subscription_expires_on_: "Votre abonnement expire le" @@ -91,8 +91,8 @@ fr: _click_on_the_synchronization_button_opposite_: "cliquez sur le bouton de synchronisation ci-contre" _disconnect_then_reconnect_: "déconnectez-vous puis re-connectez vous" _for_your_changes_to_take_effect: "pour que les modifications soient prises en compte." + #dashboard: my projects projects: - # tableau de bord : mes projets you_dont_have_any_projects: "Vous n'avez aucun projet." add_a_project: "Ajouter un projet" author: "Auteur" @@ -103,33 +103,33 @@ fr: machines: "Machines" materials: "Matériaux" collaborators: "Les collaborateurs" + #dashboard: my trainings trainings: - # tableau de bord : mes formations your_next_trainings: "Vos prochaines formations" your_previous_trainings: "Vos formations passées" your_approved_trainings: "Vos formations validées" no_trainings: "Aucune formation" + #dashboard: my events events: - # tableau de bord : mes évènements your_next_events: "Vos prochains évènements" no_events_to_come: "Aucun évènement à venir" your_previous_events: "Vos évènements passés" no_passed_events: "Aucun évènement passé" NUMBER_normal_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{place normale réservée} other{places normales réservées}}" NUMBER_of_NAME_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{place {NAME} réservée} other{places {NAME} réservées}}" + #dashboard: my invoices invoices: - # tableau de bord : mes factures reference_number: "Référence" date: "Date" price: "Prix" download_the_invoice: "Télécharger la facture" download_the_credit_note: "Télécharger l'avoir" no_invoices_for_now: "Aucune facture pour le moment." + #public profil of a member members_show: - # profil public d'un membre members_list: "Liste des membres" + #list of members accepting to be contacted members: - # liste des membres qui acceptent d'être contactés the_fablab_members: "Les membres du Fab Lab" display_more_members: "Afficher plus de membres..." no_members_for_now: "Pas de membres pour le moment" @@ -137,16 +137,16 @@ fr: user: "Utilisateur" pseudonym: "Pseudonyme" email_address: "Adresse électronique" + #add a new project projects_new: - # ajouter un nouveau projet add_a_new_project: "Ajouter un nouveau projet" + #modify an existing project projects_edit: - # modifier un projet existant edit_the_project: "Éditer le projet" rough_draft: "Brouillon" publish: "Publier" + #book a machine machines_reserve: - # réserver une machine machine_planning: "Planning machine" i_ve_reserved: "J'ai réservé" not_available: "Non disponible" @@ -157,17 +157,17 @@ fr: reservation_was_cancelled_successfully: "La réservation a bien été annulée." cancellation_failed: "Échec de l'annulation." a_problem_occured_during_the_payment_process_please_try_again_later: "Un problème est survenu pendant le processus de paiement. Merci de réessayer ultérieurement." + #book a training trainings_reserve: - # réserver une formation trainings_planning: "Planning formations" - planning_of: "Planning de la" # suivi du nom de la formation (eg. Planning de la formation imprimante 3d) + planning_of: "Planning of " #followed by the training name (eg. Planning of 3d printer training) all_trainings: "Toutes les formations" cancel_my_selection: "Annuler ma sélection" i_change: "Je change" i_shift: "Je déplace" i_ve_reserved: "J'ai réservé" + #book a space space_reserve: - # réserver un espace planning_of_space_NAME: "Planning de l'espace {NAME}" i_ve_reserved: "J'ai réservé" i_shift: "Je déplace" From 468f9d0f89d6dbccd2a4388b5f2e93fb1f5148fc Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:11:05 +0100 Subject: [PATCH 035/136] New translations app.admin.en.yml (French) --- config/locales/app.admin.fr.yml | 72 ++++++++++++++++----------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/config/locales/app.admin.fr.yml b/config/locales/app.admin.fr.yml index e55e8443d..ff1b0e7bf 100644 --- a/config/locales/app.admin.fr.yml +++ b/config/locales/app.admin.fr.yml @@ -2,15 +2,15 @@ fr: app: admin: machines_new: - #ajout d'une nouvelle machine + #add a new machine declare_a_new_machine: "Déclarer une nouvelle machine" watch_out_when_creating_a_new_machine_its_prices_are_initialized_at_0_for_all_subscriptions: "Attention, lors de la création d'une machine, ses tarifs de réservation sont initialisés à zero pour tous les abonnements." consider_changing_them_before_creating_any_reservation_slot: "Pensez à les modifier avant de créer des créneaux pour cette machine." machines_edit: - #edition d'une machine + #machine edition machine_edit: "Modifier une machine" calendar: - #gestion des créneaux machines et formations + #manage the trainings & machines slots calendar_management: "Gestion du calendrier" trainings: "Formations" machines: "Machines" @@ -47,7 +47,7 @@ fr: manage_trainings: "Cliquez-ici pour ajouter ou supprimer des formations." number_of_tickets: "Nombre de places : " adjust_the_opening_hours: "Ajuster l'horaire" - to_time: "à" #eg. from 18:00 to 21:00 + to_time: "à" #eg. from 18:00 to 21:00 restrict_options: "Options de restriction" restrict_with_labels: "Restreindre ce créneau avec des étiquettes" restrict_for_subscriptions: "Restreindre ce créneau pour les abonnements" @@ -119,7 +119,7 @@ fr: confirm_delete_import: "Êtes-vous sur de vouloir supprimer cet import iCalendar ?" delete_success: "L'import iCalendar a bien été supprimé" project_elements: - #gestion des éléments constituant les projets + #management of the projects' components name: "Nom" projects_elements_management: "Gestion des éléments projets" materials: "Matériaux" @@ -131,7 +131,7 @@ fr: add_a_new_licence: "Ajouter une nouvelle licence" manage_abuses: "Gérer les signalements" trainings: - #suivre et surveiller les formations + #track and monitor the trainings trainings_monitoring: "Suivi formations" plan_session: "Planifier une nouvelle session" trainings: "Formations" @@ -147,7 +147,7 @@ fr: NUMBER_reservation: "{NUMBER} {NUMBER, plural, =0{réservation} one{réservation} other{réservations}}" none: "Aucune" training_validation: "Validation formation" - training_of_the_DATE_TIME_html : "Formation du {DATE} - {TIME}" + training_of_the_DATE_TIME_html: "Formation du {DATE} - {TIME}" you_can_validate_the_training_of_the_following_members: "Vous pouvez valider la formation des membres suivants :" deleted_user: "Utilisateur supprimé" no_reservation: "Aucune réservation" @@ -164,12 +164,12 @@ fr: status_disabled: "Désactivés" status_all: "Tous" trainings_new: - #créer une nouvelle formation + #create a new training add_a_new_training: "Ajouter une nouvelle formation" beware_when_creating_a_training_its_reservation_prices_are_initialized_to_zero: "Attention, lors de la création d'une formation, ses tarifs de réservation sont initialisés à zero." dont_forget_to_change_them_before_creating_slots_for_this_training: "Pensez à les modifier avant de créer des créneaux pour cette formation." events: - #gestion et suivi des évènements + #events tracking and management events_monitoring: "Suivi des évènements" manage_filters: "Gérer les filtres" fablab_events: "Les évènements du Fab Lab" @@ -182,7 +182,7 @@ fr: from_DATE: "du {DATE}" from_TIME: "de {TIME}" to_date: "au" #eg: from 01/01 to 01/05 - to_time: "à" #eg. from 18:00 to 21:00 + to_time: "à" #eg. from 18:00 to 21:00 title: "Titre" dates: "Dates" booking: "Réservations" @@ -223,7 +223,7 @@ fr: price_category_successfully_deleted: "Catégorie tarifaire supprimée avec succès." price_category_deletion_failed: "Échec de la suppression de la catégorie tarifaire." events_new: - #ajouter un nouvel évènement + #add a new event add_an_event: "Ajouter un évènement" none: "Aucune" every_days: "Tous les jours" @@ -231,7 +231,7 @@ fr: every_month: "Chaque mois" every_year: "Chaque année" events_edit: - #modifier un évènement existant + #edit an existing event edit_the_event: "Éditer l'évènement" confirmation_required: "Confirmation requise" edit_recurring_event: "Vous êtes sur le point de modifier un évènement périodique. Que voulez-vous modifier ?" @@ -246,7 +246,7 @@ fr: error_deleting_reserved_price: "Impossible de supprimer le tarif demandé car il est associé à des réservations" other_error: "Une erreur inattendue est survenue lors de la mise à jour de l'évènement" event_reservations: - #liste des réservations sur un évènement + #event reservations list the_reservations: "Les réservations :" user: "Utilisateur" payment_date: "Date de paiement" @@ -257,7 +257,7 @@ fr: back_to_monitoring: "Retour au suivi" canceled: "Annulée" pricing: - #gestion des abonnements, des tarifs, des crédits et des codes promo + #subscriptions, prices, credits and coupons management pricing_management: "Gestion de la tarification" subscriptions: "Abonnements" trainings: "Formations" @@ -286,7 +286,7 @@ fr: hours: "Créneaux de {DURATION} minutes" related_subscriptions: "Abonnements associés" please_specify_a_number: "Veuillez spécifier un nombre." - none: "Aucune" #grammar concordance with training. + none: "Aucune" #grammar concordance with training. an_error_occurred_while_saving_the_number_of_credits: "Une erreur est survenue lors de l'enregistrement du nombre de crédits." an_error_occurred_while_deleting_credit_with_the_TRAINING: "Une erreur est survenue lors de la suppression du crédit avec la {TRAINING}." an_error_occurred_unable_to_find_the_credit_to_revoke: "Une erreur est survenue : impossible de retrouver le crédit à enlever." @@ -346,13 +346,13 @@ fr: unable_to_update_the_coupon_an_error_occurred: "Impossible de mettre à jour le code promotionnel : une erreur est survenue." plans: new: - #ajouter une formule d'abonnement sur la plate-forme + #add a subscription plan on the platform add_a_subscription_plan: "Ajouter une formule d'abonnement" unable_to_create_the_subscription_please_try_again: "L'abonnement n'a pas pu être créé. Veuillez réessayer." successfully_created_subscriptions_dont_forget_to_redefine_prices: "Création du/des abonnement(s) réussie. N'oubliez pas de redéfinir les tarifs." unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Impossible d'enregistrer cet utilisateur. Vérifiez qu'il n'existe pas déjà un utilisateur du même nom." edit: - #modifier une formule d'abonnement / les prix des créneaux machines + #edit a subscription plan / machine slots prices subscription_plan: "Formule d'abonnement :" prices: "Tarifs" copy_prices_from: "Copier les prix depuis" @@ -364,7 +364,7 @@ fr: unable_to_save_subscription_changes_please_try_again: "Les modifications de l'abonnement n'ont pas pu être enregistrées. Veuillez réessayer." subscription_successfully_changed: "Modification de l'abonnement réussie." invoices: - #liste de toutes les factures & paramètres de facturation + #list of all invoices & invoicing parameters invoices: "Factures" accounting_periods: "Périodes comptables" invoices_list: "Liste des factures" @@ -410,7 +410,7 @@ fr: year: "Année" month: "Mois" day: "Jour" - num_of_invoice: "N° de facture" + num_of_invoice: "# of invoice" online_sales: "Vente en ligne" wallet: "Porte-monnaie" refund: "Remboursement" @@ -462,7 +462,7 @@ fr: description: "Description" description_optional: "Description (optionnelle) :" will_appear_on_the_refund_invoice: "Apparaîtra sur la facture de remboursement." - none: "Aucun" #grammar concordance with payment mean + none: "Aucun" #grammar concordance with payment mean by_cash: "En espèces" by_cheque: "Par chèque" by_transfer: "Par virement" @@ -581,7 +581,7 @@ fr: credit_euro: "Crédit euro" lettering: "Lettrage" members: - #gestion des utilisateurs, des groupes, des étiquettes, etc. + #management of users, labels, groups, and so on users_management: "Gestion des utilisateurs" members: "Membres" subscriptions: "Abonnements" @@ -660,11 +660,11 @@ fr: member_filter_not_confirmed: "Non confirmés" member_filter_inactive_for_3_years: "Inactifs depuis 3 ans" members_new: - #ajouter un membre + #add a member add_a_member: "Ajouter un membre" user_is_an_organization: "L'utilisateur est une structure" members_import: - #import massif de members + #members bulk import import_members: "Importer des membres" info: "Vous pouvez téléverser un fichier CSV afin de créer des nouveaux membres ou de mettre à jour les existants. Votre fichier doit utiliser les identifiants ci-dessous pour spécifier le groupe, les formations et les étiquettes des membres." required_fields: "Votre fichier doit obligatoirement comporter, au minimum, les informations suivantes pour chaque utilisateur à créer : courriel, nom, prénom et groupe. Si le mot passe n'est pas rempli, il sera généré automatiquement. Lors d'une mise à jour, les champs non remplis seront gardés tel quels." @@ -689,7 +689,7 @@ fr: update_on_username: "Pseudonyme" update_on_email: "Adresse de courriel" members_import_result: - #résultats de l'import + #import results import_results: "Résultats de l'import" import_details: "Import n°{ID}, du {DATE}, initié par {USER}" results: "Résultats" @@ -700,7 +700,7 @@ fr: failed: "Échec" error_details: "Détails de l'erreur :" members_edit: - #modifier un membre + #edit a member subscription: "Abonnement" duration: "Durée :" expires_at: "Expire le :" @@ -743,7 +743,7 @@ fr: wallet: "Porte-monnaie" to_credit: 'Créditer' admins_new: - #ajouter un nouvel administrateur à la plate-forme + #add a new administrator to the platform add_an_administrator: "Ajouter un administrateur" administrator_successfully_created_he_will_receive_his_connection_directives_by_email: "L'administrateur a bien été créé. {GENDER, select, female{Elle} other{Il}} recevra ses instructions de connexion par email." failed_to_create_admin: "Impossible de créer l'administrateur :" @@ -761,7 +761,7 @@ fr: address: "Adresse" phone_number: "Numéro de téléphone" authentication_new: - #ajouter un nouveau fournisseur d'authentification (SSO) + #add a new authentication provider (SSO) local_database: "Base de données locale" o_auth2: "OAuth 2.0" add_a_new_authentication_provider: "Ajouter un fournisseur d'authentification" @@ -775,18 +775,18 @@ fr: unsecured_oauth2_provider_successfully_added: "Le fournisseur OAuth 2.0 (non sécurisé) a bien été enregistré." oauth2_provider_successfully_added: "Le fournisseur OAuth 2.0 a bien été enregistré." authentication_edit: - #modifier un fournisseur d'authentification (SSO) + #edit an authentication provider (SSO) provider: "Fournisseur :" it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "Il est obligatoire d'établir la correspondance entre User.uid et l'API pour pouvoir ajouter ce fournisseur." provider_successfully_updated: "Le fournisseur a bien été mis à jour." an_error_occurred_unable_to_update_the_provider: "Une error est survenue : impossible de mettre à jour le fournisseur." statistics: - #tableau de statistiques + #statistics tables statistics: "Statistiques" evolution: "évolution" age_filter: "Filtre d'âge" - from_age: "De" #eg: from 8 to 40 years old - to_age: "à" #eg: from 8 to 40 years old + from_age: "De" #eg. from 8 to 40 years old + to_age: "à" #eg. from 8 to 40 years old _years_old: "ans" start: "Début :" end: "Fin :" @@ -824,7 +824,7 @@ fr: create_plans_to_start: "Pour commencer, créez de nouvelles formules d'abonnement." click_here: "Cliquez ici pour créer votre première formule." stats_graphs: - #graphiques de statistiques + #statistics graphs statistics: "Statistiques" data: "Données" day: "Jour" @@ -843,7 +843,7 @@ fr: no_data_for_this_period: "Pas de données pour cette période" date: "Date" settings: - #paramètres globaux de l'application et personnalisation + #global application parameters and customization title: "Titre" customize_the_application: "Personnalisation de l'application" general: "Général" @@ -1021,17 +1021,17 @@ fr: client_successfully_deleted: "Le compte client a bien été supprimé." access_successfully_revoked: "L'accès a bien été revoqué." space_new: - #créer un nouvel espace + #create a new space add_a_new_space: "Ajouter un nouvel espace" watch_out_when_creating_a_new_space_its_prices_are_initialized_at_0_for_all_subscriptions: "Attention, lors de la création d'un espace, ses tarifs de réservation sont initialisés à zero pour tous les abonnements." consider_changing_its_prices_before_creating_any_reservation_slot: "Pensez à modifier ces prix avant de créer des créneaux pour cet espace." add_this_space: "Ajouter cet espace" space_edit: - #modifier un espace existant + #modify an exiting space edit_the_space_NAME: "Modifier l'espace : {NAME}" validate_the_changes: "Valider les modifications" manage_abuses: - #traiter et supprimer les rapports d'abus + #process and delete abuses reports abuses_list: "Liste des signalements" no_reports: "Aucun signalement pour le moment" published_by: "publié par" From b2b0abb1d056b86829b4afaa40e43aec6dc0ac33 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:11:07 +0100 Subject: [PATCH 036/136] New translations mails.en.yml (French) --- config/locales/mails.fr.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/locales/mails.fr.yml b/config/locales/mails.fr.yml index 203affae0..65b868278 100644 --- a/config/locales/mails.fr.yml +++ b/config/locales/mails.fr.yml @@ -1,7 +1,7 @@ fr: layouts: notifications_mailer: - see_you_later: "A très bientôt sur {GENDER, select, male{le} female{la} neutral{} other{les}}" #messageFormat interpolation + see_you_later: "A très bientôt sur {GENDER, select, male{le} female{la} neutral{} other{les}}" #messageFormat interpolation sincerely: "Cordialement," signature: "L'équipe du Fab Lab." do_not_reply: "Merci de ne pas répondre directement à cet email." @@ -10,7 +10,7 @@ fr: subject: "Votre compte Fab Lab a bien été créé" body: hello: "Bonjour %{NAME}," - intro: "L’équipe du Fab Lab vient de vous créer un compte sur le site {GENDER, select, male{du} female{de la} neutral{} other{des}} {FABLAB} :" #messageFormat interpolation + intro: "L’équipe du Fab Lab vient de vous créer un compte sur le site {GENDER, select, male{du} female{de la} neutral{} other{des}} {FABLAB} :" #messageFormat interpolation connection_parameters: "Voici vos paramètres de connexion :" account_name: "Nom de compte :" password: "Mot de passe :" @@ -33,7 +33,7 @@ fr: notify_admin_subscription_extended: subject: "Un abonnement a été prolongé" body: - subscription_extended_html: "L'abonnement {PLAN} du membre {NAME} a été prolongé {FREE, select, true{gratuitment} other{}} jusqu'au {DATE}." #messageFormat interpolation + subscription_extended_html: "L'abonnement {PLAN} du membre {NAME} a été prolongé {FREE, select, true{gratuitment} other{}} jusqu'au {DATE}." #messageFormat interpolation notify_member_subscription_extended: subject: "Votre abonnement a été prolongé" body: @@ -108,7 +108,7 @@ fr: notify_member_invoice_ready: subject: "Votre facture du FabLab" body: - please_find_attached_html: "Vous trouverez en pièce jointe votre facture du {DATE}, d'un montant de {AMOUNT} concernant votre {TYPE, select, Reservation{réservation} other{abonnement}}." #messageFormat interpolation + please_find_attached_html: "Vous trouverez en pièce jointe votre facture du {DATE}, d'un montant de {AMOUNT} concernant votre {TYPE, select, Reservation{réservation} other{abonnement}}." #messageFormat interpolation invoice_in_your_dashboard_html: "Vous pouvez à tout moment retrouver votre facture dans %{DASHBOARD} sur le site du Fab Lab." your_dashboard: "votre tableau de bord" notify_member_reservation_reminder: @@ -119,7 +119,7 @@ fr: notify_member_avoir_ready: subject: "Votre facture d'avoir du FabLab" body: - please_find_attached_html: "Vous trouverez en pièce jointe votre facture d'avoir du {DATE}, d'un montant de {AMOUNT} concernant votre {TYPE, select, Reservation{réservation} WalletTransaction{crédit du porte-monnaie} other{abonnement}}." #messageFormat interpolation + please_find_attached_html: "Vous trouverez en pièce jointe votre facture d'avoir du {DATE}, d'un montant de {AMOUNT} concernant votre {TYPE, select, Reservation{réservation} WalletTransaction{crédit du porte-monnaie} other{abonnement}}." #messageFormat interpolation invoice_in_your_dashboard_html: "Vous pouvez à tout moment retrouver votre facture d'avoir dans %{DASHBOARD} sur le site du Fab Lab." your_dashboard: "votre tableau de bord" notify_member_subscription_will_expire_in_7_days: From 315c78fc26a4b9e209ea79b25adcf2db44dde9d3 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:11:08 +0100 Subject: [PATCH 037/136] New translations app.shared.en.yml (Acholi) --- config/locales/app.shared.ach.yml | 67 ++++++++++++++++++------------- 1 file changed, 40 insertions(+), 27 deletions(-) diff --git a/config/locales/app.shared.ach.yml b/config/locales/app.shared.ach.yml index 4a6bcb89f..246f3566a 100644 --- a/config/locales/app.shared.ach.yml +++ b/config/locales/app.shared.ach.yml @@ -1,8 +1,8 @@ ach: app: shared: + #translations of common buttons buttons: - #translations of common buttons confirm_changes: "crwdns9375:0crwdne9375:0" consult: "crwdns9377:0crwdne9377:0" edit: "crwdns9379:0crwdne9379:0" @@ -22,8 +22,8 @@ ach: you_will_lose_any_unsaved_modification_if_you_quit_this_page: "crwdns9405:0crwdne9405:0" you_will_lose_any_unsaved_modification_if_you_reload_this_page: "crwdns9407:0crwdne9407:0" payment_card_error: "crwdns9409:0crwdne9409:0" + #user edition form user: - #user edition form man: "crwdns9411:0crwdne9411:0" woman: "crwdns9413:0crwdne9413:0" add_an_avatar: "crwdns9415:0crwdne9415:0" @@ -62,8 +62,8 @@ ach: used_for_invoicing: "crwdns9481:0crwdne9481:0" used_for_reservation: "crwdns9483:0crwdne9483:0" used_for_profile: "crwdns9485:0crwdne9485:0" + #project edition form project: - #project edition form name: "crwdns9487:0crwdne9487:0" name_is_required: "crwdns9489:0crwdne9489:0" illustration: "crwdns9491:0crwdne9491:0" @@ -91,8 +91,8 @@ ach: themes: "crwdns9535:0crwdne9535:0" tags: "crwdns9537:0crwdne9537:0" save_as_draft: "crwdns9539:0crwdne9539:0" + #machine edition form machine: - #machine edition form name: "crwdns9541:0crwdne9541:0" name_is_required: "crwdns9543:0crwdne9543:0" illustration: "crwdns9545:0crwdne9545:0" @@ -106,28 +106,28 @@ ach: add_an_attachment: "crwdns9561:0crwdne9561:0" disable_machine: "crwdns9563:0crwdne9563:0" validate_your_machine: "crwdns9565:0crwdne9565:0" + #frame to select a plan to subscribe plan_subscribe: - #frame to select a plan to subscribe subscribe_online: "crwdns9567:0crwdne9567:0" do_not_subscribe: "crwdns9569:0crwdne9569:0" + #admin: choose a member to interact with member_select: - #admin: choose a member to interact with select_a_member: "crwdns9571:0crwdne9571:0" start_typing: "crwdns9573:0crwdne9573:0" + #stripe payment modal stripe: - #stripe payment modal online_payment: "crwdns9575:0crwdne9575:0" i_have_read_and_accept_: "crwdns9577:0crwdne9577:0" _the_general_terms_and_conditions: "crwdns9579:0crwdne9579:0" credit_amount_for_pay_reservation: "crwdns9581:0{amount}crwdnd9581:0{currency}crwdne9581:0" client_credit_amount_for_pay_reservation: "crwdns9583:0{amount}crwdnd9583:0{currency}crwdne9583:0" confirm_payment_of_: "crwdns9585:0{AMOUNT}crwdne9585:0" + #dialog of on site payment for reservations valid_reservation_modal: - #dialog of on site payment for reservations booking_confirmation: "crwdns9587:0crwdne9587:0" here_is_the_summary_of_the_slots_to_book_for_the_current_user: "crwdns9589:0crwdne9589:0" + #event edition form event: - #event edition form title: "crwdns9591:0crwdne9591:0" title_is_required: "crwdns9593:0crwdne9593:0" matching_visual: "crwdns9595:0crwdne9595:0" @@ -151,8 +151,8 @@ ach: tickets_available: "crwdns9631:0crwdne9631:0" event_theme: "crwdns9633:0crwdne9633:0" age_range: "crwdns9635:0crwdne9635:0" + #subscription plan edition form plan: - #subscription plan edition form general_information: "crwdns9637:0crwdne9637:0" name: "crwdns9639:0crwdne9639:0" name_is_required: "crwdns9641:0crwdne9641:0" @@ -193,8 +193,8 @@ ach: email_address_is_required: "crwdns9711:0crwdne9711:0" disabled: "crwdns9713:0crwdne9713:0" disable_plan_will_not_unsubscribe_users: "crwdns9715:0crwdne9715:0" + #training edition form trainings: - #training edition form name: "crwdns9717:0crwdne9717:0" name_is_required: "crwdns9719:0crwdne9719:0" illustration: "crwdns9721:0crwdne9721:0" @@ -207,8 +207,8 @@ ach: number_of_tickets: "crwdns9735:0crwdne9735:0" public_page: "crwdns9737:0crwdne9737:0" disable_training: "crwdns9739:0crwdne9739:0" + #partial form to edit/create an user (admin view) user_admin: - #partial form to edit/create an user (admin view) user: "crwdns9741:0crwdne9741:0" incomplete_profile: "crwdns9743:0crwdne9743:0" user_profile: "crwdns9745:0crwdne9745:0" @@ -217,8 +217,8 @@ ach: group_is_required: "crwdns9751:0crwdne9751:0" trainings: "crwdns9753:0crwdne9753:0" tags: "crwdns9755:0crwdne9755:0" + #partial form to edit/create an authentication provider (SSO) authentication: - #partial form to edit/create an authentication provider (SSO) name: "crwdns9757:0crwdne9757:0" provider_name_is_required: "crwdns9759:0crwdne9759:0" authentication_type: "crwdns9761:0crwdne9761:0" @@ -229,8 +229,8 @@ ach: expected_data_type: "crwdns9771:0crwdne9771:0" input_format: "crwdns9773:0crwdne9773:0" mappings: "crwdns9775:0crwdne9775:0" + #edition/creation form of an OAuth2 authentication provider oauth2: - #edition/creation form of an OAuth2 authentication provider common_url: "crwdns9777:0crwdne9777:0" common_url_is_required: "crwdns9779:0crwdne9779:0" provided_url_is_not_a_valid_url: "crwdns9781:0crwdne9781:0" @@ -253,25 +253,25 @@ ach: api_endpoint_url: "crwdns9815:0crwdne9815:0" api_type: "crwdns9817:0crwdne9817:0" api_fields: "crwdns9819:0crwdne9819:0" + #machine/training slot modification modal confirm_modify_slot_modal: - #machine/training slot modification modal change_the_slot: "crwdns9821:0crwdne9821:0" do_you_want_to_change_your_booking_slot_initially_planned_at: "crwdns9823:0crwdne9823:0" do_you_want_to_change_NAME_s_booking_slot_initially_planned_at: "crwdns9825:0{NAME}crwdne9825:0" cancel_this_reservation: "crwdns9827:0crwdne9827:0" i_want_to_change_date: "crwdns9829:0crwdne9829:0" + #modal introducing that a training is requested before booking a machine request_training_modal: - #modal introducing that a training is requested before booking a machine to_book_the_MACHINE_you_must_have_completed_the_TRAINING: "crwdns9831:0{MACHINE}crwdnd9831:0{TRAINING}crwdne9831:0" register_for_the_training: "crwdns9833:0crwdne9833:0" i_dont_want_to_register_now: "crwdns9835:0crwdne9835:0" + #modal introducing that a user must wait for his training being validated before booking a machine training_reservation_modal: - #modal introducing that a user must wait for his training being validated before booking a machine machine_reservation: "crwdns9837:0crwdne9837:0" you_must_wait_for_your_training_is_being_validated_by_the_fablab_team_to_book_this_machine: "crwdns9839:0crwdne9839:0" your_training_will_occur_: "crwdns9841:0crwdne9841:0" + #user public profile public_profile: - #user public profile last_activity_html: "crwdns9843:0{DATE}crwdne9843:0" to_come: "crwdns9845:0crwdne9845:0" approved: "crwdns9847:0crwdne9847:0" @@ -285,8 +285,8 @@ ach: email_address: "crwdns9863:0crwdne9863:0" trainings: "crwdns9865:0crwdne9865:0" no_trainings: "crwdns9867:0crwdne9867:0" + #wallet wallet: - #wallet wallet: 'crwdns9869:0crwdne9869:0' your_wallet_amount: 'crwdns9871:0crwdne9871:0' wallet_amount: 'crwdns9873:0crwdne9873:0' @@ -321,8 +321,8 @@ ach: debit_reservation_machine: "crwdns9931:0crwdne9931:0" debit_reservation_event: "crwdns9933:0crwdne9933:0" warning_uneditable_credit: "crwdns9935:0crwdne9935:0" + #promotional coupon (creation/edition form) coupon: - #promotional coupon (creation/edition form) name: "crwdns9937:0crwdne9937:0" name_is_required: "crwdns9939:0crwdne9939:0" code: "crwdns9941:0crwdne9941:0" @@ -344,8 +344,8 @@ ach: max_usages: "crwdns9973:0crwdne9973:0" max_usages_must_be_equal_or_greater_than_0: "crwdns9975:0crwdne9975:0" enabled: "crwdns9977:0crwdne9977:0" + #coupon (input zone for users) coupon_input: - #coupon (input zone for users) i_have_a_coupon: "crwdns9979:0crwdne9979:0" code_: "crwdns9981:0crwdne9981:0" the_coupon_has_been_applied_you_get_PERCENT_discount: "crwdns9983:0{PERCENT}crwdne9983:0" @@ -357,8 +357,8 @@ ach: unable_to_apply_the_coupon_because_amount_exceeded: "crwdns9995:0crwdne9995:0" unable_to_apply_the_coupon_because_undefined: "crwdns9997:0crwdne9997:0" unable_to_apply_the_coupon_because_rejected: "crwdns9999:0crwdne9999:0" + #form to create/edit a space space: - #form to create/edit a space name: "crwdns10001:0crwdne10001:0" name_is_required: "crwdns10003:0crwdne10003:0" illustration: "crwdns10005:0crwdne10005:0" @@ -373,8 +373,8 @@ ach: default_places: "crwdns10023:0crwdne10023:0" default_places_is_required: "crwdns10025:0crwdne10025:0" disable_space: "crwdns10027:0crwdne10027:0" + #shopping cart module for reservations cart: - #module de panier d'achat de réservations summary: "crwdns10029:0crwdne10029:0" select_one_or_more_slots_in_the_calendar: "crwdns10031:0SINGLE={SINGLE}crwdne10031:0" you_ve_just_selected_the_slot: "crwdns10033:0crwdne10033:0" @@ -404,15 +404,28 @@ ach: tags_of_the_destination_slot: "crwdns10081:0crwdne10081:0" confirm_my_modification: "crwdns10083:0crwdne10083:0" your_booking_slot_was_successfully_moved_from_: "crwdns10085:0crwdne10085:0" - to_date: crwdns10129:0crwdne10129:0 - please_select_a_member_first: 'crwdns10089:0crwdne10089:0' - unable_to_select_plan_if_slots_in_the_past: 'crwdns19571:0crwdne19571:0' + to_date: "crwdns20134:0crwdne20134:0" #eg. from 01/01 to 01/05 + please_select_a_member_first: "crwdns10089:0crwdne10089:0" + unable_to_select_plan_if_slots_in_the_past: "crwdns20136:0crwdne20136:0" unable_to_change_the_reservation: "crwdns10091:0crwdne10091:0" confirmation_required: "crwdns10093:0crwdne10093:0" do_you_really_want_to_cancel_this_reservation: "crwdns10095:0crwdne10095:0" reservation_was_cancelled_successfully: "crwdns10097:0crwdne10097:0" cancellation_failed: "crwdns10099:0crwdne10099:0" - confirm_payment_of_html: "crwdns10101:0ROLE={ROLE}crwdnd10101:0AMOUNT={AMOUNT}crwdne10101:0" #(context: confirm my payment of $20.00) + confirm_payment_of_html: "crwdns10101:0ROLE={ROLE}crwdnd10101:0AMOUNT={AMOUNT}crwdne10101:0" #eg. confirm my payment of $20.00 a_problem_occurred_during_the_payment_process_please_try_again_later: "crwdns10103:0crwdne10103:0" none: "crwdns10105:0crwdne10105:0" online_payment_disabled: "crwdns10107:0crwdne10107:0" + slot_restrict_plans: "crwdns20138:0crwdne20138:0" + slot_restrict_subscriptions_must_select_plan: "crwdns20140:0crwdne20140:0" + slot_restrict_plans_of_others_groups: "crwdns20142:0crwdne20142:0" + selected_plan_dont_match_slot: "crwdns20144:0crwdne20144:0" + user_plan_dont_match_slot: "crwdns20146:0crwdne20146:0" + no_plan_match_slot: "crwdns20148:0crwdne20148:0" + slot_at_same_time: "crwdns20150:0crwdne20150:0" + do_you_really_want_to_book_slot_at_same_time: "crwdns20152:0crwdne20152:0" + unable_to_book_slot_because_really_have_reservation_at_same_time: "crwdns20154:0crwdne20154:0" + tour: + previous: "crwdns20166:0crwdne20166:0" + next: "crwdns20168:0crwdne20168:0" + end: "crwdns20170:0crwdne20170:0" From a91b0b4631cc1babd5d4231c3f5e8af3b1ce8ce6 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:12:42 +0100 Subject: [PATCH 038/136] secure the session cookie --- CHANGELOG.md | 3 +++ config/initializers/session_store.rb | 4 +++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d53066057..05f197c64 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,8 @@ # Changelog Fab-manager +- Secure the session cookie +- Refactored translations to help merging Crowdin PR + ## v4.3.1 2020 March 04 - Updated user's manual for v4.3 (fr) diff --git a/config/initializers/session_store.rb b/config/initializers/session_store.rb index a77a0da7a..3e0085a3c 100644 --- a/config/initializers/session_store.rb +++ b/config/initializers/session_store.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + # Be sure to restart your server when you modify this file. -Rails.application.config.session_store :cookie_store, key: '_fablab_session' +Rails.application.config.session_store :cookie_store, key: '_Fab-manager_session', secure: (Rails.env.production? || Rails.env.staging?) From 2e85f39b128eb04d3a8aba135b5ac18b6ea8c2b0 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:17:47 +0100 Subject: [PATCH 039/136] move comments to help translating in crowdin --- config/locales/app.admin.en.yml | 61 +++++++++++++++++---------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/config/locales/app.admin.en.yml b/config/locales/app.admin.en.yml index 42a8bd190..d66ea7650 100644 --- a/config/locales/app.admin.en.yml +++ b/config/locales/app.admin.en.yml @@ -1,16 +1,16 @@ en: app: admin: + #add a new machine machines_new: - #add a new machine declare_a_new_machine: "Declare a new machine" watch_out_when_creating_a_new_machine_its_prices_are_initialized_at_0_for_all_subscriptions: "Watch out! When creating a new machine, its prices are initialized at 0 for all subscriptions." consider_changing_them_before_creating_any_reservation_slot: "Consider changing them before creating any reservation slot." + #machine edition machines_edit: - #machine edition machine_edit: "Edit a machine" + #manage the trainings & machines slots calendar: - #manage the trainings & machines slots calendar_management: "Calendar management" trainings: "Trainings" machines: "Machines" @@ -98,6 +98,7 @@ en: legend: "legend" and: "and" external_sync: "Calendar synchronization" + # import external iCal calendar icalendar: icalendar_import: "iCalendar import" intro: "Fab-manager allows to automatically import calendar events, at RFC 5545 iCalendar format, from external URL. These URL are synchronized every hours and the events are shown in the public calendar. You can trigger a synchronisation too, by clicking on the corresponding button, in front of each import." @@ -118,8 +119,8 @@ en: confirmation_required: "Confirmation required" confirm_delete_import: "Do you really want to delete this iCalendar import?" delete_success: "iCalendar import successfully deleted" + #management of the projects' components project_elements: - #management of the projects' components name: "Name" projects_elements_management: "Projects elements management" materials: "Materials" @@ -130,8 +131,8 @@ en: description: "Description" add_a_new_licence: "Add a new licence" manage_abuses: "Manage the reports" + #track and monitor the trainings trainings: - #track and monitor the trainings trainings_monitoring: "Trainings monitoring" plan_session: "Schedule a new session" trainings: "Trainings" @@ -163,13 +164,13 @@ en: status_enabled: "Enabled" status_disabled: "Disabled" status_all: "All" + #create a new training trainings_new: - #create a new training add_a_new_training: "Add a new training" beware_when_creating_a_training_its_reservation_prices_are_initialized_to_zero: "Beware, when creating a training, its reservation prices are initialized at zero." dont_forget_to_change_them_before_creating_slots_for_this_training: "Don't forget to change them before creating slots for this training." + #events tracking and management events: - #events tracking and management events_monitoring: "Events monitoring" manage_filters: "Manage filters" fablab_events: "Fablab events" @@ -222,16 +223,16 @@ en: do_you_really_want_to_delete_this_price_category: "Do you really want to delete this price category?" price_category_successfully_deleted: "Price category successfully deleted." price_category_deletion_failed: "Price category deletion failed." + #add a new event events_new: - #add a new event add_an_event: "Add an event" none: "None" every_days: "Every days" every_week: "Every week" every_month: "Every month" every_year: "Every year" + #edit an existing event events_edit: - #edit an existing event edit_the_event: "Edit the event" confirmation_required: "Confirmation required" edit_recurring_event: "You're about to update a periodic event. What do you want to update ?" @@ -245,8 +246,8 @@ en: events_not_updated: "On {TOTAL} events, {COUNT, plural, =1{one was not updated} other{{COUNT} were not deleted}}." error_deleting_reserved_price: "Unable to delete the requested price because it is associated with some reservations" other_error: "An unexpected error occurred while updating the event" + #event reservations list event_reservations: - #event reservations list the_reservations: "Reservations:" user: "User" payment_date: "Payment date" @@ -256,8 +257,8 @@ en: no_reservations_for_now: "No reservation for now." back_to_monitoring: "Back to monitoring" canceled: "Canceled" + #subscriptions, prices, credits and coupons management pricing: - #subscriptions, prices, credits and coupons management pricing_management: "Pricing management" subscriptions: "Subscriptions" trainings: "Trainings" @@ -336,23 +337,23 @@ en: status_enabled: "Enabled" status_disabled: "Disabled" status_all: "All" + #ajouter un code promotionnel coupons_new: - #ajouter un code promotionnel add_a_coupon: "Add a coupon" unable_to_create_the_coupon_check_code_already_used: "Unable to create the coupon. Please check that the code is not already used" + #mettre à jour un code promotionnel coupons_edit: - #mettre à jour un code promotionnel coupon: "Coupon:" unable_to_update_the_coupon_an_error_occurred: "Unable to update the coupon: an error occurred." plans: + #add a subscription plan on the platform new: - #add a subscription plan on the platform add_a_subscription_plan: "Add a subscription plan" unable_to_create_the_subscription_please_try_again: "Unable to create the subscription plan. Please try again." successfully_created_subscriptions_dont_forget_to_redefine_prices: "Subscription(s) successfully created. Don't forget to redefine prices." unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Unable to save this user. Check that there isn't an already defined user with the same name." + #edit a subscription plan / machine slots prices edit: - #edit a subscription plan / machine slots prices subscription_plan: "Subscription plan:" prices: "Prices" copy_prices_from: "Copy prices from" @@ -363,8 +364,8 @@ en: space: "Space" unable_to_save_subscription_changes_please_try_again: "Unable to save subscription changes. Please try again." subscription_successfully_changed: "Subscription successfully changed." + #list of all invoices & invoicing parameters invoices: - #list of all invoices & invoicing parameters invoices: "Invoices" accounting_periods: "Accounting periods" invoices_list: "Invoices list" @@ -580,8 +581,8 @@ en: debit_euro: "Euro debit" credit_euro: "Euro credit" lettering: "Lettering" + #management of users, labels, groups, and so on members: - #management of users, labels, groups, and so on users_management: "Users management" members: "Members" subscriptions: "Subscriptions" @@ -659,12 +660,12 @@ en: member_filter_all: "All" member_filter_not_confirmed: "Unconfirmed" member_filter_inactive_for_3_years: "Inactive for 3 years" + #add a member members_new: - #add a member add_a_member: "Add a member" user_is_an_organization: "User is an organization" + #members bulk import members_import: - #members bulk import import_members: "Import members" info: "You can upload a CSV file to create new members or update existing ones. Your file must user the identifiers below to specify the group, the trainings and the tags of the members." required_fields: "Your file must contain, at least, the following information for each user to create: email, name, first name and group. If the password is empty, it will be generated. On updates, the empty fields will be kept as is." @@ -688,8 +689,8 @@ en: update_on_id: "ID" update_on_username: "Username" update_on_email: "Email address" + #import results members_import_result: - #import results import_results: "Import results" import_details: "Import #{ID}, of {DATE}, initiated by {USER}" results: "Results" @@ -699,8 +700,8 @@ en: success: "Success" failed: "Failed" error_details: "Error's details:" + #edit a member members_edit: - #edit a member subscription: "Subscription" duration: "Duration:" expires_at: "Expires at:" @@ -742,8 +743,8 @@ en: a_problem_occurred_while_taking_the_subscription: "A problem occurred while taking the subscription" wallet: "Wallet" to_credit: 'Credit' + #add a new administrator to the platform admins_new: - #add a new administrator to the platform add_an_administrator: "Add an administrator" administrator_successfully_created_he_will_receive_his_connection_directives_by_email: "Administrator successfully created. {GENDER, select, female{She} other{He}} receive {GENDER, select, female{her} other{his}} connection directives by e-mail." failed_to_create_admin: "Unable to create the administrator:" @@ -760,8 +761,8 @@ en: birth_date: "Date of birth" address: "Address" phone_number: "Phone number" + #add a new authentication provider (SSO) authentication_new: - #add a new authentication provider (SSO) local_database: "Local Database" o_auth2: "OAuth 2.0" add_a_new_authentication_provider: "Add a new authentication provider" @@ -774,14 +775,14 @@ en: do_you_really_want_to_continue: "Do you really want to continue?" unsecured_oauth2_provider_successfully_added: "Unsecured OAuth 2.0 provider successfully added." oauth2_provider_successfully_added: "OAuth 2.0 provider successfully added." + #edit an authentication provider (SSO) authentication_edit: - #edit an authentication provider (SSO) provider: "Provider :" it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "It is required to set the matching between User.uid and the API to add this provider" provider_successfully_updated: "Provider successfully updated" an_error_occurred_unable_to_update_the_provider: "An error occurred: unable to update the provider." + #statistics tables statistics: - #statistics tables statistics: "Statistics" evolution: "Evolution" age_filter: "Age filter" @@ -823,8 +824,8 @@ en: export_is_running_you_ll_be_notified_when_its_ready: "Export is running. You'll be notified when it's ready." create_plans_to_start: "Start by creating new subscription plans." click_here: "Click here to create your first one." + #statistics graphs stats_graphs: - #statistics graphs statistics: "Statistics" data: "Data" day: "Day" @@ -842,8 +843,8 @@ en: week_of_START_to_END: "Week of {START} to {END}" no_data_for_this_period: "No data for this period" date: "Date" + #global application parameters and customization settings: - #global application parameters and customization title: "Title" customize_the_application: "Customize the application" general: "General" @@ -1020,18 +1021,18 @@ en: client_successfully_updated: "Client successfully updated." client_successfully_deleted: "Client successfully deleted." access_successfully_revoked: "Access successfully revoked." + #create a new space space_new: - #create a new space add_a_new_space: "Add a new space" watch_out_when_creating_a_new_space_its_prices_are_initialized_at_0_for_all_subscriptions: "Watch out! When creating a new space, its prices are initialized at 0 for all subscriptions." consider_changing_its_prices_before_creating_any_reservation_slot: "Consider changing its prices before creating any reservation slot." add_this_space: "Add this space" + #modify an exiting space space_edit: - #modify an exiting space edit_the_space_NAME: "Edit the space: {NAME}" validate_the_changes: "Validate the changes" + #process and delete abuses reports manage_abuses: - #process and delete abuses reports abuses_list: "Reports list" no_reports: "No reports for now" published_by: "published by" From 8652eaabee7da4dbd431cb5c161b8252c7aaf3b9 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:18:34 +0100 Subject: [PATCH 040/136] New translations app.admin.en.yml (Acholi) --- config/locales/app.admin.ach.yml | 61 ++++++++++++++++---------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/config/locales/app.admin.ach.yml b/config/locales/app.admin.ach.yml index ef60861fa..b42895725 100644 --- a/config/locales/app.admin.ach.yml +++ b/config/locales/app.admin.ach.yml @@ -1,16 +1,16 @@ ach: app: admin: + #add a new machine machines_new: - #add a new machine declare_a_new_machine: "crwdns6699:0crwdne6699:0" watch_out_when_creating_a_new_machine_its_prices_are_initialized_at_0_for_all_subscriptions: "crwdns6701:0crwdne6701:0" consider_changing_them_before_creating_any_reservation_slot: "crwdns6703:0crwdne6703:0" + #machine edition machines_edit: - #machine edition machine_edit: "crwdns6705:0crwdne6705:0" + #manage the trainings & machines slots calendar: - #manage the trainings & machines slots calendar_management: "crwdns6707:0crwdne6707:0" trainings: "crwdns6709:0crwdne6709:0" machines: "crwdns6711:0crwdne6711:0" @@ -98,6 +98,7 @@ ach: legend: "crwdns6851:0crwdne6851:0" and: "crwdns6853:0crwdne6853:0" external_sync: "crwdns19774:0crwdne19774:0" + #import external iCal calendar icalendar: icalendar_import: "crwdns6855:0crwdne6855:0" intro: "crwdns19776:0crwdne19776:0" @@ -118,8 +119,8 @@ ach: confirmation_required: "crwdns6887:0crwdne6887:0" confirm_delete_import: "crwdns6889:0crwdne6889:0" delete_success: "crwdns6891:0crwdne6891:0" + #management of the projects' components project_elements: - #management of the projects' components name: "crwdns6893:0crwdne6893:0" projects_elements_management: "crwdns6895:0crwdne6895:0" materials: "crwdns6897:0crwdne6897:0" @@ -130,8 +131,8 @@ ach: description: "crwdns6907:0crwdne6907:0" add_a_new_licence: "crwdns6909:0crwdne6909:0" manage_abuses: "crwdns6911:0crwdne6911:0" + #track and monitor the trainings trainings: - #track and monitor the trainings trainings_monitoring: "crwdns6913:0crwdne6913:0" plan_session: "crwdns19778:0crwdne19778:0" trainings: "crwdns6915:0crwdne6915:0" @@ -163,13 +164,13 @@ ach: status_enabled: "crwdns6967:0crwdne6967:0" status_disabled: "crwdns6969:0crwdne6969:0" status_all: "crwdns6971:0crwdne6971:0" + #create a new training trainings_new: - #create a new training add_a_new_training: "crwdns6973:0crwdne6973:0" beware_when_creating_a_training_its_reservation_prices_are_initialized_to_zero: "crwdns6975:0crwdne6975:0" dont_forget_to_change_them_before_creating_slots_for_this_training: "crwdns6977:0crwdne6977:0" + #events tracking and management events: - #events tracking and management events_monitoring: "crwdns6979:0crwdne6979:0" manage_filters: "crwdns6981:0crwdne6981:0" fablab_events: "crwdns6983:0crwdne6983:0" @@ -222,16 +223,16 @@ ach: do_you_really_want_to_delete_this_price_category: "crwdns7077:0crwdne7077:0" price_category_successfully_deleted: "crwdns7079:0crwdne7079:0" price_category_deletion_failed: "crwdns7081:0crwdne7081:0" + #add a new event events_new: - #add a new event add_an_event: "crwdns7083:0crwdne7083:0" none: "crwdns7085:0crwdne7085:0" every_days: "crwdns7087:0crwdne7087:0" every_week: "crwdns7089:0crwdne7089:0" every_month: "crwdns7091:0crwdne7091:0" every_year: "crwdns7093:0crwdne7093:0" + #edit an existing event events_edit: - #edit an existing event edit_the_event: "crwdns7095:0crwdne7095:0" confirmation_required: "crwdns19784:0crwdne19784:0" edit_recurring_event: "crwdns19786:0crwdne19786:0" @@ -245,8 +246,8 @@ ach: events_not_updated: "crwdns19802:0TOTAL={TOTAL}crwdnd19802:0COUNT={COUNT}crwdnd19802:0COUNT={COUNT}crwdne19802:0" error_deleting_reserved_price: "crwdns19804:0crwdne19804:0" other_error: "crwdns19806:0crwdne19806:0" + #event reservations list event_reservations: - #event reservations list the_reservations: "crwdns7097:0crwdne7097:0" user: "crwdns7099:0crwdne7099:0" payment_date: "crwdns7101:0crwdne7101:0" @@ -256,8 +257,8 @@ ach: no_reservations_for_now: "crwdns7109:0crwdne7109:0" back_to_monitoring: "crwdns7111:0crwdne7111:0" canceled: "crwdns7113:0crwdne7113:0" + #subscriptions, prices, credits and coupons management pricing: - #subscriptions, prices, credits and coupons management pricing_management: "crwdns7115:0crwdne7115:0" subscriptions: "crwdns7117:0crwdne7117:0" trainings: "crwdns7119:0crwdne7119:0" @@ -336,23 +337,23 @@ ach: status_enabled: "crwdns7265:0crwdne7265:0" status_disabled: "crwdns7267:0crwdne7267:0" status_all: "crwdns7269:0crwdne7269:0" + #ajouter un code promotionnel coupons_new: - #ajouter un code promotionnel add_a_coupon: "crwdns7271:0crwdne7271:0" unable_to_create_the_coupon_check_code_already_used: "crwdns7273:0crwdne7273:0" + #mettre à jour un code promotionnel coupons_edit: - #mettre à jour un code promotionnel coupon: "crwdns7275:0crwdne7275:0" unable_to_update_the_coupon_an_error_occurred: "crwdns7277:0crwdne7277:0" plans: + #add a subscription plan on the platform new: - #add a subscription plan on the platform add_a_subscription_plan: "crwdns7279:0crwdne7279:0" unable_to_create_the_subscription_please_try_again: "crwdns7281:0crwdne7281:0" successfully_created_subscriptions_dont_forget_to_redefine_prices: "crwdns7283:0crwdne7283:0" unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "crwdns7285:0crwdne7285:0" + #edit a subscription plan / machine slots prices edit: - #edit a subscription plan / machine slots prices subscription_plan: "crwdns7287:0crwdne7287:0" prices: "crwdns7289:0crwdne7289:0" copy_prices_from: "crwdns7291:0crwdne7291:0" @@ -363,8 +364,8 @@ ach: space: "crwdns7301:0crwdne7301:0" unable_to_save_subscription_changes_please_try_again: "crwdns7303:0crwdne7303:0" subscription_successfully_changed: "crwdns7305:0crwdne7305:0" + #list of all invoices & invoicing parameters invoices: - #list of all invoices & invoicing parameters invoices: "crwdns7307:0crwdne7307:0" accounting_periods: "crwdns7309:0crwdne7309:0" invoices_list: "crwdns7311:0crwdne7311:0" @@ -580,8 +581,8 @@ ach: debit_euro: "crwdns7729:0crwdne7729:0" credit_euro: "crwdns7731:0crwdne7731:0" lettering: "crwdns7733:0crwdne7733:0" + #management of users, labels, groups, and so on members: - #management of users, labels, groups, and so on users_management: "crwdns7735:0crwdne7735:0" members: "crwdns7737:0crwdne7737:0" subscriptions: "crwdns7739:0crwdne7739:0" @@ -659,12 +660,12 @@ ach: member_filter_all: "crwdns19812:0crwdne19812:0" member_filter_not_confirmed: "crwdns19814:0crwdne19814:0" member_filter_inactive_for_3_years: "crwdns19816:0crwdne19816:0" + #add a member members_new: - #add a member add_a_member: "crwdns7877:0crwdne7877:0" user_is_an_organization: "crwdns7879:0crwdne7879:0" + #members bulk import members_import: - #members bulk import import_members: "crwdns7881:0crwdne7881:0" info: "crwdns7883:0crwdne7883:0" required_fields: "crwdns7885:0crwdne7885:0" @@ -688,8 +689,8 @@ ach: update_on_id: "crwdns7921:0crwdne7921:0" update_on_username: "crwdns7923:0crwdne7923:0" update_on_email: "crwdns7925:0crwdne7925:0" + #import results members_import_result: - #import results import_results: "crwdns7927:0crwdne7927:0" import_details: "crwdns7929:0#{ID}crwdnd7929:0{DATE}crwdnd7929:0{USER}crwdne7929:0" results: "crwdns7931:0crwdne7931:0" @@ -699,8 +700,8 @@ ach: success: "crwdns7939:0crwdne7939:0" failed: "crwdns7941:0crwdne7941:0" error_details: "crwdns7943:0crwdne7943:0" + #edit a member members_edit: - #edit a member subscription: "crwdns7945:0crwdne7945:0" duration: "crwdns7947:0crwdne7947:0" expires_at: "crwdns7949:0crwdne7949:0" @@ -742,8 +743,8 @@ ach: a_problem_occurred_while_taking_the_subscription: "crwdns8021:0crwdne8021:0" wallet: "crwdns8023:0crwdne8023:0" to_credit: 'crwdns8025:0crwdne8025:0' + #add a new administrator to the platform admins_new: - #add a new administrator to the platform add_an_administrator: "crwdns8027:0crwdne8027:0" administrator_successfully_created_he_will_receive_his_connection_directives_by_email: "crwdns8029:0GENDER={GENDER}crwdnd8029:0GENDER={GENDER}crwdne8029:0" failed_to_create_admin: "crwdns8031:0crwdne8031:0" @@ -760,8 +761,8 @@ ach: birth_date: "crwdns8053:0crwdne8053:0" address: "crwdns8055:0crwdne8055:0" phone_number: "crwdns8057:0crwdne8057:0" + #add a new authentication provider (SSO) authentication_new: - #add a new authentication provider (SSO) local_database: "crwdns8059:0crwdne8059:0" o_auth2: "crwdns8061:0crwdne8061:0" add_a_new_authentication_provider: "crwdns8063:0crwdne8063:0" @@ -774,14 +775,14 @@ ach: do_you_really_want_to_continue: "crwdns8077:0crwdne8077:0" unsecured_oauth2_provider_successfully_added: "crwdns8079:0crwdne8079:0" oauth2_provider_successfully_added: "crwdns8081:0crwdne8081:0" + #edit an authentication provider (SSO) authentication_edit: - #edit an authentication provider (SSO) provider: "crwdns8083:0crwdne8083:0" it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "crwdns8085:0crwdne8085:0" provider_successfully_updated: "crwdns8087:0crwdne8087:0" an_error_occurred_unable_to_update_the_provider: "crwdns8089:0crwdne8089:0" + #statistics tables statistics: - #statistics tables statistics: "crwdns8091:0crwdne8091:0" evolution: "crwdns8093:0crwdne8093:0" age_filter: "crwdns8095:0crwdne8095:0" @@ -823,8 +824,8 @@ ach: export_is_running_you_ll_be_notified_when_its_ready: "crwdns8167:0crwdne8167:0" create_plans_to_start: "crwdns20160:0crwdne20160:0" click_here: "crwdns20162:0crwdne20162:0" + #statistics graphs stats_graphs: - #statistics graphs statistics: "crwdns8169:0crwdne8169:0" data: "crwdns8171:0crwdne8171:0" day: "crwdns8173:0crwdne8173:0" @@ -842,8 +843,8 @@ ach: week_of_START_to_END: "crwdns8197:0{START}crwdnd8197:0{END}crwdne8197:0" no_data_for_this_period: "crwdns8199:0crwdne8199:0" date: "crwdns8201:0crwdne8201:0" + #global application parameters and customization settings: - #global application parameters and customization title: "crwdns8203:0crwdne8203:0" customize_the_application: "crwdns8205:0crwdne8205:0" general: "crwdns8207:0crwdne8207:0" @@ -1020,18 +1021,18 @@ ach: client_successfully_updated: "crwdns8469:0crwdne8469:0" client_successfully_deleted: "crwdns8471:0crwdne8471:0" access_successfully_revoked: "crwdns8473:0crwdne8473:0" + #create a new space space_new: - #create a new space add_a_new_space: "crwdns8475:0crwdne8475:0" watch_out_when_creating_a_new_space_its_prices_are_initialized_at_0_for_all_subscriptions: "crwdns8477:0crwdne8477:0" consider_changing_its_prices_before_creating_any_reservation_slot: "crwdns8479:0crwdne8479:0" add_this_space: "crwdns8481:0crwdne8481:0" + #modify an exiting space space_edit: - #modify an exiting space edit_the_space_NAME: "crwdns8483:0{NAME}crwdne8483:0" validate_the_changes: "crwdns8485:0crwdne8485:0" + #process and delete abuses reports manage_abuses: - #process and delete abuses reports abuses_list: "crwdns8487:0crwdne8487:0" no_reports: "crwdns8489:0crwdne8489:0" published_by: "crwdns8491:0crwdne8491:0" From 8efe27a448d8a0e5c4365923686e5a653b8d1e08 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:18:42 +0100 Subject: [PATCH 041/136] New translations app.admin.en.yml (Spanish) --- config/locales/app.admin.es.yml | 61 +++++++++++++++++---------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/config/locales/app.admin.es.yml b/config/locales/app.admin.es.yml index 2f2056389..a3f9fc8c6 100644 --- a/config/locales/app.admin.es.yml +++ b/config/locales/app.admin.es.yml @@ -1,16 +1,16 @@ es: app: admin: + #add a new machine machines_new: - #add a new machine declare_a_new_machine: "Declara una nueva máquina" watch_out_when_creating_a_new_machine_its_prices_are_initialized_at_0_for_all_subscriptions: "Cuidado al crear una nueva máquina, los precios están inicializados a 0 para todas las subscripciones." consider_changing_them_before_creating_any_reservation_slot: "Considera cambiarlos antes de crear cualquier ranura de reserva." + #machine edition machines_edit: - #machine edition machine_edit: "Editar una máquina" + #manage the trainings & machines slots calendar: - #manage the trainings & machines slots calendar_management: "Administración de calendario" trainings: "Formación" machines: "Máquinas" @@ -98,6 +98,7 @@ es: legend: "leyenda" and: "y" external_sync: "Calendar synchronization" + #import external iCal calendar icalendar: icalendar_import: "iCalendar import" intro: "Fab-manager allows to automatically import calendar events, at RFC 5545 iCalendar format, from external URL. These URL are synchronized every hours and the events are shown in the public calendar. You can trigger a synchronisation too, by clicking on the corresponding button, in front of each import." @@ -118,8 +119,8 @@ es: confirmation_required: "Confirmation required" confirm_delete_import: "Do you really want to delete this iCalendar import?" delete_success: "iCalendar import successfully deleted" + #management of the projects' components project_elements: - #management of the projects' components name: "Name" projects_elements_management: "Gestión de elementos de proyectos" materials: "Materials" @@ -130,8 +131,8 @@ es: description: "Description" add_a_new_licence: "Agregar una nueva licencia" manage_abuses: "Administrar informes" + #track and monitor the trainings trainings: - #track and monitor the trainings trainings_monitoring: "Trainings monitoring" plan_session: "Schedule a new session" trainings: "Trainings" @@ -163,13 +164,13 @@ es: status_enabled: "Enabled" status_disabled: "Disabled" status_all: "All" + #create a new training trainings_new: - #create a new training add_a_new_training: "Add 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." + #events tracking and management events: - #events tracking and management events_monitoring: "Monitoreo de eventos" manage_filters: "Administrar filtros" fablab_events: "Eventos de Fablab" @@ -222,16 +223,16 @@ es: do_you_really_want_to_delete_this_price_category: "¿Desea realmente eliminar esta categoría de precios?" price_category_successfully_deleted: "Categoría de precio eliminada correctamente." price_category_deletion_failed: "Error al eliminar la categoría de precio." + #add a new event events_new: - #add a new event add_an_event: "Add an event" none: "Nada" every_days: "Todos los dias" every_week: "Cada semana" every_month: "Cada mes" every_year: "Cada año" + #edit an existing event events_edit: - #edit an existing event edit_the_event: "Editar el evento" confirmation_required: "Confirmation required" edit_recurring_event: "You're about to update a periodic event. What do you want to update ?" @@ -245,8 +246,8 @@ es: events_not_updated: "On {TOTAL} events, {COUNT, plural, =1{one was not updated} other{{COUNT} were not deleted}}." error_deleting_reserved_price: "No se puede eliminar el precio solicitado porque está asociado con algunas reservas." other_error: "Se ha producido un error inesperado al actualizar el evento." + #event reservations list event_reservations: - #event reservations list the_reservations: "Reservas :" user: "User" payment_date: "Fecha de pago" @@ -256,8 +257,8 @@ es: no_reservations_for_now: "No hay reservas por ahora." back_to_monitoring: "Volver a monitorizar" canceled: "cancelada" + #subscriptions, prices, credits and coupons management pricing: - #subscriptions, prices, credits and coupons management pricing_management: "Gestión de precios" subscriptions: "Suscripciones" trainings: "Formaciones" @@ -336,23 +337,23 @@ es: status_enabled: "Enabled" status_disabled: "Disabled" status_all: "All" + #ajouter un code promotionnel coupons_new: - #ajouter un code promotionnel add_a_coupon: "Añadir un cupón" unable_to_create_the_coupon_check_code_already_used: "No se puede crear el cupón. Compruebe que el código no esté ya utilizado" + #mettre à jour un code promotionnel coupons_edit: - #mettre à jour un code promotionnel coupon: "Coupon:" unable_to_update_the_coupon_an_error_occurred: "No se puede actualizar el cupón: se ha producido un error." plans: + #add a subscription plan on the platform new: - #add a subscription plan on the platform add_a_subscription_plan: "Agregar un plan de suscripción" unable_to_create_the_subscription_please_try_again: "No se puede crear el plan de suscripción. Por favor, inténtelo de nuevo." successfully_created_subscriptions_dont_forget_to_redefine_prices: "Suscripción(es) creada correctamente. No olvide redefinir los precios." unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "No se puede guardar este usuario. Compruebe que no hay un usuario ya definido con el mismo nombre." + #edit a subscription plan / machine slots prices edit: - #edit a subscription plan / machine slots prices subscription_plan: "Plan de suscripción:" prices: "Precios" copy_prices_from: "Copia los precios desde" @@ -363,8 +364,8 @@ es: space: "Espacio" unable_to_save_subscription_changes_please_try_again: "No se pueden guardar los cambios de suscripción. Por favor, inténtelo de nuevo." subscription_successfully_changed: "Suscripción cambiada correctamente." + #list of all invoices & invoicing parameters invoices: - #list of all invoices & invoicing parameters invoices: "Facturas" accounting_periods: "Accounting periods" invoices_list: "Lista de facturas" @@ -580,8 +581,8 @@ es: debit_euro: "Euro debit" credit_euro: "Euro credit" lettering: "Lettering" + #management of users, labels, groups, and so on members: - #management of users, labels, groups, and so on users_management: "Gestión de usuarios" members: "Miembros" subscriptions: "Subscriptions" @@ -659,12 +660,12 @@ es: member_filter_all: "All" member_filter_not_confirmed: "Unconfirmed" member_filter_inactive_for_3_years: "Inactive for 3 years" + #add a member members_new: - #add a member add_a_member: "Agregar un miembro" user_is_an_organization: "El usuario es una organización" + #members bulk import members_import: - #members bulk import import_members: "Import members" info: "You can upload a CSV file to create new members or update existing ones. Your file must user the identifiers below to specify the group, the trainings and the tags of the members." required_fields: "Your file must contain, at least, the following information for each user to create: email, name, first name and group. If the password is empty, it will be generated. On updates, the empty fields will be kept as is." @@ -688,8 +689,8 @@ es: update_on_id: "ID" update_on_username: "Username" update_on_email: "Email address" + #import results members_import_result: - #import results import_results: "Import results" import_details: "Import #{ID}, of {DATE}, initiated by {USER}" results: "Results" @@ -699,8 +700,8 @@ es: success: "Success" failed: "Failed" error_details: "Error's details:" + #edit a member members_edit: - #edit a member subscription: "Subscription" duration: "Duración:" expires_at: "Caduca en:" @@ -742,8 +743,8 @@ es: a_problem_occurred_while_taking_the_subscription: "Se ha producido un problema al realizar la suscripción." wallet: "Wallet" to_credit: 'Credit' + #add a new administrator to the platform admins_new: - #add a new administrator to the platform add_an_administrator: "Agregar un administrador" administrator_successfully_created_he_will_receive_his_connection_directives_by_email: "administrador creado correctamente. {GENDER, select, female{She} other{He}} receive {GENDER, select, female{her} other{his}} directivas de conexión por e-mail." failed_to_create_admin: "No se puede crear el administrador :" @@ -760,8 +761,8 @@ es: birth_date: "Date of birth" address: "Address" phone_number: "Phone number" + #add a new authentication provider (SSO) authentication_new: - #add a new authentication provider (SSO) local_database: "Base de datos local" o_auth2: "OAuth 2.0" add_a_new_authentication_provider: "Agregar un nuevo proveedor de autenticación" @@ -774,14 +775,14 @@ es: do_you_really_want_to_continue: "¿De verdad quieres continuar?" unsecured_oauth2_provider_successfully_added: "Proveedor de OAuth 2.0 no seguro, se ha agregado correctamente." oauth2_provider_successfully_added: "OAuth 2.0 proveedor agregado correctamente." + #edit an authentication provider (SSO) authentication_edit: - #edit an authentication provider (SSO) provider: "Proveedor :" it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "Es necesario establecer la coincidencia entre User.uid y la API para agregar este proveedor" provider_successfully_updated: "Proveedor actualizado correctamente" an_error_occurred_unable_to_update_the_provider: "Se ha producido un error: no se puede actualizar el proveedor." + #statistics tables statistics: - #statistics tables statistics: "Statistics" evolution: "Evolución" age_filter: "Filtro de edad" @@ -823,8 +824,8 @@ es: export_is_running_you_ll_be_notified_when_its_ready: "Export is running. You'll be notified when it's ready." create_plans_to_start: "Start by creating new subscription plans." click_here: "Click here to create your first one." + #statistics graphs stats_graphs: - #statistics graphs statistics: "Statistics" data: "Datos" day: "Dia" @@ -842,8 +843,8 @@ es: week_of_START_to_END: "Semana del {START} a {END}" no_data_for_this_period: "No hay datos para este periodo" date: "Date" + #global application parameters and customization settings: - #global application parameters and customization title: "Título" customize_the_application: "Personalizar la aplicación" general: "General" @@ -1020,18 +1021,18 @@ es: client_successfully_updated: "Cliente actualizado correctamente." client_successfully_deleted: "Cliente borrado correctamente." access_successfully_revoked: "Acceso revocado correctamente." + #create a new space space_new: - #create a new space 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." 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" + #modify an exiting space space_edit: - #modify an exiting space edit_the_space_NAME: "Edit the space: {NAME}" validate_the_changes: "Validar los cambios" + #process and delete abuses reports manage_abuses: - #process and delete abuses reports abuses_list: "Lista de informes" no_reports: "No informes por ahora" published_by: "published by" From 7d6dbcf309502fb5bb53ed7a7329edc38ab563cf Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:18:50 +0100 Subject: [PATCH 042/136] New translations app.admin.en.yml (Portuguese) --- config/locales/app.admin.pt.yml | 61 +++++++++++++++++---------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/config/locales/app.admin.pt.yml b/config/locales/app.admin.pt.yml index ec3e25667..f160e5033 100755 --- a/config/locales/app.admin.pt.yml +++ b/config/locales/app.admin.pt.yml @@ -1,16 +1,16 @@ pt: app: admin: + #add a new machine machines_new: - #add a new machine declare_a_new_machine: "Criar nova máquina" watch_out_when_creating_a_new_machine_its_prices_are_initialized_at_0_for_all_subscriptions: "Cuidado! Ao criar uma nova máquina, os preços são inicializados em 0 para todas as assinaturas." consider_changing_them_before_creating_any_reservation_slot: "Concidere alterá-lo antes de criar qualquer slot de reserva." + #machine edition machines_edit: - #machine edition machine_edit: "Editar máquina" + #manage the trainings & machines slots calendar: - #manage the trainings & machines slots calendar_management: "Gerenciamento do calendário" trainings: "Treinamentos" machines: "Máquinas" @@ -98,6 +98,7 @@ pt: legend: "legenda" and: "and" external_sync: "Calendar synchronization" + #import external iCal calendar icalendar: icalendar_import: "iCalendar import" intro: "Fab-manager allows to automatically import calendar events, at RFC 5545 iCalendar format, from external URL. These URL are synchronized every hours and the events are shown in the public calendar. You can trigger a synchronisation too, by clicking on the corresponding button, in front of each import." @@ -118,8 +119,8 @@ pt: confirmation_required: "Confirmation required" confirm_delete_import: "Do you really want to delete this iCalendar import?" delete_success: "iCalendar import successfully deleted" + #management of the projects' components project_elements: - #management of the projects' components name: "Name" projects_elements_management: "Gerenciar projetos e elementos" materials: "Materials" @@ -130,8 +131,8 @@ pt: description: "Description" add_a_new_licence: "Adicionar uma nova licença" manage_abuses: "Gerenciar relatórios" + #track and monitor the trainings trainings: - #track and monitor the trainings trainings_monitoring: "Trainings monitoring" plan_session: "Schedule a new session" trainings: "Treinamentos" @@ -163,13 +164,13 @@ pt: status_enabled: "Ativos" status_disabled: "Desabilitados" status_all: "Todos" + #create a new training trainings_new: - #create a new training add_a_new_training: "Adicionar um novo treinamento" beware_when_creating_a_training_its_reservation_prices_are_initialized_to_zero: "Cuidado, ao criar um treinamento, seu preço de reserva é inicializado em zero." dont_forget_to_change_them_before_creating_slots_for_this_training: "Não se esqueça de alterá-lo antes de criar slots para este treinamento." + #events tracking and management events: - #events tracking and management events_monitoring: "Monitoramento de eventos" manage_filters: "Gerenciar filtros" fablab_events: "Eventos do FabLab" @@ -222,16 +223,16 @@ pt: do_you_really_want_to_delete_this_price_category: "Você realmente quer deletar este preço de categoria?" price_category_successfully_deleted: "Preço de categoria deletado com sucesso." price_category_deletion_failed: "Falha ao deletar preço de categoria." + #add a new event events_new: - #add a new event add_an_event: "Add an event" none: "Vazio" every_days: "Todos os dias" every_week: "Toda semana" every_month: "Todo mês" every_year: "Todo ano" + #edit an existing event events_edit: - #edit an existing event edit_the_event: "Editar evento" confirmation_required: "Confirmation required" edit_recurring_event: "You're about to update a periodic event. What do you want to update ?" @@ -245,8 +246,8 @@ pt: events_not_updated: "On {TOTAL} events, {COUNT, plural, =1{one was not updated} other{{COUNT} were not deleted}}." error_deleting_reserved_price: "Não permitido deletar o preço requisitado, pois está associado a algumas reservas" other_error: "Um erro inesperado ocorreu enquanto o evento era atualizado" + #event reservations list event_reservations: - #event reservations list the_reservations: "Reservas :" user: "User" payment_date: "Data de pagamento" @@ -256,8 +257,8 @@ pt: no_reservations_for_now: "Nenhuma reserva." back_to_monitoring: "Voltar ao monitoramento" canceled: "cancelada" + #subscriptions, prices, credits and coupons management pricing: - #subscriptions, prices, credits and coupons management pricing_management: "Gerenciamento de preços" subscriptions: "Inscrições" trainings: "Treinamentos" @@ -336,23 +337,23 @@ pt: status_enabled: "Ativos" status_disabled: "Desabilitados" status_all: "Todos" + #ajouter un code promotionnel coupons_new: - #ajouter un code promotionnel add_a_coupon: "Adicionar cupom" unable_to_create_the_coupon_check_code_already_used: "Impossível criar cupom. Por favor certifique-se que o código já não foi utilizado" + #mettre à jour un code promotionnel coupons_edit: - #mettre à jour un code promotionnel coupon: "Coupon:" unable_to_update_the_coupon_an_error_occurred: "Impossível atualizar cupom: um erro ocorreu." plans: + #add a subscription plan on the platform new: - #add a subscription plan on the platform add_a_subscription_plan: "Adicionar plano de assinatura" unable_to_create_the_subscription_please_try_again: "Não é possível criar plano de assinatura. por favor tente novamente." successfully_created_subscriptions_dont_forget_to_redefine_prices: "Assinaturas criadas com sucesso. Não se esqueça de redefinir os preços." unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Impossível salvar este usuário. Certifique-se que ele não possui o mesmo nome de outro usuário." + #edit a subscription plan / machine slots prices edit: - #edit a subscription plan / machine slots prices subscription_plan: "Plano de assinatura:" prices: "Preços" copy_prices_from: "Copiar preços de" @@ -363,8 +364,8 @@ pt: space: "Espaço" unable_to_save_subscription_changes_please_try_again: "Impossível salvar mudanças da assinatura. Por favor tente novamente." subscription_successfully_changed: "Assinatura alterada com sucesso." + #list of all invoices & invoicing parameters invoices: - #list of all invoices & invoicing parameters invoices: "Faturas" accounting_periods: "Accounting periods" invoices_list: "Lista de faturas" @@ -580,8 +581,8 @@ pt: debit_euro: "Euro debit" credit_euro: "Euro credit" lettering: "Lettering" + #management of users, labels, groups, and so on members: - #management of users, labels, groups, and so on users_management: "Gerenciamento de usuários" members: "Membros" subscriptions: "Subscriptions" @@ -659,12 +660,12 @@ pt: member_filter_all: "All" member_filter_not_confirmed: "Unconfirmed" member_filter_inactive_for_3_years: "Inactive for 3 years" + #add a member members_new: - #add a member add_a_member: "Adicionar membro" user_is_an_organization: "Usuário é uma organização" + #members bulk import members_import: - #members bulk import import_members: "Import members" info: "You can upload a CSV file to create new members or update existing ones. Your file must user the identifiers below to specify the group, the trainings and the tags of the members." required_fields: "Your file must contain, at least, the following information for each user to create: email, name, first name and group. If the password is empty, it will be generated. On updates, the empty fields will be kept as is." @@ -688,8 +689,8 @@ pt: update_on_id: "ID" update_on_username: "Username" update_on_email: "Email address" + #import results members_import_result: - #import results import_results: "Import results" import_details: "Import #{ID}, of {DATE}, initiated by {USER}" results: "Results" @@ -699,8 +700,8 @@ pt: success: "Success" failed: "Failed" error_details: "Error's details:" + #edit a member members_edit: - #edit a member subscription: "Subscription" duration: "Duração:" expires_at: "Experia em:" @@ -742,8 +743,8 @@ pt: a_problem_occurred_while_taking_the_subscription: "Ocorreu um problema ao fazer a assinatura" wallet: "Wallet" to_credit: 'Credit' + #add a new administrator to the platform admins_new: - #add a new administrator to the platform add_an_administrator: "Adicionar administrador" administrator_successfully_created_he_will_receive_his_connection_directives_by_email: "Administrator criado com sucesso. {GENDER, select, female{Ela} other{Ele}} receberá {GENDER, select, female{sua} other{seu}} diretivas de conexão por e-mail." failed_to_create_admin: "Não é possível criar administrador:" @@ -760,8 +761,8 @@ pt: birth_date: "Date of birth" address: "Address" phone_number: "Phone number" + #add a new authentication provider (SSO) authentication_new: - #add a new authentication provider (SSO) local_database: "Local Database" o_auth2: "OAuth 2.0" add_a_new_authentication_provider: "Adicionar novo provedor de autenticação" @@ -774,14 +775,14 @@ pt: do_you_really_want_to_continue: "Você realmente deseja continuar?" unsecured_oauth2_provider_successfully_added: "Provedor OAuth 2.0 não seguro adicionado com êxito." oauth2_provider_successfully_added: "Provedor OAuth 2.0 adicionado com sucesso." + #edit an authentication provider (SSO) authentication_edit: - #edit an authentication provider (SSO) provider: "Provedor :" it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "É necessário definir a correspondência entre User.uid ea API para adicionar este fornecedor" provider_successfully_updated: "Provedor modificado com sucesso" an_error_occurred_unable_to_update_the_provider: "Um erro ocorreu: não é possível atualizar provedor." + #statistics tables statistics: - #statistics tables statistics: "Statistics" evolution: "Evolução" age_filter: "Filtro de idade" @@ -823,8 +824,8 @@ pt: export_is_running_you_ll_be_notified_when_its_ready: "Export is running. You'll be notified when it's ready." create_plans_to_start: "Start by creating new subscription plans." click_here: "Click here to create your first one." + #statistics graphs stats_graphs: - #statistics graphs statistics: "Statistics" data: "Dado" day: "Dia" @@ -842,8 +843,8 @@ pt: week_of_START_to_END: "Semana de {START} á {END}" no_data_for_this_period: "Nenhum dado para este período" date: "Date" + #global application parameters and customization settings: - #global application parameters and customization title: "Title" customize_the_application: "Customizar a aplicação" general: "Geral" @@ -1020,18 +1021,18 @@ pt: client_successfully_updated: "Cliente alterado com sucesso." client_successfully_deleted: "Cliente excluído com sucesso." access_successfully_revoked: "Acesso revogado com sucesso." + #create a new space space_new: - #create a new space add_a_new_space: "Adicionar um novo espaço" watch_out_when_creating_a_new_space_its_prices_are_initialized_at_0_for_all_subscriptions: "Cuidado! Ao criar um novo espaço, seus preços são inicializados em 0 para todas as assinaturas." consider_changing_its_prices_before_creating_any_reservation_slot: "Considere alterar seus preços antes de criar qualquer slot de reserva." add_this_space: "Adicionar este espaço" + #modify an exiting space space_edit: - #modify an exiting space edit_the_space_NAME: "Editar o espaço: {NAME}" validate_the_changes: "Validar mudanças" + #process and delete abuses reports manage_abuses: - #process and delete abuses reports abuses_list: "Lista de relatórios" no_reports: "Não há relatos de agora" published_by: "published by" From 75f96b34a27602825076fde488804edbdd1b375f Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:18:59 +0100 Subject: [PATCH 043/136] New translations app.admin.en.yml (French) --- config/locales/app.admin.fr.yml | 61 +++++++++++++++++---------------- 1 file changed, 31 insertions(+), 30 deletions(-) diff --git a/config/locales/app.admin.fr.yml b/config/locales/app.admin.fr.yml index ff1b0e7bf..6baa5a307 100644 --- a/config/locales/app.admin.fr.yml +++ b/config/locales/app.admin.fr.yml @@ -1,16 +1,16 @@ fr: app: admin: + #add a new machine machines_new: - #add a new machine declare_a_new_machine: "Déclarer une nouvelle machine" watch_out_when_creating_a_new_machine_its_prices_are_initialized_at_0_for_all_subscriptions: "Attention, lors de la création d'une machine, ses tarifs de réservation sont initialisés à zero pour tous les abonnements." consider_changing_them_before_creating_any_reservation_slot: "Pensez à les modifier avant de créer des créneaux pour cette machine." + #machine edition machines_edit: - #machine edition machine_edit: "Modifier une machine" + #manage the trainings & machines slots calendar: - #manage the trainings & machines slots calendar_management: "Gestion du calendrier" trainings: "Formations" machines: "Machines" @@ -98,6 +98,7 @@ fr: legend: "Légende" and: "et" external_sync: "Synchronisation d'agendas" + #import external iCal calendar icalendar: icalendar_import: "Import iCalendar" intro: "Fab-manager vous permet d'importer automatiquement des évènements de calendrier, au format iCalendar RFC 5545, depuis des URL externes. Ces URL seront synchronisée toutes les heures et les évènements seront affichés dans le calendrier publique. Vous pouvez aussi déclencher une synchronisation en cliquant sur le bouton correspondant, en face de chaque import." @@ -118,8 +119,8 @@ fr: confirmation_required: "Confirmation requise" confirm_delete_import: "Êtes-vous sur de vouloir supprimer cet import iCalendar ?" delete_success: "L'import iCalendar a bien été supprimé" + #management of the projects' components project_elements: - #management of the projects' components name: "Nom" projects_elements_management: "Gestion des éléments projets" materials: "Matériaux" @@ -130,8 +131,8 @@ fr: description: "Description" add_a_new_licence: "Ajouter une nouvelle licence" manage_abuses: "Gérer les signalements" + #track and monitor the trainings trainings: - #track and monitor the trainings trainings_monitoring: "Suivi formations" plan_session: "Planifier une nouvelle session" trainings: "Formations" @@ -163,13 +164,13 @@ fr: status_enabled: "Actifs" status_disabled: "Désactivés" status_all: "Tous" + #create a new training trainings_new: - #create a new training add_a_new_training: "Ajouter une nouvelle formation" beware_when_creating_a_training_its_reservation_prices_are_initialized_to_zero: "Attention, lors de la création d'une formation, ses tarifs de réservation sont initialisés à zero." dont_forget_to_change_them_before_creating_slots_for_this_training: "Pensez à les modifier avant de créer des créneaux pour cette formation." + #events tracking and management events: - #events tracking and management events_monitoring: "Suivi des évènements" manage_filters: "Gérer les filtres" fablab_events: "Les évènements du Fab Lab" @@ -222,16 +223,16 @@ fr: do_you_really_want_to_delete_this_price_category: "Êtes vous sur de vouloir supprimer cette catégorie tarifaire ?" price_category_successfully_deleted: "Catégorie tarifaire supprimée avec succès." price_category_deletion_failed: "Échec de la suppression de la catégorie tarifaire." + #add a new event events_new: - #add a new event add_an_event: "Ajouter un évènement" none: "Aucune" every_days: "Tous les jours" every_week: "Chaque semaine" every_month: "Chaque mois" every_year: "Chaque année" + #edit an existing event events_edit: - #edit an existing event edit_the_event: "Éditer l'évènement" confirmation_required: "Confirmation requise" edit_recurring_event: "Vous êtes sur le point de modifier un évènement périodique. Que voulez-vous modifier ?" @@ -245,8 +246,8 @@ fr: events_not_updated: "Sur {TOTAL} évènements, {COUNT, plural, =1{un n'a pas pu être modifié} other{{COUNT} n'ont pas pu être modifiés}}." error_deleting_reserved_price: "Impossible de supprimer le tarif demandé car il est associé à des réservations" other_error: "Une erreur inattendue est survenue lors de la mise à jour de l'évènement" + #event reservations list event_reservations: - #event reservations list the_reservations: "Les réservations :" user: "Utilisateur" payment_date: "Date de paiement" @@ -256,8 +257,8 @@ fr: no_reservations_for_now: "Aucune réservation pour le moment." back_to_monitoring: "Retour au suivi" canceled: "Annulée" + #subscriptions, prices, credits and coupons management pricing: - #subscriptions, prices, credits and coupons management pricing_management: "Gestion de la tarification" subscriptions: "Abonnements" trainings: "Formations" @@ -336,23 +337,23 @@ fr: status_enabled: "Actifs" status_disabled: "Désactivés" status_all: "Tous" + #ajouter un code promotionnel coupons_new: - #ajouter un code promotionnel add_a_coupon: "Ajouter un code promotionnel" unable_to_create_the_coupon_check_code_already_used: "Impossible de créer le code promotionnel. Vérifiez que le code n'est pas utilisé." + #mettre à jour un code promotionnel coupons_edit: - #mettre à jour un code promotionnel coupon: "Code promo :" unable_to_update_the_coupon_an_error_occurred: "Impossible de mettre à jour le code promotionnel : une erreur est survenue." plans: + #add a subscription plan on the platform new: - #add a subscription plan on the platform add_a_subscription_plan: "Ajouter une formule d'abonnement" unable_to_create_the_subscription_please_try_again: "L'abonnement n'a pas pu être créé. Veuillez réessayer." successfully_created_subscriptions_dont_forget_to_redefine_prices: "Création du/des abonnement(s) réussie. N'oubliez pas de redéfinir les tarifs." unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Impossible d'enregistrer cet utilisateur. Vérifiez qu'il n'existe pas déjà un utilisateur du même nom." + #edit a subscription plan / machine slots prices edit: - #edit a subscription plan / machine slots prices subscription_plan: "Formule d'abonnement :" prices: "Tarifs" copy_prices_from: "Copier les prix depuis" @@ -363,8 +364,8 @@ fr: space: "Espace" unable_to_save_subscription_changes_please_try_again: "Les modifications de l'abonnement n'ont pas pu être enregistrées. Veuillez réessayer." subscription_successfully_changed: "Modification de l'abonnement réussie." + #list of all invoices & invoicing parameters invoices: - #list of all invoices & invoicing parameters invoices: "Factures" accounting_periods: "Périodes comptables" invoices_list: "Liste des factures" @@ -580,8 +581,8 @@ fr: debit_euro: "Débit euro" credit_euro: "Crédit euro" lettering: "Lettrage" + #management of users, labels, groups, and so on members: - #management of users, labels, groups, and so on users_management: "Gestion des utilisateurs" members: "Membres" subscriptions: "Abonnements" @@ -659,12 +660,12 @@ fr: member_filter_all: "Tous" member_filter_not_confirmed: "Non confirmés" member_filter_inactive_for_3_years: "Inactifs depuis 3 ans" + #add a member members_new: - #add a member add_a_member: "Ajouter un membre" user_is_an_organization: "L'utilisateur est une structure" + #members bulk import members_import: - #members bulk import import_members: "Importer des membres" info: "Vous pouvez téléverser un fichier CSV afin de créer des nouveaux membres ou de mettre à jour les existants. Votre fichier doit utiliser les identifiants ci-dessous pour spécifier le groupe, les formations et les étiquettes des membres." required_fields: "Votre fichier doit obligatoirement comporter, au minimum, les informations suivantes pour chaque utilisateur à créer : courriel, nom, prénom et groupe. Si le mot passe n'est pas rempli, il sera généré automatiquement. Lors d'une mise à jour, les champs non remplis seront gardés tel quels." @@ -688,8 +689,8 @@ fr: update_on_id: "ID" update_on_username: "Pseudonyme" update_on_email: "Adresse de courriel" + #import results members_import_result: - #import results import_results: "Résultats de l'import" import_details: "Import n°{ID}, du {DATE}, initié par {USER}" results: "Résultats" @@ -699,8 +700,8 @@ fr: success: "Succès" failed: "Échec" error_details: "Détails de l'erreur :" + #edit a member members_edit: - #edit a member subscription: "Abonnement" duration: "Durée :" expires_at: "Expire le :" @@ -742,8 +743,8 @@ fr: a_problem_occurred_while_taking_the_subscription: "Il y a eu un problème lors de la souscription à l'abonnement" wallet: "Porte-monnaie" to_credit: 'Créditer' + #add a new administrator to the platform admins_new: - #add a new administrator to the platform add_an_administrator: "Ajouter un administrateur" administrator_successfully_created_he_will_receive_his_connection_directives_by_email: "L'administrateur a bien été créé. {GENDER, select, female{Elle} other{Il}} recevra ses instructions de connexion par email." failed_to_create_admin: "Impossible de créer l'administrateur :" @@ -760,8 +761,8 @@ fr: birth_date: "Date de naissance" address: "Adresse" phone_number: "Numéro de téléphone" + #add a new authentication provider (SSO) authentication_new: - #add a new authentication provider (SSO) local_database: "Base de données locale" o_auth2: "OAuth 2.0" add_a_new_authentication_provider: "Ajouter un fournisseur d'authentification" @@ -774,14 +775,14 @@ fr: do_you_really_want_to_continue: "Êtes vous sur de vouloir continuer ?" unsecured_oauth2_provider_successfully_added: "Le fournisseur OAuth 2.0 (non sécurisé) a bien été enregistré." oauth2_provider_successfully_added: "Le fournisseur OAuth 2.0 a bien été enregistré." + #edit an authentication provider (SSO) authentication_edit: - #edit an authentication provider (SSO) provider: "Fournisseur :" it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "Il est obligatoire d'établir la correspondance entre User.uid et l'API pour pouvoir ajouter ce fournisseur." provider_successfully_updated: "Le fournisseur a bien été mis à jour." an_error_occurred_unable_to_update_the_provider: "Une error est survenue : impossible de mettre à jour le fournisseur." + #statistics tables statistics: - #statistics tables statistics: "Statistiques" evolution: "évolution" age_filter: "Filtre d'âge" @@ -823,8 +824,8 @@ fr: export_is_running_you_ll_be_notified_when_its_ready: "L'export est en cours. Vous serez notifié lorsqu'il sera prêt." create_plans_to_start: "Pour commencer, créez de nouvelles formules d'abonnement." click_here: "Cliquez ici pour créer votre première formule." + #statistics graphs stats_graphs: - #statistics graphs statistics: "Statistiques" data: "Données" day: "Jour" @@ -842,8 +843,8 @@ fr: week_of_START_to_END: "Semaine du {START} au {END}" no_data_for_this_period: "Pas de données pour cette période" date: "Date" + #global application parameters and customization settings: - #global application parameters and customization title: "Titre" customize_the_application: "Personnalisation de l'application" general: "Général" @@ -1020,18 +1021,18 @@ fr: client_successfully_updated: "Les modifications ont été enregistrées." client_successfully_deleted: "Le compte client a bien été supprimé." access_successfully_revoked: "L'accès a bien été revoqué." + #create a new space space_new: - #create a new space add_a_new_space: "Ajouter un nouvel espace" watch_out_when_creating_a_new_space_its_prices_are_initialized_at_0_for_all_subscriptions: "Attention, lors de la création d'un espace, ses tarifs de réservation sont initialisés à zero pour tous les abonnements." consider_changing_its_prices_before_creating_any_reservation_slot: "Pensez à modifier ces prix avant de créer des créneaux pour cet espace." add_this_space: "Ajouter cet espace" + #modify an exiting space space_edit: - #modify an exiting space edit_the_space_NAME: "Modifier l'espace : {NAME}" validate_the_changes: "Valider les modifications" + #process and delete abuses reports manage_abuses: - #process and delete abuses reports abuses_list: "Liste des signalements" no_reports: "Aucun signalement pour le moment" published_by: "publié par" From f7980e52f923f5ba71d219b4fb0e88eb084ca2a9 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:29:34 +0100 Subject: [PATCH 044/136] refactor translations for crowdin --- config/locales/app.admin.en.yml | 2 +- config/locales/app.logged.en.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/app.admin.en.yml b/config/locales/app.admin.en.yml index d66ea7650..8f556e26d 100644 --- a/config/locales/app.admin.en.yml +++ b/config/locales/app.admin.en.yml @@ -411,7 +411,7 @@ en: year: "Year" month: "Month" day: "Day" - num_of_invoice: "# of invoice" + num_of_invoice: "Num. of invoice" online_sales: "Online sales" wallet: "Wallet" refund: "Refund" diff --git a/config/locales/app.logged.en.yml b/config/locales/app.logged.en.yml index 06dbad3bc..f2d16dfd0 100644 --- a/config/locales/app.logged.en.yml +++ b/config/locales/app.logged.en.yml @@ -160,7 +160,7 @@ en: #book a training trainings_reserve: trainings_planning: "Trainings planning" - planning_of: "Planning of " #followed by the training name (eg. Planning of 3d printer training) + planning_of: "Planning of " #eg. Planning of 3d printer training all_trainings: "All trainings" cancel_my_selection: "Cancel my selection" i_change: "I change" From 47096a9b907fbe79397f4d402bc3b7d1e714e69a Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:30:21 +0100 Subject: [PATCH 045/136] New translations app.logged.en.yml (Acholi) --- config/locales/app.logged.ach.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.ach.yml b/config/locales/app.logged.ach.yml index 01df0642f..fb9f80ab7 100644 --- a/config/locales/app.logged.ach.yml +++ b/config/locales/app.logged.ach.yml @@ -160,7 +160,7 @@ ach: #book a training trainings_reserve: trainings_planning: "crwdns8767:0crwdne8767:0" - planning_of: "crwdns20194:0crwdne20194:0" #followed by the training name (eg. Planning of 3d printer training) + planning_of: "crwdns20194:0crwdne20194:0" #eg. Planning of 3d printer training all_trainings: "crwdns8771:0crwdne8771:0" cancel_my_selection: "crwdns8773:0crwdne8773:0" i_change: "crwdns8775:0crwdne8775:0" From a6bde5a855a00857cc693f7b09484dcb1b846b2a Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:30:22 +0100 Subject: [PATCH 046/136] New translations app.admin.en.yml (Acholi) --- config/locales/app.admin.ach.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.admin.ach.yml b/config/locales/app.admin.ach.yml index b42895725..174eabd85 100644 --- a/config/locales/app.admin.ach.yml +++ b/config/locales/app.admin.ach.yml @@ -411,7 +411,7 @@ ach: year: "crwdns7391:0crwdne7391:0" month: "crwdns7393:0crwdne7393:0" day: "crwdns7395:0crwdne7395:0" - num_of_invoice: "crwdns20192:0crwdne20192:0" + num_of_invoice: "crwdns20196:0crwdne20196:0" online_sales: "crwdns7399:0crwdne7399:0" wallet: "crwdns7401:0crwdne7401:0" refund: "crwdns7403:0crwdne7403:0" From 375c030ab429bc644075da63dcf1f851301e294f Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:30:28 +0100 Subject: [PATCH 047/136] New translations app.logged.en.yml (Spanish) --- config/locales/app.logged.es.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.es.yml b/config/locales/app.logged.es.yml index dbecdb544..b529e22a4 100644 --- a/config/locales/app.logged.es.yml +++ b/config/locales/app.logged.es.yml @@ -160,7 +160,7 @@ es: #book a training trainings_reserve: trainings_planning: "Plan de curso" - planning_of: "Planning of " #followed by the training name (eg. Planning of 3d printer training) + planning_of: "Planning of " #eg. Planning of 3d printer training all_trainings: "Todos los cursos" cancel_my_selection: "Cancelar mi selección" i_change: "I change" From e4a6850f6402fc59297ecc7da65334f8ed698d62 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:30:31 +0100 Subject: [PATCH 048/136] New translations app.admin.en.yml (Spanish) --- config/locales/app.admin.es.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.admin.es.yml b/config/locales/app.admin.es.yml index a3f9fc8c6..1bb1d2cd6 100644 --- a/config/locales/app.admin.es.yml +++ b/config/locales/app.admin.es.yml @@ -411,7 +411,7 @@ es: year: "Año" month: "Mes" day: "Día" - num_of_invoice: "# of invoice" + num_of_invoice: "Num. of invoice" online_sales: "Ventas en línea" wallet: "Cartera" refund: "Reembolso" From ca8a72c19db66e7e75776369a0be82218479c7ec Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:30:37 +0100 Subject: [PATCH 049/136] New translations app.logged.en.yml (Portuguese) --- config/locales/app.logged.pt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.pt.yml b/config/locales/app.logged.pt.yml index 60d8f29b9..dbcc83cb5 100755 --- a/config/locales/app.logged.pt.yml +++ b/config/locales/app.logged.pt.yml @@ -160,7 +160,7 @@ pt: #book a training trainings_reserve: trainings_planning: "Planos de treinamento" - planning_of: "Planning of " #followed by the training name (eg. Planning of 3d printer training) + planning_of: "Planning of " #eg. Planning of 3d printer training all_trainings: "Todos treinamentos" cancel_my_selection: "Cancelar minha seleção" i_change: "I change" From 274ce008ded8b5e74c7a803cef4a8a22fc7997d7 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:30:39 +0100 Subject: [PATCH 050/136] New translations app.admin.en.yml (Portuguese) --- config/locales/app.admin.pt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.admin.pt.yml b/config/locales/app.admin.pt.yml index f160e5033..c3a817a5d 100755 --- a/config/locales/app.admin.pt.yml +++ b/config/locales/app.admin.pt.yml @@ -411,7 +411,7 @@ pt: year: "Ano" month: "Mês" day: "Dia" - num_of_invoice: "# of invoice" + num_of_invoice: "Num. of invoice" online_sales: "Vendas online" wallet: "Carteira" refund: "Restituição" From 46ccc77e22fb4f68720f6cdb5e8f21449e554e38 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:30:45 +0100 Subject: [PATCH 051/136] New translations app.logged.en.yml (French) --- config/locales/app.logged.fr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.fr.yml b/config/locales/app.logged.fr.yml index 59fb5792d..9cedf3883 100644 --- a/config/locales/app.logged.fr.yml +++ b/config/locales/app.logged.fr.yml @@ -160,7 +160,7 @@ fr: #book a training trainings_reserve: trainings_planning: "Planning formations" - planning_of: "Planning of " #followed by the training name (eg. Planning of 3d printer training) + planning_of: "Planning of " #eg. Planning of 3d printer training all_trainings: "Toutes les formations" cancel_my_selection: "Annuler ma sélection" i_change: "Je change" From ca1f0105de4ffd0ee2b8cd84e5505a57cadf843f Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:30:48 +0100 Subject: [PATCH 052/136] New translations app.admin.en.yml (French) --- config/locales/app.admin.fr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.admin.fr.yml b/config/locales/app.admin.fr.yml index 6baa5a307..5f23e18cf 100644 --- a/config/locales/app.admin.fr.yml +++ b/config/locales/app.admin.fr.yml @@ -411,7 +411,7 @@ fr: year: "Année" month: "Mois" day: "Jour" - num_of_invoice: "# of invoice" + num_of_invoice: "Num. of invoice" online_sales: "Vente en ligne" wallet: "Porte-monnaie" refund: "Remboursement" From 0db857e5a36780b4506c129f02d09e31c0184f5d Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:34:17 +0100 Subject: [PATCH 053/136] Remove TODO --- config/locales/app.admin.pt.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/config/locales/app.admin.pt.yml b/config/locales/app.admin.pt.yml index c3a817a5d..f72e3af92 100755 --- a/config/locales/app.admin.pt.yml +++ b/config/locales/app.admin.pt.yml @@ -962,23 +962,23 @@ pt: default_value_is_24_hours: "Se o campo estiver vazio: 24 horas." visibility_yearly: "visibilidade máxima para assinantes anuais" visibility_others: "visibilidade máxima para outros membros" - confidentiality: "TODO" - display_machine_reservation_user_name: "TODO" - display_name: "TODO" - display_name_enable: "TODO" - machines_sort_by: "TODO" + confidentiality: "Confidentiality" + display_machine_reservation_user_name: "Display the full name of the user who booked a machine slot" + display_name: "Display the name" + display_name_enable: "name display" + machines_sort_by: "machines display order" fab_analytics: "Fab Analytics" - elements_ordering: "TODO" - machines_order: "TODO" - display_machines_sorted_by: "TODO" + elements_ordering: "Elements ordering" + machines_order: "Machines order" + display_machines_sorted_by: "Display machines sorted by" advanced: "Advanced settings" customize_home_page_css: "Customise the stylesheet og the home page" home_css_notice_html: "You can customize the stylesheet which will apply to the home page, using the SASS syntax. These styles will be automatically subordinated to the .home-page selector to prevent any risk of breaking the application. Meanwhile please be careful, any changes in the home page editor at the top of the page may broke your styles, always refer to the HTML code." sort_by: - default: "TODO" + default: "Default" name: "Nome" - created_at: "TODO" - updated_at: "TODO" + created_at: "Creation date" + updated_at: "Last update date" privacy: title: "Política de privacidade" input_the_dpo: "Input the contact of the Data Protection Officer" From b9fbf4c32a30668e5613eeb4bdf663909a2e4ae0 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:36:26 +0100 Subject: [PATCH 054/136] Update app.logged.es.yml --- config/locales/app.logged.es.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.es.yml b/config/locales/app.logged.es.yml index b529e22a4..252a9d008 100644 --- a/config/locales/app.logged.es.yml +++ b/config/locales/app.logged.es.yml @@ -160,7 +160,7 @@ es: #book a training trainings_reserve: trainings_planning: "Plan de curso" - planning_of: "Planning of " #eg. Planning of 3d printer training + planning_of: "Plan de " #eg. Planning of 3d printer training all_trainings: "Todos los cursos" cancel_my_selection: "Cancelar mi selección" i_change: "I change" From 37db4be5bbbb44ca2b2d7185aee2f6bf0ec9053c Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:37:46 +0100 Subject: [PATCH 055/136] Update app.logged.fr.yml --- config/locales/app.logged.fr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.fr.yml b/config/locales/app.logged.fr.yml index 9cedf3883..20837f25b 100644 --- a/config/locales/app.logged.fr.yml +++ b/config/locales/app.logged.fr.yml @@ -160,7 +160,7 @@ fr: #book a training trainings_reserve: trainings_planning: "Planning formations" - planning_of: "Planning of " #eg. Planning of 3d printer training + planning_of: "Planning de la " #eg. Planning of 3d printer training all_trainings: "Toutes les formations" cancel_my_selection: "Annuler ma sélection" i_change: "Je change" From 63a676607d45d8858863835aee84e0d729eea1ea Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:39:17 +0100 Subject: [PATCH 056/136] Update app.logged.pt.yml --- config/locales/app.logged.pt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.pt.yml b/config/locales/app.logged.pt.yml index dbcc83cb5..bd16258a6 100755 --- a/config/locales/app.logged.pt.yml +++ b/config/locales/app.logged.pt.yml @@ -160,7 +160,7 @@ pt: #book a training trainings_reserve: trainings_planning: "Planos de treinamento" - planning_of: "Planning of " #eg. Planning of 3d printer training + planning_of: "Planejamento de " #eg. Planning of 3d printer training all_trainings: "Todos treinamentos" cancel_my_selection: "Cancelar minha seleção" i_change: "I change" From 721d7ac0fa8a85dc78ebb00f1a367983a837524d Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:40:41 +0100 Subject: [PATCH 057/136] Update app.shared.fr.yml --- config/locales/app.shared.fr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.shared.fr.yml b/config/locales/app.shared.fr.yml index c5c73f881..fb26cd860 100644 --- a/config/locales/app.shared.fr.yml +++ b/config/locales/app.shared.fr.yml @@ -57,7 +57,7 @@ fr: phone_number: "Numéro de téléphone" phone_number_is_required: "Le numéro de téléphone est requis." i_authorize_Fablab_users_registered_on_the_site_to_contact_me: "J'autorise les utilisateurs du Fab Lab inscrits sur le site à me contacter" - i_accept_to_receive_information_from_the_fablab: "I accept to receive information from the FabLab" + i_accept_to_receive_information_from_the_fablab: "J'accepte de recevoir des informations du Fab Lab" used_for_statistics: "Cette donnée sera utilisée à des fins statistiques" used_for_invoicing: "Cette donnée sera utilisée à des fins de facturation" used_for_reservation: "Cette donnée sera utilisée en cas de changement sur une de vos réservations" From fdae79ee56677161a8836c95b1ab9b5e38dd2a34 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:41:28 +0100 Subject: [PATCH 058/136] Update devise.es.yml --- config/locales/devise.es.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/devise.es.yml b/config/locales/devise.es.yml index 1a7cc20fe..9005ac347 100644 --- a/config/locales/devise.es.yml +++ b/config/locales/devise.es.yml @@ -14,7 +14,7 @@ es: not_found_in_database: "mail o contraseña inválidos." timeout: "Su sesión ha expirado. Por favor, inicie sesión de nuevo." unauthenticated: "Necesita iniciar sesión o registrarse antes de contiunar." - unconfirmed: "You have to confirm your account before continuing. Please click on the link below the form." + unconfirmed: "Debe confirmar su cuenta antes de continuar. Por favor haga clic en el enlace abajo del formulario." mailer: confirmation_instructions: action: "Confirm my email address" From 8ff6af743ae86cee4488b73ab7feaac13b230eef Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:43:44 +0100 Subject: [PATCH 059/136] Update devise.es.yml --- config/locales/devise.es.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/devise.es.yml b/config/locales/devise.es.yml index 9005ac347..d18c5879e 100644 --- a/config/locales/devise.es.yml +++ b/config/locales/devise.es.yml @@ -53,10 +53,10 @@ es: unlocked: "Tu cuenta se ha desbloqueado con éxito. Por favor inicie sesión para continuar." errors: messages: - already_confirmed: "This email was already confirmed, please try signing in." + already_confirmed: "Ya se confirmó, intente iniciar sesión." confirmation_period_expired: "Necesita ser confirmado dentro de %{period}, por favor, solicite uno nuevo" expired: "ha expirado, por favor, solicite uno nuevo" - not_found: "This email was not found" + not_found: "Ya se confirmó, intente iniciar sesión." not_locked: "no estaba bloqueado" not_saved: one: "un error prohibió que %{resource} fuese guardado:" From 899a6616a389fe9007325f7eca4b49dd97dcc544 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:44:35 +0100 Subject: [PATCH 060/136] Update devise.es.yml --- config/locales/devise.es.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/devise.es.yml b/config/locales/devise.es.yml index d18c5879e..4654d60d5 100644 --- a/config/locales/devise.es.yml +++ b/config/locales/devise.es.yml @@ -56,7 +56,7 @@ es: already_confirmed: "Ya se confirmó, intente iniciar sesión." confirmation_period_expired: "Necesita ser confirmado dentro de %{period}, por favor, solicite uno nuevo" expired: "ha expirado, por favor, solicite uno nuevo" - not_found: "Ya se confirmó, intente iniciar sesión." + not_found: "Este correo no esta associado con ninguna cuenta" not_locked: "no estaba bloqueado" not_saved: one: "un error prohibió que %{resource} fuese guardado:" From 23b14fbc9bb5fabd09ac7077cb5eb4762c85ec5c Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:44:57 +0100 Subject: [PATCH 061/136] Update devise.es.yml --- config/locales/devise.es.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/devise.es.yml b/config/locales/devise.es.yml index 4654d60d5..faa16cf8e 100644 --- a/config/locales/devise.es.yml +++ b/config/locales/devise.es.yml @@ -56,7 +56,7 @@ es: already_confirmed: "Ya se confirmó, intente iniciar sesión." confirmation_period_expired: "Necesita ser confirmado dentro de %{period}, por favor, solicite uno nuevo" expired: "ha expirado, por favor, solicite uno nuevo" - not_found: "Este correo no esta associado con ninguna cuenta" + not_found: "Este correo no esta associado con ninguna cuenta." not_locked: "no estaba bloqueado" not_saved: one: "un error prohibió que %{resource} fuese guardado:" From 342566520e5788ab1f34ed589e4970347252d68b Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:49:33 +0100 Subject: [PATCH 062/136] Update devise.fr.yml --- config/locales/devise.fr.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml index 7f7a7cae8..75dbeeaec 100644 --- a/config/locales/devise.fr.yml +++ b/config/locales/devise.fr.yml @@ -10,20 +10,20 @@ fr: inactive: "Votre compte n’est pas encore activé." invalid: "E-mail ou mot de passe incorrect." locked: "Votre compte est verrouillé." - last_attempt: "You have one more attempt before your account will be locked." + last_attempt: "Vous avez encore une tentative avant que votre compte ne soit verrouillé." not_found_in_database: "E-mail ou mot de passe incorrect." timeout: "Votre session est périmée, veuillez vous reconnecter pour continuer." unauthenticated: "Vous devez vous connecter ou vous enregistrer pour continuer." - unconfirmed: "You have to confirm your account before continuing. Please click on the link below the form." + unconfirmed: "Vous devez confirmer votre adresse de courriel pour pouvoir vous connecter. Veuillez cliquer sur le lien en dessous du formulaire." mailer: confirmation_instructions: - action: "Confirm my email address" - instruction: "You can finalize your registration by confirming your email address. Please click on the following link:" + action: "Confirmer mon adresse de courriel !" + instruction: "Vous pouvez finaliser votre inscription en confirmant votre adresse électronique, en cliquant sur le lien suivant :" subject: "Confirmation d'inscription" reset_password_instructions: - action: "Change my password" - instruction: "Someone asked for a link to change your password. You can do it through the link below." - ignore_otherwise: "If you have not made this request, please ignore this message." + action: "Changer mon mot de passe" + instruction: "Quelqu'un a demandé un lien pour changer votre mot de passe. Vous pouvez le faire via le lien ci-dessous." + ignore_otherwise: "Si vous n'êtes pas à l'origine de cette demande, merci d'ignorer ce message." subject: "Instructions pour changer le mot de passe" unlock_instructions: subject: "Instructions pour déverrouiller le compte" @@ -53,10 +53,10 @@ fr: unlocked: "Votre compte a été débloqué avec succès. Veuillez vous connecter." errors: messages: - already_confirmed: "This email was already confirmed, please try signing in." + already_confirmed: "Cette adresse de courriel a déjà été confirmée." confirmation_period_expired: "doit être confirmé(e) en %{period}, veuillez en demander un(e) autre" expired: "est périmé, veuillez en demander un autre" - not_found: "This email was not found" + not_found: "Cette adresse de courriel n'est associée à aucun compte." not_locked: "n’était pas verrouillé(e)" not_saved: one: "une erreur a empêché ce (ou cette) %{resource} d’être enregistré(e) :" From 4adb827c21b047558a73b1c2d5471509f0215e7c Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:51:42 +0100 Subject: [PATCH 063/136] New translations app.admin.en.yml (Portuguese) --- config/locales/app.admin.pt.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/config/locales/app.admin.pt.yml b/config/locales/app.admin.pt.yml index f72e3af92..c3a817a5d 100755 --- a/config/locales/app.admin.pt.yml +++ b/config/locales/app.admin.pt.yml @@ -962,23 +962,23 @@ pt: default_value_is_24_hours: "Se o campo estiver vazio: 24 horas." visibility_yearly: "visibilidade máxima para assinantes anuais" visibility_others: "visibilidade máxima para outros membros" - confidentiality: "Confidentiality" - display_machine_reservation_user_name: "Display the full name of the user who booked a machine slot" - display_name: "Display the name" - display_name_enable: "name display" - machines_sort_by: "machines display order" + confidentiality: "TODO" + display_machine_reservation_user_name: "TODO" + display_name: "TODO" + display_name_enable: "TODO" + machines_sort_by: "TODO" fab_analytics: "Fab Analytics" - elements_ordering: "Elements ordering" - machines_order: "Machines order" - display_machines_sorted_by: "Display machines sorted by" + elements_ordering: "TODO" + machines_order: "TODO" + display_machines_sorted_by: "TODO" advanced: "Advanced settings" customize_home_page_css: "Customise the stylesheet og the home page" home_css_notice_html: "You can customize the stylesheet which will apply to the home page, using the SASS syntax. These styles will be automatically subordinated to the .home-page selector to prevent any risk of breaking the application. Meanwhile please be careful, any changes in the home page editor at the top of the page may broke your styles, always refer to the HTML code." sort_by: - default: "Default" + default: "TODO" name: "Nome" - created_at: "Creation date" - updated_at: "Last update date" + created_at: "TODO" + updated_at: "TODO" privacy: title: "Política de privacidade" input_the_dpo: "Input the contact of the Data Protection Officer" From d5fa65141f45d2be3057e3aca976b0eb35dce3b4 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:51:43 +0100 Subject: [PATCH 064/136] Update devise.pt.yml --- config/locales/devise.pt.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/devise.pt.yml b/config/locales/devise.pt.yml index bcc5e6543..ba273ca32 100755 --- a/config/locales/devise.pt.yml +++ b/config/locales/devise.pt.yml @@ -14,7 +14,7 @@ pt: not_found_in_database: "Email ou senha inválidos." timeout: "Sua sessão expirou, faça login novamente para continuar." unauthenticated: "Você precisa fazer login ou se registrar, antes de continuar." - unconfirmed: "You have to confirm your account before continuing. Please click on the link below the form." + unconfirmed: "Você precisa confirmar sua conta, antes de continuar. Por favor, clique no link abaixo do formulário." mailer: confirmation_instructions: action: "Confirm my email address" @@ -53,7 +53,7 @@ pt: unlocked: "Sua conta foi desbloqueada com sucesso. Faça login para continuar." errors: messages: - already_confirmed: "This email was already confirmed, please try signing in." + already_confirmed: "Este email já foi confirmado." confirmation_period_expired: "deve ser confirmada dentro de %{period}, por favor solicite uma nova" expired: "expirado, por favor solicite uma nova" not_found: "This email was not found" From b89df4fde4d8a656f13736c5d1994b518a294d70 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:51:44 +0100 Subject: [PATCH 065/136] New translations devise.en.yml (Spanish) --- config/locales/devise.es.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/locales/devise.es.yml b/config/locales/devise.es.yml index faa16cf8e..1a7cc20fe 100644 --- a/config/locales/devise.es.yml +++ b/config/locales/devise.es.yml @@ -14,7 +14,7 @@ es: not_found_in_database: "mail o contraseña inválidos." timeout: "Su sesión ha expirado. Por favor, inicie sesión de nuevo." unauthenticated: "Necesita iniciar sesión o registrarse antes de contiunar." - unconfirmed: "Debe confirmar su cuenta antes de continuar. Por favor haga clic en el enlace abajo del formulario." + unconfirmed: "You have to confirm your account before continuing. Please click on the link below the form." mailer: confirmation_instructions: action: "Confirm my email address" @@ -53,10 +53,10 @@ es: unlocked: "Tu cuenta se ha desbloqueado con éxito. Por favor inicie sesión para continuar." errors: messages: - already_confirmed: "Ya se confirmó, intente iniciar sesión." + already_confirmed: "This email was already confirmed, please try signing in." confirmation_period_expired: "Necesita ser confirmado dentro de %{period}, por favor, solicite uno nuevo" expired: "ha expirado, por favor, solicite uno nuevo" - not_found: "Este correo no esta associado con ninguna cuenta." + not_found: "This email was not found" not_locked: "no estaba bloqueado" not_saved: one: "un error prohibió que %{resource} fuese guardado:" From 1369b5e6fa63b978c0ca198c0159e4394d6ef312 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:51:46 +0100 Subject: [PATCH 066/136] New translations devise.en.yml (French) --- config/locales/devise.fr.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml index 75dbeeaec..7f7a7cae8 100644 --- a/config/locales/devise.fr.yml +++ b/config/locales/devise.fr.yml @@ -10,20 +10,20 @@ fr: inactive: "Votre compte n’est pas encore activé." invalid: "E-mail ou mot de passe incorrect." locked: "Votre compte est verrouillé." - last_attempt: "Vous avez encore une tentative avant que votre compte ne soit verrouillé." + last_attempt: "You have one more attempt before your account will be locked." not_found_in_database: "E-mail ou mot de passe incorrect." timeout: "Votre session est périmée, veuillez vous reconnecter pour continuer." unauthenticated: "Vous devez vous connecter ou vous enregistrer pour continuer." - unconfirmed: "Vous devez confirmer votre adresse de courriel pour pouvoir vous connecter. Veuillez cliquer sur le lien en dessous du formulaire." + unconfirmed: "You have to confirm your account before continuing. Please click on the link below the form." mailer: confirmation_instructions: - action: "Confirmer mon adresse de courriel !" - instruction: "Vous pouvez finaliser votre inscription en confirmant votre adresse électronique, en cliquant sur le lien suivant :" + action: "Confirm my email address" + instruction: "You can finalize your registration by confirming your email address. Please click on the following link:" subject: "Confirmation d'inscription" reset_password_instructions: - action: "Changer mon mot de passe" - instruction: "Quelqu'un a demandé un lien pour changer votre mot de passe. Vous pouvez le faire via le lien ci-dessous." - ignore_otherwise: "Si vous n'êtes pas à l'origine de cette demande, merci d'ignorer ce message." + action: "Change my password" + instruction: "Someone asked for a link to change your password. You can do it through the link below." + ignore_otherwise: "If you have not made this request, please ignore this message." subject: "Instructions pour changer le mot de passe" unlock_instructions: subject: "Instructions pour déverrouiller le compte" @@ -53,10 +53,10 @@ fr: unlocked: "Votre compte a été débloqué avec succès. Veuillez vous connecter." errors: messages: - already_confirmed: "Cette adresse de courriel a déjà été confirmée." + already_confirmed: "This email was already confirmed, please try signing in." confirmation_period_expired: "doit être confirmé(e) en %{period}, veuillez en demander un(e) autre" expired: "est périmé, veuillez en demander un autre" - not_found: "Cette adresse de courriel n'est associée à aucun compte." + not_found: "This email was not found" not_locked: "n’était pas verrouillé(e)" not_saved: one: "une erreur a empêché ce (ou cette) %{resource} d’être enregistré(e) :" From 9b1328e709871029d66f57b1b0ede0d6506c964b Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:51:50 +0100 Subject: [PATCH 067/136] New translations app.logged.en.yml (Portuguese) --- config/locales/app.logged.pt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.pt.yml b/config/locales/app.logged.pt.yml index bd16258a6..dbcc83cb5 100755 --- a/config/locales/app.logged.pt.yml +++ b/config/locales/app.logged.pt.yml @@ -160,7 +160,7 @@ pt: #book a training trainings_reserve: trainings_planning: "Planos de treinamento" - planning_of: "Planejamento de " #eg. Planning of 3d printer training + planning_of: "Planning of " #eg. Planning of 3d printer training all_trainings: "Todos treinamentos" cancel_my_selection: "Cancelar minha seleção" i_change: "I change" From 3a3fc22b947f0f7bdded203765dcad4f19d9e502 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:51:54 +0100 Subject: [PATCH 068/136] New translations app.shared.en.yml (French) --- config/locales/app.shared.fr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.shared.fr.yml b/config/locales/app.shared.fr.yml index fb26cd860..c5c73f881 100644 --- a/config/locales/app.shared.fr.yml +++ b/config/locales/app.shared.fr.yml @@ -57,7 +57,7 @@ fr: phone_number: "Numéro de téléphone" phone_number_is_required: "Le numéro de téléphone est requis." i_authorize_Fablab_users_registered_on_the_site_to_contact_me: "J'autorise les utilisateurs du Fab Lab inscrits sur le site à me contacter" - i_accept_to_receive_information_from_the_fablab: "J'accepte de recevoir des informations du Fab Lab" + i_accept_to_receive_information_from_the_fablab: "I accept to receive information from the FabLab" used_for_statistics: "Cette donnée sera utilisée à des fins statistiques" used_for_invoicing: "Cette donnée sera utilisée à des fins de facturation" used_for_reservation: "Cette donnée sera utilisée en cas de changement sur une de vos réservations" From 2343d8cbc9fcbd058bb169c54d2f6055ead5d9f8 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:51:57 +0100 Subject: [PATCH 069/136] New translations app.logged.en.yml (French) --- config/locales/app.logged.fr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.fr.yml b/config/locales/app.logged.fr.yml index 20837f25b..9cedf3883 100644 --- a/config/locales/app.logged.fr.yml +++ b/config/locales/app.logged.fr.yml @@ -160,7 +160,7 @@ fr: #book a training trainings_reserve: trainings_planning: "Planning formations" - planning_of: "Planning de la " #eg. Planning of 3d printer training + planning_of: "Planning of " #eg. Planning of 3d printer training all_trainings: "Toutes les formations" cancel_my_selection: "Annuler ma sélection" i_change: "Je change" From e2d1aa1f69e2734474684448b4e23cb318ed17a9 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:52:05 +0100 Subject: [PATCH 070/136] New translations app.logged.en.yml (Spanish) --- config/locales/app.logged.es.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.es.yml b/config/locales/app.logged.es.yml index 252a9d008..b529e22a4 100644 --- a/config/locales/app.logged.es.yml +++ b/config/locales/app.logged.es.yml @@ -160,7 +160,7 @@ es: #book a training trainings_reserve: trainings_planning: "Plan de curso" - planning_of: "Plan de " #eg. Planning of 3d printer training + planning_of: "Planning of " #eg. Planning of 3d printer training all_trainings: "Todos los cursos" cancel_my_selection: "Cancelar mi selección" i_change: "I change" From 18e9d8e7607e7ab3dff3c5abdf4ed895df77d5ff Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:52:15 +0100 Subject: [PATCH 071/136] Update devise.pt.yml --- config/locales/devise.pt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/devise.pt.yml b/config/locales/devise.pt.yml index ba273ca32..5ce3cf91b 100755 --- a/config/locales/devise.pt.yml +++ b/config/locales/devise.pt.yml @@ -56,7 +56,7 @@ pt: already_confirmed: "Este email já foi confirmado." confirmation_period_expired: "deve ser confirmada dentro de %{period}, por favor solicite uma nova" expired: "expirado, por favor solicite uma nova" - not_found: "This email was not found" + not_found: "Este email não está associado a nenhuma conta." not_locked: "não encontra-se bloqueada" not_saved: one: "1 erro impediu a gravação de %{resource} :" From d2857b892b981af856c52097cdd8e36851dc7b8b Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 12:53:48 +0100 Subject: [PATCH 072/136] Delete rails.ach.yml --- config/locales/rails.ach.yml | 205 ----------------------------------- 1 file changed, 205 deletions(-) delete mode 100644 config/locales/rails.ach.yml diff --git a/config/locales/rails.ach.yml b/config/locales/rails.ach.yml deleted file mode 100644 index ebbd2611c..000000000 --- a/config/locales/rails.ach.yml +++ /dev/null @@ -1,205 +0,0 @@ -ach: - date: - abbr_day_names: - - crwdns4217:0crwdne4217:0 - - crwdns4219:0crwdne4219:0 - - crwdns4221:0crwdne4221:0 - - crwdns4223:0crwdne4223:0 - - crwdns4225:0crwdne4225:0 - - crwdns4227:0crwdne4227:0 - - crwdns4229:0crwdne4229:0 - abbr_month_names: - - - - crwdns4231:0crwdne4231:0 - - crwdns4233:0crwdne4233:0 - - crwdns4235:0crwdne4235:0 - - crwdns4237:0crwdne4237:0 - - crwdns4239:0crwdne4239:0 - - crwdns4241:0crwdne4241:0 - - crwdns4243:0crwdne4243:0 - - crwdns4245:0crwdne4245:0 - - crwdns4247:0crwdne4247:0 - - crwdns4249:0crwdne4249:0 - - crwdns4251:0crwdne4251:0 - - crwdns4253:0crwdne4253:0 - day_names: - - crwdns4255:0crwdne4255:0 - - crwdns4257:0crwdne4257:0 - - crwdns4259:0crwdne4259:0 - - crwdns4261:0crwdne4261:0 - - crwdns4263:0crwdne4263:0 - - crwdns4265:0crwdne4265:0 - - crwdns4267:0crwdne4267:0 - formats: - default: "crwdns4269:0%Y-%m-%dcrwdne4269:0" - long: "crwdns4271:0%Bcrwdnd4271:0%dcrwdnd4271:0%Ycrwdne4271:0" - short: "crwdns4273:0%bcrwdnd4273:0%dcrwdne4273:0" - month_names: - - - - crwdns4275:0crwdne4275:0 - - crwdns4277:0crwdne4277:0 - - crwdns4279:0crwdne4279:0 - - crwdns4281:0crwdne4281:0 - - crwdns4283:0crwdne4283:0 - - crwdns4285:0crwdne4285:0 - - crwdns4287:0crwdne4287:0 - - crwdns4289:0crwdne4289:0 - - crwdns4291:0crwdne4291:0 - - crwdns4293:0crwdne4293:0 - - crwdns4295:0crwdne4295:0 - - crwdns4297:0crwdne4297:0 - order: - - crwdns4299:0crwdne4299:0 - - crwdns4301:0crwdne4301:0 - - crwdns4303:0crwdne4303:0 - datetime: - distance_in_words: - about_x_hours: - one: crwdns4305:1crwdne4305:1 - other: crwdns4305:5%{count}crwdne4305:5 - about_x_months: - one: crwdns4307:1crwdne4307:1 - other: crwdns4307:5%{count}crwdne4307:5 - about_x_years: - one: crwdns4309:1crwdne4309:1 - other: crwdns4309:5%{count}crwdne4309:5 - almost_x_years: - one: crwdns4311:1crwdne4311:1 - other: crwdns4311:5%{count}crwdne4311:5 - half_a_minute: crwdns4313:0crwdne4313:0 - less_than_x_minutes: - one: crwdns4315:1crwdne4315:1 - other: crwdns4315:5%{count}crwdne4315:5 - less_than_x_seconds: - one: crwdns4317:1crwdne4317:1 - other: crwdns4317:5%{count}crwdne4317:5 - over_x_years: - one: crwdns4319:1crwdne4319:1 - other: crwdns4319:5%{count}crwdne4319:5 - x_days: - one: crwdns4321:1crwdne4321:1 - other: "crwdns4321:5%{count}crwdne4321:5" - x_minutes: - one: crwdns4323:1crwdne4323:1 - other: "crwdns4323:5%{count}crwdne4323:5" - x_months: - one: crwdns4325:1crwdne4325:1 - other: "crwdns4325:5%{count}crwdne4325:5" - x_seconds: - one: crwdns4327:1crwdne4327:1 - other: "crwdns4327:5%{count}crwdne4327:5" - prompts: - day: crwdns4329:0crwdne4329:0 - hour: crwdns4331:0crwdne4331:0 - minute: crwdns4333:0crwdne4333:0 - month: crwdns4335:0crwdne4335:0 - second: crwdns4337:0crwdne4337:0 - year: crwdns4339:0crwdne4339:0 - errors: - format: "crwdns4341:0%{attribute}crwdnd4341:0%{message}crwdne4341:0" - messages: - accepted: crwdns4343:0crwdne4343:0 - blank: crwdns4345:0crwdne4345:0 - present: crwdns4347:0crwdne4347:0 - confirmation: crwdns4349:0%{attribute}crwdne4349:0 - empty: crwdns4351:0crwdne4351:0 - equal_to: crwdns4353:0%{count}crwdne4353:0 - even: crwdns4355:0crwdne4355:0 - exclusion: crwdns4357:0crwdne4357:0 - greater_than: crwdns4359:0%{count}crwdne4359:0 - greater_than_or_equal_to: crwdns4361:0%{count}crwdne4361:0 - inclusion: crwdns4363:0crwdne4363:0 - invalid: crwdns4365:0crwdne4365:0 - less_than: crwdns4367:0%{count}crwdne4367:0 - less_than_or_equal_to: crwdns4369:0%{count}crwdne4369:0 - not_a_number: crwdns4371:0crwdne4371:0 - not_an_integer: crwdns4373:0crwdne4373:0 - odd: crwdns4375:0crwdne4375:0 - record_invalid: 'crwdns4377:0%{errors}crwdne4377:0' - restrict_dependent_destroy: - one: crwdns4379:0%{record}crwdne4379:0 - many: crwdns4381:0%{record}crwdne4381:0 - taken: crwdns4383:0crwdne4383:0 - too_long: - one: crwdns4385:1crwdne4385:1 - other: crwdns4385:5%{count}crwdne4385:5 - too_short: - one: crwdns4387:1crwdne4387:1 - other: crwdns4387:5%{count}crwdne4387:5 - wrong_length: - one: crwdns4389:1crwdne4389:1 - other: crwdns4389:5%{count}crwdne4389:5 - other_than: crwdns4391:0%{count}crwdne4391:0 - wrong_content_type: "crwdns4393:0crwdne4393:0" - template: - body: 'crwdns4395:0crwdne4395:0' - header: - one: crwdns4397:1%{model}crwdne4397:1 - other: "crwdns4397:5%{count}crwdnd4397:5%{model}crwdne4397:5" - helpers: - select: - prompt: crwdns4399:0crwdne4399:0 - submit: - create: crwdns4401:0%{model}crwdne4401:0 - submit: crwdns4403:0%{model}crwdne4403:0 - update: crwdns4405:0%{model}crwdne4405:0 - number: - currency: - format: - delimiter: "crwdns4407:0crwdne4407:0" - format: "crwdns4409:0%ucrwdnd4409:0%ncrwdne4409:0" - precision: 0 - separator: "crwdns4413:0crwdne4413:0" - significant: false - strip_insignificant_zeros: false - unit: "crwdns4415:0crwdne4415:0" - format: - delimiter: "crwdns4417:0crwdne4417:0" - precision: 0 - separator: "crwdns4421:0crwdne4421:0" - significant: false - strip_insignificant_zeros: false - human: - decimal_units: - format: "crwdns4423:0%ncrwdnd4423:0%ucrwdne4423:0" - units: - billion: crwdns4425:0crwdne4425:0 - million: crwdns4427:0crwdne4427:0 - quadrillion: crwdns4429:0crwdne4429:0 - thousand: crwdns4431:0crwdne4431:0 - trillion: crwdns4433:0crwdne4433:0 - unit: 'crwdns4435:0crwdne4435:0' - format: - delimiter: 'crwdns4437:0crwdne4437:0' - precision: 0 - significant: true - strip_insignificant_zeros: true - storage_units: - format: "crwdns4441:0%ncrwdnd4441:0%ucrwdne4441:0" - units: - byte: - one: crwdns4443:1crwdne4443:1 - other: crwdns4443:5crwdne4443:5 - gb: crwdns4445:0crwdne4445:0 - kb: crwdns4447:0crwdne4447:0 - mb: crwdns4449:0crwdne4449:0 - tb: crwdns4451:0crwdne4451:0 - percentage: - format: - delimiter: 'crwdns4453:0crwdne4453:0' - format: "crwdns4455:0%ncrwdne4455:0" - precision: - format: - delimiter: 'crwdns4457:0crwdne4457:0' - support: - array: - last_word_connector: "crwdns4459:0crwdne4459:0" - two_words_connector: "crwdns4461:0crwdne4461:0" - words_connector: "crwdns4463:0crwdne4463:0" - time: - am: crwdns4465:0crwdne4465:0 - formats: - default: "crwdns4467:0%acrwdnd4467:0%dcrwdnd4467:0%bcrwdnd4467:0%Ycrwdnd4467:0%H:%M:%Scrwdnd4467:0%zcrwdne4467:0" - long: "crwdns4469:0%Bcrwdnd4469:0%dcrwdnd4469:0%Ycrwdnd4469:0%H:%Mcrwdne4469:0" - short: "crwdns4471:0%dcrwdnd4471:0%bcrwdnd4471:0%H:%Mcrwdne4471:0" - pm: crwdns4473:0crwdne4473:0 From 51862ba751b0369f88c8e61eca0b00e130af25bb Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 13:00:44 +0100 Subject: [PATCH 073/136] New translations devise.en.yml (Portuguese) --- config/locales/devise.pt.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/locales/devise.pt.yml b/config/locales/devise.pt.yml index 5ce3cf91b..bcc5e6543 100755 --- a/config/locales/devise.pt.yml +++ b/config/locales/devise.pt.yml @@ -14,7 +14,7 @@ pt: not_found_in_database: "Email ou senha inválidos." timeout: "Sua sessão expirou, faça login novamente para continuar." unauthenticated: "Você precisa fazer login ou se registrar, antes de continuar." - unconfirmed: "Você precisa confirmar sua conta, antes de continuar. Por favor, clique no link abaixo do formulário." + unconfirmed: "You have to confirm your account before continuing. Please click on the link below the form." mailer: confirmation_instructions: action: "Confirm my email address" @@ -53,10 +53,10 @@ pt: unlocked: "Sua conta foi desbloqueada com sucesso. Faça login para continuar." errors: messages: - already_confirmed: "Este email já foi confirmado." + already_confirmed: "This email was already confirmed, please try signing in." confirmation_period_expired: "deve ser confirmada dentro de %{period}, por favor solicite uma nova" expired: "expirado, por favor solicite uma nova" - not_found: "Este email não está associado a nenhuma conta." + not_found: "This email was not found" not_locked: "não encontra-se bloqueada" not_saved: one: "1 erro impediu a gravação de %{resource} :" From 64b77972e210860fd18aab47fdb136c331114bc8 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 13:08:07 +0100 Subject: [PATCH 074/136] New translations app.logged.en.yml (Spanish) --- config/locales/app.logged.es.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.es.yml b/config/locales/app.logged.es.yml index 252a9d008..b529e22a4 100644 --- a/config/locales/app.logged.es.yml +++ b/config/locales/app.logged.es.yml @@ -160,7 +160,7 @@ es: #book a training trainings_reserve: trainings_planning: "Plan de curso" - planning_of: "Plan de " #eg. Planning of 3d printer training + planning_of: "Planning of " #eg. Planning of 3d printer training all_trainings: "Todos los cursos" cancel_my_selection: "Cancelar mi selección" i_change: "I change" From be5b6eca58306bc21115bdf8951d1f77639801d1 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 13:08:19 +0100 Subject: [PATCH 075/136] New translations app.logged.en.yml (Portuguese) --- config/locales/app.logged.pt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.pt.yml b/config/locales/app.logged.pt.yml index bd16258a6..dbcc83cb5 100755 --- a/config/locales/app.logged.pt.yml +++ b/config/locales/app.logged.pt.yml @@ -160,7 +160,7 @@ pt: #book a training trainings_reserve: trainings_planning: "Planos de treinamento" - planning_of: "Planejamento de " #eg. Planning of 3d printer training + planning_of: "Planning of " #eg. Planning of 3d printer training all_trainings: "Todos treinamentos" cancel_my_selection: "Cancelar minha seleção" i_change: "I change" From b165ccf20d038833ced93446127ac7cc7b83f589 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 13:22:54 +0100 Subject: [PATCH 076/136] New translations app.logged.en.yml (Spanish) --- config/locales/app.logged.es.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.es.yml b/config/locales/app.logged.es.yml index b529e22a4..252a9d008 100644 --- a/config/locales/app.logged.es.yml +++ b/config/locales/app.logged.es.yml @@ -160,7 +160,7 @@ es: #book a training trainings_reserve: trainings_planning: "Plan de curso" - planning_of: "Planning of " #eg. Planning of 3d printer training + planning_of: "Plan de " #eg. Planning of 3d printer training all_trainings: "Todos los cursos" cancel_my_selection: "Cancelar mi selección" i_change: "I change" From f8a8394dc00003df0307026f1ac2402297f132fe Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 13:22:58 +0100 Subject: [PATCH 077/136] New translations en.yml (Spanish) --- config/locales/es.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/locales/es.yml b/config/locales/es.yml index 66be26758..cdcc7d4d5 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -13,11 +13,11 @@ es: errors: #CarrierWave messages: - carrierwave_processing_error: "falló al procesar" + carrierwave_processing_error: "no se pudo procesar" carrierwave_integrity_error: "es un tipo de archivo no permitido" carrierwave_download_error: "no pudo ser descargado" - extension_white_list_error: "No puede subir archivos de extensión %{extension}, tipos permitidos: %{allowed_types}" - extension_black_list_error: "No puede subir archivos de extensión %{extension}, tipos prohibidos: %{prohibited_types}" + extension_white_list_error: "No puede subir archivos con extensión %{extension}, tipos permitidos: %{allowed_types}" + extension_black_list_error: "No puede subir archivos con extensión %{extension}, tipos prohibidos: %{prohibited_types}" rmagick_processing_error: "Error al manipular con rmagick, ¿Está seguro de que el archivo es una imagen? Error original: %{e}" mime_types_processing_error: "Error al procesar archivo con MIME::Types, puede ser que el contenido no sea válido. Error original: %{e}" mini_magick_processing_error: "Error al editar con MiniMagick, ¿Está seguro de que el archivo es una imagen? Error original: %{e}" From 5a0b1504984b4e61d5c4b167792643fd0ffe6fe8 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 13:23:06 +0100 Subject: [PATCH 078/136] New translations app.logged.en.yml (Portuguese) --- config/locales/app.logged.pt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.pt.yml b/config/locales/app.logged.pt.yml index dbcc83cb5..bd16258a6 100755 --- a/config/locales/app.logged.pt.yml +++ b/config/locales/app.logged.pt.yml @@ -160,7 +160,7 @@ pt: #book a training trainings_reserve: trainings_planning: "Planos de treinamento" - planning_of: "Planning of " #eg. Planning of 3d printer training + planning_of: "Planejamento de " #eg. Planning of 3d printer training all_trainings: "Todos treinamentos" cancel_my_selection: "Cancelar minha seleção" i_change: "I change" From 4ea8537d5ab4282545eb6cf61aa8d93b9aaecac2 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 13:49:36 +0100 Subject: [PATCH 079/136] New translations en.yml (Spanish) --- config/locales/es.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/es.yml b/config/locales/es.yml index cdcc7d4d5..7371471fa 100644 --- a/config/locales/es.yml +++ b/config/locales/es.yml @@ -23,7 +23,7 @@ es: mini_magick_processing_error: "Error al editar con MiniMagick, ¿Está seguro de que el archivo es una imagen? Error original: %{e}" wrong_size: "es de tamaño incorrecto (debería ser de %{file_size})" size_too_small: "es demasiado pequeño (debería ser de minimo %{file_size})" - size_too_big: "es demasiado grande (debería ser de maximo %{file_size})" + size_too_big: "es demasiado grande (deberia ser de maximo %{file_size})" export_not_found: "La exportación solicitada no se encontró. Probablemente fue borrada, por favor, genere una nueva exportación." percentage_out_of_range: "El porcentaje debe estar incluido entre 0 y 100" cannot_be_blank_at_same_time: "no puede estar vacío cuando %{field} también está vacío" From 448e3217fc464bbade406bb2a535ac1198904a89 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 14:11:01 +0100 Subject: [PATCH 080/136] New translations app.admin.en.yml (Portuguese) --- config/locales/app.admin.pt.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/config/locales/app.admin.pt.yml b/config/locales/app.admin.pt.yml index c3a817a5d..cba330b2f 100755 --- a/config/locales/app.admin.pt.yml +++ b/config/locales/app.admin.pt.yml @@ -962,20 +962,20 @@ pt: default_value_is_24_hours: "Se o campo estiver vazio: 24 horas." visibility_yearly: "visibilidade máxima para assinantes anuais" visibility_others: "visibilidade máxima para outros membros" - confidentiality: "TODO" - display_machine_reservation_user_name: "TODO" - display_name: "TODO" - display_name_enable: "TODO" - machines_sort_by: "TODO" + confidentiality: "Confidencialidade" + display_machine_reservation_user_name: "Exibir o nome completo do usuário que reservou um slot de máquina" + display_name: "Nome de exibição" + display_name_enable: "exibição de nome" + machines_sort_by: "ordem de exibição das máquinas" fab_analytics: "Fab Analytics" - elements_ordering: "TODO" - machines_order: "TODO" - display_machines_sorted_by: "TODO" + elements_ordering: "Ordenação de elementos" + machines_order: "Ordem das máquinas" + display_machines_sorted_by: "Exibir máquinas ordenadas por" advanced: "Advanced settings" customize_home_page_css: "Customise the stylesheet og the home page" home_css_notice_html: "You can customize the stylesheet which will apply to the home page, using the SASS syntax. These styles will be automatically subordinated to the .home-page selector to prevent any risk of breaking the application. Meanwhile please be careful, any changes in the home page editor at the top of the page may broke your styles, always refer to the HTML code." sort_by: - default: "TODO" + default: "Default" name: "Nome" created_at: "TODO" updated_at: "TODO" From f3b489e868c4c666f76d42d920ab69911310c8cc Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 14:25:41 +0100 Subject: [PATCH 081/136] New translations devise.en.yml (French) --- config/locales/devise.fr.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml index 7f7a7cae8..07a806b52 100644 --- a/config/locales/devise.fr.yml +++ b/config/locales/devise.fr.yml @@ -10,20 +10,20 @@ fr: inactive: "Votre compte n’est pas encore activé." invalid: "E-mail ou mot de passe incorrect." locked: "Votre compte est verrouillé." - last_attempt: "You have one more attempt before your account will be locked." + last_attempt: "Vous avez encore une tentative avant que votre compte soit verrouillé." not_found_in_database: "E-mail ou mot de passe incorrect." timeout: "Votre session est périmée, veuillez vous reconnecter pour continuer." unauthenticated: "Vous devez vous connecter ou vous enregistrer pour continuer." - unconfirmed: "You have to confirm your account before continuing. Please click on the link below the form." + unconfirmed: "Vous devez confirmer votre compte avant de continuer. Veuillez cliquer sur le lien sous le formulaire." mailer: confirmation_instructions: - action: "Confirm my email address" - instruction: "You can finalize your registration by confirming your email address. Please click on the following link:" + action: "Confirmer mon adresse e-mail" + instruction: "Vous pouvez finaliser votre inscription en confirmant votre adresse e-mail. Veuillez cliquer sur le lien suivant :" subject: "Confirmation d'inscription" reset_password_instructions: - action: "Change my password" - instruction: "Someone asked for a link to change your password. You can do it through the link below." - ignore_otherwise: "If you have not made this request, please ignore this message." + action: "Changer mon mot de passe" + instruction: "Quelqu'un a demandé le changement de votre mot de passe. Vous pouvez le modifier via le lien ci-dessous." + ignore_otherwise: "S'il ne s'agit pas de vous, veillez ignorer ce mail." subject: "Instructions pour changer le mot de passe" unlock_instructions: subject: "Instructions pour déverrouiller le compte" @@ -53,10 +53,10 @@ fr: unlocked: "Votre compte a été débloqué avec succès. Veuillez vous connecter." errors: messages: - already_confirmed: "This email was already confirmed, please try signing in." + already_confirmed: "Cet e-mail a déjà été confirmé, veuillez essayer de vous connecter." confirmation_period_expired: "doit être confirmé(e) en %{period}, veuillez en demander un(e) autre" expired: "est périmé, veuillez en demander un autre" - not_found: "This email was not found" + not_found: "Cet e-mail n'a pas été trouvé" not_locked: "n’était pas verrouillé(e)" not_saved: one: "une erreur a empêché ce (ou cette) %{resource} d’être enregistré(e) :" From ac456a8b2f490388bfe56e804ff307adecc89491 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 14:25:46 +0100 Subject: [PATCH 082/136] New translations app.admin.en.yml (Portuguese) --- config/locales/app.admin.pt.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/app.admin.pt.yml b/config/locales/app.admin.pt.yml index cba330b2f..9cc2d771c 100755 --- a/config/locales/app.admin.pt.yml +++ b/config/locales/app.admin.pt.yml @@ -977,8 +977,8 @@ pt: sort_by: default: "Default" name: "Nome" - created_at: "TODO" - updated_at: "TODO" + created_at: "Data de criação" + updated_at: "Última Data de Atualização" privacy: title: "Política de privacidade" input_the_dpo: "Input the contact of the Data Protection Officer" From e78827c8ebadb4b0734b1372771b51010bf23900 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 15:32:39 +0100 Subject: [PATCH 083/136] New translations en.yml (French) --- config/locales/fr.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/locales/fr.yml b/config/locales/fr.yml index cb157bda8..e04a54ba0 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -21,9 +21,9 @@ fr: rmagick_processing_error: "La manipulation avec rmagick a échoué, peut-être ne s'agit-il pas d'une image ? Erreur d'origine : %{e}" mime_types_processing_error: "Le traitement avec MIME::Types a échoué, le content-type est-il correct ? Erreur d'origine : %{e}" mini_magick_processing_error: "La manipulation avec MiniMagick a échoué, peut-être ne s'agit-il pas d'une image ? Erreur d'origine : %{e}" - wrong_size: "ne fait pas la taille du fichier (doit comporter %{file_size})" - size_too_small: "est trop petite (au moins %{file_size})" - size_too_big: "est trop grande (pas plus de %{file_size})" + wrong_size: "ne fait pas la bonne taille (doit comporter %{file_size})" + size_too_small: "est trop petit (au moins %{file_size})" + size_too_big: "est trop grand (pas plus de %{file_size})" export_not_found: "L'export demandé n'a pas été trouvé. Il a probablement été supprimé, veuillez lancer la génération d'un nouvel export." percentage_out_of_range: "Le pourcentage doit être inclus entre 0 et 100" cannot_be_blank_at_same_time: "ou %{field} doit être rempli(e)" From 138acba2ae106831bce07a0d3cdb04dfa4adfc96 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Mon, 9 Mar 2020 15:36:44 +0100 Subject: [PATCH 084/136] updated changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 05f197c64..e1934b758 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Changelog Fab-manager - Secure the session cookie +- Updated translations - Refactored translations to help merging Crowdin PR ## v4.3.1 2020 March 04 From 274802988e5a04ca13e7f2a0512c1eef2d0c4c52 Mon Sep 17 00:00:00 2001 From: Du Peng Date: Mon, 9 Mar 2020 16:57:43 +0100 Subject: [PATCH 085/136] update nginx ssl config and version --- setup/docker-compose.yml | 2 +- setup/nginx_with_ssl.conf.example | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/setup/docker-compose.yml b/setup/docker-compose.yml index 9cb5fcf1c..cb9813fc8 100644 --- a/setup/docker-compose.yml +++ b/setup/docker-compose.yml @@ -48,7 +48,7 @@ services: restart: always nginx: - image: nginx:1.9 + image: nginx:latest ports: - "80:80" - "443:443" diff --git a/setup/nginx_with_ssl.conf.example b/setup/nginx_with_ssl.conf.example index 79be4cc2a..823e0282c 100644 --- a/setup/nginx_with_ssl.conf.example +++ b/setup/nginx_with_ssl.conf.example @@ -3,10 +3,10 @@ upstream puma { } server { - listen 443 ssl; + listen 443 ssl http2; + listen [::]:443 ssl http2; server_name MAIN_DOMAIN; root /usr/src/app/public; - ssl on; ## with your ssl certificate # ssl_certificate /etc/nginx/conf.d/ssl/MAIN_DOMAIN.crt; # ssl_certificate_key /etc/nginx/conf.d/ssl/MAIN_DOMAIN.deprotected.key; @@ -16,9 +16,9 @@ server { ssl_certificate /etc/letsencrypt/live/MAIN_DOMAIN/fullchain.pem; ssl_trusted_certificate /etc/letsencrypt/live/MAIN_DOMAIN/chain.pem; ## - ssl_protocols TLSv1.2 TLSv1.1 TLSv1; + ssl_protocols TLSv1.2 TLSv1.3; ssl_prefer_server_ciphers on; - ssl_ciphers 'kEECDH+ECDSA+AES128 kEECDH+ECDSA+AES256 kEECDH+AES128 kEECDH+AES256 kEDH+AES128 kEDH+AES256 DES-CBC3-SHA +SHA !aNULL !eNULL !LOW !MD5 !EXP !DSS !PSK !SRP !kECDH !CAMELLIA !RC4 !SEED'; + ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384; ssl_session_cache shared:SSL:50m; ssl_session_tickets off; ssl_session_timeout 1d; From d40ae6fb2f6d5be35300386051b83e7a95aefb24 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Tue, 10 Mar 2020 09:52:55 +0100 Subject: [PATCH 086/136] add rails ach locale --- config/locales/rails.ach.yml | 205 +++++++++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 206 insertions(+), 1 deletion(-) create mode 100644 config/locales/rails.ach.yml diff --git a/config/locales/rails.ach.yml b/config/locales/rails.ach.yml new file mode 100644 index 000000000..42f0b3800 --- /dev/null +++ b/config/locales/rails.ach.yml @@ -0,0 +1,205 @@ +en: + date: + abbr_day_names: + - Sun + - Mon + - Tue + - Wed + - Thu + - Fri + - Sat + abbr_month_names: + - + - Jan + - Feb + - Mar + - Apr + - May + - Jun + - Jul + - Aug + - Sep + - Oct + - Nov + - Dec + day_names: + - Sunday + - Monday + - Tuesday + - Wednesday + - Thursday + - Friday + - Saturday + formats: + default: "%Y-%m-%d" + long: "%B %d, %Y" + short: "%b %d" + month_names: + - + - January + - February + - March + - April + - May + - June + - July + - August + - September + - October + - November + - December + order: + - :year + - :month + - :day + datetime: + distance_in_words: + about_x_hours: + one: about 1 hour + other: about %{count} hours + about_x_months: + one: about 1 month + other: about %{count} months + about_x_years: + one: about 1 year + other: about %{count} years + almost_x_years: + one: almost 1 year + other: almost %{count} years + half_a_minute: half a minute + less_than_x_minutes: + one: less than a minute + other: less than %{count} minutes + less_than_x_seconds: + one: less than 1 second + other: less than %{count} seconds + over_x_years: + one: over 1 year + other: over %{count} years + x_days: + one: 1 day + other: "%{count} days" + x_minutes: + one: 1 minute + other: "%{count} minutes" + x_months: + one: 1 month + other: "%{count} months" + x_seconds: + one: 1 second + other: "%{count} seconds" + prompts: + day: Day + hour: Hour + minute: Minute + month: Month + second: Seconds + year: Year + errors: + format: "%{attribute} %{message}" + messages: + accepted: must be accepted + blank: can't be blank + present: must be blank + confirmation: doesn't match %{attribute} + empty: can't be empty + equal_to: must be equal to %{count} + even: must be even + exclusion: is reserved + greater_than: must be greater than %{count} + greater_than_or_equal_to: must be greater than or equal to %{count} + inclusion: is not included in the list + invalid: is invalid + less_than: must be less than %{count} + less_than_or_equal_to: must be less than or equal to %{count} + not_a_number: is not a number + not_an_integer: must be an integer + odd: must be odd + record_invalid: 'Validation failed: %{errors}' + restrict_dependent_destroy: + one: Cannot delete record because a dependent %{record} exists + many: Cannot delete record because dependent %{record} exist + taken: has already been taken + too_long: + one: is too long (maximum is 1 character) + other: is too long (maximum is %{count} characters) + too_short: + one: is too short (minimum is 1 character) + other: is too short (minimum is %{count} characters) + wrong_length: + one: is the wrong length (should be 1 character) + other: is the wrong length (should be %{count} characters) + other_than: must be other than %{count} + wrong_content_type: "content type is not allowed" + template: + body: 'There were problems with the following fields:' + header: + one: 1 error prohibited this %{model} from being saved + other: "%{count} errors prohibited this %{model} from being saved" + helpers: + select: + prompt: Please select + submit: + create: Create %{model} + submit: Save %{model} + update: Update %{model} + number: + currency: + format: + delimiter: "," + format: "%u%n" + precision: 2 + separator: "." + significant: false + strip_insignificant_zeros: false + unit: "$" + format: + delimiter: "," + precision: 3 + separator: "." + significant: false + strip_insignificant_zeros: false + human: + decimal_units: + format: "%n %u" + units: + billion: Billion + million: Million + quadrillion: Quadrillion + thousand: Thousand + trillion: Trillion + unit: '' + format: + delimiter: '' + precision: 3 + significant: true + strip_insignificant_zeros: true + storage_units: + format: "%n %u" + units: + byte: + one: Byte + other: Bytes + gb: GB + kb: KB + mb: MB + tb: TB + percentage: + format: + delimiter: '' + format: "%n%" + precision: + format: + delimiter: '' + support: + array: + last_word_connector: ", and " + two_words_connector: " and " + words_connector: ", " + time: + am: am + formats: + default: "%a, %d %b %Y %H:%M:%S %z" + long: "%B %d, %Y %H:%M" + short: "%d %b %H:%M" + pm: pm \ No newline at end of file diff --git a/package.json b/package.json index d1b258ad1..44bc32d96 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fab-manager", - "version": "4.3.1", + "version": "4.3.2-dev", "description": "Fab-manager is the FabLab management solution. It provides a comprehensive, web-based, open-source tool to simplify your administrative tasks and your marker's projects.", "keywords": [ "fablab", From 32d29734fddadc2036af17fb2e3669a11526a0cd Mon Sep 17 00:00:00 2001 From: Sylvain Date: Tue, 10 Mar 2020 12:28:37 +0100 Subject: [PATCH 087/136] correct command to restore SQL dump --- doc/postgresql_readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/postgresql_readme.md b/doc/postgresql_readme.md index 2cce56c51..69fca1370 100644 --- a/doc/postgresql_readme.md +++ b/doc/postgresql_readme.md @@ -43,7 +43,7 @@ docker-compose down docker-compose up -d postgres docker-compose exec postgres dropdb -U postgres fabmanager_production docker-compose exec postgres createdb -U postgres fabmanager_production -docker-compose exec postgres pg_restore -U postgres -d fablab_production /var/lib/postgresql/data/fabmanager_production_$(date -I).sql +docker-compose exec postgres psql -U postgres -d fablab_production -f /var/lib/postgresql/data/fabmanager_production_$(date -I).sql ``` From a11edd9c6f596b633ad231df1400279b22458011 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Tue, 10 Mar 2020 14:14:11 +0100 Subject: [PATCH 088/136] restart app after restore db --- doc/postgresql_readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/postgresql_readme.md b/doc/postgresql_readme.md index 69fca1370..43e4f4cd2 100644 --- a/doc/postgresql_readme.md +++ b/doc/postgresql_readme.md @@ -44,6 +44,7 @@ docker-compose up -d postgres docker-compose exec postgres dropdb -U postgres fabmanager_production docker-compose exec postgres createdb -U postgres fabmanager_production docker-compose exec postgres psql -U postgres -d fablab_production -f /var/lib/postgresql/data/fabmanager_production_$(date -I).sql +docker-compose up -d ``` From 40208a196e16db77cca05ba5f7f4d57cc61191e1 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Tue, 10 Mar 2020 15:36:03 +0100 Subject: [PATCH 089/136] fix ach locale --- config/locales/rails.ach.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/rails.ach.yml b/config/locales/rails.ach.yml index 42f0b3800..41ab919db 100644 --- a/config/locales/rails.ach.yml +++ b/config/locales/rails.ach.yml @@ -1,4 +1,4 @@ -en: +ach: date: abbr_day_names: - Sun From 2c1dbd4d825cc6fef4b9b86fd7e29f92c8fd78b8 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Tue, 10 Mar 2020 16:38:29 +0100 Subject: [PATCH 090/136] [ongoing] help modal --- .../controllers/application.js.erb | 21 ++------ app/assets/javascripts/controllers/home.js | 22 +------- app/assets/javascripts/services/help.js.erb | 53 +++++++++++++++++++ .../templates/shared/help_modal.html.erb | 20 +++++++ config/locales/app.admin.en.yml | 1 + config/locales/app.admin.fr.yml | 1 + config/locales/app.shared.en.yml | 7 +++ config/locales/app.shared.fr.yml | 7 +++ 8 files changed, 94 insertions(+), 38 deletions(-) create mode 100644 app/assets/javascripts/services/help.js.erb create mode 100644 app/assets/templates/shared/help_modal.html.erb diff --git a/app/assets/javascripts/controllers/application.js.erb b/app/assets/javascripts/controllers/application.js.erb index b409038b1..4425f0f76 100644 --- a/app/assets/javascripts/controllers/application.js.erb +++ b/app/assets/javascripts/controllers/application.js.erb @@ -12,8 +12,8 @@ * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md */ -Application.Controllers.controller('ApplicationController', ['$rootScope', '$scope', '$window', '$locale', '$timeout', 'Session', 'AuthService', 'Auth', '$uibModal', '$state', 'growl', 'Notification', '$interval', 'Setting', '_t', 'Version', - function ($rootScope, $scope, $window, $locale, $timeout, Session, AuthService, Auth, $uibModal, $state, growl, Notification, $interval, Setting, _t, Version) { +Application.Controllers.controller('ApplicationController', ['$rootScope', '$scope', '$window', '$locale', '$timeout', 'Session', 'AuthService', 'Auth', '$uibModal', '$state', 'growl', 'Notification', '$interval', 'Setting', '_t', 'Version', 'Help', + function ($rootScope, $scope, $window, $locale, $timeout, Session, AuthService, Auth, $uibModal, $state, growl, Notification, $interval, Setting, _t, Version, Help) { /* PRIVATE STATIC CONSTANTS */ // User's notifications will get refreshed every 30s @@ -346,22 +346,7 @@ Application.Controllers.controller('ApplicationController', ['$rootScope', '$sco $rootScope.login = $scope.login; // handle F1 key to trigger help - window.addEventListener('keydown', function(e) { - if (e.key === 'F1') { - if ($rootScope.currentUser.role !== 'admin') return; - - e.preventDefault(); - // we wait a little bit and then, check if a tour has started (by checking for a tour popover). - // if not, we consider that we are on a page that does not provides a tour so we fallback to the default behavior - // -> opening the user's manual - setTimeout(function() { - const tourPopover = document.querySelector('.ui-tour-popup'); - if (!tourPopover || (tourPopover.offsetTop === 0 && tourPopover.offsetTop === 0)) { - window.open('https://github.com/sleede/fab-manager/raw/master/doc/fr/guide_utilisation_fab_manager_v4.3.pdf', '_blank'); - } - }, 300); - } - }); + window.addEventListener('keydown', Help); }; /** diff --git a/app/assets/javascripts/controllers/home.js b/app/assets/javascripts/controllers/home.js index 3975737e9..7bbfecab7 100644 --- a/app/assets/javascripts/controllers/home.js +++ b/app/assets/javascripts/controllers/home.js @@ -1,7 +1,7 @@ 'use strict'; -Application.Controllers.controller('HomeController', ['$scope', '$stateParams', 'settingsPromise', 'Member', 'uiTourService', '_t', - function ($scope, $stateParams, settingsPromise, Member, uiTourService, _t) { +Application.Controllers.controller('HomeController', ['$scope', '$stateParams', 'settingsPromise', 'Member', 'uiTourService', '_t', 'Help', + function ($scope, $stateParams, settingsPromise, Member, uiTourService, _t, Help) { /* PUBLIC SCOPE */ // Home page HTML content @@ -41,10 +41,6 @@ Application.Controllers.controller('HomeController', ['$scope', '$stateParams', // We set the home page content, with the directives replacing the placeholders $scope.homeContent = insertDirectives(settingsPromise.home_content); - // listen the $destroy event of the controller to remove the F1 key binding - $scope.$on('$destroy', function () { - window.removeEventListener('keydown', handleF1); - }); // for admins, setup the tour on login $scope.$watch('currentUser', function (newValue, oldValue) { @@ -305,20 +301,6 @@ Application.Controllers.controller('HomeController', ['$scope', '$stateParams', if (Fablab.featureTourDisplay !== 'manual' && $scope.currentUser.profile.tours.indexOf('welcome') < 0) { uitour.start(); } - // start this tour when an user press F1 - this is contextual help - window.addEventListener('keydown', handleF1); - }; - - /** - * Callback used to trigger the feature tour when the user press the F1 key. - * @param e {KeyboardEvent} - */ - const handleF1 = function (e) { - if (e.key === 'F1') { - e.preventDefault(); - const tour = uiTourService.getTourByName('welcome'); - if (tour) { tour.start(); } - } }; // !!! MUST BE CALLED AT THE END of the controller diff --git a/app/assets/javascripts/services/help.js.erb b/app/assets/javascripts/services/help.js.erb new file mode 100644 index 000000000..983a085f5 --- /dev/null +++ b/app/assets/javascripts/services/help.js.erb @@ -0,0 +1,53 @@ +'use strict'; + +Application.Services.factory('Help', ['$uibModal', '$state', function ($uibModal, $state) { + const TOURS = { + 'app.public.home': 'welcome', + 'app.public.machines_list': 'machines', + 'app.public.spaces_list': 'spaces', + 'app.admin.trainings': 'trainings', + 'app.admin.calendar': 'calendar', + 'app.admin.members': 'members', + 'app.admin.invoices': 'invoices', + 'app.admin.pricing': 'pricing', + 'app.admin.events': 'events', + 'app.admin.project_elements': 'project_elements', + 'app.admin.statistics': 'statistics', + 'app.admin.settings': 'settings', + 'app.admin.open_api_clients': 'open_api' + }; + + + return function (e) { + if (e.key === 'F1') { + e.preventDefault(); + // retrieve the tour name, based on the current location + const tour = TOURS[$state.current.name]; + + // if no tour, just open the guide + if (tour === undefined) { + return window.open('https://github.com/sleede/fab-manager/raw/master/doc/fr/guide_utilisation_fab_manager_v4.3.pdf', '_blank'); + } + + $uibModal.open({ + animation: true, + templateUrl: '<%= asset_path "shared/help_modal.html" %>', + controller: ['$scope', '$uibModalInstance', 'uiTourService', function ($scope, $uibModalInstance, uiTourService) { + // start the tour and hide the modal + $scope.onTour = function () { + const tour = uiTourService.getTourByName(tour); + if (tour) { tour.start(); } + + $uibModalInstance.close('tour'); + }; + + // open the user's guide and hide the modal + $scope.onGuide = function () { + $uibModalInstance.close('guide'); + }; + }] + }); + } + }; + +}]); diff --git a/app/assets/templates/shared/help_modal.html.erb b/app/assets/templates/shared/help_modal.html.erb new file mode 100644 index 000000000..be82ee085 --- /dev/null +++ b/app/assets/templates/shared/help_modal.html.erb @@ -0,0 +1,20 @@ + + diff --git a/config/locales/app.admin.en.yml b/config/locales/app.admin.en.yml index 8f556e26d..c93820bdb 100644 --- a/config/locales/app.admin.en.yml +++ b/config/locales/app.admin.en.yml @@ -1042,6 +1042,7 @@ en: report_will_be_destroyed: "Once the report has been processed, it will be deleted. This can't be undone, continue?" report_removed: "The report has been deleted" failed_to_remove: "An error occurred, unable to delete the report" + #feature tour tour: conclusion: title: "Thank you for your attention" diff --git a/config/locales/app.admin.fr.yml b/config/locales/app.admin.fr.yml index 5f23e18cf..e89e7f922 100644 --- a/config/locales/app.admin.fr.yml +++ b/config/locales/app.admin.fr.yml @@ -1042,6 +1042,7 @@ fr: report_will_be_destroyed: "Une fois le signalement traité, le rapport sera supprimé. Cette action est irréversible, continuer ?" report_removed: "Le rapport a bien été supprimé" failed_to_remove: "Une erreur est survenue, impossible de supprimer le rapport" + #feature tour tour: conclusion: title: "Merci de votre attention" diff --git a/config/locales/app.shared.en.yml b/config/locales/app.shared.en.yml index 9711eb136..3fd4ec76e 100644 --- a/config/locales/app.shared.en.yml +++ b/config/locales/app.shared.en.yml @@ -425,7 +425,14 @@ en: slot_at_same_time: "Conflict with others reservations" do_you_really_want_to_book_slot_at_same_time: "Do you really want to book this slot? Other bookings take place at the same time" unable_to_book_slot_because_really_have_reservation_at_same_time: "Unable to book this slot because the following reservation occurs at the same time." + # feature-tour modal tour: previous: "Previous" next: "Next" end: "End the tour" + # help modal + help: + title: "Help" + what_to_do: "What do you want to do?" + tour: "Start the feature tour" + guide: "Open the user's manual" \ No newline at end of file diff --git a/config/locales/app.shared.fr.yml b/config/locales/app.shared.fr.yml index c5c73f881..0bb7a9159 100644 --- a/config/locales/app.shared.fr.yml +++ b/config/locales/app.shared.fr.yml @@ -425,7 +425,14 @@ fr: slot_at_same_time: "Conflit avec d'autres réservations" do_you_really_want_to_book_slot_at_same_time: "Êtes-vous sûr de réserver ce créneau ? D'autres réservations ont lieu en même temps" unable_to_book_slot_because_really_have_reservation_at_same_time: "Impossible de réserver ce créneau car les réservations ci-dessous ont lieu en même temps." + # feature-tour modal tour: previous: "Précédent" next: "Suivant" end: "Terminer la visite" + # help modal + help: + title: "Aide" + what_to_do: "Que voulez-vous faire ?" + tour: "Lancer la visite guidée" + guide: "Ouvrir le manuel de l'utilisateur" \ No newline at end of file From a440336f74ea6fd847c8f8475b3108765b42d2aa Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 08:47:08 +0100 Subject: [PATCH 091/136] added base.ach.yml --- config/locales/base.ach.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 config/locales/base.ach.yml diff --git a/config/locales/base.ach.yml b/config/locales/base.ach.yml new file mode 100644 index 000000000..c34b69014 --- /dev/null +++ b/config/locales/base.ach.yml @@ -0,0 +1,12 @@ +ach: + time: + formats: + # See http://apidock.com/ruby/DateTime/strftime for a list of available directives + hour_minute: "%I:%M %p" + + errors: &errors + messages: &errors_messages + + activemodel: + errors: + <<: *errors From 9160c3cbba30805135995ef3434a971121ae698b Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 09:22:27 +0100 Subject: [PATCH 092/136] New translations app.admin.en.yml (French) --- config/locales/app.admin.fr.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/locales/app.admin.fr.yml b/config/locales/app.admin.fr.yml index 5f23e18cf..4b122b5e3 100644 --- a/config/locales/app.admin.fr.yml +++ b/config/locales/app.admin.fr.yml @@ -435,7 +435,7 @@ fr: add_a_notice_regarding_the_online_sales_only_if_the_invoice_is_concerned: "Ajoute une information relative à la vente en ligne, uniquement si cela concerne la facture." this_will_never_be_added_when_a_refund_notice_is_present: "Ceci ne sera jamais cumulé avec une information de remboursement." eg_XVL_will_add_VL_to_the_invoices_settled_with_stripe: '(ex. X[/VL] ajoutera "/VL" aux factures réglées avec stripe)' - add_a_notice_regarding_refunds_only_if_the_invoice_is_concerned: "Ajoute une information relative aux remboursements, uniquement si cela concerne la facture. " + add_a_notice_regarding_refunds_only_if_the_invoice_is_concerned: "Ajoute une information relative aux remboursements, uniquement si cela concerne la facture." this_will_never_be_added_when_an_online_sales_notice_is_present: "Ceci ne sera jamais cumulé avec une information de vente en ligne." eg_RA_will_add_A_to_the_refund_invoices: '(ex. R[/A] ajoutera "/A" aux factures de remboursement)' add_a_notice_regarding_the_wallet_only_if_the_invoice_is_concerned: "Ajoute une information relative au paiement par le porte-monnaie, uniquement si cela concerne la facture." @@ -669,7 +669,7 @@ fr: import_members: "Importer des membres" info: "Vous pouvez téléverser un fichier CSV afin de créer des nouveaux membres ou de mettre à jour les existants. Votre fichier doit utiliser les identifiants ci-dessous pour spécifier le groupe, les formations et les étiquettes des membres." required_fields: "Votre fichier doit obligatoirement comporter, au minimum, les informations suivantes pour chaque utilisateur à créer : courriel, nom, prénom et groupe. Si le mot passe n'est pas rempli, il sera généré automatiquement. Lors d'une mise à jour, les champs non remplis seront gardés tel quels." - about_example: "Merci de vous référer au fichier d'exemple fourni pour générer un fichier CSV au bon format. Attention à l'utiliser l'encodage Unicode UTF-8" + about_example: "Merci de vous référer au fichier d'exemple fourni pour générer un fichier CSV au bon format. Attention à l'utiliser l'encodage Unicode UTF-8." groups: "Groupes" group_name: "Nom du groupe" group_identifier: "Identifiant à utiliser" @@ -784,7 +784,7 @@ fr: #statistics tables statistics: statistics: "Statistiques" - evolution: "évolution" + evolution: "Évolution" age_filter: "Filtre d'âge" from_age: "De" #eg. from 8 to 40 years old to_age: "à" #eg. from 8 to 40 years old From 914e7cb7c3f8231fff40deb3d5fc66cf8bafd2c0 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 09:42:58 +0100 Subject: [PATCH 093/136] New translations app.logged.en.yml (French) --- config/locales/app.logged.fr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/app.logged.fr.yml b/config/locales/app.logged.fr.yml index 9cedf3883..d2b7b0a97 100644 --- a/config/locales/app.logged.fr.yml +++ b/config/locales/app.logged.fr.yml @@ -37,7 +37,7 @@ fr: sync_my_profile: "Synchroniser mon profil" once_your_data_are_up_to_date_: "Une fois vos données à jour," _click_on_the_synchronization_button_opposite_: "cliquez sur le bouton de synchronisation ci-contre" - _disconnect_then_reconnect_: "déconnectez-vous puis re-connectez vous" + _disconnect_then_reconnect_: "déconnectez-vous puis reconnectez vous" _for_your_changes_to_take_effect: "pour que les modifications soient prises en compte." dashboard: #dashboard: public profile @@ -89,7 +89,7 @@ fr: sync_my_profile: "Synchroniser mon profil" once_your_data_are_up_to_date_: "Une fois vos données à jour," _click_on_the_synchronization_button_opposite_: "cliquez sur le bouton de synchronisation ci-contre" - _disconnect_then_reconnect_: "déconnectez-vous puis re-connectez vous" + _disconnect_then_reconnect_: "déconnectez-vous puis reconnectez vous" _for_your_changes_to_take_effect: "pour que les modifications soient prises en compte." #dashboard: my projects projects: From 5a3fc031992c532431273fdff6dcfe2db86d5ded Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 09:43:00 +0100 Subject: [PATCH 094/136] New translations app.admin.en.yml (French) --- config/locales/app.admin.fr.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/locales/app.admin.fr.yml b/config/locales/app.admin.fr.yml index 4b122b5e3..9672bfde3 100644 --- a/config/locales/app.admin.fr.yml +++ b/config/locales/app.admin.fr.yml @@ -880,7 +880,7 @@ fr: change_the_logo: "Changer le logo" logo_black_background: "Logo (font noir)" favicon: "Favicon" - change_the_favicon: "Changer la favicon" + change_the_favicon: "Changer la favicon" main_colour: "Couleur principale :" primary: "Primaire" secondary_colour: "Couleur secondaire :" @@ -966,7 +966,7 @@ fr: display_machine_reservation_user_name: "Afficher le nom de l'utilisateur ayant réservé une machine" display_name: "Afficher le nom" display_name_enable: "l'affichage du nom" - machines_sort_by: "l'odre d'affichage des machines" + machines_sort_by: "l'ordre d'affichage des machines" fab_analytics: "Fab Analytics" elements_ordering: "Ordre d'affichage des éléments" machines_order: "Ordre des machines" @@ -1016,11 +1016,11 @@ fr: client_name: "Nom du client" confirmation_required: "Confirmation requise" do_you_really_want_to_delete_this_open_api_client: "Voulez vous vraiment supprimer ce compte client OpenAPI ?" - do_you_really_want_to_revoke_this_open_api_access: "Voulez vous vraiment revoquer l'accès de ce compte OpenAPI ? Une confirmation aura pour effet la génération d'un nouveau token." + do_you_really_want_to_revoke_this_open_api_access: "Voulez vous vraiment révoquer l'accès de ce compte OpenAPI ? Une confirmation aura pour effet la génération d'un nouveau jeton." client_successfully_created: "Le compte client a bien été créé." client_successfully_updated: "Les modifications ont été enregistrées." client_successfully_deleted: "Le compte client a bien été supprimé." - access_successfully_revoked: "L'accès a bien été revoqué." + access_successfully_revoked: "L'accès a bien été révoqué." #create a new space space_new: add_a_new_space: "Ajouter un nouvel espace" @@ -1115,7 +1115,7 @@ fr: content: "Par défaut, ce tableau liste l'ensemble des factures et avoirs émis via Fab-manager. Vous pouvez trier la liste dans un ordre différent en cliquant sur l'entête de chaque colonne." chained: title: "Indicateur de chaînage" - content: "

Cette icône assure l'inaltérablité des données comptables de la facture sur cette ligne, conformément à la loi de finances française de 2018 contre la fraude à la TVA.

Si une icône rouge apparaît au lieu de celle-ci, merci de contactez immédiatement le support technique.

" + content: "

Cette icône assure l'inaltérabilité des données comptables de la facture sur cette ligne, conformément à la loi de finances française de 2018 contre la fraude à la TVA.

Si une icône rouge apparaît au lieu de celle-ci, merci de contactez immédiatement le support technique.

" download: title: "Télécharger" content: "Cliquez ici pour télécharger la facture au format PDF." @@ -1155,7 +1155,7 @@ fr: content: "

Les crédits vous permettent d'offrir certains services aux utilisateurs qui souscrivent à un abonnement.

Vous pouvez, par exemple, offrir 2h d'imprimante 3D pour tous les abonnements annuels ; ou une formation au choix pour les abonnés étudiants, etc.

" coupons: title: "Codes promotionnels" - content: "Créez et gérez des codes promotionnels permettant d'offir des réductions ponctuelles à leurs détenteurs." + content: "Créez et gérez des codes promotionnels permettant d'offrir des réductions ponctuelles à leurs détenteurs." events: welcome: title: "Évènements" From e44499d7eeaad02ad94e3dbd7c141b8b9b0c4d8c Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:04:32 +0100 Subject: [PATCH 095/136] fixed some translations --- .../templates/admin/statistics/index.html.erb | 2 +- config/locales/app.admin.ach.yml | 1 - config/locales/app.admin.en.yml | 23 +++++++++---------- config/locales/app.admin.es.yml | 1 - config/locales/app.admin.fr.yml | 1 - config/locales/app.admin.pt.yml | 3 +-- config/locales/app.logged.en.yml | 2 +- config/locales/app.logged.es.yml | 2 +- config/locales/app.logged.pt.yml | 2 +- config/locales/app.public.en.yml | 23 ++++++++++--------- config/locales/app.public.es.yml | 1 + config/locales/app.public.fr.yml | 9 ++++---- config/locales/app.public.pt.yml | 1 + config/locales/app.shared.en.yml | 12 +++++----- 14 files changed, 41 insertions(+), 42 deletions(-) diff --git a/app/assets/templates/admin/statistics/index.html.erb b/app/assets/templates/admin/statistics/index.html.erb index 852b59bce..030ffbf50 100644 --- a/app/assets/templates/admin/statistics/index.html.erb +++ b/app/assets/templates/admin/statistics/index.html.erb @@ -44,7 +44,7 @@ {{agePicker.start}} {{ 'app.admin.statistics.to_age' }} {{agePicker.end}} - {{ 'app.admin.statistics._years_old' }} + {{ 'app.admin.statistics.years_old' }} {{ 'app.admin.statistics.age_filter' }} diff --git a/config/locales/app.admin.ach.yml b/config/locales/app.admin.ach.yml index 174eabd85..61ca48653 100644 --- a/config/locales/app.admin.ach.yml +++ b/config/locales/app.admin.ach.yml @@ -788,7 +788,6 @@ ach: age_filter: "crwdns8095:0crwdne8095:0" from_age: "crwdns8097:0crwdne8097:0" #eg. from 8 to 40 years old to_age: "crwdns8099:0crwdne8099:0" #eg. from 8 to 40 years old - _years_old: "crwdns8101:0crwdne8101:0" start: "crwdns8103:0crwdne8103:0" end: "crwdns8105:0crwdne8105:0" custom_filter: "crwdns8107:0crwdne8107:0" diff --git a/config/locales/app.admin.en.yml b/config/locales/app.admin.en.yml index c93820bdb..4dec6111e 100644 --- a/config/locales/app.admin.en.yml +++ b/config/locales/app.admin.en.yml @@ -95,7 +95,7 @@ en: event_in_the_past: "Unable to create a slot in the past." edit_event: "Edit the event" view_reservations: "View reservations" - legend: "legend" + legend: "Legend" and: "and" external_sync: "Calendar synchronization" # import external iCal calendar @@ -240,7 +240,7 @@ en: edit_this_and_next: "This event and the following" edit_all: "All events" date_wont_change: "Warning: you have changed the event date. This modification won't be propagated to other occurrences of the periodic event." - event_successfully_updated: "Event successfully updated" + event_successfully_updated: "Event successfully updated." events_updated: "The event, and {COUNT, plural, =1{one other} other{{COUNT} others}}, have been updated" unable_to_update_the_event: "Unable to update the event" events_not_updated: "On {TOTAL} events, {COUNT, plural, =1{one was not updated} other{{COUNT} were not deleted}}." @@ -340,7 +340,7 @@ en: #ajouter un code promotionnel coupons_new: add_a_coupon: "Add a coupon" - unable_to_create_the_coupon_check_code_already_used: "Unable to create the coupon. Please check that the code is not already used" + unable_to_create_the_coupon_check_code_already_used: "Unable to create the coupon. Please check that the code is not already used." #mettre à jour un code promotionnel coupons_edit: coupon: "Coupon:" @@ -692,7 +692,7 @@ en: #import results members_import_result: import_results: "Import results" - import_details: "Import #{ID}, of {DATE}, initiated by {USER}" + import_details: "Import # {ID}, of {DATE}, initiated by {USER}" results: "Results" pending: "Pending..." status_create: "Creating a new user" @@ -768,7 +768,7 @@ en: add_a_new_authentication_provider: "Add a new authentication provider" a_local_database_provider_already_exists_unable_to_create_another: "A \"Local Database\" provider already exists. Unable to create another." local_provider_successfully_saved: "Local provider successfully saved." - it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "It is required to set the matching between User.uid and the API to add this provider" + it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "It is required to set the matching between User.uid and the API to add this provider." security_issue_detected: "Security issue detected" beware_the_oauth2_authenticatoin_provider_you_are_about_to_add_isnt_using_HTTPS: "Beware: the OAuth 2 provider you are about to add isn't using HTTPS." this_is_a_serious_security_issue_on_internet_and_should_never_be_used_except_for_testing_purposes: "This is a serious security issue on internet and should never be used except for testing purposes." @@ -778,8 +778,8 @@ en: #edit an authentication provider (SSO) authentication_edit: provider: "Provider :" - it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "It is required to set the matching between User.uid and the API to add this provider" - provider_successfully_updated: "Provider successfully updated" + it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "It is required to set the matching between User.uid and the API to add this provider." + provider_successfully_updated: "Provider successfully updated." an_error_occurred_unable_to_update_the_provider: "An error occurred: unable to update the provider." #statistics tables statistics: @@ -788,7 +788,6 @@ en: age_filter: "Age filter" from_age: "From" #eg. from 8 to 40 years old to_age: "to" #eg. from 8 to 40 years old - _years_old: "years old" start: "Start:" end: "End:" custom_filter: "Custom filter" @@ -801,7 +800,7 @@ en: entries: "Entries:" revenue_: "Revenue:" average_age: "Average age:" - years_old: "Years old" + years_old: "years old" total: "Total" available_hours: "Hours available for booking:" available_tickets: "Tickets available for booking:" @@ -1009,10 +1008,10 @@ en: api_documentation: "API documentation" open_api_clients: "OpenAPI clients" name: "Name" - calls_count: "calls count" + calls_count: "Calls count" token: "Token" created_at: "Creation date" - reset_token: "revoke access" + reset_token: "Revoke access" client_name: "Client's name" confirmation_required: "Confirmation required" do_you_really_want_to_delete_this_open_api_client: "Do you really want to delete this OpenAPI client?" @@ -1053,7 +1052,7 @@ en: content: "Here you can create, modify and delete trainings. It is also the place where you can validate the training courses followed by your members." trainings: title: "Manage trainings" - content: "

When creating a training, you can define a default number of places. However, the number of actual places may be modified for each session.

The training sessions are scheduled from the administrator tab [Calendar].

Another thing: it is possible to associate one or more machines with a training. This makes it a prerequisite for the reservation of these machines.

" + content: "

When creating a training, you can define a default number of places. However, the number of actual places may be modified for each session.

The training sessions are scheduled from the administrator tab « Calendar ».

Another thing: it is possible to associate one or more machines with a training. This makes it a prerequisite for the reservation of these machines.

" filter: title: "Filter" content: "By default, only active courses are displayed here. Display the others by choosing another filter here." diff --git a/config/locales/app.admin.es.yml b/config/locales/app.admin.es.yml index 1bb1d2cd6..b1d146be7 100644 --- a/config/locales/app.admin.es.yml +++ b/config/locales/app.admin.es.yml @@ -788,7 +788,6 @@ es: age_filter: "Filtro de edad" from_age: "Desde" #eg. from 8 to 40 years old to_age: "a" #eg. from 8 to 40 years old - _years_old: "años" start: "Principio:" end: "Final:" custom_filter: "Filtro personalizado" diff --git a/config/locales/app.admin.fr.yml b/config/locales/app.admin.fr.yml index e89e7f922..dd73678f4 100644 --- a/config/locales/app.admin.fr.yml +++ b/config/locales/app.admin.fr.yml @@ -788,7 +788,6 @@ fr: age_filter: "Filtre d'âge" from_age: "De" #eg. from 8 to 40 years old to_age: "à" #eg. from 8 to 40 years old - _years_old: "ans" start: "Début :" end: "Fin :" custom_filter: "Filtre personnalisé" diff --git a/config/locales/app.admin.pt.yml b/config/locales/app.admin.pt.yml index 9cc2d771c..781b0d498 100755 --- a/config/locales/app.admin.pt.yml +++ b/config/locales/app.admin.pt.yml @@ -788,7 +788,6 @@ pt: age_filter: "Filtro de idade" from_age: "Dos" #eg. from 8 to 40 years old to_age: "aos" #eg. from 8 to 40 years old - _years_old: "anos de idade" start: "Início:" end: "Fim:" custom_filter: "Filtro customizado" @@ -801,7 +800,7 @@ pt: entries: "Entradas:" revenue_: "Receita:" average_age: "Idade média:" - years_old: "Anos de idade" + years_old: "anos de idade" total: "Total" available_hours: "Horas disponíveis para reserva:" available_tickets: "Vagas disponíveis para reserva:" diff --git a/config/locales/app.logged.en.yml b/config/locales/app.logged.en.yml index f2d16dfd0..8348486bb 100644 --- a/config/locales/app.logged.en.yml +++ b/config/locales/app.logged.en.yml @@ -45,7 +45,7 @@ en: empty: '' #dashboard: edit my profile settings: - last_activity_on_: "Last activity on" + last_activity_on_: "Last activity on {DATE}" i_want_to_change_group: "I want to change group!" your_subscription_expires_on_: "Your subscription expires on" no_subscriptions: "No subscriptions" diff --git a/config/locales/app.logged.es.yml b/config/locales/app.logged.es.yml index 252a9d008..b3d8d244a 100644 --- a/config/locales/app.logged.es.yml +++ b/config/locales/app.logged.es.yml @@ -45,7 +45,7 @@ es: empty: '' #dashboard: edit my profile settings: - last_activity_on_: "Última vez activo" + last_activity_on_: "Última vez activo {DATE}" i_want_to_change_group: "Quiero cambiar de grupo" your_subscription_expires_on_: "su suscripción acaba el" no_subscriptions: "Sin suscripciones" diff --git a/config/locales/app.logged.pt.yml b/config/locales/app.logged.pt.yml index bd16258a6..b62c7c050 100755 --- a/config/locales/app.logged.pt.yml +++ b/config/locales/app.logged.pt.yml @@ -45,7 +45,7 @@ pt: empty: '' #dashboard: edit my profile settings: - last_activity_on_: "Última atividade em" + last_activity_on_: "Última atividade em {DATE}" i_want_to_change_group: "Eu quero trocar de grupo!" your_subscription_expires_on_: "Sua inscrição expira em" no_subscriptions: "Sem inscrições" diff --git a/config/locales/app.public.en.yml b/config/locales/app.public.en.yml index 9dbd7eb7e..e0d3c9fbd 100644 --- a/config/locales/app.public.en.yml +++ b/config/locales/app.public.en.yml @@ -102,7 +102,7 @@ en: connection: "Connection" password_forgotten: "Forgotten password?" confirm_my_account: "Confirm my e-mail" - not_registered_to_the_fablab: "Not registered to the Fablab?" + not_registered_to_the_fablab: "Not registered to the FabLab?" create_an_account: "Create an account" wrong_email_or_password: "Wrong e-mail or password." caps_lock_is_on: "Caps lock key is on." @@ -148,9 +148,10 @@ en: from_time_to_time: "From {START} to {END}" free_entry: "Free entry" free_admission: "Free admission" - full_price: "Full price" + full_price: "Full price: " event_full: "Event full" - still_available: "Available place(s)" + still_available: "Available place(s): " + all_day: "All day" #projects gallery projects_list: the_fablab_projects: "The Fab Lab projects" @@ -258,7 +259,7 @@ en: subscription_confirmation: "Subscription confirmation" here_is_the_NAME_subscription_summary: "Here is the {NAME}'s subscription summary:" confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" #(contexte : validate a payment of $20,00) - online_payment_disabled: "Payment by credit card is not available. Please contact the Fablab's reception directly." + online_payment_disabled: "Payment by credit card is not available. Please contact the FabLab's reception directly." #Fablab's events list events_list: the_fablab_s_events: "The Fablab's events" @@ -301,7 +302,7 @@ en: book: "Book" confirm_and_pay: "Confirm and pay" confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" #(contexte : validate a payment of $20,00) - online_payment_disabled: "Payment by credit card is not available. Please contact the Fablab's reception directly." + online_payment_disabled: "Payment by credit card is not available. Please contact the FabLab's reception directly." please_select_a_member_first: "Please select a member first" change_the_reservation: "Change the reservation" you_can_shift_this_reservation_on_the_following_slots: "You can shift this reservation on the following slots:" @@ -311,15 +312,15 @@ en: delete_this_event: "Only this event" delete_this_and_next: "This event and the following" delete_all: "All events" - event_successfully_deleted: "Event successfully deleted" + event_successfully_deleted: "Event successfully deleted." events_deleted: "The event, and {COUNT, plural, =1{one other} other{{COUNT} others}}, have been deleted" unable_to_delete_the_event: "Unable to delete the event, it may be booked by a member" events_not_deleted: "On {TOTAL} events, {COUNT, plural, =1{one was not deleted} other{{COUNT} were not deleted}}. Some reservations may exists on {COUNT, plural, =1{it} other{them}}." cancel_the_reservation: "Cancel the reservation" do_you_really_want_to_cancel_this_reservation_this_apply_to_all_booked_tickets: "Do you really want to cancel this reservation? This apply to ALL booked tickets." - reservation_was_successfully_cancelled: "Reservation was successfully cancelled" + reservation_was_successfully_cancelled: "Reservation was successfully cancelled." cancellation_failed: "Cancellation failed." - event_is_over: "The event is over" + event_is_over: "The event is over." thanks_for_coming: "Thanks for coming!" view_event_list: "View events to come" share_on_facebook: "Share on Facebook" @@ -381,7 +382,7 @@ en: content: "Visualize at a glance everything that is scheduled for the next coming weeks (events, training, machines available, etc.)." projects: title: "Projects" - content: "

Document and share all your creations with the community.

If you use OpenLab, you will also be able to consult the projects of the entire Fab-Manager network. Contact-us to get your access, it's free!

" + content: "

Document and share all your creations with the community.

If you use OpenLab, you will also be able to consult the projects of the entire Fab-manager network. Contact-us to get your access, it's free!

" plans: title: "Subscriptions" content: "Subscriptions provide a way to segment your prices and provide benefits to regular users." @@ -399,13 +400,13 @@ en: content: "

Find your personal information here as well as all your activity on Fab-manager.

This space is also available for all your members.

" news: title: "News" - content: "

This space allows you to display the latest news from your structure.

You can easily change its content from [Customization]> [Home page].

" + content: "

This space allows you to display the latest news from your structure.

You can easily change its content from « Customization », « Home page».

" last_projects: title: "Last projects" content: "

This carousel scrolls through the latest projects documented by your members.

" last_tweet: title: "Last tweet" - content: "

Le dernier tweet de votre flux Twitter peut s'afficher ici.

Configure it from [Customization]> [Home page].

" + content: "

Le dernier tweet de votre flux Twitter peut s'afficher ici.

Configure it from « Customization », « Home page».

" last_members: title: "Last members" content: "The last registered members who have validated their address and agreed to be contacted will be shown here." diff --git a/config/locales/app.public.es.yml b/config/locales/app.public.es.yml index d18bd3860..b89d12222 100644 --- a/config/locales/app.public.es.yml +++ b/config/locales/app.public.es.yml @@ -151,6 +151,7 @@ es: full_price: "Precio final" event_full: "Evento lleno" still_available: "Available place(s)" + all_day: "Todo el día" #projects gallery projects_list: the_fablab_projects: "Los proyectos del FabLab" diff --git a/config/locales/app.public.fr.yml b/config/locales/app.public.fr.yml index 970e6fcf3..61cbe388c 100644 --- a/config/locales/app.public.fr.yml +++ b/config/locales/app.public.fr.yml @@ -102,7 +102,7 @@ fr: connection: "Connexion" password_forgotten: "Mot de passe oublié ?" confirm_my_account: "Confirmer mon adresse de courriel" - not_registered_to_the_fablab: "Vous n'êtes pas inscrit au FAB LAB ?" + not_registered_to_the_fablab: "Vous n'êtes pas inscrit au FabLab ?" create_an_account: "Créer un compte" wrong_email_or_password: "Adresse courriel ou mot de passe incorrect." caps_lock_is_on: "La touche de verrouillage des majuscules est activée." @@ -143,14 +143,15 @@ fr: #next events summary on the home page 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}" - on_the_date: "le {DATE}" - from_time_to_time: "de {START} à {END}" + from_date_to_date: "Du {START} au {END}" + on_the_date: "Le {DATE}" + from_time_to_time: "De {START} à {END}" free_entry: "Accès libre" free_admission: "Entrée gratuite" full_price: "Plein tarif : " event_full: "Événement complet" still_available: "Place(s) disponible(s) :" + all_day: "Toute la journée" #projects gallery projects_list: the_fablab_projects: "Les projets du FabLab" diff --git a/config/locales/app.public.pt.yml b/config/locales/app.public.pt.yml index 85c146a2c..bc16d1f4f 100755 --- a/config/locales/app.public.pt.yml +++ b/config/locales/app.public.pt.yml @@ -151,6 +151,7 @@ pt: full_price: "Valor inteira" event_full: "Evento lotado" still_available: "Locais disponíveis" + all_day: "O dia inteiro" #projects gallery projects_list: the_fablab_projects: "Projetos do Fab Lab" diff --git a/config/locales/app.shared.en.yml b/config/locales/app.shared.en.yml index 3fd4ec76e..05358f586 100644 --- a/config/locales/app.shared.en.yml +++ b/config/locales/app.shared.en.yml @@ -214,7 +214,7 @@ en: user_profile: "User profile" warning_incomplete_user_profile_probably_imported_from_sso: "Warning: This user's profile is incomplete. As \"single sign-on\" (SSO) authentication is currently enabled, it may probably be an imported but non merged account. Do not modify it unless you know what your doing." group: "Group" - group_is_required: "Group is required" + group_is_required: "Group is required." trainings: "Trainings" tags: "Tags" #partial form to edit/create an authentication provider (SSO) @@ -308,10 +308,10 @@ en: to_credit: 'Credit' wallet_credit_successfully: "Wallet of user is credited successfully." a_problem_occurred_for_wallet_credit: "A problem is occurred while taking the credit of wallet" - amount_is_required: "The amount is required" + amount_is_required: "The amount is required." amount_minimum_1: "The amount minimum is 1" - amount_confirm_is_required: "The amount confirmation is required" - amount_confirm_does_not_match: "The amount confirmation does not match" + amount_confirm_is_required: "The amount confirmation is required." + amount_confirm_does_not_match: "The amount confirmation does not match." you_have_amount_in_wallet: "You have {amount} {currency} in your wallet" client_have_amount_in_wallet: "Client has {amount} {currency} in wallet" wallet_pay_reservation: "You can pay direct your reservation" @@ -415,7 +415,7 @@ en: confirm_payment_of_html: "{ROLE, select, admin{Payment on site} other{Pay}}: {AMOUNT}" #eg. confirm my payment of $20.00 a_problem_occurred_during_the_payment_process_please_try_again_later: "A problem occurred during the payment process. Please try again later." none: "None" - online_payment_disabled: "Online payment is not available. Please contact the Fablab reception directly." + online_payment_disabled: "Online payment is not available. Please contact the FabLab's reception directly." slot_restrict_plans: "This slot is restricted for the plans below:" slot_restrict_subscriptions_must_select_plan: "The slot is restricted for the subscribers. Please select a plan first." slot_restrict_plans_of_others_groups: "The slot is restricted for the subscribers of others groups." @@ -435,4 +435,4 @@ en: title: "Help" what_to_do: "What do you want to do?" tour: "Start the feature tour" - guide: "Open the user's manual" \ No newline at end of file + guide: "Open the user's manual" From 4e272dfbc496fc58493a972a997b77df55d9ade5 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:08:41 +0100 Subject: [PATCH 096/136] New translations app.shared.en.yml (French) --- config/locales/app.shared.fr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/app.shared.fr.yml b/config/locales/app.shared.fr.yml index c5c73f881..c3e258e77 100644 --- a/config/locales/app.shared.fr.yml +++ b/config/locales/app.shared.fr.yml @@ -416,8 +416,8 @@ fr: a_problem_occurred_during_the_payment_process_please_try_again_later: "Il y a eu un problème lors de la procédure de paiement. Veuillez réessayer plus tard." none: "Aucune" online_payment_disabled: "Le payment par carte bancaire n'est pas disponible. Merci de contacter directement l'accueil du Fablab." - slot_restrict_plans: "Ce créneau est restreint pour les formules d'abonnement ci-desous:" - slot_restrict_subscriptions_must_select_plan: "Le créneau est restreint pour les abonnés. Veuillez tout d'abord sélectionner une formule d'abonnement" + slot_restrict_plans: "Ce créneau est restreint pour les formules d'abonnement ci-dessous:" + slot_restrict_subscriptions_must_select_plan: "Le créneau est restreint pour les abonnés. Veuillez tout d'abord sélectionner une formule d'abonnement." slot_restrict_plans_of_others_groups: "Ce créneau est restreint pour les abonnés d'autres groupes." selected_plan_dont_match_slot: "L'abonnement sélectionné ne correspondent pas ce créneau" user_plan_dont_match_slot: "L'abonnement du membre ne correspondent pas ce créneau" From 79857c2aae7ff4d47e9803117a5d55865a492940 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:08:43 +0100 Subject: [PATCH 097/136] New translations app.public.en.yml (French) --- config/locales/app.public.fr.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/locales/app.public.fr.yml b/config/locales/app.public.fr.yml index 970e6fcf3..04ae1591c 100644 --- a/config/locales/app.public.fr.yml +++ b/config/locales/app.public.fr.yml @@ -156,8 +156,8 @@ fr: the_fablab_projects: "Les projets du FabLab" add_a_project: "Ajouter un projet" search_over_the_whole_network: "Chercher sur tout le réseau Fab-manager" - tooltip_openlab_projects_switch: "La recherche sur tout le réseau vous permet de rechercher parmis les projets de tous les Fab-managers utilisant cette fonctionnalité !" - openlab_search_not_available_at_the_moment: "La recherche sur tout le réseau n'est pas disponible pour le moment. Vous pouvez cependant effectuer une recherche parmis les projets de cette plateforme." + tooltip_openlab_projects_switch: "La recherche sur tout le réseau vous permet de rechercher parmi les projets de tous les Fab-managers utilisant cette fonctionnalité !" + openlab_search_not_available_at_the_moment: "La recherche sur tout le réseau n'est pas disponible pour le moment. Vous pouvez cependant effectuer une recherche parmi les projets de cette plateforme." project_search_result_is_empty: "Il n'y a pas de projets correspondant à vos critères de recherche." reset_all_filters: "Réinitialiser tous les filtres" search: "Rechercher" @@ -178,7 +178,7 @@ fr: share_on_facebook: "Partager sur Facebook" share_on_twitter: "Partager sur Twitter" deleted_user: "Utilisateur supprimé" - posted_on_: "posté le" + posted_on_: "Posté le" CAD_file_to_download: "{COUNT, plural, =0{Aucun fichier CAO} =1{Fichier CAO à télécharger} other{Fichiers CAO à télécharger}}" machines_and_materials: "Machines et matériaux" collaborators: "Les collaborateurs" @@ -288,7 +288,7 @@ fr: to_time: "à" #eg. from 18:00 to 21:00 full_price_: "Plein tarif :" tickets_still_availables: "Places encore disponibles :" - sold_out: "Événement complet" + sold_out: "Événement complet." free_entry: "Accès libre" cancelled: "Annulé" ticket: "{NUMBER, plural, =0{place} one{place} other{places}}" From 9e7822f34a42b156ad5c5e6cc5e02e2d56cb6608 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:26:53 +0100 Subject: [PATCH 098/136] Improved contextual help with a modal dialog --- CHANGELOG.md | 1 + .../controllers/admin/calendar.js.erb | 21 +--------- .../controllers/admin/events.js.erb | 19 --------- .../controllers/admin/invoices.js.erb | 19 --------- .../controllers/admin/members.js.erb | 17 -------- .../controllers/admin/open_api_clients.js | 21 +--------- .../controllers/admin/pricing.js.erb | 19 --------- .../controllers/admin/project_elements.js | 39 +++++-------------- .../controllers/admin/settings.js.erb | 17 -------- .../controllers/admin/statistics.js.erb | 18 --------- .../controllers/admin/trainings.js.erb | 20 +--------- .../javascripts/controllers/machines.js.erb | 21 +--------- .../javascripts/controllers/spaces.js.erb | 21 +--------- app/assets/javascripts/services/help.js.erb | 19 +++++---- 14 files changed, 27 insertions(+), 245 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e1934b758..11da68a94 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # Changelog Fab-manager - Secure the session cookie +- Improved contextual help with a modal dialog - Updated translations - Refactored translations to help merging Crowdin PR diff --git a/app/assets/javascripts/controllers/admin/calendar.js.erb b/app/assets/javascripts/controllers/admin/calendar.js.erb index 0a6fe92b5..8fbb2ec14 100644 --- a/app/assets/javascripts/controllers/admin/calendar.js.erb +++ b/app/assets/javascripts/controllers/admin/calendar.js.erb @@ -350,8 +350,6 @@ Application.Controllers.controller('AdminCalendarController', ['$scope', '$state if (Fablab.featureTourDisplay !== 'manual' && $scope.currentUser.profile.tours.indexOf('calendar') < 0) { uitour.start(); } - // start this tour when an user press F1 - this is contextual help - window.addEventListener('keydown', handleF1); } /* PRIVATE SCOPE */ @@ -359,12 +357,7 @@ Application.Controllers.controller('AdminCalendarController', ['$scope', '$state /** * Kind of constructor: these actions will be realized first when the controller is loaded */ - const initialize = function () { - // listen the $destroy event of the controller to remove the F1 key binding - $scope.$on('$destroy', function () { - window.removeEventListener('keydown', handleF1); - }); - }; + const initialize = function () {}; /** * Return an enumerable meaninful string for the gender of the provider user @@ -524,18 +517,6 @@ Application.Controllers.controller('AdminCalendarController', ['$scope', '$state $scope.availabilityDom = null; }; - /** - * Callback used to trigger the feature tour when the user press the F1 key. - * @param e {KeyboardEvent} - */ - const handleF1 = function (e) { - if (e.key === 'F1') { - e.preventDefault(); - const tour = uiTourService.getTourByName('calendar'); - if (tour) { tour.start(); } - } - }; - // !!! MUST BE CALLED AT THE END of the controller return initialize(); } diff --git a/app/assets/javascripts/controllers/admin/events.js.erb b/app/assets/javascripts/controllers/admin/events.js.erb index 425e7af6d..1a1efbd6f 100644 --- a/app/assets/javascripts/controllers/admin/events.js.erb +++ b/app/assets/javascripts/controllers/admin/events.js.erb @@ -466,8 +466,6 @@ Application.Controllers.controller('AdminEventsController', ['$scope', '$state', if (Fablab.featureTourDisplay !== 'manual' && $scope.currentUser.profile.tours.indexOf('events') < 0) { uitour.start(); } - // start this tour when an user press F1 - this is contextual help - window.addEventListener('keydown', handleF1); } /* PRIVATE SCOPE */ @@ -477,23 +475,6 @@ Application.Controllers.controller('AdminEventsController', ['$scope', '$state', */ const initialize = function () { paginationCheck(eventsPromise, $scope.events); - - // listen the $destroy event of the controller to remove the F1 key binding - $scope.$on('$destroy', function () { - window.removeEventListener('keydown', handleF1); - }); - }; - - /** - * Callback used to trigger the feature tour when the user press the F1 key. - * @param e {KeyboardEvent} - */ - const handleF1 = function (e) { - if (e.key === 'F1') { - e.preventDefault(); - const tour = uiTourService.getTourByName('events'); - if (tour) { tour.start(); } - } }; /** diff --git a/app/assets/javascripts/controllers/admin/invoices.js.erb b/app/assets/javascripts/controllers/admin/invoices.js.erb index 9c7a72356..27a4298e1 100644 --- a/app/assets/javascripts/controllers/admin/invoices.js.erb +++ b/app/assets/javascripts/controllers/admin/invoices.js.erb @@ -675,8 +675,6 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I if (Fablab.featureTourDisplay !== 'manual' && $scope.currentUser.profile.tours.indexOf('invoices') < 0) { uitour.start(); } - // start this tour when an user press F1 - this is contextual help - window.addEventListener('keydown', handleF1); } /* PRIVATE SCOPE */ @@ -718,11 +716,6 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I ); } }); - - // listen the $destroy event of the controller to remove the F1 key binding - $scope.$on('$destroy', function () { - window.removeEventListener('keydown', handleF1); - }); }; /** @@ -790,18 +783,6 @@ Application.Controllers.controller('InvoicesController', ['$scope', '$state', 'I }); }; - /** - * Callback used to trigger the feature tour when the user press the F1 key. - * @param e {KeyboardEvent} - */ - const handleF1 = function (e) { - if (e.key === 'F1') { - e.preventDefault(); - const tour = uiTourService.getTourByName('invoices'); - if (tour) { tour.start(); } - } - }; - // !!! MUST BE CALLED AT THE END of the controller return initialize(); } diff --git a/app/assets/javascripts/controllers/admin/members.js.erb b/app/assets/javascripts/controllers/admin/members.js.erb index d1bfa3fb8..e392925d2 100644 --- a/app/assets/javascripts/controllers/admin/members.js.erb +++ b/app/assets/javascripts/controllers/admin/members.js.erb @@ -431,8 +431,6 @@ Application.Controllers.controller('AdminMembersController', ['$scope', '$sce', if (Fablab.featureTourDisplay !== 'manual' && $scope.currentUser.profile.tours.indexOf('members') < 0) { uitour.start(); } - // start this tour when an user press F1 - this is contextual help - window.addEventListener('keydown', handleF1); } /* PRIVATE SCOPE */ @@ -444,9 +442,6 @@ Application.Controllers.controller('AdminMembersController', ['$scope', '$sce', if (!membersPromise[0] || (membersPromise[0].maxMembers <= $scope.members.length)) { return $scope.member.noMore = true; } - $scope.$on('$destroy', function () { - window.removeEventListener('keydown', handleF1); - }); }; /** @@ -499,18 +494,6 @@ Application.Controllers.controller('AdminMembersController', ['$scope', '$sce', }); }; - /** - * Callback used to trigger the feature tour when the user press the F1 key. - * @param e {KeyboardEvent} - */ - const handleF1 = function (e) { - if (e.key === 'F1') { - e.preventDefault(); - const tour = uiTourService.getTourByName('members'); - if (tour) { tour.start(); } - } - }; - // !!! MUST BE CALLED AT THE END of the controller return initialize(); } diff --git a/app/assets/javascripts/controllers/admin/open_api_clients.js b/app/assets/javascripts/controllers/admin/open_api_clients.js index d30ba1a8e..0b71944dc 100644 --- a/app/assets/javascripts/controllers/admin/open_api_clients.js +++ b/app/assets/javascripts/controllers/admin/open_api_clients.js @@ -137,8 +137,6 @@ Application.Controllers.controller('OpenAPIClientsController', ['$scope', 'clien if (Fablab.featureTourDisplay !== 'manual' && $scope.currentUser.profile.tours.indexOf('open-api') < 0) { uitour.start(); } - // start this tour when an user press F1 - this is contextual help - window.addEventListener('keydown', handleF1); }; /* PRIVATE SCOPE */ @@ -146,24 +144,7 @@ Application.Controllers.controller('OpenAPIClientsController', ['$scope', 'clien /** * Kind of constructor: these actions will be realized first when the controller is loaded */ - const initialize = function () { - // listen the $destroy event of the controller to remove the F1 key binding - $scope.$on('$destroy', function () { - window.removeEventListener('keydown', handleF1); - }); - }; - - /** - * Callback used to trigger the feature tour when the user press the F1 key. - * @param e {KeyboardEvent} - */ - const handleF1 = function (e) { - if (e.key === 'F1') { - e.preventDefault(); - const tour = uiTourService.getTourByName('open-api'); - if (tour) { tour.start(); } - } - }; + const initialize = function () {}; // !!! MUST BE CALLED AT THE END of the controller return initialize(); diff --git a/app/assets/javascripts/controllers/admin/pricing.js.erb b/app/assets/javascripts/controllers/admin/pricing.js.erb index 2e8eae011..96239941e 100644 --- a/app/assets/javascripts/controllers/admin/pricing.js.erb +++ b/app/assets/javascripts/controllers/admin/pricing.js.erb @@ -714,8 +714,6 @@ Application.Controllers.controller('EditPricingController', ['$scope', '$state', if (Fablab.featureTourDisplay !== 'manual' && $scope.currentUser.profile.tours.indexOf('pricing') < 0) { uitour.start(); } - // start this tour when an user press F1 - this is contextual help - window.addEventListener('keydown', handleF1); } /* PRIVATE SCOPE */ @@ -726,11 +724,6 @@ Application.Controllers.controller('EditPricingController', ['$scope', '$state', const initialize = function () { $scope.trainingCreditsGroups = groupCreditsByPlan($scope.trainingCredits); - // listen the $destroy event of the controller to remove the F1 key binding - $scope.$on('$destroy', function () { - window.removeEventListener('keydown', handleF1); - }); - // adds empty array for plan which hasn't any credits yet return (function () { const result = []; @@ -745,18 +738,6 @@ Application.Controllers.controller('EditPricingController', ['$scope', '$state', })(); }; - /** - * Callback used to trigger the feature tour when the user press the F1 key. - * @param e {KeyboardEvent} - */ - const handleF1 = function (e) { - if (e.key === 'F1') { - e.preventDefault(); - const tour = uiTourService.getTourByName('pricing'); - if (tour) { tour.start(); } - } - }; - /** * Retrieve an item index by its ID from the given array of objects * @param items {Array<{id:number}>} diff --git a/app/assets/javascripts/controllers/admin/project_elements.js b/app/assets/javascripts/controllers/admin/project_elements.js index 557404615..3ab047d1d 100644 --- a/app/assets/javascripts/controllers/admin/project_elements.js +++ b/app/assets/javascripts/controllers/admin/project_elements.js @@ -26,7 +26,7 @@ Application.Controllers.controller('ProjectElementsController', ['$scope', '$sta /** * Saves a new component / Update an existing material to the server (form validation callback) * @param data {Object} component name - * @param [data] {number} component id, in case of update + * @param [id] {number} component id, in case of update */ $scope.saveComponent = function (data, id) { if (id != null) { @@ -49,9 +49,8 @@ Application.Controllers.controller('ProjectElementsController', ['$scope', '$sta * Creates a new empty entry in the $scope.components array */ $scope.addComponent = function () { - $scope.inserted = - { name: '' }; - return $scope.components.push($scope.inserted); + $scope.inserted = { name: '' }; + $scope.components.push($scope.inserted); }; /** @@ -93,9 +92,8 @@ Application.Controllers.controller('ProjectElementsController', ['$scope', '$sta * Creates a new empty entry in the $scope.themes array */ $scope.addTheme = function () { - $scope.inserted = - { name: '' }; - return $scope.themes.push($scope.inserted); + $scope.inserted = { name: '' }; + $scope.themes.push($scope.inserted); }; /** @@ -105,16 +103,16 @@ Application.Controllers.controller('ProjectElementsController', ['$scope', '$sta */ $scope.cancelTheme = function (rowform, index) { if ($scope.themes[index].id != null) { - return rowform.$cancel(); + rowform.$cancel(); } else { - return $scope.themes.splice(index, 1); + $scope.themes.splice(index, 1); } }; /** * Saves a new licence / Update an existing licence to the server (form validation callback) * @param data {Object} licence name and description - * @param [data] {number} licence id, in case of update + * @param [id] {number} licence id, in case of update */ $scope.saveLicence = function (data, id) { if (id != null) { @@ -203,8 +201,6 @@ Application.Controllers.controller('ProjectElementsController', ['$scope', '$sta if (Fablab.featureTourDisplay !== 'manual' && $scope.currentUser.profile.tours.indexOf('project-elements') < 0) { uitour.start(); } - // start this tour when an user press F1 - this is contextual help - window.addEventListener('keydown', handleF1); }; /* PRIVATE SCOPE */ @@ -212,24 +208,7 @@ Application.Controllers.controller('ProjectElementsController', ['$scope', '$sta /** * Kind of constructor: these actions will be realized first when the controller is loaded */ - const initialize = function () { - // listen the $destroy event of the controller to remove the F1 key binding - $scope.$on('$destroy', function () { - window.removeEventListener('keydown', handleF1); - }); - }; - - /** - * Callback used to trigger the feature tour when the user press the F1 key. - * @param e {KeyboardEvent} - */ - const handleF1 = function (e) { - if (e.key === 'F1') { - e.preventDefault(); - const tour = uiTourService.getTourByName('project-elements'); - if (tour) { tour.start(); } - } - }; + const initialize = function () {}; // !!! MUST BE CALLED AT THE END of the controller return initialize(); diff --git a/app/assets/javascripts/controllers/admin/settings.js.erb b/app/assets/javascripts/controllers/admin/settings.js.erb index d7e5fc337..7f4947fca 100644 --- a/app/assets/javascripts/controllers/admin/settings.js.erb +++ b/app/assets/javascripts/controllers/admin/settings.js.erb @@ -467,8 +467,6 @@ Application.Controllers.controller('SettingsController', ['$scope', '$rootScope' if (Fablab.featureTourDisplay !== 'manual' && $scope.currentUser.profile.tours.indexOf('settings') < 0) { uitour.start(); } - // start this tour when an user press F1 - this is contextual help - window.addEventListener('keydown', handleF1); } /* PRIVATE SCOPE */ @@ -521,23 +519,8 @@ Application.Controllers.controller('SettingsController', ['$scope', '$rootScope' $scope.$watch('advancedSettings.open', function (newValue) { if (newValue) $scope.codeMirrorEditor.refresh(); }) - // listen the $destroy event of the controller to remove the F1 key binding - $scope.$on('$destroy', function () { - window.removeEventListener('keydown', handleF1); - }); }; - /** - * Callback used to trigger the feature tour when the user press the F1 key. - * @param e {KeyboardEvent} - */ - const handleF1 = function (e) { - if (e.key === 'F1') { - e.preventDefault(); - const tour = uiTourService.getTourByName('settings'); - if (tour) { tour.start(); } - } - }; // init the controller (call at the end !) return initialize(); } diff --git a/app/assets/javascripts/controllers/admin/statistics.js.erb b/app/assets/javascripts/controllers/admin/statistics.js.erb index 8f6e42491..85e650247 100644 --- a/app/assets/javascripts/controllers/admin/statistics.js.erb +++ b/app/assets/javascripts/controllers/admin/statistics.js.erb @@ -391,8 +391,6 @@ Application.Controllers.controller('StatisticsController', ['$scope', '$state', if (Fablab.featureTourDisplay !== 'manual' && $scope.currentUser.profile.tours.indexOf('statistics') < 0) { uitour.start(); } - // start this tour when an user press F1 - this is contextual help - window.addEventListener('keydown', handleF1); } /* PRIVATE SCOPE */ @@ -408,22 +406,6 @@ Application.Controllers.controller('StatisticsController', ['$scope', '$state', return $scope.preventRefresh = true; } }); - // listen the $destroy event of the controller to remove the F1 key binding - $scope.$on('$destroy', function () { - window.removeEventListener('keydown', handleF1); - }); - }; - - /** - * Callback used to trigger the feature tour when the user press the F1 key. - * @param e {KeyboardEvent} - */ - const handleF1 = function (e) { - if (e.key === 'F1') { - e.preventDefault(); - const tour = uiTourService.getTourByName('statistics'); - if (tour) { tour.start(); } - } }; /** diff --git a/app/assets/javascripts/controllers/admin/trainings.js.erb b/app/assets/javascripts/controllers/admin/trainings.js.erb index 1710b5806..b0d90551e 100644 --- a/app/assets/javascripts/controllers/admin/trainings.js.erb +++ b/app/assets/javascripts/controllers/admin/trainings.js.erb @@ -401,8 +401,6 @@ Application.Controllers.controller('TrainingsAdminController', ['$scope', '$stat if (Fablab.featureTourDisplay !== 'manual' && $scope.currentUser.profile.tours.indexOf('trainings') < 0) { uitour.start(); } - // start this tour when an user press F1 - this is contextual help - window.addEventListener('keydown', handleF1); } @@ -411,24 +409,8 @@ Application.Controllers.controller('TrainingsAdminController', ['$scope', '$stat /** * Kind of constructor: these actions will be realized first when the controller is loaded */ - const initialize = function () { - // listen the $destroy event of the controller to remove the F1 key binding - $scope.$on('$destroy', function () { - window.removeEventListener('keydown', handleF1); - }); - }; + const initialize = function () {}; - /** - * Callback used to trigger the feature tour when the user press the F1 key. - * @param e {KeyboardEvent} - */ - const handleF1 = function (e) { - if (e.key === 'F1') { - e.preventDefault(); - const tour = uiTourService.getTourByName('trainings'); - if (tour) { tour.start(); } - } - }; /** * Group the trainings availabilities by trainings and by dates and return the resulting tree diff --git a/app/assets/javascripts/controllers/machines.js.erb b/app/assets/javascripts/controllers/machines.js.erb index f21f106ce..434bee02e 100644 --- a/app/assets/javascripts/controllers/machines.js.erb +++ b/app/assets/javascripts/controllers/machines.js.erb @@ -262,8 +262,6 @@ Application.Controllers.controller('MachinesController', ['$scope', '$state', '_ if (Fablab.featureTourDisplay !== 'manual' && $scope.currentUser.profile.tours.indexOf('machines') < 0) { uitour.start(); } - // start this tour when an user press F1 - this is contextual help - window.addEventListener('keydown', handleF1); } } @@ -272,24 +270,7 @@ Application.Controllers.controller('MachinesController', ['$scope', '$state', '_ /** * Kind of constructor: these actions will be realized first when the controller is loaded */ - const initialize = function () { - // listen the $destroy event of the controller to remove the F1 key binding - $scope.$on('$destroy', function () { - window.removeEventListener('keydown', handleF1); - }); - } - - /** - * Callback used to trigger the feature tour when the user press the F1 key. - * @param e {KeyboardEvent} - */ - const handleF1 = function (e) { - if (e.key === 'F1') { - e.preventDefault(); - const tour = uiTourService.getTourByName('machines'); - if (tour) { tour.start(); } - } - }; + const initialize = function () {} // !!! MUST BE CALLED AT THE END of the controller return initialize(); diff --git a/app/assets/javascripts/controllers/spaces.js.erb b/app/assets/javascripts/controllers/spaces.js.erb index bc0fba8ab..fe268ea36 100644 --- a/app/assets/javascripts/controllers/spaces.js.erb +++ b/app/assets/javascripts/controllers/spaces.js.erb @@ -174,8 +174,6 @@ Application.Controllers.controller('SpacesController', ['$scope', '$state', 'spa if (Fablab.featureTourDisplay !== 'manual' && $scope.currentUser.profile.tours.indexOf('spaces') < 0) { uitour.start(); } - // start this tour when an user press F1 - this is contextual help - window.addEventListener('keydown', handleF1); } } @@ -184,24 +182,7 @@ Application.Controllers.controller('SpacesController', ['$scope', '$state', 'spa /** * Kind of constructor: these actions will be realized first when the controller is loaded */ - const initialize = function () { - // listen the $destroy event of the controller to remove the F1 key binding - $scope.$on('$destroy', function () { - window.removeEventListener('keydown', handleF1); - }); - } - - /** - * Callback used to trigger the feature tour when the user press the F1 key. - * @param e {KeyboardEvent} - */ - const handleF1 = function (e) { - if (e.key === 'F1') { - e.preventDefault(); - const tour = uiTourService.getTourByName('spaces'); - if (tour) { tour.start(); } - } - }; + const initialize = function () {} // !!! MUST BE CALLED AT THE END of the controller return initialize(); diff --git a/app/assets/javascripts/services/help.js.erb b/app/assets/javascripts/services/help.js.erb index 983a085f5..344af4bde 100644 --- a/app/assets/javascripts/services/help.js.erb +++ b/app/assets/javascripts/services/help.js.erb @@ -1,6 +1,6 @@ 'use strict'; -Application.Services.factory('Help', ['$uibModal', '$state', function ($uibModal, $state) { +Application.Services.factory('Help', ['$rootScope', '$uibModal', '$state', function ($rootScope, $uibModal, $state) { const TOURS = { 'app.public.home': 'welcome', 'app.public.machines_list': 'machines', @@ -11,31 +11,36 @@ Application.Services.factory('Help', ['$uibModal', '$state', function ($uibModal 'app.admin.invoices': 'invoices', 'app.admin.pricing': 'pricing', 'app.admin.events': 'events', - 'app.admin.project_elements': 'project_elements', + 'app.admin.project_elements': 'project-elements', 'app.admin.statistics': 'statistics', 'app.admin.settings': 'settings', - 'app.admin.open_api_clients': 'open_api' + 'app.admin.open_api_clients': 'open-api' }; return function (e) { + if (!$rootScope.currentUser || $rootScope.currentUser.role !== 'admin') return; + if (e.key === 'F1') { e.preventDefault(); // retrieve the tour name, based on the current location - const tour = TOURS[$state.current.name]; + const tourName = TOURS[$state.current.name]; // if no tour, just open the guide - if (tour === undefined) { + if (tourName === undefined) { return window.open('https://github.com/sleede/fab-manager/raw/master/doc/fr/guide_utilisation_fab_manager_v4.3.pdf', '_blank'); } $uibModal.open({ animation: true, templateUrl: '<%= asset_path "shared/help_modal.html" %>', - controller: ['$scope', '$uibModalInstance', 'uiTourService', function ($scope, $uibModalInstance, uiTourService) { + resolve: { + tourName: function () { return tourName; } + }, + controller: ['$scope', '$uibModalInstance', 'uiTourService', 'tourName', function ($scope, $uibModalInstance, uiTourService, tourName) { // start the tour and hide the modal $scope.onTour = function () { - const tour = uiTourService.getTourByName(tour); + const tour = uiTourService.getTourByName(tourName); if (tour) { tour.start(); } $uibModalInstance.close('tour'); From 1118c194e5c50f5b169d84417df9e205e58ca9a8 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:39:59 +0100 Subject: [PATCH 099/136] New translations app.public.en.yml (Acholi) --- config/locales/app.public.ach.yml | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/config/locales/app.public.ach.yml b/config/locales/app.public.ach.yml index 1bff3055b..2e44d7c96 100644 --- a/config/locales/app.public.ach.yml +++ b/config/locales/app.public.ach.yml @@ -102,7 +102,7 @@ ach: connection: "crwdns8971:0crwdne8971:0" password_forgotten: "crwdns8973:0crwdne8973:0" confirm_my_account: "crwdns19600:0crwdne19600:0" - not_registered_to_the_fablab: "crwdns8975:0crwdne8975:0" + not_registered_to_the_fablab: "crwdns20240:0crwdne20240:0" create_an_account: "crwdns8977:0crwdne8977:0" wrong_email_or_password: "crwdns8979:0crwdne8979:0" caps_lock_is_on: "crwdns8981:0crwdne8981:0" @@ -148,9 +148,10 @@ ach: from_time_to_time: "crwdns9025:0{START}crwdnd9025:0{END}crwdne9025:0" free_entry: "crwdns9027:0crwdne9027:0" free_admission: "crwdns9029:0crwdne9029:0" - full_price: "crwdns9031:0crwdne9031:0" + full_price: "crwdns20242:0crwdne20242:0" event_full: "crwdns9033:0crwdne9033:0" - still_available: "crwdns9035:0crwdne9035:0" + still_available: "crwdns20244:0crwdne20244:0" + all_day: "crwdns20246:0crwdne20246:0" #projects gallery projects_list: the_fablab_projects: "crwdns9037:0crwdne9037:0" @@ -258,7 +259,7 @@ ach: subscription_confirmation: "crwdns9215:0crwdne9215:0" here_is_the_NAME_subscription_summary: "crwdns9217:0{NAME}crwdne9217:0" confirm_payment_of_html: "crwdns9219:0ROLE={ROLE}crwdnd9219:0AMOUNT={AMOUNT}crwdne9219:0" #(contexte : validate a payment of $20,00) - online_payment_disabled: "crwdns9221:0crwdne9221:0" + online_payment_disabled: "crwdns20248:0crwdne20248:0" #Fablab's events list events_list: the_fablab_s_events: "crwdns9223:0crwdne9223:0" @@ -301,7 +302,7 @@ ach: book: "crwdns9291:0crwdne9291:0" confirm_and_pay: "crwdns9293:0crwdne9293:0" confirm_payment_of_html: "crwdns9295:0ROLE={ROLE}crwdnd9295:0AMOUNT={AMOUNT}crwdne9295:0" #(contexte : validate a payment of $20,00) - online_payment_disabled: "crwdns9297:0crwdne9297:0" + online_payment_disabled: "crwdns20250:0crwdne20250:0" please_select_a_member_first: "crwdns9299:0crwdne9299:0" change_the_reservation: "crwdns9301:0crwdne9301:0" you_can_shift_this_reservation_on_the_following_slots: "crwdns9303:0crwdne9303:0" @@ -311,15 +312,15 @@ ach: delete_this_event: "crwdns19632:0crwdne19632:0" delete_this_and_next: "crwdns19634:0crwdne19634:0" delete_all: "crwdns19636:0crwdne19636:0" - event_successfully_deleted: "crwdns9309:0crwdne9309:0" + event_successfully_deleted: "crwdns20252:0crwdne20252:0" events_deleted: "crwdns19638:0COUNT={COUNT}crwdnd19638:0COUNT={COUNT}crwdne19638:0" unable_to_delete_the_event: "crwdns19640:0crwdne19640:0" events_not_deleted: "crwdns19642:0TOTAL={TOTAL}crwdnd19642:0COUNT={COUNT}crwdnd19642:0COUNT={COUNT}crwdnd19642:0COUNT={COUNT}crwdne19642:0" cancel_the_reservation: "crwdns9313:0crwdne9313:0" do_you_really_want_to_cancel_this_reservation_this_apply_to_all_booked_tickets: "crwdns9315:0crwdne9315:0" - reservation_was_successfully_cancelled: "crwdns9317:0crwdne9317:0" + reservation_was_successfully_cancelled: "crwdns20254:0crwdne20254:0" cancellation_failed: "crwdns9319:0crwdne9319:0" - event_is_over: "crwdns9321:0crwdne9321:0" + event_is_over: "crwdns20256:0crwdne20256:0" thanks_for_coming: "crwdns9323:0crwdne9323:0" view_event_list: "crwdns9325:0crwdne9325:0" share_on_facebook: "crwdns9327:0crwdne9327:0" @@ -381,7 +382,7 @@ ach: content: "crwdns19676:0crwdne19676:0" projects: title: "crwdns19678:0crwdne19678:0" - content: "crwdns19680:0crwdne19680:0" + content: "crwdns20258:0crwdne20258:0" plans: title: "crwdns19682:0crwdne19682:0" content: "crwdns19684:0crwdne19684:0" @@ -399,13 +400,13 @@ ach: content: "crwdns19700:0crwdne19700:0" news: title: "crwdns19702:0crwdne19702:0" - content: "crwdns19704:0[Customization]crwdne19704:0" + content: "crwdns20260:0crwdne20260:0" last_projects: title: "crwdns19706:0crwdne19706:0" content: "crwdns19708:0crwdne19708:0" last_tweet: title: "crwdns19710:0crwdne19710:0" - content: "crwdns19712:0[Customization]crwdne19712:0" + content: "crwdns20262:0crwdne20262:0" last_members: title: "crwdns19714:0crwdne19714:0" content: "crwdns19716:0crwdne19716:0" From 436d935766f5d0b0c29d50d52dca9a28645bb4b7 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:40:01 +0100 Subject: [PATCH 100/136] New translations app.logged.en.yml (Acholi) --- config/locales/app.logged.ach.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.ach.yml b/config/locales/app.logged.ach.yml index fb9f80ab7..9b04f2c40 100644 --- a/config/locales/app.logged.ach.yml +++ b/config/locales/app.logged.ach.yml @@ -45,7 +45,7 @@ ach: empty: 'crwdns8577:0crwdne8577:0' #dashboard: edit my profile settings: - last_activity_on_: "crwdns8579:0crwdne8579:0" + last_activity_on_: "crwdns20238:0{DATE}crwdne20238:0" i_want_to_change_group: "crwdns8581:0crwdne8581:0" your_subscription_expires_on_: "crwdns8583:0crwdne8583:0" no_subscriptions: "crwdns8585:0crwdne8585:0" From a16baf7a9d95416e35d3b833acc44b58369824d6 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:40:02 +0100 Subject: [PATCH 101/136] New translations app.admin.en.yml (Acholi) --- config/locales/app.admin.ach.yml | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/config/locales/app.admin.ach.yml b/config/locales/app.admin.ach.yml index 61ca48653..200970f56 100644 --- a/config/locales/app.admin.ach.yml +++ b/config/locales/app.admin.ach.yml @@ -95,7 +95,7 @@ ach: event_in_the_past: "crwdns6845:0crwdne6845:0" edit_event: "crwdns6847:0crwdne6847:0" view_reservations: "crwdns6849:0crwdne6849:0" - legend: "crwdns6851:0crwdne6851:0" + legend: "crwdns20198:0crwdne20198:0" and: "crwdns6853:0crwdne6853:0" external_sync: "crwdns19774:0crwdne19774:0" #import external iCal calendar @@ -240,7 +240,7 @@ ach: edit_this_and_next: "crwdns19790:0crwdne19790:0" edit_all: "crwdns19792:0crwdne19792:0" date_wont_change: "crwdns19794:0crwdne19794:0" - event_successfully_updated: "crwdns19796:0crwdne19796:0" + event_successfully_updated: "crwdns20200:0crwdne20200:0" events_updated: "crwdns19798:0COUNT={COUNT}crwdnd19798:0COUNT={COUNT}crwdne19798:0" unable_to_update_the_event: "crwdns19800:0crwdne19800:0" events_not_updated: "crwdns19802:0TOTAL={TOTAL}crwdnd19802:0COUNT={COUNT}crwdnd19802:0COUNT={COUNT}crwdne19802:0" @@ -340,7 +340,7 @@ ach: #ajouter un code promotionnel coupons_new: add_a_coupon: "crwdns7271:0crwdne7271:0" - unable_to_create_the_coupon_check_code_already_used: "crwdns7273:0crwdne7273:0" + unable_to_create_the_coupon_check_code_already_used: "crwdns20202:0crwdne20202:0" #mettre à jour un code promotionnel coupons_edit: coupon: "crwdns7275:0crwdne7275:0" @@ -692,7 +692,7 @@ ach: #import results members_import_result: import_results: "crwdns7927:0crwdne7927:0" - import_details: "crwdns7929:0#{ID}crwdnd7929:0{DATE}crwdnd7929:0{USER}crwdne7929:0" + import_details: "crwdns20204:0{ID}crwdnd20204:0{DATE}crwdnd20204:0{USER}crwdne20204:0" results: "crwdns7931:0crwdne7931:0" pending: "crwdns7933:0crwdne7933:0" status_create: "crwdns7935:0crwdne7935:0" @@ -768,7 +768,7 @@ ach: add_a_new_authentication_provider: "crwdns8063:0crwdne8063:0" a_local_database_provider_already_exists_unable_to_create_another: "crwdns8065:0crwdne8065:0" local_provider_successfully_saved: "crwdns8067:0crwdne8067:0" - it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "crwdns8069:0crwdne8069:0" + it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "crwdns20206:0crwdne20206:0" security_issue_detected: "crwdns8071:0crwdne8071:0" beware_the_oauth2_authenticatoin_provider_you_are_about_to_add_isnt_using_HTTPS: "crwdns8073:0crwdne8073:0" this_is_a_serious_security_issue_on_internet_and_should_never_be_used_except_for_testing_purposes: "crwdns8075:0crwdne8075:0" @@ -778,8 +778,8 @@ ach: #edit an authentication provider (SSO) authentication_edit: provider: "crwdns8083:0crwdne8083:0" - it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "crwdns8085:0crwdne8085:0" - provider_successfully_updated: "crwdns8087:0crwdne8087:0" + it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "crwdns20208:0crwdne20208:0" + provider_successfully_updated: "crwdns20210:0crwdne20210:0" an_error_occurred_unable_to_update_the_provider: "crwdns8089:0crwdne8089:0" #statistics tables statistics: @@ -800,7 +800,7 @@ ach: entries: "crwdns8121:0crwdne8121:0" revenue_: "crwdns8123:0crwdne8123:0" average_age: "crwdns8125:0crwdne8125:0" - years_old: "crwdns8127:0crwdne8127:0" + years_old: "crwdns20212:0crwdne20212:0" total: "crwdns8129:0crwdne8129:0" available_hours: "crwdns8131:0crwdne8131:0" available_tickets: "crwdns8133:0crwdne8133:0" @@ -1008,10 +1008,10 @@ ach: api_documentation: "crwdns8445:0crwdne8445:0" open_api_clients: "crwdns8447:0crwdne8447:0" name: "crwdns8449:0crwdne8449:0" - calls_count: "crwdns8451:0crwdne8451:0" + calls_count: "crwdns20214:0crwdne20214:0" token: "crwdns8453:0crwdne8453:0" created_at: "crwdns8455:0crwdne8455:0" - reset_token: "crwdns8457:0crwdne8457:0" + reset_token: "crwdns20216:0crwdne20216:0" client_name: "crwdns8459:0crwdne8459:0" confirmation_required: "crwdns8461:0crwdne8461:0" do_you_really_want_to_delete_this_open_api_client: "crwdns8463:0crwdne8463:0" @@ -1041,6 +1041,7 @@ ach: report_will_be_destroyed: "crwdns8499:0crwdne8499:0" report_removed: "crwdns8501:0crwdne8501:0" failed_to_remove: "crwdns8503:0crwdne8503:0" + #feature tour tour: conclusion: title: "crwdns19898:0crwdne19898:0" @@ -1051,7 +1052,7 @@ ach: content: "crwdns19904:0crwdne19904:0" trainings: title: "crwdns19906:0crwdne19906:0" - content: "crwdns19908:0[Calendar]crwdne19908:0" + content: "crwdns20218:0crwdne20218:0" filter: title: "crwdns19910:0crwdne19910:0" content: "crwdns19912:0crwdne19912:0" From f77f8cff039ac502db8786c44de7e924166eccfe Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:40:06 +0100 Subject: [PATCH 102/136] New translations app.shared.en.yml (Spanish) --- config/locales/app.shared.es.yml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/config/locales/app.shared.es.yml b/config/locales/app.shared.es.yml index d3bfee661..44fa3f881 100644 --- a/config/locales/app.shared.es.yml +++ b/config/locales/app.shared.es.yml @@ -214,7 +214,7 @@ es: user_profile: "Profil utilisateur" warning_incomplete_user_profile_probably_imported_from_sso: "Advertencia: Este perfil de usuario está incompleto. Como el método de autenticación SSO está activo, puede que la cuenta sea importada pero no fusionada. No la modifique a no ser que sepa lo que hace." group: "Grupo" - group_is_required: "Se requiere un grupo" + group_is_required: "Group is required." trainings: "Cursos" tags: "Tags" #partial form to edit/create an authentication provider (SSO) @@ -308,10 +308,10 @@ es: to_credit: 'Credito' wallet_credit_successfully: "La cartera del usuario ha sido acreditada con éxito." a_problem_occurred_for_wallet_credit: "Ocurrió un problema mientras se acreditaba la cartera" - amount_is_required: "Se requiere la cantidad" + amount_is_required: "The amount is required." amount_minimum_1: "La cantidad mínima es 1" - amount_confirm_is_required: "Debe confirmarse la cantidad" - amount_confirm_does_not_match: "La confirmación de la cantidad no coincide" + amount_confirm_is_required: "The amount confirmation is required." + amount_confirm_does_not_match: "The amount confirmation does not match." you_have_amount_in_wallet: "Tiene {amount} {currency} en su cartera" client_have_amount_in_wallet: "El cliente tiene {amount} {currency} en su cartera" wallet_pay_reservation: "Puede pagar directamente su reserva" @@ -415,7 +415,7 @@ es: confirm_payment_of_html: "{ROLE, select, admin{Payment on site} other{Pay}}: {AMOUNT}" #eg. confirm my payment of $20.00 a_problem_occurred_during_the_payment_process_please_try_again_later: "A problem occurred during the payment process. Please try again later." none: "Ninguno" - online_payment_disabled: "El pago en línea no está disponible. Póngase en contacto directamente con la recepción de Fablab." + online_payment_disabled: "Online payment is not available. Please contact the FabLab's reception directly." slot_restrict_plans: "This slot is restricted for the plans below:" slot_restrict_subscriptions_must_select_plan: "The slot is restricted for the subscribers. Please select a plan first." slot_restrict_plans_of_others_groups: "The slot is restricted for the subscribers of others groups." @@ -425,7 +425,14 @@ es: slot_at_same_time: "Conflict with others reservations" do_you_really_want_to_book_slot_at_same_time: "Do you really want to book this slot? Other bookings take place at the same time" unable_to_book_slot_because_really_have_reservation_at_same_time: "Unable to book this slot because the following reservation occurs at the same time." + #feature-tour modal tour: previous: "Previous" next: "Next" end: "End the tour" + #help modal + help: + title: "Help" + what_to_do: "What do you want to do?" + tour: "Start the feature tour" + guide: "Open the user's manual" From ec51abbe7f318490800b705301c8b5608ba91433 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:40:08 +0100 Subject: [PATCH 103/136] New translations app.public.en.yml (Spanish) --- config/locales/app.public.es.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/config/locales/app.public.es.yml b/config/locales/app.public.es.yml index b89d12222..1fed4a145 100644 --- a/config/locales/app.public.es.yml +++ b/config/locales/app.public.es.yml @@ -102,7 +102,7 @@ es: connection: "Conexión" password_forgotten: "¿Ha olvidado su contraseña?" confirm_my_account: "Confirmar mi E-mail" - not_registered_to_the_fablab: "¿No está registrado en el fablab todavía?" + not_registered_to_the_fablab: "Not registered to the FabLab?" create_an_account: "Crear una cuenta" wrong_email_or_password: "E-mail o contraseña incorrecta." caps_lock_is_on: "Las mayusculas están activadas." @@ -148,10 +148,10 @@ es: from_time_to_time: "Desde {START} hasta {END}" free_entry: "Entrada gratuita" free_admission: "Admisión gratuita" - full_price: "Precio final" + full_price: "Full price: " event_full: "Evento lleno" - still_available: "Available place(s)" - all_day: "Todo el día" + still_available: "Available place(s): " + all_day: "All day" #projects gallery projects_list: the_fablab_projects: "Los proyectos del FabLab" @@ -259,7 +259,7 @@ es: subscription_confirmation: "Confirmar suscripción" here_is_the_NAME_subscription_summary: "Resumen de la suscrpición de {NAME}:" confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" #(contexte : validate a payment of $20,00) - online_payment_disabled: "Payment by credit card is not available. Please contact the Fablab's reception directly." + online_payment_disabled: "Payment by credit card is not available. Please contact the FabLab's reception directly." #Fablab's events list events_list: the_fablab_s_events: "Los eventos del FabLab" @@ -302,7 +302,7 @@ es: book: "Reservar" confirm_and_pay: "Confirm and pay" confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" #(contexte : validate a payment of $20,00) - online_payment_disabled: "Payment by credit card is not available. Please contact the Fablab's reception directly." + online_payment_disabled: "Payment by credit card is not available. Please contact the FabLab's reception directly." please_select_a_member_first: "Please select a member first" change_the_reservation: "Cambiar la reserva" you_can_shift_this_reservation_on_the_following_slots: "Puede cambiar la reserva en los siguientes campos:" @@ -312,15 +312,15 @@ es: delete_this_event: "Only this event" delete_this_and_next: "This event and the following" delete_all: "All events" - event_successfully_deleted: "Event successfully deleted" + event_successfully_deleted: "Event successfully deleted." events_deleted: "The event, and {COUNT, plural, =1{one other} other{{COUNT} others}}, have been deleted" unable_to_delete_the_event: "Unable to delete the event, it may be booked by a member" events_not_deleted: "On {TOTAL} events, {COUNT, plural, =1{one was not deleted} other{{COUNT} were not deleted}}. Some reservations may exists on {COUNT, plural, =1{it} other{them}}." cancel_the_reservation: "Cancel the reservation" do_you_really_want_to_cancel_this_reservation_this_apply_to_all_booked_tickets: "Do you really want to cancel this reservation? This apply to ALL booked tickets." - reservation_was_successfully_cancelled: "Reservation was successfully cancelled" + reservation_was_successfully_cancelled: "Reservation was successfully cancelled." cancellation_failed: "Cancellation failed." - event_is_over: "The event is over" + event_is_over: "The event is over." thanks_for_coming: "Thanks for coming!" view_event_list: "View events to come" share_on_facebook: "Share on Facebook" @@ -382,7 +382,7 @@ es: content: "Visualize at a glance everything that is scheduled for the next coming weeks (events, training, machines available, etc.)." projects: title: "Projects" - content: "

Document and share all your creations with the community.

If you use OpenLab, you will also be able to consult the projects of the entire Fab-Manager network. Contact-us to get your access, it's free!

" + content: "

Document and share all your creations with the community.

If you use OpenLab, you will also be able to consult the projects of the entire Fab-manager network. Contact-us to get your access, it's free!

" plans: title: "Subscriptions" content: "Subscriptions provide a way to segment your prices and provide benefits to regular users." @@ -400,13 +400,13 @@ es: content: "

Find your personal information here as well as all your activity on Fab-manager.

This space is also available for all your members.

" news: title: "News" - content: "

This space allows you to display the latest news from your structure.

You can easily change its content from [Customization]> [Home page].

" + content: "

This space allows you to display the latest news from your structure.

You can easily change its content from « Customization », « Home page».

" last_projects: title: "Last projects" content: "

This carousel scrolls through the latest projects documented by your members.

" last_tweet: title: "Last tweet" - content: "

Le dernier tweet de votre flux Twitter peut s'afficher ici.

Configure it from [Customization]> [Home page].

" + content: "

Le dernier tweet de votre flux Twitter peut s'afficher ici.

Configure it from « Customization », « Home page».

" last_members: title: "Last members" content: "The last registered members who have validated their address and agreed to be contacted will be shown here." From 5912c7b8c3dec9e5858083fccb66d5cb0fe5f30a Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:40:10 +0100 Subject: [PATCH 104/136] New translations app.logged.en.yml (Spanish) --- config/locales/app.logged.es.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.es.yml b/config/locales/app.logged.es.yml index b3d8d244a..e15a8a066 100644 --- a/config/locales/app.logged.es.yml +++ b/config/locales/app.logged.es.yml @@ -45,7 +45,7 @@ es: empty: '' #dashboard: edit my profile settings: - last_activity_on_: "Última vez activo {DATE}" + last_activity_on_: "Last activity on {DATE}" i_want_to_change_group: "Quiero cambiar de grupo" your_subscription_expires_on_: "su suscripción acaba el" no_subscriptions: "Sin suscripciones" From 51707239eea69737a6e1296ee37f9fa3e6f0c6dc Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:40:13 +0100 Subject: [PATCH 105/136] New translations app.admin.en.yml (Spanish) --- config/locales/app.admin.es.yml | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/config/locales/app.admin.es.yml b/config/locales/app.admin.es.yml index b1d146be7..8310e4613 100644 --- a/config/locales/app.admin.es.yml +++ b/config/locales/app.admin.es.yml @@ -95,7 +95,7 @@ es: event_in_the_past: "Unable to create a slot in the past." edit_event: "Edit the event" view_reservations: "Ver reservas" - legend: "leyenda" + legend: "Legend" and: "y" external_sync: "Calendar synchronization" #import external iCal calendar @@ -240,7 +240,7 @@ es: edit_this_and_next: "This event and the following" edit_all: "All events" date_wont_change: "Warning: you have changed the event date. This modification won't be propagated to other occurrences of the periodic event." - event_successfully_updated: "Event successfully updated" + event_successfully_updated: "Event successfully updated." events_updated: "The event, and {COUNT, plural, =1{one other} other{{COUNT} others}}, have been updated" unable_to_update_the_event: "Unable to update the event" events_not_updated: "On {TOTAL} events, {COUNT, plural, =1{one was not updated} other{{COUNT} were not deleted}}." @@ -340,7 +340,7 @@ es: #ajouter un code promotionnel coupons_new: add_a_coupon: "Añadir un cupón" - unable_to_create_the_coupon_check_code_already_used: "No se puede crear el cupón. Compruebe que el código no esté ya utilizado" + unable_to_create_the_coupon_check_code_already_used: "Unable to create the coupon. Please check that the code is not already used." #mettre à jour un code promotionnel coupons_edit: coupon: "Coupon:" @@ -692,7 +692,7 @@ es: #import results members_import_result: import_results: "Import results" - import_details: "Import #{ID}, of {DATE}, initiated by {USER}" + import_details: "Import # {ID}, of {DATE}, initiated by {USER}" results: "Results" pending: "Pending..." status_create: "Creating a new user" @@ -768,7 +768,7 @@ es: add_a_new_authentication_provider: "Agregar un nuevo proveedor de autenticación" a_local_database_provider_already_exists_unable_to_create_another: "A proveedor de \"Base de datos local\" ya existe. No se puede crear otro." local_provider_successfully_saved: "Proveedor local guardado correctamente." - it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "Es necesario establecer la coincidencia entre User.uid y la API para agregar este proveedor" + it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "It is required to set the matching between User.uid and the API to add this provider." security_issue_detected: "Se ha detectado un problema de seguridad" beware_the_oauth2_authenticatoin_provider_you_are_about_to_add_isnt_using_HTTPS: "Tenga cuidado: el proveedor de OAuth 2 que va a agregar no está usando HTTPS." this_is_a_serious_security_issue_on_internet_and_should_never_be_used_except_for_testing_purposes: "Este es un grave problema de seguridad en Internet y nunca debe utilizarse excepto para fines de prueba." @@ -778,8 +778,8 @@ es: #edit an authentication provider (SSO) authentication_edit: provider: "Proveedor :" - it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "Es necesario establecer la coincidencia entre User.uid y la API para agregar este proveedor" - provider_successfully_updated: "Proveedor actualizado correctamente" + it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "It is required to set the matching between User.uid and the API to add this provider." + provider_successfully_updated: "Provider successfully updated." an_error_occurred_unable_to_update_the_provider: "Se ha producido un error: no se puede actualizar el proveedor." #statistics tables statistics: @@ -800,7 +800,7 @@ es: entries: "Entradas:" revenue_: "Ingresos:" average_age: "Edad media:" - years_old: "años" + years_old: "years old" total: "Total" available_hours: "Horas disponibles para reservar:" available_tickets: "Tickets disponibles para reservar:" @@ -1008,10 +1008,10 @@ es: api_documentation: "Documentation API" open_api_clients: "Clientes OpenAPI" name: "Name" - calls_count: "Número de llamadas" + calls_count: "Calls count" token: "Token" created_at: "Fecha de creación" - reset_token: "revocar el acceso" + reset_token: "Revoke access" client_name: "Nombre del cliente" confirmation_required: "Confirmation required" do_you_really_want_to_delete_this_open_api_client: "¿Desea realmente eliminar este cliente OpenAPI?" @@ -1041,6 +1041,7 @@ es: report_will_be_destroyed: "Once the report has been processed, it will be deleted. This can't be undone, continue?" report_removed: "The report has been deleted" failed_to_remove: "An error occurred, unable to delete the report" + #feature tour tour: conclusion: title: "Thank you for your attention" @@ -1051,7 +1052,7 @@ es: content: "Here you can create, modify and delete trainings. It is also the place where you can validate the training courses followed by your members." trainings: title: "Manage trainings" - content: "

When creating a training, you can define a default number of places. However, the number of actual places may be modified for each session.

The training sessions are scheduled from the administrator tab [Calendar].

Another thing: it is possible to associate one or more machines with a training. This makes it a prerequisite for the reservation of these machines.

" + content: "

When creating a training, you can define a default number of places. However, the number of actual places may be modified for each session.

The training sessions are scheduled from the administrator tab « Calendar ».

Another thing: it is possible to associate one or more machines with a training. This makes it a prerequisite for the reservation of these machines.

" filter: title: "Filter" content: "By default, only active courses are displayed here. Display the others by choosing another filter here." From 1c9c5c1704476ed6798aba1b78629a6db824cbf5 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:40:17 +0100 Subject: [PATCH 106/136] New translations app.shared.en.yml (Portuguese) --- config/locales/app.shared.pt.yml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/config/locales/app.shared.pt.yml b/config/locales/app.shared.pt.yml index 5ca3e88eb..9a957ec3e 100755 --- a/config/locales/app.shared.pt.yml +++ b/config/locales/app.shared.pt.yml @@ -214,7 +214,7 @@ pt: user_profile: "Perfil de usuário" warning_incomplete_user_profile_probably_imported_from_sso: "Atenção: Esse perfil de usuário está incompleto. As \"single sign-on\" (SSO) authentication is currently enabled, it may probably be an imported but non merged account. Do not modify it unless you know what your doing." group: "Grupo" - group_is_required: "Grupo é obrigatório" + group_is_required: "Group is required." trainings: "Treinamentos" tags: "Tags" #partial form to edit/create an authentication provider (SSO) @@ -308,10 +308,10 @@ pt: to_credit: 'Crédito' wallet_credit_successfully: "Carteira de usuário creditada com sucesso." a_problem_occurred_for_wallet_credit: "Um erro ocorreu ao creditar a carteira" - amount_is_required: "A quantia é obrigatório" + amount_is_required: "The amount is required." amount_minimum_1: "A quantia mínima é 1" - amount_confirm_is_required: "A confirmação da quantia é obrigatório" - amount_confirm_does_not_match: "A confirmação da quantia não é a mesma da quantia" + amount_confirm_is_required: "The amount confirmation is required." + amount_confirm_does_not_match: "The amount confirmation does not match." you_have_amount_in_wallet: "Você tem {amount} {currency} em sua carteira" client_have_amount_in_wallet: "O cliente possui {amount} {currency} em sua carteira" wallet_pay_reservation: "Você pode pagar diretamente sua reserva" @@ -415,7 +415,7 @@ pt: confirm_payment_of_html: "{ROLE, select, admin{Pagamento pelo site} other{Pagar}}: {AMOUNT}" #eg. confirm my payment of $20.00 a_problem_occurred_during_the_payment_process_please_try_again_later: "Um problema ocorreu durante o processo de pagamento. Por favor tente novamente mais tarde." none: "Vazio" - online_payment_disabled: "O pagamento online não está disponível. Entre em contato diretamente com a recepção do Fablab." + online_payment_disabled: "Online payment is not available. Please contact the FabLab's reception directly." slot_restrict_plans: "This slot is restricted for the plans below:" slot_restrict_subscriptions_must_select_plan: "The slot is restricted for the subscribers. Please select a plan first." slot_restrict_plans_of_others_groups: "The slot is restricted for the subscribers of others groups." @@ -425,7 +425,14 @@ pt: slot_at_same_time: "Conflict with others reservations" do_you_really_want_to_book_slot_at_same_time: "Do you really want to book this slot? Other bookings take place at the same time" unable_to_book_slot_because_really_have_reservation_at_same_time: "Unable to book this slot because the following reservation occurs at the same time." + #feature-tour modal tour: previous: "Previous" next: "Next" end: "End the tour" + #help modal + help: + title: "Help" + what_to_do: "What do you want to do?" + tour: "Start the feature tour" + guide: "Open the user's manual" From 61a4aad9ee8041cb930594a7947d6940ad215bf0 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:40:19 +0100 Subject: [PATCH 107/136] New translations app.public.en.yml (Portuguese) --- config/locales/app.public.pt.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/config/locales/app.public.pt.yml b/config/locales/app.public.pt.yml index bc16d1f4f..6f6251737 100755 --- a/config/locales/app.public.pt.yml +++ b/config/locales/app.public.pt.yml @@ -102,7 +102,7 @@ pt: connection: "Login" password_forgotten: "Esqueceu sua senha?" confirm_my_account: "Confirmar sua conta" - not_registered_to_the_fablab: "Ainda não registrado no Fablab?" + not_registered_to_the_fablab: "Not registered to the FabLab?" create_an_account: "Criar conta" wrong_email_or_password: "E-mail ou senha incorretos." caps_lock_is_on: "A tecla Caps Lock está ativada." @@ -148,10 +148,10 @@ pt: from_time_to_time: "Das {START} até {END}" free_entry: "Entrada franca" free_admission: "Admissão grátis" - full_price: "Valor inteira" + full_price: "Full price: " event_full: "Evento lotado" - still_available: "Locais disponíveis" - all_day: "O dia inteiro" + still_available: "Available place(s): " + all_day: "All day" #projects gallery projects_list: the_fablab_projects: "Projetos do Fab Lab" @@ -259,7 +259,7 @@ pt: subscription_confirmation: "Inscrição confirmada" here_is_the_NAME_subscription_summary: "Aqui é o sumário de inscrição do {NAME}:" confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" #(contexte : validate a payment of $20,00) - online_payment_disabled: "Payment by credit card is not available. Please contact the Fablab's reception directly." + online_payment_disabled: "Payment by credit card is not available. Please contact the FabLab's reception directly." #Fablab's events list events_list: the_fablab_s_events: "Eventos do Fablab" @@ -302,7 +302,7 @@ pt: book: "Reservar" confirm_and_pay: "Confirm and pay" confirm_payment_of_html: "{ROLE, select, admin{Cash} other{Pay}}: {AMOUNT}" #(contexte : validate a payment of $20,00) - online_payment_disabled: "Payment by credit card is not available. Please contact the Fablab's reception directly." + online_payment_disabled: "Payment by credit card is not available. Please contact the FabLab's reception directly." please_select_a_member_first: "Please select a member first" change_the_reservation: "Alterar reserva" you_can_shift_this_reservation_on_the_following_slots: "Você pode alterar essa reserva nos campos a seguir:" @@ -312,15 +312,15 @@ pt: delete_this_event: "Only this event" delete_this_and_next: "This event and the following" delete_all: "All events" - event_successfully_deleted: "Evento excluído com sucesso" + event_successfully_deleted: "Event successfully deleted." events_deleted: "The event, and {COUNT, plural, =1{one other} other{{COUNT} others}}, have been deleted" unable_to_delete_the_event: "Unable to delete the event, it may be booked by a member" events_not_deleted: "On {TOTAL} events, {COUNT, plural, =1{one was not deleted} other{{COUNT} were not deleted}}. Some reservations may exists on {COUNT, plural, =1{it} other{them}}." cancel_the_reservation: "Cancel the reservation" do_you_really_want_to_cancel_this_reservation_this_apply_to_all_booked_tickets: "Do you really want to cancel this reservation? This apply to ALL booked tickets." - reservation_was_successfully_cancelled: "Reservation was successfully cancelled" + reservation_was_successfully_cancelled: "Reservation was successfully cancelled." cancellation_failed: "Cancellation failed." - event_is_over: "The event is over" + event_is_over: "The event is over." thanks_for_coming: "Thanks for coming!" view_event_list: "View events to come" share_on_facebook: "Share on Facebook" @@ -382,7 +382,7 @@ pt: content: "Visualize at a glance everything that is scheduled for the next coming weeks (events, training, machines available, etc.)." projects: title: "Projects" - content: "

Document and share all your creations with the community.

If you use OpenLab, you will also be able to consult the projects of the entire Fab-Manager network. Contact-us to get your access, it's free!

" + content: "

Document and share all your creations with the community.

If you use OpenLab, you will also be able to consult the projects of the entire Fab-manager network. Contact-us to get your access, it's free!

" plans: title: "Subscriptions" content: "Subscriptions provide a way to segment your prices and provide benefits to regular users." @@ -400,13 +400,13 @@ pt: content: "

Find your personal information here as well as all your activity on Fab-manager.

This space is also available for all your members.

" news: title: "News" - content: "

This space allows you to display the latest news from your structure.

You can easily change its content from [Customization]> [Home page].

" + content: "

This space allows you to display the latest news from your structure.

You can easily change its content from « Customization », « Home page».

" last_projects: title: "Last projects" content: "

This carousel scrolls through the latest projects documented by your members.

" last_tweet: title: "Last tweet" - content: "

Le dernier tweet de votre flux Twitter peut s'afficher ici.

Configure it from [Customization]> [Home page].

" + content: "

Le dernier tweet de votre flux Twitter peut s'afficher ici.

Configure it from « Customization », « Home page».

" last_members: title: "Last members" content: "The last registered members who have validated their address and agreed to be contacted will be shown here." From 94d49f3204d4f680ca8c7261d3eafcf0c4309b36 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:40:21 +0100 Subject: [PATCH 108/136] New translations app.logged.en.yml (Portuguese) --- config/locales/app.logged.pt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.pt.yml b/config/locales/app.logged.pt.yml index b62c7c050..7fd30ccd1 100755 --- a/config/locales/app.logged.pt.yml +++ b/config/locales/app.logged.pt.yml @@ -45,7 +45,7 @@ pt: empty: '' #dashboard: edit my profile settings: - last_activity_on_: "Última atividade em {DATE}" + last_activity_on_: "Last activity on {DATE}" i_want_to_change_group: "Eu quero trocar de grupo!" your_subscription_expires_on_: "Sua inscrição expira em" no_subscriptions: "Sem inscrições" From 3cd69851b6eade777180dde3d6552a7837f3e579 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:40:24 +0100 Subject: [PATCH 109/136] New translations app.admin.en.yml (Portuguese) --- config/locales/app.admin.pt.yml | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/config/locales/app.admin.pt.yml b/config/locales/app.admin.pt.yml index 781b0d498..7c0bd69c6 100755 --- a/config/locales/app.admin.pt.yml +++ b/config/locales/app.admin.pt.yml @@ -95,7 +95,7 @@ pt: event_in_the_past: "Unable to create a slot in the past." edit_event: "Edit the event" view_reservations: "Ver reservas" - legend: "legenda" + legend: "Legend" and: "and" external_sync: "Calendar synchronization" #import external iCal calendar @@ -240,7 +240,7 @@ pt: edit_this_and_next: "This event and the following" edit_all: "All events" date_wont_change: "Warning: you have changed the event date. This modification won't be propagated to other occurrences of the periodic event." - event_successfully_updated: "Event successfully updated" + event_successfully_updated: "Event successfully updated." events_updated: "The event, and {COUNT, plural, =1{one other} other{{COUNT} others}}, have been updated" unable_to_update_the_event: "Unable to update the event" events_not_updated: "On {TOTAL} events, {COUNT, plural, =1{one was not updated} other{{COUNT} were not deleted}}." @@ -340,7 +340,7 @@ pt: #ajouter un code promotionnel coupons_new: add_a_coupon: "Adicionar cupom" - unable_to_create_the_coupon_check_code_already_used: "Impossível criar cupom. Por favor certifique-se que o código já não foi utilizado" + unable_to_create_the_coupon_check_code_already_used: "Unable to create the coupon. Please check that the code is not already used." #mettre à jour un code promotionnel coupons_edit: coupon: "Coupon:" @@ -692,7 +692,7 @@ pt: #import results members_import_result: import_results: "Import results" - import_details: "Import #{ID}, of {DATE}, initiated by {USER}" + import_details: "Import # {ID}, of {DATE}, initiated by {USER}" results: "Results" pending: "Pending..." status_create: "Creating a new user" @@ -768,7 +768,7 @@ pt: add_a_new_authentication_provider: "Adicionar novo provedor de autenticação" a_local_database_provider_already_exists_unable_to_create_another: "Um provedor \"Local Database\" já existe. Não foi possível criar outro." local_provider_successfully_saved: "Provedor local salvo com sucesso." - it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "É necessário definir a correspondência entre User.uid ea API para adicionar este fornecedor" + it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "It is required to set the matching between User.uid and the API to add this provider." security_issue_detected: "Erro de segurança detectado" beware_the_oauth2_authenticatoin_provider_you_are_about_to_add_isnt_using_HTTPS: "Cuidado: o provedor OAuth 2 que você está prestes a adicionar não está usando HTTPS." this_is_a_serious_security_issue_on_internet_and_should_never_be_used_except_for_testing_purposes: "Este é um problema de segurança grave na Internet e nunca deve ser usado, exceto para fins de teste." @@ -778,8 +778,8 @@ pt: #edit an authentication provider (SSO) authentication_edit: provider: "Provedor :" - it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "É necessário definir a correspondência entre User.uid ea API para adicionar este fornecedor" - provider_successfully_updated: "Provedor modificado com sucesso" + it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "It is required to set the matching between User.uid and the API to add this provider." + provider_successfully_updated: "Provider successfully updated." an_error_occurred_unable_to_update_the_provider: "Um erro ocorreu: não é possível atualizar provedor." #statistics tables statistics: @@ -800,7 +800,7 @@ pt: entries: "Entradas:" revenue_: "Receita:" average_age: "Idade média:" - years_old: "anos de idade" + years_old: "years old" total: "Total" available_hours: "Horas disponíveis para reserva:" available_tickets: "Vagas disponíveis para reserva:" @@ -1008,10 +1008,10 @@ pt: api_documentation: "Documentação da API" open_api_clients: "Cliente OpenAPI" name: "Name" - calls_count: "Contagem de chamadas" + calls_count: "Calls count" token: "Token" created_at: "Data de criação" - reset_token: "revogar acesso" + reset_token: "Revoke access" client_name: "Nome do cliente" confirmation_required: "Confirmation required" do_you_really_want_to_delete_this_open_api_client: "Deseja realmente excluir este cliente OpenAPI??" @@ -1041,6 +1041,7 @@ pt: report_will_be_destroyed: "Once the report has been processed, it will be deleted. This can't be undone, continue?" report_removed: "The report has been deleted" failed_to_remove: "An error occurred, unable to delete the report" + #feature tour tour: conclusion: title: "Thank you for your attention" @@ -1051,7 +1052,7 @@ pt: content: "Here you can create, modify and delete trainings. It is also the place where you can validate the training courses followed by your members." trainings: title: "Manage trainings" - content: "

When creating a training, you can define a default number of places. However, the number of actual places may be modified for each session.

The training sessions are scheduled from the administrator tab [Calendar].

Another thing: it is possible to associate one or more machines with a training. This makes it a prerequisite for the reservation of these machines.

" + content: "

When creating a training, you can define a default number of places. However, the number of actual places may be modified for each session.

The training sessions are scheduled from the administrator tab « Calendar ».

Another thing: it is possible to associate one or more machines with a training. This makes it a prerequisite for the reservation of these machines.

" filter: title: "Filter" content: "By default, only active courses are displayed here. Display the others by choosing another filter here." From bdb22a293a30c8bed0ee4cf6ca9d04e58acfa03e Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:40:28 +0100 Subject: [PATCH 110/136] New translations app.shared.en.yml (French) --- config/locales/app.shared.fr.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/config/locales/app.shared.fr.yml b/config/locales/app.shared.fr.yml index 1313d4d27..ea2ff3080 100644 --- a/config/locales/app.shared.fr.yml +++ b/config/locales/app.shared.fr.yml @@ -214,7 +214,7 @@ fr: user_profile: "Profil utilisateur" warning_incomplete_user_profile_probably_imported_from_sso: "Attention : Le profil de cet utilisateur est incomplet. Comme l'authentification \"single sign-on\" (SSO) est actuellement activée, il s'agit probablement d'un compte importé mais non fusionné. N'y apportez aucune modification sauf si vous savez ce que vous faites." group: "Groupe" - group_is_required: "Le groupe est requis." + group_is_required: "Group is required." trainings: "Formations" tags: "Étiquettes" #partial form to edit/create an authentication provider (SSO) @@ -308,10 +308,10 @@ fr: to_credit: 'Créditer' wallet_credit_successfully: "Le porte-monnaie de l'utilisateur a été chargé avec succès." a_problem_occurred_for_wallet_credit: "Un problème est survenu lors du chargement du porte-monnaie." - amount_is_required: "Le montant est requis." + amount_is_required: "The amount is required." amount_minimum_1: "Le montant minimum est de 1" - amount_confirm_is_required: "La confirmation du montant est requise." - amount_confirm_does_not_match: "La confirmation du montant ne correspond pas." + amount_confirm_is_required: "The amount confirmation is required." + amount_confirm_does_not_match: "The amount confirmation does not match." you_have_amount_in_wallet: "Vous avez {amount} {currency} sur votre porte-monnaie" client_have_amount_in_wallet: "Le client a {amount} {currency} sur son porte-monnaie" wallet_pay_reservation: "Vous pouvez effectuer directement votre paiement de réservation" @@ -415,7 +415,7 @@ fr: confirm_payment_of_html: "{ROLE, select, admin{Paiement sur place} other{Payer}} : {AMOUNT}" #eg. confirm my payment of $20.00 a_problem_occurred_during_the_payment_process_please_try_again_later: "Il y a eu un problème lors de la procédure de paiement. Veuillez réessayer plus tard." none: "Aucune" - online_payment_disabled: "Le payment par carte bancaire n'est pas disponible. Merci de contacter directement l'accueil du Fablab." + online_payment_disabled: "Online payment is not available. Please contact the FabLab's reception directly." slot_restrict_plans: "Ce créneau est restreint pour les formules d'abonnement ci-dessous:" slot_restrict_subscriptions_must_select_plan: "Le créneau est restreint pour les abonnés. Veuillez tout d'abord sélectionner une formule d'abonnement." slot_restrict_plans_of_others_groups: "Ce créneau est restreint pour les abonnés d'autres groupes." @@ -425,14 +425,14 @@ fr: slot_at_same_time: "Conflit avec d'autres réservations" do_you_really_want_to_book_slot_at_same_time: "Êtes-vous sûr de réserver ce créneau ? D'autres réservations ont lieu en même temps" unable_to_book_slot_because_really_have_reservation_at_same_time: "Impossible de réserver ce créneau car les réservations ci-dessous ont lieu en même temps." - # feature-tour modal + #feature-tour modal tour: previous: "Précédent" next: "Suivant" end: "Terminer la visite" - # help modal + #help modal help: - title: "Aide" - what_to_do: "Que voulez-vous faire ?" - tour: "Lancer la visite guidée" - guide: "Ouvrir le manuel de l'utilisateur" \ No newline at end of file + title: "Help" + what_to_do: "What do you want to do?" + tour: "Start the feature tour" + guide: "Open the user's manual" From b7deeb9125f4fcc5b80a2d1cbae2686b49ac3e47 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:40:30 +0100 Subject: [PATCH 111/136] New translations app.public.en.yml (French) --- config/locales/app.public.fr.yml | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/config/locales/app.public.fr.yml b/config/locales/app.public.fr.yml index bac2caf74..eae53c143 100644 --- a/config/locales/app.public.fr.yml +++ b/config/locales/app.public.fr.yml @@ -102,7 +102,7 @@ fr: connection: "Connexion" password_forgotten: "Mot de passe oublié ?" confirm_my_account: "Confirmer mon adresse de courriel" - not_registered_to_the_fablab: "Vous n'êtes pas inscrit au FabLab ?" + not_registered_to_the_fablab: "Not registered to the FabLab?" create_an_account: "Créer un compte" wrong_email_or_password: "Adresse courriel ou mot de passe incorrect." caps_lock_is_on: "La touche de verrouillage des majuscules est activée." @@ -143,15 +143,15 @@ fr: #next events summary on the home page 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}" - on_the_date: "Le {DATE}" - from_time_to_time: "De {START} à {END}" + from_date_to_date: "du {START} au {END}" + on_the_date: "le {DATE}" + from_time_to_time: "de {START} à {END}" free_entry: "Accès libre" free_admission: "Entrée gratuite" - full_price: "Plein tarif : " + full_price: "Full price: " event_full: "Événement complet" - still_available: "Place(s) disponible(s) :" - all_day: "Toute la journée" + still_available: "Available place(s): " + all_day: "All day" #projects gallery projects_list: the_fablab_projects: "Les projets du FabLab" @@ -259,7 +259,7 @@ fr: subscription_confirmation: "Validation de l'abonnement" here_is_the_NAME_subscription_summary: "Voici le récapitulatif de l'abonnement de {NAME} :" confirm_payment_of_html: "{ROLE, select, admin{Encaisser} other{Payer}} : {AMOUNT}" #(contexte : validate a payment of $20,00) - online_payment_disabled: "Le paiement par carte bancaire n'est pas disponible. Merci de contacter directement l'accueil du Fablab." + online_payment_disabled: "Payment by credit card is not available. Please contact the FabLab's reception directly." #Fablab's events list events_list: the_fablab_s_events: "Les évènements du Fab Lab" @@ -302,7 +302,7 @@ fr: book: "Réserver" confirm_and_pay: "Valider et payer" confirm_payment_of_html: "{ROLE, select, admin{Encaisser} other{Payer}} : {AMOUNT}" #(contexte : validate a payment of $20,00) - online_payment_disabled: "Le payment par carte bancaire n'est pas disponible. Merci de contacter directement l'accueil du Fablab." + online_payment_disabled: "Payment by credit card is not available. Please contact the FabLab's reception directly." please_select_a_member_first: "Veuillez tout d'abord sélectionner un membre" change_the_reservation: "Modifier la réservation" you_can_shift_this_reservation_on_the_following_slots: "Vous pouvez déplacer cette réservation sur les créneaux suivants :" @@ -312,15 +312,15 @@ fr: delete_this_event: "Uniquement cet évènement" delete_this_and_next: "Cet évènement et tous les suivants" delete_all: "Tous les évènements" - event_successfully_deleted: "L'évènement a bien été supprimé." + event_successfully_deleted: "Event successfully deleted." events_deleted: "L'évènement, ainsi {COUNT, plural, =1{qu'un autre} other{que {COUNT} autres}}, ont été supprimés" unable_to_delete_the_event: "L'évènement n'a pu être supprimé, probablement car il est déjà réservé par un membre" events_not_deleted: "Sur {TOTAL} évènements, {COUNT, plural, =1{un n'a pas pu être supprimé} other{{COUNT} n'ont pas pu être supprimés}}. Il est possible que des réservations existent sur {COUNT, plural, =1{celui-ci} other{ceux-ci}}." cancel_the_reservation: "Annuler la réservation" do_you_really_want_to_cancel_this_reservation_this_apply_to_all_booked_tickets: "Êtes vous sur de vouloir annuler cette réservation? Ceci s'applique à TOUTES les places réservées." - reservation_was_successfully_cancelled: "La réservation a bien été annulée." + reservation_was_successfully_cancelled: "Reservation was successfully cancelled." cancellation_failed: "L'annulation a échoué." - event_is_over: "L'évènement est terminé." + event_is_over: "The event is over." thanks_for_coming: "Merci d'avoir participé !" view_event_list: "Voir les évènements à venir" share_on_facebook: "Partager sur Facebook" @@ -382,7 +382,7 @@ fr: content: "Visualisez en un clin d'oeil tout ce qui est prévu au programme des prochaines semaines (évènements, formations, machines disponibles, etc.)." projects: title: "Projets" - content: "

Documentez et partagez toutes vos réalisations avec la communauté.

Si vous utilisez OpenLab, vous pourrez également consulter les projets de l'ensemble du réseau Fab-Manager. Contactez-nous pour obtenir votre accès, c'est gratuit !

" + content: "

Document and share all your creations with the community.

If you use OpenLab, you will also be able to consult the projects of the entire Fab-manager network. Contact-us to get your access, it's free!

" plans: title: "Abonnements" content: "Les abonnements offrent un moyen de segmenter vos tarifs et d'accorder des avantages aux utilisateurs réguliers." @@ -400,13 +400,13 @@ fr: content: "

Retrouvez ici vos informations personnelles ainsi que toute votre activité sur Fab-manager.

Cet espace est également disponible pour tous vos membres.

" news: title: "Les brèves" - content: "

Cet espace vous permet d'afficher les dernières actualités de votre structure.

Vous pouvez facilement changer son contenu depuis [Personnalisation] > [Page d'accueil].

" + content: "

This space allows you to display the latest news from your structure.

You can easily change its content from « Customization », « Home page».

" last_projects: title: "les derniers projets" content: "

Ce carousel fait défiler les derniers projets documentés par vos membres.

" last_tweet: title: "Dernier tweet" - content: "

Le dernier tweet de votre flux Twitter peut s'afficher ici.

Configurez-le depuis [Personnalisation] > [Page d'accueil].

" + content: "

Le dernier tweet de votre flux Twitter peut s'afficher ici.

Configure it from « Customization », « Home page».

" last_members: title: "Derniers membres" content: "Les derniers membres inscrits qui ont validé leur adresse et accepté d'être contactés, seront affichés ici." From 7dfe742126483e389c8d24f5ad8f955facb2bef4 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:40:32 +0100 Subject: [PATCH 112/136] New translations app.logged.en.yml (French) --- config/locales/app.logged.fr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.fr.yml b/config/locales/app.logged.fr.yml index d2b7b0a97..e3b41ba4e 100644 --- a/config/locales/app.logged.fr.yml +++ b/config/locales/app.logged.fr.yml @@ -45,7 +45,7 @@ fr: empty: '' #dashboard: edit my profile settings: - last_activity_on_: "Dernière activité le {DATE}" + last_activity_on_: "Last activity on {DATE}" i_want_to_change_group: "Je veux changer de groupe !" your_subscription_expires_on_: "Votre abonnement expire le" no_subscriptions: "Aucun abonnement" From da437711a4a12cea03b5ce2de10fce45b0f32f44 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:40:34 +0100 Subject: [PATCH 113/136] New translations app.admin.en.yml (French) --- config/locales/app.admin.fr.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/config/locales/app.admin.fr.yml b/config/locales/app.admin.fr.yml index 2ff4fa009..168b8fa9e 100644 --- a/config/locales/app.admin.fr.yml +++ b/config/locales/app.admin.fr.yml @@ -95,7 +95,7 @@ fr: event_in_the_past: "Impossible de créer un créneau dans le passé." edit_event: "Modifier l'évènement" view_reservations: "Voir les réservations" - legend: "Légende" + legend: "Legend" and: "et" external_sync: "Synchronisation d'agendas" #import external iCal calendar @@ -240,7 +240,7 @@ fr: edit_this_and_next: "Cet évènement et tous les suivants" edit_all: "Tous les évènements" date_wont_change: "Attention : vous avez modifié la date de l'évènement. Cette modification ne sera pas être répercutée sur les autres occurrences de l'évènement périodique." - event_successfully_updated: "L'évènement a bien été modifié." + event_successfully_updated: "Event successfully updated." events_updated: "L'évènement, ainsi {COUNT, plural, =1{qu'un autre} other{que {COUNT} autres}}, ont été modifiés" unable_to_update_the_event: "L'évènement n'a pu être modifié" events_not_updated: "Sur {TOTAL} évènements, {COUNT, plural, =1{un n'a pas pu être modifié} other{{COUNT} n'ont pas pu être modifiés}}." @@ -340,7 +340,7 @@ fr: #ajouter un code promotionnel coupons_new: add_a_coupon: "Ajouter un code promotionnel" - unable_to_create_the_coupon_check_code_already_used: "Impossible de créer le code promotionnel. Vérifiez que le code n'est pas utilisé." + unable_to_create_the_coupon_check_code_already_used: "Unable to create the coupon. Please check that the code is not already used." #mettre à jour un code promotionnel coupons_edit: coupon: "Code promo :" @@ -692,7 +692,7 @@ fr: #import results members_import_result: import_results: "Résultats de l'import" - import_details: "Import n°{ID}, du {DATE}, initié par {USER}" + import_details: "Import # {ID}, of {DATE}, initiated by {USER}" results: "Résultats" pending: "En cours..." status_create: "Création d'un nouvel utilisateur" @@ -768,7 +768,7 @@ fr: add_a_new_authentication_provider: "Ajouter un fournisseur d'authentification" a_local_database_provider_already_exists_unable_to_create_another: "Un fournisseur de type \"Base de données locale\" existe déjà. Impossible d'en créer un second." local_provider_successfully_saved: "Le fournisseur local a bien été enregistré." - it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "Il est obligatoire d'établir la correspondance entre User.uid et l'API pour pouvoir ajouter ce fournisseur." + it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "It is required to set the matching between User.uid and the API to add this provider." security_issue_detected: "Problème de sécurité détecté" beware_the_oauth2_authenticatoin_provider_you_are_about_to_add_isnt_using_HTTPS: "Attention : le fournisseur d'authentification OAuth 2 que vous êtes sur le point d'ajouter n'utilise pas HTTPS." this_is_a_serious_security_issue_on_internet_and_should_never_be_used_except_for_testing_purposes: "Ceci constitue un grave problème de sécurité sur internet et ne devrait jamais être utilisé en dehors de fins de tests." @@ -778,8 +778,8 @@ fr: #edit an authentication provider (SSO) authentication_edit: provider: "Fournisseur :" - it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "Il est obligatoire d'établir la correspondance entre User.uid et l'API pour pouvoir ajouter ce fournisseur." - provider_successfully_updated: "Le fournisseur a bien été mis à jour." + it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "It is required to set the matching between User.uid and the API to add this provider." + provider_successfully_updated: "Provider successfully updated." an_error_occurred_unable_to_update_the_provider: "Une error est survenue : impossible de mettre à jour le fournisseur." #statistics tables statistics: @@ -800,7 +800,7 @@ fr: entries: "Entrées :" revenue_: "Chiffre d'affaires :" average_age: "Âge moyen :" - years_old: "ans" + years_old: "years old" total: "Total" available_hours: "Heures disponibles à la réservation :" available_tickets: "Places disponibles à la reservation :" @@ -1008,10 +1008,10 @@ fr: api_documentation: "Documentation de l'API" open_api_clients: "Clients OpenAPI" name: "Nom" - calls_count: "Nombre d'appels" + calls_count: "Calls count" token: "Jeton" created_at: "Date de création" - reset_token: "Révoquer l'accès" + reset_token: "Revoke access" client_name: "Nom du client" confirmation_required: "Confirmation requise" do_you_really_want_to_delete_this_open_api_client: "Voulez vous vraiment supprimer ce compte client OpenAPI ?" @@ -1052,7 +1052,7 @@ fr: content: "Ici vous pourrez créer, modifier et supprimer des formations. C'est également l'endroit où vous pourrez valider les formations suivies par vos membres." trainings: title: "Gérer les formations" - content: "

Lors de la création d'une formation, vous pouvez définir un nombre de places par défaut. Néanmoins, le nombre de places effectives pourra être modifié pour chaque session.

La programmation des sessions de formation se fait depuis l'onglet administrateur [Agenda].

D'autre part, il est possible d'associer une ou plusieurs machines à une formation. Cela permet d'en faire un pré-requis pour la réservation de ces machines.

" + content: "

When creating a training, you can define a default number of places. However, the number of actual places may be modified for each session.

The training sessions are scheduled from the administrator tab « Calendar ».

Another thing: it is possible to associate one or more machines with a training. This makes it a prerequisite for the reservation of these machines.

" filter: title: "Filtre" content: "Par défaut, seules les formations actives sont affichées ici. Affichez les autres en choisissant un autre filtre ici." From 64780dcd2010660e3f40817f8af8ada48501dd56 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 10:40:36 +0100 Subject: [PATCH 114/136] New translations app.shared.en.yml (Acholi) --- config/locales/app.shared.ach.yml | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/config/locales/app.shared.ach.yml b/config/locales/app.shared.ach.yml index 246f3566a..cfde25a14 100644 --- a/config/locales/app.shared.ach.yml +++ b/config/locales/app.shared.ach.yml @@ -214,7 +214,7 @@ ach: user_profile: "crwdns9745:0crwdne9745:0" warning_incomplete_user_profile_probably_imported_from_sso: "crwdns9747:0crwdne9747:0" group: "crwdns9749:0crwdne9749:0" - group_is_required: "crwdns9751:0crwdne9751:0" + group_is_required: "crwdns20220:0crwdne20220:0" trainings: "crwdns9753:0crwdne9753:0" tags: "crwdns9755:0crwdne9755:0" #partial form to edit/create an authentication provider (SSO) @@ -308,10 +308,10 @@ ach: to_credit: 'crwdns9905:0crwdne9905:0' wallet_credit_successfully: "crwdns9907:0crwdne9907:0" a_problem_occurred_for_wallet_credit: "crwdns9909:0crwdne9909:0" - amount_is_required: "crwdns9911:0crwdne9911:0" + amount_is_required: "crwdns20222:0crwdne20222:0" amount_minimum_1: "crwdns9913:0crwdne9913:0" - amount_confirm_is_required: "crwdns9915:0crwdne9915:0" - amount_confirm_does_not_match: "crwdns9917:0crwdne9917:0" + amount_confirm_is_required: "crwdns20224:0crwdne20224:0" + amount_confirm_does_not_match: "crwdns20226:0crwdne20226:0" you_have_amount_in_wallet: "crwdns9919:0{amount}crwdnd9919:0{currency}crwdne9919:0" client_have_amount_in_wallet: "crwdns9921:0{amount}crwdnd9921:0{currency}crwdne9921:0" wallet_pay_reservation: "crwdns9923:0crwdne9923:0" @@ -415,7 +415,7 @@ ach: confirm_payment_of_html: "crwdns10101:0ROLE={ROLE}crwdnd10101:0AMOUNT={AMOUNT}crwdne10101:0" #eg. confirm my payment of $20.00 a_problem_occurred_during_the_payment_process_please_try_again_later: "crwdns10103:0crwdne10103:0" none: "crwdns10105:0crwdne10105:0" - online_payment_disabled: "crwdns10107:0crwdne10107:0" + online_payment_disabled: "crwdns20228:0crwdne20228:0" slot_restrict_plans: "crwdns20138:0crwdne20138:0" slot_restrict_subscriptions_must_select_plan: "crwdns20140:0crwdne20140:0" slot_restrict_plans_of_others_groups: "crwdns20142:0crwdne20142:0" @@ -425,7 +425,14 @@ ach: slot_at_same_time: "crwdns20150:0crwdne20150:0" do_you_really_want_to_book_slot_at_same_time: "crwdns20152:0crwdne20152:0" unable_to_book_slot_because_really_have_reservation_at_same_time: "crwdns20154:0crwdne20154:0" + #feature-tour modal tour: previous: "crwdns20166:0crwdne20166:0" next: "crwdns20168:0crwdne20168:0" end: "crwdns20170:0crwdne20170:0" + #help modal + help: + title: "crwdns20230:0crwdne20230:0" + what_to_do: "crwdns20232:0crwdne20232:0" + tour: "crwdns20234:0crwdne20234:0" + guide: "crwdns20236:0crwdne20236:0" From 0b341af1edcb67ad3834fee97117cb9102ce92da Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 11:31:06 +0100 Subject: [PATCH 115/136] [bug] unable to create new availabilities if SLOT_DURATION is not defined --- CHANGELOG.md | 1 + app/assets/javascripts/controllers/home.js | 1 - app/models/availability.rb | 6 +++--- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 11da68a94..a65de6096 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - Improved contextual help with a modal dialog - Updated translations - Refactored translations to help merging Crowdin PR +- Fix a bug: unable to create new availabilities if SLOT_DURATION is not defined ## v4.3.1 2020 March 04 diff --git a/app/assets/javascripts/controllers/home.js b/app/assets/javascripts/controllers/home.js index 7bbfecab7..1d961ae00 100644 --- a/app/assets/javascripts/controllers/home.js +++ b/app/assets/javascripts/controllers/home.js @@ -41,7 +41,6 @@ Application.Controllers.controller('HomeController', ['$scope', '$stateParams', // We set the home page content, with the directives replacing the placeholders $scope.homeContent = insertDirectives(settingsPromise.home_content); - // for admins, setup the tour on login $scope.$watch('currentUser', function (newValue, oldValue) { if (!oldValue && newValue && newValue.role === 'admin') { diff --git a/app/models/availability.rb b/app/models/availability.rb index 0a01d0da7..eefba45c2 100644 --- a/app/models/availability.rb +++ b/app/models/availability.rb @@ -159,9 +159,9 @@ class Availability < ActiveRecord::Base private def length_must_be_slot_multiple - if end_at < (start_at + Rails.application.secrets.slot_duration.minutes) - errors.add(:end_at, I18n.t('availabilities.length_must_be_slot_multiple', MIN: Rails.application.secrets.slot_duration)) - end + return unless end_at < (start_at + ApplicationHelper::SLOT_DURATION.minutes) + + errors.add(:end_at, I18n.t('availabilities.length_must_be_slot_multiple', MIN: ApplicationHelper::SLOT_DURATION)) end def should_be_associated From 7f7b1a3bdd27b62ede5bcc3888ff508f8fbc48e4 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:10:50 +0100 Subject: [PATCH 116/136] New translations app.public.en.yml (Spanish) --- config/locales/app.public.es.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/config/locales/app.public.es.yml b/config/locales/app.public.es.yml index 1fed4a145..52bda75b6 100644 --- a/config/locales/app.public.es.yml +++ b/config/locales/app.public.es.yml @@ -102,7 +102,7 @@ es: connection: "Conexión" password_forgotten: "¿Ha olvidado su contraseña?" confirm_my_account: "Confirmar mi E-mail" - not_registered_to_the_fablab: "Not registered to the FabLab?" + not_registered_to_the_fablab: "¿No está registrado en el FabLab todavía?" create_an_account: "Crear una cuenta" wrong_email_or_password: "E-mail o contraseña incorrecta." caps_lock_is_on: "Las mayusculas están activadas." @@ -148,10 +148,10 @@ es: from_time_to_time: "Desde {START} hasta {END}" free_entry: "Entrada gratuita" free_admission: "Admisión gratuita" - full_price: "Full price: " + full_price: "Precio completo: " event_full: "Evento lleno" - still_available: "Available place(s): " - all_day: "All day" + still_available: "Asiento(s) disponible(s): " + all_day: "Todo el día" #projects gallery projects_list: the_fablab_projects: "Los proyectos del FabLab" @@ -268,11 +268,11 @@ es: sold_out: "Sold Out" cancelled: "Cancelled" free_admission: "Free admission" - still_available: "available place(s)" + still_available: "asiento(s) disponible(s)" free_entry: "Free entry" add_an_event: "Add an event" load_the_next_events: "Cargar los próximos eventos..." - full_price_: "Full price:" + full_price_: "Precio completo:" to_date: "to" #eg. from 01/01 to 01/05 all_themes: "All themes" #details and booking of an event @@ -284,10 +284,10 @@ es: beginning: "Empieza:" ending: "Termina:" opening_hours: "Hora de apertura:" - all_day: "All day" + all_day: "Todo el día" from_time: "From" #eg. from 18:00 to 21:00 to_time: "to" #eg. from 18:00 to 21:00 - full_price_: "Full price:" + full_price_: "Precio completo:" tickets_still_availables: "Entradas disponibles:" sold_out: "Entradas vendidas." free_entry: "Entrada gratuita" From 24f4f2dc7f0e31372b96c83489e86bd7167f0f2a Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:10:51 +0100 Subject: [PATCH 117/136] New translations app.logged.en.yml (Spanish) --- config/locales/app.logged.es.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.es.yml b/config/locales/app.logged.es.yml index e15a8a066..b3d8d244a 100644 --- a/config/locales/app.logged.es.yml +++ b/config/locales/app.logged.es.yml @@ -45,7 +45,7 @@ es: empty: '' #dashboard: edit my profile settings: - last_activity_on_: "Last activity on {DATE}" + last_activity_on_: "Última vez activo {DATE}" i_want_to_change_group: "Quiero cambiar de grupo" your_subscription_expires_on_: "su suscripción acaba el" no_subscriptions: "Sin suscripciones" From 07aac420417ff831c52d4729d8a073d18d0d90b6 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:10:55 +0100 Subject: [PATCH 118/136] New translations app.admin.en.yml (Spanish) --- config/locales/app.admin.es.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/config/locales/app.admin.es.yml b/config/locales/app.admin.es.yml index 8310e4613..cd147876d 100644 --- a/config/locales/app.admin.es.yml +++ b/config/locales/app.admin.es.yml @@ -95,7 +95,7 @@ es: event_in_the_past: "Unable to create a slot in the past." edit_event: "Edit the event" view_reservations: "Ver reservas" - legend: "Legend" + legend: "Leyenda" and: "y" external_sync: "Calendar synchronization" #import external iCal calendar @@ -340,7 +340,7 @@ es: #ajouter un code promotionnel coupons_new: add_a_coupon: "Añadir un cupón" - unable_to_create_the_coupon_check_code_already_used: "Unable to create the coupon. Please check that the code is not already used." + unable_to_create_the_coupon_check_code_already_used: "No se puede crear el cupón. Compruebe que el código no esté ya utilizado." #mettre à jour un code promotionnel coupons_edit: coupon: "Coupon:" @@ -768,7 +768,7 @@ es: add_a_new_authentication_provider: "Agregar un nuevo proveedor de autenticación" a_local_database_provider_already_exists_unable_to_create_another: "A proveedor de \"Base de datos local\" ya existe. No se puede crear otro." local_provider_successfully_saved: "Proveedor local guardado correctamente." - it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "It is required to set the matching between User.uid and the API to add this provider." + it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "Es necesario establecer la coincidencia entre User.uid y la API para agregar este proveedor." security_issue_detected: "Se ha detectado un problema de seguridad" beware_the_oauth2_authenticatoin_provider_you_are_about_to_add_isnt_using_HTTPS: "Tenga cuidado: el proveedor de OAuth 2 que va a agregar no está usando HTTPS." this_is_a_serious_security_issue_on_internet_and_should_never_be_used_except_for_testing_purposes: "Este es un grave problema de seguridad en Internet y nunca debe utilizarse excepto para fines de prueba." @@ -778,8 +778,8 @@ es: #edit an authentication provider (SSO) authentication_edit: provider: "Proveedor :" - it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "It is required to set the matching between User.uid and the API to add this provider." - provider_successfully_updated: "Provider successfully updated." + it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "Es necesario establecer la coincidencia entre User.uid y la API para agregar este proveedor." + provider_successfully_updated: "Proveedor actualizado correctamente." an_error_occurred_unable_to_update_the_provider: "Se ha producido un error: no se puede actualizar el proveedor." #statistics tables statistics: @@ -800,7 +800,7 @@ es: entries: "Entradas:" revenue_: "Ingresos:" average_age: "Edad media:" - years_old: "years old" + years_old: "años" total: "Total" available_hours: "Horas disponibles para reservar:" available_tickets: "Tickets disponibles para reservar:" @@ -1008,10 +1008,10 @@ es: api_documentation: "Documentation API" open_api_clients: "Clientes OpenAPI" name: "Name" - calls_count: "Calls count" + calls_count: "Número de llamadas" token: "Token" created_at: "Fecha de creación" - reset_token: "Revoke access" + reset_token: "Revocar el acceso" client_name: "Nombre del cliente" confirmation_required: "Confirmation required" do_you_really_want_to_delete_this_open_api_client: "¿Desea realmente eliminar este cliente OpenAPI?" From 0cd7ee7881afbdebda6cd7b87cf1c75de676bf3e Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:11:00 +0100 Subject: [PATCH 119/136] New translations app.public.en.yml (Portuguese) --- config/locales/app.public.pt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.public.pt.yml b/config/locales/app.public.pt.yml index 6f6251737..5a28f3b22 100755 --- a/config/locales/app.public.pt.yml +++ b/config/locales/app.public.pt.yml @@ -102,7 +102,7 @@ pt: connection: "Login" password_forgotten: "Esqueceu sua senha?" confirm_my_account: "Confirmar sua conta" - not_registered_to_the_fablab: "Not registered to the FabLab?" + not_registered_to_the_fablab: "Ainda não registrado no FabLab?" create_an_account: "Criar conta" wrong_email_or_password: "E-mail ou senha incorretos." caps_lock_is_on: "A tecla Caps Lock está ativada." From 097544571606b4768a101b1947689457566d0064 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:11:02 +0100 Subject: [PATCH 120/136] New translations app.logged.en.yml (Portuguese) --- config/locales/app.logged.pt.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.pt.yml b/config/locales/app.logged.pt.yml index 7fd30ccd1..b62c7c050 100755 --- a/config/locales/app.logged.pt.yml +++ b/config/locales/app.logged.pt.yml @@ -45,7 +45,7 @@ pt: empty: '' #dashboard: edit my profile settings: - last_activity_on_: "Last activity on {DATE}" + last_activity_on_: "Última atividade em {DATE}" i_want_to_change_group: "Eu quero trocar de grupo!" your_subscription_expires_on_: "Sua inscrição expira em" no_subscriptions: "Sem inscrições" From fe98305244c677c895da70b81c11e854a3daa0da Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:11:04 +0100 Subject: [PATCH 121/136] New translations app.admin.en.yml (Portuguese) --- config/locales/app.admin.pt.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/config/locales/app.admin.pt.yml b/config/locales/app.admin.pt.yml index 7c0bd69c6..f3e20cf2b 100755 --- a/config/locales/app.admin.pt.yml +++ b/config/locales/app.admin.pt.yml @@ -95,7 +95,7 @@ pt: event_in_the_past: "Unable to create a slot in the past." edit_event: "Edit the event" view_reservations: "Ver reservas" - legend: "Legend" + legend: "Legenda" and: "and" external_sync: "Calendar synchronization" #import external iCal calendar @@ -340,7 +340,7 @@ pt: #ajouter un code promotionnel coupons_new: add_a_coupon: "Adicionar cupom" - unable_to_create_the_coupon_check_code_already_used: "Unable to create the coupon. Please check that the code is not already used." + unable_to_create_the_coupon_check_code_already_used: "Impossível criar cupom. Por favor certifique-se que o código já não foi utilizado." #mettre à jour un code promotionnel coupons_edit: coupon: "Coupon:" @@ -768,7 +768,7 @@ pt: add_a_new_authentication_provider: "Adicionar novo provedor de autenticação" a_local_database_provider_already_exists_unable_to_create_another: "Um provedor \"Local Database\" já existe. Não foi possível criar outro." local_provider_successfully_saved: "Provedor local salvo com sucesso." - it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "It is required to set the matching between User.uid and the API to add this provider." + it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "É necessário definir a correspondência entre User.uid ea API para adicionar este fornecedor." security_issue_detected: "Erro de segurança detectado" beware_the_oauth2_authenticatoin_provider_you_are_about_to_add_isnt_using_HTTPS: "Cuidado: o provedor OAuth 2 que você está prestes a adicionar não está usando HTTPS." this_is_a_serious_security_issue_on_internet_and_should_never_be_used_except_for_testing_purposes: "Este é um problema de segurança grave na Internet e nunca deve ser usado, exceto para fins de teste." @@ -778,7 +778,7 @@ pt: #edit an authentication provider (SSO) authentication_edit: provider: "Provedor :" - it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "It is required to set the matching between User.uid and the API to add this provider." + it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "É necessário definir a correspondência entre User.uid ea API para adicionar este fornecedor." provider_successfully_updated: "Provider successfully updated." an_error_occurred_unable_to_update_the_provider: "Um erro ocorreu: não é possível atualizar provedor." #statistics tables @@ -800,7 +800,7 @@ pt: entries: "Entradas:" revenue_: "Receita:" average_age: "Idade média:" - years_old: "years old" + years_old: "anos de idade" total: "Total" available_hours: "Horas disponíveis para reserva:" available_tickets: "Vagas disponíveis para reserva:" @@ -1008,10 +1008,10 @@ pt: api_documentation: "Documentação da API" open_api_clients: "Cliente OpenAPI" name: "Name" - calls_count: "Calls count" + calls_count: "Contagem de chamadas" token: "Token" created_at: "Data de criação" - reset_token: "Revoke access" + reset_token: "Revogar acesso" client_name: "Nome do cliente" confirmation_required: "Confirmation required" do_you_really_want_to_delete_this_open_api_client: "Deseja realmente excluir este cliente OpenAPI??" From b6400c5a25f482957fa6b44e00b2753354b12ca6 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:11:10 +0100 Subject: [PATCH 122/136] New translations app.public.en.yml (French) --- config/locales/app.public.fr.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/config/locales/app.public.fr.yml b/config/locales/app.public.fr.yml index eae53c143..b04ccd984 100644 --- a/config/locales/app.public.fr.yml +++ b/config/locales/app.public.fr.yml @@ -102,7 +102,7 @@ fr: connection: "Connexion" password_forgotten: "Mot de passe oublié ?" confirm_my_account: "Confirmer mon adresse de courriel" - not_registered_to_the_fablab: "Not registered to the FabLab?" + not_registered_to_the_fablab: "Vous n'êtes pas inscrit au FabLab ?" create_an_account: "Créer un compte" wrong_email_or_password: "Adresse courriel ou mot de passe incorrect." caps_lock_is_on: "La touche de verrouillage des majuscules est activée." @@ -148,10 +148,10 @@ fr: from_time_to_time: "de {START} à {END}" free_entry: "Accès libre" free_admission: "Entrée gratuite" - full_price: "Full price: " + full_price: "Plein tarif : " event_full: "Événement complet" - still_available: "Available place(s): " - all_day: "All day" + still_available: "Place(s) disponible(s) : " + all_day: "Toute la journée" #projects gallery projects_list: the_fablab_projects: "Les projets du FabLab" @@ -259,7 +259,7 @@ fr: subscription_confirmation: "Validation de l'abonnement" here_is_the_NAME_subscription_summary: "Voici le récapitulatif de l'abonnement de {NAME} :" confirm_payment_of_html: "{ROLE, select, admin{Encaisser} other{Payer}} : {AMOUNT}" #(contexte : validate a payment of $20,00) - online_payment_disabled: "Payment by credit card is not available. Please contact the FabLab's reception directly." + online_payment_disabled: "Le paiement par carte bancaire n'est pas disponible. Merci de contacter directement l'accueil du FabLab." #Fablab's events list events_list: the_fablab_s_events: "Les évènements du Fab Lab" @@ -302,7 +302,7 @@ fr: book: "Réserver" confirm_and_pay: "Valider et payer" confirm_payment_of_html: "{ROLE, select, admin{Encaisser} other{Payer}} : {AMOUNT}" #(contexte : validate a payment of $20,00) - online_payment_disabled: "Payment by credit card is not available. Please contact the FabLab's reception directly." + online_payment_disabled: "Le paiement par carte bancaire n'est pas disponible. Merci de contacter directement l'accueil du FabLab." please_select_a_member_first: "Veuillez tout d'abord sélectionner un membre" change_the_reservation: "Modifier la réservation" you_can_shift_this_reservation_on_the_following_slots: "Vous pouvez déplacer cette réservation sur les créneaux suivants :" @@ -312,15 +312,15 @@ fr: delete_this_event: "Uniquement cet évènement" delete_this_and_next: "Cet évènement et tous les suivants" delete_all: "Tous les évènements" - event_successfully_deleted: "Event successfully deleted." + event_successfully_deleted: "L’événement a bien été supprimé." events_deleted: "L'évènement, ainsi {COUNT, plural, =1{qu'un autre} other{que {COUNT} autres}}, ont été supprimés" unable_to_delete_the_event: "L'évènement n'a pu être supprimé, probablement car il est déjà réservé par un membre" events_not_deleted: "Sur {TOTAL} évènements, {COUNT, plural, =1{un n'a pas pu être supprimé} other{{COUNT} n'ont pas pu être supprimés}}. Il est possible que des réservations existent sur {COUNT, plural, =1{celui-ci} other{ceux-ci}}." cancel_the_reservation: "Annuler la réservation" do_you_really_want_to_cancel_this_reservation_this_apply_to_all_booked_tickets: "Êtes vous sur de vouloir annuler cette réservation? Ceci s'applique à TOUTES les places réservées." - reservation_was_successfully_cancelled: "Reservation was successfully cancelled." + reservation_was_successfully_cancelled: "La réservation a bien été annulée." cancellation_failed: "L'annulation a échoué." - event_is_over: "The event is over." + event_is_over: "L'événement est terminé." thanks_for_coming: "Merci d'avoir participé !" view_event_list: "Voir les évènements à venir" share_on_facebook: "Partager sur Facebook" @@ -382,7 +382,7 @@ fr: content: "Visualisez en un clin d'oeil tout ce qui est prévu au programme des prochaines semaines (évènements, formations, machines disponibles, etc.)." projects: title: "Projets" - content: "

Document and share all your creations with the community.

If you use OpenLab, you will also be able to consult the projects of the entire Fab-manager network. Contact-us to get your access, it's free!

" + content: "

Documentez et partagez toutes vos réalisations avec la communauté.

Si vous utilisez OpenLab, vous pourrez également consulter les projets de l'ensemble du réseau Fab-manager. Contactez-nous pour obtenir votre accès, c'est gratuit !

" plans: title: "Abonnements" content: "Les abonnements offrent un moyen de segmenter vos tarifs et d'accorder des avantages aux utilisateurs réguliers." @@ -400,13 +400,13 @@ fr: content: "

Retrouvez ici vos informations personnelles ainsi que toute votre activité sur Fab-manager.

Cet espace est également disponible pour tous vos membres.

" news: title: "Les brèves" - content: "

This space allows you to display the latest news from your structure.

You can easily change its content from « Customization », « Home page».

" + content: "

Cet espace vous permet d'afficher les dernières actualités de votre structure.

Vous pouvez facilement changer son contenu depuis « Personnalisation », « Page d'accueil ».

" last_projects: title: "les derniers projets" content: "

Ce carousel fait défiler les derniers projets documentés par vos membres.

" last_tweet: title: "Dernier tweet" - content: "

Le dernier tweet de votre flux Twitter peut s'afficher ici.

Configure it from « Customization », « Home page».

" + content: "

Le dernier tweet de votre flux Twitter peut s'afficher ici.

Configurez-le depuis « Personnalisation », « Page d'accueil ».

" last_members: title: "Derniers membres" content: "Les derniers membres inscrits qui ont validé leur adresse et accepté d'être contactés, seront affichés ici." From 7d6f773aecef472e5c6098ac3946acb9c74b7d3f Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:11:11 +0100 Subject: [PATCH 123/136] New translations app.logged.en.yml (French) --- config/locales/app.logged.fr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.logged.fr.yml b/config/locales/app.logged.fr.yml index e3b41ba4e..d2b7b0a97 100644 --- a/config/locales/app.logged.fr.yml +++ b/config/locales/app.logged.fr.yml @@ -45,7 +45,7 @@ fr: empty: '' #dashboard: edit my profile settings: - last_activity_on_: "Last activity on {DATE}" + last_activity_on_: "Dernière activité le {DATE}" i_want_to_change_group: "Je veux changer de groupe !" your_subscription_expires_on_: "Votre abonnement expire le" no_subscriptions: "Aucun abonnement" From a7ecca509593b700148f302cfd3e9a9ee5f6f1bb Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:11:15 +0100 Subject: [PATCH 124/136] New translations app.admin.en.yml (French) --- config/locales/app.admin.fr.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/config/locales/app.admin.fr.yml b/config/locales/app.admin.fr.yml index 168b8fa9e..e7e06dbdd 100644 --- a/config/locales/app.admin.fr.yml +++ b/config/locales/app.admin.fr.yml @@ -95,7 +95,7 @@ fr: event_in_the_past: "Impossible de créer un créneau dans le passé." edit_event: "Modifier l'évènement" view_reservations: "Voir les réservations" - legend: "Legend" + legend: "Légende" and: "et" external_sync: "Synchronisation d'agendas" #import external iCal calendar @@ -240,7 +240,7 @@ fr: edit_this_and_next: "Cet évènement et tous les suivants" edit_all: "Tous les évènements" date_wont_change: "Attention : vous avez modifié la date de l'évènement. Cette modification ne sera pas être répercutée sur les autres occurrences de l'évènement périodique." - event_successfully_updated: "Event successfully updated." + event_successfully_updated: "L’événement a bien été modifié." events_updated: "L'évènement, ainsi {COUNT, plural, =1{qu'un autre} other{que {COUNT} autres}}, ont été modifiés" unable_to_update_the_event: "L'évènement n'a pu être modifié" events_not_updated: "Sur {TOTAL} évènements, {COUNT, plural, =1{un n'a pas pu être modifié} other{{COUNT} n'ont pas pu être modifiés}}." @@ -340,7 +340,7 @@ fr: #ajouter un code promotionnel coupons_new: add_a_coupon: "Ajouter un code promotionnel" - unable_to_create_the_coupon_check_code_already_used: "Unable to create the coupon. Please check that the code is not already used." + unable_to_create_the_coupon_check_code_already_used: "Impossible de créer le code promotionnel. Vérifiez que le code n'est pas utilisé." #mettre à jour un code promotionnel coupons_edit: coupon: "Code promo :" @@ -692,7 +692,7 @@ fr: #import results members_import_result: import_results: "Résultats de l'import" - import_details: "Import # {ID}, of {DATE}, initiated by {USER}" + import_details: "Import n° {ID}, du {DATE}, initié par {USER}" results: "Résultats" pending: "En cours..." status_create: "Création d'un nouvel utilisateur" @@ -768,7 +768,7 @@ fr: add_a_new_authentication_provider: "Ajouter un fournisseur d'authentification" a_local_database_provider_already_exists_unable_to_create_another: "Un fournisseur de type \"Base de données locale\" existe déjà. Impossible d'en créer un second." local_provider_successfully_saved: "Le fournisseur local a bien été enregistré." - it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "It is required to set the matching between User.uid and the API to add this provider." + it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "Il est obligatoire d'établir la correspondance entre User.uid et l'API pour pouvoir ajouter ce fournisseur." security_issue_detected: "Problème de sécurité détecté" beware_the_oauth2_authenticatoin_provider_you_are_about_to_add_isnt_using_HTTPS: "Attention : le fournisseur d'authentification OAuth 2 que vous êtes sur le point d'ajouter n'utilise pas HTTPS." this_is_a_serious_security_issue_on_internet_and_should_never_be_used_except_for_testing_purposes: "Ceci constitue un grave problème de sécurité sur internet et ne devrait jamais être utilisé en dehors de fins de tests." @@ -778,8 +778,8 @@ fr: #edit an authentication provider (SSO) authentication_edit: provider: "Fournisseur :" - it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "It is required to set the matching between User.uid and the API to add this provider." - provider_successfully_updated: "Provider successfully updated." + it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "Il est obligatoire d'établir la correspondance entre User.uid et l'API pour pouvoir ajouter ce fournisseur." + provider_successfully_updated: "Le fournisseur a bien été mis à jour." an_error_occurred_unable_to_update_the_provider: "Une error est survenue : impossible de mettre à jour le fournisseur." #statistics tables statistics: @@ -800,7 +800,7 @@ fr: entries: "Entrées :" revenue_: "Chiffre d'affaires :" average_age: "Âge moyen :" - years_old: "years old" + years_old: "ans" total: "Total" available_hours: "Heures disponibles à la réservation :" available_tickets: "Places disponibles à la reservation :" @@ -1008,10 +1008,10 @@ fr: api_documentation: "Documentation de l'API" open_api_clients: "Clients OpenAPI" name: "Nom" - calls_count: "Calls count" + calls_count: "Nombre d'appels" token: "Jeton" created_at: "Date de création" - reset_token: "Revoke access" + reset_token: "Révoquer l'accès" client_name: "Nom du client" confirmation_required: "Confirmation requise" do_you_really_want_to_delete_this_open_api_client: "Voulez vous vraiment supprimer ce compte client OpenAPI ?" @@ -1052,7 +1052,7 @@ fr: content: "Ici vous pourrez créer, modifier et supprimer des formations. C'est également l'endroit où vous pourrez valider les formations suivies par vos membres." trainings: title: "Gérer les formations" - content: "

When creating a training, you can define a default number of places. However, the number of actual places may be modified for each session.

The training sessions are scheduled from the administrator tab « Calendar ».

Another thing: it is possible to associate one or more machines with a training. This makes it a prerequisite for the reservation of these machines.

" + content: "

Lors de la création d'une formation, vous pouvez définir un nombre de places par défaut. Néanmoins, le nombre de places effectives pourra être modifié pour chaque session.

La programmation des sessions de formation se fait depuis l'onglet administrateur « Agenda ».

D'autre part, il est possible d'associer une ou plusieurs machines à une formation. Cela permet d'en faire un pré-requis pour la réservation de ces machines.

" filter: title: "Filtre" content: "Par défaut, seules les formations actives sont affichées ici. Affichez les autres en choisissant un autre filtre ici." From 85085f1f09104196a5f9b9ed40679b5112daaaf7 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:13:43 +0100 Subject: [PATCH 125/136] Updated translation documentation --- config/locales/app.public.en.yml | 4 ++-- doc/translation_readme.md | 29 ++++++++++++----------------- 2 files changed, 14 insertions(+), 19 deletions(-) diff --git a/config/locales/app.public.en.yml b/config/locales/app.public.en.yml index e0d3c9fbd..7cce3e890 100644 --- a/config/locales/app.public.en.yml +++ b/config/locales/app.public.en.yml @@ -400,13 +400,13 @@ en: content: "

Find your personal information here as well as all your activity on Fab-manager.

This space is also available for all your members.

" news: title: "News" - content: "

This space allows you to display the latest news from your structure.

You can easily change its content from « Customization », « Home page».

" + content: "

This space allows you to display the latest news from your structure.

You can easily change its content from « Customization », « Home page ».

" last_projects: title: "Last projects" content: "

This carousel scrolls through the latest projects documented by your members.

" last_tweet: title: "Last tweet" - content: "

Le dernier tweet de votre flux Twitter peut s'afficher ici.

Configure it from « Customization », « Home page».

" + content: "

The last tweet of your Tweeter feed can be shown here.

Configure it from « Customization », « Home page ».

" last_members: title: "Last members" content: "The last registered members who have validated their address and agreed to be contacted will be shown here." diff --git a/doc/translation_readme.md b/doc/translation_readme.md index c646e6fcc..51f31dfb4 100644 --- a/doc/translation_readme.md +++ b/doc/translation_readme.md @@ -32,28 +32,23 @@ You can access it at [in-context.translate.fab-manager.com](https://in-context.t ### From the files -If you don't wan't want to use the TMS, you can write translations with in the source files. -This is more complicated and you must know what you're doing. -Please prefer the [TMS method](#using-a-tms) if your're not familiar with software development. +You **should not** translate Fab-manager from the source files, because it will conflict with the TMS. +Please refer to the [TMS method](#using-a-tms) for more details. -First, consider that it can be a good idea to setup a development environment to contribute to the software translation. -This is not mandatory, but this will allow you to test your changes in context and see if anything went wrong, especially with the special syntaxes. -Please refer to the [development readme](development_readme.md) or to the [virtual machine instructions](virtual-machine.md) to setup such an environment. +Anyway, **if you add a new feature** that requires some new translations, just add them to the english files. +You'll be able to provide translations for other languages later, using our TMS. -Once done, check the files located in `config/locales`: +To add the english translations, check the files located in `config/locales`: -- Front app translations (angular.js) are located in `config/locales/app.scope.XX.yml`. - Where scope has one the following meaning : +- Front app translations (angular.js) are located in `config/locales/app.SCOPE.en.yml`. + Where SCOPE has one the following meaning : - admin: translations of the administrator views (manage and configure the FabLab). - logged: translations of the end-user's views accessible only to connected users. - public: translation of end-user's views publicly accessible to anyone. - shared: translations shared by many views (like forms or buttons). -- Back app translations (Ruby on Rails) are located in `config/locales/XX.yml`. -- Emails translations are located in `config/locales/mails.XX.yml`. -- Messages related to the authentication system are located in `config/locales/devise.XX.yml`. - -If you plan to translate the application to a new locale, please consider that the reference translation is French. -Indeed, in some cases, the English texts/sentences can seems confuse or lack of context as they were originally translated from French. +- Back app translations (Ruby on Rails) are located in `config/locales/en.yml`. +- Emails translations are located in `config/locales/mails.en.yml`. +- Messages related to the authentication system are located in `config/locales/devise.en.yml`. To prevent syntax mistakes while translating locale files, we **STRONGLY advise** you to use a text editor which support syntax coloration for YML and Ruby. As an example, [Visual Studio Code](https://code.visualstudio.com/), with the [Ruby extension](https://marketplace.visualstudio.com/items?itemName=rebornix.Ruby) and the [YAML extension](https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml) will do the job. @@ -62,9 +57,9 @@ As an example, [Visual Studio Code](https://code.visualstudio.com/), with the [R #### Front-end translations Front-end translations uses [angular-translate](http://angular-translate.github.io) with interpolations interpreted by [MessageFormat](https://github.com/SlexAxton/messageformat.js/). -**Please read the documentation about the [ICU MessageFormat syntax](http://userguide.icu-project.org/formatparse/messages#TOC-MessageFormat) before translating.** +**Please read the documentation about the [ICU MessageFormat syntax](http://userguide.icu-project.org/formatparse/messages#TOC-MessageFormat) before writing new strings.** -Anyway, it is strongly recommended to use our [translation management system](https://translate.fab-manager.com/). +To translate existing strings, you should use our [translation management system](https://translate.fab-manager.com/). #### Back-end translations From 68ef5ddd6a0bd7f609b6253416851dd07d344d94 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:24:53 +0100 Subject: [PATCH 126/136] updated changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a65de6096..86a94962a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ - Improved contextual help with a modal dialog - Updated translations - Refactored translations to help merging Crowdin PR +- Updated translation documentation - Fix a bug: unable to create new availabilities if SLOT_DURATION is not defined ## v4.3.1 2020 March 04 From aeb79875e011f2b2f7a4ee9fac44bdf12fe2bfd1 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:25:53 +0100 Subject: [PATCH 127/136] New translations app.public.en.yml (Acholi) --- config/locales/app.public.ach.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/app.public.ach.yml b/config/locales/app.public.ach.yml index 2e44d7c96..d29404b25 100644 --- a/config/locales/app.public.ach.yml +++ b/config/locales/app.public.ach.yml @@ -400,13 +400,13 @@ ach: content: "crwdns19700:0crwdne19700:0" news: title: "crwdns19702:0crwdne19702:0" - content: "crwdns20260:0crwdne20260:0" + content: "crwdns20264:0crwdne20264:0" last_projects: title: "crwdns19706:0crwdne19706:0" content: "crwdns19708:0crwdne19708:0" last_tweet: title: "crwdns19710:0crwdne19710:0" - content: "crwdns20262:0crwdne20262:0" + content: "crwdns20266:0crwdne20266:0" last_members: title: "crwdns19714:0crwdne19714:0" content: "crwdns19716:0crwdne19716:0" From c5e85b868392ca639a5bc4e92e882ef67478cbbe Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:25:58 +0100 Subject: [PATCH 128/136] New translations app.shared.en.yml (Spanish) --- config/locales/app.shared.es.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/locales/app.shared.es.yml b/config/locales/app.shared.es.yml index 44fa3f881..61b31decc 100644 --- a/config/locales/app.shared.es.yml +++ b/config/locales/app.shared.es.yml @@ -163,7 +163,7 @@ es: type_is_required: "Se requiere un tipo." group: "Grupo" transversal_all_groups: "Transversal (todos los grupos)" - group_is_required: "Se requiere un tipo." + group_is_required: "Se requiere un grupo." number_of_periods: "Numero de periodos" number_of_periods_is_required: "El numero de periodos es obligatorio." period: "Periodo" @@ -214,7 +214,7 @@ es: user_profile: "Profil utilisateur" warning_incomplete_user_profile_probably_imported_from_sso: "Advertencia: Este perfil de usuario está incompleto. Como el método de autenticación SSO está activo, puede que la cuenta sea importada pero no fusionada. No la modifique a no ser que sepa lo que hace." group: "Grupo" - group_is_required: "Group is required." + group_is_required: "Se requiere un grupo." trainings: "Cursos" tags: "Tags" #partial form to edit/create an authentication provider (SSO) @@ -308,10 +308,10 @@ es: to_credit: 'Credito' wallet_credit_successfully: "La cartera del usuario ha sido acreditada con éxito." a_problem_occurred_for_wallet_credit: "Ocurrió un problema mientras se acreditaba la cartera" - amount_is_required: "The amount is required." + amount_is_required: "Se requiere la cantidad." amount_minimum_1: "La cantidad mínima es 1" - amount_confirm_is_required: "The amount confirmation is required." - amount_confirm_does_not_match: "The amount confirmation does not match." + amount_confirm_is_required: "Debe confirmarse la cantidad." + amount_confirm_does_not_match: "La confirmación de la cantidad no coincide." you_have_amount_in_wallet: "Tiene {amount} {currency} en su cartera" client_have_amount_in_wallet: "El cliente tiene {amount} {currency} en su cartera" wallet_pay_reservation: "Puede pagar directamente su reserva" @@ -415,7 +415,7 @@ es: confirm_payment_of_html: "{ROLE, select, admin{Payment on site} other{Pay}}: {AMOUNT}" #eg. confirm my payment of $20.00 a_problem_occurred_during_the_payment_process_please_try_again_later: "A problem occurred during the payment process. Please try again later." none: "Ninguno" - online_payment_disabled: "Online payment is not available. Please contact the FabLab's reception directly." + online_payment_disabled: "El pago en línea no está disponible. Póngase en contacto directamente con la recepción de FabLab." slot_restrict_plans: "This slot is restricted for the plans below:" slot_restrict_subscriptions_must_select_plan: "The slot is restricted for the subscribers. Please select a plan first." slot_restrict_plans_of_others_groups: "The slot is restricted for the subscribers of others groups." From 4c0ab026c45bfd2ad46fe5f0a0a4e5b7c9324525 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:25:59 +0100 Subject: [PATCH 129/136] New translations app.public.en.yml (Spanish) --- config/locales/app.public.es.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/app.public.es.yml b/config/locales/app.public.es.yml index 52bda75b6..dc3a9de4e 100644 --- a/config/locales/app.public.es.yml +++ b/config/locales/app.public.es.yml @@ -400,13 +400,13 @@ es: content: "

Find your personal information here as well as all your activity on Fab-manager.

This space is also available for all your members.

" news: title: "News" - content: "

This space allows you to display the latest news from your structure.

You can easily change its content from « Customization », « Home page».

" + content: "

This space allows you to display the latest news from your structure.

You can easily change its content from « Customization », « Home page ».

" last_projects: title: "Last projects" content: "

This carousel scrolls through the latest projects documented by your members.

" last_tweet: title: "Last tweet" - content: "

Le dernier tweet de votre flux Twitter peut s'afficher ici.

Configure it from « Customization », « Home page».

" + content: "

The last tweet of your Tweeter feed can be shown here.

Configure it from « Customization », « Home page ».

" last_members: title: "Last members" content: "The last registered members who have validated their address and agreed to be contacted will be shown here." From a7edd2971bcf2b14ad385cdac71be0d4fea0e2eb Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:26:05 +0100 Subject: [PATCH 130/136] New translations app.shared.en.yml (Portuguese) --- config/locales/app.shared.pt.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/locales/app.shared.pt.yml b/config/locales/app.shared.pt.yml index 9a957ec3e..756dedb03 100755 --- a/config/locales/app.shared.pt.yml +++ b/config/locales/app.shared.pt.yml @@ -214,7 +214,7 @@ pt: user_profile: "Perfil de usuário" warning_incomplete_user_profile_probably_imported_from_sso: "Atenção: Esse perfil de usuário está incompleto. As \"single sign-on\" (SSO) authentication is currently enabled, it may probably be an imported but non merged account. Do not modify it unless you know what your doing." group: "Grupo" - group_is_required: "Group is required." + group_is_required: "Grupo é obrigatório." trainings: "Treinamentos" tags: "Tags" #partial form to edit/create an authentication provider (SSO) @@ -308,10 +308,10 @@ pt: to_credit: 'Crédito' wallet_credit_successfully: "Carteira de usuário creditada com sucesso." a_problem_occurred_for_wallet_credit: "Um erro ocorreu ao creditar a carteira" - amount_is_required: "The amount is required." + amount_is_required: "A quantia é obrigatório." amount_minimum_1: "A quantia mínima é 1" - amount_confirm_is_required: "The amount confirmation is required." - amount_confirm_does_not_match: "The amount confirmation does not match." + amount_confirm_is_required: "A confirmação da quantia é obrigatório." + amount_confirm_does_not_match: "A confirmação da quantia não é a mesma da quantia." you_have_amount_in_wallet: "Você tem {amount} {currency} em sua carteira" client_have_amount_in_wallet: "O cliente possui {amount} {currency} em sua carteira" wallet_pay_reservation: "Você pode pagar diretamente sua reserva" @@ -415,7 +415,7 @@ pt: confirm_payment_of_html: "{ROLE, select, admin{Pagamento pelo site} other{Pagar}}: {AMOUNT}" #eg. confirm my payment of $20.00 a_problem_occurred_during_the_payment_process_please_try_again_later: "Um problema ocorreu durante o processo de pagamento. Por favor tente novamente mais tarde." none: "Vazio" - online_payment_disabled: "Online payment is not available. Please contact the FabLab's reception directly." + online_payment_disabled: "O pagamento online não está disponível. Entre em contato diretamente com a recepção do FabLab." slot_restrict_plans: "This slot is restricted for the plans below:" slot_restrict_subscriptions_must_select_plan: "The slot is restricted for the subscribers. Please select a plan first." slot_restrict_plans_of_others_groups: "The slot is restricted for the subscribers of others groups." @@ -432,7 +432,7 @@ pt: end: "End the tour" #help modal help: - title: "Help" + title: "Ajuda" what_to_do: "What do you want to do?" tour: "Start the feature tour" guide: "Open the user's manual" From c1840c00f381e8909208689b4600bdc809997248 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:26:07 +0100 Subject: [PATCH 131/136] New translations app.public.en.yml (Portuguese) --- config/locales/app.public.pt.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/config/locales/app.public.pt.yml b/config/locales/app.public.pt.yml index 5a28f3b22..b1a62ab02 100755 --- a/config/locales/app.public.pt.yml +++ b/config/locales/app.public.pt.yml @@ -148,10 +148,10 @@ pt: from_time_to_time: "Das {START} até {END}" free_entry: "Entrada franca" free_admission: "Admissão grátis" - full_price: "Full price: " + full_price: "Valor inteira: " event_full: "Evento lotado" - still_available: "Available place(s): " - all_day: "All day" + still_available: "Locais disponíveis: " + all_day: "O dia inteiro" #projects gallery projects_list: the_fablab_projects: "Projetos do Fab Lab" @@ -272,7 +272,7 @@ pt: free_entry: "Entrada franca" add_an_event: "Add an event" load_the_next_events: "Load the next events..." - full_price_: "Full price:" + full_price_: "Valor inteira:" to_date: "to" #eg. from 01/01 to 01/05 all_themes: "All themes" #details and booking of an event @@ -284,10 +284,10 @@ pt: beginning: "Início:" ending: "Término:" opening_hours: "Abre ás:" - all_day: "All day" + all_day: "O dia inteiro" from_time: "From" #eg. from 18:00 to 21:00 to_time: "to" #eg. from 18:00 to 21:00 - full_price_: "Full price:" + full_price_: "Valor inteira:" tickets_still_availables: "Tickets ainda disponíveis:" sold_out: "Esgotado." free_entry: "Entrada franca" @@ -312,7 +312,7 @@ pt: delete_this_event: "Only this event" delete_this_and_next: "This event and the following" delete_all: "All events" - event_successfully_deleted: "Event successfully deleted." + event_successfully_deleted: "Evento excluído com sucesso." events_deleted: "The event, and {COUNT, plural, =1{one other} other{{COUNT} others}}, have been deleted" unable_to_delete_the_event: "Unable to delete the event, it may be booked by a member" events_not_deleted: "On {TOTAL} events, {COUNT, plural, =1{one was not deleted} other{{COUNT} were not deleted}}. Some reservations may exists on {COUNT, plural, =1{it} other{them}}." @@ -400,13 +400,13 @@ pt: content: "

Find your personal information here as well as all your activity on Fab-manager.

This space is also available for all your members.

" news: title: "News" - content: "

This space allows you to display the latest news from your structure.

You can easily change its content from « Customization », « Home page».

" + content: "

This space allows you to display the latest news from your structure.

You can easily change its content from « Customization », « Home page ».

" last_projects: title: "Last projects" content: "

This carousel scrolls through the latest projects documented by your members.

" last_tweet: title: "Last tweet" - content: "

Le dernier tweet de votre flux Twitter peut s'afficher ici.

Configure it from « Customization », « Home page».

" + content: "

The last tweet of your Tweeter feed can be shown here.

Configure it from « Customization », « Home page ».

" last_members: title: "Last members" content: "The last registered members who have validated their address and agreed to be contacted will be shown here." From 1c9ea105006884441faf12beac52478ceb10e8f4 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:26:15 +0100 Subject: [PATCH 132/136] New translations app.shared.en.yml (French) --- config/locales/app.shared.fr.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/config/locales/app.shared.fr.yml b/config/locales/app.shared.fr.yml index ea2ff3080..93765dbc2 100644 --- a/config/locales/app.shared.fr.yml +++ b/config/locales/app.shared.fr.yml @@ -214,7 +214,7 @@ fr: user_profile: "Profil utilisateur" warning_incomplete_user_profile_probably_imported_from_sso: "Attention : Le profil de cet utilisateur est incomplet. Comme l'authentification \"single sign-on\" (SSO) est actuellement activée, il s'agit probablement d'un compte importé mais non fusionné. N'y apportez aucune modification sauf si vous savez ce que vous faites." group: "Groupe" - group_is_required: "Group is required." + group_is_required: "Le groupe est requis." trainings: "Formations" tags: "Étiquettes" #partial form to edit/create an authentication provider (SSO) @@ -308,10 +308,10 @@ fr: to_credit: 'Créditer' wallet_credit_successfully: "Le porte-monnaie de l'utilisateur a été chargé avec succès." a_problem_occurred_for_wallet_credit: "Un problème est survenu lors du chargement du porte-monnaie." - amount_is_required: "The amount is required." + amount_is_required: "Le montant est requis." amount_minimum_1: "Le montant minimum est de 1" - amount_confirm_is_required: "The amount confirmation is required." - amount_confirm_does_not_match: "The amount confirmation does not match." + amount_confirm_is_required: "La confirmation du montant est requise." + amount_confirm_does_not_match: "La confirmation du montant ne correspond pas." you_have_amount_in_wallet: "Vous avez {amount} {currency} sur votre porte-monnaie" client_have_amount_in_wallet: "Le client a {amount} {currency} sur son porte-monnaie" wallet_pay_reservation: "Vous pouvez effectuer directement votre paiement de réservation" @@ -415,7 +415,7 @@ fr: confirm_payment_of_html: "{ROLE, select, admin{Paiement sur place} other{Payer}} : {AMOUNT}" #eg. confirm my payment of $20.00 a_problem_occurred_during_the_payment_process_please_try_again_later: "Il y a eu un problème lors de la procédure de paiement. Veuillez réessayer plus tard." none: "Aucune" - online_payment_disabled: "Online payment is not available. Please contact the FabLab's reception directly." + online_payment_disabled: "Le paiement par carte bancaire n'est pas disponible. Merci de contacter directement l'accueil du FabLab." slot_restrict_plans: "Ce créneau est restreint pour les formules d'abonnement ci-dessous:" slot_restrict_subscriptions_must_select_plan: "Le créneau est restreint pour les abonnés. Veuillez tout d'abord sélectionner une formule d'abonnement." slot_restrict_plans_of_others_groups: "Ce créneau est restreint pour les abonnés d'autres groupes." @@ -432,7 +432,7 @@ fr: end: "Terminer la visite" #help modal help: - title: "Help" - what_to_do: "What do you want to do?" - tour: "Start the feature tour" - guide: "Open the user's manual" + title: "Aide" + what_to_do: "Que voulez-vous faire ?" + tour: "Lancer la visite guidée" + guide: "Ouvrir le manuel de l'utilisateur" From 445b07f30d1ef668dd9f8480fb0b4906dc9e805a Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:26:16 +0100 Subject: [PATCH 133/136] New translations app.public.en.yml (French) --- config/locales/app.public.fr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/app.public.fr.yml b/config/locales/app.public.fr.yml index b04ccd984..9615a6e44 100644 --- a/config/locales/app.public.fr.yml +++ b/config/locales/app.public.fr.yml @@ -400,13 +400,13 @@ fr: content: "

Retrouvez ici vos informations personnelles ainsi que toute votre activité sur Fab-manager.

Cet espace est également disponible pour tous vos membres.

" news: title: "Les brèves" - content: "

Cet espace vous permet d'afficher les dernières actualités de votre structure.

Vous pouvez facilement changer son contenu depuis « Personnalisation », « Page d'accueil ».

" + content: "

This space allows you to display the latest news from your structure.

You can easily change its content from « Customization », « Home page ».

" last_projects: title: "les derniers projets" content: "

Ce carousel fait défiler les derniers projets documentés par vos membres.

" last_tweet: title: "Dernier tweet" - content: "

Le dernier tweet de votre flux Twitter peut s'afficher ici.

Configurez-le depuis « Personnalisation », « Page d'accueil ».

" + content: "

The last tweet of your Tweeter feed can be shown here.

Configure it from « Customization », « Home page ».

" last_members: title: "Derniers membres" content: "Les derniers membres inscrits qui ont validé leur adresse et accepté d'être contactés, seront affichés ici." From 038ab3ab95c69b7c26a8f12df9c84b93b7a7562d Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:30:46 +0100 Subject: [PATCH 134/136] New translations app.public.en.yml (French) --- config/locales/app.public.fr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/locales/app.public.fr.yml b/config/locales/app.public.fr.yml index 9615a6e44..0e99373c5 100644 --- a/config/locales/app.public.fr.yml +++ b/config/locales/app.public.fr.yml @@ -400,13 +400,13 @@ fr: content: "

Retrouvez ici vos informations personnelles ainsi que toute votre activité sur Fab-manager.

Cet espace est également disponible pour tous vos membres.

" news: title: "Les brèves" - content: "

This space allows you to display the latest news from your structure.

You can easily change its content from « Customization », « Home page ».

" + content: "

Cet espace vous permet d'afficher les dernières actualités de votre structure.

Vous pouvez facilement changer son contenu depuis « Personnalisation », « Page d'accueil ».

" last_projects: title: "les derniers projets" content: "

Ce carousel fait défiler les derniers projets documentés par vos membres.

" last_tweet: title: "Dernier tweet" - content: "

The last tweet of your Tweeter feed can be shown here.

Configure it from « Customization », « Home page ».

" + content: "

Le dernier tweet de votre flux Tweeter peut être affiché ici.

Configurez-le à partir de « Personnalisation », « Page d'accueil ».

" last_members: title: "Derniers membres" content: "Les derniers membres inscrits qui ont validé leur adresse et accepté d'être contactés, seront affichés ici." From 42b7e95a464f9c10b084bed231c95061c1a42d46 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:34:08 +0100 Subject: [PATCH 135/136] New translations app.public.en.yml (French) --- config/locales/app.public.fr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/app.public.fr.yml b/config/locales/app.public.fr.yml index 0e99373c5..5727cbbf0 100644 --- a/config/locales/app.public.fr.yml +++ b/config/locales/app.public.fr.yml @@ -406,7 +406,7 @@ fr: content: "

Ce carousel fait défiler les derniers projets documentés par vos membres.

" last_tweet: title: "Dernier tweet" - content: "

Le dernier tweet de votre flux Tweeter peut être affiché ici.

Configurez-le à partir de « Personnalisation », « Page d'accueil ».

" + content: "

Le dernier tweet de votre flux Twitter peut être affiché ici.

Configurez-le à partir de « Personnalisation », « Page d'accueil ».

" last_members: title: "Derniers membres" content: "Les derniers membres inscrits qui ont validé leur adresse et accepté d'être contactés, seront affichés ici." From 2e58ad26e1ff3ad3a18260f68680a634fe28834f Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 11 Mar 2020 12:37:55 +0100 Subject: [PATCH 136/136] Version 4.3.2 --- CHANGELOG.md | 2 ++ package.json | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86a94962a..875eab565 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,7 @@ # Changelog Fab-manager +## v4.3.2 2020 March 11 + - Secure the session cookie - Improved contextual help with a modal dialog - Updated translations diff --git a/package.json b/package.json index 44bc32d96..7231820f1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fab-manager", - "version": "4.3.2-dev", + "version": "4.3.2", "description": "Fab-manager is the FabLab management solution. It provides a comprehensive, web-based, open-source tool to simplify your administrative tasks and your marker's projects.", "keywords": [ "fablab",