@rebasepro/app 0.25.1 → 0.26.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/RlsSimulatorPanel-DOfmVgM3.js +403 -0
- package/dist/RlsSimulatorPanel-DOfmVgM3.js.map +1 -0
- package/dist/collections/form-layout.d.ts +30 -27
- package/dist/components/LanguageToggle.d.ts +9 -0
- package/dist/components/LoginView/index.d.ts +7 -0
- package/dist/components/index.d.ts +1 -0
- package/dist/components/studio/RlsSimulatorBar.d.ts +39 -0
- package/dist/components/studio/RlsSimulatorPanel.d.ts +29 -0
- package/dist/contexts/RlsSimulationContext.d.ts +47 -0
- package/dist/contexts/index.d.ts +1 -0
- package/dist/core/effective_role_state.d.ts +9 -0
- package/dist/{de-DyzL3TA9.js → de-3yzzpuZj.js} +108 -1
- package/dist/de-3yzzpuZj.js.map +1 -0
- package/dist/debug.js +96 -46
- package/dist/{es-DJCi9Za4.js → es-mnyTaRkK.js} +108 -1
- package/dist/es-mnyTaRkK.js.map +1 -0
- package/dist/{fr-Ie-LqMS1.js → fr-nJHADzlI.js} +108 -1
- package/dist/fr-nJHADzlI.js.map +1 -0
- package/dist/{hi-D7t90uiv.js → hi-B9_iunnL.js} +108 -1
- package/dist/hi-B9_iunnL.js.map +1 -0
- package/dist/hooks/useBuildEffectiveRoleController.d.ts +9 -3
- package/dist/hooks/usePermissions.d.ts +4 -0
- package/dist/hooks/useUnsavedChangesDialog.d.ts +7 -1
- package/dist/i18n/RebaseI18nProvider.d.ts +11 -0
- package/dist/index.es.js +2747 -2555
- package/dist/index.es.js.map +1 -1
- package/dist/{it-DPvaMOt6.js → it-DoEtz-OK.js} +108 -1
- package/dist/it-DoEtz-OK.js.map +1 -0
- package/dist/{pt-DfaXMf_W.js → pt-DT26AmBU.js} +108 -1
- package/dist/pt-DT26AmBU.js.map +1 -0
- package/package.json +7 -7
- package/dist/de-DyzL3TA9.js.map +0 -1
- package/dist/es-DJCi9Za4.js.map +0 -1
- package/dist/fr-Ie-LqMS1.js.map +0 -1
- package/dist/hi-D7t90uiv.js.map +0 -1
- package/dist/it-DPvaMOt6.js.map +0 -1
- package/dist/pt-DfaXMf_W.js.map +0 -1
package/dist/pt-DfaXMf_W.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pt-DfaXMf_W.js","names":[],"sources":["../src/locales/pt.ts"],"sourcesContent":["import { RebaseTranslations } from \"@rebasepro/cms-types\";\n\n/**\n * Portuguese (pt) translations for @rebasepro/app.\n *\n * @group Core\n */\nexport const pt: RebaseTranslations = {\n // ─── Form actions ────────────────────────────────────────────\n save: \"Guardar\",\n create: \"Criar\",\n create_copy: \"Criar cópia\",\n save_and_close: \"Guardar e fechar\",\n create_copy_and_close: \"Criar cópia e fechar\",\n create_and_close: \"Criar e fechar\",\n discard: \"Descartar\",\n clear: \"Limpar\",\n cancel: \"Cancelar\",\n\n // ─── Entity actions ──────────────────────────────────────────\n edit: \"Editar\",\n copy: \"Copiar\",\n delete: \"Eliminar\",\n delete_not_allowed: \"Selecionou pelo menos uma entidade que não pode eliminar\",\n edit_entity: \"Editar\",\n back_to_detail: \"Voltar aos detalhes\",\n\n // ─── Delete dialog ───────────────────────────────────────────\n delete_confirmation_title: \"Eliminar?\",\n delete_confirmation_body: \"Esta ação eliminará a entidade. Tem a certeza?\",\n delete_multiple_confirmation_body: \"Esta ação eliminará as entidades selecionadas. Tem a certeza?\",\n\n // ─── Unsaved-changes dialog ───────────────────────────────────\n unsaved_changes_title: \"Alterações não guardadas\",\n unsaved_changes_body: \"Tem alterações não guardadas. Deseja descartá-las?\",\n discard_changes: \"Descartar alterações\",\n keep_editing: \"Continuar a editar\",\n clear_form: \"Limpar formulário?\",\n discard_changes_confirmation: \"Todas as alterações não guardadas serão perdidas. Esta ação não pode ser desfeita.\",\n clear_form_confirmation: \"Todos os valores introduzidos serão apagados. Esta ação não pode ser desfeita.\",\n\n // ─── Collection table / toolbar ──────────────────────────────\n search: \"Pesquisar\",\n find_by_id: \"Encontrar por ID\",\n find_entity_by_id: \"Encontrar entidade por ID\",\n filter: \"Filtrar\",\n filters: \"Filtros\",\n records_in_view: \"Registos nesta vista\",\n clear_filter: \"Limpar filtro\",\n clear_filter_sort: \"Limpar filtro/ordenação\",\n clear_sort: \"Limpar ordenação\",\n sort: \"Ordenar\",\n sort_by: \"Ordenar por\",\n sort_then_by: \"Depois por\",\n sort_ascending: \"Ordenar ascendente\",\n sort_descending: \"Ordenar descendente\",\n sort_remove: \"Remover ordenação\",\n sort_move_up: \"Tornar esta chave mais importante\",\n sort_move_down: \"Tornar esta chave menos importante\",\n sort_remove_key: \"Remover esta chave de ordenação\",\n sort_key_position: \"Chave de ordenação {{position}}\",\n sort_shift_click_hint: \"Shift+clique para adicionar uma coluna sob a ordenação atual\",\n save_entity_before_subcollections: \"Guarde este registo antes de adicionar registos relacionados.\",\n clear_all: \"Limpar tudo\",\n no_items: \"Sem itens\",\n no_entries_found: \"Nenhum registo encontrado\",\n all_entries_loaded: \"Todos os {{count}} registos carregados\",\n error_loading_data_message: \"Erro ao carregar os dados: {{message}}\",\n clear_search: \"Limpar pesquisa\",\n open_time_picker: \"Abrir seletor de hora\",\n relative_just_now: \"agora mesmo\",\n relative_in_a_moment: \"daqui a pouco\",\n relative_minutes_ago: \"há {{count}} min\",\n relative_in_minutes: \"em {{count}} min\",\n relative_hours_ago: \"há {{count}} h\",\n relative_in_hours: \"em {{count}} h\",\n relative_days_ago: \"há {{count}} d\",\n relative_in_days: \"em {{count}} d\",\n create_your_first_entry: \"Crie o seu primeiro registo\",\n no_results_filter_sort: \"Sem resultados com o filtro/ordenação aplicado\",\n no_results_filter: \"Sem resultados com os filtros aplicados\",\n no_results_search: \"Nenhum resultado encontrado para \\\"{{search}}\\\"\",\n add: \"Adicionar\",\n remove: \"Remover\",\n multiple_entities: \"Múltiplas entidades\",\n unsaved_changes: \"Tem alterações não guardadas em {{collectionName}}.\",\n so_empty: \"Tão vazio...\",\n no_results: \"Sem resultados com o filtro/ordenação aplicado\",\n refresh_data: \"Atualizar dados\",\n dark_mode: \"Escuro\",\n light_mode: \"Claro\",\n system_mode: \"Sistema\",\n join_newsletter: \"Assine a newsletter, sem spam\",\n ok: \"Ok\",\n save_collection_config: \"Guardar estrutura da coleção\",\n search_for_more_icons: \"Pesquisar mais ícones…\",\n ai_modified: \"Modificado por IA\",\n size_label: \"Tamanho\",\n group_by: \"Agrupar por\",\n initialize_kanban_order: \"Inicializar Ordem Kanban\",\n copy_id: \"Copiar ID\",\n add_specific: \"Adicionar {{name}}\",\n add_named: \"Adicionar \\\"{{name}}\\\"\",\n select_specific: \"Selecionar {{name}}\",\n select_from: \"Selecionar de {{name}}\",\n done: \"Concluído\",\n log_out: \"Terminar sessão\",\n column_cannot_be_edited: \"Esta coluna não pode ser editada diretamente\",\n close: \"Fechar\",\n hide_list: \"Ocultar lista\",\n show_list: \"Mostrar lista\",\n unsaved_local_changes: \"Alterações locais não guardadas\",\n unsaved_local_changes_description: \"Este documento foi editado localmente e tem alterações não guardadas. Estas alterações locais serão perdidas se não as aplicar.\",\n preview_changes: \"Pré-visualizar alterações\",\n apply_changes: \"Aplicar alterações\",\n discard_local_changes: \"Descartar alterações locais\",\n preview_local_changes: \"Pré-visualizar alterações locais\",\n preview_local_changes_description: \"Estas são as alterações locais que serão aplicadas ao formulário.\",\n type: \"Tipo\",\n string: \"string\",\n number: \"número\",\n boolean: \"booleano\",\n date: \"data\",\n map: \"mapa\",\n array: \"lista\",\n arrays_of_arrays_not_supported: \"Listas de listas não são suportadas.\",\n data_type_not_supported: \"Tipo de dados {{dataType}} ainda não suportado\",\n passkey_error_unsupported: \"O seu dispositivo ou browser não suporta passkeys.\",\n\n // ─── Entity form feedback ─────────────────────────────────────\n saved_correctly: \"Guardado com sucesso\",\n error_before_saving: \"Erro ao preparar os dados\",\n error_after_saving: \"Erro no processamento pós-gravação\",\n error_saving_entity: \"Erro ao guardar a entidade\",\n error_record_changed_elsewhere: \"Este registo foi alterado desde que o abriu. As suas alterações foram mantidas: reveja os campos marcados como atualizados noutro local e guarde novamente.\",\n entity_does_not_exist: \"Esta entidade não existe na base de dados\",\n form_modified: \"Este formulário foi modificado\",\n form_in_sync: \"O formulário atual está sincronizado com a base de dados\",\n fix_errors_before_saving: \"Corrija os erros destacados antes de guardar\",\n form_predating_rule_violations: \"Alguns campos que não alterou não cumprem as regras atuais. Não impedem a gravação:\",\n\n admin: \"Administrador\",\n home: \"Início\",\n this_form_has_errors: \"Este formulário tem erros\",\n error_loading_navigation: \"Erro ao carregar navegação\",\n error_loading_auth: \"Erro ao carregar autenticação\",\n this_form_has_been_modified: \"Este formulário foi modificado\",\n current_form_in_sync: \"O formulário atual está sincronizado com a base de dados\",\n open_in_console: \"Abrir na consola\",\n collection_does_not_exist: \"A coleção especificada não existe. Verifique a consola\",\n unexpected_value: \"Valor inesperado\",\n unexpected_value_click_to_edit: \"Valor inesperado. Clique para editar\",\n unexpected_reference_value: \"Valor de referência inesperado. Clique para editar\",\n copy_url_to_clipboard: \"Copiar URL para a área de transferência\",\n open_image_in_new_tab: \"Abrir imagem numa nova aba\",\n reference_not_set: \"Referência não definida\",\n reference_does_not_exist: \"A referência não existe\",\n entity_not_found: \"Entidade não encontrada\",\n entity_not_found_body: \"Este registo não existe, ou pode estar-lhe oculto pela segurança ao nível da linha.\",\n collection_not_found: \"Coleção não encontrada\",\n collection_not_found_body: \"Nada está registado para \\\"{{path}}\\\".\",\n collection_not_found_hint: \"O URL indica uma coleção que o painel não conhece. Pode ter sido renomeada ou removida do array de coleções, ou o slug pode não corresponder ao caminho.\",\n back_to_collection: \"Voltar a {{name}}\",\n file_not_found: \"Ficheiro não encontrado\",\n unsaved_changes_in_entity: \"Tem alterações não guardadas nesta entidade.\",\n delete_this_role: \"Eliminar esta função\",\n no_roles_yet: \"Ainda não tem nenhuma função.\",\n create_default_roles: \"Criar funções predefinidas\",\n delete_role_confirmation: \"Tem a certeza de que quer eliminar esta função?\",\n delete_this_user: \"Eliminar este utilizador\",\n no_users_yet: \"Ainda não existem utilizadores\",\n add_logged_user_as_admin: \"Adicionar o utilizador com sessão iniciada como administrador\",\n add_current_user_as_admin: \"Adicionar utilizador atual como administrador\",\n create_default_roles_and_add_admin: \"Criar funções predefinidas e adicionar utilizador atual como administrador\",\n delete_user_confirmation: \"Tem a certeza de que quer eliminar este utilizador?\",\n create_your_users_and_roles: \"Crie os seus utilizadores e funções\",\n no_users_or_roles_defined: \"Não tem utilizadores ou funções definidas. Pode criar funções predefinidas e adicionar o utilizador atual como administrador.\",\n save_before_changing_schema: \"Precisa de guardar o documento antes de alterar o esquema\",\n edit_schema_for_this_form: \"Editar esquema para este formulário\",\n no_permissions_to_edit_collection: \"Não tem permissões para editar esta coleção\",\n browser_does_not_support_audio: \"O seu browser não suporta o elemento de áudio.\",\n user_not_found: \"Utilizador não encontrado: {{value}}\",\n\n // ─── Collection view actions ──────────────────────────────────\n delete_selected: \"Eliminar\",\n cannot_delete_selected: \"Selecionou pelo menos uma entidade que não pode eliminar\",\n\n // ─── Array / field containers ─────────────────────────────────\n add_entry: \"Adicionar\",\n add_on_top: \"Adicionar no topo\",\n add_below: \"Adicionar abaixo\",\n add_to_field: \"Adicionar a {{fieldName}}\",\n value: \"Valor\",\n key: \"Chave\",\n drag_drop_multiple: \"Arraste e solte ficheiros aqui, ou clique para selecionar. Arraste para reordenar.\",\n drag_drop_single: \"Arraste e solte um ficheiro aqui, ou clique para selecionar um\",\n\n // ─── Navigation / scaffold ────────────────────────────────────\n open_menu: \"Abrir menu\",\n close_drawer: \"Fechar painel lateral\",\n navigation_drawer: \"Painel lateral de navegação\",\n collapse: \"Recolher\",\n expand: \"Expandir\",\n change_language: \"Alterar idioma\",\n toggle_theme: \"Alternar tema\",\n user_menu: \"Menu do utilizador\",\n resize_sidebar: \"Redimensionar a barra lateral\",\n resize_editor: \"Redimensionar o editor\",\n resize_list: \"Redimensionar a lista\",\n panel_mode: \"Modo do painel\",\n\n // ─── Error states ─────────────────────────────────────────────\n error: \"Erro\",\n error_loading_data: \"Não foi possível carregar os dados\",\n error_check_server_logs: \"Consulte os registos do servidor para mais detalhes.\",\n error_technical_details: \"Detalhes técnicos\",\n error_uploading_file: \"Erro ao carregar ficheiro\",\n error_deleting: \"Erro ao eliminar\",\n error_before_delete: \"Erro antes de eliminar\",\n error_updating_asset: \"Erro ao atualizar recurso\",\n error_deleting_asset: \"Erro ao eliminar recurso\",\n error_firestore_index: \"É necessário um índice Firestore para esta consulta.\",\n realtime_connection_lost_title: \"Atualizações em tempo real em pausa\",\n realtime_connection_lost_body: \"A ligação ao servidor perdeu-se, por isso o que vê pode estar desatualizado. Será atualizado assim que a ligação voltar.\",\n create_index: \"Criar índice\",\n value_is_not_reference: \"O valor não é uma referência.\",\n click_to_edit: \"Clique para editar\",\n data_is_not_array_of_references: \"Os dados não são uma lista de referências\",\n\n // ─── Misc ─────────────────────────────────────────────────────\n loading: \"A carregar\",\n local_changes_applied: \"Alterações locais aplicadas ao formulário\",\n local_changes_discarded: \"Alterações locais descartadas\",\n are_you_sure_leave: \"Tem a certeza de que quer sair desta página?\",\n see_console_details: \"Consulte a consola para mais detalhes.\",\n drop_here_create_group: \"Solte aqui para criar um novo grupo\",\n filter_for_null_values: \"Filtrar valores nulos\",\n value_updated_elsewhere: \"Este valor foi atualizado noutro local\",\n entity_deleted_elsewhere: \"Este registo foi eliminado noutro local. O que vê aqui não foi guardado; guarde-o como um novo registo para o manter.\",\n save_as_new: \"Guardar como novo\",\n add_property: \"Adicionar propriedade\",\n edit_name: \"Editar {{name}}\",\n this_entity_not_exist: \"Esta entidade não existe na base de dados\",\n internal_error: \"ERRO interno\",\n\n // ─── Rename group dialog ──────────────────────────────────────\n rename_group: \"Renomear Grupo\",\n group_name_label: \"Nome do Grupo\",\n group_name_empty_error: \"O nome do grupo não pode estar vazio.\",\n group_name_exists_error: \"Este nome de grupo já existe.\",\n\n // ─── Search ───────────────────────────────────────────────────\n search_collections: \"Pesquisar coleções\",\n\n // ─── Navigation groups ────────────────────────────────────────\n views_group: \"Visualizações\",\n\n // ─── Entity Edit View ─────────────────────────────────────────\n youd_need_to_save_before_additional_collections: \"Guarde este registo antes de adicionar registos relacionados.\",\n\n // ─── Not Found Page ───────────────────────────────────────────\n page_not_found: \"Página não encontrada\",\n page_not_found_body: \"Esta página não existe ou pode não ter acesso a ela\",\n back_to_home: \"Voltar ao início\",\n\n // ─── Collection Editor ─────────────────────────────────────────\n default_collection_view: \"Vista de coleção predefinida\",\n table_view: \"Tabela\",\n cards_view: \"Cartões\",\n kanban_view: \"Kanban\",\n choose_how_entities_displayed_default: \"Escolha como as entidades devem ser exibidas por padrão\",\n\n document_view: \"Vista de documento\",\n side_panel: \"Painel lateral\",\n full_screen: \"Ecrã inteiro\",\n should_documents_opened_full_screen: \"Os documentos devem ser abertos em ecrã inteiro ou num painel lateral inline\",\n\n select_custom_view: \"Selecionar vista personalizada\",\n no_custom_views_defined: \"Nenhuma vista personalizada definida. Defina as suas vistas personalizadas nas definições de personalização, antes de usar este diálogo.\",\n\n select_custom_action: \"Selecionar ação personalizada\",\n no_custom_actions_defined: \"Nenhuma ação personalizada definida. Defina as suas ações personalizadas nas definições de personalização, antes de usar este diálogo.\",\n\n no_collections_found: \"Nenhuma coleção encontrada\",\n start_building_collections: \"Comece a criar coleções no Rebase facilmente. Mapeie-as aos dados existentes na sua base de dados, importe de ficheiros ou use os nossos modelos.\",\n create_first_collection: \"Crie a sua primeira coleção\",\n define_collections_programmatically: \"Também pode definir coleções programaticamente.\",\n edit_collection: \"Editar coleção\",\n no_permissions_edit_collection: \"Não tem permissões para editar esta coleção\",\n no_permissions_create_collection: \"Não tem permissões para criar coleções\",\n create_collection: \"Criar coleção\",\n update_collection: \"Atualizar coleção\",\n\n new_collection: \"Nova coleção\",\n add_new_collection: \"Adicionar nova coleção\",\n collection_with_name: \"Coleção {{name}}\",\n change_icon: \"Alterar ícone\",\n is_subcollection_of: \"Esta é uma subcoleção de\",\n name: \"Nome\",\n collection_name_description: \"Nome desta coleção, normalmente um nome no plural (ex. Produtos)\",\n path: \"Caminho\",\n relative_path_to_parent: \"Caminho relativo ao pai (não é necessário incluir o caminho do pai)\",\n path_in_database: \"Caminho em que esta coleção está armazenada na base de dados\",\n singular_name: \"Nome singular\",\n singular_name_description: \"Opcionalmente defina um nome singular para as suas entidades\",\n description: \"Descrição\",\n description_of_collection: \"Descrição da coleção, pode usar markdown\",\n collection_id: \"ID da coleção\",\n collection_id_description: \"Este ID identifica esta coleção. Normalmente igual ao caminho.\",\n collection_group: \"Grupo de coleções\",\n collection_group_description: \"Um grupo de coleções consiste em todas as coleções com o mesmo caminho. Isto permite consultar várias coleções ao mesmo tempo.\",\n advanced_settings: \"Definições avançadas\",\n doc_history_global: \"Revisões do histórico do documento ativadas se ativadas globalmente\",\n doc_history_enabled: \"Revisões do histórico do documento ATIVADAS\",\n doc_history_not_enabled: \"Revisões do histórico do documento NÃO ativadas\",\n doc_history_description: \"Quando ativado, cada documento nesta coleção terá um histórico de alterações. Útil para fins de auditoria. Os dados são armazenados numa subcoleção do documento na sua base de dados, chamada __history.\",\n document_id_generation: \"Geração de IDs de documentos\",\n code_defined: \"Definido por código\",\n users_must_define_id: \"Os utilizadores devem definir um ID\",\n users_can_define_id: \"Os utilizadores podem definir um ID, mas não é obrigatório\",\n doc_id_auto_generated: \"O ID do documento é gerado automaticamente\",\n config_doc_id_generation: \"Configure como os IDs de documentos são gerados ao criar novas entidades.\",\n enable_text_search: \"Ativar pesquisa de texto para esta coleção\",\n text_search_description: \"Permitir pesquisa de texto para esta coleção. Se não especificou um delegado de pesquisa de texto, será usada a pesquisa de texto local integrada. Não recomendado para grandes coleções, pois pode causar problemas de desempenho e custo.\",\n database_id: \"ID da base de dados\",\n default_text: \"(predefinição)\",\n\n custom_actions: \"Ações personalizadas\",\n more_info: \"Mais informações\",\n define_custom_actions_cli: \"Defina as suas próprias ações personalizadas carregando-as com o CLI.\",\n action_defined_in_code: \"Esta ação está definida em código com a chave\",\n add_custom_entity_action: \"Adicionar ação de entidade personalizada\",\n remove_this_action: \"Remover esta ação?\",\n remove_action_warning: \"Isto não eliminará nenhum dado, apenas a ação no painel de administração\",\n\n subcollections_of: \"Subcoleções de\",\n add_subcollection: \"Adicionar subcoleção\",\n custom_views: \"Vistas personalizadas\",\n define_custom_views_cli: \"Defina as suas próprias vistas personalizadas carregando-as com o CLI.\",\n view_defined_in_code: \"Esta vista está definida em código com a chave\",\n add_custom_entity_view: \"Adicionar vista de entidade personalizada\",\n delete_this_subcollection: \"Eliminar esta subcoleção?\",\n remove_collection_warning: \"Isto não eliminará nenhum dado, apenas a coleção no painel de administração\",\n remove_this_view: \"Remover esta vista?\",\n remove_view_warning: \"Isto não eliminará nenhum dado, apenas a vista no painel de administração\",\n\n no_collection_selected: \"Nenhuma coleção selecionada\",\n code_for_collection: \"Código para\",\n use_config_define_json: \"Use esta configuração para definir a coleção em formato JSON.\",\n customise_collection_code: \"Se quiser personalizar a coleção em código, pode adicionar este código de coleção à configuração da sua aplicação de administração.\",\n copied: \"Copiado\",\n\n property_cant_be_edited: \"Esta propriedade não pode ser editada\",\n property_not_editable_description: \"Pode não ter permissão para editá-la ou está definida em código e não pode ser modificada.\",\n delete_this_property: \"Eliminar esta propriedade?\",\n delete_property_warning: \"Isto não eliminará nenhum dado, apenas modificará a coleção.\",\n error_must_specify_id: \"Deve especificar um id para o campo\",\n error_id_format: \"O id só pode conter letras, números e underscores (_), e não pode começar com um número\",\n error_id_already_exists: \"Já existe outro campo com este ID\",\n error_must_specify_title: \"Deve especificar um título para o campo\",\n custom_or_other: \"Personalizado/Outro\",\n select_property_widget: \"Selecionar um widget de propriedade\",\n error_changing_data_type: \"Este widget usa um tipo de dados diferente do widget inicialmente selecionado. Isto pode causar erros com dados existentes.\",\n required: \"Obrigatório\",\n\n enum_form_dialog: \"Diálogo de formulário enum\",\n imported_data_preview: \"Pré-visualização de dados importados\",\n entities_with_same_id_overwritten: \"Entidades com o mesmo id serão substituídas\",\n collection_editor: \"Editor de coleção\",\n properties_in_this_group: \"Propriedades neste grupo\",\n data_property_mapping: \"Mapeamento de propriedade de dados\",\n property_edit_view: \"Vista de edição de propriedade\",\n all_of_these: \"Todos estes\",\n any_of_these: \"Qualquer um destes\",\n\n only_admins_edit_roles: \"Apenas administradores podem editar funções\",\n error_user_not_found: \"Utilizador não encontrado\",\n all_roles: \"Todos os papéis\",\n role: \"Função\",\n name_of_this_role: \"Nome desta função\",\n id_of_this_role: \"ID desta função\",\n create_entities: \"Criar entidades\",\n read_entities: \"Ler entidades\",\n update_entities: \"Atualizar entidades\",\n delete_entities: \"Eliminar entidades\",\n all_collections: \"Todas as coleções\",\n create_entities_in_collections: \"Criar entidades em coleções\",\n access_all_data_in_every_collection: \"Aceder a todos os dados em todas as coleções\",\n update_data_in_any_collection: \"Atualizar dados em qualquer coleção\",\n delete_data_in_any_collection: \"Eliminar dados em qualquer coleção\",\n allow_all_permissions_in_this_collections: \"Permitir todas as permissões nestas coleções\",\n all: \"Todos\",\n customise_permissions_description: \"Pode personalizar as permissões que os utilizadores relacionados com esta função podem realizar nas entidades de cada coleção\",\n create_collections: \"Criar coleções\",\n yes: \"Sim\",\n no: \"Não\",\n can_user_create_collections: \"O utilizador pode criar coleções\",\n edit_collections: \"Editar coleções\",\n only_own_collections: \"Apenas as suas próprias\",\n own: \"Próprias\",\n can_user_edit_collections: \"O utilizador pode editar coleções\",\n delete_collections: \"Eliminar coleções\",\n can_user_delete_collections: \"O utilizador pode eliminar coleções\",\n error_saving_role: \"Ocorreu um erro ao guardar esta função\",\n create_role: \"Criar função\",\n update: \"Atualizar\",\n\n only_admins_change_roles: \"Apenas administradores podem alterar funções\",\n must_be_at_least_one_admin: \"Deve existir pelo menos um administrador\",\n logged_user_not_found: \"Utilizador com sessão iniciada não encontrado\",\n user: \"Utilizador\",\n user_id: \"ID do utilizador\",\n name_of_this_user: \"Nome deste utilizador\",\n email_of_this_user: \"Email deste utilizador\",\n roles: \"Funções\",\n create_user: \"Criar utilizador\",\n\n users: \"Utilizadores\",\n add_user: \"Adicionar utilizador\",\n add_role: \"Adicionar função\",\n is_admin: \"É Administrador\",\n default_permissions: \"Permissões predefinidas\",\n created_on: \"Criado em\",\n email: \"Email\",\n id: \"ID\",\n read: \"Ler\",\n\n column_in_file: \"Coluna no ficheiro\",\n map_to_property: \"Mapear para propriedade\",\n default_values: \"Valores predefinidos\",\n default_values_description: \"Pode selecionar um valor predefinido para colunas não mapeadas e valores vazios:\",\n property: \"Propriedade\",\n default_value: \"Valor predefinido\",\n autogenerate_id: \"Gerar ID automaticamente\",\n id_column_description: \"Coluna que será usada como ID para cada documento\",\n do_not_set_value: \"Não definir valor\",\n set_value_to_true: \"Definir valor como verdadeiro\",\n set_value_to_false: \"Definir valor como falso\",\n drag_and_drop_file: \"Arraste e solte um ficheiro aqui ou clique para carregar\",\n error_saving_data: \"Erro ao guardar dados\",\n retry: \"Tentar novamente\",\n saving_data: \"A guardar dados\",\n entities_saved: \"entidades guardadas\",\n do_not_close_tab: \"Não feche este separador ou a importação será interrompida\",\n import: \"Importar\",\n import_data: \"Importar dados\",\n upload_file_description: \"Carregue um ficheiro CSV, Excel ou JSON e mapeie-o para o esquema existente\",\n back: \"Voltar\",\n next: \"Seguinte\",\n save_data: \"Guardar dados\",\n use_column_as_id: \"Usar esta coluna como ID\",\n do_not_import_property: \"Não importar esta propriedade\",\n import_problems_title: \"Valores que não podem ser importados: {{count}}\",\n import_problems_description: \"Estas células não podem ser convertidas para o tipo do campo a que estão associadas, por isso ficarão vazias. Volte atrás para associar a coluna a um campo de texto, ou corrija o ficheiro e carregue-o novamente.\",\n import_problems_column: \"{{column}} → {{property}} ({{type}}): {{count}} não importados\",\n import_problems_example: \"Linha {{row}}: “{{value}}”, {{reason}}\",\n import_problems_more: \"…e mais {{count}}\",\n import_problem_not_a_number: \"não é um número\",\n import_problem_number_leading_zero: \"como número perderia o zero à esquerda\",\n import_problem_number_too_precise: \"tem mais dígitos do que um número guarda com exatidão\",\n import_problem_not_a_boolean: \"nem sim nem não\",\n import_problem_not_a_date: \"não é uma data\",\n import_problem_ambiguous_date: \"pode ser dia/mês ou mês/dia\",\n import_problem_not_a_vector: \"não é uma lista de números\",\n import_problem_not_a_map: \"não é um mapa (esperava-se o JSON de um objeto)\",\n import_problem_not_a_geopoint: \"não é um geoponto (esperava-se {\\\"latitude\\\": …, \\\"longitude\\\": …})\",\n entities_will_be_overwritten: \"Entidades com o mesmo id serão substituídas\",\n data_imported_successfully: \"Dados importados com sucesso\",\n export: \"Exportar\",\n export_data: \"Exportar dados\",\n download_table_csv: \"Descarregar o conteúdo desta tabela como CSV\",\n csv: \"CSV\",\n json: \"JSON\",\n dates_as_timestamps: \"Datas como timestamps\",\n dates_as_strings: \"Datas como strings\",\n flatten_arrays: \"Achatar listas\",\n download: \"Descarregar\",\n large_number_of_documents: \"Esta coleção tem um grande número de documentos ({{count}}).\",\n too_many_documents_to_export: \"Esta coleção tem mais documentos ({{count}}) do que o navegador consegue exportar num único ficheiro (limite {{limit}}). Filtre-a antes de exportar.\",\n include_undefined_values: \"Incluir valores indefinidos\",\n submit: \"Submeter\",\n\n no_filterable_properties: \"Não há propriedades filtráveis disponíveis\",\n apply_filters: \"Aplicar filtros\",\n\n // ─── Filter Presets ──────────────────────────────────────────\n filter_presets: \"Predefinições\",\n filter_preset_apply: \"Aplicar predefinição\",\n filter_preset_active: \"Ativo: {{label}}\",\n\n list: \"Lista\",\n table_view_mode: \"Tabela\",\n cards: \"Cartões\",\n board: \"Quadro\",\n initialize_kanban_order_desc: \"Isto atribuirá valores de ordem sequenciais a todos os itens que não tenham um. Os itens manterão a sua ordem atual dentro de cada coluna.\",\n kanban_view_not_available: \"A vista Kanban não está disponível\",\n kanban_view_requires_enum: \"A vista Kanban requer uma propriedade de string com valores enum para agrupar entidades em colunas. Adicione uma propriedade enum ao esquema da sua coleção para usar esta vista.\",\n no_enum_values_configured: \"Nenhum valor enum configurado para a propriedade \\\"{{property}}\\\"\",\n items_need_backfill: \"Alguns itens não têm valores de ordem. Inicialize para ativar a reordenação por arrastar e soltar.\",\n kanban_order_not_configured: \"A ordenação por arrastar e soltar não está configurada. Defina uma propriedade de ordem nas configurações da coleção para manter as posições dos cartões.\",\n initialize: \"Inicializar\",\n confirm_multiple_delete: \"Confirmar eliminação múltipla?\",\n delete_entity_confirm_title: \"Deseja eliminar este/a {{entityName}}?\",\n add_existing: \"Adicionar existente\",\n unlink_entity_confirm_title: \"Remover este/a {{entityName}} deste registo?\",\n unlink_entity_confirm_body: \"Continua em {{collectionName}} e disponível para outros registos.\",\n confirm_multiple_unlink: \"remover estes deste registo?\",\n remove_from_record: \"Remover deste registo\",\n removed_from_record: \"Removido deste registo\",\n no_filter: \"Sem filtro\",\n is_true: \"é verdadeiro\",\n is_false: \"é falso\",\n error_uploading_file_size: \"Erro ao carregar o ficheiro: excede {{maxSize}} bytes\",\n error_uploading_file_type: \"Erro ao carregar o ficheiro: tipo de ficheiro não suportado\",\n drag_drop_files: \"Arraste ficheiros para aqui, ou clique para os editar\",\n drag_drop_file: \"Arraste um ficheiro para aqui, ou clique para o editar\",\n multiple_deleted: \"Exclusão múltipla\",\n some_entities_deleted: \"Algumas entidades foram excluídas, mas não todas\",\n error_deleting_entities: \"Erro ao excluir entidades\",\n delete_rows_failed: \"{{failed}} de {{total}} não eliminados. {{reason}}\",\n deleted: \"excluído(a)\",\n selection_options: \"Opções de seleção\",\n selection_menu_all_loaded: \"Tudo nesta página\",\n selection_menu_all_matching: \"Todos os {{total}} {{collection}}\",\n selection_menu_none: \"Nenhum\",\n selection_select_all_loaded: \"Selecionar as linhas carregadas\",\n selection_deselect_all: \"Desmarcar tudo\",\n selection_reading_rows: \"A ler linhas… {{loaded}} de {{total}}\",\n selection_reading_rows_unknown: \"A ler linhas… {{loaded}} até agora\",\n selection_deleting_progress: \"Eliminados {{completed}} de {{total}}\",\n confirm_delete_selection: \"Eliminar {{total}} {{collection}}?\",\n confirm_delete_selection_unknown: \"Eliminar todas as linhas que correspondem ao filtro atual?\",\n confirm_delete_selection_body: \"Esta ação não pode ser anulada. Cada linha é eliminada individualmente, pelo que pode demorar algum tempo.\",\n\n export_selection_count: \"Descarregar as {{total}} linhas selecionadas em {{format}}\",\n export_selection_all_matching: \"Descarregar todos os {{collection}} que correspondem ao filtro atual\",\n\n select_reference: \"Selecionar referência\",\n select_references: \"Selecionar referências\",\n account_settings: \"Definições da conta\",\n profile: \"Profile\",\n security: \"Segurança\",\n sessions: \"Sessions\",\n change_password: \"Alterar palavra-passe\",\n current_password: \"Palavra-passe atual\",\n new_password: \"Nova palavra-passe\",\n confirm_password: \"Confirmar a nova palavra-passe\",\n password_changed: \"Palavra-passe alterada. A sessão foi terminada nos seus outros dispositivos.\",\n passwords_dont_match: \"As palavras-passe não coincidem\",\n password_too_short: \"A palavra-passe deve ter pelo menos 8 caracteres\",\n password_change_not_available: \"A alteração da palavra-passe não está disponível para contas que usam fornecedores de início de sessão externos.\",\n changing_password: \"A alterar...\",\n display_name: \"Nome a apresentar\",\n photo_url: \"URL da fotografia\",\n save_profile: \"Guardar perfil\",\n saving: \"Saving...\",\n no_active_sessions: \"Não foram encontradas sessões ativas.\",\n revoking: \"Revoking...\",\n revoke_all_sessions: \"Revogar todas as sessões\",\n unknown_device: \"Dispositivo desconhecido\",\n unknown_address: \"Desconhecido\",\n session_details: \"IP: {{ip}} • Criada: {{created}}\",\n revoke_session: \"Revogar sessão\",\n current: \"Current\",\n role_id: \"ID da função\",\n role_name: \"Nome da função\",\n add_reference: \"Adicionar referência\",\n add_reference_to: \"Adicionar referência a {{name}}\",\n\n /** RolesView — table & permissions */\n role_deleted_successfully: \"Função eliminada com sucesso\",\n error_deleting_role: \"Erro ao eliminar a função\",\n collection_permissions: \"Permissões da coleção\",\n collection: \"Collection\",\n no_collections_configured: \"Nenhuma coleção configurada\",\n no_security_rules_defined: \"Não há regras de segurança definidas — todas as operações estão sem restrições\",\n no_rules: \"sem regras\",\n\n /** UsersView — snackbar */\n bootstrap_admin_success: \"Já é administrador! A atualizar...\",\n failed_to_bootstrap_admin: \"Não foi possível criar o administrador inicial\",\n user_deleted_successfully: \"Utilizador eliminado com sucesso\",\n error_deleting_user: \"Erro ao eliminar o utilizador\",\n user_created_successfully: \"Utilizador criado com sucesso\",\n invitation_sent: \"Foi enviado um email de convite para {{email}}. A ligação permite definir a palavra-passe.\",\n invitation_sent_title: \"Convite enviado\",\n temporary_password: \"Palavra-passe temporária\",\n temporary_password_description: \"O email não está configurado. Partilhe esta palavra-passe temporária com o utilizador de forma segura. Não será mostrada novamente.\",\n temporary_password_email_failed_description: \"Não foi possível entregar o email. Partilhe esta palavra-passe temporária com o utilizador de forma segura. Não será mostrada novamente.\",\n copy_password: \"Copiar palavra-passe\",\n password_copied: \"Palavra-passe copiada para a área de transferência\",\n\n /** UsersView — pagination & search */\n search_users: \"Procurar utilizadores\",\n created: \"Criado\",\n actions: \"Ações\",\n no_users_found: \"Nenhum utilizador encontrado\",\n reset_password: \"Repor palavra-passe\",\n reset_password_success: \"Palavra-passe reposta com sucesso\",\n reset_password_confirmation: \"Tem a certeza de que pretende repor a palavra-passe deste utilizador?\",\n reset_password_send_email: \"Enviar um email de reposição da palavra-passe\",\n reset_password_set_manually: \"Definir uma palavra-passe manualmente\",\n reset_password_set_manually_description: \"A palavra-passe é atualizada de imediato e não é enviado qualquer email. Partilhe-a com o utilizador de forma segura.\",\n\n /** Permission-denied empty states */\n no_permission_to_view_users: \"Não tem permissão para ver os utilizadores\",\n no_permission_to_view_roles: \"Não tem permissão para ver as funções\",\n no_permission_description: \"Contacte um administrador se precisar de acesso a esta secção.\",\n error_resetting_password: \"Erro ao repor a palavra-passe\",\n\n /** Editor table-bubble */\n add_row_before: \"Inserir linha antes\",\n add_row_after: \"Inserir linha depois\",\n delete_row: \"Eliminar linha\",\n add_column_before: \"Inserir coluna antes\",\n add_column_after: \"Inserir coluna depois\",\n delete_column: \"Eliminar coluna\",\n delete_table: \"Eliminar tabela\",\n\n /** Editor image-bubble */\n alt_text: \"Texto alternativo\",\n title: \"Title\",\n\n /** MapFieldBinding */\n a_property_of_this_map_has_error: \"Uma propriedade deste mapa contém um erro\",\n\n /** AI Collection Generator Popover */\n generate_collection_with_ai: \"Gerar Coleção com IA\",\n modify_collection_with_ai: \"Modificar Coleção com IA\",\n describe_collection_to_create: \"Descreva a coleção que quer criar.\",\n describe_changes_to_make: \"Descreva as alterações que quer fazer a esta coleção.\",\n ai_placeholder_create: \"ex.: Criar uma coleção de produtos com nome, preço, descrição e categoria...\",\n ai_placeholder_modify: \"ex.: Adicionar um campo de imagem miniatura com armazenamento, tornar o preço obrigatório...\",\n ai_assist: \"Assistente IA\",\n generating: \"A gerar...\",\n\n /** Recently extracted strings for collection editor */\n this_is_subcollection_of: \"Esta é uma subcoleção de\",\n use_existing_paths_database: \"Use um dos caminhos existentes na sua base de dados:\",\n describe_collection_ai: \"Descreva a sua coleção à IA:\",\n generate_with_ai: \"Gerar com IA\",\n create_from_json_config: \"Criar a partir de configuração JSON:\",\n paste_json_config: \"Colar Configuração JSON\",\n create_collection_from_file_formats: \"Criar uma coleção a partir de um ficheiro (csv, json, xls, xslx...)\",\n select_template: \"Selecionar um modelo:\",\n products: \"Produtos\",\n collection_products_subtitle: \"Uma coleção de produtos com imagens, preços e stock\",\n collection_users_subtitle: \"Uma coleção de utilizadores com emails, nomes e funções\",\n blog_posts: \"Publicações de blog\",\n collection_blog_posts_subtitle: \"Uma coleção de publicações de blog com imagens, autores e conteúdo complexo\",\n pages: \"Páginas\",\n collection_pages_subtitle: \"Uma coleção de páginas com imagens, autores e conteúdo complexo\",\n continue_from_scratch: \"Continuar do zero\",\n\n /** Admin views config */\n admin_users: \"Utilizadores do painel de administração\",\n roles_menu: \"Funções\",\n project_settings: \"Definições do projeto\",\n\n by_signing_in_you_agree_to_our: \"Ao iniciar sessão, concorda com os nossos\",\n terms_and_conditions: \"Termos e Condições\",\n and_our: \"e a nossa\",\n privacy_policy: \"Política de privacidade\",\n email_password: \"Email/palavra-passe\",\n sign_in_with_google: \"Iniciar sessão com Google\",\n\n // --- Auth error messages ---\n auth_user_not_found: \"Utilizador não encontrado\",\n auth_wrong_password: \"Palavra-passe incorreta. Por favor tente novamente.\",\n auth_user_disabled: \"Utilizador desativado. Por favor contacte o suporte.\",\n auth_account_exists_with_different_credential: \"Já existe uma conta com este email. Inicie sessão como fez da última vez.\",\n auth_account_exists_sign_in_with_password: \"Já existe uma conta com este email. Inicie sessão com o seu email e palavra-passe.\",\n auth_email_already_in_use: \"O email já está em uso\",\n auth_google_permissions_required: \"Precisa de conceder permissões adicionais para gerir os seus projetos Google Cloud\",\n auth_invalid_email_password: \"Por favor introduza o email e a palavra-passe\",\n auth_enter_email_first: \"Por favor introduza primeiro o seu email\",\n auth_password_reset_sent: \"Email de redefinição de palavra-passe enviado\",\n auth_sign_in_account: \"Iniciar sessão na sua conta\",\n auth_create_new_account: \"Criar uma nova conta\",\n auth_password: \"Palavra-passe\",\n auth_reset_password: \"Redefinir palavra-passe\",\n auth_new_user: \"Novo utilizador?\",\n auth_have_account: \"Já tem uma conta?\",\n auth_sign_in: \"Iniciar Sessão\",\n auth_sign_up: \"Registar\",\n auth_new_password_title: \"Definir uma nova palavra-passe\",\n auth_new_password_subtitle: \"Escolha a palavra-passe com que vai iniciar sessão a partir de agora.\",\n auth_password_requirements: \"A palavra-passe deve ter pelo menos 8 caracteres, com maiúsculas, minúsculas e um número\",\n auth_set_password: \"Definir palavra-passe\",\n auth_password_changed_title: \"Palavra-passe alterada\",\n auth_password_changed_body: \"Inicie sessão com a sua nova palavra-passe.\",\n auth_continue_to_sign_in: \"Continuar para iniciar sessão\",\n auth_link_invalid_or_expired: \"Esta ligação é inválida ou expirou. Peça uma nova no ecrã de início de sessão.\",\n auth_password_reset_unavailable: \"A reposição da palavra-passe não está disponível neste backend.\",\n auth_verifying_email: \"A confirmar o seu endereço de email…\",\n auth_email_verified_title: \"Email confirmado\",\n auth_email_verified_body: \"O seu endereço de email está confirmado. Já pode iniciar sessão.\",\n auth_email_verification_failed_title: \"Email não confirmado\",\n auth_email_verification_unavailable: \"A verificação de email não está disponível neste backend.\",\n auth_verify_email_proof_title: \"Confirme que a conta é sua\",\n auth_verify_email_proof_body: \"Esta conta tem uma palavra-passe. Introduza-a para a manter e iniciar sessão. Se nunca definiu uma, outra pessoa pode ter registado o seu endereço: confirme-o sem a palavra-passe e a dessa pessoa será removida.\",\n auth_verify_email_password_label: \"A palavra-passe que escolheu\",\n auth_verify_email_with_password: \"Confirmar e iniciar sessão\",\n auth_verify_email_without_password: \"Não defini uma palavra-passe\",\n auth_verify_email_wrong_password: \"Essa não é a palavra-passe desta conta.\",\n auth_email_verified_password_removed_body: \"O seu endereço de email está confirmado. Esta conta tinha uma palavra-passe definida antes de o endereço ser confirmado, por isso foi removida. Inicie sessão com um link ou defina uma nova em \\\"Esqueceu-se da palavra-passe\\\".\",\n auth_confirm_email_sent_title: \"Verifique a sua caixa de entrada\",\n auth_confirm_email_sent_body: \"Enviámos um link para o seu endereço de email. Siga-o para confirmar o endereço e depois inicie sessão.\",\n auth_email_not_confirmed: \"Confirme primeiro o seu endereço de email. Enviámos-lhe um novo link.\",\n auth_mfa_title: \"Verificação em dois passos\",\n auth_mfa_subtitle: \"Introduza o código da sua aplicação de autenticação ou um dos seus códigos de recuperação.\",\n auth_mfa_factor_label: \"Verificar com\",\n auth_mfa_factor_totp: \"Aplicação de autenticação\",\n auth_mfa_code_label: \"Código de verificação\",\n auth_mfa_verify: \"Verificar\",\n auth_mfa_code_invalid: \"Esse código não está correto. Experimente o código atual da sua aplicação de autenticação ou um código de recuperação.\",\n auth_mfa_challenge_exhausted: \"Demasiados códigos errados. Introduza um novo código da sua aplicação de autenticação para tentar novamente.\",\n auth_mfa_expired: \"Este início de sessão expirou. Inicie sessão novamente para continuar.\",\n auth_mfa_sign_in_again: \"Iniciar sessão novamente\",\n email_address: \"Endereço de email\",\n email_change_description: \"Enviamos uma ligação para o novo endereço. A sua conta passa a usá-lo quando a ligação for aberta.\",\n email_change_button: \"Alterar email\",\n email_change_pending: \"Enviámos uma ligação para {{email}}. O seu endereço de email muda quando for aberta.\",\n email_change_taken: \"Outra conta já utiliza esse endereço.\",\n email_change_undeliverable: \"Nenhum email consegue chegar a esse endereço.\",\n email_change_unchanged: \"Esse já é o seu endereço de email.\",\n email_change_needs_second_factor: \"Inicie sessão novamente com o seu segundo fator antes de alterar o seu endereço de email.\",\n auth_confirming_email_change: \"A alterar o seu endereço de email…\",\n auth_email_change_confirmed_title: \"Endereço de email alterado\",\n auth_email_change_confirmed_body: \"A sua conta passa a usar {{email}}.\",\n auth_email_change_providers_removed: \"O início de sessão com {{providers}} foi removido, porque estava associado ao seu endereço antigo.\",\n auth_email_change_failed_title: \"Endereço de email não alterado\",\n auth_email_change_continue: \"Continuar\",\n auth_email_change_unavailable: \"A alteração do endereço de email não está disponível neste backend.\",\n auth_signing_in_with_link: \"A iniciar a sua sessão…\",\n auth_magic_link_failed_title: \"Ligação de início de sessão não aceite\",\n auth_magic_link_unavailable: \"As ligações de início de sessão não estão disponíveis neste backend.\",\n reset_mfa_title: \"Repor a verificação em dois passos\",\n reset_mfa_description: \"Remove as aplicações de autenticação e os códigos de recuperação deste utilizador e termina todas as suas sessões. Passa a iniciar sessão só com a palavra-passe e pode voltar a configurar a verificação em dois passos.\",\n reset_mfa_confirm: \"Repor\",\n reset_mfa_success: \"Verificação em dois passos reposta\",\n account_access_title: \"Acesso à conta\",\n account_access_action: \"Desativar ou ativar a conta\",\n account_disabled_label: \"Conta desativada\",\n account_disabled_description: \"Uma conta desativada não consegue iniciar sessão, e todas as suas sessões e tokens deixam de funcionar de imediato. Os seus dados mantêm-se; volte a ativá-la para repor o acesso.\",\n account_disabled_success: \"Conta desativada\",\n account_enabled_success: \"Conta ativada\",\n\n\n auto_setup_collections_button: \"Configurar coleções automaticamente\",\n auto_setup_collections_title: \"Configurar coleções automaticamente?\",\n auto_setup_collections_desc: \"Isto criará automaticamente configurações de coleção para coleções que <b>NÃO</b> estão já mapeadas\",\n this_can_take_a_minute: \"Isto pode demorar um ou dois minutos\",\n no_collections_found_to_setup: \"Nenhuma coleção encontrada para configurar.\",\n collections_have_been_setup: \"As coleções foram configuradas automaticamente.\",\n error_setting_up_collections: \"Erro ao configurar coleções automaticamente\",\n\n // --- Home Suggestions ---\n\n admin_panel_ready_bring_data: \"O seu painel de administração está pronto. Vamos importar os seus dados.\",\n admin_panel_ready_get_started: \"O seu painel de administração está pronto. Veja como começar.\",\n auto_detect_collections: \"Detetar coleções automaticamente\",\n auto_detect_collections_desc: \"Deixe a IA analisar a sua base de dados e gerar automaticamente esquemas de coleção.\",\n create_a_collection: \"Criar uma coleção\",\n create_collection_desc: \"Defina manualmente a sua primeira coleção do zero usando o editor visual.\",\n read_the_docs: \"Ler a documentação\",\n read_the_docs_desc: \"Saiba como personalizar campos, vistas, ações e muito mais.\",\n explore_docs: \"Explorar documentação\",\n want_to_customize_with_code: \"Quer personalizar com código? Execute\",\n to_scaffold_a_local_project: \"para criar um projeto local.\",\n\n // ─── Collection Editor — Validation ──────────────────────────\n validation: \"Validação\",\n unique: \"Único\",\n required_message: \"Mensagem de campo obrigatório\",\n required_tooltip: \"Você não poderá salvar esta entidade se este valor não estiver definido\",\n unique_tooltip: \"Não pode haver múltiplas entidades com o mesmo valor\",\n lowercase: \"Minúsculas\",\n uppercase: \"Maiúsculas\",\n trim: \"Remover espaços\",\n exact_length: \"Comprimento exato\",\n min_length: \"Comprimento mín.\",\n max_length: \"Comprimento máx.\",\n varchar_narrowing_warning: \"Ao salvar, esta coluna {{columnType}} é reduzida para {{max}} caracteres. rebase db push pergunta antes de reduzir uma coluna, e a alteração falha enquanto houver um valor armazenado mais longo.\",\n matches_regex: \"Corresponde a regex\",\n not_valid_regexp: \"Expressão regular inválida\",\n regex_helper: \"ex. /^\\\\d+$/ apenas para dígitos\",\n min_value: \"Valor mín.\",\n max_value: \"Valor máx.\",\n less_than: \"Menor que\",\n more_than: \"Maior que\",\n positive_value: \"Valor positivo\",\n negative_value: \"Valor negativo\",\n integer_value: \"Valor inteiro\",\n\n // ─── Collection Editor — Property Edit ───────────────────────\n invalid_regular_expression: \"Expressão regular inválida\",\n must_specify_target_collection: \"Você deve especificar uma coleção de destino para o campo\",\n need_specify_repeat_field: \"Você precisa especificar um campo de repetição\",\n need_specify_block_properties: \"Você precisa especificar as propriedades deste bloco\",\n incomplete_condition: \"Condição incompleta - por favor selecione um campo\",\n field_name: \"Nome do campo\",\n\n // ─── Collection Editor — Display & Config ────────────────────\n kanban_column_property: \"Propriedade de coluna Kanban\",\n select_a_property: \"Selecionar uma propriedade\",\n kanban_property_not_found: \"A propriedade \\\"{{property}}\\\" não existe ou não é uma propriedade string com enum. Selecione uma propriedade válida ou limpe a seleção.\",\n no_enum_string_properties: \"Nenhuma propriedade string com enum encontrada. Adicione uma propriedade string com enumValues para usar a visualização Kanban.\",\n kanban_column_description: \"Selecione uma propriedade string com valores enum para agrupar entidades em colunas\",\n create_property: \"+ Criar propriedade \\\"{{property}}\\\"\",\n order_property: \"Propriedade de ordem\",\n order_property_not_found: \"A propriedade \\\"{{property}}\\\" não existe ou não é uma propriedade numérica. Selecione uma propriedade válida ou limpe a seleção.\",\n no_number_properties: \"Nenhuma propriedade numérica encontrada. Adicione uma propriedade numérica para habilitar a ordenação.\",\n order_property_description: \"Selecione uma propriedade numérica para manter a ordem dos itens\",\n display_settings: \"Configurações de exibição\",\n default_row_size: \"Tamanho de linha padrão\",\n side_dialog_width: \"Largura do diálogo lateral\",\n side_dialog_width_description: \"Defina opcionalmente a largura (em pixels) do diálogo lateral de entidades. O padrão é 768px\",\n inline_editing_enabled: \"Os dados podem ser editados diretamente na visualização de tabela\",\n inline_editing_disabled: \"Os dados só podem ser editados na visualização de formulário\",\n inline_editing_description: \"Permitir edição de dados diretamente na visualização de tabela, sem abrir a visualização de formulário.\",\n include_json_view: \"Incluir visualização JSON\",\n no_json_view: \"Não incluir visualização JSON\",\n json_view_description: \"Incluir a representação JSON do documento.\",\n not_found_suffix: \"não encontrado\",\n\n // ─── Editor ─────────────────────────────────────────────────\n editor_text: \"Texto\",\n editor_text_description: \"Comece simplesmente a escrever em texto simples.\",\n editor_heading_1: \"Título 1\",\n editor_heading_1_description: \"Título de secção grande.\",\n editor_heading_2: \"Título 2\",\n editor_heading_2_description: \"Título de secção médio.\",\n editor_heading_3: \"Título 3\",\n editor_heading_3_description: \"Título de secção pequeno.\",\n editor_todo_list: \"Lista de Tarefas\",\n editor_todo_list_description: \"Acompanhe tarefas com uma lista de afazeres.\",\n editor_bullet_list: \"Lista com Marcadores\",\n editor_bullet_list_description: \"Crie uma lista simples com marcadores.\",\n editor_numbered_list: \"Lista Numerada\",\n editor_numbered_list_description: \"Crie uma lista com numeração.\",\n editor_quote: \"Citação\",\n editor_quote_description: \"Capture uma citação.\",\n editor_code: \"Código\",\n editor_code_description: \"Capture um snippet de código.\",\n editor_image: \"Imagem\",\n editor_image_description: \"Carregue uma imagem do seu computador.\",\n editor_multiple: \"Múltiplos\",\n editor_link: \"Ligação\",\n editor_save: \"Guardar\",\n editor_cancel: \"Cancelar\",\n editor_remove_link: \"Remover ligação\",\n editor_paste_or_type_link: \"Cole ou escreva a ligação\",\n editor_invalid_url: \"Isso não é uma ligação — tente um endereço completo como example.com\",\n editor_open_in_new_window: \"Abrir numa nova janela\",\n editor_bold: \"Negrito\",\n editor_italic: \"Itálico\",\n editor_underline: \"Sublinhado\",\n editor_strikethrough: \"Riscado\",\n editor_autocomplete: \"Preenchimento automático\",\n editor_autocomplete_description: \"Adicione texto com base no contexto.\",\n\n // ─── Text Search Dialog ─────────────────────────────────────\n text_search_dialog_title: \"Ativar pesquisa de texto\",\n text_search_local_not_recommended: \"A pesquisa de texto local não é recomendada para coleções grandes.\",\n text_search_local_fetch_warning: \"Note que ativar a pesquisa de texto local requer descarregar todos os documentos da sua coleção e armazená-los no navegador. Isto pode ser ineficiente para coleções grandes e gerar custos adicionais.\",\n text_search_external_suggestion: \"Para coleções maiores, recomendamos usar um motor de pesquisa externo como Algolia ou Elastic Search e atribuir um delegado de pesquisa à sua configuração.\",\n text_search_local_description: \"A pesquisa de texto local é a forma mais simples de ativar a pesquisa de texto na sua coleção. Carrega todos os documentos da coleção no navegador e efetua a pesquisa localmente. É a opção recomendada para coleções pequenas.\",\n text_search_own_implementation: \"Implementou o seu próprio controlador de pesquisa de texto. Pode ativar a pesquisa de texto para a sua coleção.\",\n text_search_enable_for_collection: \"Ativar para esta coleção\",\n text_search_enable_for_project: \"Ativar para o projeto\",\n text_search_enabled_snackbar: \"Pesquisa de texto local ativada\",\n\n settings_heading: \"Definições\",\n settings_project_name: \"Nome do projeto\",\n settings_default_language: \"Idioma predefinido\",\n settings_default_language_caption: \"Selecione o idioma base para este projeto. Os utilizadores podem alterar esta preferência nas suas definições pessoais.\",\n settings_enable_local_text_search: \"Ativar pesquisa de texto local\",\n settings_local_text_search_caption: \"Ative a pesquisa de texto local para todas as coleções. Isto permitirá pesquisar campos de texto nas suas coleções usando a barra de pesquisa do Rebase. Note que esta funcionalidade pode resultar num maior número de leituras, pois todos os campos de texto das suas coleções serão indexados.\",\n settings_doc_history_all_collections: \"Histórico de documentos ativado para todas as coleções\",\n settings_doc_history_caption: \"Quando ativado, todas as coleções terão o histórico ativado por predefinição. Pode alterar esta definição em cada coleção. O histórico será guardado na subcoleção __history de cada documento.\",\n settings_theme: \"Tema\",\n settings_primary_color: \"Cor primária\",\n settings_secondary_color: \"Cor secundária\",\n settings_sample_theme_components: \"Exemplos de componentes do tema\",\n settings_drag_drop_logo: \"Arraste e solte o seu logótipo aqui\",\n settings_security_rules: \"Regras de segurança\",\n settings_security_rules_description: \"O Rebase utiliza as regras de segurança do Firebase para restringir o acesso aos dados. Ao criar um novo utilizador através do Rebase, o atributo personalizado rebaseUser é adicionado ao utilizador no projeto cliente. Ao adicionar as seguintes regras de segurança ao seu projeto, garante que os utilizadores do Rebase possam aceder aos dados através do Rebase.\",\n settings_security_rules_add_domain: \"Lembre-se de adicionar o domínio {{domain}} aos domínios permitidos do seu fornecedor\",\n settings_security_rules_caption: \"Estas regras restringem o acesso aos dados apenas aos utilizadores do Rebase, mas não aplicam as permissões ao nível da base de dados. As permissões são aplicadas no frontend, o que funciona bem para a maioria dos projetos. Se precisar de aplicar as permissões ao nível da base de dados, pode modificar estas regras de segurança. As funções atribuídas a um utilizador são definidas como atributos personalizados no token de autenticação do Firebase, pelo que pode utilizá-las nas suas regras de segurança.\",\n\n // ─── Studio: SQL Editor ─────────────────────────────────────\n studio_sql_executing_query: \"A EXECUTAR A CONSULTA...\",\n studio_sql_query_error: \"Erro na consulta\",\n studio_sql_run_query_placeholder: \"Execute uma consulta para ver os resultados\",\n studio_sql_visual_execution_plan: \"Plano de execução visual\",\n studio_sql_success: \"SUCCESS\",\n studio_sql_no_results: \"A consulta foi executada com sucesso mas não devolveu resultados.\",\n studio_sql_rows: \"Rows:\",\n studio_sql_time: \"Time:\",\n studio_sql_copy_markdown: \"Copiar como Markdown\",\n studio_sql_export_json: \"Exportar JSON\",\n studio_sql_export_json_typed: \"Exportar JSON tipado\",\n studio_sql_export_csv: \"Exportar CSV\",\n studio_sql_format_sql: \"Formatar SQL\",\n studio_sql_explain: \"Explain\",\n studio_sql_limit_1000: \"Limit 1000\",\n studio_sql_remove_from_favorites: \"Remover dos favoritos\",\n studio_sql_add_to_favorites: \"Adicionar aos favoritos\",\n studio_sql_save: \"Save\",\n studio_sql_run: \"Run\",\n studio_sql_cancel_run: \"Cancelar execução\",\n studio_sql_run_cancelled: \"Execução cancelada.\",\n studio_sql_database: \"Database\",\n studio_sql_role: \"Role\",\n studio_sql_admin: \"(Admin)\",\n studio_sql_select_db: \"Escolher base de dados\",\n studio_sql_query_results: \"Resultados da consulta\",\n studio_sql_save_snippet: \"Guardar excerto SQL\",\n studio_sql_snippet_name: \"Nome do excerto\",\n studio_sql_snippet_name_placeholder: \"p. ex., Obter todos os utilizadores\",\n studio_sql_snippet_saved_local: \"Será guardado no seu armazenamento local.\",\n studio_sql_cancel: \"Cancel\",\n studio_sql_dangerous_operation: \"Operação perigosa detetada\",\n studio_sql_dangerous_operation_body: \"A consulta que está prestes a executar contém operações potencialmente destrutivas (DELETE, DROP, TRUNCATE ou UPDATE sem WHERE). Tem a certeza de que pretende continuar?\",\n studio_sql_snippet_saved: \"Excerto «{{name}}» guardado.\",\n studio_sql_markdown_copied: \"Resultados copiados como Markdown!\",\n studio_sql_markdown_copy_failed: \"Não foi possível copiar o Markdown para a área de transferência.\",\n studio_sql_row_updated: \"Linha atualizada com sucesso.\",\n studio_sql_cannot_edit_missing_query: \"Não é possível editar as linhas: falta a consulta subjacente.\",\n studio_sql_edit_unreadable_query: \"A consola não conseguiu ler esta consulta, por isso não sabe de que linha vem uma célula. As células deste resultado não podem ser editadas.\",\n studio_sql_edit_not_a_select: \"Aqui só podem ser editadas as linhas de um único SELECT.\",\n studio_sql_edit_duplicate_column: \"O resultado tem mais de uma coluna chamada \\\"{{column}}\\\". Dê a cada uma um alias próprio para a editar.\",\n studio_sql_edit_computed_column: \"\\\"{{column}}\\\" não é lida de uma coluna de tabela (é calculada, um literal ou um agregado), por isso não há onde a escrever de volta.\",\n studio_sql_edit_not_a_table: \"\\\"{{column}}\\\" vem de {{table}}, que não é uma tabela. Aqui só podem ser editadas linhas de uma tabela.\",\n studio_sql_edit_inherited_table: \"Outras tabelas herdam de {{table}}, por isso a sua chave primária pode corresponder a uma linha em cada uma delas. Edite a linha na tabela que a contém.\",\n studio_sql_edit_no_primary_key: \"{{table}} não tem chave primária, por isso uma das suas linhas não pode ser encontrada de novo para a atualizar.\",\n studio_sql_edit_key_missing: \"Para editar colunas de {{table}}, selecione a sua chave primária ({{columns}}) com um nome que nenhuma outra coluna do resultado tenha.\",\n studio_sql_edit_table_read_twice: \"A consulta lê {{table}} mais de uma vez, por isso a chave de uma linha e esta célula podem vir de linhas diferentes.\",\n studio_sql_missing_pk: \"Faltam colunas de chave primária na linha: {{columns}}. Não é possível atualizar em segurança.\",\n studio_sql_cannot_edit_other_connection: \"Estas linhas foram lidas de outra base de dados ou com outra função. Execute a consulta novamente para editá-las.\",\n studio_sql_update_failed: \"Falha ao atualizar: {{message}}\",\n studio_sql_update_no_row: \"Nenhuma linha foi atualizada: a linha foi alterada ou eliminada desde que foi lida, ou a função selecionada não a pode atualizar. Execute a consulta novamente para ver o que está guardado.\",\n studio_sql_ran_as_other_role: \"Estas linhas foram lidas como {{ranAs}}, não como {{role}}: a troca de função está desativada neste servidor (DISABLE_DB_ROLE_SWITCHING), por isso cada instrução é executada como o proprietário da ligação.\",\n studio_sql_result_truncated: \"A mostrar as primeiras {{shown}} de {{total}} linhas: a consola guarda no máximo 10 000 linhas, ou 32 MB de valores, de um resultado. Restrinja a consulta, ou percorra-a por páginas com LIMIT e OFFSET, para ver o resto. Copiar e exportar incluem apenas as linhas mostradas.\",\n studio_sql_download_full_csv: \"Transferir o resultado completo em CSV\",\n studio_sql_downloading_full_csv: \"A transferir…\",\n studio_sql_download_full_failed: \"Não foi possível transferir o resultado completo: {{message}}\",\n studio_sql_role_switching_disabled: \"A troca de função está desativada neste servidor: cada instrução é executada como {{role}}, seja qual for a função escolhida aqui.\",\n studio_sql_execution_not_supported: \"A fonte de dados atual não suporta a execução de SQL.\",\n studio_sql_error_executing: \"Ocorreu um erro ao executar a consulta.\",\n studio_sql_error_explaining: \"Ocorreu um erro ao explicar a consulta.\",\n studio_sql_explain_single_statement: \"O Explain funciona com uma instrução de cada vez. Selecione a instrução a explicar e tente novamente.\",\n studio_sql_save_first_to_favorite: \"Guarde o excerto antes de o marcar como favorito.\",\n studio_sql_collections_label: \"Collections:\",\n studio_sql_admin_collections_tooltip: \"Tables in this query that are mapped as admin collections\",\n studio_sql_edit_entity: \"Edit {{name}} #{{id}}\",\n studio_sql_sql_not_supported: \"Esta fonte de dados não suporta a execução de SQL\",\n studio_sql_fetch_error: \"Não foi possível obter as opções de ligação: {{message}}\",\n studio_sql_unexpected_format: \"Formato de dados inesperado: {{type}}\",\n studio_sql_no_tables: \"Não foram encontradas tabelas nesta base de dados.\",\n studio_sql_schema_fetch_error: \"Não foi possível obter o esquema: {{message}}\",\n\n // ─── Studio: SQL Editor Sidebar ──────────────────────────────\n studio_sql_sidebar_snippets: \"Snippets\",\n studio_sql_sidebar_history: \"History\",\n studio_sql_sidebar_schema: \"Schema\",\n studio_sql_sidebar_no_snippets: \"Não há excertos guardados\",\n studio_sql_sidebar_save_snippet_hint: \"Guarde uma consulta para lhe aceder aqui.\",\n studio_sql_sidebar_no_history: \"Sem histórico\",\n studio_sql_sidebar_history_hint: \"As consultas executadas aparecerão aqui.\",\n studio_sql_sidebar_delete_snippet: \"Eliminar excerto\",\n studio_sql_close_tab: \"Fechar este separador de consulta\",\n studio_sql_new_tab: \"Novo separador de consulta\",\n\n // ─── Studio: Schema Browser ──────────────────────────────────\n studio_schema_tables: \"Tables\",\n studio_schema_loading: \"A carregar o esquema...\",\n studio_schema_no_tables: \"Nenhuma tabela encontrada\",\n studio_schema_retry: \"Retry\",\n studio_schema_primary_key: \"Chave primária\",\n studio_schema_select_all: \"SELECT * FROM\",\n studio_schema_insert_into: \"INSERT INTO\",\n studio_schema_update: \"UPDATE\",\n studio_schema_delete_from: \"DELETE FROM\",\n studio_schema_columns: \"{{count}} colunas\",\n\n // ─── Studio: RLS Editor ──────────────────────────────────────\n studio_rls_title: \"Segurança ao nível da linha\",\n studio_rls_description: \"Gerir as políticas RLS das suas tabelas\",\n studio_rls_enabled: \"RLS ativada\",\n studio_rls_disabled: \"RLS desativada\",\n studio_rls_no_rls: \"Sem RLS\",\n studio_rls_enable_rls: \"Ativar RLS\",\n studio_rls_disable_rls: \"Desativar RLS\",\n studio_rls_create_policy: \"Criar política\",\n studio_rls_policies: \"Policies\",\n studio_rls_no_policies: \"Não há políticas definidas\",\n studio_rls_no_policies_desc: \"Esta tabela não tem políticas RLS. O acesso a todas as linhas depende do estado da RLS.\",\n studio_rls_add_first_policy: \"Adicionar a sua primeira política\",\n studio_rls_force_rls: \"Forçar RLS\",\n studio_rls_force_rls_desc: \"Quando ativado, as políticas RLS aplicam-se também ao proprietário da tabela.\",\n studio_rls_enable_force_rls: \"Ativar RLS forçada\",\n studio_rls_disable_force_rls: \"Desativar RLS forçada\",\n studio_rls_edit: \"Edit\",\n studio_rls_edit_generated: \"{{policy}} é gerada pelo Rebase para todas as coleções, por isso não há nenhuma regra sua para editar. Adicione antes uma política sua.\",\n studio_rls_edit_not_declared: \"{{policy}} existe apenas na base de dados, por isso não há nenhuma regra no seu código para editar. Importe-a primeiro para o código.\",\n studio_rls_edit_several_operations: \"{{policy}} é uma das políticas em que uma única regra é compilada, uma por operação. Edite essa regra no ficheiro de origem da coleção.\",\n studio_rls_delete: \"Delete\",\n studio_rls_confirm_delete_title: \"Eliminar política\",\n studio_rls_confirm_delete_body: \"Tem a certeza de que pretende eliminar esta política? Esta ação não pode ser anulada.\",\n studio_rls_confirm_enable_title: \"Ativar a segurança ao nível da linha\",\n studio_rls_confirm_enable_body: \"Ao ativar a RLS, o acesso às linhas desta tabela passa a ser limitado pelas suas políticas. Certifique-se de que tem políticas adequadas.\",\n studio_rls_confirm_disable_title: \"Desativar a segurança ao nível da linha\",\n studio_rls_confirm_disable_body: \"Ao desativar a RLS, todas as linhas ficarão acessíveis a todas as funções. Tem a certeza de que pretende continuar?\",\n studio_rls_select_table: \"Selecione uma tabela\",\n studio_rls_no_tables: \"Não há tabelas disponíveis\",\n studio_rls_error: \"Erro ao carregar as políticas\",\n studio_rls_retry: \"Retry\",\n studio_rls_loading: \"A carregar as políticas...\",\n\n // ─── Studio: Policy Editor ───────────────────────────────────\n studio_policy_edit: \"Editar política\",\n studio_policy_create: \"Criar uma nova política\",\n studio_policy_defining_rules: \"A definir regras de acesso para\",\n studio_policy_cancel: \"Cancel\",\n studio_policy_save: \"Guardar política\",\n studio_policy_template: \"Começar a partir de um modelo (opcional)\",\n studio_policy_select_template: \"Selecione um modelo...\",\n studio_policy_name: \"Nome da política\",\n studio_policy_name_placeholder: \"Dê à sua política um nome descritivo\",\n studio_policy_behavior: \"Comportamento da política\",\n studio_policy_permissive: \"Permissive\",\n studio_policy_permissive_desc: \"Combinada com «OR»\",\n studio_policy_restrictive: \"Restrictive\",\n studio_policy_restrictive_desc: \"Combinada com «AND»\",\n studio_policy_command: \"Comando da política\",\n studio_policy_target_roles: \"Funções alvo\",\n studio_policy_roles_placeholder: \"Selecione funções (por omissão, public)\",\n studio_policy_using_expr: \"Expressão USING\",\n studio_policy_using_expr_desc: \"Aplica-se às linhas existentes (SELECT, UPDATE, DELETE)\",\n studio_policy_check_expr: \"Expressão WITH CHECK\",\n studio_policy_check_expr_desc: \"Aplica-se às linhas novas ou modificadas (INSERT, UPDATE)\",\n studio_policy_help_title: \"Guia da segurança ao nível da linha (RLS)\",\n studio_policy_help_intro: \"A segurança ao nível da linha (RLS) permite restringir as linhas a que um utilizador pode aceder ou que pode modificar, consoante o seu estado de autenticação ou as suas funções.\",\n studio_policy_help_step1_title: \"1. Selecione um modelo\",\n studio_policy_help_step1_desc: \"Se está a começar com a RLS, o mais simples é escolher um modelo predefinido na lista. Configura automaticamente a política para casos comuns como «os utilizadores podem atualizar as suas próprias linhas».\",\n studio_policy_help_step2_title: \"2. Funções alvo\",\n studio_policy_help_step2_desc: \"Escolha os papéis da base de dados a que a política se aplica. Cada pedido à API corre com o mesmo papel, com sessão iniciada ou não, por isso quem é o chamador vai na expressão USING:\",\n studio_policy_help_role_public: \"Todos os papéis, ou seja, todos os pedidos. É o que os modelos e as políticas do próprio Rebase visam.\",\n studio_policy_help_role_rebase_user: \"O papel com que correm os pedidos à API. Só difere de public em ligações feitas diretamente com outro papel.\",\n studio_policy_help_roles_not_users: \"Utilizadores com sessão iniciada, visitantes anónimos e administradores não são papéis da base de dados aqui. Escolha public e verifique rebase.uid() ou rebase.roles() na expressão, como fazem os modelos.\",\n studio_policy_help_step3_title: \"3. Expressão USING\",\n studio_policy_help_step3_desc: \"Uma condição SQL que tem de ser verdadeira para que as linhas existentes sejam visíveis ou atualizáveis (SELECT, UPDATE, DELETE).\",\n studio_policy_help_step3_example: \"Garante que os utilizadores só veem as linhas de que são proprietários.\",\n studio_policy_help_step4_title: \"4. Expressão WITH CHECK\",\n studio_policy_help_step4_desc: \"Uma condição SQL que tem de ser verdadeira para que as linhas novas ou modificadas sejam guardadas (INSERT, UPDATE).\",\n studio_policy_help_step4_example: \"Normalmente é igual à expressão USING quando os utilizadores só podem inserir ou editar os seus próprios dados.\",\n studio_policy_help_example: \"Exemplo:\",\n studio_policy_help_auth_vars_title: \"Variáveis de autenticação do Rebase\",\n studio_policy_help_auth_vars_desc: \"O Rebase fornece funções nativas que pode usar nas suas expressões:\",\n studio_policy_help_auth_uid: \"Devolve o ID do utilizador atual como texto. Exemplo:\",\n studio_policy_help_auth_jwt: \"Devolve todo o payload do JWT como JSONB, para que possa verificar claims personalizadas. Exemplo:\",\n studio_policy_help_auth_roles: \"Devolve os IDs das funções do utilizador como uma cadeia separada por vírgulas. Utilize preferencialmente com:\",\n studio_policy_help_docs_cta: \"Para saber mais sobre as políticas do Postgres, consulte a documentação oficial.\",\n studio_policy_help_read_docs: \"Ler a documentação\",\n studio_policy_help_got_it: \"Percebi!\",\n\n // ─── Studio: UI Actions ──────────────────────────────────────\n studio_add_kanban_column: \"Adicionar coluna\",\n studio_add_kanban_column_title: \"Adicionar coluna ao Kanban\",\n studio_add_kanban_column_name: \"Nome da coluna\",\n studio_add_kanban_column_name_placeholder: \"Nome da nova coluna\",\n studio_add_kanban_column_add: \"Add\",\n studio_add_kanban_column_cancel: \"Cancel\",\n studio_collection_view_sql: \"Editor SQL\",\n studio_collection_view_admin: \"Vista de administração\",\n studio_editor_collection_tooltip: \"Editar o esquema da coleção\",\n studio_editor_collection_no_permission: \"Não tem permissão para editar esta coleção\",\n studio_editor_collection_start_tooltip: \"Copiar o caminho ou editar o esquema\",\n studio_editor_collection_start_no_permission: \"Não tem permissão para modificar esta coleção\",\n studio_editor_collection_start_copied: \"Copied!\",\n studio_editor_entity_tooltip: \"Editar o esquema da entidade\",\n studio_editor_entity_no_permission: \"Não tem permissão para editar esta entidade\",\n studio_home_edit_collection: \"Editar coleção\",\n studio_home_delete_collection: \"Eliminar coleção\",\n studio_home_confirm_delete_title: \"Eliminar a coleção?\",\n studio_home_confirm_delete_body: \"Tem a certeza de que pretende eliminar a coleção «{{name}}»? Esta ação não pode ser anulada.\",\n studio_kanban_setup: \"Configuração do Kanban\",\n studio_missing_reference: \"Referência em falta: {{path}}\",\n studio_missing_reference_create: \"Create\",\n studio_new_collection: \"Nova coleção\",\n studio_new_collection_card: \"Nova coleção\",\n studio_new_collection_no_permission: \"Não tem permissões para criar coleções\",\n studio_property_add_column: \"Adicionar uma nova propriedade\",\n studio_property_add_column_no_permission: \"Não tem permissão para adicionar novas propriedades\",\n studio_add_kanban_column_desc: \"Adiciona uma nova opção à propriedade «{{property}}». Será criada uma nova coluna no quadro Kanban.\",\n studio_add_kanban_column_adding: \"Adding...\",\n studio_add_kanban_column_exists: \"Já existe uma coluna \\\"{{label}}\\\" no quadro.\",\n studio_add_kanban_column_not_enum: \"\\\"{{property}}\\\" não é uma propriedade com opções, por isso não é possível adicionar uma coluna.\",\n studio_collection_view_edit: \"Edit\",\n studio_editor_collection_disabled: \"A edição de coleções está desativada\",\n studio_editor_collection_edit: \"Editar coleção\",\n studio_editor_entity_save_first: \"Tem de guardar o documento antes de alterar o esquema\",\n studio_editor_entity_edit_schema: \"Editar o esquema deste formulário\",\n studio_editor_collection_start_save_filter: \"Guardar o filtro e a ordenação predefinidos\",\n studio_editor_collection_start_clear_filter: \"Limpar o filtro e a ordenação predefinidos\",\n studio_editor_collection_start_reset_filter: \"Repor o filtro e a ordenação predefinidos\",\n studio_editor_collection_start_saved: \"Configuração predefinida guardada\",\n studio_home_duplicate_collection: \"Duplicate\",\n studio_home_delete: \"Delete\",\n studio_home_confirm_delete_no_data: \"Elimina o ficheiro da coleção e a respetiva entrada em index.ts, e faz commit da alteração. A tabela e as suas linhas permanecem na base de dados. Recusado enquanto outra coleção estiver ligada a esta.\",\n studio_home_collection_deleted: \"Coleção eliminada\",\n studio_kanban_configure: \"Configurar o Kanban\",\n studio_missing_reference_error: \"Não há coleção para o caminho: {{path}}\",\n studio_new_collection_add: \"Adicionar nova coleção\",\n studio_tool_schema: \"Coleções\",\n studio_js_collections_tab: \"Coleções\",\n studio_tool_schema_description: \"Defina e gira o seu modelo de dados e os esquemas das coleções\",\n studio_collections_editor_empty: \"Ainda não há coleções.\",\n studio_collections_editor_pick: \"Selecione uma coleção ou crie uma nova para começar a editar.\",\n studio_collections_editor_read_only: \"As coleções não podem ser editadas neste servidor.\",\n studio_collections_editor_unsaved: \"Esta coleção tem alterações por guardar.\",\n\n // ─── Schema change dialog ────────────────────────────────\n schema_change_title_review: \"Rever a alteração do esquema\",\n schema_change_title_applied: \"Alteração do esquema aplicada\",\n schema_change_title_committed: \"Foi feito commit da alteração do esquema\",\n schema_change_verdict_safe_title: \"Pronto a aplicar\",\n schema_change_verdict_safe_body: \"Cada alteração aqui pode ser feita na base de dados em execução.\",\n schema_change_verdict_diverges_title: \"Isto deixaria a base de dados desfasada\",\n schema_change_verdict_diverges_body: \"A alteração pode ser escrita, mas a base de dados não vai acabar por corresponder a ela. Os detalhes abaixo indicam que parte, e o que a tornaria aplicável.\",\n schema_change_verdict_migration_title: \"Isto precisa de uma migração\",\n schema_change_verdict_migration_body: \"Parte disto não pode ser feita numa base de dados em execução: elimina ou reescreve algo, e isso pertence a uma migração que alguém tenha lido.\",\n schema_change_commit_only_title: \"Pronto para o commit\",\n schema_change_commit_only_body: \"Agora nada é executado na base de dados. Cada alteração abaixo indica o que faz e quando entra em vigor.\",\n schema_change_commit_only_body_no_changes: \"Isto altera o que o seu projeto declara. Nada é executado na base de dados: não há nenhuma alteração de esquema a fazer.\",\n schema_change_chip_safe: \"seguro\",\n schema_change_chip_diverges: \"diverge\",\n schema_change_chip_migration: \"requer migração\",\n schema_change_follow_up_one: \"Uma coisa a fazer depois\",\n schema_change_follow_up: \"A fazer depois\",\n schema_change_withheld_one: \"Uma restrição não será aplicada\",\n schema_change_withheld_many: \"{{count}} restrições não serão aplicadas\",\n schema_change_db_not_changed: \"A base de dados não foi alterada\",\n schema_change_db_maybe_changed: \"A base de dados pode ter sido alterada em parte\",\n schema_change_statements_partial: \"Foram executadas {{ran}} de {{total}} instruções e depois uma falhou\",\n schema_change_commit_holds: \"O commit está em {{branch}} de qualquer forma, por isso o que não foi executado será aplicado no próximo arranque.\",\n schema_change_committed: \"Commit feito\",\n schema_change_committed_on: \"{{sha}} em {{branch}}\",\n schema_change_plan_failed: \"Não foi possível planear a alteração\",\n schema_change_planning: \"A determinar o que esta alteração faria…\",\n schema_change_source_only_changes: \"Nada aqui altera a forma dos seus dados. Só o código-fonte da coleção muda, e é feito commit dele.\",\n schema_change_source_only_title: \"Editar só o código-fonte: fazer commit da coleção e deixar a base de dados\",\n schema_change_preview_only: \"Pode pré-visualizar esta alteração, mas não aplicá-la\",\n schema_change_statements: \"Instruções que serão executadas\",\n schema_change_files: \"Ficheiros de que será feito commit\",\n schema_change_message: \"Mensagem do commit\",\n schema_change_edit_source_only: \"Editar só o código-fonte\",\n schema_change_committing: \"A fazer commit…\",\n schema_change_applying: \"A aplicar…\",\n schema_change_commit: \"Fazer commit\",\n schema_change_commit_and_apply: \"Fazer commit e aplicar\",\n\n // ─── API explorer ────────────────────────────────────────\n studio_api_explorer_spec_refused_title: \"Esta sessão não consegue ler a especificação da API\",\n studio_api_explorer_spec_failed_title: \"Não foi possível carregar a especificação da API\",\n studio_api_explorer_spec_refused_body: \"O acesso da consola à API deste projeto foi recusado. Normalmente significa que a sessão expirou (inicie sessão novamente) ou que o acesso da consola foi desativado para este projeto nas Definições.\",\n studio_api_explorer_spec_failed_body: \"O projeto respondeu, mas não com uma especificação que este explorador consiga ler. A sua API não é afetada; só esta página.\",\n\n // ─── Property field labels ──────────────────────────────────\n db_column_type: \"Tipo de coluna do banco de dados\",\n primary_key_unique_id: \"Chave primária / ID único\",\n spread_children_as_columns: \"Expandir filhos como colunas\",\n mode: \"Modo\",\n timezone: \"Fuso horário\",\n target_collection: \"Coleção de destino\",\n\n // ─── Column type and primary key selects ─────────────────\n column_type_default: \"Predefinido ({{type}})\",\n column_type_uuid_forced: \"uuid (imposto pela chave primária)\",\n column_type_varchar: \"varchar (comprimento variável)\",\n column_type_text: \"text (ilimitado)\",\n column_type_char: \"char (comprimento fixo)\",\n column_type_timestamp: \"timestamp (com fuso horário)\",\n column_type_caption_string: \"Opcional: outro tipo de coluna na base de dados para este campo de texto.\",\n column_type_caption_number: \"Opcional: outro tipo de coluna na base de dados para este campo numérico.\",\n column_type_caption_date: \"Opcional: outro tipo de coluna na base de dados para este campo de data.\",\n primary_key_manual: \"Sim (introdução manual)\",\n primary_key_generated_string: \"Sim (UUID/cadeia gerada automaticamente)\",\n primary_key_identity: \"Sim (autoincremento/identity)\",\n primary_key_increment: \"Sim (incremento)\",\n primary_key_strategy: \"Sim ({{strategy}})\",\n primary_key_caption: \"Definir como chave primária e configurar a estratégia de geração de ID.\",\n\n // ─── Storage property ───────────────────────────────────────\n storage_file_name: \"Nome do arquivo\",\n storage_path: \"Caminho de armazenamento\",\n storage_max_size: \"Tamanho máximo (em bytes)\",\n storage_resize_mode: \"Modo de redimensionamento\",\n storage_output_format: \"Formato de saída\",\n storage_max_width: \"Largura máxima (px)\",\n storage_max_height: \"Altura máxima (px)\",\n storage_quality: \"Qualidade (0-100)\",\n storage_file_upload_config: \"Configuração de upload de arquivo\",\n storage_image_resize_config: \"Configuração de redimensionamento de imagem\",\n storage_all_file_types: \"Todos os tipos de arquivo permitidos\",\n storage_allowed_file_types: \"Tipos de arquivo permitidos\",\n storage_include_bucket_url: \"Incluir URL do bucket (s3://...) no valor salvo\",\n storage_save_url: \"Salvar URL em vez do caminho de armazenamento\",\n\n // ─── DateTime property ──────────────────────────────────────\n datetime_automatic_value: \"Valor automático\",\n\n // ─── Date property selects ───────────────────────────────\n datetime_mode_date_time: \"Data/hora\",\n datetime_mode_date: \"Data\",\n datetime_auto_value_none: \"Nenhum\",\n datetime_auto_value_on_create: \"Ao criar\",\n datetime_auto_value_on_update: \"Em cada atualização\",\n datetime_auto_value_caption: \"Atualizar este campo automaticamente ao criar ou atualizar o registo\",\n datetime_timezone_local: \"Fuso horário local\",\n datetime_timezone_caption: \"Fuso horário para mostrar e introduzir datas. Os valores são sempre guardados em UTC.\",\n\n // ─── Markdown property ──────────────────────────────────────\n markdown_paste_behavior: \"Comportamento ao colar\",\n\n // ─── Entity identity bar and inspector ──────────────────────\n entity_saved: \"Guardado\",\n more_actions: \"Mais ações\",\n record_history: \"Histórico\",\n inspect_record: \"Inspecionar registo\",\n inspect: \"Inspecionar\",\n close_inspector: \"Fechar o inspetor\",\n open_in_live_site: \"Abrir no site publicado\",\n\n // ─── Revision history ───────────────────────────────────────\n history_revert: \"Voltar a esta versão\",\n history_revert_title: \"Reverter os dados para esta versão?\",\n history_reverted: \"Revertido para a versão selecionada\",\n history_revert_error: \"Erro ao reverter o registo\",\n history_revert_dirty: \"Guarde ou descarte as suas alterações antes de reverter\",\n history_empty: \"Nenhum histórico disponível\",\n history_empty_description: \"Ao guardar um registo é criada uma nova versão, guardada no histórico.\",\n history_new_entity: \"O histórico só está disponível para registos existentes\",\n history_no_more: \"Sem mais histórico\",\n\n // ─── Studio: tools, groups and empty states ─────────────────\n // The admin's own three groups, read by `useNavigationGroupLabel` the same\n // way as the Studio ones below — the group *name* is an identifier the\n // ordering and the icons key off, and only the heading is translated.\n studio_group_views: \"Visualizações\",\n studio_group_admin: \"Administração\",\n studio_group_settings: \"Definições\",\n studio_group_database: \"Base de dados\",\n studio_group_compute: \"Computação\",\n studio_group_storage: \"Armazenamento\",\n studio_group_api: \"API\",\n studio_group_access_control: \"Controlo de acesso\",\n studio_tool_sql: \"Consola SQL\",\n studio_tool_sql_description: \"Executa consultas SQL\",\n studio_tool_js: \"Consola JS\",\n studio_tool_js_description: \"Executa JavaScript\",\n studio_tool_rls: \"Políticas RLS\",\n studio_tool_rls_description: \"Segurança ao nível da linha\",\n studio_tool_storage: \"Armazenamento\",\n studio_tool_storage_description: \"Gere os ficheiros de armazenamento\",\n studio_tool_cron: \"Tarefas cron\",\n studio_tool_cron_description: \"Gere as tarefas agendadas\",\n studio_tool_schema_visualizer: \"Visualizador de esquema\",\n studio_tool_schema_visualizer_description: \"Diagrama de entidades das suas coleções\",\n studio_tool_branches: \"Ramos\",\n studio_tool_branches_description: \"Cria e gere ramos da base de dados\",\n studio_tool_backups: \"Cópias de segurança\",\n studio_tool_backups_description: \"Descarrega cópias de segurança da base de dados\",\n studio_tool_api: \"Explorador de API\",\n studio_tool_api_description: \"Documentação de API interactiva e testes\",\n studio_tool_logs: \"Explorador de registos\",\n studio_tool_logs_description: \"Registos de sistema e consultas em tempo real\",\n studio_tool_api_keys: \"Chaves de API\",\n studio_tool_api_keys_description: \"Cria e gere chaves de API com âmbito\",\n studio_backups_denied_title: \"Não pode listar as cópias de segurança deste projeto\",\n studio_backups_denied_hint: \"O projeto não tem nada de errado. Listar cópias de segurança exige uma ligação de administrador, e a conta com sessão iniciada foi recusada.\",\n studio_backups_read_failed: \"Não foi possível ler as cópias de segurança deste projeto\",\n studio_backups_downloading: \"A descarregar…\",\n studio_backups_roles_file: \"Ficheiro de funções\",\n studio_backups_roles_file_hint: \"O .globals.sql guardado com esta cópia. Recria as funções da base de dados a que se referem as permissões e a segurança ao nível da linha do dump, e o `rebase db restore` lê-o ao lado do .dump, por isso mantenha os dois ficheiros juntos.\",\n studio_backups_no_roles_file: \"Sem ficheiro de funções\",\n studio_backups_no_roles_file_hint: \"Esta cópia não tem nenhum .globals.sql. Restaurá-la num Postgres novo para na primeira permissão concedida a uma função da base de dados que lá não existe.\",\n studio_backups_empty: \"Ainda não há cópias de segurança.\",\n studio_backups_empty_hint: \"Crie uma com `rebase db backup`, ou agende-as com um ficheiro cron que exporte createBackupCron.\",\n studio_backups_last_run_failed: \"A última cópia de segurança agendada falhou ({{when}})\",\n studio_backups_last_run_ok: \"Última cópia de segurança agendada: {{when}}\",\n studio_backups_never_ran: \"A cópia de segurança agendada ainda não foi executada\",\n studio_backups_next_run: \"Próxima execução: {{when}}\",\n studio_backups_schedule_paused: \"As cópias de segurança agendadas estão em pausa. Retome a tarefa {{job}} em Tarefas cron.\",\n studio_backups_schedule_off_in_code: \"As cópias de segurança agendadas estão desligadas: a tarefa {{job}} está declarada como desativada no respetivo ficheiro cron. Com o ficheiro cron de cópias documentado, definir BACKUP_SCHEDULE ativa-as.\",\n studio_backups_manual_run_ok: \"Última execução manual: {{when}}\",\n studio_backups_manual_run_failed: \"A última execução manual falhou ({{when}})\",\n studio_backups_history_unreadable: \"Não foi possível ler o histórico de execuções da cópia de segurança agendada, por isso não se sabe se foi executada. O motivo está no registo do servidor.\",\n studio_backups_job_refused: \"As cópias de segurança agendadas nunca são executadas: o agendador recusou a tarefa {{job}}. Corrija-a no respetivo ficheiro cron.\",\n studio_backups_local_disk_of_this_process: \"Estas são as cópias de segurança no disco deste processo do servidor. As cópias agendadas são executadas noutro processo e escrevem no disco dele, por isso só aparecem aqui se ambos partilharem este diretório. Um destino s3:// ou gs:// lê-se da mesma forma a partir de qualquer processo.\",\n studio_backups_unavailable_title: \"Cópias de segurança indisponíveis\",\n studio_backups_unavailable_body: \"Este backend não expõe a API de cópias de segurança.\",\n studio_cron_denied_title: \"Não pode listar as tarefas cron deste projeto\",\n studio_cron_denied_hint: \"O projeto não tem nada de errado. A API de cron é apenas para administradores, e a conta com sessão iniciada foi recusada.\",\n studio_cron_read_failed: \"Não foi possível ler as tarefas cron deste projeto\",\n studio_cron_logs_read_failed: \"Não foi possível ler as execuções desta tarefa\",\n studio_cron_logs_denied_title: \"Não pode ler as execuções desta tarefa\",\n studio_cron_run_succeeded: \"A execução de {{job}} foi concluída com sucesso\",\n studio_cron_last_error: \"Último erro\",\n studio_cron_no_executions: \"Ainda sem execuções\",\n studio_cron_manual_run: \"manual\",\n studio_cron_job_enabled: \"Tarefa ativada\",\n studio_cron_job_paused: \"Tarefa em pausa\",\n studio_cron_refresh: \"Atualizar\",\n studio_cron_select_job: \"Selecione uma tarefa cron para ver os detalhes\",\n studio_cron_pause_job: \"Pausar tarefa\",\n studio_cron_enable_job: \"Ativar tarefa\",\n studio_cron_run_now: \"Executar agora\",\n studio_cron_schedule: \"Agendamento\",\n studio_cron_last_run: \"Última execução\",\n studio_cron_next_run: \"Próxima execução\",\n studio_cron_paused: \"Em pausa\",\n studio_cron_duration: \"Duração\",\n studio_cron_status: \"Estado\",\n studio_cron_total_runs: \"Execuções no total\",\n studio_cron_failures: \"Falhas\",\n studio_cron_execution_history: \"Histórico de execuções\",\n studio_cron_refresh_logs: \"Atualizar execuções\",\n studio_cron_run_failed: \"A execução de {{job}} falhou: {{error}}\",\n studio_cron_job_refused: \"A tarefa {{job}} não está agendada: o agendador recusou-a\",\n studio_cron_files_failed: \"{{count}} ficheiros cron não foram carregados e não estão agendados. O motivo está no registo do servidor.\",\n studio_cron_files_failed_one: \"{{count}} ficheiro cron não foi carregado e não está agendado. O motivo está no registo do servidor.\",\n studio_api_keys_denied_title: \"Não pode listar as chaves de API deste projeto\",\n studio_api_keys_denied_hint: \"O projeto não tem nada de errado. Listar as chaves de serviço requer o âmbito keys:read, que a conta com sessão iniciada não tem.\",\n studio_api_keys_read_failed: \"Não foi possível ler as chaves de API deste projeto\",\n studio_api_keys_empty_title: \"Ainda não há chaves de API\",\n studio_api_keys_empty_hint: \"Crie uma chave para permitir a autenticação entre serviços\",\n studio_api_keys_revoke: \"Revogar\",\n studio_api_keys_select_hint: \"Selecione uma chave de API para ver os detalhes\",\n studio_api_keys_revoke_confirmation: \"Confirmação de revogação\",\n studio_api_keys_name_label: \"Nome:\",\n studio_api_keys_access_label: \"Acesso:\",\n studio_api_keys_admin_granted: \"Papel de administrador concedido\",\n studio_api_keys_admin_granted_hint: \"a segurança ao nível da linha não a limita: pode ler, alterar e eliminar todas as linhas que os seus âmbitos alcançam, e passa as verificações de administrador nas funções e no armazenamento\",\n studio_api_keys_done: \"Concluído\",\n studio_api_keys_status_active: \"Ativa\",\n studio_api_keys_status_expired: \"Expirada\",\n studio_api_keys_status_revoked: \"Revogada\",\n studio_api_keys_inactive_heading: \"Revogadas / Expiradas\",\n studio_api_keys_stat_status: \"Estado\",\n studio_api_keys_stat_last_used: \"Última utilização\",\n studio_api_keys_stat_expires: \"Expira\",\n studio_api_keys_never: \"Nunca\",\n studio_api_keys_stat_rate_limit: \"Limite de pedidos\",\n studio_api_keys_rate_limit_default: \"Predefinido (1000/15 min)\",\n studio_api_keys_stat_created_by: \"Criada por\",\n studio_api_keys_copy_failed: \"Não foi possível copiar\",\n studio_api_keys_tab_service: \"Chaves de serviço\",\n studio_api_keys_tab_personal: \"As minhas chaves\",\n studio_api_keys_refresh: \"Atualizar\",\n studio_api_keys_new: \"Nova\",\n studio_api_keys_personal_empty_title: \"Não tem chaves pessoais\",\n studio_api_keys_personal_empty_hint: \"Uma chave pessoal atua como a sua conta, para scripts e ferramentas que executa por si\",\n studio_api_keys_personal_read_failed: \"Não foi possível ler as suas chaves de API\",\n studio_api_keys_personal_denied_title: \"Esta sessão não pode ter chaves pessoais\",\n studio_api_keys_personal_denied_hint: \"Uma chave pessoal atua como uma conta com sessão iniciada. As chaves de API, a chave de serviço e as sessões de convidado não têm uma conta em nome da qual atuar.\",\n studio_api_keys_personal_off_title: \"As chaves pessoais estão desativadas\",\n studio_api_keys_personal_off_body: \"Uma chave pessoal atua como a sua própria conta e nunca tem mais do que você. Para permitir que as contas as criem, defina isto no bloco auth da coleção de utilizadores:\",\n studio_api_keys_kind_service: \"Serviço\",\n studio_api_keys_kind_personal: \"Pessoal\",\n studio_api_keys_stat_kind: \"Tipo\",\n studio_api_keys_stat_owner: \"Proprietário\",\n studio_api_keys_rate_limit_value: \"{{limit}}/15 min\",\n studio_api_keys_scopes: \"Âmbitos\",\n studio_api_keys_no_scopes: \"Esta chave não tem âmbitos\",\n studio_api_keys_scopes_count: \"{{count}} âmbitos\",\n studio_api_keys_plane_data: \"Dados\",\n studio_api_keys_plane_data_hint: \"Linhas, ficheiros e funções; a segurança ao nível da linha continua a decidir quais linhas\",\n studio_api_keys_plane_admin: \"Administração\",\n studio_api_keys_plane_admin_hint: \"Utilizadores, esquema, base de dados, cópias de segurança, cron e registos\",\n studio_api_keys_plane_app: \"Aplicação\",\n studio_api_keys_plane_app_hint: \"Declarados por esta aplicação em auth.scopes\",\n studio_api_keys_target_all_collection: \"Todas as coleções\",\n studio_api_keys_target_all_bucket: \"Todas as origens de armazenamento\",\n studio_api_keys_target_all_function: \"Todas as funções\",\n studio_api_keys_target_all_other: \"Qualquer {{kind}}\",\n studio_api_keys_target_some: \"Apenas os que eu escolher\",\n studio_api_keys_target_mode: \"Alvos\",\n studio_api_keys_target_pick: \"Escolher…\",\n studio_api_keys_target_typed_placeholder: \"Ids de {{kind}}, separados por vírgulas\",\n studio_api_keys_target_missing: \"Escolha pelo menos um alvo para «{{scope}}», ou mude para todos.\",\n studio_api_keys_bucket_default: \"Bucket predefinido\",\n studio_api_keys_roles: \"Papéis RLS\",\n studio_api_keys_roles_rows_hint: \"Que linhas a chave pode ler, alterar e eliminar\",\n studio_api_keys_roles_service_only: \"É executada apenas como service. A segurança ao nível da linha não lhe concede nada, a menos que uma política nomeie esse papel.\",\n studio_api_keys_roles_service_plus: \"É executada como service mais estes papéis; aplica-se qualquer política de segurança ao nível da linha que nomeie um deles.\",\n studio_api_keys_admin_bypasses_rls: \"É executada como admin: a segurança ao nível da linha não a limita, por isso pode ler, alterar e eliminar todas as linhas que os seus âmbitos alcançam, e passa as verificações de administrador nas funções personalizadas e no armazenamento. Os seus âmbitos continuam a decidir que endpoints pode chamar.\",\n studio_api_keys_admin_chip_tooltip: \"É executada com o papel admin: a segurança ao nível da linha não limita as suas leituras, escritas nem eliminações\",\n studio_api_keys_personal_roles: \"É executada como o seu proprietário, com os papéis que este tiver em cada utilização. Nunca mantém um âmbito que o proprietário tenha perdido.\",\n studio_api_keys_revoke_title: \"Revogar «{{name}}»?\",\n studio_api_keys_revoke_body: \"Os pedidos autenticados com esta chave deixam de funcionar imediatamente. Esta ação não pode ser anulada.\",\n studio_api_keys_revoked: \"Chave de API revogada\",\n studio_api_keys_created_title: \"Chave de API criada\",\n studio_api_keys_copy_now: \"Copie a chave agora: não voltará a ser mostrada\",\n studio_api_keys_copy_now_hint: \"É a única vez que a chave completa é mostrada. Guarde-a num local seguro.\",\n studio_api_keys_copied: \"Chave de API copiada para a área de transferência\",\n studio_api_keys_create_title: \"Criar chave de serviço\",\n studio_api_keys_create_personal_title: \"Criar chave pessoal\",\n studio_api_keys_create_intro: \"Uma credencial para scripts, tarefas cron e agentes. Atua como a identidade de serviço do projeto, não como uma pessoa, e só alcança os âmbitos que conceder aqui.\",\n studio_api_keys_create_personal_intro: \"Uma credencial para scripts e ferramentas que executa por si. Atua como a sua conta e nunca pode fazer mais do que você.\",\n studio_api_keys_field_name: \"Nome\",\n studio_api_keys_field_name_placeholder: \"p. ex., Pipeline de análise\",\n studio_api_keys_section_scopes_hint: \"Que endpoints a chave pode chamar\",\n studio_api_keys_scopes_read_failed: \"Não foi possível ler os âmbitos que este backend oferece\",\n studio_api_keys_scopes_offered_note: \"Só são oferecidos os âmbitos que a sua conta tem. A gestão de chaves (keys:read, keys:write) nunca pode ir numa chave.\",\n studio_api_keys_roles_explainer: \"Os âmbitos decidem que endpoints a chave pode chamar; os papéis decidem que linhas pode ler, alterar e eliminar. Todas as chaves de serviço são executadas como service, mais os papéis que adicionar aqui. Deixe vazio a menos que uma política de segurança ao nível da linha nomeie um papel de que a chave precise.\",\n studio_api_keys_roles_other: \"Outros papéis\",\n studio_api_keys_roles_other_placeholder: \"Nomes de papéis separados por vírgulas\",\n studio_api_keys_roles_unavailable: \"Não foi possível listar os papéis do projeto; escreva os nomes dos papéis.\",\n studio_api_keys_roles_admin_warning: \"Com admin, a segurança ao nível da linha não limita a chave: pode ler, alterar e eliminar todas as linhas que os seus âmbitos alcançam, e passa as verificações de administrador nas funções personalizadas e no armazenamento. Os seus âmbitos continuam a decidir que endpoints pode chamar.\",\n studio_api_keys_section_limits: \"Limites\",\n studio_api_keys_expiry_7d: \"Daqui a 7 dias\",\n studio_api_keys_expiry_30d: \"Daqui a 30 dias\",\n studio_api_keys_expiry_90d: \"Daqui a 90 dias\",\n studio_api_keys_expiry_1y: \"Daqui a 1 ano\",\n studio_api_keys_rate_limit_unit: \"por 15 min\",\n studio_api_keys_rate_limit_hint: \"Deixe vazio para o valor predefinido do servidor: 1000 pedidos por janela de 15 minutos.\",\n studio_api_keys_rate_limit_scope: \"O limite conta os pedidos de dados, ficheiros e funções da chave por HTTP, pelo socket em tempo real e por MCP. As operações de administração não têm limite de pedidos.\",\n studio_api_keys_summary_title: \"Esta chave poderá\",\n studio_api_keys_summary_empty: \"Nada ainda: escolha pelo menos um âmbito.\",\n studio_api_keys_summary_roles: \"A segurança ao nível da linha trata-a como {{roles}}\",\n studio_api_keys_block_name: \"Primeiro dê um nome à chave\",\n studio_api_keys_block_scopes: \"Escolha pelo menos um âmbito\",\n studio_api_keys_block_targets: \"Termine de escolher os alvos\",\n studio_api_keys_creating: \"A criar…\",\n studio_api_keys_create: \"Criar chave\",\n studio_api_keys_unsupported: \"Este cliente não pode criar chaves de API.\",\n studio_api_keys_error_invalid_scopes: \"Alguns âmbitos não são válidos\",\n studio_api_keys_error_scope_exceeds_creator: \"Uma chave não pode ter mais do que a sua conta\",\n studio_api_keys_error_role_exceeds_creator: \"Uma chave não pode ser executada com um papel que não tem\",\n studio_api_keys_error_unknown_scope_target: \"Um alvo não existe neste backend\",\n studio_api_keys_error_key_management_scope: \"A gestão de chaves não pode ir numa chave\",\n studio_api_keys_error_generic: \"A chave não foi criada\",\n studio_scope_data_read_label: \"Ler dados\",\n studio_scope_data_read_description: \"Ler linhas das coleções, através da segurança ao nível da linha de quem chama.\",\n studio_scope_data_write_label: \"Criar e atualizar dados\",\n studio_scope_data_write_description: \"Criar e atualizar linhas nas coleções, através da segurança ao nível da linha de quem chama.\",\n studio_scope_data_delete_label: \"Eliminar dados\",\n studio_scope_data_delete_description: \"Eliminar linhas das coleções, através da segurança ao nível da linha de quem chama.\",\n studio_scope_storage_read_label: \"Ler ficheiros\",\n studio_scope_storage_read_description: \"Listar e transferir os ficheiros armazenados.\",\n studio_scope_storage_write_label: \"Carregar ficheiros\",\n studio_scope_storage_write_description: \"Carregar ficheiros e criar pastas.\",\n studio_scope_storage_delete_label: \"Eliminar ficheiros\",\n studio_scope_storage_delete_description: \"Eliminar os ficheiros armazenados.\",\n studio_scope_functions_invoke_label: \"Chamar funções\",\n studio_scope_functions_invoke_description: \"Chamar as funções personalizadas do backend. Uma função pode fazer tudo o que o seu código faz.\",\n studio_scope_users_read_label: \"Ver utilizadores\",\n studio_scope_users_read_description: \"Listar as contas de utilizador e os seus papéis.\",\n studio_scope_users_write_label: \"Gerir utilizadores\",\n studio_scope_users_write_description: \"Criar, editar e eliminar contas, redefinir palavras-passe e segundos fatores, e atribuir papéis até aos do próprio titular.\",\n studio_scope_schema_read_label: \"Ver o esquema\",\n studio_scope_schema_read_description: \"Ler o esquema das coleções, planear alterações ao esquema e executar a auditoria RLS.\",\n studio_scope_schema_write_label: \"Alterar o esquema\",\n studio_scope_schema_write_description: \"Aplicar alterações ao esquema: edita os ficheiros das coleções e altera a base de dados.\",\n studio_scope_database_read_label: \"Inspecionar a base de dados\",\n studio_scope_database_read_description: \"Listar bases de dados, tabelas, papéis do Postgres e ramos.\",\n studio_scope_database_write_label: \"Executar SQL\",\n studio_scope_database_write_description: \"Executar SQL como proprietário da base de dados, fora da segurança ao nível da linha, e criar ou eliminar ramos.\",\n studio_scope_backups_read_label: \"Transferir cópias de segurança\",\n studio_scope_backups_read_description: \"Listar e transferir cópias de segurança da base de dados — todas as linhas, fora da segurança ao nível da linha.\",\n studio_scope_cron_read_label: \"Ver tarefas cron\",\n studio_scope_cron_read_description: \"Listar as tarefas cron e ler o seu histórico de execuções.\",\n studio_scope_cron_write_label: \"Executar tarefas cron\",\n studio_scope_cron_write_description: \"Acionar tarefas cron e ativá-las ou desativá-las.\",\n studio_scope_logs_read_label: \"Ler os registos do servidor\",\n studio_scope_logs_read_description: \"Ler os registos de pedidos e da aplicação do servidor.\",\n studio_scope_keys_read_label: \"Ver chaves de serviço\",\n studio_scope_keys_read_description: \"Listar as chaves de serviço do projeto. Nunca pode ser concedido a uma chave.\",\n studio_scope_keys_write_label: \"Gerir chaves de serviço\",\n studio_scope_keys_write_description: \"Criar, alterar e revogar as chaves de serviço do projeto. Nunca pode ser concedido a uma chave.\",\n studio_branches_denied_title: \"Não pode listar os ramos deste projeto\",\n studio_branches_denied_hint: \"O projeto não tem nada de errado. Os ramos usam a ligação de administrador, e a conta com sessão iniciada foi recusada.\",\n studio_branches_read_failed: \"Não foi possível ler os ramos deste projeto\",\n studio_schema_no_collections: \"Nenhuma coleção declarada\",\n studio_schema_no_collections_body: \"Ainda não há nada para desenhar. Adicione uma coleção em config/collections/, ou abra «Editar coleções» para adicionar uma aqui.\",\n studio_schema_introspect_hint: \"Numa base de dados que já tem tabelas, rebase schema introspect escreve os ficheiros de coleção por si.\",\n studio_schema_visualizer_source: \"Desenhado a partir das suas coleções: tabelas, colunas, tipos e relações tal como as declaram. Só os indicadores de RLS são lidos da base de dados.\",\n studio_schema_laying_out: \"A organizar o diagrama…\",\n studio_schema_neighbourhood: \"A mostrar {{shown}} de {{total}} tabelas: {{table}} e as tabelas à sua volta. Escolha outra na lista para mudar.\",\n studio_schema_neighbourhood_depth_1: \"A 1 relação\",\n studio_schema_neighbourhood_depth_2: \"A 2 relações\",\n\n\n // ─── Studio: RLS editor confirmations ───────────────────────\n studio_rls_enable_confirm_title: \"Activar a segurança ao nível da linha?\",\n studio_rls_enable_confirm_body: \"Até que uma política o permita, nenhuma linha de {{table}} é legível. O Postgres nega por omissão.\",\n studio_rls_disable_confirm_title: \"Desactivar a segurança ao nível da linha?\",\n studio_rls_disable_confirm_body: \"Todas as políticas de {{table}} deixam de ser aplicadas. Quem alcançar a tabela pode ler e escrever todas as linhas.\",\n studio_rls_drop_policy_title: \"Eliminar esta política?\",\n studio_rls_drop_policy_body: \"{{policy}} é removida de {{table}} na base de dados. Nada é escrito no seu código, portanto um deploy pode repô-la.\",\n studio_rls_unapplied: \"Por aplicar\",\n studio_rls_unapplied_tooltip: \"Declarada no seu código, ainda não na base de dados. O Rebase aplica-a da próxima vez que o servidor arrancar ou que `rebase db push` correr; se depois ainda faltar, o log do servidor diz porquê.\",\n studio_rls_drift: \"Difere do código\",\n studio_rls_drift_tooltip: \"Na base de dados, {{fields}} diferem do que o projeto declara para esta política. A versão declarada volta da próxima vez que o servidor arrancar ou que `rebase db push` correr.\",\n studio_rls_reapplied_on_start: \"O Rebase gere as políticas de {{table}}. Sempre que o servidor arranca, e em cada `rebase db push`, volta a ativar a segurança ao nível da linha nesta tabela e recria cada política que o projeto declara para ela. Uma alteração feita aqui a uma dessas políticas, ou ao interruptor de RLS, dura até lá. Uma política que adicione com um nome seu é mantida.\",\n studio_rls_disable_reapplied: \"O Rebase gere {{table}}, por isso a segurança ao nível da linha volta a ser ativada da próxima vez que o servidor arrancar ou que `rebase db push` correr.\",\n studio_rls_nothing_changed: \"Nada mudou, por isso nada foi guardado.\",\n\n\n // ─── Studio: empty states that name a remedy ────────────────\n studio_branches_unavailable_title: \"A criação de ramos da base de dados não está disponível\",\n studio_branches_unavailable_body: \"Os ramos precisam de um backend Postgres com uma ligação de administrador. Defina ADMIN_CONNECTION_STRING no ambiente do backend.\",\n studio_backups_not_configured_title: \"As cópias de segurança não estão configuradas\",\n studio_backups_not_configured_body: \"Defina BACKUP_DESTINATION para um caminho local ou um URL s3:// ou gs://, e depois crie uma cópia com `rebase db backup` ou um cron agendado.\",\n studio_cron_empty_title: \"Nenhuma tarefa cron registada\",\n studio_cron_empty_body: \"Adicione um ficheiro em backend/crons/ que exporte por omissão uma CronJobDefinition.\",\n studio_read_the_docs: \"Consulte a documentação\",\n\n\n // ─── Studio: storage browser ────────────────────────────────\n studio_storage_root: \"Raiz\",\n studio_storage_root_folder: \"raiz\",\n studio_storage_loading: \"A carregar…\",\n studio_storage_denied_title: \"As regras de armazenamento deste projeto recusaram esta listagem\",\n studio_storage_denied_hint: \"O projeto não tem nada de errado. O seu hook storageAuthorize decide quem pode ler que chaves, e recusou este caminho para a conta com sessão iniciada — normalmente porque uma listagem tem de indicar um prefixo que a regra reconheça, em vez da raiz do bucket.\",\n studio_storage_read_failed: \"Não foi possível ler o armazenamento deste projeto\",\n studio_storage_empty: \"Esta pasta está vazia\",\n studio_storage_new_folder: \"Nova pasta\",\n studio_storage_upload_files: \"Carregar ficheiros\",\n studio_storage_upload: \"Carregar\",\n studio_storage_upload_count: \"Carregar ({{count}})\",\n studio_storage_uploading: \"A carregar ficheiros…\",\n studio_storage_upload_failed: \"Falha no carregamento\",\n studio_storage_upload_dialog_title: \"Carregar ficheiros\",\n studio_storage_upload_to: \"para\",\n studio_storage_drop_or_browse: \"Largue os ficheiros aqui ou clique para procurar\",\n studio_storage_any_file_type: \"Qualquer tipo de ficheiro é suportado\",\n studio_storage_selected_files: \"Ficheiros selecionados ({{count}})\",\n studio_storage_drop_to_upload: \"Largue os ficheiros para os carregar\",\n studio_storage_files_uploaded: \"{{count}} ficheiros carregados com sucesso\",\n studio_storage_files_uploaded_one: \"{{count}} ficheiro carregado com sucesso\",\n studio_storage_cancel: \"Cancelar\",\n studio_storage_create: \"Criar\",\n studio_storage_download: \"Descarregar\",\n studio_storage_delete: \"Eliminar\",\n studio_storage_deselect: \"Desmarcar\",\n studio_storage_refresh: \"Atualizar\",\n studio_storage_go_up: \"Subir um nível\",\n studio_storage_grid_view: \"Vista em grelha\",\n studio_storage_list_view: \"Vista em lista\",\n studio_storage_default_source: \"Predefinido\",\n studio_storage_name: \"Nome\",\n studio_storage_type: \"Tipo\",\n studio_storage_type_unknown: \"Desconhecido\",\n studio_storage_size: \"Tamanho\",\n studio_storage_extension: \"Extensão\",\n studio_storage_path: \"Caminho\",\n studio_storage_url: \"URL\",\n studio_storage_copy_url: \"Copiar URL\",\n studio_storage_url_copied: \"Copiado!\",\n studio_storage_url_temporary: \"Ligação temporária: quem a tiver pode abrir este ficheiro durante até {{minutes}} min. Descarregar e Copiar URL geram uma nova.\",\n studio_storage_url_public: \"Ligação pública: qualquer pessoa pode abrir este ficheiro, e a ligação não expira.\",\n studio_storage_folder: \"Pasta\",\n studio_storage_folders: \"Pastas\",\n studio_storage_files_heading: \"Ficheiros ({{count}})\",\n studio_storage_file_count: \"{{count}} ficheiros\",\n studio_storage_file_count_one: \"{{count}} ficheiro\",\n studio_storage_folder_count: \"{{count}} pastas\",\n studio_storage_folder_count_one: \"{{count}} pasta\",\n studio_storage_selected_count: \"{{count}} selecionados\",\n studio_storage_selected_count_one: \"{{count}} selecionado\",\n studio_storage_items_selected: \"{{count}} itens selecionados\",\n studio_storage_items_selected_one: \"{{count}} item selecionado\",\n studio_storage_selected_label: \"Selecionado:\",\n studio_storage_no_preview: \"Pré-visualização indisponível\",\n studio_storage_file_info: \"Informações do ficheiro\",\n studio_storage_delete_file_title: \"Eliminar ficheiro\",\n studio_storage_delete_file_question: \"Eliminar ficheiro?\",\n studio_storage_delete_file_body: \"Tem a certeza de que pretende eliminar «{{name}}»? Esta ação não pode ser anulada.\",\n studio_storage_delete_confirmation_title: \"Confirmar eliminação\",\n studio_storage_delete_question: \"Eliminar?\",\n studio_storage_delete_items_question: \"Eliminar {{count}} itens?\",\n studio_storage_delete_items_question_one: \"Eliminar {{count}} item?\",\n studio_storage_delete_folder_question: \"Eliminar a pasta «{{name}}»?\",\n studio_storage_delete_selection_body: \"Todos os ficheiros e pastas selecionados serão eliminados permanentemente, incluindo o respetivo conteúdo. Esta ação não pode ser anulada.\",\n studio_storage_delete_folder_body: \"A pasta e todo o seu conteúdo serão eliminados permanentemente. Esta ação não pode ser anulada.\",\n studio_storage_file_deleted: \"«{{name}}» eliminado\",\n studio_storage_folder_deleted: \"Pasta «{{name}}» eliminada\",\n studio_storage_items_deleted: \"{{count}} itens eliminados\",\n studio_storage_items_deleted_one: \"{{count}} item eliminado\",\n studio_storage_delete_incomplete: \"{{count}} itens continuam lá depois de eliminados: {{names}}\",\n studio_storage_delete_incomplete_one: \"«{{names}}» continua lá depois de eliminado\",\n studio_storage_replace_title: \"Substituir ficheiros\",\n studio_storage_replace_question: \"Substituir {{count}} ficheiros?\",\n studio_storage_replace_question_one: \"Substituir {{count}} ficheiro?\",\n studio_storage_replace_body: \"{{names}} já estão nesta pasta. Carregar substitui-os, e os ficheiros atuais perdem-se.\",\n studio_storage_replace_body_one: \"«{{names}}» já está nesta pasta. Carregar substitui-o, e o ficheiro atual perde-se.\",\n studio_storage_replace: \"Substituir\",\n studio_storage_new_folder_title: \"Nova pasta\",\n studio_storage_folder_name: \"Nome da pasta\",\n studio_storage_folder_name_placeholder: \"Introduza o nome da pasta\",\n studio_storage_created_in: \"Será criada em\",\n studio_storage_folder_name_has_slash: \"O nome da pasta não pode conter barras\",\n studio_storage_folder_exists: \"A pasta «{{name}}» já existe\",\n studio_storage_folder_created: \"Pasta «{{name}}» criada\",\n studio_storage_create_folder_failed: \"Não foi possível criar a pasta\",\n\n // ─── Insights plugin ─────────────────────────────────────────\n insights_period_last_days: \"Últimos {{count}} dias\",\n insights_period_last_days_one: \"Último dia\",\n insights_previous_period_value: \"{{count}} dias anteriores: {{value}}\",\n insights_previous_period_value_one: \"Dia anterior: {{value}}\",\n insights_change_up: \"Alta: {{change}}\",\n insights_change_down: \"Queda: {{change}}\",\n insights_change_none: \"Sem alteração\",\n\n // ─── Icon button names ───────────────────────────────────────\n add_to_favourites: \"Adicionar aos favoritos\",\n remove_from_favourites: \"Remover dos favoritos\",\n change_value_type: \"Alterar tipo\",\n refresh: \"Atualizar\",\n create_branch: \"Criar ramo\",\n new_tab: \"Novo separador\",\n close_tab: \"Fechar separador\",\n help: \"Ajuda\",\n copy_table_name: \"Copiar nome da tabela\",\n copy_column_name: \"Copiar nome da coluna\",\n generate_sql_templates: \"Gerar modelos SQL\",\n select_row: \"Selecionar {{id}}\",\n relation_open_record: \"Abrir {{label}}\",\n select: \"Selecionar\",\n open_view: \"Abrir vista\"\n};\n"],"mappings":"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"}
|