diff --git a/.github/workflows/unblock_signing.yml b/.github/workflows/unblock_signing.yml
new file mode 100644
index 000000000..0860f89da
--- /dev/null
+++ b/.github/workflows/unblock_signing.yml
@@ -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 }}
diff --git a/apps/client/src/translations/ca/translation.json b/apps/client/src/translations/ca/translation.json
index 0967ef424..e485aa5c2 100644
--- a/apps/client/src/translations/ca/translation.json
+++ b/apps/client/src/translations/ca/translation.json
@@ -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"
+ }
+}
diff --git a/apps/client/src/translations/fr/translation.json b/apps/client/src/translations/fr/translation.json
index 3bc3aa4ba..344d83923 100644
--- a/apps/client/src/translations/fr/translation.json
+++ b/apps/client/src/translations/fr/translation.json
@@ -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 : "
}
}
diff --git a/apps/client/src/translations/it/translation.json b/apps/client/src/translations/it/translation.json
index d04a3d9fa..05209fdcd 100644
--- a/apps/client/src/translations/it/translation.json
+++ b/apps/client/src/translations/it/translation.json
@@ -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 online)"
},
"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..."
}
}
diff --git a/apps/client/src/translations/pt_br/translation.json b/apps/client/src/translations/pt_br/translation.json
index 903ef4a70..b965d52e7 100644
--- a/apps/client/src/translations/pt_br/translation.json
+++ b/apps/client/src/translations/pt_br/translation.json
@@ -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 Ctrl+Enter"
+ },
+ "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 enter",
+ "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 aqui para abrir a caixa de diálogo de Opções e definir sua senha."
+ },
+ "prompt": {
+ "title": "Prompt",
+ "close": "Fechar",
+ "ok": "OK enter",
+ "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 enter"
+ },
+ "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 enter"
+ },
+ "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"
}
}
diff --git a/apps/client/src/translations/ru/translation.json b/apps/client/src/translations/ru/translation.json
index 66a66a0a8..18bd17953 100644
--- a/apps/client/src/translations/ru/translation.json
+++ b/apps/client/src/translations/ru/translation.json
@@ -263,7 +263,8 @@
"bulletList": "*
или -
с последующим пробелом для маркированного списка",
"numberedList": "1.
или 1)
с последующим пробелом для нумерованного списка",
"blockQuote": "начните строку с >
, а затем пробела для блока цитаты",
- "quickSearch": "сфокусироваться на полее ввода быстрого поиска"
+ "quickSearch": "сфокусироваться на полее ввода быстрого поиска",
+ "editNoteTitle": "В области дерева переключится с области дерева на заголовок заметки. Сочетание клавиш Enter из области заголовка заметки переключит фокус на текстовый редактор. Ctrl+. переключит обратно с редактора на область дерева."
},
"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": "Чтобы иметь возможность защищать заметки, нажмите здесь, чтобы установить пароль."
},
"protected_session_password": {
"modal_title": "Защищенный сеанс",
"form_label": "Чтобы продолжить, вам необходимо начать защищенный сеанс, введя пароль:",
"start_button": "Начать защищенный сеанс enter",
- "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": "Сортировать enter",
"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": "Сохранить и закрыть Ctrl+Enter",
+ "related_notes_title": "Другие заметки с этой меткой",
+ "label": "Метка",
+ "label_definition": "Определение метки",
+ "relation": "Отношение",
+ "relation_definition": "Определение отношения",
+ "disable_versioning": "отключает автоматическое версионирование. Полезно, например, для больших, но неважных заметок, например, для больших JS-библиотек, используемых для написания скриптов",
+ "calendar_root": "отмечает заметку, которая должна использоваться в качестве корневой для заметок дня. Только одна должна быть отмечена как таковая.",
+ "archived": "заметки с этой меткой не будут отображаться в результатах поиска по умолчанию (а также в диалоговых окнах «Перейти к», «Добавить ссылку» и т. д.).",
+ "exclude_from_export": "заметки (с их поддеревьями) не будут включены ни в один экспорт заметок",
+ "run": "определяет, при каких событиях должен запускаться скрипт. Возможные значения:\n
runAtHour
.#run=hourly
. Можно задать несколько раз для большего количества запусков в течение дня.",
+ "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": "Переместить к выбранной заметке enter"
+ "move_button": "Переместить к выбранной заметке enter",
+ "error_no_path": "Отсутствует путь для перемещения.",
+ "move_success_message": "Выбранные заметки были перемещены в "
},
"prompt": {
"title": "Запрос",
diff --git a/apps/server-e2e/src/i18n.spec.ts b/apps/server-e2e/src/i18n.spec.ts
index 0124f271b..c7a325768 100644
--- a/apps/server-e2e/src/i18n.spec.ts
+++ b/apps/server-e2e/src/i18n.spec.ts
@@ -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");
});
diff --git a/apps/server/src/assets/translations/ca/server.json b/apps/server/src/assets/translations/ca/server.json
index 0967ef424..1384c28f4 100644
--- a/apps/server/src/assets/translations/ca/server.json
+++ b/apps/server/src/assets/translations/ca/server.json
@@ -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://