Merge branch 'main' into patch-1

This commit is contained in:
serossi 2025-08-07 23:31:59 +02:00 committed by GitHub
commit 4d28df7a89
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
13 changed files with 791 additions and 29 deletions

11
.github/workflows/unblock_signing.yml vendored Normal file
View File

@ -0,0 +1,11 @@
name: Unblock signing
on:
workflow_dispatch:
jobs:
unblock-win-signing:
runs-on: win-signing
steps:
- run: |
cat ${{ vars.WINDOWS_SIGN_ERROR_LOG }}
rm ${{ vars.WINDOWS_SIGN_ERROR_LOG }}

View File

@ -1 +1,214 @@
{}
{
"about": {
"title": "Sobre Trilium Notes",
"close": "Tanca",
"homepage": "Pàgina principal:"
},
"add_link": {
"note": "Nota",
"close": "Tanca"
},
"branch_prefix": {
"close": "Tanca",
"prefix": "Prefix: ",
"save": "Desa"
},
"bulk_actions": {
"close": "Tanca",
"labels": "Etiquetes",
"relations": "Relacions",
"notes": "Notes",
"other": "Altres"
},
"clone_to": {
"close": "Tanca"
},
"confirm": {
"confirmation": "Confirmació",
"close": "Tanca",
"cancel": "Cancel·la",
"ok": "OK"
},
"delete_notes": {
"close": "Tanca",
"cancel": "Cancel·la",
"ok": "OK"
},
"export": {
"close": "Tanca",
"export": "Exporta"
},
"help": {
"close": "Tanca",
"troubleshooting": "Solució de problemes",
"other": "Altres"
},
"import": {
"close": "Tanca",
"options": "Opcions",
"import": "Importa"
},
"include_note": {
"close": "Tanca",
"label_note": "Nota"
},
"info": {
"closeButton": "Tanca",
"okButton": "OK"
},
"jump_to_note": {
"close": "Tanca"
},
"markdown_import": {
"close": "Tanca"
},
"move_to": {
"close": "Tanca"
},
"note_type_chooser": {
"close": "Tanca",
"templates": "Plantilles:"
},
"password_not_set": {
"close": "Tanca"
},
"prompt": {
"title": "Sol·licitud",
"close": "Tanca",
"defaultTitle": "Sol·licitud"
},
"protected_session_password": {
"close_label": "Tanca"
},
"recent_changes": {
"close": "Tanca",
"undelete_link": "recuperar"
},
"revisions": {
"close": "Tanca",
"restore_button": "Restaura",
"delete_button": "Suprimeix",
"download_button": "Descarrega",
"mime": "MIME: ",
"preview": "Vista prèvia:"
},
"sort_child_notes": {
"close": "Tanca",
"title": "títol",
"ascending": "ascendent",
"descending": "descendent",
"folders": "Carpetes"
},
"upload_attachments": {
"close": "Tanca",
"options": "Opcions",
"upload": "Puja"
},
"attribute_detail": {
"name": "Nom",
"value": "Valor",
"promoted": "Destacat",
"promoted_alias": "Àlies",
"multiplicity": "Multiplicitat",
"label_type": "Tipus",
"text": "Text",
"number": "Número",
"boolean": "Booleà",
"date": "Data",
"time": "Hora",
"url": "URL",
"precision": "Precisió",
"digits": "dígits",
"inheritable": "Heretable",
"delete": "Suprimeix",
"color_type": "Color"
},
"rename_label": {
"to": "Per"
},
"move_note": {
"to": "a"
},
"add_relation": {
"to": "a"
},
"rename_relation": {
"to": "Per"
},
"update_relation_target": {
"to": "a"
},
"attachments_actions": {
"download": "Descarrega"
},
"calendar": {
"mon": "Dl",
"tue": "Dt",
"wed": "dc",
"thu": "Dj",
"fri": "Dv",
"sat": "Ds",
"sun": "Dg",
"january": "Gener",
"febuary": "Febrer",
"march": "Març",
"april": "Abril",
"may": "Maig",
"june": "Juny",
"july": "Juliol",
"august": "Agost",
"september": "Setembre",
"october": "Octubre",
"november": "Novembre",
"december": "Desembre"
},
"global_menu": {
"menu": "Menú",
"options": "Opcions",
"zoom": "Zoom",
"advanced": "Avançat",
"logout": "Tanca la sessió"
},
"zpetne_odkazy": {
"relation": "relació"
},
"note_icon": {
"category": "Categoria:",
"search": "Cerca:"
},
"basic_properties": {
"editable": "Editable",
"language": "Llengua"
},
"book_properties": {
"grid": "Graella",
"list": "Llista",
"collapse": "Replega",
"expand": "Desplega",
"calendar": "Calendari",
"table": "Taula",
"board": "Tauler"
},
"edited_notes": {
"deleted": "(suprimit)"
},
"file_properties": {
"download": "Descarrega",
"open": "Obre",
"title": "Fitxer"
},
"image_properties": {
"download": "Descarrega",
"open": "Obre",
"title": "Imatge"
},
"note_info_widget": {
"created": "Creat",
"modified": "Modificat",
"type": "Tipus",
"calculate": "calcula"
},
"note_paths": {
"archived": "Arxivat"
}
}

View File

@ -1666,5 +1666,8 @@
"time_selector": {
"invalid_input": "La valeur de l'heure saisie n'est pas un nombre valide.",
"minimum_input": "La valeur de temps saisie doit être d'au moins {{minimumSeconds}} secondes."
},
"multi_factor_authentication": {
"oauth_user_email": "Courriel de l'utilisateur : "
}
}

