From 0ac53733c947e6445a07ce69137f098f1f4e5183 Mon Sep 17 00:00:00 2001 From: Alex Coelho Date: Thu, 11 May 2017 11:31:12 -0300 Subject: [PATCH 1/6] Translate pt-BR for version 2.5.4 --- config/locales/app.admin.pt-BR.yml | 637 ++++++++++++++++++ config/locales/app.logged.pt-BR.yml | 130 ++++ config/locales/app.public.pt-BR.yml | 276 ++++++++ config/locales/app.shared.pt-BR.yml | 450 +++++++++++++ config/locales/devise.pt-BR.yml | 64 ++ config/locales/mails.pt-BR.yml | 287 ++++++++ config/locales/pt-BR.yml | 358 ++++++++++ ...r-translate-interpolation-messageformat.js | 1 + 8 files changed, 2203 insertions(+) create mode 100755 config/locales/app.admin.pt-BR.yml create mode 100755 config/locales/app.logged.pt-BR.yml create mode 100755 config/locales/app.public.pt-BR.yml create mode 100755 config/locales/app.shared.pt-BR.yml create mode 100755 config/locales/devise.pt-BR.yml create mode 100755 config/locales/mails.pt-BR.yml create mode 100755 config/locales/pt-BR.yml diff --git a/config/locales/app.admin.pt-BR.yml b/config/locales/app.admin.pt-BR.yml new file mode 100755 index 000000000..27bbf00cd --- /dev/null +++ b/config/locales/app.admin.pt-BR.yml @@ -0,0 +1,637 @@ +pt-BR: + app: + admin: + machines_new: + # add a new machine + declare_a_new_machine: "Criar nova máquina" + watch_out_when_creating_a_new_machine_its_prices_are_initialized_at_0_for_all_subscriptions: "Cuidado! Ao criar uma nova máquina, os preços são inicializados em 0 para todas as assinaturas." + consider_changing_them_before_creating_any_reservation_slot: "Concidere alterá-lo antes de criar qualquer slot de reserva." + + machines_edit: + # machine edition + machine_edit: "Editar máquina" + + calendar: + # manage the trainings & machines slots + admin_calendar: + calendar_management: "Gerenciamento do calendário" + trainings: "Treinamentos" + machines: "Máquinas" + spaces: "Espaços" + availabilities: "Disponíveis" + availabilities_notice: "Exportar para Excel livro com todos os slots disponíveis para reserva, e suas ocupações." + ongoing_reservations: "Reservas em curso" + no_reservations: "Sem reservas" + confirmation_required: "Confirmação Obrigatória" + do_you_really_want_to_cancel_the_USER_s_reservation_the_DATE_at_TIME_concerning_RESERVATION: "Você realmente deseja cancelar a reserva do usuário {USER}, em {DATE} ás {TIME}, sobre {RESERVATION}?" # messageFormat interpolation + reservation_was_successfully_cancelled: "A reserva foi cancelada com sucesso" + reservation_cancellation_failed: "Reservation cancellation failed." + unable_to_remove_the_last_machine_of_the_slot_delete_the_slot_rather: "Não é possível remover a última máquina do slot. Delete o slot primeiramente." + do_you_really_want_to_remove_MACHINE_from_this_slot: "Você realmente deseja remover \"{MACHINE}\" desse slot?" # messageFormat interpolation + this_will_prevent_any_new_reservation_on_this_slot_but_wont_cancel_those_existing: "Isso impedirá qualquer nova reserva neste slot, mas não cancelará os existentes." + beware_this_cannot_be_reverted: "Cuidado: isso não pode ser revertido." + the_machine_was_successfully_removed_from_the_slot: "A máquina foi removida com sucesso desse slot." + deletion_failed: "Falha ao deletar." + DATE_slot: "{{DATE}} slot:" # angular interpolation + what_kind_of_slot_do_you_want_to_create: "Qual tipo de slot você deseja criar?" + training: "Treinamento" + machine: "Máquina" + space: "Espaço" + next: "Próximo >" + previous: "< Voltar" + select_some_machines: "Selecionar algumas máquinas" + number_of_tickets: "Número de vagas: " + adjust_the_opening_hours: "Ajustar o horário de funcionamento" + to_time: "ás" # context: time. eg. "from 18:00 to 21:00" + restrict_this_slot_with_labels_(optional): "Restrinja este slot com etiquetas (opcional)" + the_slot_START-END_has_been_successfully_deleted: "O slot {{START}} - {{END}} foi deletado com sucesso" # angular interpolation + unable_to_delete_the_slot_START-END_because_it_s_already_reserved_by_a_member: "Não é possível deletar o slot {{START}} - {{END}} porque já foi reservado por um membro" # angular interpolation + you_should_select_at_least_a_machine: "Você deveria selecionar a última máquina neste slot." + export_is_running_you_ll_be_notified_when_its_ready: "A Exportação está em andamento. Você será notificado quando terminar." + + project_elements: + # management of the projects' components + projects_elements_management: "Gerenciar projetos e elementos" + add_a_material: "Adicionar um material" + add_a_new_theme: "Adicionar um novo tema" + licences: "Licenças" + add_a_new_licence: "Adicionar uma nova licença" + + trainings: + # track and monitor the trainings + training: "Treinamento" + year_NUMBER: "Ano {{NUMBER}}" # angular interpolation + month_of_NAME: "Mês de {{NAME}}" # angular interpolation + NUMBER_reservation: "{NUMBER} {NUMBER, plural, one{reserva} other{reservas}}" # messageFormat interpolation + none: "Vazio" + training_validation: "Validação de treinamentos" + training_of_the_ : "Treinamento de " # context: date. eg. "training of the september 1st 2012" + you_can_validate_the_training_of_the_following_members: "Você pode validar um treinamento dos seguintes membros:" + no_reservation: "Sem reservas" + validate_the_trainings: "Validação de treinamentos" + edition_of_the_description_tooltip: "Edição da descrição tooltip" + describe_the_training_in_a_few_words: "Descrição do treinamento em algumas palavras." + description_is_limited_to_255_characters: "A descrição é limitada em 255 caracteres." + description_was_successfully_saved: "A descrição foi salva com sucesso." + training_successfully_deleted: "O treinamento foi deletado com sucesso." + unable_to_delete_the_training_because_some_users_alredy_booked_it: "Não é possível deletar o treinamento, pois alguns membros já o reservaram." + do_you_really_want_to_delete_this_training: "Você realmente quer deletar este treinamento?" + + trainings_new: + # create a new training + beware_when_creating_a_training_its_reservation_prices_are_initialized_to_zero: "Cuidado, ao criar um treinamento, seu preço de reserva é inicializado em zero." + dont_forget_to_change_them_before_creating_slots_for_this_training: "Não se esqueça de alterá-lo antes de criar slots para este treinamento." + + events: + # events tracking and management + events_monitoring: "Monitoramento de eventos" + manage_filters: "Gerenciar filtros" + fablab_events: "Eventos do FabLab" + all_events: "Todos eventos" + passed_events: "Eventos anteriores" + events_to_come: "Eventos futuros" + from_DATE: "Em {{DATE}}" # angular interpolation + from_TIME: "Ás {{TIME}}" # angular interpolation + view_reservations: "Ver reservas" + categories: "Categorias" + add_a_category: "Adicionar categoria" + add_a_theme: "Adicionar tema" + age_ranges: "Faixa etária" + add_a_range: "Adicionar faixa etária" + do_you_really_want_to_delete_this_ELEMENT: "Você realmente deseja deletar esse {ELEMENT, select, category{categoria} theme{tema} age_range{faixa etária} other{elemento}}?" # messageFormat interpolation + unable_to_delete_ELEMENT_already_in_use_NUMBER_times: "Não é possível deletar esse {ELEMENT, select, category{categoria} theme{tema} age_range{faixa etária} other{elemento}} porque já existem associados {NUMBER, plural, =0{sem eventos} one{um evento} other{{NUMBER} eventos}}." # messageFormat interpolation + at_least_one_category_is_required: "Pelo menos uma categoria é desejada." + unable_to_delete_the_last_one: "Não é possível excluir o último." + unable_to_delete_an_error_occured: "Impossível deletar: um erro ocorreu." + manage_prices_categories: "Gerenciar preços categorias" + prices_categories: "Preços de categoria" + add_a_price_category: "Adicionar um preço de categoria" + usages_count: "Contagem de uso" + price_category: "Preço categoria" + category_name: "Nome de categoria" + category_name_is_required: "Nome da categoria é obrigatório." + enter_here_the_conditions_under_which_this_price_is_applicable: "Insira aqui as condições em que este preço é aplicável" + conditions_are_required: "Condições são obrigatórias." + price_category_successfully_created: "Preço de categoria criado com sucesso." + unable_to_add_the_price_category_check_name_already_used: "Não é possível adicionar a categoria de preço, verifique se o nome ainda não está em uso." + unexpected_error_occurred_please_refresh: "Um erro inesperado ocorreu, por favor recarregue a página." + price_category_successfully_updated: "Preço de categoria atualizado com sucesso." + unable_to_update_the_price_category: "Não é possível atualizar preço de categoria." + unable_to_delete_this_price_category_because_it_is_already_used: "Não é possível deletar este preço de categoria porque ele já está em uso." + do_you_really_want_to_delete_this_price_category: "Você realmente quer deletar este preço de categoria?" + price_category_successfully_deleted: "Preço de categoria deletado com sucesso." + price_category_deletion_failed: "Falha ao deletar preço de categoria." + + events_new: + # add a new event + none: "Vazio" + every_days: "Todos os dias" + every_week: "Toda semana" + every_month: "Todo mês" + every_year: "Todo ano" + + events_edit: + # edit an existing event + edit_the_event: "Editar evento" + + event_reservations: + # event reservations list + the_reservations: "Reservas :" + payment_date: "Data de pagamento" + reserved_tickets: "Vagas reservadas" + show_the_event: "Mostrar evento" + no_reservations_for_now: "Nenhuma reserva." + back_to_monitoring: "Voltar ao monitoramento" + + pricing: + # subscriptions, prices, credits and coupons management + pricing: + pricing_management: "Gerenciamento de preços" + subscriptions: "Inscrições" + trainings: "Treinamentos" + list_of_the_subscription_plans: "Lista dos planos de assinatura" + beware_the_subscriptions_are_disabled_on_this_application: "Atenção, as assinaturas estão desativadas nesta aplicação." + you_can_create_some_but_they_wont_be_available_until_the_project_is_redeployed_by_the_server_manager: "Você pode criar alguns, mas eles não estarão disponíveis até que o projeto seja reimplantado pelo gerenciador de servidores." + for_safety_reasons_please_dont_create_subscriptions_if_you_dont_want_intend_to_use_them_later: "Por razões de segurança, não crie inscrições se não pretender utilizá-las posteriormente." + add_a_new_subscription_plan: "Adicionar novo plano de assinatura" + type: "Tipo" + partner: "Parceiro" + standard: "Padrão" + name: "Nome" + duration: "Duração" + group: "Grupo" + prominence: "Relevância" + price: "Preço" + machine_hours: "Horas máquina" + these_prices_match_machine_hours_rates_: "Estes preços correspondem às horas de trabalho" + _without_subscriptions: "sem assinaturas" + machines: "Máquinas" + credits: "Créditos" + subscription: "Inscrições" + related_trainings: "Treinamentos relacionados" + add_a_machine_credit: "Adicionar crédito de máquina" + machine: "Máquina" + hours: "Horas" + related_subscriptions: "Assinaturas relacionadas" + please_specify_a_number: "Por favor especifique um número." + none: "Vazio" # grammar note: concordance with "training". + an_error_occurred_while_saving_the_number_of_credits: "Um erro ocorreu enquanto era salvo o número de créditos." + an_error_occurred_while_deleting_credit_with_the_TRAINING: "Um erro ocorreu enquanto o crédito era deletado do {{TRAINING}}." # angular interpolation + an_error_occurred_unable_to_find_the_credit_to_revoke: "Um erro ocorreu : incapaz de encontrar o crédito para revogar." + an_error_occurred_while_creating_credit_with_the_TRAINING: "Ocorreu um erro ao criar o crédito com o {{TRAINING}}." # angular interpolation + not_set: "Not set" + error_a_credit_linking_this_machine_with_that_subscription_already_exists: "Erro : um link de crédito entre esta máquina e esta assinatura já existe." + changes_have_been_successfully_saved: "As modificações foram salvas com sucesso." + credit_was_successfully_saved: "Crédito salvo com sucesso." + do_you_really_want_to_delete_this_subscription_plan: "Você realmente deletar esse plano de assinatura?" + subscription_plan_was_successfully_deleted: "Plano de assinatura foi deletado com sucesso." + unable_to_delete_the_specified_subscription_an_error_occurred: "Não é possível deletar a assinatura específicada, um erro ocorreu." + coupons: "Cupons" + list_of_the_coupons: "Lista de cupons" + discount: "Desconto" + nb_of_usages: "Número de usos" + status: "Status" + add_a_new_coupon: "Adicionar novo cupom" + disabled: "Desabilitado" + expired: "Expirado" + sold_out: "Esgotado" + active: "Ativo" + confirmation_required: "Confirmação obrigatória" + do_you_really_want_to_delete_this_coupon: "Você realmente deseja deletar este cupom?" + coupon_was_successfully_deleted: "O cupom foi deletado com sucesso." + unable_to_delete_the_specified_coupon_already_in_use: "Não é possível excluir o cupom especificado: ele já é usado com algumas faturas." + unable_to_delete_the_specified_coupon_an_unexpected_error_occurred: "Não é possível excluir o cupom especificado: ocorreu um erro inesperado." + send_a_coupon: "Enviar cupom" + coupon: "Cupom" + usages: "Usos" + coupon_successfully_sent_to_USER: "Cupon enviado com sucesso para {{USER}}" # angular interpolation + an_error_occurred_unable_to_send_the_coupon: "Um erro inesperado impede o envio do cupom." + code: "Código" + enabled: "Ativo" + validity_per_user: "Válido por usuário" + once: "Apenas um" + forever: "Cada uso" + valid_until: "Válido até (incluindo)" + spaces: "Espaços" + these_prices_match_space_hours_rates_: "Estes preços correspondem às taxas de horários de espaço" + add_a_space_credit: "Adicionar espaço de crédito" + space: "Espaço" + error_a_credit_linking_this_space_with_that_subscription_already_exists: "Erro: um crédito que vincula esse espaço com essa assinatura já existe." + + coupons_new: + # ajouter un code promotionnel + add_a_coupon: "Adicionar cupom" + unable_to_create_the_coupon_check_code_already_used: "Impossível criar cupom. Por favor certifique-se que o código já não foi utilizado" + + coupons_edit: + # mettre à jour un code promotionnel + unable_to_update_the_coupon_an_error_occurred: "Impossível atualizar cupom: um erro ocorreu." + + plans: + new: + # add a subscription plan on the platform + new_plan: + add_a_subscription_plan: "Adicionar plano de assinatura" + unable_to_create_the_subscription_please_try_again: "Não é possível criar plano de assinatura. por favor tente novamente." + successfully_created_subscription(s)_dont_forget_to_redefine_prices: "Assinaturas criadas com sucesso. Não se esqueça de redefinir os preços." + unable_to_save_this_user_check_that_there_isnt_an_already_a_user_with_the_same_name: "Impossível salvar este usuário. Certifique-se que ele não possui o mesmo nome de outro usuário." + edit: + # edit a subscription plan / machine hours prices + edit_plan: + subscription_plan: "Plano de assinatura:" + prices: "Preços" + copy_prices_from: "Copiar preços de" + machines: "Máquinas" + machine: "Máquina" + hourly_rate: "Taxa horária" + spaces: "Espaços" + space: "Espaço" + unable_to_save_subscription_changes_please_try_again: "Impossível salvar mudanças da assinatura. Por favor tente novamente." + subscription_successfully_changed: "Assinatura alterada com sucesso." + + invoices: + # list of all invoices & invoicing parameters + invoices: "Faturas" + invoices_list: "Lista de faturas" + filter_invoices: "Filtrar faturas" + invoice_#_: "Fatura #:" + customer_: "Cliente:" + date_: "Data:" + invoice_#: "Fatura #" + customer: "Cliente" + credit_note: "Nota de crédito" + display_more_invoices: "Mostrar mais faturas..." + invoicing_settings: "Configurações do faturamento" + change_logo: "Mudar o logo" + john_smith: "John Smith" + john_smith@example_com: "jean.smith@example.com" + invoice_reference_: "Referencia de fatura:" + code_: "Código:" + code_disabled: "Código desabilitado" + order_#: "Ordem #:" + invoice_issued_on_DATE_at_TIME: "Fatura emitida em {{DATE}} ás {{TIME}}" # angular interpolation + object_reservation_of_john_smith_on_DATE_at_TIME: "Objeto: Reserva do John Smith em {{DATE}} ás {{TIME}}" # angular interpolation + order_summary: "Sumário de ordem:" + details: "Detalhes" + amount: "Montante" + machine_booking-3D_printer: "Reserva de máquina - 3D printer" + total_amount: "Montante total" + total_including_all_taxes: "Total incluindo todas as taxas" + VAT_disabled: "VAT desativado" + including_VAT: "Incluindo VAT" + including_total_excluding_taxes: "Incluindo o total de taxas excluidas" + including_amount_payed_on_ordering: "Incluindo o valor pago na compra" + settlement_by_debit_card_on_DATE_at_TIME_for_an_amount_of_AMOUNT: "Pagamento por cartão de débito em {{DATE}} ás {{TIME}}, no valor de {{AMOUNT}}" + important_notes: "Notas importantes" + address_and_legal_information: "Endereço e informações legais" + invoice_reference: "Referencia de fatura" + day: "Dia" + "#_of_invoice": "# da fatura" + online_sales: "Vendas online" + wallet: "Carteira" + refund: "Restituição" + documentation: "Documentação" + 2_digits_year_(eg_70): "2 dígitos ano (ex 70)" + 4_digits_year_(eg_1970): "4 dígitos ano (ex. 1970)" + month_number_(eg_1): "Número do mês (eg. 1)" + 2_digits_month_number_(eg_01): "2 digits month number (eg. 01)" + 3_characters_month_name_(eg_JAN): "3 characters month name (eg. JAN)" + day_in_the_month_(eg_1): "Day in the month (eg. 1)" + 2_digits_day_in_the_month_(eg_01): "2 digits in the month (eg. 01)" + (n)_digits_daily_count_of_invoices_(eg_ddd_002_2nd_invoice_of_the_day): "(n) digits, daily count of invoices (eg. ddd => 002 : 2nd invoice of the day)" + (n)_digits_monthly_count_of_invoices_(eg_mmmm_0012_12th_invoice_of_this_month): "(n) digits, monthly count of invoices (eg. mmmm => 0012 : 12th invoice of the month)" + (n)_digits_annual_amount_of_invoices_(eg_yyyyyy_000008_8th_invoice_of_this_year): "(n) digits, annual count of invoices (ex. yyyyyy => 000008 : 8th invoice of this year)" + beware_if_the_number_exceed_the_specified_length_it_will_be_truncated_by_the_left: "Beware: if the number exceed the specified length, it will be truncated by the left." + (n)_digits_count_of_orders_(eg_nnnn_0327_327th_order): "(n) digits, count of invoices (eg. nnnn => 0327 : 327th order)" + (n)_digits_daily_count_of_orders_(eg_ddd_002_2nd_order_of_the_day): "(n) digits, daily count of orders (eg. ddd => 002 : 2nd order of the day)" + (n)_digits_monthly_count_of_orders_(eg_mmmm_0012_12th_order_of_this_month): "(n) digits, monthly count of orders (eg. mmmm => 0012 : 12th order of the month)" + (n)_digits_annual_amount_of_orders_(eg_yyyyyy_000008_8th_order_of_this_year): "(n) digits, annual count of orders (ex. yyyyyy => 000008 : 8th order of this year)" + add_a_notice_regarding_the_online_sales_only_if_the_invoice_is_concerned: "Add a notice regarding the online sales, only if the invoice is concerned." + this_will_never_be_added_when_a_refund_notice_is_present: "This will never be added when a refund notice is present." + (eg_X[/VL]_will_add_/VL_to_the_invoices_settled_with_stripe): '(eg. X[/VL] will add "/VL" to the invoices settled with stripe)' + add_a_notice_regarding_refunds_only_if_the_invoice_is_concerned: "Add a notice regarding refunds, only if the invoice is concerned." + this_will_never_be_added_when_an_online_sales_notice_is_present: "This will never be added when an online sales notice is present." + (eg_R[/A]_will_add_/A_to_the_refund_invoices): '(ed. R[/A] will add "/A" to the refund invoices)' + add_a_notice_regarding_the_wallet_only_if_the_invoice_is_concerned: "Add a notice regarding the wallet, only if the invoice is concerned." + (eg_W[/PM]_will_add_/PM_to_the_invoices_settled_with_wallet): '(eg. W[/PM] will add "/PM" to the invoices settled with wallet)' + code: "Código" + enable_the_code: "Ativar código" + enabled: "Ativar" + disabled: "Desativar" + order_number: "Número de ordem" + elements: "Elementos" + VAT: "VAT" + enable_VAT: "Ativar VAT" + VAT_rate: "VAT taxa" + refund_invoice_successfully_created: "Restituição de fatura criada com sucesso." + create_a_refund_on_this_invoice: "Criar restituição de fatura" + creation_date_for_the_refund: "Criação de data de restituição" + creation_date_is_required: "Data de criação é obrigatório." + refund_mode: "Modo de restituição:" + do_you_want_to_disable_the_user_s_subscription: "Você deseja desativar a inscrição de usuários:" + elements_to_refund: "Elementos para restituição" + description_(optional): "Descrição (optional):" + will_appear_on_the_refund_invoice: "Aparecerá na fatura de reembolso." + none: "Vazio" # grammar note: concordance with "payment mean" + by_cash: "Em dinheiro" + by_cheque: "Em cheque" + by_transfer: "Por transferência" + by_wallet: "Pela carteira" + you_must_select_at_least_one_element_to_create_a_refund: "Você deve selecionar pelo menos um elemento, para criar um reembolso." + unable_to_create_the_refund: "Não foi possível criar reembolso" + invoice_reference_successfully_saved: "Referência de fatura salva com sucesso." + an_error_occurred_while_saving_invoice_reference: "Um erro ocorreu enquanto era salvo a fatura de referência." + invoicing_code_succesfully_saved: "Invoicing code successfully saved." + an_error_occurred_while_saving_the_invoicing_code: "An error occurred while saving the invoicing code." + code_successfully_activated: "Código ativado com sucesso." + code_successfully_disabled: "Código desativado com êxito." + an_error_occurred_while_activating_the_invoicing_code: "Ocorreu um erro ao ativar o código de faturamento." + order_number_successfully_saved: "Número de ordem salvo com sucesso." + an_error_occurred_while_saving_the_order_number: "Ocorreu um erro ao salvar o número da ordem." + VAT_rate_successfully_saved: "Taxa VAT salva com sucesso." + an_error_occurred_while_saving_the_VAT_rate: "Um erro ocorreu ao salvar a taxa VAT." + VAT_successfully_activated: "VAT ativado com sucesso." + VAT_successfully_disabled: "VAT desativada com sucesso." + an_error_occurred_while_activating_the_VAT: "Um erro ocorreu ao ativar VAT." + text_successfully_saved: "Texto salvo com sucesso." + an_error_occurred_while_saving_the_text: "Um erro ocorreu ao salvar texto." + address_and_legal_information_successfully_saved: "Endereço e informações legais salvos com sucesso." + an_error_occurred_while_saving_the_address_and_the_legal_information: "Um erro ocorreu ao salvar o endereço e informações legais." + logo_successfully_saved: "Logo salvo com sucesso." + an_error_occurred_while_saving_the_logo: "Um erro ocorreu ao salvar o logo." + + members: + # management of users, labels, groups, and so on + users_management: "Gerenciamento de usuários" + members: "Membros" + search_for_an_user: "Buscar por usuário" + add_a_new_member: "Adicionar novo membro" + reservations: "Reservas" + email: "Email" + phone: "Telefone" + user_type: "Tipo de usuário" + display_more_users: "Mostrar mais usuários..." + administrators: "Administradores" + search_for_an_administrator: "Buscar por administrador" + add_a_new_administrator: "Adicionar novo administrador" + groups: "Grupos" + authentication: "Autenticação" + do_you_really_want_to_delete_this_administrator_this_cannot_be_undone: "Você realmente deseja excluir este administrador? Isso não pode ser revertido." + this_may_take_a_while_please_wait: "Atenção: Isso pode demorar um pouco, por favor, seja paciente." + administrator_successfully_deleted: "Administrator excluído com sucesso." + unable_to_delete_the_administrator: "Impossível excluir administrador." + add_a_group: "Adicionar grupo" + group_name: "Nome do grupo" + changes_successfully_saved: "Mudanças salvas com sucesso." + an_error_occurred_while_saving_changes: "Um erro ocorreu ao salvar mudanças." + new_group_successfully_saved: "Novo grupo salvo com sucesso." + an_error_occurred_when_saving_the_new_group: "Um erro ocorreu ao salvar novo grupo." + group_successfully_deleted: "Grupo excluido com sucesso." + unable_to_delete_group_because_some_users_and_or_groups_are_still_linked_to_it: "Não é possível excluir o grupo porque alguns usuários e / ou grupos ainda estão vinculados a ele." + add_a_tag: "Adicionar tag" + tag_name: "Nome da tag" + new_tag_successfully_saved: "Nova tag salva com sucesso." + an_error_occurred_while_saving_the_new_tag: "Um erro ocorreu ao salvar nova tag." + tag_successfully_deleted: "Tag excluída com sucesso." + an_error_occurred_and_the_tag_deletion_failed: "Um erro ocorreu ao excluir tag." + search_for_an_authentication_provider: "Procurar um provedor de autenticação" + add_a_new_authentication_provider: "Adicionar um novo provedor de autenticação" + strategy_name: "Nome da estratégia" + state: "Estado" + unknown: "Desconhecido: " + active: "Ativo" + pending: "Pendente" + previous_provider: "Fornecedor anterior" + do_you_really_want_to_delete_the_TYPE_authentication_provider_NAME: "Deseja realmente excluir o provedor de autenticação {{TYPE}}: {{NAME}}?" # angular interpolation + authentication_provider_successfully_deleted: "Provedor de autenticação excluido com sucesso." + an_error_occurred_unable_to_delete_the_specified_provider: "Ocorreu um erro: não é possível excluir o provedor especificado." + local_database: "Database local" + o_auth2: "OAuth 2.0" + + members_new: + # add a member + add_a_member: "Adicionar membro" + + members_edit: + # edit a member + duration: "Duração:" + expires_at: "Experia em:" + price_: "Preço:" + offer_free_days: "Oferecer dias grátis" + extend_subscription: "Estender inscrição" + user_has_no_current_subscription: "O usuário não possui inscrição." + subscribe_to_a_plan: "Plano de inscrição" + next_trainings: "Próximos treinamentos" + passed_trainings: "Treinamentos anteriores" + validated_trainings: "Treinamentos validados" + events: "Eventos" + next_events: "Próximos eventos" + no_upcoming_events: "Não há eventos programados" + NUMBER_full_price_tickets_reserved: "{NUMBER, plural, =0{} one{1 ticket com preço total reservado} other{{NUMBER} tickets com preço total reservados}}" # messageFormat interpolation + NUMBER_NAME_tickets_reserved: "{NUMBER, plural, =0{} one{1 {NAME} ticket reservado} other{{NUMBER} {NAME} tickets reservados}}" # messageFormat interpolation + passed_events: "Eventos anteriores" + invoices: "Faturas" + invoice_#: "Faturas #" + download_the_refund_invoice: "Baixar fatura de reembolso" + expiration_date: "Data de expiração" + you_intentionally_decide_to_extend_the_user_s_subscription_by_offering_him_free_days: "Você intencionalmente decidir estender a inscrição do usuário, oferecendo-lhe dias livres." + you_intentionally_decide_to_extend_the_user_s_subscription_by_charging_him_again_for_his_current_subscription: "Você decide intencionalmente estender a assinatura do usuário cobrando-o novamente por sua assinatura atual." + until_(expiration_date): "Até (data de expiração):" + you_successfully_changed_the_expiration_date_of_the_user_s_subscription: "Você alterou com êxito a data de expiração da assinatura do usuário" + a_problem_occurred_while_saving_the_date: "Um erro ocorreu ao salvar a data." + new_subscription: "Nova inscrição" + you_are_about_to_purchase_a_subscription_to_NAME: "Você está prestes a comprar uma assinatura para {{NAME}}." # angular interpolation + subscription_successfully_purchased: "Assinatura adquirida com êxito." + a_problem_occurred_while_taking_the_subscription: "Ocorreu um problema ao fazer a assinatura" + + admins_new: + # add a new administrator to the platform + add_an_administrator: "Adicionar administrador" + administrator_successfully_created_he_will_receive_his_connection_directives_by_email: "Administrator criado com sucesso. {GENDER, select, female{Ela} other{Ele}} receberá {GENDER, select, female{sua} other{seu}} diretivas de conexão por e-mail." # messageFormat interpolation + + authentication_new: + # add a new authentication provider (SSO) + add_a_new_authentication_provider: "Adicionar novo provedor de autenticação" + a_local_database_provider_already_exists_unable_to_create_another: "Um provedor \"Local Database\" já existe. Não foi possível criar outro." + local_provider_successfully_saved: "Provedor local salvo com sucesso." + it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "É necessário definir a correspondência entre User.uid ea API para adicionar este fornecedor" + security_issue_detected: "Erro de segurança detectado" + beware_the_oauth2_authenticatoin_provider_you_are_about_to_add_isnt_using_HTTPS: "Cuidado: o provedor OAuth 2 que você está prestes a adicionar não está usando HTTPS." + this_is_a_serious_security_issue_on_internet_and_should_never_be_used_except_for_testing_purposes: "Este é um problema de segurança grave na Internet e nunca deve ser usado, exceto para fins de teste." + do_you_really_want_to_continue: "Você realmente deseja continuar?" + unsecured_oauth2_provider_successfully_added: "Provedor OAuth 2.0 não seguro adicionado com êxito." + oauth2_provider_successfully_added: "Provedor OAuth 2.0 adicionado com sucesso." + + authentication_edit: + # edit an authentication provider (SSO) + provider: "Provedor :" + it_is_required_to_set_the_matching_between_User.uid_and_the_API_to_add_this_provider: "É necessário definir a correspondência entre User.uid ea API para adicionar este fornecedor" + provider_successfully_updated: "Provedor modificado com sucesso" + an_error_occurred_unable_to_update_the_provider: "Um erro ocorreu: não é possível atualizar provedor." + + statistics: + # statistics tables + evolution: "Evolução" + age_filter: "Filtro de idade" + from_age: "Dos" # context: age. eg: from 8 to 40 years old + to_age: "aos" # context: age. eg: from 8 to 40 years old + _years_old: "anos de idade" + start: "Início:" + end: "Fim:" + custom_filter: "Filtro customizado" + NO_: "NÂO" + criterion: "Critério:" + value: "Valor:" + exclude: "Excluir" + entries: "Entradas:" + revenue_: "Receita:" + average_age: "Idade média:" + years_old: "Anos de idade" + total: "Total" + available_hours: "Horas disponíveis para reserva:" + available_tickets: "Vagas disponíveis para reserva:" + gender: "Gênero" + age: "Ano" + revenue: "Receita" + unknown: "Desconhecido" + user_id: "ID do usuário" + display_more_results: "Mostrar mais resultados" + export_statistics_to_excel: "Exportar estatísticas para o Excel" + export_all_statistics: "Exportar todas estatísticas" + export_the_current_search_results: "Exportar resultados encontrados" + export: "Exportar" + + stats_graphs: + # statistics graphs + data: "Dado" + day: "Dia" + week: "Semana" + start: "Início:" + end: "Fim:" + revenue: "Receita" + top_list_of: "Topo da lista de" + number: "Número" + week_short: "Semana" + week_of_START_to_END: "Semana de {{START}} á {{END}}" # angular interpolation + no_data_for_this_period: "Nenhum dado para este período" + + settings: + # global application parameters and customization + settings: + tittle: "Title" + customize_the_application: "Customizar a aplicação" + general: "Geral" + fablab_title: "Título do FabLab" + fablab_name: "Nome do FabLab" + title_concordance: "Tírulo concordância" + male: "Masculino." + female: "Feminino." + eg: "ex:" + about: "Sobre" + male_preposition: "o" + female_preposition: "a" + customize_information_messages: "Customizar mensagens" + message_of_the_machine_booking_page: "Mensagem na página de reserva de máquina:" + type_the_message_content: "Digite o conteúdo da mensagem" + warning_message_of_the_training_booking_page: "Mensagem de aviso da página de reserva de treinamento:" + information_message_of_the_training_reservation_page: "Mensagem de informação da página de reservas de treinamentos:" + message_of_the_subscriptions_page: "Mensagem da página de inscrições:" + message_of_the_events_page: "Mensagem da página de eventos:" + message_of_the_spaces_page: "Mensagem da página de espaços:" + legal_documents: "Documentos legais" + if_these_documents_are_not_filled_no_consent_about_them_will_be_asked_to_the_user: "Se estes documentos não forem preenchidos, não será solicitado consentimento." + general_terms_and_conditions_(T&C): "Termos gerais e condições" + terms_of_service_(TOS): "Termos de serviço" + customize_the_graphics: "Customização gráfica" + 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 uma renderização ideal, a imagem do logotipo deve estar no formato PNG com um fundo transparente e uma relação de aspecto 3,5 mais larga do que a altura." + concerning_the_favicon_it_must_be_at_ICO_format_with_a_size_of_16x16_pixels: "Em relação ao favicon, ele deve estar no formato ICO com um tamanho de 16x16 pixels." + remember_to_refresh_the_page_for_the_changes_to_take_effect: "Lembre-se de recarregar a página para que estas alterações tenham efeito." + logo_(white_background): "Logo (fundo branco)" + change_the_logo: "Mudar logo" + logo_(black_background): "Logo (fundo preto)" + favicon: "Favicon" + change_the_favicon: "Trocar favicon" + main_colour: "Cor principal:" + primary: "Primária" + secondary_colour: "Cor secundária:" + secondary: "Secundária" + background_picture_of_the_profile_banner: "Imagem de plano de fundo do perfil" + change_the_profile_banner: "Alterar a capa do perfil" + home_page: "Página inicial" + news_of_the_home_page: "Notícias da página inicial:" + type_your_news_here: "Escreva aqui suas notícias" + leave_it_empty_to_not_bring_up_any_news_on_the_home_page: "Deixe vazio para não abrir nenhuma notícia na home page" + twitter_stream: "Twitter Stream:" + name_of_the_twitter_account: "Nome da conta do Twitter" + title_of_the_about_page: "Título da página sobre" + shift_enter_to_force_carriage_return: "SHIFT + ENTER para forçar o retorno" + input_the_main_content: "Introduza o conteúdo principal" + input_the_fablab_contacts: "Insira os contatos do FabLab" + reservations: "Reservas" + reservations_parameters: "Parâmetros das reservas" + confine_the_booking_agenda: "Confine a agenda de reserva" + opening_time: "Horário de abertura" + closing_time: "Horário de fechamento" + ability_for_the_users_to_move_their_reservations: "Habilidade para os usuários mover suas reservas" + reservations_shifting: "Mudança de reservas" + prior_period_(hours): "Período anterior (horas)" + enabled: "Ativado" + disabled: "Desativado" + ability_for_the_users_to_cancel_their_reservations: "Habilidade para os usuários cancelarem suas reservas" + reservations_cancelling: "Cancelamento de reservas" + reservations_reminders: "Lembretes de reservas" + notification_sending_before_the_reservation_occurs: "Notificação de lembrete da reserva" + customization_of_SETTING_successfully_saved: "Personalização do {{SETTING}} salvo com êxito." # angular interpolation + file_successfully_updated: "Arquivo modificado com sucesso." + name_genre: "Título de concordância" + machine_explications_alert: "Mensagem explicativa na página de reserva da máquina" + training_explications_alert: "Mensagem de explicação na página de reservas de treinamento" + training_information_message: "Mensagem de informação na página de reserva da máquina" + subscription_explications_alert: "Mensagem de explicação na página de inscrição" + event_explications_alert: "mensagem de explicação do evento na página de reserva" + space_explications_alert: "mensagem de explicação na página de reserva de espaço" + main_color: "Cor principal" + secondary_color: "Cor secundária" + home_blogpost: "Resumo da página inicial" + twitter_name: "Nome do feed do Twitter" + about_title: "\"Sobre\" título da página" + about_body: "\"Sobre\" conteúdo da página" + about_contacts: "\"Sobre\" página de contatos" + booking_window_start: "Horário de abertura" + booking_window_end: "Horário de fechamento" + booking_move_enable: "Mover reserva habilitado" + booking_move_delay: "Atraso preventivo da mudança" + booking_cancel_enable: "Cancelamento de reserva permitindo" + booking_cancel_delay: "Atraso preventivo de cancelamento" + reminder_enable: "Recordar reserva ativo" + reminder_delay: "Atraso antes de enviar o lembrete" + default_value_is_24_hours: "Se o campo estiver vazio: 24 horas." + + open_api_clients: + add_new_client: "Criar novo cliente de API" + api_documentation: "Documentação da API" + open_api_clients: "Cliente OpenAPI" + calls_count: "Contagem de chamadas" + created_at: "Data de criação" + reset_token: "revogar acesso" + client_name: "Nome do cliente" + do_you_really_want_to_delete_this_open_api_client: "Deseja realmente excluir este cliente OpenAPI??" + do_you_really_want_to_revoke_this_open_api_access: "Deseja mesmo revogar este acesso? Ele apagará e substituirá o token atual." + client_successfully_created: "Cliente criado com sucesso." + client_successfully_updated: "Cliente alterado com sucesso." + client_successfully_deleted: "Cliente excluído com sucesso." + access_successfully_revoked: "Acesso revogado com sucesso." + + space_new: + # create a new space + space_new: + add_a_new_space: "Adicionar um novo espaço" + watch_out_when_creating_a_new_space_its_prices_are_initialized_at_0_for_all_subscriptions: "Cuidado! Ao criar um novo espaço, seus preços são inicializados em 0 para todas as assinaturas." + consider_changing_its_prices_before_creating_any_reservation_slot: "Considere alterar seus preços antes de criar qualquer slot de reserva." + add_this_space: "Adicionar este espaço" + + space_edit: + # modify an exiting space + space_edit: + edit_the_space_NAME: "Editar o espaço: {{NAME}}" # angular interpolation + validate_the_changes: "Validar mudanças" diff --git a/config/locales/app.logged.pt-BR.yml b/config/locales/app.logged.pt-BR.yml new file mode 100755 index 000000000..4b3bfad9c --- /dev/null +++ b/config/locales/app.logged.pt-BR.yml @@ -0,0 +1,130 @@ +pt-BR: + app: + logged: + profileCompletion: + # user's profile completion page when logging from an SSO provider + confirm_your_new_account: "Confirme sua nova conta" + you_ve_just_created_a_new_account_on_the_fablab_by_logging_from: "Você acabou de criar uma nova conta como {NAME}" # messageFormat interpolation + we_need_some_more_details: "Para finalizar a configuração da plataforma, precisamos de mais detalhes" + your_email_is_already_used_by_another_account_on_the_platform: "Parece que seu endereço de e-mail já é usado por outro usuário. Verifique seu endereço de e-mail e insira abaixo o código enviado para você." + please_fill_the_following_form: "Preencha o seguinte formulário" + some_data_may_have_already_been_provided_by_provider_and_cannot_be_modified: "Alguns dados podem já ter sido fornecidos por {{NAME}} e não podem ser modificados" # angular interpolation + then_click_on_: "Em seguida, clique em" + _to_start_using_the_application: "Para começar a usar o aplicativo" + new_on_this_platform: "Novo nessa plataforma?" + your_email_: "Seu email" + _is_currently_associated_with_another_account_on_this_platform: "Está atualmente associado a outra conta nesta plataforma." + please_click_to_change_email_associated_with_your_PROVIDER_account: "Se não for seu, clique no botão a seguir para alterar o e-mail associado à sua conta do {{PROVIDER}}." # angular interpolation + do_you_already_have_an_account: "Do you already have an account?" + do_not_fill_the_form_beside_but_specify_here_the_code_you_ve_received_by_email_to_recover_your_access: "Não preencha o formulário ao lado, mas especifique aqui o código que recebeu por e-mail, para recuperar o seu acesso." + just_specify_code_here_to_recover_access: "Basta especificar aqui o código que recebeu por e-mail para recuperar o seu acesso." + i_did_not_receive_the_code: "Eu não recebi o código" + authentification_code: "Código de autenticação" + confirm_my_code: "Confirmar meu código" + an_unexpected_error_occurred_check_your_authentication_code: "Um erro inexperado ocorreu, por favor cheque seu código de autenticação." + send_code_again: "Enviar código novamente" + email_address_associated_with_your_account: "Email associado com sua conta" + email_format_is_incorrect: "Formato de email incorreto" + code_successfully_sent_again: "Código enviado novamente com sucesso" + + dashboard: + # dashboard: public profile + profile: + empty: '' + settings: + # dashboard: edit my profile + last_activity_on_: "Última atividade em" + i_want_to_change_group: "Eu quero trocar de grupo!" + your_subscription_expires_on_: "Sua inscrição expira em" + no_subscriptions: "Sem inscrições" + i_want_to_subscribe: "Eu quero me inscrever!" + to_come: "futuros" + approved: "aprovado" + projects: "Projetos" + no_projects: "Sem projetos" + labels: "Etiquetas" + no_labels: "Sem etiquetas" + delete_my_account: "Deletar minha conta" + edit_my_profile: "Editar meu perfil" + your_group_has_been_successfully_changed: "Seu grupo foi modificado com sucesso." + an_unexpected_error_prevented_your_group_from_being_changed: "Um erro inesperado impediu o seu grupo de ser alterado." + do_you_really_want_to_delete_your_account: "Você realmente deseja deletar sua conta?" + all_data_relative_to_your_projects_will_be_lost: "Todos os dados relativos aos seus projectos serão perdidos." + your_user_account_has_been_successfully_deleted_goodbye: "Sua conta de usuário foi excluída com êxito. Até mais." + an_error_occured_preventing_your_account_from_being_deleted: "Ocorreu um erro, impedindo que sua conta fosse excluída." + projects: + # dashboard: my projects + you_dont_have_any_projects: "Você não tem nenhum projeto." + author: "Autor" + collaborator: "Colaborador" + trainings: + # dashboard: my trainings + your_next_trainings: "Seus próximos treinamentos" + your_previous_trainings: "Seus treinamentos anteriores" + your_approved_trainings: "Seus treinamentos aprovados" + events: + # dashboard: my events + your_next_events: "Seus próximos eventos" + no_events_to_come: "Sem eventos futuros" + your_previous_events: "Seus eventos anteriores" + NUMBER_normal_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{lugar normal reservado} other{lugares normais reservados}}" # messageFormat interpolation + NUMBER_of_NAME_places_reserved: "{NUMBER} {NUMBER, plural, =0{} =1{{NAME} lugar reservado} other{{NAME} lugares reservados}}" # messageFormat interpolation + invoices: + # dashboard: my invoices + reference_number: "Número de referência" + + members_show: + # public profil of a member + members_list: "Lista de membros" + + members: + # list of members accepting to be contacted + the_fablab_members: "Membros do FabLab" + display_more_members: "Mostrar mais membros..." + no_members_for_now: "Sem membros" + avatar: "Avatar" + + projects_new: + # add a new project + add_a_new_project: "Adicionar novo projeto" + save_button_value: "Salvar como rascunho" # "save as draft" + + projects_edit: + # modify an existing project + save_button_value: "Salvar" # "save" + edit_the_project: "Editar projeto" + publish: "Publicar" + + machines_reserve: + # book a machine + machine_planning: "Planejamento de máquinas" + i_ve_reserved: "Eu tenho reserva" + not_available: "Não disponível" + i_reserve: "Eu reservo" + i_shift: "Eu mudo" + i_change: "Eu altero" + + trainings_reserve: + # book a training + trainings_planning: "Planos de treinamento" + planning_of: "Planejamento de" # followed by the training name (eg. "Planning of 3d printer training") + all_trainings: "Todos treinamentos" + cancel_my_selection: "Cancelar minha seleção" + i_ve_reserved: "Eu reservei" + + space_reserve: + # book a space + space_reserve: + planning_of_space_NAME: "Plano de {{NAME}} espaço" # angular interpolation + i_ve_reserved: "Eu reservei" + i_shift: "Eu troco" + i_change: "Eu altero" + + notifications: + notifications_center: "Centro de notificações" + mark_all_as_read: "Marcar todas como lidas" + notif_title: "Título" + no_new_notifications: "Nenhuma nova notificação." + archives: "Arquivos" + no_archived_notifications: "Sem notificações arquivadas." + load_the_next_notifications: "Carregar próximas notificações..." diff --git a/config/locales/app.public.pt-BR.yml b/config/locales/app.public.pt-BR.yml new file mode 100755 index 000000000..458d1c29b --- /dev/null +++ b/config/locales/app.public.pt-BR.yml @@ -0,0 +1,276 @@ +pt-BR: + app: + public: + common: + # header and "about" page + about_the_fablab: "Sobre {NAME}" # messageFormat interpolation + return: "Voltar" + + # dashboard sections + dashboard: "Dashboard" + my_profile: "Meu Perfil" + my_settings: "Minhas Configurações" + my_projects: "Meus Projetos" + my_trainings: "Meus Treinamentos" + my_events: "Meus Eventos" + my_invoices: "Minhas Contas" + my_wallet: "Minha Carteira" + + # login/logout + sign_out: "Sair" + sign_up: "Cadastrar" + sign_in: "Entrar" + + # left menu + notifications: "Nofificações" + admin: "Admin" + reduce_panel: "Reduzir painel" + + # left menu (public) + home: "Início" + reserve_a_machine: "Reservar Máquina" + trainings_registrations: "Registro de treinamentos" + events_registrations: "Registro de Eventos" + reserve_a_space: "Reserva de espaço" + projects_gallery: "Galeria de Projetos" + subscriptions: "Assinaturas" + public_calendar: "Calendário" + + # left menu (admin) + trainings_monitoring: "Treinamentos" + select_a_training: "Selecionar treinamento" + manage_the_calendar: "Gerenciar calendário" + manage_the_users: "Gerenciar usuários" + manage_the_invoices: "Gerenciar contas" + subscriptions_and_prices: "Assinaturas e Preços" + manage_the_events: "Gerenciar eventos" + manage_the_machines: "Gerenciar Máquinas" + manage_the_spaces: "Gerenciar espaços" + manage_the_projects_elements: "Gerenciar Elementos de Projeto" + statistics: "Estatísticas" + customization: "Customizações" + open_api_clients: "OpenAPI clients" + + # account creation modal + create_your_account: "Criar sua conta" + man: "Masculino" + woman: "Feminino" + gender_is_required: "Gênero é obrigatório." + your_first_name: "Seu primeiro nome" + first_name_is_required: "Primeiro nome é obrigatório." + your_surname: "Seu sobrenome" + surname_is_required: "Sobrenome é obrigatório." + your_pseudonym: "Seu apelido" + pseudonym_is_required: "Apelido é obrigatório." + your_email_address: "Seu e-mail" + email_is_required: "E-mail é obrigatório." + your_password: "Sua senha" + password_is_required: "Senha é obrigatório." + password_is_too_short_(minimum_8_characters): "Senha muito curta (mínimo 8 caracteres)" + type_your_password_again: "Digite sua senha novamente" + password_confirmation_is_required: "Confirmação de senha é obrigatório." + password_does_not_match_with_confirmation: "A senha não é igual ao da confirmação." + i_am_an_organization: "Eu sou uma organização" + name_of_your_organization: "Nome da sua organização" + organization_name_is_required: "Nome da organização é obrigatório." + address_of_your_organization: "Endereço da sua organização" + organization_address_is_required: "Endereço da organização é obrigatório." + your_user_s_profile: "Seu perfil de usuário" + user_s_profile_is_required: "Seu perfil de usuário é obrigatório." + birth_date: "Data de nascimento" + birth_date_is_required: "Data de nascimento é obrigatório." + phone_number: "Número de telefone" + phone_number_is_required: "Número de telefone é obrigatório." + i_authorize_Fablab_users_registered_on_the_site_to_contact_me: "Eu autorizo usuários do FabLab, registrados no site, a entrarem em contato comigo" + i_accept_to_receive_information_from_the_fablab: "Eu aceito receber informações do FabLab" + i_ve_read_and_i_accept_: "Eu li e aceito" + _the_fablab_policy: "a política do FabLab" + + # password modification modal + change_your_password: "Mudar sua senha" + your_new_password: "Sua nova senha" + your_password_was_successfully_changed: "Sua senha foi mudada com sucesso." + + # connection modal + connection: "Login" + password_forgotten: "Esqueceu sua senha?" + not_registered_to_the_fablab: "Ainda não registrado no Fablab?" + create_an_account: "Criar conta" + wrong_email_or_password: "E-mail ou senha incorretos." + + # forgotten password modal + your_email_address_is_unknown: "Seu e-mail não está cadastrado." + you_will_receive_in_a_moment_an_email_with_instructions_to_reset_your_password: "Você irá receber um e-mail com as instruções para resetar sua senha." + + # Fab-manager's version + version: "Versão:" + + # Notifications + and_NUMBER_other_notifications: "and {NUMBER, plural, =0{no other notifications} =1{one other notification} other{{NUMBER} other notifications}}..." # messageFormat interpolation + + about: + # about page + read_the_fablab_policy: "Ler a política do FabLab" + read_the_fablab_s_general_terms_and_conditions: "Ler os termos e condições do FabLab" + your_fablab_s_contacts: "Nossos contatos" + + home: + # home page + latest_documented_projects: "Últimos projetos documentados" + follow_us: "Siga nos" + latest_tweets: "Os últimos tweets" + latest_registered_members: "Últimos membros registrados" + create_an_account: "Criar uma conta" + discover_members: "Ver membros" + + # next events summary on the home page + fablab_s_next_events: "Próximos eventos do FabLab" + every_events: "Todos Eventos" + from_date_to_date: "De {{START}} até {{END}}" # angular interpolation + on_the_date: "Em {{DATE}}" # angular interpolation + from_time_to_time: "Das {{START}} até {{END}}" # angular interpolation + free_entry: "Entrada franca" + free_admission: "Admissão grátis" + full_price: "Valor inteira" + event_full: "Evento lotado" + + projects_list: + # projects gallery + the_fablab_projects: "Projetos do Fab Lab" + search_over_the_whole_network: "Pesquisar em todos os FabLabs" + tooltip_openlab_projects_switch: "A busca em todos os FabLabs busca projetos em todos os FabLabs que usam o Fab-manager !" + openlab_search_not_available_at_the_moment: "A busca em toda a rede de FabLabs não está disponível no momento. Você pode procurar por projetos nesta plataforma." + project_search_result_is_empty: "Desculpe, nós não achamos nenhum resultado para sua pesquisa." + reset_all_filters: "Resetar todos os filtros" + search: "Procurar" + all_projects: "Todos os projetos" + my_projects: "Meus Projetos" + projects_to_whom_i_take_part_in: "Projetos que eu participo" + all_machines: "Todas as máquinas" + all_materials: "Todos os materiais" + load_next_projects: "Carregar próximos projetos" + + projects_show: + # details of a projet + project_description: "Descrição do projeto" + by_name: "Por {{NAME}}" # angular interpolation + posted_on_: "Criado em" + CAD_file_to_download: "{COUNT, plural, =0{No CAD files} =1{CAD file to download} other{CAD files to download}}" # messageFormat interpolation + licence: "Licença" + report_an_abuse: "Denunciar" + unauthorized_operation: "Operação não autorizada" + your_report_was_successful_thanks: "Sua denúncia foi enviada com sucesso. Obrigado." + an_error_occured_while_sending_your_report: "Um erro ocorreu ao enviar sua denúncia." + your_first_name: "Seu primeiro nome" + your_first_name_is_required: "Seu primeiro nome é requerido." + your_surname: "Seu sobrenome" + your_surname_is_required: "Seu sobrenome é obrigatório." + your_email_address: "Seu e-mail" + your_email_address_is_required: "Seu e-mail é obrigatório." + tell_us_why_this_looks_abusive: "Nos diga porque esse projeto é abusivo" + message_is_required: "Menssagem é obrigatório." + report: "Enviar" + do_you_really_want_to_delete_this_project: "Você quer realmente deletar esse projeto?" + + machines_list: + # list of machines + the_fablab_s_machines: "Lista de máquinas no FabLab" + add_a_machine: "Adicionar uma máquina" + _or_the_: " ou o " + + machines_show: + # details of a machine + book_this_machine: "Reservar essa máquina" + files_to_download: "Arquivos para download" + projects_using_the_machine: "Projetos usando esta máquina" + _or_the_: " ou o " + do_you_really_want_to_delete_this_machine: "Você realmente quer deletar essa máquina?" + unauthorized_operation: "Operação não autorizada" + the_machine_cant_be_deleted_because_it_is_already_reserved_by_some_users: "Esta máquina não pode ser deletada, pois já está em reservada por alguns usuários." + + trainings_list: + # list of trainings + the_trainings: "Os treinamentos" + + training_show: + # details of a training + book_this_training: "Reservar este treinamento" + do_you_really_want_to_delete_this_training: "Você realmente quer deletar esse treinamento?" + unauthorized_operation: "Operação não autorizada" + the_training_cant_be_deleted_because_it_is_already_reserved_by_some_users: "O treinamento não pode ser deletado pois já foi reservado por alguns usuários." + + plans: + # summary of the subscriptions + subcriptions: "Assinaturas" + i_choose_that_plan: "Eu escolho esse plano" + i_subscribe_online: "Me inscrever online" + i_already_subscribed: "Eu já estou inscrito" + more_information: "Mais informação" + your_subscription_expires_on_the_DATE: "Sua inscrição expira em {{DATE}}" # angular interpolation + my_group: "Meu grupo" + his_group: "{GENDER, select, masculino{Ele} feminino{Ela} outro{Esses}} grupo" # messageFormat interpolation + he_wants_to_change_group: "{ROLE, select, admin{O usuário quer} other{Eu quero}} trocar de grupo" # messageFormat interpolation + change_my_group: "Mudar {ROLE, select, admin{{GENDER, select, male{dele} female{dela} other{esses}}} other{meu}} grupo" # messageFormat interpolation + your_subscription_has_expired_on_the_DATE: "Sua inscrição expirou em {{DATE}}" # angular interpolation + you_ve_just_payed_the_: "Você acabou de pagar o" + thank_you_your_subscription_is_successful: "Obrigado. Sua inscrição foi feita com sucesso!" + your_group_was_successfully_changed: "Seu grupo foi alterado com sucesso." + the_user_s_group_was_successfully_changed: "O grupo de usuários foi alterado com sucesso." + an_error_prevented_your_group_from_being_changed: "Um erro impediu que seu grupo fosse alterado." + an_error_prevented_to_change_the_user_s_group: "Um erro impediu que o grupo de usuários fosse alterado com sucesso." + an_error_occured_during_the_payment_process_please_try_again_later: "Um erro ocorreu durante o processo de pagamento. Por favor tente novamente mais tarde." + subscription_confirmation: "Inscrição confirmada" + here_is_the_NAME_subscription_summary: "Aqui é o sumário de inscrição do {{NAME}}:" # angular interpolation + + events_list: + # Fablab's events list + the_fablab_s_events: "Eventos do Fablab" + all_categories: "Todas categorias" + for_all: "Para todos" + + events_show: + # details and booking of an event + event_description: "Descrição do evento" + downloadable_documents: "Documentos para download" + information_and_booking: "Informações e reservas" + beginning: "Início:" + ending: "Término:" + opening_hours: "Abre ás:" + tickets_still_availables: "Tickets ainda disponíveis:" + sold_out: "Esgotado." + free_entry: "Entrada franca" + ticket: "{NUMBER, plural, one{ticket} other{tickets}}" # messageFormat interpolation + make_a_gift_of_this_reservation: "Doe esta reserva" + you_can_find_your_reservation_s_details_on_your_: "Você pode encontrar detalhes da sua reserva em seu" + you_booked_(DATE): "Sua reserva ({{DATE}}):" # angular interpolation + book: "Reservar" + change_the_reservation: "Alterar reserva" + you_can_shift_this_reservation_on_the_following_slots: "Você pode alterar essa reserva nos campos a seguir:" + + calendar: + # public calendar + calendar: + calendar: "Calendário" + show_unavailables: "Mostrar slots não disponíveis" + filter_calendar: "Filtrar calendário" + trainings: "Treinamentos" + machines: "Máquinas" + spaces: "Espaços" + events: "Eventos" + + spaces_list: + # list of spaces + the_spaces: "Os espaços" + add_a_space: "Adicionar espaço" + + space_show: + # display the details of a space + space_show: + book_this_space: "Marcar este espaço" + unauthorized_operation: "Operação não autorizada" + confirmation_required: "Confirmação obrigatória" + do_you_really_want_to_delete_this_space: "Vocêrealmente deseja remover este espaço?" + the_space_cant_be_deleted_because_it_is_already_reserved_by_some_users: "Impossível remover este espaço, pois ele já foi reservado por alguns usuários." + characteristics: "Características" + files_to_download: "Arquivo para download" + projects_using_the_space: "Projetos usando espaço" \ No newline at end of file diff --git a/config/locales/app.shared.pt-BR.yml b/config/locales/app.shared.pt-BR.yml new file mode 100755 index 000000000..1e8708cb1 --- /dev/null +++ b/config/locales/app.shared.pt-BR.yml @@ -0,0 +1,450 @@ +pt-BR: + app: + shared: + buttons: + # translations of common buttons + confirm_changes: "Confirmar mudanças" + consult: "Consultar" + edit: "Editar" + change: "Alterar" + delete: "Deletar" + browse: "Navegar" + cancel: "Cancelar" + close: "Fechar" + clear: "Limpar" + today: "Hoje" + confirm: "Confirmar" + save: "Salvar" + "yes": "Sim" + "no": "Não" + apply: "Aplicar" + confirm_(payment_on_site): "Confirmar (Pagamento no site)" + + elements: + # various translations used many times in the application + group: "Grupo" + subscription: "Assinaturas" + trainings: "Treinamentos" + no_trainings: "Sem treinamentos" + confirmation_required: "Confirmação obrigatória" + description: "Descrição" + machines: "Máquinas" + events: "Eventos" + materials: "Materiais" + date: "Data" + price: "Preço" + download_the_invoice: "Baixar a fatura" + download_the_credit_note: "Baixar a nota de crédito" + no_invoices_for_now: "Nenhuma fatura." + email_address: "Email" + user: "Usuário" + pseudonym: "Apelido" + all_day: "Dia todo" + reservation_was_successfully_cancelled: "Reserva cancelada com sucesso." + title: "Título" + total_: "TOTAL :" + full_price_: "Valor inteira:" + rough_draft: "Rascunho" + machines_and_materials: "Máquinas e materiais" + collaborators: "Colaboradores" + summary: "Sumário" + you_ve_just_selected_a_: "Você selecionou apenas o" # you_ve_just_selected_a_ + _subscription + _subscription: "inscrição" + confirm_and_pay: "Confirmar e pagar" + your_invoice_will_be_available_soon_from_your_: "Sua fatura estará disponível em breve" + add_an_event: "Adicionar um evento" + load_the_next_events: "Carregar próximos eventos..." + no_passed_events: "Sem eventos" + dates: "Datas:" + thank_you_your_payment_has_been_successfully_registered: "Obrigado. Seu pagamento foi registrado com sucesso !" + surname: "Sobrenome" + first_name: "Primeiro nome" + address: "Endereço" + interests: "Interesses" + CAD_softwares_mastered: "CAD Softwares mastered" + name: "Nome" + step_N: "Passo {{INDEX}}" # angular interpolation + themes: "Temas" + tags: "Tags" + technical_specifications: "Especificações técnicas" + online_payment: "Pagamento Online" + type: "Tipo" + partner: "Parceiro" + standard: "Padrão" + year: "Ano" + month: "Mês" + subscription_price: "Preço da assinatura" + model: "Modelo" + from_date: "De" # context: date. eg: "from 01/01 to 01/05" + from_time: "De" # context: time. eg. "from 18:00 to 21:00" + to_date: "até" # context: date. eg: "from 01/01 to 01/05" + to_time: "até" # context: time. eg. "from 18:00 to 21:00" + or: "ou" + change_my_data: "Alterar meus dados" + sync_my_profile: "Sincronizar meu perfil" + once_your_data_are_up_to_date_: "Uma vez que seus dados estão atualizados," + _click_on_the_synchronization_button_opposite_: "clique no botão de sincronização" + _disconnect_then_reconnect_: "disconecte e se conecte novamente" + _for_your_changes_to_take_effect: "para que suas alterações tenham efeitos." + add_a_project: "Adicionar projeto" + illustration: "Ilustração" + add_an_illustration: "Adicionar ilustração." + book: "Agendar" + description_is_required: "Descrição é obrigatório." + name_is_required: "Nome é obrigatório." + all_themes: "Todos temas" + filter: 'Filtro' + confirm_payment_of_html: "{ROLE, select, admin{Pagamento pelo site} other{Pagamento}}: {AMOUNT}" # messageFormat interpolation (context: confirm my payment of $20.00) + export_is_running_you_ll_be_notified_when_its_ready: "Exportação em andamento. Você será notificado quando terminar." + share_on_facebook: "Compartilhar no Facebook" + share_on_twitter: "Compartilhar no Twitter" + incomplete_profile: "Perfil incompleto" + unlimited: "Ilimitado" + + messages: + you_will_lose_any_unsaved_modification_if_you_quit_this_page: "Você irá perder todas as modificações não salvas se sair desta página" + you_will_lose_any_unsaved_modification_if_you_reload_this_page: "Você irá perder todas as modificações não salvas se recarregar desta página" + + user: + # user edition form + add_an_avatar: "Adicionar avatar" + pseudonym: "Apelido" + email_address_is_required: "E-mail é obrigatório." + change_password: "Alterar senha" + new_password: "Nova senha" + confirmation_of_new_password: "Confirmação da nova senha" + confirmation_of_password_is_required: "A confirmação da senha é obrigatória." + confirmation_of_password_is_too_short_(minimum_8_characters): "A confirmação da senha é muito curta (mínimo 8 caracteres)." + confirmation_mismatch_with_password: "Confirmação de senha é diferente da senha." + organization_name: "Nome da organização" + organization_address: "Endereço da organização" + date_of_birth: "Data de nascimento" + date_of_birth_is_required: "Data de nascimento é obrigatório." + website: "Website" + job: "Ocupação" + + project: + # project edition form + illustration: "Ilustração" + add_an_illustration: "Adicionar ilustração" + CAD_file: "Arquivo do CAD" + allowed_extensions: "Extensões permitidas:" + add_a_new_file: "Adicionar novo arquivo" + steps: "Passos" + step_title: "Passo Título" + add_a_picture: "Adicionar imagem" + change_the_picture: "Alterar imagem" + delete_the_step: "Deletar este passo" + do_you_really_want_to_delete_this_step: "Você realmente deseja deletar este passo?" + add_a_new_step: "Adicionar novo passo" + publish_your_project: "Publicar seu projeto" + employed_materials: "Materiais utilizados" + employed_machines: "Máquinas utilizadas" + creative_commons_licences: "Licença Creative Commons" + + machine: + # machine edition form + technical_specifications_are_required: "Especificações técnicas são obrigatórias." + attached_files_(pdf): "Arquivos anexos (pdf)" + attach_a_file: "Anexar arquivo" + add_an_attachment: "Adicionar anexo" + validate_your_machine: "Validar sua máquina" + + plan_subscribe: + # frame to select a plan to subscribe + subscribe_online: "Inscrição online" + do_not_subscribe: "não inscrito" + + member_select: + # admin: choose a member to interact with + select_a_member: "Selecionar um membro" + start_typing: "Escrevendo..." + please_select_a_member_first: "Por favor, primeiramente selecione um membro" + + stripe: + # stripe payment modal + i_have_read_and_accept_: "Eu li e aceito" + _the_general_terms_and_conditions: "os termos e condições." + enter_your_card_number: "Entre com o número do seu cartão" + credit_amount_for_pay_reservation: "{{amount}} {{currency}} a ser pago para confirmar sua inscrição" + client_credit_amount_for_pay_reservation: "{{amount}} {{currency}} a ser pago para confirmar a inscrição do cliente" + + valid_reservation_modal: + # dialog of on site payment for reservations + booking_confirmation: "Confirmação de reserva" + here_is_the_summary_of_the_slots_to_book_for_the_current_user: "Aqui está um resumo das reservas para o usuário atual:" + + event: + # event edition form + title_is_required: "Título é obrigatório." + matching_visual: "Correspondência visual" + choose_a_picture: "Escolha uma imagem" + attachments: "Anexos" + add_a_new_file: "Adicionar um novo arquivo" + event_type: "Tipo de evento" + dates_and_opening_hours: "Datas e horas" + all_day: "Dia todo" + start_date: "Data de início" + end_date: "Data de término" + start_time: "Horário de início" + end_time: "Horário de término" + recurrence: "Recorrência" + _and_ends_on: "e acaba em" + prices_and_availabilities: "Preços e disponibilidades" + standard_rate: "Taxa padrão" + 0_=_free: "0 = grátis" + tickets_available: "Tickets disponíveis" + event_theme: "Tema do evento" + age_range: "Faixa etária" + + plan: + # subscription plan edition form + plan_form: + general_information: "Informação geral" + name: "Nome" + name_length_must_be_less_than_24_characters: "O nome deve conter no máximo 24 caracteres." + type: "Tipo" + type_is_required: "Tipo é obrigatório." + group: "Grupo" + transversal_(all_groups): "Transversal (todos os grupos)" + group_is_required: "Grupo é obrigatório." + number_of_periods: "Número de períodos" + number_of_periods_is_required: "Número de períodos é obrigatório." + period: "Período" + year: "Ano" + month: "Mês" + week: "Semana" + period_is_required: "Período é obrigatório." + subscription_price: "Preço de inscrição" + price_is_required: "Preço é obrigatório." + visual_prominence_of_the_subscription: "Proeminência visual da assinatura" + on_the_subscriptions_page_the_most_prominent_subscriptions_will_be_placed_at_the_top_of_the_list: "Na página de inscrições a inscrição mais relevante aparecerá no topo da lista." + an_evelated_number_means_a_higher_prominence: "Um número elevado significa uma maior relevância." + rolling_subscription: "Assinatura contínua?" + a_rolling_subscription_will_begin_the_day_of_the_first_training: "A assinatura contínua começarrá no primeiro dia de treinamento." + otherwise_it_will_begin_as_soon_as_it_is_bought: "Caso contrário, elecomeçará assim que for comprado." + information_sheet: "Folha de informação" + attach_an_information_sheet: "Anexar folha de informação" + notified_partner: "Parceiro notificado" + new_user: "Novo usuário ..." + as_part_of_a_partner_subscription_some_notifications_may_be_sent_to_this_user: "Como parte da inscrição do parceiro, algumas notificações podem ser enviadas para este usuário." + new_partner: "Novo parceiro" + email_address_is_required: "Email é obrigatório." + + trainings: + # training edition form + add_a_new_training: "Adicionar um novo treinamento" + validate_your_training: "Validar seu treinamento" + associated_machines: "Máquinas associadas" + number_of_tickets: "Número de vagas" + public_page: "Mostrar na lista de treinamentos" + + user_admin: + # partial form to edit/create an user (admin view) + user_profile: "Perfil de usuário" + warning_incomplete_user_profile_probably_imported_from_sso: "Atenção: Esse perfil de usuário está incompleto. As \"single sign-on\" (SSO) authentication is currently enabled, it may probably be an imported but non merged account. Do not modify it unless you know what your doing." + group: "Grupo" + group_is_required: "Grupo é obrigatório" + disable_invoices_generation: "Desativar geração de faturas:" + no_more_invoices_will_be_generated_for_: "Mais nenhuma fatura será gerada para" + _the_payments_carried_out_at_the_reception_: "os pagamentos efetuados" + _regarding_this_user: "sobre este usuário." + trainings: "Treinamentos" + + authentication: + # partial form to edit/create an authentication provider (SSO) + provider_name_is_required: "Nome da provider é obrigatório." + authentication_type: "Tipo de autenticação" + authentication_type_is_required: "Tipo de autenticação é obrigatório." + data_mapping: "Mapeando dados" + expected_data_type: "Esperado tipo de dado" + input_format: "Insira o formato" + mappings: "Mapeamentos" + + oauth2: + # edition/creation form of an OAuth2 authentication provider + common_url: "Common URL" + common_url_is_required: "Common URL is required." + provided_url_is_not_a_valid_url: "Provided URL is not a valid URL." + authorization_endpoint: "Authorization endpoint" + oauth2_authorization_endpoint_is_required: "OAuth 2.0 authorization endpoint is required." + provided_endpoint_is_not_valid: "Provided endpoint is not valid." + token_acquisition_endpoint: "Token acquisition endpoint" + oauth2_token_acquisition_endpoint_is_required: "OAuth 2.0 token acquisition endpoint is required." + profil_edition_url: "Profil edition URL" + profile_edition_url_is_required: "Profile edition URL is required." + client_identifier: "Client identifier" + oauth2_client_identifier_is_required: "OAuth 2.0 client identifier is required." + obtain_it_when_registering_with_your_provider: "Obtain it when registering with your provider." + client_secret: "Client secret" + oauth2_client_secret_is_required: "OAuth 2.0 client secret is required." + define_the_fields_mapping: "Define the fields mapping" + add_a_match: "Add a match" + field: "Linhas" + api_endpoint_url: "API endpoint URL" + api_type: "API tipo" + api_fields: "API linhas" + + confirm_modify_slot_modal: + # machine/training slot modification modal + change_the_slot: "Alterar o slot" + do_you_want_to_change_your_booking_slot_initially_planned_at: "Você deseja alterar seu agendamento, inicialmente marcado para:" + do_you_want_to_change_NAME_s_booking_slot_initially_planned_at: "Você deseja alterar o agendamento do usuário {{NAME}}, inicialmente marcado para:" # angular interpolation + cancel_this_reservation: "Cancelar essa reserva" + i_want_to_change_date: "Eu quero alterar a data" + + request_training_modal: + # modal introducing that a training is requested before booking a machine + to_book_the_MACHINE_you_must_have_completed_the_TRAINING: "Para agendar \"{{MACHINE}}\" você deve completar o treinamento {{TRAINING}}." # angular interpolation + register_for_the_training: "Inscrever-se no treinamento" + i_dont_want_to_register_now: "Não desejo me inscrever agora" + + training_reservation_modal: + # modal introducing that a user must wait for his training being validated before booking a machine + machine_reservation: "Reserva de máquina" + you_must_wait_for_your_training_is_being_validated_by_the_fablab_team_to_book_this_machine: "Você deve esperar que seu treinamento seja validado pela equipe do FabLab para reservar esta máquina." + your_training_will_occur_: "Seu treinamento ocorrerá" + + public_profile: + # user public profile + last_activity_: "Última atividade" + _on_: "em" + to_come: "vir" + approved: "aprovado" + projects: "Projetos" + no_projects: "Sem projetos" + author: "Autor" + collaborator: "Colaboradores" + private_profile: "Perfil privado" + + wallet: + # wallet + wallet: 'Carteira' + your_wallet_amount: 'Seus créditos disponíveis' + wallet_amount: 'Crédito disponível' + no_transactions_for_now: 'Sem transações' + operation: 'Operação' + operator: 'Operador' + amount: 'Montante' + credit: 'Crédito' + debit: 'Débito' + credit_title: 'Crédito na carteira' + credit_label: 'Digite a quantia a ser creditada' + confirm_credit_label: 'Confirme a quantia a ser creditada' + generate_a_refund_invoice: "Gerar uma fatura de reembolso" + creation_date_for_the_refund: "Data de criação de reembolso" + creation_date_is_required: "Data de criação é obrigatório." + description_(optional): "Descrição (opcional):" + will_appear_on_the_refund_invoice: "Aparecerá na fatura de reembolso." + to_credit: 'Crédito' + wallet_credit_successfully: "Carteira de usuário creditada com sucesso." + a_problem_occurred_for_wallet_credit: "Um erro ocorreu ao creditar a carteira" + amount_is_required: "A quantia é obrigatório" + amount_minimum_1: "A quantia mínima é 1" + amount_confirm_is_required: "A confirmação da quantia é obrigatório" + amount_confirm_does_not_match: "A confirmação da quantia não é a mesma da quantia" + you_have_amount_in_wallet: "Você tem {{amount}} {{currency}} em sua carteira" + client_have_amount_in_wallet: "O cliente possui {{amount}} {{currency}} em sua carteira" + wallet_pay_reservation: "Você pode pagar diretamente sua reserva" + client_wallet_pay_reservation: "O cliente pode pagar diretamente a reserva" + debit_subscription: "Débito por inscrição" + debit_reservation_training: "Débito por reserva de treinamento" + debit_reservation_machine: "Débito por reserva de máquina" + debit_reservation_event: "Débito por reserva de evento" + warning_uneditable_credit: "Aviso: uma vez validado, o valor creditado não será mais editado." + + coupon: + # promotional coupon (creation/edition form) + code: "Código" + code_is_required: "Código é obrigatório." + code_must_be_composed_of_capital_letters_digits_and_or_dashes: "O código deve ser composto de letras maiúsculas, dígitos e / ou traços." + kind_of_coupon: "Tipo de cupom" + percentage: "Porcentagem" + amount: "Quantia" + amount_off: "Desconto" + percent_off: "Desconto" + percent_off_is_required: "Desconto é obrigatório." + percentage_must_be_between_0_and_100: "A porcentagem deve estar entre 0 e 100." + validity_per_user: "Validar pelo usuário" + once: "Apenas uma vez" + forever: "Cada uso" + validity_per_user_is_required: "Validação por usuário é obrigatório." + valid_until: "Valido até (incluso)" + leave_empty_for_no_limit: "Não especifique nenhum limite deixando o campo vazio." + max_usages: "Máximo de usos permitido" + max_usages_must_be_equal_or_greater_than_0: "Os usos máximos permitidos devem ser maiores que 0." + enabled: "Ativo" + + coupon_input: + # coupon (input zone for users) + i_have_a_coupon: "Eu tenho um cupom!" + code_: "Código:" + the_coupon_has_been_applied_you_get_PERCENT_discount: "O cupom foi aplicado. Você recebeu {{PERCENT}}% de desconto." # angular interpolation + the_coupon_has_been_applied_you_get_AMOUNT_CURRENCY: "O cupom foi aplicado. Você recebeu um desconto de {{AMOUNT}} {{CURRENCY}}." # angular interpolation + unable_to_apply_the_coupon_because_disabled: "Não é possível aplicar o cupom: este código foi desabilitado." + unable_to_apply_the_coupon_because_expired: "Não é possível aplicar o cupom: este código expirou." + unable_to_apply_the_coupon_because_sold_out: "Não é possível aplicar o cupom: este código atingiu sua quota." + unable_to_apply_the_coupon_because_already_used: "Não é possível aplicar o cupom: você já utilizou este código antes." + unable_to_apply_the_coupon_because_amount_exceeded: "Não é possível aplicar o cupom: o desconto excede o valor total desta compra." + unable_to_apply_the_coupon_because_undefined: "Não é possível aplicar o cupom: um erro inesperado aconteceu, por favor entre em contato com o FabLab." + unable_to_apply_the_coupon_because_rejected: "Este código não existe." + + space: + # form to create/edit a space + space: + name: "Nome" + name_is_required: "Nome é obrigatório." + illustration: "Ilustração" + add_an_illustration: "Adicionar ilustração" + description: "Descrição" + description_is_required: "Descrição é obrigatório." + characteristics: "Características" + characteristics_are_required: "Características são obrigatórias." + attached_files_(pdf): "Arquivos anexos (pdf)" + attach_a_file: "Anexar arquivo" + add_an_attachment: "Adicionar um anexo" + default_places: "Tickets máximo padrão" + default_places_is_required: "Tickets máximo padrão é obrigatório." + + cart: + # module de panier d'achat de réservations + cart: + summary: "Sumário" + select_one_or_more_slots_in_the_calendar: "Selecionar um {SINGLE, select, true{slot} outro {ou mais slots}} no calendário" # messageFormat interpolation + you_ve_just_selected_the_slot: "Você selecionou apenas o slot:" + datetime_to_time: "{{START_DATETIME}} até {{END_TIME}}" # angular interpolation, eg: Thursday, September 4 1986 8:30 PM to 10:00 PM + cost_of_TYPE: "Custo de {TYPE, select, Máquina{máquina hora} Treinamento{o treinamento} outro{o elemento}}" # messageFormat interpolation + offer_this_slot: "Oferecer este slot" + confirm_this_slot: "Confirmar este slot" + remove_this_slot: "Remover este slot" + to_benefit_from_attractive_prices: "Para se beneficiar de preços atractivos" + view_our_subscriptions: "Ver suas inscrições" + or: "ou" + you_ve_just_selected_a_: "Você selecionou apenas" + _subscription: "inscrição" + cost_of_the_subscription: "Custo da inscrição" + confirm_and_pay: "Confirmar e pagar" + you_have_settled_the_following_machine_hours: "Você liquidou o seguinte {TYPE, select, Máquina{horas máquina} Treinamento{training} other{elements}}:" # messageFormat interpolation + you_have_settled_a_: "Você tem liquidado:" + total_: "TOTAL :" + thank_you_your_payment_has_been_successfully_registered: "Obrigado. Seu pagamento foi registrado com sucesso !" + your_invoice_will_be_available_soon_from_your_: "Sua fatura estará disponível em breve" + dashboard: "Dashboard" + i_want_to_change_the_following_reservation: "Eu quero mudar a seguinte reserva:" + cancel_my_modification: "Cancelar minha modificação" + select_a_new_slot_in_the_calendar: "Selecionar um novo slot no calendário" + cancel_my_selection: "Cancelar minha seleção" + tags_of_the_original_slot: "Tags do slot original:" + tags_of_the_destination_slot: "Tags do slot de destino:" + confirm_my_modification: "Confirmar minha modificação" + your_booking_slot_was_successfully_moved_from_: "Seu slot de reserva foi movido com sucesso para" + to_date: "até" # context: date. eg: "from 01/01 to 01/05" + please_select_a_member_first: "Por favor selecione o membro primeiramente" + unable_to_change_the_reservation: "Não permitido alterar esta reserva" + confirmation_required: "Confirmação é obrigatória" + do_you_really_want_to_cancel_this_reservation: "Você realmente quer cancelar essa reserva?" + reservation_was_cancelled_successfully: "Reserva a foi cancelada com sucesso." + cancellation_failed: "Cancelamento falhou." + confirm_payment_of_html: "{ROLE, select, admin{Pagamento pelo site} other{Pagar}}: {TOTAL}" # messageFormat interpolation (context: confirm my payment of $20.00) + a_problem_occured_during_the_payment_process_please_try_again_later: "Um problema ocorreu durante o processo de pagamento. Por favor tente novamente mais tarde." + none: "Vazio" \ No newline at end of file diff --git a/config/locales/devise.pt-BR.yml b/config/locales/devise.pt-BR.yml new file mode 100755 index 000000000..e7950d482 --- /dev/null +++ b/config/locales/devise.pt-BR.yml @@ -0,0 +1,64 @@ +# Additional translations at https://github.com/plataformatec/devise/wiki/I18n + +pt-BR: + devise: + confirmations: + confirmed: "Sua conta foi confirmada com sucesso." + send_instructions: "Você receberá um e-mail para confirmar sua conta em alguns minutos." + send_paranoid_instructions: "Caso seu endereço de e-mail já exista em nosso banco de dados, você receberá um email com instruções sobre como ativar sua conta." + failure: + already_authenticated: "Você já está logado." + inactive: "Sua conta ainda não foi ativada." + invalid: "Email ou senha inválidos." + locked: "Sua conta está bloqueada." + last_attempt: "Você possui apenas uma tentativa, antes de sua conta ser bloqueada." + not_found_in_database: "Email ou senha inválidos." + timeout: "Sua sessão expirou, faça login novamente para continuar." + unauthenticated: "Você precisa fazer login ou se registrar, antes de continuar." + unconfirmed: "Você precisa confirmar sua conta, antes de continuar." + mailer: + confirmation_instructions: + action: + instruction: + subject: "Instruções de confirmação" + reset_password_instructions: + action: + instruction: + ignore_otherwise: + subject: "Instruções para redefinir sua senha" + unlock_instructions: + subject: "Instruções para desbloquear sua conta" + omniauth_callbacks: + failure: "Não foi possível autenticá-lo em %{kind} por causa de \"%{reason}\"." + success: "Autenticado com sucesso em %{kind}." + passwords: + no_token: "Você não pode acessar essa página para redefinir sua senha. Se você recebeu um e-mail para redefinir sua senha, por favor, certifique-se de estar usando a URL correta." + send_instructions: "Você receberá um e-mail com instruções sobre como redefinir sua senha em poucos minutos." + send_paranoid_instructions: "Se o seu endereço de e-mail existir em nosso banco de dados, você receberá um link de recuperação de senha em poucos minutos." + updated: "Sua senha foi alterada com sucesso. Você agora está conectado." + updated_not_active: "Sua senha foi alterada com sucesso." + registrations: + destroyed: "Até logo! Sua conta foi cancelada com sucesso. Nós esperamos vê-lo novamente em breve." + signed_up: "Bem-vindo! Você se registrou com sucesso." + signed_up_but_inactive: "Você se registrou com sucesso. Para efetuar login, você deverá ativar sua conta." + signed_up_but_locked: "Você se registrou com sucesso. No entanto, não podemos logá-lo, pois sua conta está bloqueada." + signed_up_but_unconfirmed: "Uma mensagem com um link de confirmação foi enviado para seu endereço de e-mail. Por favor, verifique-o, para ativar sua conta." + update_needs_confirmation: "Você atualizou sua conta com sucesso, mas precisamos verificar o seu novo endereço de e-mail. Por favor, verifique seu e-mail e clique no link de confirmação para confirmar o seu novo endereço de e-mail." + updated: "Sua conta foi atualizada com sucesso." + sessions: + signed_in: "Logado com sucesso." + signed_out: "Saiu com sucesso." + unlocks: + send_instructions: "Você receberá um e-mail com instruções sobre como desbloquear sua conta, em poucos minutos." + send_paranoid_instructions: "Se a sua conta existir, você receberá um e-mail com instruções sobre como desbloqueá-la, em poucos minutos." + unlocked: "Sua conta foi desbloqueada com sucesso. Faça login para continuar." + errors: + messages: + already_confirmed: "já foi confirmado, por favor, efetue login" + confirmation_period_expired: "deve ser confirmada dentro de %{period}, por favor solicite uma nova" + expired: "expirado, por favor solicite uma nova" + not_found: "não encontrado" + not_locked: "não encontra-se bloqueada" + not_saved: + one: "1 erro impediu a gravação de %{resource} :" + other: "%{count} erros impediram a gravação de %{resource} :" diff --git a/config/locales/mails.pt-BR.yml b/config/locales/mails.pt-BR.yml new file mode 100755 index 000000000..6bc5393e5 --- /dev/null +++ b/config/locales/mails.pt-BR.yml @@ -0,0 +1,287 @@ +pt-BR: + layouts: + notifications_mailer: + see_you_later: "Te vejo em breve em {GENDER, select, other{the}}" # messageFormat interpolation + sincerely: "Atenciosamente," + signature: "Equipe do Fab Lab." + do_not_reply: "Por favor não responda este email." + + users_mailer: + notify_user_account_created: + subject: "Sua conta no FabLab foi criada com sucesso" + body: + hello: "Olá %{NAME}," + intro: "A equipe do FabLab acaba de criar uma conta para você em {FABLAB} website:" # messageFormat interpolation + connection_parameters: "Aqui estão seus parâmetros de conexão:" + account_name: "Nome da conta:" + password: "Senha:" + temporary_password: "Essa é uma senha temporária, você pode modificar isso na página «Minha conta»." + keep_advantages: "Com esta conta, você mantém todas as vantagens associadas ao seu perfil de usuário Fab Lab (treinamentos, planos de assinaturas)." + thanks_to_: "Para usar o site, por favor" + logon_or_login: "Criar uma nova conta ou fazer login clicando aqui" + token_if_link_problem: "Se você tiver problemas com o link, você poderá inserir o código a seguir na primeira tentativa de conexão:" + + notifications_mailer: + notify_user_user_group_changed: + subject: "Seu grupo mudou" + body: + warning: "Você mudou de grupo. As inspeções podem ser realizadas no laboratório para verificar a legitimidade dessa mudança." + + notify_admin_user_group_changed: + subject: "Um membro mudou de grupo" + body: + user_changed_group_html: "O usuário %{NAME} mudou de grupo." + previous_group: "Grupo anterior:" + new_group: "Novo grupo:" + + notify_admin_subscription_extended: + subject: "Uma assinatura foi estendida" + body: + subscription_extended_html: "Assinatura {PLAN} pelo usuário {NAME} foi extendida {FREE, select, true{grátis} other{}} until {DATE}." # messageFormat interpolation + + notify_member_subscription_extended: + subject: "Sua assinatura foi extendida" + body: + your_plan: "Seu plano de assinatura" + has_been_extended: "foi estendido" + free: "grátis" + until: "até" + + notify_partner_subscribed_plan: + subject: "Um plano de assinatura foi adquirido" + body: + a_plan: "Plano de assinatura" + was_purchased_by_member: "foi comprado pelo usuário" + + notify_admin_when_project_published: + subject: "Um projeto foi publicado" + body: + new_project_published: "Um novo projeto foi publicado:" + + notify_project_collaborator_to_valid: + subject: "Convite para colaborar em um projeto" + body: + your_are_invited_to_take_part_in_a_project: "Vocề convidado para fazer parte deste projeto:" + to_accept_the_invitation_click_on_following_link: "Para aceitar este convite, por favor clique no link a seguir:" + + notify_project_author_when_collaborator_valid: + subject: "Novo colaborador em seu projeto" + body: + the_member: "o usuário" + accepted_your_invitation_to_take_part_in_the_project: "aceitou o convite para fazer parte do seu projeto:" + + notify_user_training_valid: + subject: "Seu treinamento foi validado" + body: + your_training: "Seu treinamento" + has_been_validated: "foi validado" + + notify_member_subscribed_plan: + subject: "Sua assinatura foi adquirida com êxito" + body: + plan_subscribed_html: "Você assinou o plano: %{PLAN}." + subscription_stops_on: "Seu plano de assinatura termina em %{DATE}" + + notify_member_create_reservation: + subject: "Sua reserva foi salva com sucesso" + body: + reservation_saved_html: "Sua reserva %{RESERVATION} foi salva com sucesso" + your_reserved_slots: "Seus slots reservados são:" + + notify_member_subscribed_plan_is_changed: + subject: "Sua inscrição foi modificada" + body: + new_plan_html: "Você mudou seu plano para %{PLAN}." + + notify_admin_member_create_reservation: + subject: "Nova reserva" + body: + member_reserved_html: "O usuário %{NAME} reservou %{RESERVABLE}." + reserved_slots: "Slots reservados são:" + + notify_member_slot_is_modified: + subject: "Seu slot de reserva foi alterado com sucesso" + body: + reservation_changed_to: "Seu slot de reserva foi alterado para:" + previous_date: "Data anterior:" + + notify_admin_slot_is_modified: + subject: "O slot de reserva foi modificado" + body: + slot_modified: "O usuário %{NAME} modificou seu slot de reserva" + new_date: "Novo slot" + old_date: "Slot anterior" + + notify_admin_when_user_is_created: + subject: "A conta de usuário foi criada" + body: + new_account_created: "Uma nova conta de usuário foi criada no site:" + account_for_organization: "Esta conta gerencia uma organização:" + invoicing_disabled_html: "A geração de faturamento é desativado por esse usuário." + + notify_admin_subscribed_plan: + subject: "Uma assinatura foi comprada" + body: + plan_subscribed_html: "O plano %{PLAN} foi assinado pelo usuário %{NAME}." + + notify_member_invoice_ready: + subject: "Fatura do seu FabLab" + body: + please_find_attached_html: "Por favor, encontre como anexo a sua fatura de {DATE}, com o montante de {AMOUNT} sobre o seu {TYPE, select, Reservation{reserva} other{assinatura}}." # messageFormat interpolation + invoice_in_your_dashboard_html: "Você pode acessar sua fatura em %{DASHBOARD} no site Fab Lab." + your_dashboard: "seu dashboard" + + notify_member_reservation_reminder: + subject: "Lembrete de reserva" + body: + this_is_a_reminder_about_your_reservation_RESERVABLE_to_be_held_on_DATE_html: "Este é um lembrete sobre a sua reserva %{RESERVABLE} a ser realizada em %{DATE} " + this_reservation_concerns_the_following_slots: "Esta reserva diz respeito aos seguintes slots:" + + notify_member_avoir_ready: + subject: "Fatura de reembolso do seu FabLab" + body: + please_find_attached_html: "Por favor, encontre como anexo a sua fatura de reembolso {DATE}, com o montante de {AMOUNT} sobre o seu {TYPE, select, Reservation{reserva} WalletTransaction{carteira de crédito} other{assinatura}}." # messageFormat interpolation + invoice_in_your_dashboard_html: "Você pode acessar sua fatura de reembolso em %{DASHBOARD} no site Fab Lab." + your_dashboard: "seu dashboard" + + notify_member_subscription_will_expire_in_7_days: + subject: "Sua assinatura expira em 7 dias" + body: + your_plan: "seu plano" + expires_in_7_days: "expira em 7 dias." + to_renew_your_plan_follow_the_link: "Por favor, siga este link para renovar seu plano" + + notify_member_subscription_is_expired: + subject: "Sua assinatura expirou" + body: + your_plan: "Seu plano" + has_expired: "expirou." + you_can_go_to: "Por favor vá para" + to_renew_your_plan: "para renovar seu plano" + + notify_admin_subscription_will_expire_in_7_days: + subject: "Uma assinatura de membro expira em 7 dias" + body: + subscription_will_expire_html: "O plano de assinatura do usuário %{NAME} %{PLAN} expirará em 7 dias." + + notify_admin_subscription_is_expired: + subject: "A assinatura de um membro expirou" + body: + subscription_expired_html: "O plano de assinatura do usuário %{NAME} %{PLAN} está expirado." + + notify_admin_subscription_canceled: + subject: "Uma assinatura de um membro foi cancelada" + body: + subscription_canceled_html: "A assinatura %{PLAN} do usuário %{NAME} foi cancelada." + + notify_member_subscription_canceled: + subject: "Sua assinatura foi cancelada" + body: + your_plan_was_canceled: "Seu plano de assinatura foi cancelado." + your_plan: "seu plano de assinatura" + end_at: "termina em" + + notify_member_slot_is_canceled: + subject: "Sua reserva foi cancelada" + body: + reservation_canceled: "Sua reserva para %{RESERVABLE} foi cancelada" + + notify_admin_slot_is_canceled: + subject: "Uma reserva foi cancelada" + body: + member_cancelled: "O usuário %{NAME} cancelou sua reserva" + item_details: "%{START} - %{END}, sobre %{RESERVABLE}" + generate_refund: "Não se esqueça de gerar uma nota de crédito ou um reembolso para este cancelamento." + + notify_admin_when_user_is_imported: + subject: "Uma conta de usuário foi importada do SSO" + body: + new_account_imported: "Uma nova conta de usuário (ID: %{ID}) foi importado para o site via %{PROVIDER}." + provider_uid: "seu ID de provedor é: " + known_information: "Aqui está o que sabemos sobre este provedor:" + address_already_used: "Esse endereço já está associado a outro usuário" + no_more_info_available: "Nenhuma outra informação sobre este usuário pode ser fornecida antes que complete seu perfil." + + notify_user_profile_complete: + subject: "Agora você tem acesso a todo o site" + body: + message: "As informações de sua conta foram atualizadas corretamente, agora você tem acesso a todo o site." + + notify_user_auth_migration: + subject: "Mudança importante na sua conta FabLab" + body: + the_platform: "o site" + is_changing_its_auth_system_and_will_now_use: "Está mudando seu sistema de identificação do usuário e usará" + instead_of: "ao invés de" + consequence_of_the_modification: "Devido a esta alteração, não poderá iniciar sessão no Web site com o seu nome de utilizador real" + to_use_the_platform_thanks_for: "Para continuar usando o site, por favor" + create_an_account_on: "crie uma conta em" + or_use_an_existing_account_clicking_here: "ou use uma conta existente clicando aqui" + in_case_of_problem_enter_the_following_code: "Em caso de problema com este link, você pode inserir o seguinte código na sua primeira tentativa de conexão para migrar sua conta real para o novo sistema de autenticação:" + + notify_admin_user_merged: + subject: "Uma conta importada foi mesclada com uma conta existente" + body: + imported_account_merged: "Uma conta de usuário importada anteriormente via %{PROVIDER) foi mesclada com a conta existente %{NAME}" + provider_uid: "este é o ID do provedor:" + + notify_admin_profile_complete: + subject: "Uma conta importada teve o perfil completado" + body: + account_completed: "Uma conta de usuário importada anteriormente via %{PROVIDER} completou seu perfil:" + provider_id: "Seu ID de provedor é:" + + notify_admin_abuse_reported: + subject: "Um conteúdo abusivo foi relatado" + body: + intro: "Um usuário sinalizou um conteúdo como abusivo" + signaled_content: "conteúdo sinalizado:" + signaled_by: "sinalizado por:" + signaled_on: "sinalizado em:" + message: "Menssagem:" + + notify_admin_invoicing_changed: + subject: "Um parâmetro de faturamento foi alterado" + body: + generation_status_html: "A emissão de faturas foi {STATUS, select, true{desativada} other{ativado}} para o usuário {NAME}." # messageFormat interpolation + disabled: "De agora em diante, nenhuma fatura será emitida quando o usuário paga na recepção." + enabled: "A partir de agora, todos os pagamentos efectuados por este utilizador na recepção levarão à. " + + notify_user_wallet_is_credited: + subject: "Sua carteira foi creditada" + body: + wallet_credit_html: "Sua carteira foi creditada em %{AMOUNT} pelo administrador." + + notify_admin_user_wallet_is_credited: + subject: "A carteira de um usuário foi creditada" + body: + wallet_credit_html: "A carteira do membro %{USER} foi creditada %{AMOUNT} pelo administrador %{ADMIN}." + + notify_admin_export_complete: + subject: "Exportação completa" + body: + you_asked_for_an_export: "Você solicitou uma" + statistics_global: "de todas as estatísticas" + statistics_account: "das estatísticas de registro" + statistics_event: "das estatísticas sobre eventos" + statistics_machine: "das estatísticas de hora máquina" + statistics_project: "das estatísticas de projetos" + statistics_subscription: "das estatísticas de assinaturas" + statistics_training: "das estatísticas de treinamento" + statistics_space: "as estatísticas sobre espaço" + users_members: "da lista de membros" + users_subscriptions: "da lista de assinaturas" + users_reservations: "da lista de reservas" + availabilities_index: "as reservas disponíveis" + click_to_download: "Arquivo do Excel gerado com êxito. Para fazer o download, clique" + here: "aqui" + + notify_member_about_coupon: + subject: "Cupom" + body: + enjoy_a_discount_of_PERCENT_with_code_CODE: "Desfrute de um desconto de %{PERCENT}% em todo o site com o código %{CODE}." + enjoy_a_discount_of_AMOUNT_with_code_CODE: "Desfrute de um desconto de %{AMOUNT} em todo o site com o código %{CODE}." + this_coupon_is_valid_USAGE_times_until_DATE_for_all_your_purchases: "Esse cupom é válido {USAGE, plural, =1{uma vez} other{vérias vezes}}: para todas as suas compras {TYPE, select, amount_off{pelo menos igual ao montante do cupom} other{}}, from now {DATE, select, NO-DATE{e sem limite de tempo} other{até {DATE}}}." + + shared: + hello: "Olá %{user_name}" diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml new file mode 100755 index 000000000..43a77b77a --- /dev/null +++ b/config/locales/pt-BR.yml @@ -0,0 +1,358 @@ +pt-BR: + + duration: + # subscription plan duration + year: + one: 'um ano' + other: '%{count} anos' + month: + one: 'um mês' + other: '%{count} meses' + week: + one: 'uma semana' + other: '%{count} semanas' + + time: + formats: + # See http://apidock.com/ruby/DateTime/strftime for a list of available directives + hour_minute: "%I:%M %p" + + errors: &errors + messages: &errors_messages + # CarrierWave + carrierwave_processing_error: "falhou ao ser processado" + carrierwave_integrity_error: "não é de um tipo de arquivo permitido" + carrierwave_download_error: "não pode ser baixado" + extension_white_list_error: "Você não tem permissão para fazer o upload de arquivos com esta extensão %{extension}, tipos permitidos: %{allowed_types}" + extension_black_list_error: "Você não tem permissão para carregar arquivos %{extension}, tipos proibidos: %{prohibited_types}" + rmagick_processing_error: "Falha ao manipular com rmagick, talvez não seja uma imagem? Erro original: %{e}" + mime_types_processing_error: "Falha ao processar arquivo com MIME::Types, talvez o conteúdo não seja válido? Erro original: %{e}" + mini_magick_processing_error: "Falha na manipulação com MiniMagick, talvez isso não seja uma imagem? Erro original: %{e}" + wrong_size: "é o tamanho errado (deveria ser %{file_size})" + size_too_small: "é muito pequeno (deve ser pelo menos %{file_size})" + size_too_big: "é muito grande (deve ser no máximo %{file_size})" + export_not_found: "A exportação solicitada não foi encontrada. Ele provavelmente foi excluído, por favor, gere uma nova exportação." + percentage_out_of_range: "A porcentagem deve ser incluída entre 0 e 100" + cannot_be_blank_at_same_time: "Não pode ficar em branco quando %{field} estiver em branco também" + cannot_be_in_the_past: "não pode ser no passado" + cannot_be_before_previous_value: "não pode ser antes do valor anterior" + + activemodel: + errors: + <<: *errors + + apipie: + api_documentation: "Documentação da API" + + omniauth: + # error messages when importing an account from a SSO + email_already_linked_to_another_account_please_input_your_authentication_code: "E-mail \"%{OLD_MAIL}\" já está vinculado a outra conta, insira seu código de autenticação." + your_username_is_already_linked_to_another_account_unable_to_update_it: "Seu nome de usuário ( %{USERNAME}) já está vinculado a outra conta, não conseguindo atualizá-lo." + your_email_address_is_already_linked_to_another_account_unable_to_update_it: "Seu endereço de e-mail ( %{EMAIL}) já está vinculado a outra conta, não conseguindo atualizá-lo." + this_account_is_already_linked_to_an_user_of_the_platform: "Esta conta %{NAME} já está ligada a um utilizador da plataforma." + + availabilities: + # availability slots in the calendar + not_available: "Não disponível " + i_ve_reserved: "Eu reservei" + must_be_at_least_1_hour_after_the_start_date: "deve ser pelo menos 1 hora após a data de início" + must_be_associated_with_at_least_1_machine: "deve estar associada a pelo menos uma máquina" + + members: + # members management + unable_to_change_the_group_while_a_subscription_is_running: "Não é possível alterar o grupo enquanto uma assinatura está sendo executada" + please_input_the_authentication_code_sent_to_the_address: "Por favor insira o código de autenticação enviado para seu endereço de email %{EMAIL}" + your_authentication_code_is_not_valid: "Seu código de autentiicação não é válido." + current_authentication_method_no_code: "O método de autenticação atual não requer nenhum código de migração" + requested_account_does_not_exists: "A conta requisitada não existe" + + invoices: + # PDF invoices generation + refund_invoice_reference: "Referência da fatura de reembolso: %{REF}" + invoice_reference: "Fatura de referência: %{REF}" + code: "Código: %{CODE}" + order_number: "Ordem #: %{NUMBER}" + invoice_issued_on_DATE: "Fatura emitida em %{DATE}" + refund_invoice_issued_on_DATE: "Reembolso emitido em %{DATE}" + wallet_credit: "Carteira de crédito" + cancellation_of_invoice_REF: "Cancelamento de fatura %{REF}" + reservation_of_USER_on_DATE_at_TIME: "Reserva de %{USER} em %{DATE} ás %{TIME}" + cancellation: "Cancelamento" + object: "Objeto:" + order_summary: "Sumário de ordem:" + details: "Detalhes" + amount: "Montante" + subscription_extended_for_free_from_START_to_END: "Assinatura grátis extendida - De %{START} até %{END}" + subscription_NAME_from_START_to_END: "Assinatura - De %{START} até %{END}" + machine_reservation_DESCRIPTION: "Reserva de máquina - %{DESCRIPTION}" + space_reservation_DESCRIPTION: "Reserva de máquina - %{DESCRIPTION}" + training_reservation_DESCRIPTION: "Reserva de treinamneto - %{DESCRIPTION}" + event_reservation_DESCRIPTION: "Reserva de evento - %{DESCRIPTION}" + full_price_ticket: + one: "Um ticket de preço cheio" + other: "%{count} tickets de preço cheio" + other_rate_ticket: + one: "Um %{NAME} ticket" + other: "%{count} %{NAME} tickets" + reservation_other: "Reserva (outro)" + coupon_CODE_discount_of_DISCOUNT: "Cupom {CODE}: desconto de {DISCOUNT}{TYPE, select, percent_off{%} other{}}" # messageFormat interpolation + total_including_all_taxes: "Total de taxas inclusas" + including_VAT_RATE: "Incluindo VAT %{RATE}%" + including_total_excluding_taxes: "Incluindo total de faixas exclusas" + including_amount_payed_on_ordering: "Incluindo o valor pago na encomenda" + total_amount: "Montante total" + refund_on_DATE: "Reembolso em %{DATE}" + by_stripe_online_payment: "por Stripe (pagamento online)" + by_cheque: "em cheque" + by_transfer: "por transferência" + by_cash: "em dinheiro" + no_refund: "Sem reembolso" + by_wallet: "pela carteira" + settlement_by_debit_card: "Liquidação por cartão de débito" + settlement_done_at_the_reception: "Liquidação feita na recepção" + settlement_by_wallet: "Liquidação por carteira" + on_DATE_at_TIME: "em %{DATE} ás %{TIME}," + for_an_amount_of_AMOUNT: "para uma quantidade de %{AMOUNT}" + on_DATE_from_START_to_END: "Em %{DATE} de %{START} até %{END}" # eg: on feb. 7 from 7AM to 9AM + from_STARTDATE_to_ENDDATE_from_STARTTIME_to_ENDTIME: "De %{STARTDATE} até %{ENDDATE}, das %{STARTTIME} ás %{ENDTIME}" # eg: from feb. 7 to feb. 10, from 6PM to 10PM + subscription_of_NAME_for_DURATION_starting_from_DATE: "Assinatura de %{NAME} de %{DURATION} começando em %{DATE}" + subscription_of_NAME_extended_starting_from_STARTDATE_until_ENDDATE: "Assinatura de %{NAME} estendida (dias livres) a partir de% STARTDATE até %{ENDDATE}" + and: 'e' + + trainings: + # training availabilities + i_ve_reserved: "Eu reservei" + completed: "Cheio" + + events: + # error messages when updating an event + error_deleting_reserved_price: "Não permitido deletar o preço requisitado, pois está associado a algumas reservas" + other_error: "Um erro inesperado ocorreu enquanto o evento era atualizado" + + export_members: + # members list export to EXCEL format + members: "Membros" + id: "ID" + surname: "Sobrenome" + first_name: "Primeiro nome" + email: "E-mail" + newsletter: "Newsletter" + gender: "Gênero" + age: "Idade" + address: "Endereço" + phone: "Telefone" + website: "Website" + job: "Emprego" + interests: "Interesses" + cad_software_mastered: "CAD Softwares mastered" + group: "Grupo" + subscription: "Assinatura" + subscription_end_date: "Assinatura e data" + validated_trainings: "Treinamentos validados" + tags: "Tags" + number_of_invoices: "Número de faturas" + invoicing_disabled: "Fatura desativada" + projects: "Projetos" + facebook: "Facebook" + twitter: "Twitter" + echo_sciences: "Ecociências" + organization: "Organização" + organization_address: "Endereço da organização" + man: "Homem" + woman: "Mulher" + without_subscriptions: "Sem assinaturas" + + export_reservations: + # machines/trainings/events reservations list to EXCEL format + reservations: "Reservas" + customer_id: "ID do cliente" + customer: "Cliente" + email: "E-mail" + reservation_date: "Data de reserva" + reservation_type: "Tipo de reserva" + reservation_object: "Objeto de reserva" + slots_number_hours_tickets: "Número de slots (horas/tickets)" + payment_method: "Método de pagamento" + local_payment: "Pagamento na recepção" + online_payment: "Pagamento online" + + export_subscriptions: + # subscriptions list export to EXCEL format + subscriptions: "Assinaturas" + id: "ID" + customer: "Cliente" + email: "E-mail" + subscription: "Assiantura" + period: "Período" + start_date: "Data de início" + expiration_date: "Data de expiração" + amount: "Montante" + payment_method: "Método de pagamento" + local_payment: "Pagamento na recepção" + online_payment: "Pagamento online" + + export_availabilities: + # reservation slots export, by type, to EXCEL format + machines: "Máquinas" + trainings: "Treinamentos" + spaces: "Espaços" + events: "Eventos" + day_of_week: "Dia da semana" + date: "Data" + slot: "Slot" + machine: "Máquina" + training: "Treinamento" + space: "Espaço" + event: "Evento" + reservations: "Reservas" + available_seats: "Assentos disponíveis" + + + api: + notifications: + # internal app notifications + notify_admin_abuse_reported: + an_abuse_was_reported_on_TYPE_ID_NAME_html: "Um abuso foi relatado em %{TYPE} %{ID}: %{NAME} ." + notify_admin_invoicing_changed: + invoices_generation_was_STATUS_for_user_NAME_html: "A geração de faturas foi {STATUS, select, true {disabled} other {enabled}} para o usuário {NAME}." # messageFormat interpolation + notify_admin_member_create_reservation: + a_RESERVABLE_reservation_was_made_by_USER_html: "A %{RESERVABLE} reserva foi feita por %{USER}." + notify_admin_profile_complete: + account_imported_from_PROVIDER_(UID)_has_completed_its_information_html: "Conta importada para %{PROVIDER} (%{UID}) completou a sua informação." + notify_admin_slot_is_canceled: + USER_s_reservation_on_the_DATE_was_cancelled_remember_to_generate_a_refund_invoice_if_applicable_html: "A reserva de %{USER} , na %{DATA}, foi cancelada. Lembre-se de gerar uma fatura de reembolso, se aplicável." + notify_admin_slot_is_modified: + a_booking_slot_was_modified: "Um slot de reserva foi modificado." + notify_admin_subscribed_plan: + subscription_PLAN_has_been_subscribed_by_USER_html: "Assinatura %{PLAN} foi adquirida por %{USER}." + notify_admin_subscription_canceled: + USER_s_subscription_has_been_cancelled: "Assinatura do usuário %{USER} foi cancelado." + notify_admin_subscription_extended: + subscription_PLAN_of_the_member_USER_has_been_extended_FREE_until_DATE_html: "A assinatura {PLAN} do membro {USER} foi extendida {FREE, select, true{grátis} other{}} until {DATE}." # messageFormat interpolation + notify_admin_subscription_is_expired: + USER_s_subscription_has_expired: "A assinatura do usuário %{USER} expirou." + notify_admin_subscription_will_expire_in_7_days: + USER_s_subscription_will_expire_in_7_days: "A assinatura do usuário %{USER} expira em 7 dias." + notify_admin_user_group_changed: + user_NAME_changed_his_group_html: "Usuário {NAME} mudou {GENDER, select, true{seu} other{seu}} grupo." # messageFormat interpolation + notify_admin_user_merged: + user_NAME_has_merged_his_account_with_the_one_imported_from_PROVIDER_(UID)_html: "Usuário {NAME} vinculou {GENDER, select, true{sua} other{sua}} conta com a importada de {PROVIDER} ({UID}) ." # messageFormat interpolation + notify_admin_when_project_published: + project_NAME_has_been_published_html: "Projeto %{NAME} foi publicado." + notify_admin_when_user_is_created: + a_new_user_account_has_been_created_NAME_EMAIL_html: "Nova conta de usuário foi criada: %{NAME} <%{EMAIL}>." + notify_admin_when_user_is_imported: + a_new_user_account_has_been_imported_from_PROVIDER_(UID)_html: "Nova conta de usuário foi importada de: %{PROVIDER} (%{UID})." + notify_member_create_reservation: + your_reservation_RESERVABLE_was_successfully_saved_html: "Sua reserva %{RESERVABLE} foi feita com sucesso." + notify_member_reservation_reminder: + reminder_you_have_a_reservation_RESERVABLE_to_be_held_on_DATE_html: "Lembrete: Você tem uma reserva %{RESERVABLE} a ser realizada em %{DATE}" + notify_member_slot_is_canceled: + your_reservation_RESERVABLE_of_DATE_was_successfully_cancelled: "Sua reserva %{RESERVABLE} em %{DATE} foi cancelada com sucesso." + notify_member_slot_is_modified: + your_reservation_slot_was_successfully_changed: "Seu slot de reserva foi alterado com sucesso." + notify_member_subscribed_plan: + you_have_subscribed_to_PLAN_html: "Você assinou %{PLAN}." + notify_member_subscribed_plan_is_changed: + you_have_changed_your_subscription_to_PLAN_html: "Você alterou sua assinatura para %{PLAN} ." + notify_member_subscription_canceled: + your_subscription_PLAN_was_successfully_cancelled_html: "Sua assinatura %{PLAN} foi cancelada com sucesso." + notify_member_subscription_extended: + your_subscription_PLAN_has_been_extended_FREE_until_DATE_html: "Sua inscrição {PLAN} foi estendida {FREE, select, true{for free} other{}} until {DATE}." # messageFormat interpolation + notify_member_subscription_is_expired: + your_subscription_has_expired: "Sua assinatura expirou." + notify_member_subscription_will_expire_in_7_days: + your_subscription_will_expire_in_7_days: "Sua assiantura expira em 7 dias." + notify_partner_subscribed_plan: + subscription_partner_PLAN_has_been_subscribed_by_USER_html: "A assinatura de parceiros %{PLAN} foi assinada por %{USER} %{TRAINING} foi validado com êxito." + notify_user_user_group_changed: + your_group_has_changed: "O seu grupo mudou." + notify_user_when_avoir_ready: + your_avoir_is_ready_html: "Sua fatura de reembolso #%{REFERENCE}, de %{AMOUNT}, está pronta. Clique aqui para fazer o download." + notify_user_when_invoice_ready: + your_invoice_is_ready_html: "Sua fatura #%{REFERENCE}, de %{AMOUNT} está pronta. Clique aqui para fazer o download." + undefined_notification: + unknown_notification: "Notificação desconhecida" + notification_ID_wrong_type_TYPE_unknown: "Notificação %{ID} errada (tipo %{TYPE} desconhecido)" + notify_user_wallet_is_credited: + your_wallet_is_credited: "Sua carteira foi creditada pelo administrador" + notify_admin_user_wallet_is_credited: + wallet_is_credited: "A carteira do membro %{USER} foi creditada %{AMOUNT}" + notify_admin_export_complete: + export: "A exportação" + statistics_global: "de todas as estatísticas" + statistics_account: "das estatísticas de registro" + statistics_event: "de estatísticas sobre eventos" + statistics_machine: "de estatísticas sobre horas de máquina" + statistics_project: "de estatísticas sobre projetos" + statistics_subscription: "de estatísticas de assinatura" + statistics_training: "de estatísticas sobre treinamentos" + statistics_space: "as estatísticas sobre reserva de espaços" + users_members: "da lista de membros" + users_subscriptions: "da lista de assinaturas" + users_reservations: "da lista de reservas" + availabilities_index: "de reservas disponíveis" + is_over: "está finalizado." + download_here: "Baixe aqui" + notify_member_about_coupon: + enjoy_a_discount_of_PERCENT_with_code_CODE: "Desfrute de um desconto de %{PERCENT}% com o código %{CODE}" + + statistics: + # statistics tools for admins + subscriptions: "Assinaturas" + machines_hours: "Horas de máquina" + spaces: "Espaços" + trainings: "Treinamentos" + events: "Eventos" + registrations: "Inscrições" + projects: "Projetos" + users: "Usuários" + training_id: "ID de treinamento" + training_date: "Data de treinamento" + event_id: "ID de evento" + event_date: "Data do evento" + event_name: "Nome do evento" + event_theme: "Tema" + age_range: "Faixa etária" + themes: "Temas" + components: "Componentes" + machines: "Máquinas" + user_id: "ID de usuário" + bookings: "Reservas" + hours_number: "Número de horas" + tickets_number: "Número de vagas" + revenue: "Receita" + account_creation: "Criação de conta" + project_publication: "Publicação de projeto" + + export: + # statistics exports to the excel file format + entries: "Entradas" + revenue: "Receita" + average_age: "Idade média" + total: "Total" + date: "Data" + user: "Usuário" + email: "Email" + phone: "Telefone" + gender: "Gênero" + age: "Idade" + type: "Tipo" + revenue: "Receita" + male: "Homem" + female: "Mulher" + + price_category: + # initial price's category for events, created to replace the old "reduced amount" property + reduced_fare: "Tarifa reduzida" + reduced_fare_if_you_are_under_25_student_or_unemployed: "Tarifa reduzida se tiver menos de 25 anos, estudante ou desempregado." diff --git a/vendor/assets/components/angular-translate-interpolation-messageformat/angular-translate-interpolation-messageformat.js b/vendor/assets/components/angular-translate-interpolation-messageformat/angular-translate-interpolation-messageformat.js index 238c9ee57..315996e1c 100644 --- a/vendor/assets/components/angular-translate-interpolation-messageformat/angular-translate-interpolation-messageformat.js +++ b/vendor/assets/components/angular-translate-interpolation-messageformat/angular-translate-interpolation-messageformat.js @@ -79,6 +79,7 @@ function $translateMessageFormatInterpolation($translateSanitization, $cacheFact $translateInterpolator.setLocale = function (locale) { $mf = $cache.get(locale); if (!$mf) { + locale = locale == "pt-BR" ? "br" : locale; $mf = new MessageFormat(locale); $cache.put(locale, $mf); } From 3358ea227e5e769e5e15deb5fe4173b93d02a3e8 Mon Sep 17 00:00:00 2001 From: Alex Coelho Date: Thu, 1 Jun 2017 12:33:52 -0300 Subject: [PATCH 2/6] Portuguese adapted in app.*.pt.yml files --- config/application.yml.default | 69 ------------------- config/database.yml.default | 39 ----------- .../{app.admin.pt-BR.yml => app.admin.pt.yml} | 2 +- ...app.logged.pt-BR.yml => app.logged.pt.yml} | 2 +- ...app.public.pt-BR.yml => app.public.pt.yml} | 4 +- ...app.shared.pt-BR.yml => app.shared.pt.yml} | 2 +- .../{devise.pt-BR.yml => devise.pt.yml} | 2 +- .../locales/{mails.pt-BR.yml => mails.pt.yml} | 2 +- config/locales/{pt-BR.yml => pt.yml} | 2 +- ...r-translate-interpolation-messageformat.js | 1 - 10 files changed, 8 insertions(+), 117 deletions(-) delete mode 100644 config/application.yml.default delete mode 100644 config/database.yml.default rename config/locales/{app.admin.pt-BR.yml => app.admin.pt.yml} (99%) rename config/locales/{app.logged.pt-BR.yml => app.logged.pt.yml} (99%) rename config/locales/{app.public.pt-BR.yml => app.public.pt.yml} (98%) rename config/locales/{app.shared.pt-BR.yml => app.shared.pt.yml} (99%) rename config/locales/{devise.pt-BR.yml => devise.pt.yml} (99%) rename config/locales/{mails.pt-BR.yml => mails.pt.yml} (99%) rename config/locales/{pt-BR.yml => pt.yml} (99%) diff --git a/config/application.yml.default b/config/application.yml.default deleted file mode 100644 index ab2e0b224..000000000 --- a/config/application.yml.default +++ /dev/null @@ -1,69 +0,0 @@ -# Add application configuration variables here, as shown below. - -POSTGRES_HOST: localhost -POSTGRES_PASSWORD: -REDIS_HOST: localhost -ELASTICSEARCH_HOST: localhost - -SECRET_KEY_BASE: 83daf5e7b80d990f037407bab78dff9904aaf3c195a50f84fa8695a22287e707dfbd9524b403b1dcf116ae1d8c06844c3d7ed942564e5b46be6ae3ead93a9d30 -STRIPE_API_KEY: -STRIPE_PUBLISHABLE_KEY: -STRIPE_CURRENCY: 'eur' - -INVOICE_PREFIX: Demo-FabLab-facture -FABLAB_WITHOUT_PLANS: 'false' -FABLAB_WITHOUT_SPACES: 'true' - -DEFAULT_MAIL_FROM: Fab Manager Demo - -# For prod & staging env only -DEFAULT_HOST: fab-manager.com -DEFAULT_PROTOCOL: https -DELIVERY_METHOD: smtp -SMTP_ADDRESS: -SMTP_PORT: '587' -SMTP_USER_NAME: -SMTP_PASSWORD: -GA_ID: '' -## - -ADMIN_EMAIL: 'admin@fab-manager.com' -ADMIN_PASSWORD: 'adminadmin' - -DISQUS_SHORTNAME: - -TWITTER_NAME: 'FablabGrenoble' -TWITTER_CONSUMER_KEY: '' -TWITTER_CONSUMER_SECRET: '' -TWITTER_ACCESS_TOKEN: '' -TWITTER_ACCESS_TOKEN_SECRET: '' - -FACEBOOK_APP_ID: '' - -RAILS_LOCALE: 'fr' -APP_LOCALE: 'fr' -MOMENT_LOCALE: 'fr' -SUMMERNOTE_LOCALE: 'fr-FR' -ANGULAR_LOCALE: 'fr-fr' -MESSAGEFORMAT_LOCALE: 'fr' -FULLCALENDAR_LOCALE: 'fr' - -ELASTICSEARCH_LANGUAGE_ANALYZER: 'french' - -TIME_ZONE: 'Paris' -WEEK_STARTING_DAY: 'monday' -D3_DATE_FORMAT: '%d/%m/%y' -UIB_DATE_FORMAT: 'dd/MM/yyyy' -EXCEL_DATE_FORMAT: 'dd/mm/yyyy' - -OPENLAB_APP_SECRET: -OPENLAB_APP_ID: -OPENLAB_BASE_URI: 'https://openprojects.fab-manager.com' - -LOG_LEVEL: 'debug' - -ALLOWED_EXTENSIONS: pdf ai eps cad math svg stl dxf dwg obj step iges igs 3dm 3dmf doc docx png ino scad fcad skp sldprt sldasm slddrw slddrt tex latex ps -ALLOWED_MIME_TYPES: application/pdf application/postscript application/illustrator image/x-eps image/svg+xml application/sla application/dxf application/acad application/dwg application/octet-stream application/step application/iges model/iges x-world/x-3dmf application/vnd.openxmlformats-officedocument.wordprocessingml.document image/png text/x-arduino text/plain application/scad application/vnd.sketchup.skp application/x-koan application/vnd-koan koan/x-skm application/vnd.koan application/x-tex application/x-latex - -# 10485760 = 10 megabytes -MAX_IMAGE_SIZE: '10485760' diff --git a/config/database.yml.default b/config/database.yml.default deleted file mode 100644 index 64162614a..000000000 --- a/config/database.yml.default +++ /dev/null @@ -1,39 +0,0 @@ -development: - adapter: postgresql - host: localhost - encoding: unicode - database: fabmanager_development - pool: 25 - username: sleede - password: sleede - -# Warning: The database defined as "test" will be erased and -# re-generated from your development database when you run "rake". -# Do not set this db to the same as development or production. -test: - adapter: postgresql - host: localhost - encoding: unicode - database: fabmanager_test - pool: 25 - username: sleede - password: sleede - -staging: - adapter: postgresql - host: localhost - encoding: unicode - database: fabmanager_development - pool: 25 - username: sleede - password: sleede - - -production: - adapter: postgresql - host: localhost - encoding: unicode - database: fabmanager_development - pool: 25 - username: sleede - password: sleede diff --git a/config/locales/app.admin.pt-BR.yml b/config/locales/app.admin.pt.yml similarity index 99% rename from config/locales/app.admin.pt-BR.yml rename to config/locales/app.admin.pt.yml index 27bbf00cd..4ac881b30 100755 --- a/config/locales/app.admin.pt-BR.yml +++ b/config/locales/app.admin.pt.yml @@ -1,4 +1,4 @@ -pt-BR: +pt: app: admin: machines_new: diff --git a/config/locales/app.logged.pt-BR.yml b/config/locales/app.logged.pt.yml similarity index 99% rename from config/locales/app.logged.pt-BR.yml rename to config/locales/app.logged.pt.yml index 4b3bfad9c..e0d2be835 100755 --- a/config/locales/app.logged.pt-BR.yml +++ b/config/locales/app.logged.pt.yml @@ -1,4 +1,4 @@ -pt-BR: +pt: app: logged: profileCompletion: diff --git a/config/locales/app.public.pt-BR.yml b/config/locales/app.public.pt.yml similarity index 98% rename from config/locales/app.public.pt-BR.yml rename to config/locales/app.public.pt.yml index 458d1c29b..b3995881a 100755 --- a/config/locales/app.public.pt-BR.yml +++ b/config/locales/app.public.pt.yml @@ -1,4 +1,4 @@ -pt-BR: +pt: app: public: common: @@ -208,7 +208,7 @@ pt-BR: more_information: "Mais informação" your_subscription_expires_on_the_DATE: "Sua inscrição expira em {{DATE}}" # angular interpolation my_group: "Meu grupo" - his_group: "{GENDER, select, masculino{Ele} feminino{Ela} outro{Esses}} grupo" # messageFormat interpolation + his_group: "{GENDER, select, male{Ele} female{Ela} other{Esses}} group" # messageFormat interpolation he_wants_to_change_group: "{ROLE, select, admin{O usuário quer} other{Eu quero}} trocar de grupo" # messageFormat interpolation change_my_group: "Mudar {ROLE, select, admin{{GENDER, select, male{dele} female{dela} other{esses}}} other{meu}} grupo" # messageFormat interpolation your_subscription_has_expired_on_the_DATE: "Sua inscrição expirou em {{DATE}}" # angular interpolation diff --git a/config/locales/app.shared.pt-BR.yml b/config/locales/app.shared.pt.yml similarity index 99% rename from config/locales/app.shared.pt-BR.yml rename to config/locales/app.shared.pt.yml index 1e8708cb1..f35f37288 100755 --- a/config/locales/app.shared.pt-BR.yml +++ b/config/locales/app.shared.pt.yml @@ -1,4 +1,4 @@ -pt-BR: +pt: app: shared: buttons: diff --git a/config/locales/devise.pt-BR.yml b/config/locales/devise.pt.yml similarity index 99% rename from config/locales/devise.pt-BR.yml rename to config/locales/devise.pt.yml index e7950d482..18bda1655 100755 --- a/config/locales/devise.pt-BR.yml +++ b/config/locales/devise.pt.yml @@ -1,6 +1,6 @@ # Additional translations at https://github.com/plataformatec/devise/wiki/I18n -pt-BR: +pt: devise: confirmations: confirmed: "Sua conta foi confirmada com sucesso." diff --git a/config/locales/mails.pt-BR.yml b/config/locales/mails.pt.yml similarity index 99% rename from config/locales/mails.pt-BR.yml rename to config/locales/mails.pt.yml index 6bc5393e5..0cae46c74 100755 --- a/config/locales/mails.pt-BR.yml +++ b/config/locales/mails.pt.yml @@ -1,4 +1,4 @@ -pt-BR: +pt: layouts: notifications_mailer: see_you_later: "Te vejo em breve em {GENDER, select, other{the}}" # messageFormat interpolation diff --git a/config/locales/pt-BR.yml b/config/locales/pt.yml similarity index 99% rename from config/locales/pt-BR.yml rename to config/locales/pt.yml index 43a77b77a..8d4785a3c 100755 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt.yml @@ -1,4 +1,4 @@ -pt-BR: +pt: duration: # subscription plan duration diff --git a/vendor/assets/components/angular-translate-interpolation-messageformat/angular-translate-interpolation-messageformat.js b/vendor/assets/components/angular-translate-interpolation-messageformat/angular-translate-interpolation-messageformat.js index 315996e1c..238c9ee57 100644 --- a/vendor/assets/components/angular-translate-interpolation-messageformat/angular-translate-interpolation-messageformat.js +++ b/vendor/assets/components/angular-translate-interpolation-messageformat/angular-translate-interpolation-messageformat.js @@ -79,7 +79,6 @@ function $translateMessageFormatInterpolation($translateSanitization, $cacheFact $translateInterpolator.setLocale = function (locale) { $mf = $cache.get(locale); if (!$mf) { - locale = locale == "pt-BR" ? "br" : locale; $mf = new MessageFormat(locale); $cache.put(locale, $mf); } From ffa4cbd4e432e60597752e9caa351fcb42de0ca9 Mon Sep 17 00:00:00 2001 From: Alex Coelho Date: Thu, 1 Jun 2017 12:38:18 -0300 Subject: [PATCH 3/6] Files conf --- config/application.yml.default | 69 ++++++++++++++++++++++++++++++++++ config/database.yml.default | 39 +++++++++++++++++++ 2 files changed, 108 insertions(+) create mode 100644 config/application.yml.default create mode 100644 config/database.yml.default diff --git a/config/application.yml.default b/config/application.yml.default new file mode 100644 index 000000000..68b387a4b --- /dev/null +++ b/config/application.yml.default @@ -0,0 +1,69 @@ +-# Add application configuration variables here, as shown below. +- +-POSTGRES_HOST: localhost +-POSTGRES_PASSWORD: +-REDIS_HOST: localhost +-ELASTICSEARCH_HOST: localhost +- +-SECRET_KEY_BASE: 83daf5e7b80d990f037407bab78dff9904aaf3c195a50f84fa8695a22287e707dfbd9524b403b1dcf116ae1d8c06844c3d7ed942564e5b46be6ae3ead93a9d30 +-STRIPE_API_KEY: +-STRIPE_PUBLISHABLE_KEY: +-STRIPE_CURRENCY: 'eur' +- +-INVOICE_PREFIX: Demo-FabLab-facture +-FABLAB_WITHOUT_PLANS: 'false' +-FABLAB_WITHOUT_SPACES: 'true' +- +-DEFAULT_MAIL_FROM: Fab Manager Demo +- +-# For prod & staging env only +-DEFAULT_HOST: fab-manager.com +-DEFAULT_PROTOCOL: https +-DELIVERY_METHOD: smtp +-SMTP_ADDRESS: +-SMTP_PORT: '587' +-SMTP_USER_NAME: +-SMTP_PASSWORD: +-GA_ID: '' +-## +- +-ADMIN_EMAIL: 'admin@fab-manager.com' +-ADMIN_PASSWORD: 'adminadmin' +- +-DISQUS_SHORTNAME: +- +-TWITTER_NAME: 'FablabGrenoble' +-TWITTER_CONSUMER_KEY: '' +-TWITTER_CONSUMER_SECRET: '' +-TWITTER_ACCESS_TOKEN: '' +-TWITTER_ACCESS_TOKEN_SECRET: '' +- +-FACEBOOK_APP_ID: '' +- +-RAILS_LOCALE: 'fr' +-APP_LOCALE: 'fr' +-MOMENT_LOCALE: 'fr' +-SUMMERNOTE_LOCALE: 'fr-FR' +-ANGULAR_LOCALE: 'fr-fr' +-MESSAGEFORMAT_LOCALE: 'fr' +-FULLCALENDAR_LOCALE: 'fr' +- +-ELASTICSEARCH_LANGUAGE_ANALYZER: 'french' +- +-TIME_ZONE: 'Paris' +-WEEK_STARTING_DAY: 'monday' +-D3_DATE_FORMAT: '%d/%m/%y' +-UIB_DATE_FORMAT: 'dd/MM/yyyy' +-EXCEL_DATE_FORMAT: 'dd/mm/yyyy' +- +-OPENLAB_APP_SECRET: +-OPENLAB_APP_ID: +-OPENLAB_BASE_URI: 'https://openprojects.fab-manager.com' +- +-LOG_LEVEL: 'debug' +- +-ALLOWED_EXTENSIONS: pdf ai eps cad math svg stl dxf dwg obj step iges igs 3dm 3dmf doc docx png ino scad fcad skp sldprt sldasm slddrw slddrt tex latex ps +-ALLOWED_MIME_TYPES: application/pdf application/postscript application/illustrator image/x-eps image/svg+xml application/sla application/dxf application/acad application/dwg application/octet-stream application/step application/iges model/iges x-world/x-3dmf application/vnd.openxmlformats-officedocument.wordprocessingml.document image/png text/x-arduino text/plain application/scad application/vnd.sketchup.skp application/x-koan application/vnd-koan koan/x-skm application/vnd.koan application/x-tex application/x-latex +- +-# 10485760 = 10 megabytes +-MAX_IMAGE_SIZE: '10485760' \ No newline at end of file diff --git a/config/database.yml.default b/config/database.yml.default new file mode 100644 index 000000000..64162614a --- /dev/null +++ b/config/database.yml.default @@ -0,0 +1,39 @@ +development: + adapter: postgresql + host: localhost + encoding: unicode + database: fabmanager_development + pool: 25 + username: sleede + password: sleede + +# Warning: The database defined as "test" will be erased and +# re-generated from your development database when you run "rake". +# Do not set this db to the same as development or production. +test: + adapter: postgresql + host: localhost + encoding: unicode + database: fabmanager_test + pool: 25 + username: sleede + password: sleede + +staging: + adapter: postgresql + host: localhost + encoding: unicode + database: fabmanager_development + pool: 25 + username: sleede + password: sleede + + +production: + adapter: postgresql + host: localhost + encoding: unicode + database: fabmanager_development + pool: 25 + username: sleede + password: sleede From 4bae8e4bb602f8d6a10cd7918c579a05072530ca Mon Sep 17 00:00:00 2001 From: Alex Coelho Date: Thu, 1 Jun 2017 12:41:10 -0300 Subject: [PATCH 4/6] Files conf --- config/application.yml.default | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/application.yml.default b/config/application.yml.default index 68b387a4b..dca8ea779 100644 --- a/config/application.yml.default +++ b/config/application.yml.default @@ -66,4 +66,4 @@ -ALLOWED_MIME_TYPES: application/pdf application/postscript application/illustrator image/x-eps image/svg+xml application/sla application/dxf application/acad application/dwg application/octet-stream application/step application/iges model/iges x-world/x-3dmf application/vnd.openxmlformats-officedocument.wordprocessingml.document image/png text/x-arduino text/plain application/scad application/vnd.sketchup.skp application/x-koan application/vnd-koan koan/x-skm application/vnd.koan application/x-tex application/x-latex - -# 10485760 = 10 megabytes --MAX_IMAGE_SIZE: '10485760' \ No newline at end of file +-MAX_IMAGE_SIZE: '10485760' From 1ef80f8bd8e6df085326eb46b644739490583b81 Mon Sep 17 00:00:00 2001 From: Alex Coelho Date: Thu, 1 Jun 2017 14:33:16 -0300 Subject: [PATCH 5/6] Prtuguese translations in app.*.pt.yml files --- config/locales/{app.admin.pt-BR.yml => app.admin.pt.yml} | 2 +- config/locales/{app.logged.pt-BR.yml => app.logged.pt.yml} | 2 +- config/locales/{app.public.pt-BR.yml => app.public.pt.yml} | 4 ++-- config/locales/{app.shared.pt-BR.yml => app.shared.pt.yml} | 2 +- config/locales/{devise.pt-BR.yml => devise.pt.yml} | 2 +- config/locales/{mails.pt-BR.yml => mails.pt.yml} | 2 +- config/locales/{pt-BR.yml => pt.yml} | 2 +- .../angular-translate-interpolation-messageformat.js | 1 - 8 files changed, 8 insertions(+), 9 deletions(-) rename config/locales/{app.admin.pt-BR.yml => app.admin.pt.yml} (99%) rename config/locales/{app.logged.pt-BR.yml => app.logged.pt.yml} (99%) rename config/locales/{app.public.pt-BR.yml => app.public.pt.yml} (98%) rename config/locales/{app.shared.pt-BR.yml => app.shared.pt.yml} (99%) rename config/locales/{devise.pt-BR.yml => devise.pt.yml} (99%) rename config/locales/{mails.pt-BR.yml => mails.pt.yml} (99%) rename config/locales/{pt-BR.yml => pt.yml} (99%) diff --git a/config/locales/app.admin.pt-BR.yml b/config/locales/app.admin.pt.yml similarity index 99% rename from config/locales/app.admin.pt-BR.yml rename to config/locales/app.admin.pt.yml index 27bbf00cd..4ac881b30 100755 --- a/config/locales/app.admin.pt-BR.yml +++ b/config/locales/app.admin.pt.yml @@ -1,4 +1,4 @@ -pt-BR: +pt: app: admin: machines_new: diff --git a/config/locales/app.logged.pt-BR.yml b/config/locales/app.logged.pt.yml similarity index 99% rename from config/locales/app.logged.pt-BR.yml rename to config/locales/app.logged.pt.yml index 4b3bfad9c..e0d2be835 100755 --- a/config/locales/app.logged.pt-BR.yml +++ b/config/locales/app.logged.pt.yml @@ -1,4 +1,4 @@ -pt-BR: +pt: app: logged: profileCompletion: diff --git a/config/locales/app.public.pt-BR.yml b/config/locales/app.public.pt.yml similarity index 98% rename from config/locales/app.public.pt-BR.yml rename to config/locales/app.public.pt.yml index 458d1c29b..6c2f86d0d 100755 --- a/config/locales/app.public.pt-BR.yml +++ b/config/locales/app.public.pt.yml @@ -1,4 +1,4 @@ -pt-BR: +pt: app: public: common: @@ -208,7 +208,7 @@ pt-BR: more_information: "Mais informação" your_subscription_expires_on_the_DATE: "Sua inscrição expira em {{DATE}}" # angular interpolation my_group: "Meu grupo" - his_group: "{GENDER, select, masculino{Ele} feminino{Ela} outro{Esses}} grupo" # messageFormat interpolation + his_group: "{GENDER, select, male{Ele} female{Ela} other{Esses}} grupo" # messageFormat interpolation he_wants_to_change_group: "{ROLE, select, admin{O usuário quer} other{Eu quero}} trocar de grupo" # messageFormat interpolation change_my_group: "Mudar {ROLE, select, admin{{GENDER, select, male{dele} female{dela} other{esses}}} other{meu}} grupo" # messageFormat interpolation your_subscription_has_expired_on_the_DATE: "Sua inscrição expirou em {{DATE}}" # angular interpolation diff --git a/config/locales/app.shared.pt-BR.yml b/config/locales/app.shared.pt.yml similarity index 99% rename from config/locales/app.shared.pt-BR.yml rename to config/locales/app.shared.pt.yml index 1e8708cb1..f35f37288 100755 --- a/config/locales/app.shared.pt-BR.yml +++ b/config/locales/app.shared.pt.yml @@ -1,4 +1,4 @@ -pt-BR: +pt: app: shared: buttons: diff --git a/config/locales/devise.pt-BR.yml b/config/locales/devise.pt.yml similarity index 99% rename from config/locales/devise.pt-BR.yml rename to config/locales/devise.pt.yml index e7950d482..18bda1655 100755 --- a/config/locales/devise.pt-BR.yml +++ b/config/locales/devise.pt.yml @@ -1,6 +1,6 @@ # Additional translations at https://github.com/plataformatec/devise/wiki/I18n -pt-BR: +pt: devise: confirmations: confirmed: "Sua conta foi confirmada com sucesso." diff --git a/config/locales/mails.pt-BR.yml b/config/locales/mails.pt.yml similarity index 99% rename from config/locales/mails.pt-BR.yml rename to config/locales/mails.pt.yml index 6bc5393e5..0cae46c74 100755 --- a/config/locales/mails.pt-BR.yml +++ b/config/locales/mails.pt.yml @@ -1,4 +1,4 @@ -pt-BR: +pt: layouts: notifications_mailer: see_you_later: "Te vejo em breve em {GENDER, select, other{the}}" # messageFormat interpolation diff --git a/config/locales/pt-BR.yml b/config/locales/pt.yml similarity index 99% rename from config/locales/pt-BR.yml rename to config/locales/pt.yml index 43a77b77a..8d4785a3c 100755 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt.yml @@ -1,4 +1,4 @@ -pt-BR: +pt: duration: # subscription plan duration diff --git a/vendor/assets/components/angular-translate-interpolation-messageformat/angular-translate-interpolation-messageformat.js b/vendor/assets/components/angular-translate-interpolation-messageformat/angular-translate-interpolation-messageformat.js index 315996e1c..238c9ee57 100644 --- a/vendor/assets/components/angular-translate-interpolation-messageformat/angular-translate-interpolation-messageformat.js +++ b/vendor/assets/components/angular-translate-interpolation-messageformat/angular-translate-interpolation-messageformat.js @@ -79,7 +79,6 @@ function $translateMessageFormatInterpolation($translateSanitization, $cacheFact $translateInterpolator.setLocale = function (locale) { $mf = $cache.get(locale); if (!$mf) { - locale = locale == "pt-BR" ? "br" : locale; $mf = new MessageFormat(locale); $cache.put(locale, $mf); } From 3bf91efe8f22e84fd4053ca0b6e68159aec8fff8 Mon Sep 17 00:00:00 2001 From: Sylvain Date: Wed, 7 Jun 2017 16:26:04 +0200 Subject: [PATCH 6/6] fixed messageformat syntax in Portuguese --- config/locales/app.admin.pt.yml | 4 +++- config/locales/app.shared.pt.yml | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/config/locales/app.admin.pt.yml b/config/locales/app.admin.pt.yml index 4ac881b30..259835680 100755 --- a/config/locales/app.admin.pt.yml +++ b/config/locales/app.admin.pt.yml @@ -410,7 +410,9 @@ pt: members_new: # add a member - add_a_member: "Adicionar membro" + members_new: + add_a_member: "Adicionar membro" + user_is_an_organization: "Usuário é uma organização" members_edit: # edit a member diff --git a/config/locales/app.shared.pt.yml b/config/locales/app.shared.pt.yml index f35f37288..9c209a8ad 100755 --- a/config/locales/app.shared.pt.yml +++ b/config/locales/app.shared.pt.yml @@ -410,10 +410,10 @@ pt: # module de panier d'achat de réservations cart: summary: "Sumário" - select_one_or_more_slots_in_the_calendar: "Selecionar um {SINGLE, select, true{slot} outro {ou mais slots}} no calendário" # messageFormat interpolation + select_one_or_more_slots_in_the_calendar: "Selecionar um {SINGLE, select, true{slot} other{ou mais slots}} no calendário" # messageFormat interpolation you_ve_just_selected_the_slot: "Você selecionou apenas o slot:" datetime_to_time: "{{START_DATETIME}} até {{END_TIME}}" # angular interpolation, eg: Thursday, September 4 1986 8:30 PM to 10:00 PM - cost_of_TYPE: "Custo de {TYPE, select, Máquina{máquina hora} Treinamento{o treinamento} outro{o elemento}}" # messageFormat interpolation + cost_of_TYPE: "Custo de {TYPE, select, Machine{máquina hora} Training{o treinamento} other{o elemento}}" # messageFormat interpolation offer_this_slot: "Oferecer este slot" confirm_this_slot: "Confirmar este slot" remove_this_slot: "Remover este slot" @@ -424,7 +424,7 @@ pt: _subscription: "inscrição" cost_of_the_subscription: "Custo da inscrição" confirm_and_pay: "Confirmar e pagar" - you_have_settled_the_following_machine_hours: "Você liquidou o seguinte {TYPE, select, Máquina{horas máquina} Treinamento{training} other{elements}}:" # messageFormat interpolation + you_have_settled_the_following_machine_hours: "Você liquidou o seguinte {TYPE, select, Machine{horas máquina} Training{training} other{elements}}:" # messageFormat interpolation you_have_settled_a_: "Você tem liquidado:" total_: "TOTAL :" thank_you_your_payment_has_been_successfully_registered: "Obrigado. Seu pagamento foi registrado com sucesso !"