diff --git a/2.trans.py b/2.trans.py index 8c59c39..f49ac0a 100644 --- a/2.trans.py +++ b/2.trans.py @@ -299,6 +299,8 @@ def replace_in_file(file_path, translation, base_path=BASE_PATH): 'title="{{Help on links}}"', 'title="{{Cloned note will be shown in note tree with given prefix}}"', '{{search for note by its name}}', + 'showMessage({{`Note "${clonedNote.title}" has been cloned into ${targetNote.title}`}}', + ' logError("{{No path to clone to.}}"', ] replace_in_file(file_path, translation) @@ -523,6 +525,7 @@ def replace_in_file(file_path, translation, base_path=BASE_PATH): '>{{Appearance}}<', '>{{Shortcuts}}<', '>{{Keyboard shortcuts}}<', + '>{{Text notes}}<', '>{{Code notes}}<', # removed from 0.50 # '>{{Username & password}}<', @@ -571,6 +574,7 @@ def replace_in_file(file_path, translation, base_path=BASE_PATH): '>{{Sort children by ...}}<', '>{{Sorting criteria}}<', '>{{Sorting direction}}<', + '>{{Folders}}<', '>{{Sort }}<', '>{{enter}}<', ' {{title}}', @@ -854,6 +858,8 @@ def replace_in_file(file_path, translation, base_path=BASE_PATH): '>{{Automatic readonly note size is the size after which notes will be displayed in a readonly mode (for performance reasons).}}<', '>{{Automatic readonly size (text notes)}}<', '>{{Automatic readonly size (code notes)}}<', + '>{{Network connections}}<', + '>{{Check for updates automatically}}<', ] replace_in_file(file_path, translation) @@ -908,6 +914,19 @@ def replace_in_file(file_path, translation, base_path=BASE_PATH): ] replace_in_file(file_path, translation) +file_path = 'src/public/app/widgets/dialogs/options/text_notes.js' +translation = [ + '>{{Settings on this options tab are saved automatically after each change.}}<', + '>{{Heading style}}<', + '>{{Plain}}<', + '>{{Underline}}<', + '>{{Markdown-style}}<', + '>{{Table of contents}}<', + '>{{You can also use this option to effectively disable TOC by setting a very high number.}}<', + '{{Table of contents will appear in text notes when the note has more than a defined number of headings. You can customize this number:}}', +] +replace_in_file(file_path, translation) + file_path = 'src/services/change_password.js' translation = [ '''message: "{{Given current password doesn't match hash}}"''', @@ -927,6 +946,18 @@ def replace_in_file(file_path, translation, base_path=BASE_PATH): ] replace_in_file(file_path, translation, TARGET_PATH) +file_path = 'src/services/search/expressions/note_content_fulltext.js' +translation = [ + 'throw new Error(`{{Note content can be searched only with operators: }}`', +] +replace_in_file(file_path, translation, TARGET_PATH) + +file_path = 'src/services/search/services/handle_parens.js' +translation = [ + 'throw new Error("{{Did not find matching right parenthesis.}}"', +] +replace_in_file(file_path, translation, TARGET_PATH) + # no need for translate for now file_path = 'src/services/search/services/search.js' translation = [ @@ -936,6 +967,13 @@ def replace_in_file(file_path, translation, base_path=BASE_PATH): file_path = 'src/services/sql_init.js' translation = [ "title: '{{root}}", + 'throw new Error("{{DB is already initialized}}"', +] +replace_in_file(file_path, translation, TARGET_PATH) + +file_path = 'src/services/setup.js' +translation = [ + 'throw new Error(`{{Could not setup sync since local sync protocol version is ${appInfo.syncVersion} while remote is ${response.syncVersion}. To fix this issue, use same Trilium version on all instances.}}`', ] replace_in_file(file_path, translation, TARGET_PATH) @@ -1333,6 +1371,7 @@ def replace_in_file(file_path, translation, base_path=BASE_PATH): '- {{run once an hour. You can use additional label runAtHour to specify at which hour.}}<', '- {{run once a day}}<', '>{{Custom request handler}}<', + '>{{ will force the Table of Contents to be shown, }}<', 'title="{{Cancel changes and close}}"', 'title="{{Attribute name can be composed of alphanumeric characters, colon and underscore only}}"', 'title="{{Relation is a named connection between source note and target note.}}"', @@ -1386,6 +1425,7 @@ def replace_in_file(file_path, translation, base_path=BASE_PATH): "{{marks note which is served on /share root.}}", "{{note will be served in its raw format, without HTML wrapper}}", "{{will forbid robot indexing of this note via X-Robots-Tag: noindex header}}", + "{{require credentials to access this shared note. Value is expected to be in format 'username:password'. Don't forget to make this inheritable to apply to child-notes/images.}}", "{{comma delimited names of relations which should be displayed. All other ones will be hidden.}}", "{{comma delimited names of relations which should be hidden. All other ones will be displayed.}}", "{{executes when note is created on backend}}", @@ -1800,6 +1840,21 @@ def replace_in_file(file_path, translation, base_path=BASE_PATH): ] replace_in_file(file_path, translation) +file_path = 'src/public/app/widgets/floating_buttons/relation_map_buttons.js' +translation = [ + 'title="{{Create new child note and add it into this relation map}}"', + 'title="{{Reset pan & zoom to initial coordinates and magnification}}"', + 'title="{{Zoom In}}"', + 'title="{{Zoom Out}}"', +] +replace_in_file(file_path, translation) + +file_path = 'src/public/app/widgets/floating_buttons/mermaid_export_button.js' +translation = [ + 'title="{{Export Mermaid diagram as SVG}}"', +] +replace_in_file(file_path, translation) + file_path = 'src/public/app/widgets/mobile_widgets/mobile_detail_menu.js' translation = [ 'title: "{{Insert child note}}"', @@ -1813,6 +1868,8 @@ def replace_in_file(file_path, translation, base_path=BASE_PATH): translation = [ '>{{No plugin buttons loaded yet.}}<', '> {{Switch to desktop version}}<', + '>{{ Enter protected session}}<', + '>{{ Leave protected session}}<', '> {{Logout}}<', 'title="{{New note}}"', 'title="{{Collapse note tree}}"', @@ -3107,6 +3164,12 @@ def replace_in_file(file_path, translation, base_path=BASE_PATH): ] replace_in_file(file_path, translation, TARGET_PATH) +file_path = 'src/routes/api/image.js' +translation = [ + 'message: "{{Unknown image type: }}"', +] +replace_in_file(file_path, translation, TARGET_PATH) + file_path = 'src/routes/api/login.js' translation = [ '''message: "{{DB schema does not exist, can't sync.}}"''', diff --git a/translations.py b/translations.py index 1855476..0c6c419 100644 --- a/translations.py +++ b/translations.py @@ -426,6 +426,7 @@ 'JS backend': '', 'Open': '', ' Enter protected session': '', + ' Leave protected session': '', 'This note is protected and to access it you need to enter password.': '', 'Content of this note cannot be displayed in the book format': '', 'Collapse all notes': '', @@ -1411,6 +1412,7 @@ 'match words': '', 'This note was originally taken from:': '', 'Table of Contents': '', + 'Table of contents': '', 'Apply bulk actions': '', 'Apply bulk actions on selected notes': '', 'Bulk assign attributes': '', @@ -1464,4 +1466,19 @@ 'Disclaimer on the experimental status': '', 'Web View is an experimental note type, and it might be removed or substantially changed in the future. Web View works also only in the desktop build.': '', 'Type the content of your code note here...': '', + 'Text notes': '', + ' will force the Table of Contents to be shown, ': '', + 'You can also use this option to effectively disable TOC by setting a very high number.': '', + 'The diagram could not be displayed. See ': '', + 'Note content can be searched only with operators: ': '', + 'Did not find matching right parenthesis.': '', + 'Could not setup sync since local sync protocol version is ${appInfo.syncVersion} while remote is ${response.syncVersion}. To fix this issue, use same Trilium version on all instances.': '', + 'DB is already initialized': '', + 'Unknown image type: ': '', + 'Folders': '', + 'Export Mermaid diagram as SVG': '', + 'Table of contents will appear in text notes when the note has more than a defined number of headings. You can customize this number:': '', + 'Network connections': '', + 'Check for updates automatically': '', + "require credentials to access this shared note. Value is expected to be in format 'username:password'. Don't forget to make this inheritable to apply to child-notes/images.": '', } \ No newline at end of file diff --git a/translations_cn.py b/translations_cn.py index 85b124b..922f318 100644 --- a/translations_cn.py +++ b/translations_cn.py @@ -233,7 +233,7 @@ 'descending': '降序', 'No link to add.': '缺少要添加的链接.', '`Note "${clonedNote.title}" has been cloned into ${targetNote.title}`': '`笔记 "${clonedNote.title}" 已被克隆至 ${targetNote.title}`', - 'No path to clone to.': '缺少要克隆到的路径.js组件', + 'No path to clone to.': '缺少要克隆到的路径.', 'Are you sure you want to remove the note "${title}" from relation map?': '你确定要从关系图中删除笔记"${title}"吗?', "If you don't check this, note will be only removed from relation map, but will stay as a note.": '如果你不勾选这个, 只会从关系图中删除笔记的引用, 但保留笔记本身.', 'Also delete note': '连笔记一起删除', @@ -416,6 +416,7 @@ 'JS backend': 'JS 后端', 'Open': '打开', ' Enter protected session': '进入受保护的会话', + ' Leave protected session': '退出受保护的会话', 'This note is protected and to access it you need to enter password.': '此笔记受保护, 您需要输入密码来访问它.', 'Content of this note cannot be displayed in the book format': '该笔记的内容无法以书籍格式显示', 'Collapse all notes': '折叠所有笔记', @@ -1404,6 +1405,7 @@ 'match words': '全字匹配', 'This note was originally taken from:': '笔记来源:', 'Table of Contents': '目录', + 'Table of contents': '目录', 'Apply bulk actions': '应用批量动作', 'Apply bulk actions on selected notes': '对选定的笔记应用批量动作', 'Branch prefix has been saved.': '分支前缀已保存.', @@ -1459,5 +1461,20 @@ 'Disclaimer on the experimental status': '实验性功能免责声明', 'Web View is an experimental note type, and it might be removed or substantially changed in the future. Web View works also only in the desktop build.': '网页视图是一种实验性笔记类型, 将来可能会被删除或大幅更改. 网页视图只在桌面端有效', 'Type the content of your code note here...': '在此处输入代码笔记的内容...', + 'Text notes': '文字笔记', + ' will force the Table of Contents to be shown, ': '将会强制显示目录,', + 'You can also use this option to effectively disable TOC by setting a very high number.': '您可以设置一个非常大的数来禁用目录.', + 'The diagram could not be displayed. See ': '图表无法显示. 请看 ', + 'Note content can be searched only with operators: ': '笔记内容只能使用运算符搜索: ', + 'Did not find matching right parenthesis.': '没有找到匹配的右括号.', + 'Could not setup sync since local sync protocol version is ${appInfo.syncVersion} while remote is ${response.syncVersion}. To fix this issue, use same Trilium version on all instances.': '无法设置同步,因为本地同步协议版本是 ${appInfo.syncVersion} 而远程是 ${response.syncVersion}. 要修复这个问题, 请保证所有Trilium服务端和客户端都使用相同的版本', + 'DB is already initialized': '数据库已经初始化', + 'Unknown image type: ': '未知图像类型: ', + 'Folders': '文件夹', + 'Export Mermaid diagram as SVG': '将美人鱼图导出为SVG', + 'Table of contents will appear in text notes when the note has more than a defined number of headings. You can customize this number:': '当笔记具有超过定义数量的标题时, 目录将出现在文本笔记中. 你可以自定义这个数值:', + 'Network connections': '网络连接', + 'Check for updates automatically': '自动检查更新', + "require credentials to access this shared note. Value is expected to be in format 'username:password'. Don't forget to make this inheritable to apply to child-notes/images.": "需要身份验证才能访问此共享笔记. 值的格式'用户名:密码'. 别忘了设置为可继承来对所有子笔记和图片生效.", '': '', }