View File

@ -87,17 +87,30 @@
"delete_notes_preview": "Anteprima di eliminazione delle note",
"delete_all_clones_description": "Elimina anche tutti i cloni (può essere disfatto tramite i cambiamenti recenti)",
"erase_notes_description": "L'eliminazione normale (soft) marca le note come eliminate e potranno essere recuperate entro un certo lasso di tempo (dalla finestra dei cambiamenti recenti). Selezionando questa opzione le note si elimineranno immediatamente e non sarà possibile recuperarle.",
"erase_notes_warning": "Elimina le note in modo permanente (non potrà essere disfatto), compresi tutti i cloni. Ciò forzerà un nuovo caricamento dell'applicazione."
"erase_notes_warning": "Elimina le note in modo permanente (non potrà essere disfatto), compresi tutti i cloni. Ciò forzerà un nuovo caricamento dell'applicazione.",
"cancel": "Annulla",
"notes_to_be_deleted": "Le seguenti note saranno eliminate ({{- noteCount}})",
"no_note_to_delete": "Nessuna nota sarà eliminata (solo i cloni).",
"broken_relations_to_be_deleted": "Le seguenti relazioni saranno interrotte ed eliminate ({{- relationCount}})",
"deleted_relation_text": "La nota {{- note}} (da eliminare) è referenziata dalla relazione {{- relation}} originata da {{- source}}."
},
"info": {
"okButton": "OK",
"closeButton": "Chiudi"
},
"export": {
"close": "Chiudi"
"close": "Chiudi",
"export_note_title": "Esporta la nota",
"export_status": "Stato dell'esportazione",
"export": "Esporta",
"choose_export_type": "Scegli prima il tipo di esportazione, per favore",
"export_in_progress": "Esportazione in corso: {{progressCount}}",
"export_finished_successfully": "Esportazione terminata con successo.",
"format_pdf": "PDF- allo scopo di stampa o esportazione."
},
"help": {
"close": "Chiudi"
"close": "Chiudi",
"fullDocumentation": "Aiuto (la documentazione completa è disponibile <a class=\"external\" href=\"https://triliumnext.github.io/Docs/\">online</a>)"
},
"import": {
"close": "Chiudi"
@ -171,12 +184,23 @@
"debug": "Debug"
},
"database_anonymization": {
"light_anonymization": "Anonimizzazione leggera"
"light_anonymization": "Anonimizzazione parziale",
"title": "Anonimizzazione del Database",
"full_anonymization": "Anonimizzazione completa",
"full_anonymization_description": "Questa azione creerà una nuova copia del database e lo anonimizzerà (rimuove tutti i contenuti delle note, lasciando solo la struttura e qualche metadato non sensibile) per condividerlo online allo scopo di debugging, senza paura di far trapelare i tuoi dati personali.",
"save_fully_anonymized_database": "Salva il database completamente anonimizzato",
"light_anonymization_description": "Questa azione creerà una nuova copia del database e lo anonimizzerà in parzialmente — in particolare, solo il contenuto delle note sarà rimosso, ma i titoli e gli attributi rimarranno. Inoltre, note con script personalizzati JS di frontend/backend e widget personalizzati lasciando rimarranno. Ciò mette a disposizione più contesto per il debug dei problemi.",
"choose_anonymization": "Puoi decidere da solo se fornire un database completamente o parzialmente anonimizzato. Anche un database completamente anonimizzato è molto utile, sebbene in alcuni casi i database parzialmente anonimizzati possono accelerare il processo di identificazione dei bug e la loro correzione.",
"no_anonymized_database_yet": "Nessun database ancora anonimizzato.",
"save_lightly_anonymized_database": "Salva il database parzialmente anonimizzato",
"successfully_created_fully_anonymized_database": "Database completamente anonimizzato creato in {{anonymizedFilePath}}",
"successfully_created_lightly_anonymized_database": "Database parzialmente anonimizzato creato in {{anonymizedFilePath}}"
},
"cpu_arch_warning": {
"title": "Per favore scarica la versione ARM64",
"continue_anyway": "Continua Comunque",
"dont_show_again": "Non mostrare più questo avviso"
"dont_show_again": "Non mostrare più questo avviso",
"download_link": "Scarica la Versione Nativa"
},
"editorfeatures": {
"title": "Caratteristiche",
@ -214,7 +238,8 @@
},
"delete_label": {
"delete_label": "Elimina etichetta",
"label_name_placeholder": "nome dell'etichetta"
"label_name_placeholder": "nome dell'etichetta",
"label_name_title": "Sono ammessi i caratteri alfanumerici, il carattere di sottolineato e i due punti."
},
"tree-context-menu": {
"move-to": "Muovi in...",
@ -273,6 +298,82 @@
"existing_backups": "Backup esistenti",
"date-and-time": "Data e ora",
"path": "Percorso",
"database_backed_up_to": "Il database è stato archiviato in {{backupFilePath}}"
"database_backed_up_to": "Il database è stato archiviato in {{backupFilePath}}",
"enable_daily_backup": "Abilita le archiviazioni giornaliere",
"no_backup_yet": "Ancora nessuna archiviazione"
},
"backend_log": {
"refresh": "Aggiorna"
},
"consistency_checks": {
"find_and_fix_button": "Trova e correggi i problemi di coerenza",
"finding_and_fixing_message": "In cerca e correzione dei problemi di coerenza...",
"issues_fixed_message": "Qualsiasi problema di coerenza che possa essere stato trovato ora è corretto."
},
"database_integrity_check": {
"check_button": "Controllo dell'integrità del database",
"checking_integrity": "Controllo dell'integrità del database in corso...",
"title": "Controllo di Integrità del database",
"description": "Controllerà che il database non sia corrotto a livello SQLite. Può durare un po' di tempo, a seconda della grandezza del DB.",
"integrity_check_failed": "Controllo di integrità fallito: {{results}}"
},
"sync": {
"title": "Sincronizza",
"force_full_sync_button": "Forza una sincronizzazione completa",
"failed": "Sincronizzazione fallita: {{message}}"
},
"sync_2": {
"config_title": "Configurazione per la Sincronizzazione",
"proxy_label": "Server Proxy per la sincronizzazione (opzionale)",
"test_title": "Test di sincronizzazione",
"timeout": "Timeout per la sincronizzazione",
"timeout_unit": "millisecondi",
"save": "Salva",
"help": "Aiuto"
},
"search_engine": {
"save_button": "Salva"
},
"sql_table_schemas": {
"tables": "Tabelle"
},
"tab_row": {
"close_tab": "Chiudi la scheda",
"add_new_tab": "Aggiungi una nuova scheda",
"close": "Chiudi",
"close_other_tabs": "Chiudi le altre schede",
"close_right_tabs": "Chiudi le schede a destra",
"close_all_tabs": "Chiudi tutte le schede",
"reopen_last_tab": "Riapri l'ultima scheda chiusa",
"move_tab_to_new_window": "Sposta questa scheda in una nuova finestra",
"copy_tab_to_new_window": "Copia questa scheda in una nuova finestra",
"new_tab": "Nuova scheda"
},
"toc": {
"table_of_contents": "Sommario"
},
"table_of_contents": {
"title": "Sommario"
},
"tray": {
"title": "Vassoio di Sistema",
"enable_tray": "Abilita il vassoio (Trilium necessita di essere riavviato affinché la modifica abbia effetto)"
},
"heading_style": {
"title": "Stile dell'Intestazione",
"plain": "Normale",
"underline": "Sottolineato",
"markdown": "Stile Markdown"
},
"highlights_list": {
"title": "Punti salienti"
},
"highlights_list_2": {
"title": "Punti salienti",
"options": "Opzioni"
},
"quick-search": {
"placeholder": "Ricerca rapida",
"searching": "Ricerca in corso..."
}
}

