diff --git a/config/locales/app.admin.es.yml b/config/locales/app.admin.es.yml new file mode 100644 index 000000000..e18bc8caf --- /dev/null +++ b/config/locales/app.admin.es.yml @@ -0,0 +1,656 @@ +es: + app: + admin: + 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." + + machines_edit: + # machine edition + machine_edit: "Editar una máquina" + + calendar: + # manage the trainings & machines slots + admin_calendar: + calendar_management: "Administración de calendario" + trainings: "Formación" + machines: "Máquinas" + spaces: "Espacios" + availabilities: "Disponibilidades" + availabilities_notice: "Exportar a un libro de trabajo de Excel cada ranura disponible para reserva, y su ratio de ocupación." + ongoing_reservations: "Reservas en curso" + no_reservations: "Sin reservas" + confirmation_required: "Confirmación requerida" + do_you_really_want_to_cancel_the_USER_s_reservation_the_DATE_at_TIME_concerning_RESERVATION: "Realmente quieres cancelar la reserva del {USER}, en {DATE} a las {TIME}, respecto {RESERVATION}?" # messageFormat interpolation + reservation_was_successfully_cancelled: "La reserva fué cancelada con éxito." + reservation_cancellation_failed: "Fallo al cancelar la reserva." + unable_to_remove_the_last_machine_of_the_slot_delete_the_slot_rather: "No se puede quitar la última máquina de la ranura. Eliminar la ranura en su lugar." + do_you_really_want_to_remove_MACHINE_from_this_slot: "Realmente quieres borrar la \"{MACHINE}\" de este espacio?" # messageFormat interpolation + this_will_prevent_any_new_reservation_on_this_slot_but_wont_cancel_those_existing: "Esto evitará cualquier nueva reserva en esta ranura, pero no cancelará las existentes." + beware_this_cannot_be_reverted: "Beware: esto no puede ser revertido." + the_machine_was_successfully_removed_from_the_slot: "La máquina se eliminó correctamente de la ranura." + deletion_failed: "Fallo al borrar." + DATE_slot: "{{DATE}} espacio:" # angular interpolation + what_kind_of_slot_do_you_want_to_create: "¿Qué tipo de ranura desea crear??" + training: "Formación" + machine: "Máquina" + space: "Espacio" + next: "Siguiente >" + previous: "< Anterior" + select_some_machines: "Seleccione algunas máquinas" + number_of_tickets: "Número de tickets: " + adjust_the_opening_hours: "Ajustar el horario de apertura" + to_time: "to" # context: hora. ej. "de 18:00 a 21:00" + restrict_this_slot_with_labels_(optional): "Restringir esta ranura con etiquetas (opcional)" + the_slot_START-END_has_been_successfully_deleted: "La ranura {{START}} - {{END}} se ha eliminado correctamente" # angular interpolation + unable_to_delete_the_slot_START-END_because_it_s_already_reserved_by_a_member: "No se puede eliminar la ranura {{START}} - {{END}} porque ya está reservada por un miembror" # angular interpolation + you_should_select_at_least_a_machine: "Debe seleccionar al menos una máquina en esta ranura." + export_is_running_you_ll_be_notified_when_its_ready: "La exportación se está ejecutando. Se le notificará cuando esté listo." + actions: "Acciones" + block_reservations: "Reservas de bloques" + do_you_really_want_to_block_this_slot: "¿Realmente desea bloquear nuevas reservas en esta ranura? Se volverá invisible para los usuarios." + locking_success: "Ranura correctamente bloqueada, no aparecerá más en el calendario del usuario" + locking_failed: "Ocurrió un error. El bloqueo de la ranura ha fallado" + allow_reservations: "Permitir reservas" + do_you_really_want_to_allow_reservations: "¿Realmente desea permitir la reserva de nuevo en esta ranura? Será visible para los usuarios." + unlocking_success: "Ranura desbloqueada con éxito, aparecerá de nuevo en el calendario de usuario" + unlocking_failed: "Ocurrió un error. El desbloqueo de la ranura ha fallado" + reservations_locked: "La reserva está bloqueada" + unlockable_because_reservations: "No se puede bloquear la reserva en esta ranura porque existen algunas reservas no canceladas." + + project_elements: + # management of the projects' components + projects_elements_management: "Gestión de elementos de proyectos" + add_a_material: "Añadir un material" + add_a_new_theme: "Añadir un nuevo tema" + licences: "Licencias" + add_a_new_licence: "Agregar una nueva licencia" + + trainings: + # track and monitor the trainings + training: "Formación" + year_NUMBER: "Año {{NUMBER}}" # angular interpolation + month_of_NAME: "Mes of {{NAME}}" # angular interpolation + NUMBER_reservation: "{NUMBER} {NUMBER, plural, one{reservation} other{reservations}}" # messageFormat interpolation + none: "Nada" + training_validation: "Validación de la formación" + training_of_the_ : "Training of the " # context: fecha. p.ej. "entrenamiento del 1 de septiembre 2012" + you_can_validate_the_training_of_the_following_members: "Puede validar la formación de los siguientes miembros:" + no_reservation: "Sin reserva" + validate_the_trainings: "Validar los entrenamientos" + edition_of_the_description_tooltip: "Edición de la descripción tooltip" + describe_the_training_in_a_few_words: "Describa el entrenamiento en pocas palabras." + description_is_limited_to_255_characters: "La descripción está limitada a 255 caracteres." + description_was_successfully_saved: "La descripción se ha guardado correctamente." + training_successfully_deleted: "Entrenamiento eliminado correctamente." + unable_to_delete_the_training_because_some_users_alredy_booked_it: "No se puede eliminar el entrenamiento porque algunos usuarios ya lo han reservado." + do_you_really_want_to_delete_this_training: "¿De verdad quieres eliminar este entrenamiento?" + + trainings_new: + # create a new training + beware_when_creating_a_training_its_reservation_prices_are_initialized_to_zero: "Tenga cuidado, al crear una formación, sus precios de reserva se inicializan en cero." + dont_forget_to_change_them_before_creating_slots_for_this_training: "No olvides cambiarlos antes de crear espacios para esta formación." + + events: + # events tracking and management + events_monitoring: "Monitoreo de eventos" + manage_filters: "Administrar filtros" + fablab_events: "Eventos de Fablab" + all_events: "Todos los eventos" + passed_events: "Eventos pasados" + events_to_come: "Eventos por venir" + from_DATE: "Desde {{DATE}}" # angular interpolation + from_TIME: "Desde {{TIME}}" # angular interpolation + view_reservations: "Ver reservas" + categories: "Categorías" + add_a_category: "Añadir una categoría" + add_a_theme: "Añadir un tema" + age_ranges: "Rango de edad" + add_a_range: "Añadir un rango" + do_you_really_want_to_delete_this_ELEMENT: "¿Realmente desea eliminar este {ELEMENT, select, category{category} theme{theme} age_range{age range} other{element}}?" # messageFormat interpolation + unable_to_delete_ELEMENT_already_in_use_NUMBER_times: "No se puede eliminar este {ELEMENT, select, category{category} theme{theme} age_range{age range} other{element}} porque ya está asociado con {NUMBER, plural, =0{no events} one{one event} other{{NUMBER} events}}." # messageFormat interpolation + at_least_one_category_is_required: "Se requiere por lo menos una categoría." + unable_to_delete_the_last_one: "No se pudo eliminar el último." + unable_to_delete_an_error_occured: "No se pudo eliminar: se ha producido un error.." + manage_prices_categories: "Gestionar categorías de precios" + prices_categories: "Categorías de precios" + add_a_price_category: "Agregar una categoría de precios" + usages_count: "Cuenta de uso" + price_category: "Categoría de precios" + category_name: "Nombre de la categoría" + category_name_is_required: "El nombre de la categoría es obligatorio." + enter_here_the_conditions_under_which_this_price_is_applicable: "Introduzca aquí las condiciones bajo las cuales este precio es aplicable" + conditions_are_required: "Se requieren condiciones." + price_category_successfully_created: "Categoría de precios creada correctamente." + unable_to_add_the_price_category_check_name_already_used: "No se puede agregar la categoría de precio, compruebe que el nombre no está ya utilizado." + unexpected_error_occurred_please_refresh: "Se ha producido un error inesperado. Actualice la página.." + price_category_successfully_updated: "Categoría de precio actualizada correctamente." + unable_to_update_the_price_category: "No se puede actualizar la categoría de precios." + unable_to_delete_this_price_category_because_it_is_already_used: "No se puede eliminar esta categoría de precio ya que se está utilizando." + 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 + none: "Nada" + every_days: "Todos los dias" + 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" + + event_reservations: + # event reservations list + the_reservations: "Reservas :" + payment_date: "Fecha de pago" + reserved_tickets: "Tickets reservados " + show_the_event: "Mostrar el evento" + no_reservations_for_now: "No hay reservas por ahora." + back_to_monitoring: "Volver a monitorizar" + + pricing: + # subscriptions, prices, credits and coupons management + pricing: + pricing_management: "Gestión de precios" + subscriptions: "Suscripciones" + trainings: "Formaciones" + list_of_the_subscription_plans: "Lista de los planes de suscripción" + beware_the_subscriptions_are_disabled_on_this_application: "Atención, las suscripciones están inhabilitadas en esta aplicación." + you_can_create_some_but_they_wont_be_available_until_the_project_is_redeployed_by_the_server_manager: "Puede crear algunos, pero no estarán disponibles hasta que el proyecto sea reasignado por el administrador del servidor." + for_safety_reasons_please_dont_create_subscriptions_if_you_dont_want_intend_to_use_them_later: "Por razones de seguridad, no cree suscripciones si no tiene la intención de usarlas más tarde." + add_a_new_subscription_plan: "Agregar un nuevo plan de suscripción" + type: "Tipo" + partner: "Socio" + standard: "Estándar" + name: "Nombre" + duration: "Duración" + group: "Grupo" + prominence: "Prominencia" + price: "Precio" + machine_hours: "Horas de la máquina" + these_prices_match_machine_hours_rates_: "Estos precios se ajustan a la tarifas de máquina por horas" + _without_subscriptions: "Sin suscripciones" + machines: "Máquinas" + credits: "Créditos" + subscription: "Suscripción" + related_trainings: "Formación relacionada" + add_a_machine_credit: "Agregar un crédito de máquina" + machine: "Máquina" + hours: "Horas" + related_subscriptions: "Suscripciónes relacionada" + please_specify_a_number: "Por favor, especifique un número." + none: "Nada" # nota gramatical: concordancia con "formación". + 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}}." # angular interpolation + an_error_occurred_unable_to_find_the_credit_to_revoke: "Se ha producido un error: no se puede encontrar el crédito a revocar." + an_error_occurred_while_creating_credit_with_the_TRAINING: "Se ha producido un error al crear crédito con la {{TRAINING}}." # angular interpolation + not_set: "No establecido" + error_a_credit_linking_this_machine_with_that_subscription_already_exists: "Error: un crédito que vincula esta máquina con esa suscripción ya existe." + changes_have_been_successfully_saved: "Los cambios se han guardado correctamented." + credit_was_successfully_saved: "El crédito se ha guardado correctamente." + do_you_really_want_to_delete_this_subscription_plan: "¿Realmente desea eliminar este plan de suscripción?" + subscription_plan_was_successfully_deleted: "Plan de suscripción eliminado correctamente." + unable_to_delete_the_specified_subscription_an_error_occurred: "No se pudo eliminar la suscripción especificada, se produjo un error.." + coupons: "Cupones" + list_of_the_coupons: "Lista de los cupones" + discount: "Descuento" + nb_of_usages: "Número de usos" + status: "Estado" + add_a_new_coupon: "Añadir un nuevo cupón" + disabled: "Desactivado" + expired: "Expirado" + sold_out: "Agotado" + active: "Activo" + confirmation_required: "Confirmación requerida" + do_you_really_want_to_delete_this_coupon: "¿Desea realmente eliminar este cupón?" + coupon_was_successfully_deleted: "El cupón se eliminó correctamente." + unable_to_delete_the_specified_coupon_already_in_use: "No se puede eliminar el cupón especificado: ya se utiliza con algunas facturas." + unable_to_delete_the_specified_coupon_an_unexpected_error_occurred: "No se pudo eliminar el cupón especificado: se produjo un error inesperado." + send_a_coupon: "Enviar un cupón" + coupon: "Cupón" + usages: "Usos" + coupon_successfully_sent_to_USER: "Cupón enviado correctamente a {{USER}}" # angular interpolation + an_error_occurred_unable_to_send_the_coupon: "Un error inesperado impidió el envío del cupón.." + code: "Código" + enabled: "Habilitado" + validity_per_user: "Validez por usuario" + once: "Sólo una vez" + forever: "Cada uso" + valid_until: "Válido hasta (incluido)" + spaces: "Espacios" + these_prices_match_space_hours_rates_: "Estos precios coinciden con las tarifas de espacio por horas" + add_a_space_credit: "Añadir un crédito de espacio" + space: "Espacio" + error_a_credit_linking_this_space_with_that_subscription_already_exists: "Error: un crédito que vincula este espacio con esa suscripción ya existe." + + 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 + 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 + new_plan: + 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_subscription(s)_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: + # edit a subscription plan / machine hours prices + edit_plan: + subscription_plan: "Plan de suscripción:" + prices: "Precios" + copy_prices_from: "Copia los precios desde" + machines: "Máquinas" + machine: "Máquina" + hourly_rate: "Tarifa por hora" + spaces: "Espacios" + 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" + invoices_list: "Lista de facturas" + filter_invoices: "Filtrar facturas" + invoice_#_: "Factura #:" + customer_: "Cliente:" + date_: "Fecha:" + invoice_#: "Factura #" + customer: "Cliente" + credit_note: "Nota de crédito" + display_more_invoices: "Mostrar más facturas..." + invoicing_settings: "Configuración de facturación" + change_logo: "Cambio de logotipo" + john_smith: "John Smith" + john_smith@example_com: "jean.smith@example.com" + invoice_reference_: "Referencia de factura:" + code_: "Código:" + code_disabled: "Código inhabilitado" + order_#: "Orden #:" + invoice_issued_on_DATE_at_TIME: "Factura emitida el {{DATE}} a las {{TIME}}" # angular interpolation + object_reservation_of_john_smith_on_DATE_at_TIME: "Objeto: Reserva de John Smith el {{DATE}} a las {{TIME}}" # angular interpolation + order_summary: "Resumen del pedido:" + details: "Detalles" + amount: "Cantidad" + machine_booking-3D_printer: "Reserva de la máquina- Impresora 3D" + total_amount: "Cantidad total" + total_including_all_taxes: "Total incl. todos los impuestos" + VAT_disabled: "VAT disabled" + including_VAT: "IVA desactivado" + including_total_excluding_taxes: "Incluido Total excl. impuestos" + including_amount_payed_on_ordering: "Incluido el monto pagado en el pedido" + settlement_by_debit_card_on_DATE_at_TIME_for_an_amount_of_AMOUNT: "Liquidación por tarjeta de débito el {{DATE}} a las {{TIME}}, por una cantidad de {{AMOUNT}}" + important_notes: "Notas importantes" + address_and_legal_information: "Dirección e información legal" + invoice_reference: "Referencia de factura" + day: "Día" + "#_of_invoice": "# de factura" + online_sales: "Ventas en línea" + wallet: "Cartera" + refund: "Reembolso" + documentation: "Documentación" + 2_digits_year_(eg_70): "2 dígitos del año (por ejemplo, 70)" + 4_digits_year_(eg_1970): "4 dígitos del año (por ejemplo, 70)" + month_number_(eg_1): "Número del mes (por ejemplo, 1)" + 2_digits_month_number_(eg_01): "Número de mes de 2 dígitos (por ejemplo, 01)" + 3_characters_month_name_(eg_JAN): "3 caracteres nombre del mes (por ejemplo, ENE)" + day_in_the_month_(eg_1): "Día del mes (por ejemplo, 1)" + 2_digits_day_in_the_month_(eg_01): "2 dígitos en el mes (por ejemplo, 01)" + (n)_digits_daily_count_of_invoices_(eg_ddd_002_2nd_invoice_of_the_day): "(n) dígitos, cuenta diaria de facturas (por ejemplo, ddd => 002: 2ª factura del día)" + (n)_digits_monthly_count_of_invoices_(eg_mmmm_0012_12th_invoice_of_this_month): "(n) dígitos, recuento mensual de facturas (por ejemplo, mmmm => 0012: 12ª factura del mes)" + (n)_digits_annual_amount_of_invoices_(eg_yyyyyy_000008_8th_invoice_of_this_year): "(n) dígitos, recuento anual de facturas (ej. aaaaa => 000008: 8ª factura de este año)" + beware_if_the_number_exceed_the_specified_length_it_will_be_truncated_by_the_left: "Cuidado: si el número excede la longitud especificada, será aproximado por la izquierda." + (n)_digits_count_of_orders_(eg_nnnn_0327_327th_order): "(n) dígitos, cuenta diaria de órdenes (eg ddd => 002: segunda orden del día)" + (n)_digits_daily_count_of_orders_(eg_ddd_002_2nd_order_of_the_day): "((n) dígitos, cuenta diaria de órdenes (eg ddd => 002: segunda orden del día)" + (n)_digits_monthly_count_of_orders_(eg_mmmm_0012_12th_order_of_this_month): "(n) dígitos, recuento mensual de pedidos (por ejemplo, mmmm => 0012: 12º orden del mes)" + (n)_digits_annual_amount_of_orders_(eg_yyyyyy_000008_8th_order_of_this_year): "(n) dígitos, recuento anual de órdenes (ej: aaaaa => 000008: octava orden de este año)" + add_a_notice_regarding_the_online_sales_only_if_the_invoice_is_concerned: "Añadir un aviso con respecto a las ventas en línea, sólo si la factura es de interés." + this_will_never_be_added_when_a_refund_notice_is_present: "Esto nunca se agregará cuando se presente un aviso de reembolso." + (eg_X[/VL]_will_add_/VL_to_the_invoices_settled_with_stripe): '(por ejemplo, X [/ VL] agregará "/ VL" a las facturas liquidadas con la raya)' + add_a_notice_regarding_refunds_only_if_the_invoice_is_concerned: "Añada un aviso con respecto a los reembolsos, sólo si la factura es de interés." + this_will_never_be_added_when_an_online_sales_notice_is_present: "Esto nunca se agregará cuando un aviso de venta en línea está presente." + (eg_R[/A]_will_add_/A_to_the_refund_invoices): '(ed. R[/A] añadirá "/A" a las facturas de reembolso)' + add_a_notice_regarding_the_wallet_only_if_the_invoice_is_concerned: "Añadir un aviso con respecto a la cartera, sólo si la factura es de interés." + (eg_W[/PM]_will_add_/PM_to_the_invoices_settled_with_wallet): '(eg. W[/PM] añadirá "/PM" a las facturas liquidadas con cartera)' + code: "Código" + enable_the_code: "Habilitar el código" + enabled: "Habilitado" + disabled: "Desactivado" + order_number: "Número de orden" + elements: "Elementos" + VAT: "IVA" + enable_VAT: "Habilitar IVA" + VAT_rate: "Ratio IVA" + refund_invoice_successfully_created: "Factura de reembolso creada correctamente." + create_a_refund_on_this_invoice: "Crear un reembolso en esta factura" + creation_date_for_the_refund: "Fecha de creación del reembolso" + creation_date_is_required: "Se requiere la fecha de creación." + refund_mode: "Modo de reembolso:" + do_you_want_to_disable_the_user_s_subscription: "¿Quieres inhabilitar la suscripción del usuario?:" + elements_to_refund: "Elementos a reembolsar" + 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"" + by_cash: "En efectivo" + by_cheque: "Mediante cheque" + by_transfer: "Por transferencia" + by_wallet: "Por cartera" + you_must_select_at_least_one_element_to_create_a_refund: "Debe seleccionar al menos un elemento, para crear un reembolso." + unable_to_create_the_refund: "No se puede crear el reembolso" + invoice_reference_successfully_saved: "Referencia de factura guardada correctamente." + an_error_occurred_while_saving_invoice_reference: "Se ha producido un error al guardar la referencia de la factura." + invoicing_code_succesfully_saved: "Código de facturación guardado correctamente." + an_error_occurred_while_saving_the_invoicing_code: "Se ha producido un error al guardar el código de facturación.." + code_successfully_activated: "Código activado correctamente." + code_successfully_disabled: "Código deshabilitado correctamente." + an_error_occurred_while_activating_the_invoicing_code: "Se ha producido un error al activar el código de facturación." + order_number_successfully_saved: "Número de pedido guardado correctamente." + an_error_occurred_while_saving_the_order_number: "Se ha producido un error al guardar el número de orden." + VAT_rate_successfully_saved: "VAT rate successfully saved." + an_error_occurred_while_saving_the_VAT_rate: "La tasa de IVA se ha guardado correctamente." + VAT_successfully_activated: "IVA activado correctamente." + VAT_successfully_disabled: "IVA desactivado correctamente." + an_error_occurred_while_activating_the_VAT: "Se ha producido un error al activar el IVA." + text_successfully_saved: "Texto guardado correctamente." + an_error_occurred_while_saving_the_text: "Se ha producido un error al guardar el texto." + address_and_legal_information_successfully_saved: "Dirección e información legal guardada correctamente." + an_error_occurred_while_saving_the_address_and_the_legal_information: "Se ha producido un error al guardar la dirección y la información legal." + logo_successfully_saved: "Logo guardado correctamente." + an_error_occurred_while_saving_the_logo: "Se ha producido un error al guardar el logotipo.." + + members: + # management of users, labels, groups, and so on + users_management: "Gestión de usuarios" + members: "Miembros" + search_for_an_user: "Buscar un usuario" + add_a_new_member: "Añadir un nuevo miembro" + reservations: "Reservas" + email: "Email" + phone: "Teléfono" + user_type: "Tipo de usuario" + display_more_users: "Mostrar más usuarios...." + administrators: "Administradores" + search_for_an_administrator: "Buscar un administrador" + add_a_new_administrator: "Agregar un nuevo administrador" + groups: "Grupos" + authentication: "Autenticación" + do_you_really_want_to_delete_this_administrator_this_cannot_be_undone: "¿Desea realmente eliminar este administrador? Esto no se puede deshacer." + this_may_take_a_while_please_wait: "Advertencia: esto puede tomar un tiempo, por favor, tenga paciencia." + administrator_successfully_deleted: "Administrador eliminado correctamente." + unable_to_delete_the_administrator: "No se puede eliminar el administrador." + add_a_group: "Añadir un grupo" + group_name: "Nombre del grupo" + changes_successfully_saved: "Cambios guardados correctamente." + an_error_occurred_while_saving_changes: "Se ha producido un error al guardar los cambios." + new_group_successfully_saved: "Nuevo grupo guardado correctamente." + an_error_occurred_when_saving_the_new_group: "Se ha producido un error al guardar el nuevo grupo." + group_successfully_deleted: "Grupo eliminado correctamente." + unable_to_delete_group_because_some_users_and_or_groups_are_still_linked_to_it: "No se puede eliminar el grupo porque algunos usuarios y / o grupos todavía están vinculados a él." + add_a_tag: "Añadir una etiqueta" + tag_name: "Nombre de la etiqueta" + new_tag_successfully_saved: "Nueva etiqueta guardada correctamente." + an_error_occurred_while_saving_the_new_tag: "Se ha producido un error al guardar la nueva etiqueta.." + tag_successfully_deleted: "Etiqueta eliminada correctamente." + an_error_occurred_and_the_tag_deletion_failed: "Se ha producido un error y no se ha podido eliminar la etiqueta.." + search_for_an_authentication_provider: "Buscar un proveedor de autenticación" + add_a_new_authentication_provider: "Agregar un nuevo proveedor de autenticación" + strategy_name: "Nombre de la estrategia" + state: "Estado" + unknown: "Desconocido: " + active: "Activo" + pending: "Pendiente" + previous_provider: "Proveedor anteriorr" + do_you_really_want_to_delete_the_TYPE_authentication_provider_NAME: "¿Realmente desea eliminar la {{TYPE}} proveedor de autenticación: {{NAME}}?" # angular interpolation + authentication_provider_successfully_deleted: "El proveedor de autenticación se eliminó correctamente." + an_error_occurred_unable_to_delete_the_specified_provider: "Se ha producido un error: no se puede eliminar el proveedor especificado." + local_database: "Base de datos local" + o_auth2: "OAuth 2.0" + + members_new: + # add a member + members_new: + add_a_member: "Agregar un miembro" + user_is_an_organization: "El usuario es una organización" + + members_edit: + # edit a member + duration: "Duración:" + expires_at: "Caduca en:" + price_: "Precio:" + offer_free_days: "Ofrecer días gratis" + extend_subscription: "Ampliar suscripción" + user_has_no_current_subscription: "El usuario no tiene una suscripción actual." + subscribe_to_a_plan: "Suscribirse a un plan" + next_trainings: "Próxima formación" + passed_trainings: "Formación completada" + validated_trainings: "Formación validada" + events: "Eventos" + next_events: "Próximos eventos" + no_upcoming_events: "No hay próximos eventos" + NUMBER_full_price_tickets_reserved: "{NUMBER, plural, =0{} one{1 full price ticket reserved} other{{NUMBER} full price tickets reserved}}" # messageFormat interpolation + NUMBER_NAME_tickets_reserved: "{NUMBER, plural, =0{} one{1 {NAME} ticket reserved} other{{NUMBER} {NAME} tickets reserved}}" # messageFormat interpolation + passed_events: "Eventos pasados" + invoices: "Facturas" + invoice_#: "Factura #" + download_the_refund_invoice: "Descargar la factura de reembolso" + expiration_date: "Fecha de caducidad" + you_intentionally_decide_to_extend_the_user_s_subscription_by_offering_him_free_days: "Usted intencionalmente decide extender la suscripción del usuario ofreciéndole días libres." + you_intentionally_decide_to_extend_the_user_s_subscription_by_charging_him_again_for_his_current_subscription: "Usted intencionalmente decide extender la suscripción del usuario al cobrarle de nuevo por su suscripción actual." + until_(expiration_date): "Until (expiration date):" + you_successfully_changed_the_expiration_date_of_the_user_s_subscription: "Ha cambiado correctamente la fecha de caducidad de la suscripción del usuario" + a_problem_occurred_while_saving_the_date: "Se ha producido un problema al guardar la fecha." + new_subscription: "Nueva suscripción" + you_are_about_to_purchase_a_subscription_to_NAME: "Estás a punto de comprar una suscripción a {{NAME}}." # angular interpolation + subscription_successfully_purchased: "Suscripción comprada correctamente." + a_problem_occurred_while_taking_the_subscription: "Se ha producido un problema al realizar la suscripción." + + 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." # messageFormat interpolation + + authentication_new: + # add a new authentication provider (SSO) + 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" + 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." + 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 + evolution: "Evolución" + age_filter: "Filtro de edad" + from_age: "Desde" # contexto: edad. por ejemplo: de 8 a 40 años + to_age: "a" # contexto: edad. por ejemplo: de 8 a 40 años + _years_old: "años" + start: "Principio:" + end: "Final:" + custom_filter: "Filtro personalizado" + NO_: "NO" + criterion: "Criterio:" + value: "Valor:" + exclude: "Excluir" + entries: "Entradas:" + revenue_: "Ingresos:" + average_age: "Edad media:" + years_old: "años" + total: "Total" + available_hours: "Horas disponibles para reservar:" + available_tickets: "Tickets disponibles para reservar:" + gender: "Genero" + age: "Edad" + revenue: "Ingresos" + unknown: "Desconocido" + user_id: "ID de usuario" + display_more_results: "Mostrar más resultados" + export_statistics_to_excel: "Exportar estadísticas a Excel" + export_all_statistics: "Exportar todas las estadísticas" + export_the_current_search_results: "Exportar los resultados de búsqueda actuales" + export: "Exportar" + + stats_graphs: + # statistics graphs + data: "Datos" + day: "Dia" + week: "Semana" + start: "Inicio:" + end: "Final:" + revenue: "Ingresos" + top_list_of: "Lista top de" + number: "Número" + week_short: "Semana" + week_of_START_to_END: "Semana del {{START}} a {{END}}" # angular interpolation + no_data_for_this_period: "No hay datos para este periodo" + + settings: + # global application parameters and customization + settings: + title: "Título" + customize_the_application: "Personalizar la aplicación" + general: "General" + fablab_title: "Título del FabLab" + fablab_name: "Nombre del FabLab " + title_concordance: "Concordancia de título" + male: "Masculino." + female: "Hembra." + eg: "ej:" + about: "Sobre" + male_preposition: "el" + female_preposition: "la" + customize_information_messages: "Personalizar mensajes de información" + message_of_the_machine_booking_page: "Mensaje de la página de reserva de la máquina:" + type_the_message_content: "Escriba el contenido del mensaje" + warning_message_of_the_training_booking_page: "Warning message of the training booking page:" + information_message_of_the_training_reservation_page: "Information message of the training reservation page:" + message_of_the_subscriptions_page: "Mensaje de advertencia de la página de reserva de formación:" + message_of_the_events_page: "Mensaje de la página de eventos:" + message_of_the_spaces_page: "Mensaje de la página de espacios:" + legal_documents: "Documentos legales" + if_these_documents_are_not_filled_no_consent_about_them_will_be_asked_to_the_user: "Si no se llenan estos documentos, no se pedirá su consentimiento." + general_terms_and_conditions_(T&C): "Términos Generales y Condiciones (T&C)" + terms_of_service_(TOS): "Términos de servicio (TOS)" + customize_the_graphics: "Personalizar los gráficos" + for_an_optimal_rendering_the_logo_image_must_be_at_the_PNG_format_with_a_transparent_background_and_with_an_aspect_ratio_3.5_times_wider_than_the_height: "Para una representación óptima, la imagen del logotipo debe estar en el formato PNG con un fondo transparente y una relación de aspecto 3,5 más ancha que la altura." + concerning_the_favicon_it_must_be_at_ICO_format_with_a_size_of_16x16_pixels: "En cuanto al favicon, debe estar en formato ICO con un tamaño de 16x16 píxeles." + remember_to_refresh_the_page_for_the_changes_to_take_effect: "Recuerde actualizar la página para que los cambios surtan efecto." + logo_(white_background): "Logo (fondo blanco)" + change_the_logo: "Cambiar el logotipo" + logo_(black_background): "Logo (fondo negro)" + favicon: "Favicon" + change_the_favicon: "Cambiar el favicon" + main_colour: "Color principal:" + primary: "Primario" + secondary_colour: "Color secundario:" + secondary: "Secundario" + background_picture_of_the_profile_banner: "Imagen de fondo de la bandera del perfil" + change_the_profile_banner: "Cambiar la bandera del perfil" + home_page: "Página de inicio" + news_of_the_home_page: "Noticias de la página principal:" + type_your_news_here: "Escriba sus noticias aquí" + leave_it_empty_to_not_bring_up_any_news_on_the_home_page: "Déjelo vacío para no abrir ninguna noticia en la página principal" + twitter_stream: "Twitter Stream:" + name_of_the_twitter_account: "Nombre de la cuenta de Twitter" + title_of_the_about_page: "Título de la página Acerca de" + shift_enter_to_force_carriage_return: "MAYÚS + ENTRAR para forzar el retorno de carro" + input_the_main_content: "Introduzca el contenido principal" + drag_and_drop_to_insert_images: "Arrastrar y soltar para insertar imágenes" + input_the_fablab_contacts: "Ingrese los contactos de FabLab" + reservations: "Reservas" + reservations_parameters: "Parámetros de reservas" + confine_the_booking_agenda: "Confine la agenda de reserva" + opening_time: "Hora de apertura" + closing_time: "Tiempo de cierre" + max_visibility: "Máxima visibilidad (en meses)" + visibility_for_yearly_members: "Para las suscripciones en curso, por lo menos 1 año" + visibility_for_other_members: "Para todos los demás miembros" + ability_for_the_users_to_move_their_reservations: "Capacidad para que los usuarios muevan sus reservas" + reservations_shifting: "Cambio de reservas" + prior_period_(hours): "Período anterior (horas)" + enabled: "Habilitado" + disabled: "Deshabilitado" + ability_for_the_users_to_cancel_their_reservations: "Capacidad para que los usuarios cancelen sus reservas" + reservations_cancelling: "Cancelaciones de reservas" + reservations_reminders: "Recordatorios de reservas" + notification_sending_before_the_reservation_occurs: "Envío de notificaciones antes de la reserva" + customization_of_SETTING_successfully_saved: "Personalización de la {{SETTING}} guardado con éxito." # angular interpolation + file_successfully_updated: "Archivo actualizado correctamente." + name_genre: "Concordancia del título" + machine_explications_alert: "mensaje de explicación en la página de reserva de la máquina" + training_explications_alert: "mensaje de explicación en la página de reserva de formación" + training_information_message: "mensaje de información en la página de reserva de la máquina" + subscription_explications_alert: "mensaje de explicación en la página de suscripción" + event_explications_alert: "mensaje de explicación en la página de reserva del evento" + space_explications_alert: "mensaje de explicación en la página de reserva de espacio" + main_color: "Color principal" + secondary_color: "color secundario" + home_blogpost: "Resumen de la página de inicio" + twitter_name: "Twitter feed name" + about_title: "Título de la página \"Acerca de\"" + about_body: "Contenido de la página \"Acerca de\"" + about_contacts: "Página contactos\"Acerca de\"" + booking_window_start: "hora de apertura" + booking_window_end: "hora de cierre" + booking_move_enable: "Activar cambio de reserva" + booking_move_delay: "Demora de reserva" + booking_cancel_enable: "Habilitar cancelar reserva" + booking_cancel_delay: "Cancelar demora de reserva" + reminder_enable: "Recordatorio de reserva" + reminder_delay: "demora antes de enviar el recordatorio" + default_value_is_24_hours: "Si el campo es dejado vacio: 24 horas." + visibility_yearly: "máxima visibilidad para suscriptores anuales" + visibility_others: "máxima visibilidad para otros miembros" + + open_api_clients: + add_new_client: "Crear un nuevo cliente de API" + api_documentation: "Documentation API" + open_api_clients: "Clientes OpenAPI" + calls_count: "Número de llamadas" + created_at: "Fecha de creación" + reset_token: "revocar el acceso" + client_name: "Nombre del cliente" + do_you_really_want_to_delete_this_open_api_client: "¿Desea realmente eliminar este cliente OpenAPI?" + do_you_really_want_to_revoke_this_open_api_access: "¿Realmente desea revocar este acceso? Se borrará y reemplazará el token actual." + client_successfully_created: "Cliente creado correctamente." + client_successfully_updated: "Cliente actualizado correctamente." + client_successfully_deleted: "Cliente borrado correctamente." + access_successfully_revoked: "Acceso revocado correctamente." + + space_new: + # create a new space + space_new: + add_a_new_space: "Añadir un espacio nuevo" + watch_out_when_creating_a_new_space_its_prices_are_initialized_at_0_for_all_subscriptions: ¡Cuidado! Al crear un nuevo espacio, sus precios se inicializan en 0 para todas las suscripciones." + consider_changing_its_prices_before_creating_any_reservation_slot: "Considere cambiar sus precios antes de crear cualquier espacio de reserva." + add_this_space: "Añadir este espacio" + + space_edit: + # modify an exiting space + space_edit: + edit_the_space_NAME: "Edit the space: {{NAME}}" # angular interpolation + validate_the_changes: "Validar los cambios" diff --git a/config/locales/app.logged.es.yml b/config/locales/app.logged.es.yml new file mode 100644 index 000000000..b57763bb5 --- /dev/null +++ b/config/locales/app.logged.es.yml @@ -0,0 +1,130 @@ +es: + app: + logged: + profileCompletion: + # 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 {NAME}, al iniciar sesión desde" # messageFormat interpolation + we_need_some_more_details: "Para finalizar la configuración de la plataforma, necesitamos algunos detalles más." + your_email_is_already_used_by_another_account_on_the_platform: "Parece que su dirección de correo electrónico ya está siendo utilizada por otro usuario. Compruebe su dirección de correo electrónico e ingrese debajo del código que le hemos enviado." + please_fill_the_following_form: "rellene el siguiente formulario, por favor" + some_data_may_have_already_been_provided_by_provider_and_cannot_be_modified: "Algunos datos pueden haber sido proporcionados ya por {{NAME}} y no pueden modificarse" # angular interpolation + then_click_on_: "haz click en" + _to_start_using_the_application: "para empezar a usar la aplicación" + new_on_this_platform: "¿Nuevo en esta plataforma?" + your_email_: "Su e-mail" + _is_currently_associated_with_another_account_on_this_platform: "ya está asociado con otra cuenta en esta plataforma." + please_click_to_change_email_associated_with_your_PROVIDER_account: "Si este no es su mail, por favor, haz click en el siguiente botón para cambiar el mail asociado con su cuenta {{PROVIDER}} ." # angular interpolation + do_you_already_have_an_account: "¿Ya tiene una cuenta?" + do_not_fill_the_form_beside_but_specify_here_the_code_you_ve_received_by_email_to_recover_your_access: "No rellene el formulario,escriba aquí el código que ha recibido por correo electrónico para recuperar su acceso." + just_specify_code_here_to_recover_access: "Simplemente especifica aquí el código que has recibido en tu correo electrónico para recuperar tu acceso." + i_did_not_receive_the_code: "No he recibido ningún código" + authentification_code: "Código de autentificación" + confirm_my_code: "Confirmar código" + an_unexpected_error_occurred_check_your_authentication_code: "Ha ocurrido un error inesperado, por favor, revise su código de autentificación." + send_code_again: "Enviar el código de nuevo" + email_address_associated_with_your_account: "Email asociado con su cuenta" + email_format_is_incorrect: "El formato de email incorrecto" + code_successfully_sent_again: "El mail ha sido enviado otra vez con éxito" + + dashboard: + # dashboard: public profile + profile: + empty: '' + 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" + no_subscriptions: "Sin suscripciones" + i_want_to_subscribe: "Quiero suscribirme" + to_come: "por venir" + approved: "aprobado" + projects: "Projectos" + no_projects: "Sin projectos" + labels: "Etiquetas" + no_labels: "Sin etiquetas" + delete_my_account: "Eliminar mi cuenta" + edit_my_profile: "Editar mi perfil" + your_group_has_been_successfully_changed: "Su grupo ha sido cambiado con exito." + an_unexpected_error_prevented_your_group_from_being_changed: "Un error inesperado impidió que su grupo fuese cambiado." + do_you_really_want_to_delete_your_account: "¿Está seguro de querer eliminar su cuenta?" + all_data_relative_to_your_projects_will_be_lost: "Todo dato relacionado con sus proyectos se perderá" + your_user_account_has_been_successfully_deleted_goodbye: "Su cuenta ha sido eliminada con éxito. Adiós" + an_error_occured_preventing_your_account_from_being_deleted: "Un error inesperado impidió que su cuenta fuese eliminada." + projects: + # dashboard: my projects + you_dont_have_any_projects: "Aún no tiene proyectos." + author: "Autor" + collaborator: "Colaborador" + trainings: + # dashboard: my trainings + your_next_trainings: "Sus próximos cursos" + your_previous_trainings: "Sus cursos anteriores" + your_approved_trainings: "Sus cursos aprobados" + 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" + NUMBER_normal_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{normal place reserved} other{normal places reserved}}" # messageFormat interpolation + NUMBER_of_NAME_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{of {NAME} place reserved} other{of {NAME} places reserved}}" # messageFormat interpolation + invoices: + # dashboard: my invoices + reference_number: "Numero de referencia" + + 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" + display_more_members: "Ver más miembros" + no_members_for_now: "Aún no hay miembros" + avatar: "Avatar" + + projects_new: + # add a new project + add_a_new_project: "Añadir nuevo proyecto" + save_button_value: "Guardar borrador" # "Guardar borrador" + + projects_edit: + # modify an existing project + save_button_value: "Guardar" # "Guardar" + edit_the_project: "Editar proyecto" + publish: "Publicar" + + machines_reserve: + # book a machine + machine_planning: "Planning de la máquina" + i_ve_reserved: "He reservado" + not_available: "No disponible" + i_reserve: "reservo" + i_shift: "reemplazo" + i_change: "cambio" + + 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") + all_trainings: "Todos los cursos" + cancel_my_selection: "Cancelar mi selección" + i_ve_reserved: "He reservado" + + space_reserve: + # book a space + space_reserve: + planning_of_space_NAME: "Planes de {{NAME}} " # angular interpolation + i_ve_reserved: "he reservado" + i_shift: "reemplazo" + i_change: "cambio" + + notifications: + notifications_center: "Centro de notificaciones" + mark_all_as_read: "Marcar como leido" + notif_title: "Titulo" + no_new_notifications: "No hay notificaciones nuevas." + archives: "Archivos" + no_archived_notifications: "No hay notificaciones archivadas." + load_the_next_notifications: "Cargar las siguientes notificaciones..." diff --git a/config/locales/app.public.es.yml b/config/locales/app.public.es.yml new file mode 100644 index 000000000..2ab560bdd --- /dev/null +++ b/config/locales/app.public.es.yml @@ -0,0 +1,277 @@ +es: + app: + public: + common: + # header and "about" page + about_the_fablab: "Sobre {NAME}" # messageFormat interpolation + return: "Volver" + + # dashboard sections + dashboard: "Panel" + my_profile: "My Perfil" + my_settings: "Mis ajustes" + my_projects: "Mis proyectos" + my_trainings: "Mis cursos" + my_events: "Mis eventos" + my_invoices: "Mis facturas" + my_wallet: "Mi cartera" + + # login/logout + sign_out: "Salir" + sign_up: "Entrar" + sign_in: "Registrarse" + + # left menu + notifications: "Notificaciones" + admin: "Administrador" + reduce_panel: "Reducir panel" + + # left menu (public) + home: "Menú principal" + reserve_a_machine: "Reservar una máquina" + trainings_registrations: "Registro de cursos" + events_registrations: "Registro de eventos" + reserve_a_space: "Reservar un espacio" + projects_gallery: "Galería de proyectos" + subscriptions: "Suscripciones" + public_calendar: "Calendario" + + # left menu (admin) + trainings_monitoring: "Monitorización de cursos" + select_a_training: "Selecionar un curso" + manage_the_calendar: "Gestionar calendario" + manage_the_users: "Gestionar usuarios" + manage_the_invoices: "Gestionar facturas" + subscriptions_and_prices: "Suscripciones y precios" + manage_the_events: "Gestionar eventos" + manage_the_machines: "Gestionar máquinas" + manage_the_spaces: "Gestionar espacios" + manage_the_projects_elements: "Gestionar los elementos de los proyectos" + statistics: "Estadísticas" + customization: "Customización" + open_api_clients: "Clientes OpenAPI" + + # account creation modal + create_your_account: "Crear su cuenta" + man: "Hombre" + woman: "Mujer" + gender_is_required: "El genero es obligatorio." + your_first_name: "Su nombre" + first_name_is_required: "El nombre es obligatorio." + your_surname: "Su apellido" + surname_is_required: "El apellido es obligatorio." + your_pseudonym: "Su seudónimo" + pseudonym_is_required: "El seudónimo es obligatorio." + your_email_address: "Su e-mail" + email_is_required: "El e-mail es obligatorio." + your_password: "Su contraseña" + password_is_required: "La contraseña es obligatoria." + password_is_too_short_(minimum_8_characters): "La contraseña es demasiado corta (minimo 8 caracteres)" + type_your_password_again: "Escriba su contraseña otra vez" + password_confirmation_is_required: "Confirmar su contraseña es obligatorio." + password_does_not_match_with_confirmation: "Las contraseñas no coinciden." + i_am_an_organization: "Soy una organización" + name_of_your_organization: "Nombre de su organización" + organization_name_is_required: "El nombre de su organización es obligatorio." + address_of_your_organization: "Dirección de su organización" + organization_address_is_required: "La dirección de su organización es obligatoria." + your_user_s_profile: "Su perfil de usuario" + user_s_profile_is_required: "El perfil de usuario es obligatorio." + birth_date: "Fecha de nacimiento" + birth_date_is_required: "La fecha de nacimiento es obligatoria." + phone_number: "Número de telefono" + phone_number_is_required: "El número de telefono es obligatorio." + i_authorize_Fablab_users_registered_on_the_site_to_contact_me: "Autorizo a los usuarios registrados en este FabLab a contactarme" + i_accept_to_receive_information_from_the_fablab: "Acepto recibir información del FabLab" + i_ve_read_and_i_accept_: "He leido y acepto" + _the_fablab_policy: "la política de FabLab" + + # 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: "Conexión" + password_forgotten: "¿Ha olvidado su contraseña?" + not_registered_to_the_fablab: "¿No está registrado en el fatlab aún?" + 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." + + # 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 + version: "Version:" + + # Notifications + and_NUMBER_other_notifications: "y {NUMBER, plural, =0{no other notifications} =1{one other notification} otras{{NUMBER} other notifications}}..." # messageFormat interpolation + + 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" + + home: + # 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 + fablab_s_next_events: "Próximos eventos del FabLab" + every_events: "Todos los eventos" + from_date_to_date: "Desde {{START}} hasta {{END}}" # angular interpolation + on_the_date: "El {{DATE}}" # angular interpolation + from_time_to_time: "Desde {{START}} hasta {{END}}" # angular interpolation + free_entry: "Entrada gratuita" + free_admission: "Admisión gratuita" + full_price: "Precio final" + event_full: "Evento lleno" + + projects_list: + # projects gallery + the_fablab_projects: "Los proyectos del FabLab" + search_over_the_whole_network: "Buscar en toda la red de FabLab" + tooltip_openlab_projects_switch: "La busqueda en toda la red le permite buscar los proyectos de todos los FabLab que usan esta característica" + openlab_search_not_available_at_the_moment: "La busqueda en toda la red no está disponible en este momento. Puede seguir buscando proyectos en este FabLab." + project_search_result_is_empty: "Lo sentimos, no hemos encontrado nada." + reset_all_filters: "Limpiar filtros" + search: "Buscar" + all_projects: "Todos los proyectos" + my_projects: "Mis proyectos" + projects_to_whom_i_take_part_in: "Proyectos de los que formo parte" + all_machines: "Todas las máquinas" + all_materials: "Todo el material" + load_next_projects: "Cargar más proyectos" + + projects_show: + # details of a projet + project_description: "Descripción de proyecto" + by_name: "Por {{NAME}}" # angular interpolation + posted_on_: "Subido el" + CAD_file_to_download: "{COUNT, plural, =0{No CAD files} =1{CAD file to download} other{CAD files to download}}" # messageFormat interpolation + licence: "Licencia" + report_an_abuse: "Reportar una infracción" + unauthorized_operation: "Operación no autorizada" + your_report_was_successful_thanks: "Su informe se ha enviado con éxito. Gracias." + an_error_occured_while_sending_your_report: "Ha ocurrido un error al enviar el informe." + your_first_name: "Su nombre" + your_first_name_is_required: "Su nombre es obligatorio." + your_surname: "Su apellido" + your_surname_is_required: "Su apellido es obligatorio." + your_email_address: "Su mail" + your_email_address_is_required: "Su mail es obligatorio." + tell_us_why_this_looks_abusive: "Cuéntanos porqué te parece abusivo" + 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 + the_fablab_s_machines: "Las máquinas del FabLab" + add_a_machine: "Añadir una máquina" + _or_the_: " o el " + + machines_show: + # details of a machine + book_this_machine: "Alquilar máquina" + files_to_download: "Archivos a descargar" + projects_using_the_machine: "Proyectos que utilizan esta máquina" + _or_the_: " o el " + 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 + the_trainings: "Lista de cursos" + + 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" + 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 + subcriptions: "Suscripciones" + i_choose_that_plan: "Elijo este plan" + i_subscribe_online: "Suscribirme online" + i_already_subscribed: "Ya me he suscrito" + more_information: "Más información" + your_subscription_expires_on_the_DATE: "Su suscripción termina {{DATE}}" # angular interpolation + my_group: "My grupo" + his_group: "{GENDER, select, male{His} female{Her} other{Its}} group" # messageFormat interpolation + he_wants_to_change_group: "{ROLE, select, admin{The user wants} other{I want}} cambiar el grupo" # messageFormat interpolation + change_my_group: "Cambiar {ROLE, select, admin{{GENDER, select, male{his} female{her} other{its}}} other{my}} grupo" # messageFormat interpolation + your_subscription_has_expired_on_the_DATE: "Sus suscripcion expiró el {{DATE}}" # angular interpolation + you_ve_just_payed_the_: "acaba de pagar" + thank_you_your_subscription_is_successful: "Gracias. Su suscripción ha tenido éxito" + your_group_was_successfully_changed: "Su grupo ha sido cambiado correctamente." + the_user_s_group_was_successfully_changed: "Los usuarios del grupo han cambiado correctamente." + an_error_prevented_your_group_from_being_changed: "Un error impidió que su grupo fuese cambiado." + an_error_prevented_to_change_the_user_s_group: "Un error impidió cambiar los componentes del grupo." + an_error_occured_during_the_payment_process_please_try_again_later: "Ha ocurrido un error mientras se procesaba el pago. Intentelo en unos minutos." + subscription_confirmation: "Confirmar suscripción" + here_is_the_NAME_subscription_summary: "Resumen de la suscrpición de{{NAME}}:" # angular interpolation + + events_list: + # Fablab's events list + the_fablab_s_events: "Los eventos del FabLab" + all_categories: "Todas las categorías" + for_all: "Para todo" + + events_show: + # details and booking of an event + event_description: "Descripción del evento" + downloadable_documents: "Archivos descargables" + informations_and_booking: "Información y reservas" + beginning: "Empieza:" + ending: "Termina:" + opening_hours: "Hora de apertura:" + tickets_still_availables: "Entradas disponibles:" + sold_out: "Entradas vendidas." + free_entry: "Entrada gratuita" + ticket: "{NUMBER, plural, one{ticket} other{tickets}}" # messageFormat interpolation + make_a_gift_of_this_reservation: "Regalar esta reserva" + you_can_find_your_reservation_s_details_on_your_: "Puede encontrar los detalles de su reserva en" + you_booked_(DATE): "You booked ({{DATE}}):" # angular interpolation + book: "Reservar" + change_the_reservation: "Cambiar la reserva" + you_can_shift_this_reservation_on_the_following_slots: "Puede cambiar la reserva en los siguientes campos:" + + calendar: + # public calendar + calendar: + calendar: "Calendario" + show_unavailables: "Mostrar campos inválidos" + filter_calendar: "Filtrar calendario" + trainings: "Cursos" + machines: "Máquinas" + spaces: "Espacios" + events: "Eventos" + + spaces_list: + # list of spaces + the_spaces: "Espacios" + add_a_space: "Añadir espacios" + + space_show: + # display the details of a space + space_show: + book_this_space: "Reservar este espacio" + unauthorized_operation: "Operación no autorizada" + confirmation_required: "Confirmación requerida" + do_you_really_want_to_delete_this_space: "¿Está seguro de que quiere borrar este espacio?" + the_space_cant_be_deleted_because_it_is_already_reserved_by_some_users: "No puede borrarse este espacio porque está siendo usado por otros usuarios." + characteristics: "Características" + files_to_download: "Archivos para descargar" + projects_using_the_space: "Proyectos que usan el espacio" \ No newline at end of file diff --git a/config/locales/app.shared.es.yml b/config/locales/app.shared.es.yml new file mode 100644 index 000000000..6757e64aa --- /dev/null +++ b/config/locales/app.shared.es.yml @@ -0,0 +1,450 @@ +es: + app: + shared: + buttons: + # translations of common buttons + confirm_changes: "Confirmar cambios" + consult: "Consultar" + edit: "Editar" + change: "Cambiar" + delete: "Borrar" + browse: "Abrir" + cancel: "Cancelar" + close: "Cerrar" + clear: "Limpiar" + today: "Hoy" + confirm: "Confirmar" + save: "Guardar" + "yes": "Sí" + "no": "No" + apply: "Aplicar" + confirm_(payment_on_site): "Confirmar (Pago)" + + elements: + # various translations used many times in the application + group: "Grupo" + subscription: "Suscripción" + trainings: "Cursos" + no_trainings: "Sin cursos" + confirmation_required: "Confirmación requerida" + description: "Descripción" + machines: "Máquinas" + events: "Eventos" + materials: "Materiales" + date: "Día" + price: "Precio" + download_the_invoice: "Descargar factura" + download_the_credit_note: "Descargar nota de crédito" + no_invoices_for_now: "Sin facturas por ahora." + email_address: "dirección email " + user: "Usuario" + pseudonym: "Seudónimo" + all_day: "Todo el día" + reservation_was_successfully_cancelled: "La reserva ha sido cancelada con éxito." + title: "Titulo" + total_: "TOTAL :" + full_price_: "Precio final:" + rough_draft: "Borrador" + machines_and_materials: "Máquinas y materiales" + collaborators: "Colaboradores" + summary: "Resumen" + you_ve_just_selected_a_: "Acaba de seleccionar" # you_ve_just_selected_a_ + _subscription + _subscription: "suscripción" + confirm_and_pay: "Confirmar y pagar" + your_invoice_will_be_available_soon_from_your_: "Su factura pronto estará disponible desde su " + add_an_event: "Añadir evento" + load_the_next_events: "Cargar próximos eventos" + no_passed_events: "Sin eventos anteriores" + dates: "Fechas:" + thank_you_your_payment_has_been_successfully_registered: "Gracias. Su pago se ha registrado correctamente" + surname: "Apellidos" + first_name: "Nombre" + address: "Dirección" + interests: "Intereses" + CAD_softwares_mastered: "Softwares dominados" + name: "Nombre" + step_N: "Paso {{INDEX}}" # angular interpolation + themes: "Temas" + tags: "Etiquetas" + technical_specifications: "Especificaciones técnicas" + online_payment: "Pago online" + type: "Tipo" + partner: "Compañero" + standard: "Estándar" + year: "año" + month: "Mes" + subscription_price: "Precio de la suscripción" + model: "Modelo" + from_date: "Desde" # context: date. eg: "Desde 01/01 to 01/05" + from_time: "Desde" # context: time. eg. "Desde 18:00 to 21:00" + to_date: "Hasta" # context: date. eg: "Hasta 01/01 to 01/05" + to_time: "Hasta" # context: time. eg. "Hasta 18:00 to 21:00" + or: "ó" + change_my_data: "Cambiar mis datos" + sync_my_profile: "Sincronizar mi perfil" + once_your_data_are_up_to_date_: "Una vez sus datos hayan sido actualizados," + _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." + add_a_project: "Añadir un proyecto" + illustration: "Ilustración" + add_an_illustration: "Añadir una ilustración." + book: "Reservar" + description_is_required: "Se requiere una descripción." + name_is_required: "Se requiere un nombre." + all_themes: "Todos los temas" + filter: 'Filtro' + confirm_payment_of_html: "{ROLE, select, admin{Payment on site} other{Pay}}: {AMOUNT}" # messageFormat interpolation (context: confirm my payment of $20.00) + export_is_running_you_ll_be_notified_when_its_ready: "Exportando, será notificado cuando esté listo." + share_on_facebook: "Compartir en Facebook" + share_on_twitter: "Compartir en Twitter" + incomplete_profile: "Perfil completo" + unlimited: "Ilimitado" + + 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" + + user: + # user edition form + add_an_avatar: "Añadir un avatar" + pseudonym: "Seudónimo" + email_address_is_required: "Se requiere un email." + change_password: "Cambiar contraseña" + new_password: "Nueva contraseña" + confirmation_of_new_password: "Confirmar nueva contraseña" + confirmation_of_password_is_required: "Se requiere confirmar la contraseña." + confirmation_of_password_is_too_short_(minimum_8_characters): "la contraseña es demasiado corta (minimo 8 caracteres)." + confirmation_mismatch_with_password: "Las contraseñas no coinciden." + organization_name: "Nombre de la organización" + organization_address: "Dirección de la organización" + date_of_birth: "Fecha de nacimiento" + date_of_birth_is_required: "Se requiere una fecha de nacimiento." + website: "Página web" + job: "Ocupación" + + project: + # project edition form + illustration: "Ilustración" + add_an_illustration: "Añadir una ilustración" + CAD_file: "Fichero CAD" + allowed_extensions: "Extensiones permitidas:" + add_a_new_file: "Añadir un nuevo archivo" + steps: "Pasos" + step_title: "Título de los pasos" + add_a_picture: "Añadir imagen" + change_the_picture: "Cambiar imagen" + delete_the_step: "Eliminar el paso" + do_you_really_want_to_delete_this_step: "Está seguro de querer borrar el paso?" + add_a_new_step: "añadir un nuevo paso" + publish_your_project: "Publicar proyecto" + employed_materials: "Material empleados" + employed_machines: "Máquinas empleadas" + creative_commons_licences: "Licencias Creative Commons" + + machine: + # machine edition form + technical_specifications_are_required: "Se requieren especificaciones técnicas." + attached_files_(pdf): "archivos anclados (pdf)" + attach_a_file: "adjuntar archivo" + add_an_attachment: "añadir archivo adjunto" + validate_your_machine: "Validar su máquina" + + plan_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 + select_a_member: "Selecciona un miembro" + start_typing: "Empezar a escribir..." + please_select_a_member_first: "Por favor, selecciona un miembro de la lista" + + stripe: + # stripe payment modal + i_have_read_and_accept_: "He leido y acepto" + _the_general_terms_and_conditions: "Los términos y condiciones." + enter_your_card_number: "Introduce el número de tu tarjeta" + 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" + + 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 + title_is_required: "Se requiere un título." + matching_visual: "Coincidencia visual" + choose_a_picture: "Selecciona una imagen" + attachments: "Adjuntos" + add_a_new_file: "añadir un archivo" + event_type: "Tipo de evento" + dates_and_opening_hours: "Fechas y horas de apertura" + all_day: "Todo el día" + start_date: "Fecha de inicio" + end_date: "Fecha de fin" + start_time: "Hora de inicio" + end_time: "Hora de fin" + recurrence: "Repeticiones" + _and_ends_on: "termina el" + prices_and_availabilities: "Precios y disponibilidad" + standard_rate: "Puntuación estándar" + 0_=_free: "0 = Gratis" + tickets_available: "Entradas disponibles" + event_theme: "Tema del evento" + age_range: "Rango de edades" + + plan: + # subscription plan edition form + plan_form: + general_information: "Información general" + name: "Nombre" + name_length_must_be_less_than_24_characters: "el nombre debe contener menos de 24 caracteres." + type: "Tipo" + type_is_required: "Se requiere un tipo." + group: "Grupo" + transversal_(all_groups): "Transversal (todos los grupos)" + group_is_required: "Se requiere un tipo." + number_of_periods: "Numero de periodos" + number_of_periods_is_required: "El numero de periodos es obligatorio." + period: "Periodo" + year: "Año" + month: "Mes" + week: "Semana" + period_is_required: "Se requiere un periodo." + subscription_price: "Precio de la suscripción" + price_is_required: "Se requiere un precio." + visual_prominence_of_the_subscription: "Relevancia visual de la suscripción" + on_the_subscriptions_page_the_most_prominent_subscriptions_will_be_placed_at_the_top_of_the_list: "Las suscripciónes se ordenaran por orden de relevancia en la página de suscripciónes" + an_evelated_number_means_a_higher_prominence: "Un número elevado indica mayor relevancia." + rolling_subscription: "¿Suscripción continua?" + a_rolling_subscription_will_begin_the_day_of_the_first_training: "Una suscripción continuada empezará el día que se dé el primer curso." + otherwise_it_will_begin_as_soon_as_it_is_bought: "De otro modo, empezará tan pronto como se haya adquirido." + information_sheet: "hoja de información" + attach_an_information_sheet: "adjuntar una hoja de infomación" + notified_partner: "Compañero notificado" + new_user: "Nuevo usuario ..." + as_part_of_a_partner_subscription_some_notifications_may_be_sent_to_this_user: "Como parte de la suscripción, algunas notificaciones podrían ser enviadas a este usuario." + new_partner: "Nuevo compañero" + email_address_is_required: "Se requiere un mail." + + trainings: + # training edition form + add_a_new_training: "Añadir curso" + validate_your_training: "Validar curso" + associated_machines: "Máquinas asociadas" + number_of_tickets: "Número de entradas" + public_page: "Hacer curso público" + + user_admin: + # partial form to edit/create an user (admin view) + 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" + disable_invoices_generation: "Desactivar generación de facturas:" + no_more_invoices_will_be_generated_for_: "No se generarán más facturas para" + _the_payments_carried_out_at_the_reception_: "El pago se efectuará en la entrada" + _regarding_this_user: "con respecto a este usuario." + trainings: "Cursos" + + authentication: + # partial form to edit/create an authentication provider (SSO) + provider_name_is_required: "Se requiere el nombre del proveedor." + authentication_type: "Tipo de autenticación" + authentication_type_is_required: "Se requiere el tipo de autenticación." + data_mapping: "Mapeo de datos" + 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" + common_url_is_required: "se requiere una URL común." + provided_url_is_not_a_valid_url: "La URL cedida no es válida." + authorization_endpoint: "Final de la autorización" + oauth2_authorization_endpoint_is_required: "Se requiere final de autorización OAuth 2.0." + provided_endpoint_is_not_valid: "El final de autorización proporcionado no es válido." + token_acquisition_endpoint: "Fin de adquisición de fichas" + oauth2_token_acquisition_endpoint_is_required: "Se requiere el final de adquisición de tokens OAuth 2.0." + profil_edition_url: "URL de edición de perfil" + profile_edition_url_is_required: "Se requiere URL de edición de perfil." + client_identifier: "Identificador de cliente" + oauth2_client_identifier_is_required: "Se requiere el identificador de cliente OAuth 2.0." + obtain_it_when_registering_with_your_provider: "Obtengalo al registrarse con su proveedor." + client_secret: "Secreto del cliente" + oauth2_client_secret_is_required: "Se requiere el secreto de cliente OAuth 2.0." + define_the_fields_mapping: "Definir el mapeo de campos" + add_a_match: "agregar coincidencia" + field: "Campos" + 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 + 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:" # angular interpolation + cancel_this_reservation: "Cancelar reserva" + i_want_to_change_date: "Quiero cambiar la fecha" + + 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}}." # angular interpolation + 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 + 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 + last_activity_: "Úlitma actividad" + _on_: "el" + to_come: "por llegar" + approved: "aprobada" + projects: "Proyectos" + no_projects: "Sin proyectos" + author: "Autor" + collaborator: "Colaborador" + private_profile: "Perfil privado" + + wallet: + # wallet + wallet: 'Cartera' + your_wallet_amount: 'Su dinero disponible' + wallet_amount: 'Cantidad disponible' + no_transactions_for_now: 'Sin transacciones aún' + operation: 'Operación' + operator: 'Operador' + amount: 'Cantidad' + credit: 'Crédito' + debit: 'Débito' + credit_title: 'Crédito de la cartera' + credit_label: 'Selecciona la cantidad a creditar' + confirm_credit_label: 'Confirma la cantidad a creditar' + generate_a_refund_invoice: "Generar informe de devolución" + creation_date_for_the_refund: "Fecha de creación del informe de devolución" + creation_date_is_required: "Se requiere fecha de creación." + description_(optional): "Descripción (opcional):" + will_appear_on_the_refund_invoice: "Aparecerá en el informe de devolución." + 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_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" + 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" + client_wallet_pay_reservation: "El cliente puede pagar directamente su reserva" + debit_subscription: "Débito por suscripción" + debit_reservation_training: "Débito por reserva de curso" + 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) + code: "Código" + code_is_required: "Se requiere un código." + code_must_be_composed_of_capital_letters_digits_and_or_dashes: "El código debe estar compuesto de mayúsculas, dígitos y / o guiones." + kind_of_coupon: "Tipo de cupón" + percentage: "Porcentaje" + amount: "Cantidad" + amount_off: "Cantidad descontada" + percent_off: "Porcentaje descontado" + percent_off_is_required: "El porcentaje descontado es obligatorio." + percentage_must_be_between_0_and_100: "El porcentaje descontado debe ser un número entre 0 y 100." + validity_per_user: "Validez por usuario" + once: "Validez única" + forever: "Cada usuario" + validity_per_user_is_required: "Se requiere validez por usuario." + valid_until: "Válido hasta (incluido)" + leave_empty_for_no_limit: "Dejar en blanco si no se desea especificar un límite." + 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) + 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." # angular interpolation + the_coupon_has_been_applied_you_get_AMOUNT_CURRENCY: "Se ha aplicado el cupón. Recibirá un descuento de {{AMOUNT}} {{CURRENCY}}." # angular interpolation + unable_to_apply_the_coupon_because_disabled: "No se ha podido canjear el cupón: código inhabilitado." + unable_to_apply_the_coupon_because_expired: "No se ha podido canjear el cupón: código expirado." + unable_to_apply_the_coupon_because_sold_out: "No se puede aplicar el cupón: este código alcanzó su cuota." + unable_to_apply_the_coupon_because_already_used: "No se ha podido usar el cupón: ya has usado este cupón antes." + 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 + space: + name: "Nombre" + name_is_required: "Se requiere un nombre." + illustration: "Ilustración" + add_an_illustration: "añadir una ilustración" + description: "descripción" + description_is_required: "Se requiere una descripción." + characteristics: "Características" + characteristics_are_required: "Las características son obligatorias." + attached_files_(pdf): "Archivos adjuntos (pdf)" + attach_a_file: "Adjuntar archvo" + add_an_attachment: "Añadir adjunto" + default_places: "Máximo de entradas predeterminado" + default_places_is_required: "Se requiere un máximo de entradas predeterminado." + + cart: + # module de panier d'achat de réservations + cart: + summary: "Resumen" + select_one_or_more_slots_in_the_calendar: "Selecciona uno {SINGLE, select, true{slot} other{or more slots}} en el calendario" # messageFormat interpolation + you_ve_just_selected_the_slot: "Acaba de seleccionar el espacio :" + datetime_to_time: "{{START_DATETIME}} hasta {{END_TIME}}" # angular interpolation, eg: Thursday, September 4 1986 8:30 PM to 10:00 PM + cost_of_TYPE: "Coste de {TYPE, select, Machine{a machine hour} Training{the training} other{the element}}" # messageFormat interpolation + offer_this_slot: "Ofertar este espacio" + confirm_this_slot: "Confirmar este espacio" + remove_this_slot: "Eliminar este espacio" + to_benefit_from_attractive_prices: "Para beneficiarse de precios" + view_our_subscriptions: "Ver nuestras suscripciónes" + or: "ó" + you_ve_just_selected_a_: "Acaba de seleccionar" + _subscription: "suscripción" + cost_of_the_subscription: "Coste de la suscripción" + confirm_and_pay: "Confirmar y pagar" + you_have_settled_the_following_TYPE: "Acaba de seleccionar {TYPE, select, Machine{machine hours} Training{training} other{elements}}:" # messageFormat interpolation + you_have_settled_a_: "Ha establecido una" + total_: "TOTAL :" + thank_you_your_payment_has_been_successfully_registered: "Gracias. Su pago se ha registrado con éxito." + your_invoice_will_be_available_soon_from_your_: "Su factura pronto estará disponible" + dashboard: "Panel" + i_want_to_change_the_following_reservation: "Deseo cambiar la siguiente reserva:" + cancel_my_modification: "Cancelar modificación" + select_a_new_slot_in_the_calendar: "Seleccionar nuevo espacio en el calendario" + cancel_my_selection: "Cancelar mi selección" + tags_of_the_original_slot: "Etiquetas del espacio original:" + 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" # context: date. eg: "from 01/01 to 01/05" + please_select_a_member_first: "Por favor, selecciona un miembro de la lista" + 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}" # messageFormat interpolation (context: confirm my payment of $20.00) + a_problem_occured_during_the_payment_process_please_try_again_later: "A problem occurred during the payment process. Please try again later." + none: "Ninguno" \ No newline at end of file diff --git a/config/locales/devise.es.yml b/config/locales/devise.es.yml new file mode 100644 index 000000000..b534db8e6 --- /dev/null +++ b/config/locales/devise.es.yml @@ -0,0 +1,64 @@ +# Additional translations at https://github.com/plataformatec/devise/wiki/I18n + +es: + devise: + confirmations: + confirmed: "Su cuenta se ha confirmado exitosamente." + send_instructions: "Recibirá un correo electrónico con instrucciones sobre cómo confirmar su cuenta en unos minutos." + send_paranoid_instructions: "Si su dirección de correo electrónico existe en nuestra base de datos, recibirá un correo electrónico con instrucciones sobre cómo confirmar su cuenta en unos minutos." + failure: + already_authenticated: "Ya ha sido registrado." + inactive: "Su cuenta aún no ha sido activada." + invalid: "Mail o contraseña inválidos." + locked: "Su cuenta ha sido bloqueada." + last_attempt: "Le queda un intento antes de que su cuenta sea bloqueada." + 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." + mailer: + confirmation_instructions: + action: + instruction: + subject: "Instrucciones de confirmación" + reset_password_instructions: + action: + instruction: + ignore_otherwise: + subject: "Instrucciones para restablecer contraseña" + unlock_instructions: + subject: "Desbloquear instrucciones" + omniauth_callbacks: + failure: "No pudimos autentificarte desde %{kind} porque \"%{reason}\"." + success: "Autentificado correctamente desde la cuenta %{kind} ." + passwords: + no_token: "No puede acceder a esta página sin proceder de un correo electrónico de restablecimiento de contraseña. Si procede de un correo electrónico de restablecimiento de contraseña, asegúrese de utilizar la URL completa proporcionada." + send_instructions: "Recibirá un correo electrónico con instrucciones sobre cómo restablecer su contraseña en unos minutos." + send_paranoid_instructions: "Si su dirección de correo electrónico existe en nuestra base de datos, recibirá un enlace de recuperación de contraseña en su dirección de correo electrónico en unos minutos." + updated: "Tu contraseña se cambió correctamente. Ya has iniciado sesión." + updated_not_active: "Tu contraseña se cambió correctamente." + registrations: + destroyed: "¡Adiós! Su cuenta se canceló correctamente. Esperamos volver a verte pronto." + signed_up: "¡Bienvenido! Se ha registrado correctamente." + signed_up_but_inactive: "Te has registrado con éxito. Sin embargo, no pudimos iniciar sesión porque su cuenta todavía no está activada." + signed_up_but_locked: "Te has registrado con éxito. Sin embargo, no pudimos iniciar sesión porque su cuenta está bloqueada." + signed_up_but_unconfirmed: "Se ha enviado un mensaje con un enlace de confirmación a su dirección de correo electrónico. Abra el enlace para activar su cuenta." + update_needs_confirmation: "Actualizó su cuenta con éxito, pero debemos verificar su nueva dirección de correo electrónico. Compruebe su correo electrónico y haga clic en el enlace para confirmar la confirmación de su nueva dirección de correo electrónico." + updated: "Ha actualizado su cuenta con éxito." + sessions: + signed_in: "Inicio de sesión exitoso." + signed_out: "Cierre de sesión exitoso." + unlocks: + send_instructions: "Recibirá un correo electrónico con instrucciones sobre cómo desbloquear su cuenta en unos minutos." + send_paranoid_instructions: "Si su cuenta existe, recibirá un correo electrónico con instrucciones sobre cómo desbloquearlo en unos pocos minutos." + 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" + confirmation_period_expired: "Necesita ser confirmado dentro de %{period}, por favor, solicite uno nuevo" + expired: "ha expirado, por favor, solicite uno nuevo" + not_found: "no encontrado" + not_locked: "no estaba bloqueado" + not_saved: + one: "un error prohibió que %{resource} fuese guardado:" + other: "%{count} errores evitaron que %{resource} fuese guardado:" diff --git a/config/locales/es.yml b/config/locales/es.yml new file mode 100644 index 000000000..1deaafb3d --- /dev/null +++ b/config/locales/es.yml @@ -0,0 +1,363 @@ +es: + + duration: + # subscription plan duration + year: + one: 'un año' + other: '%{count} años' + month: + one: 'un mes' + other: '%{count} meses' + 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 + carrierwave_processing_error: "fallo al procesar" + carrierwave_integrity_error: "es un tipo de archivo no permitido" + carrierwave_download_error: "no pudo ser descargado" + extension_white_list_error: "no le está permitido subir archivos de extensión %{extension} , tipos permitidos: %{allowed_types}" + extension_black_list_error: "no le está permitido subir archivos de 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 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}" + wrong_size: "Tamaño erroneo (should be %{file_size})" + size_too_small: "es demasiado pequeño (should be at least %{file_size})" + size_too_big: "es demasiado grande (should be at most %{file_size})" + export_not_found: "La exportación solicitada no se encontró. Probablemente se eliminó, 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" + cannot_be_in_the_past: "no puede estar en el pasado" + cannot_be_before_previous_value: "No puede estar antes del valor anterior." + + activemodel: + errors: + <<: *errors + + apipie: + api_documentation: "Documentación API" + + omniauth: + # error messages when importing an account Desde a SSO + email_already_linked_to_another_account_please_input_your_authentication_code: "E-mail \"%{OLD_MAIL}\"ya está vinculado 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}) ." + your_email_address_is_already_linked_to_another_account_unable_to_update_it: "Your e-mail address (%{EMAIL}) ya está vinculado a otra cuenta, no se puede actualizar." + this_account_is_already_linked_to_an_user_of_the_platform: "Esta %{NAME} cuenta ya está vinculada a un usuario de la plataforma ." + + availabilities: + # availability slots in the calendar + not_available: "No disponible" + i_ve_reserved: "He reservado" + must_be_at_least_1_hour_after_the_start_date: "Debe ser al menos 1 hora 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 + unable_to_change_the_group_while_a_subscription_is_running: "No se puede cambiar el grupo mientras se está ejecutando una suscripción." + please_input_the_authentication_code_sent_to_the_address: "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 + refund_invoice_reference: "Referencia de devolución de factura: %{REF}" + invoice_reference: "Referencia de factura: %{REF}" + code: "Código: %{CODE}" + order_number: "Pedido #: %{NUMBER}" + invoice_issued_on_DATE: "Factura emitida el %{DATE}" + refund_invoice_issued_on_DATE: "Factura de reembolso emitida el %{DATE}" + wallet_credit: "Crédito de la cartera" + cancellation_of_invoice_REF: "Cancelación de la factura %{REF}" + reservation_of_USER_on_DATE_at_TIME: "Reserva de %{USER} el %{DATE} a las %{TIME}" + cancellation: "Cancelación" + object: "Objeto:" + order_summary: "Resumen de pedido:" + details: "Detalles" + amount: "Cantidad" + subscription_extended_for_free_Desde_START_to_END: "Suscripción extendida gratis - desde %{START} to %{END}" + subscription_NAME_Desde_START_to_END: "Suscripción %{NAME} - desde %{START} hasta %{END}" + machine_reservation_DESCRIPTION: "Reserva de máquina - %{DESCRIPTION}" + space_reservation_DESCRIPTION: "Reserva de espacio - %{DESCRIPTION}" + training_reservation_DESCRIPTION: "Reserva de curso - %{DESCRIPTION}" + event_reservation_DESCRIPTION: "Reserva de evento - %{DESCRIPTION}" + full_price_ticket: + one: "Una entrada de precio completo" + other: "%{count} entradas de precio completo" + other_rate_ticket: + one: "un %{NAME} entrada" + other: "%{count} %{NAME} entradas" + reservation_other: "Reserva (other)" + coupon_CODE_discount_of_DISCOUNT: "Cupón {CODE}: descuento de {DISCOUNT}{TYPE, select, percent_off{%} other{}}" # messageFormat interpolation + total_including_all_taxes: "total impuestos incluidos" + including_VAT_RATE: "Incluyendo IVA %{RATE}%" + including_total_excluding_taxes: "Excluyendo IVA" + including_amount_payed_on_ordering: "Incluyendo cantidad pagada en el pedido" + total_amount: "Precio total" + refund_on_DATE: "Reembolso en %{DATE}" + by_stripe_online_payment: "por pago online" + by_cheque: "por cheque" + by_transfer: "por transferencia" + by_cash: "en efectivo" + no_refund: "sin devolución" + by_wallet: "por cartera" + settlement_by_debit_card: "Efectuado con tarjeta de débito" + settlement_done_at_the_reception: "Efectuado en recepción" + settlement_by_wallet: "Efectuado con cartera" + on_DATE_at_TIME: "el %{DATE} a las %{TIME}," + for_an_amount_of_AMOUNT: "Por una cantidad de %{AMOUNT}" + on_DATE_Desde_START_to_END: "El %{DATE} desde %{START} hasta %{END}" # eg: on feb. 7 Desde 7AM hasta 9AM + Desde_STARTDATE_to_ENDDATE_Desde_STARTTIME_to_ENDTIME: "Desde %{STARTDATE} hasta %{ENDDATE}, desde %{STARTTIME} hasta %{ENDTIME}" # eg: Desde feb. 7 hasta feb. 10, Desde 6PM hasta 10PM + subscription_of_NAME_for_DURATION_starting_Desde_DATE: "Suscripción %{NAME} por %{DURATION} empezando Desde %{DATE}" + subscription_of_NAME_extended_starting_Desde_STARTDATE_until_ENDDATE: "Subscripción de %{NAME} extendida (Free days) empezando desde %{STARTDATE} hasta %{ENDDATE}" + and: 'y' + + trainings: + # training availabilities + i_ve_reserved: "he reservado" + completed: "Lleno" + + 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." + + export_members: + # members list export to EXCEL format + members: "Miembros" + id: "ID" + surname: "Apellidos" + first_name: "Nombre" + email: "E-mail" + newsletter: "Hoja informativa" + gender: "Genero" + age: "Edad" + address: "Dirección" + phone: "Teléfono" + website: "Web" + job: "Trabajo" + interests: "Intereses" + cad_software_mastered: "Softwares dominados" + group: "Grupo" + subscription: "Suscripción" + subscription_end_date: "Fecha de fin de suscripción" + validated_trainings: "Cursos validados" + tags: "Etiquetas" + number_of_invoices: "Numero de facturas" + invoicing_disabled: "Facturación desactivada" + projects: "Proyectos" + facebook: "Facebook" + twitter: "Twitter" + echo_sciences: "Ecociencia" + organization: "Organización" + organization_address: "Dirección de la organización" + man: "hombre" + woman: "mujer" + without_subscriptions: "Sin suscripciones" + + export_reservations: + # machines/trainings/events reservations list to EXCEL format + reservations: "Reservas" + customer_id: "Identificación del cliente" + customer: "Cliente" + email: "E-mail" + reservation_date: "fecha de reserva" + reservation_type: "tipo de reserva" + reservation_object: "objetivo de reserva" + slots_number_hours_tickets: "espacios reservados (horas/entradas)" + 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: "Suscripciones" + id: "ID" + customer: "Cliente" + email: "E-mail" + subscription: "Suscripción" + period: "Periodo" + start_date: "Fecha de comienzo" + expiration_date: "Fecha de fin" + amount: "Cantidad" + payment_method: "Método de pago" + local_payment: "Pago en recepción" + online_payment: "Pago online" + + export_availabilities: + # reservation slots export, by type, to EXCEL format + machines: "Máquinas" + trainings: "Cursos" + spaces: "Espacios" + events: "Eventos" + day_of_week: "Día de la semana" + date: "Fecha" + slot: "Espacio" + machine: "Máquina" + training: "Curso" + space: "Espacio" + event: "Evento" + reservations: "Reservas" + available_seats: "Asientos disponibles" + + + api: + notifications: + # internal app notifications + notify_admin_abuse_reported: + an_abuse_was_reported_on_TYPE_ID_NAME_html: "Un abuso ha sido reportado %{TYPE} %{ID}: %{NAME}." + notify_admin_invoicing_changed: + invoices_generation_was_STATUS_for_user_NAME_html: "La generación de facturas ha sido {STATUS, select, true{disabled} other{enabled}} para el usuario {NAME}." # messageFormat interpolation + notify_admin_member_create_reservation: + a_RESERVABLE_reservation_was_made_by_USER_html: "una %{RESERVABLE} reserva fue hecha por %{USER}." + notify_admin_profile_complete: + account_imported_Desde_PROVIDER_(UID)_has_completed_its_information_html: "Cuenta importada desde %{PROVIDER} (%{UID}) ha completado su información." + notify_admin_slot_is_canceled: + USER_s_reservation_on_the_DATE_was_cancelled_remember_to_generate_a_refund_invoice_if_applicable_html: "La reserva de %{USER}, hecha el %{DATE} ha sido cancelada. Recuerda reclamar una devolución si está disponible." + notify_admin_slot_is_modified: + a_booking_slot_was_modified: "Una reserva fué modificada." + notify_admin_subscribed_plan: + subscription_PLAN_has_been_subscribed_by_USER_html: "La suscripción %{PLAN} ha sido solicitada por %{USER}." + notify_admin_subscription_canceled: + USER_s_subscription_has_been_cancelled: "La suscripción de %{USER}ha sido cancelada." + notify_admin_subscription_extended: + subscription_PLAN_of_the_member_USER_has_been_extended_FREE_until_DATE_html: "La suscripción {PLAN} de {USER} se ha extendido {FREE, select, true{for free} other{}} hasta {DATE}." # messageFormat interpolation + notify_admin_subscription_is_expired: + USER_s_subscription_has_expired: "%La suscripción de {USER} ha expirado." + notify_admin_subscription_will_expire_in_7_days: + USER_s_subscription_will_expire_in_7_days: "La suscripción de %{USER} expirará en 7 días." + notify_admin_user_group_changed: + user_NAME_changed_his_group_html: "El usuario {NAME} ha cambiado {GENDER, select, true{his} other{her}} el grupo." # messageFormat interpolation + notify_admin_user_merged: + user_NAME_has_merged_his_account_with_the_one_imported_Desde_PROVIDER_(UID)_html: "El usuario {NAME} se ha fusionado {GENDER, select, true{his} other{her}} con la cuenta importada desde {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: + a_new_user_account_has_been_created_NAME_EMAIL_html: "Se ha creado una nueva cuenta: %{NAME} <%{EMAIL}>." + notify_admin_when_user_is_imported: + a_new_user_account_has_been_imported_Desde_PROVIDER_(UID)_html: "Se ha importado una nueva cuenta: %{PROVIDER} (%{UID})." + notify_member_create_reservation: + your_reservation_RESERVABLE_was_successfully_saved_html: "Su reserva %{RESERVABLE} se ha guardado correctamente." + notify_member_reservation_reminder: + reminder_you_have_a_reservation_RESERVABLE_to_be_held_on_DATE_html: "Recuerda: Su reserva %{RESERVABLE} tendrá lugar el %{DATE}" + notify_member_slot_is_canceled: + your_reservation_RESERVABLE_of_DATE_was_successfully_cancelled: "Su reserva %{RESERVABLE} de %{DATE} se ha cancelado correctamente." + notify_member_slot_is_modified: + your_reservation_slot_was_successfully_changed: "Su reserva ha sido cambiada correctamente." + notify_member_subscribed_plan: + you_have_subscribed_to_PLAN_html: "Se ha suscrito tp %{PLAN}." + notify_member_subscribed_plan_is_changed: + you_have_changed_your_subscription_to_PLAN_html: "Ha cambiado su suscripción a %{PLAN}." + notify_member_subscription_canceled: + your_subscription_PLAN_was_successfully_cancelled_html: "Su suscripción %{PLAN} se ha cancelado exitosamente." + notify_member_subscription_extended: + your_subscription_PLAN_has_been_extended_FREE_until_DATE_html: "Su suscripción {PLAN} se ha extendido {FREE, select, true{for free} other{}} hasta {DATE}." # messageFormat interpolation + notify_member_subscription_is_expired: + your_subscription_has_expired: "Su suscripción ha expirado." + notify_member_subscription_will_expire_in_7_days: + your_subscription_will_expire_in_7_days: "Su suscripción expirará en 7 días." + notify_partner_subscribed_plan: + subscription_partner_PLAN_has_been_subscribed_by_USER_html: "Un compañero %{PLAN} ha sido suscrito por %{USER}." + notify_project_author_when_collaborator_valid: + USER_became_collaborator_of_your_project: "%{USER} se ha convertido en colaborador de tu proyecto:" + notify_project_collaborator_to_valid: + you_are_invited_to_collaborate_on_the_project: "Has sido invitado a colaborar en este proyecto:" + notify_user_auth_migration: + your_account_was_migrated: "Ha migrado correctamente al nuevo sistema de autenticación." + notify_user_profile_complete: + your_profile_was_completed: "Su perfil se completó con éxito, ahora tiene acceso a toda la plataforma." + notify_user_training_valid: + your_TRAINING_was_validated_html: "Su curso %{TRAINING} ha sido validado con éxito." + notify_user_user_group_changed: + your_group_has_changed: "Su grupo ha sido cambiado." + notify_user_when_avoir_ready: + your_avoir_is_ready_html: "Su informe de devolución #%{REFERENCE}, of %{AMOUNT}, está listo. Haz clic aquí para descargarlo." + notify_user_when_invoice_ready: + your_invoice_is_ready_html: "Su factura #%{REFERENCE}, de %{AMOUNT} está lista. Haz clic aquí para descargarlo." + undefined_notification: + unknown_notification: "Notificación desconocida" + notification_ID_wrong_type_TYPE_unknown: "Notificación %{ID} fallida (type %{TYPE} unknown)" + notify_user_wallet_is_credited: + your_wallet_is_credited: "Su cartera ha sido acreditada por el administrador" + notify_admin_user_wallet_is_credited: + wallet_is_credited: "La cartera del miembro %{USER} ha sido creditada %{AMOUNT}" + notify_admin_export_complete: + export: "La exportación" + statistics_global: "de todas las estadísticas" + statistics_account: "de las estadísticas de registro" + statistics_event: "de estadísticas sobre eventos" + statistics_machine: "de estadísticas sobre horas de máquina" + statistics_project: "de estadísticas sobre proyectos" + statistics_subscription: "de estadísticas de suscripción" + statistics_training: "de estadísticas de cursos" + statistics_space: "de estadísticas sobre espacios" + users_members: "de la lista de miembros" + users_subscriptions: "de la lista de suscripciones" + users_reservations: "de la lista de reservas" + availabilities_index: "de las reservas disponibles" + is_over: "se ha acabado." + download_here: "Descargar aquí" + notify_member_about_coupon: + enjoy_a_discount_of_PERCENT_with_code_CODE: "Disfruta de un descuento de %{PERCENT}% con el código %{CODE}" + enjoy_a_discount_of_AMOUNT_with_code_CODE: "Disfruta de un descuento de %{AMOUNT} con el código %{CODE}" + + statistics: + # statistics tools for admins + subscriptions: "Suscripciones" + machines_hours: "Horario de máquinas" + spaces: "Espacios" + trainings: "Cursos" + events: "Eventos" + registrations: "Registros" + projects: "Proyectos" + users: "Usuarios" + training_id: "ID de curso" + training_date: "Fecha de curso" + event_id: "ID de evento" + event_date: "Fecha de evento" + event_name: "Nombre de event " + event_theme: "Tema" + age_range: "Rango de edades" + themes: "Temas" + components: "Componentes" + machines: "Máquinas" + user_id: "ID de usuario" + bookings: "Reservas" + hours_number: "Número de horas" + tickets_number: "Número de entradas" + revenue: "Ingresos" + account_creation: "Creación de cuenta" + project_publication: "Publicación de proyectos" + + export: + # statistics exports to the excel file format + entries: "Entradas" + revenue: "Ingresos" + average_age: "Edad media" + total: "hasta tal punto" + date: "Fecha" + user: "Usuario" + email: "Email" + phone: "Teléfono" + gender: "Genero" + age: "Edad" + type: "Tipo" + revenue: "Ingreso" + male: "Hombre" + female: "Mujer" + + 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: + # name of the user's group for administrators + admins: 'Administradores' diff --git a/config/locales/mails.es.yml b/config/locales/mails.es.yml new file mode 100644 index 000000000..8edc7568e --- /dev/null +++ b/config/locales/mails.es.yml @@ -0,0 +1,287 @@ +es: + layouts: + notifications_mailer: + see_you_later: "Nos vemos pronto en {GENDER, select, other{the}}" # 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 de {FABLAB}" # messageFormat interpolation + connection_parameters: "Estos son los datos asociados a tu cuenta:" + account_name: "Nombre de usuario:" + password: "Contraseña:" + temporary_password: "Esta es una contraseña temporal, puede modificarla en la pantalla <>." + keep_advantages: "Con esta cuenta, guarda todas las ventajas relacionadas con su perfil de usuario de Fab Lab (cursos, planes de suscripción)." + thanks_to_: "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 + + notify_member_subscription_extended: + subject: "Su suscripción ha sido extendida" + body: + your_plan: "Su plan de suscripción" + 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}." + 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 :" + invoicing_disabled_html: "La generación de facturación para este usuario es disabled." + + 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 + 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 + 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: + your_plan: "Su plan de suscripción" + 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: + new_account_imported: "Una nueva cuenta (ID: %{ID}) ha sido importada a la web via %{PROVIDER}." + provider_uid: "El ID del proveedor 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: + the_platform: "La web" + is_changing_its_auth_system_and_will_now_use: "en realidad está cambiando su sistema de identificación de usuario y usará" + instead_of: "en lugar de" + consequence_of_the_modification: "Debido a este cambio, no podrá iniciar sesión en el sitio web con sus nombres de usuario actual." + to_use_the_platform_thanks_for: "Para seguir usando el sitio web, por favor" + 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:" + provider_id: "su ID de proveedor es:" + + notify_admin_abuse_reported: + subject: "Se ha informado un contenido abusivo" + body: + intro: "Un usuario ha marcado un contenido como abusivo" + signaled_content: "contenido marcado:" + signaled_by: "marcado por:" + signaled_on: "marcado el:" + message: "Mensaje:" + + notify_admin_invoicing_changed: + subject: "Se ha cambiado un parámetro de facturación." + body: + generation_status_html: "Un parámetro de facturación ha sido cambiado {STATUS, select, true{disabled} other{enabled}} por el usuario {NAME}." # messageFormat interpolation + disabled: "A partir de ahora, no se emitirá factura cuando el usuario paga en la recepción." + enabled: "A partir de ahora, todos los pagos realizados por este usuario en la recepción llevarán a la emisión de facturación. " + + notify_user_wallet_is_credited: + subject: "" + 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: + you_asked_for_an_export: "Usted solicitó una exportación" + statistics_global: "de todas las estadísticas" + statistics_account: "de las estadísticas de registro" + statistics_event: "de estadísticas sobre eventos" + statistics_machine: "de estadísticas sobre horas de máquina" + statistics_project: "de estadísticas sobre proyectos" + statistics_subscription: "de estadísticas de suscripción" + statistics_training: "de estadísticas sobre entrenamientos" + statistics_space: "de estadísticas sobre espacios" + users_members: "de la lista de miembros" + users_subscriptions: "de la lista de suscripciones" + users_reservations: "de la lista de reservas" + availabilities_index: "de las reservas disponibles" + click_to_download: " archivo Excel generado correctamente. Para descargarlo, haga clic " + here: "aquí" + + 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}}}." + + shared: + hello: "¡Hola %{user_name}!"