View File

@ -225,6 +225,116 @@
},
"jump_to_note": {
"search_placeholder": "Pesquise uma nota pelo nome ou digite > para comandos...",
"close": "Fechar"
"close": "Fechar",
"search_button": "Pesquisar em texto completo <kbd>Ctrl+Enter</kbd>"
},
"markdown_import": {
"dialog_title": "Importar Markdown",
"close": "Fechar",
"modal_body_text": "Por motivos de segurança (sandbox do navegador), o JavaScript não pode acessar diretamente a área de transferência. Por favor, cole o conteúdo Markdown na área de texto abaixo e clique em Importar",
"import_button": "Importar Ctrl+Enter",
"import_success": "O conteúdo Markdown foi importado para o documento."
},
"move_to": {
"dialog_title": "Mover notas para...",
"close": "Fechar",
"notes_to_move": "Notas para mover",
"target_parent_note": "Nota pai-alvo",
"search_placeholder": "pesquisar nota pelo nome",
"move_button": "Mover para a nota selecionada <kbd>enter</kbd>",
"error_no_path": "Nenhum caminho para mover.",
"move_success_message": "As notas selecionadas foram movidas para "
},
"note_type_chooser": {
"change_path_prompt": "Alterar onde criar a nova nota:",
"search_placeholder": "buscar caminho pelo nome (valor padrão se não for preenchido)",
"modal_title": "Escolher tipo de nota",
"close": "Fechar",
"modal_body": "Escolha o tipo/modelo da nova nota:",
"templates": "Modelos:"
},
"password_not_set": {
"title": "A senha não está definida",
"close": "Fechar",
"body1": "Notas protegidas são criptografadas usando uma senha do usuário, mas a senha ainda não foi definida.",
"body2": "Para poder proteger notas, clique <a class=\"open-password-options-button\" href=\"javascript:\">aqui</a> para abrir a caixa de diálogo de Opções e definir sua senha."
},
"prompt": {
"title": "Prompt",
"close": "Fechar",
"ok": "OK <kbd>enter</kbd>",
"defaultTitle": "Prompt"
},
"protected_session_password": {
"modal_title": "Sessão Protegida",
"help_title": "Ajuda sobre notas protegidas",
"close_label": "Fechar",
"form_label": "Para prosseguir com a ação solicitada, você precisa iniciar uma sessão protegida digitando a senha:",
"start_button": "Iniciar sessão protegida <kbd>enter</kbd>"
},
"recent_changes": {
"title": "Alterações recentes",
"erase_notes_button": "Remover permanentemente as notas excluídas agora",
"close": "Fechar",
"deleted_notes_message": "As notas excluídas foram removidas permanentemente.",
"no_changes_message": "Nenhuma alteração ainda...",
"undelete_link": "Restaurar",
"confirm_undelete": "Você deseja restaurar esta nota e suas subnotas?"
},
"revisions": {
"note_revisions": "Versões da nota",
"delete_all_revisions": "Excluir todas as versões desta nota",
"delete_all_button": "Excluir todas as versões",
"help_title": "Ajuda sobre as versões da nota",
"close": "Fechar",
"revision_last_edited": "Esta versão foi editada pela última vez em {{date}}",
"confirm_delete_all": "Você quer excluir todas as versões desta nota?",
"no_revisions": "Ainda não há versões para esta nota...",
"restore_button": "Recuperar",
"confirm_restore": "Deseja restaurar esta versão? Isso irá substituir o título e o conteúdo atuais da nota por esta versão.",
"delete_button": "Excluir",
"confirm_delete": "Deseja excluir esta versão?",
"revisions_deleted": "As versões da nota foram removidas.",
"revision_restored": "A versão da nota foi restaurada.",
"revision_deleted": "A versão da nota foi excluída.",
"snapshot_interval": "Intervalo de captura das versões da nota: {{seconds}}s.",
"maximum_revisions": "Limite de capturas das versões da nota: {{number}}.",
"settings": "Configurações de versões da nota",
"download_button": "Download",
"mime": "MIME: ",
"file_size": "Tamanho do arquivo:",
"preview": "Visualizar:",
"preview_not_available": "A visualização não está disponível para este tipo de nota."
},
"sort_child_notes": {
"sort_children_by": "Ordenar notas filhas por...",
"close": "Fechar",
"sorting_criteria": "Critérios de ordenação",
"title": "título",
"date_created": "data de criação",
"date_modified": "data de modificação",
"sorting_direction": "Direção de ordenação",
"ascending": "crescente",
"descending": "decrescente",
"folders": "Pastas",
"sort_folders_at_top": "colocar pastas no topo",
"natural_sort": "Ordenação Natural",
"sort_with_respect_to_different_character_sorting": "classificar de acordo com diferentes regras de ordenação de caracteres e colação em diferentes idiomas ou regiões.",
"natural_sort_language": "Linguagem da ordenação natural",
"the_language_code_for_natural_sort": "O código do idioma para ordenação natural, por exemplo, \"zh-CN\" para chinês.",
"sort": "Ordenar <kbd>enter</kbd>"
},
"upload_attachments": {
"upload_attachments_to_note": "Enviar anexos para a nota",
"close": "Fechar",
"choose_files": "Escolher arquivos",
"files_will_be_uploaded": "Os arquivos serão enviados como anexos para",
"options": "Opções",
"shrink_images": "Reduzir imagens",
"upload": "Enviar",
"tooltip": "Se você marcar esta opção, o Trilium tentará reduzir as imagens enviadas redimensionando e otimizando, o que pode afetar a qualidade visual percebida. Se desmarcada, as imagens serão enviadas sem alterações."
},
"attribute_detail": {
"attr_detail_title": "Título Detalhado do Atributo"
}
}

View File

@ -263,7 +263,8 @@
"bulletList": "<code>*</code> или <code>-</code> с последующим пробелом для маркированного списка",
"numberedList": "<code>1.</code> или <code>1)</code> с последующим пробелом для нумерованного списка",
"blockQuote": "начните строку с <code>></code>, а затем пробела для блока цитаты",
"quickSearch": "сфокусироваться на полее ввода быстрого поиска"
"quickSearch": "сфокусироваться на полее ввода быстрого поиска",
"editNoteTitle": "В области дерева переключится с области дерева на заголовок заметки. Сочетание клавиш Enter из области заголовка заметки переключит фокус на текстовый редактор. <kbd>Ctrl+.</kbd> переключит обратно с редактора на область дерева."
},
"modal": {
"close": "Закрыть"
@ -280,7 +281,8 @@
"html_import_tags": {
"description": "Настройте HTML-теги, которые следует сохранять при импорте заметок. Теги, не указанные в этом списке, будут удалены при импорте. Некоторые теги (например, 'script') всегда удаляются в целях безопасности.",
"placeholder": "Введите HTML-теги, по одному в каждой строке",
"title": "Теги HTML для импорта"
"title": "Теги HTML для импорта",
"reset_button": "Сбросить к списку по умолчанию"
},
"import-status": "Статус импорта",
"in-progress": "Импорт в процессе: {{progress}}",
@ -305,24 +307,31 @@
"modal_title": "Выберите тип заметки",
"modal_body": "Выберите тип / шаблон новой заметки:",
"templates": "Шаблоны:",
"close": "Закрыть"
"close": "Закрыть",
"change_path_prompt": "Изменить место создания новой заметки:",
"search_placeholder": "поиск пути по имени (по умолчанию, если пусто)"
},
"password_not_set": {
"title": "Пароль не установлен",
"close": "Закрыть"
"close": "Закрыть",
"body1": "Защищенные заметки шифруются с помощью пароля пользователя, но пароль еще не установлен.",
"body2": "Чтобы иметь возможность защищать заметки, нажмите <a class=\"open-password-options-button\" href=\"javascript:\">здесь</a>, чтобы установить пароль."
},
"protected_session_password": {
"modal_title": "Защищенный сеанс",
"form_label": "Чтобы продолжить, вам необходимо начать защищенный сеанс, введя пароль:",
"start_button": "Начать защищенный сеанс <kbd>enter</kbd>",
"close_label": "Закрыть"
"close_label": "Закрыть",
"help_title": "Помощь по защищенным заметкам"
},
"recent_changes": {
"title": "Последние изменения",
"erase_notes_button": "Удалить заметки, помеченные на удаление сейчас",
"undelete_link": "восстановить",
"close": "Закрыть",
"no_changes_message": "Еще нет изменений..."
"no_changes_message": "Еще нет изменений...",
"deleted_notes_message": "Удаленные заметки были стерты окончательно.",
"confirm_undelete": "Вы хотите восстановить эту заметку и ее подзаметки?"
},
"revisions": {
"restore_button": "Восстановить",
@ -344,7 +353,10 @@
"preview": "Предпросмотр:",
"preview_not_available": "Предпосмотр недоступен для заметки этого типа.",
"mime": "MIME: ",
"settings": "Настройка версионирования заметок"
"settings": "Настройка версионирования заметок",
"no_revisions": "У этой заметки еще нет версий...",
"snapshot_interval": "Интервал создания версии заметки: {{seconds}} с.",
"maximum_revisions": "Максимальное количество ревизий заметки: {{number}}."
},
"sort_child_notes": {
"sort_children_by": "Сортировать дочерние заметки по...",
@ -360,7 +372,9 @@
"folders": "Папки",
"sort": "Сортировать <kbd>enter</kbd>",
"natural_sort": "Естественная сортировка",
"natural_sort_language": "Язык естественной сортировки"
"natural_sort_language": "Язык естественной сортировки",
"sort_folders_at_top": "сортировать папки вверху",
"the_language_code_for_natural_sort": "Код языка для естественной сортировки, например, «zh-CN» для китайского языка."
},
"upload_attachments": {
"upload_attachments_to_note": "Загрузить вложения к заметке",
@ -395,7 +409,41 @@
"multi_value": "Много значений",
"inverse_relation": "Обратное отношение",
"more_notes": "Больше заметок",
"date_time": "Дата и время"
"date_time": "Дата и время",
"attr_detail_title": "Название атрибута",
"attr_is_owned_by": "Атрибут принадлежит",
"attr_name_title": "Имя атрибута может состоять только из букв, цифр, двоеточия и подчеркивания",
"target_note_title": "Отношение — это именованная связь между исходной и целевой заметками.",
"promoted_title": "Выделенный атрибут отображается в заметке явно.",
"promoted": "Выделенный",
"promoted_alias_title": "Название, которое будет отображаться в интерфейсе выделенных атрибутов.",
"multiplicity_title": "Множественность определяет, сколько атрибутов с одним и тем же именем можно создать — максимум 1 или более 1.",
"label_type_title": "Тип метки поможет Trilium выбрать подходящий интерфейс для ввода значения метки.",
"precision_title": "Какое количество цифр после плавающей запятой должно быть доступно в интерфейсе настройки значения.",
"inverse_relation_title": "Необязательный параметр, определяющий, к какому отношению является противоположным данное отношение. Пример: отношения «Отец» и «Сын» являются обратными друг другу отношениями.",
"inheritable_title": "Наследуемый атрибут будет унаследован всеми потомками в этом дереве.",
"save_and_close": "Сохранить и закрыть <kbd>Ctrl+Enter</kbd>",
"related_notes_title": "Другие заметки с этой меткой",
"label": "Метка",
"label_definition": "Определение метки",
"relation": "Отношение",
"relation_definition": "Определение отношения",
"disable_versioning": "отключает автоматическое версионирование. Полезно, например, для больших, но неважных заметок, например, для больших JS-библиотек, используемых для написания скриптов",
"calendar_root": "отмечает заметку, которая должна использоваться в качестве корневой для заметок дня. Только одна должна быть отмечена как таковая.",
"archived": "заметки с этой меткой не будут отображаться в результатах поиска по умолчанию (а также в диалоговых окнах «Перейти к», «Добавить ссылку» и т. д.).",
"exclude_from_export": "заметки (с их поддеревьями) не будут включены ни в один экспорт заметок",
"run": "определяет, при каких событиях должен запускаться скрипт. Возможные значения:\n<ul>\n<li>frontendStartup — при запуске (или обновлении) фронтенда Trilium, но не на мобильном устройстве.</li>\n<li>mobileStartup — при запуске (или обновлении) фронтенда Trilium на мобильном устройстве.</li>\n<li>backendStartup — при запуске бэкенда Trilium.</li>\n<li>hourly — запускать каждый час. Для указания времени можно использовать дополнительную метку <code>runAtHour</code>.</li>\n<li>daily — запускать раз в день.</li>\n</ul>",
"run_on_instance": "Определить, на каком экземпляре Trilium это должно выполняться. По умолчанию — для всех экземпляров.",
"run_at_hour": "В какой час это должно выполняться? Следует использовать вместе с <code>#run=hourly</code>. Можно задать несколько раз для большего количества запусков в течение дня.",
"disable_inclusion": "скрипты с этой меткой не будут включены в выполнение родительского скрипта.",
"sorted": "сохраняет алфавитную сортировку дочерних заметок",
"sort_direction": "ASC (по умолчанию) или DESC",
"sort_folders_first": "Папки (заметки, включая дочерние) должны быть отсортированы вверх",
"top": "закрепить заданную заметку наверху в ее родителе (применяется только к отсортированным родительским заметкам)",
"hide_promoted_attributes": "Скрыть выделенные атрибуты в этой заметке",
"read_only": "редактор находится в режиме только для чтения. Работает только с текстом и заметками типа \"код\".",
"auto_read_only_disabled": "текстовые/заметки с кодом могут автоматически переводиться в режим чтения, если они слишком большие. Вы можете отключить это поведение для каждой заметки, добавив к ней соответствующую метку",
"app_css": "отмечает заметки CSS, которые загружаются в приложение Trilium и, таким образом, могут использоваться для изменения внешнего вида Trilium."
},
"command_palette": {
"configure_launch_bar_description": "Откройте конфигурацию панели запуска, чтобы добавить или удалить элементы.",
@ -621,7 +669,9 @@
"notes_to_move": "Заметки к переносу",
"dialog_title": "Переместить заметки в ...",
"search_placeholder": "поиск заметки по ее названию",
"move_button": "Переместить к выбранной заметке <kbd>enter</kbd>"
"move_button": "Переместить к выбранной заметке <kbd>enter</kbd>",
"error_no_path": "Отсутствует путь для перемещения.",
"move_success_message": "Выбранные заметки были перемещены в "
},
"prompt": {
"title": "Запрос",

View File

@ -47,15 +47,14 @@ test("User can change language from settings", async ({ page, context }) => {
// Select Chinese and ensure the translation is set.
await languageCombobox.selectOption("cn");
// Press the refresh button.
await app.currentNoteSplit.getByRole("button", { name: "Restart the application" }).click();
await app.currentNoteSplit.locator("button.restart-app-button").click();
await expect(app.currentNoteSplit).toContainText("一周的第一天", { timeout: 15000 });
await expect(languageCombobox).toHaveValue("cn");
// Select English again.
await languageCombobox.selectOption("en");
await app.currentNoteSplit.locator("button.restart-app-button").click();
await expect(app.currentNoteSplit).toContainText("Language", { timeout: 15000 });
await expect(languageCombobox).toHaveValue("en");
});

View File

@ -1 +1,106 @@
{}
{
"keyboard_actions": {
"back-in-note-history": "Navega a la nota previa a l'historial",
"forward-in-note-history": "Navega a la següent nota a l'historial",
"dialogs": "Diàlegs",
"other": "Altres"
},
"login": {
"title": "Inicia sessió",
"password": "Contrasenya",
"button": "Inicia sessió"
},
"set_password": {
"password": "Contrasenya"
},
"setup": {
"next": "Següent",
"title": "Configuració"
},
"setup_sync-from-desktop": {
"step6-here": "aquí"
},
"setup_sync-from-server": {
"server-host-placeholder": "https://<hostname>:<port>",
"proxy-server-placeholder": "https://<hostname>:<port>",
"note": "Nota:",
"password": "Contrasenya",
"password-placeholder": "Contrasenya",
"back": "Torna"
},
"setup_sync-in-progress": {
"outstanding-items-default": "N/A"
},
"share_page": {
"parent": "pare:"
},
"weekdays": {
"monday": "Dilluns",
"tuesday": "Dimarts",
"wednesday": "Dimecres",
"thursday": "Dijous",
"friday": "Divendres",
"saturday": "Dissabte",
"sunday": "Diumenge"
},
"months": {
"january": "Gener",
"february": "Febrer",
"march": "Març",
"april": "Abril",
"may": "Maig",
"june": "Juny",
"july": "Juliol",
"august": "Agost",
"september": "Setembre",
"october": "Octubre",
"november": "Novembre",
"december": "Desembre"
},
"special_notes": {
"search_prefix": "Cerca:"
},
"hidden-subtree": {
"spacer-title": "Espaiador",
"calendar-title": "Calendari",
"bookmarks-title": "Marcadors",
"settings-title": "Ajustos",
"options-title": "Opcions",
"appearance-title": "Aparença",
"shortcuts-title": "Dreceres",
"images-title": "Imatges",
"spellcheck-title": "Correció ortogràfica",
"password-title": "Contrasenya",
"multi-factor-authentication-title": "MFA",
"etapi-title": "ETAPI",
"backup-title": "Còpia de seguretat",
"sync-title": "Sincronització",
"ai-llm-title": "AI/LLM",
"other": "Altres",
"advanced-title": "Avançat",
"inbox-title": "Safata d'entrada"
},
"notes": {
"duplicate-note-suffix": "(dup)"
},
"tray": {
"bookmarks": "Marcadors"
},
"modals": {
"error_title": "Error"
},
"share_theme": {
"search_placeholder": "Cerca...",
"subpages": "Subpàgines:",
"expand": "Expandeix"
},
"hidden_subtree_templates": {
"description": "Descripció",
"calendar": "Calendari",
"table": "Taula",
"geolocation": "Geolocalització",
"board": "Tauler",
"status": "Estat",
"board_status_done": "Fet"
}
}

View File

@ -1 +1,157 @@
{}
{
"keyboard_action_names": {
"zoom-in": "Ingrandisci",
"reset-zoom-level": "Ripristina il livello di ingrandimento",
"zoom-out": "Riduci",
"toggle-full-screen": "Attiva/disattiva lo Schermo Intero",
"toggle-left-pane": "Attiva/disattiva il Pannello Sinistro",
"toggle-zen-mode": "Attiva/disattiva la modalità zen",
"toggle-right-pane": "Attiva/disattiva il Pannello Destro",
"toggle-system-tray-icon": "Attiva/disattiva l'Icona nel Vassoio di Sistema",
"toggle-note-hoisting": "Attiva/disattiva l'Ancoraggio della Nota",
"unhoist-note": "Disancora la Nota",
"reload-frontend-app": "Ricarica l'Applicazione Frontend",
"open-developer-tools": "Apri gli Strumenti da Sviluppatore",
"find-in-text": "Cerca nel Testo",
"print-active-note": "Stampa la Nota Attiva",
"export-active-note-as-pdf": "Esporta la nota attiva come PDF",
"open-note-externally": "Apri Esternamente la Nota",
"run-active-note": "Esegui la Nota Attiva",
"render-active-note": "Presenta la Nota Attiva"
},
"hidden-subtree": {
"options-title": "Opzioni",
"appearance-title": "Aspetto",
"shortcuts-title": "Scorciatoie",
"text-notes": "Note di Testo",
"code-notes-title": "Note di Codice",
"images-title": "Immagini",
"spellcheck-title": "Controllo Ortografico",
"password-title": "Password",
"multi-factor-authentication-title": "MFA",
"etapi-title": "ETAPI",
"backup-title": "Archiviazione",
"sync-title": "Sincronizza",
"ai-llm-title": "IA/LLM",
"other": "Altro",
"advanced-title": "Avanzato",
"user-guide": "Guida Utente",
"visible-launchers-title": "Lanciatori Visibili",
"localization": "Lingua e Regione",
"inbox-title": "Posta in arrivo"
},
"notes": {
"new-note": "Nuova nota",
"duplicate-note-suffix": "(dup)",
"duplicate-note-title": "{{- noteTitle }} {{ duplicateNoteSuffix }}"
},
"backend_log": {
"log-does-not-exist": "Il file di log del backend '{{ fileName }}' non esiste (ancora).",
"reading-log-failed": "La lettura del file di log del backend '{{ fileName }}' è fallita."
},
"content_renderer": {
"note-cannot-be-displayed": "Questo tipo di nota non può essere visualizzato."
},
"pdf": {
"export_filter": "Documento PDF (*.pdf)",
"unable-to-export-message": "La nota corrente non può essere esportata come PDF.",
"unable-to-export-title": "Impossibile esportare come PDF",
"unable-to-save-message": "Il file selezionato non può essere salvato. Prova di nuovo o seleziona un'altra destinazione."
},
"tray": {
"tooltip": "Trilium Notes",
"close": "Esci da Trilium",
"recents": "Note recenti",
"bookmarks": "Segnalibri",
"today": "Apri la nota di oggi",
"new-note": "Nuova nota",
"show-windows": "Mostra le finestre",
"open_new_window": "Aprire una nuova finestra"
},
"migration": {
"old_version": "La migrazione diretta dalla tua versione attuale non è supportata. Si prega di aggiornare prima all'ultima versione v0.60.4 e solo dopo a questa versione.",
"error_message": "Errore durante la migrazione alla versione {{version}}: {{stack}}",
"wrong_db_version": "La versione del database ({{version}}) è più recente di quanto l'applicazione si aspetti ({{targetVersion}}), il che significa che è stato creato da una versione più nuova e incompatibile di Trilium. Aggiorna Trilium all'ultima versione per risolvere questo problema."
},
"modals": {
"error_title": "Errore"
},
"share_theme": {
"site-theme": "Tema del Sito",
"search_placeholder": "Cerca..."
},
"keyboard_actions": {
"back-in-note-history": "Navigare alla nota precedente della cronologia",
"forward-in-note-history": "Navigare alla prossima nota della cronologia",
"open-jump-to-note-dialog": "Apri la finestra di dialogo \"Salta alla nota\"",
"open-command-palette": "Apri la palette dei comandi",
"scroll-to-active-note": "Scorri l'albero fino alla nota attiva",
"quick-search": "Attiva la barra di ricerca rapida",
"search-in-subtree": "Cerca le note nel sotto albero della nota attiva",
"expand-subtree": "Espande il sotto albero della nota corrente",
"collapse-tree": "Contrae l'albero completo delle note",
"collapse-subtree": "Contrae il sotto albero della nota corrente",
"sort-child-notes": "Ordina le note figlio",
"creating-and-moving-notes": "Crea e sposta le note",
"create-note-after": "Crea una nota dopo quella attiva",
"create-note-into": "Crea una nota come figlia di quella attiva",
"create-note-into-inbox": "Creare una nota nella casella di posta (se definita) o nella nota del giorno",
"delete-note": "Elimina una nota",
"move-note-up": "Sposta su una nota",
"move-note-down": "Sposta giù una nota",
"move-note-up-in-hierarchy": "Sposta su la nota nella gerarchia",
"move-note-down-in-hierarchy": "Sposta giù una nota nella gerarchia",
"edit-note-title": "Salta dall'albero al dettaglio della nota e modifica il titolo",
"edit-branch-prefix": "Mostra la finestra di dialogo \"Modifica il prefisso del ramo\"",
"clone-notes-to": "Clona le note selezionate",
"move-notes-to": "Sposta le note selezionate",
"note-clipboard": "Appunti delle Note",
"copy-notes-to-clipboard": "Copia le note selezionate negli appunti",
"paste-notes-from-clipboard": "Incolla le note dagli appunti nella nota attiva",
"cut-notes-to-clipboard": "Tagliare le note selezionate negli appunti",
"select-all-notes-in-parent": "Seleziona tutte le note dal livello di nota corrente",
"add-note-above-to-the-selection": "Aggiungi una nota sopra alla selezione",
"add-note-below-to-selection": "Aggiungi una nota sotto alla selezione",
"duplicate-subtree": "Duplica il sotto albero",
"tabs-and-windows": "Schede e Finestre",
"open-new-tab": "Apri una nuova scheda",
"close-active-tab": "Chiudi la scheda attiva",
"reopen-last-tab": "Riapri l'ultima scheda chiusa",
"activate-next-tab": "Attiva la scheda sulla destra",
"activate-previous-tab": "Attiva la scheda a sinistra",
"open-new-window": "Apri una nuova finestra vuota",
"toggle-tray": "Mostra/nascondi l'applicazione dal vassoio di sistema",
"first-tab": "Attiva la prima scheda nell'elenco",
"second-tab": "Attiva la seconda scheda nell'elenco",
"third-tab": "Attiva la terza scheda nell'elenco",
"fourth-tab": "Attiva la quarta scheda nella lista",
"fifth-tab": "Attiva la quinta scheda nell'elenco",
"sixth-tab": "Attiva la sesta scheda nell'elenco",
"seventh-tab": "Attiva la settima scheda nella lista",
"eight-tab": "Attiva l'ottava scheda nell'elenco",
"ninth-tab": "Attiva la nona scheda nella lista",
"last-tab": "Attiva l'ultima scheda nell'elenco",
"dialogs": "Finestre di dialogo",
"show-note-source": "Mostra la finestra di dialogo \"Sorgente della Nota\"",
"show-options": "Apri la pagina \"Opzioni\"",
"show-revisions": "Mostra la finestra di dialogo \"Revisione della Nota\"",
"show-recent-changes": "Mostra la finestra di dialogo \"Modifiche Recenti\"",
"show-sql-console": "Apri la pagina \"Console SQL\"",
"show-backend-log": "Apri la pagina \"Log del Backend\"",
"show-help": "Apri la Guida Utente integrata",
"show-cheatsheet": "Mostra una finestra modale con le operazioni comuni da tastiera",
"text-note-operations": "Operazioni sulle note di testo",
"add-link-to-text": "Apri la finestra di dialogo per aggiungere il collegamento al testo",
"follow-link-under-cursor": "Segui il collegamento all'interno del quale è il cursore",
"insert-date-and-time-to-text": "Inserisci la data e l'ora corrente nel testo",
"paste-markdown-into-text": "Incolla il Markdown dagli appunti nella nota di testo",
"cut-into-note": "Taglia la selezione dalla nota corrente e crea una sotto nota col testo selezionato",
"add-include-note-to-text": "Apre la finestra di dialogo per includere una nota",
"edit-readonly-note": "Modifica una nota di sola lettura",
"attributes-labels-and-relations": "Attributi (etichette e relazioni)",
"add-new-label": "Crea una nuova etichetta",
"create-new-relation": "Crea una nuova relazione",
"ribbon-tabs": "Nastro delle schede",
"toggle-basic-properties": "Mostra/nascondi le Proprietà di Base"
}
}

View File

@ -412,6 +412,17 @@ export interface Api {
*/
backupNow(backupName: string): Promise<string>;
/**
* Enables the complete duplication of the specified original note and all its children into the specified parent note.
* The new note will be named the same as the original, with (Dup) added to the end of it.
*
* @param origNoteId - the noteId for the original note to be duplicated
* @param newParentNoteId - the noteId for the parent note where the duplication is to be placed.
*
* @returns the note and the branch of the newly created note.
*/
duplicateSubtree(origNoteId: string, newParentNoteId: string): { note: BNote; branch: BBranch; }
/**
* This object contains "at your risk" and "no BC guarantees" objects for advanced use cases.
*/
@ -703,6 +714,7 @@ function BackendScriptApi(this: Api, currentNote: BNote, apiParams: ApiParams) {
this.runOutsideOfSync = syncMutex.doExclusively;
this.backupNow = backupService.backupNow;
this.duplicateSubtree = noteService.duplicateSubtree;
this.__private = {
becca

View File

@ -18,6 +18,7 @@ const DAYJS_LOADER: Record<LOCALE_IDS, () => Promise<typeof import("dayjs/locale
"he": () => import("dayjs/locale/he.js"),
"ku": () => import("dayjs/locale/ku.js"),
"ro": () => import("dayjs/locale/ro.js"),
"ru": () => import("dayjs/locale/ru.js"),
"tw": () => import("dayjs/locale/zh-tw.js")
}

View File

@ -931,10 +931,6 @@ function duplicateSubtree(origNoteId: string, newParentNoteId: string) {
const noteIdMapping = getNoteIdMapping(origNote);
if (!origBranch) {
throw new Error("Unable to find original branch to duplicate.");
}
const res = duplicateSubtreeInner(origNote, origBranch, newParentNoteId, noteIdMapping);
const duplicateNoteSuffix = t("notes.duplicate-note-suffix");
@ -966,7 +962,7 @@ function duplicateSubtreeWithoutRoot(origNoteId: string, newNoteId: string) {
}
}
function duplicateSubtreeInner(origNote: BNote, origBranch: BBranch, newParentNoteId: string, noteIdMapping: Record<string, string>) {
function duplicateSubtreeInner(origNote: BNote, origBranch: BBranch | null | undefined, newParentNoteId: string, noteIdMapping: Record<string, string>) {
if (origNote.isProtected && !protectedSessionService.isProtectedSessionAvailable()) {
throw new Error(`Cannot duplicate note '${origNote.noteId}' because it is protected and protected session is not available. Enter protected session and try again.`);
}

View File

@ -45,6 +45,11 @@ const UNSORTED_LOCALES = [
name: "Română",
electronLocale: "ro"
},
{
id: "ru",
name: "Русский",
electronLocale: "ru"
},
/*
* Right to left languages