mirror of https://github.com/laurent22/joplin.git
Merge branch 'master' of github.com:laurent22/joplin
commit
8c42ddf6c3
|
@ -13,8 +13,10 @@ msgstr ""
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 2.0.6\n"
|
"X-Generator: Poedit 2.2.3\n"
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
"POT-Creation-Date: \n"
|
||||||
|
"PO-Revision-Date: \n"
|
||||||
|
|
||||||
msgid "To delete a tag, untag the associated notes."
|
msgid "To delete a tag, untag the associated notes."
|
||||||
msgstr "タグを削除するには、関連するノートからタグを外してください。"
|
msgstr "タグを削除するには、関連するノートからタグを外してください。"
|
||||||
|
@ -519,7 +521,7 @@ msgstr "致命的なエラー:"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "All potential ports are in use - please report the issue at %s"
|
msgid "All potential ports are in use - please report the issue at %s"
|
||||||
msgstr ""
|
msgstr "すべての潜在ポートは利用中です - 問題を %s に報告してください"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"The application has been authorised - you may now close this browser tab."
|
"The application has been authorised - you may now close this browser tab."
|
||||||
|
@ -576,18 +578,16 @@ msgstr ""
|
||||||
"\"%s\" を \"%s\" フォーマットにエクスポート中。しばらくお待ちください..."
|
"\"%s\" を \"%s\" フォーマットにエクスポート中。しばらくお待ちください..."
|
||||||
|
|
||||||
msgid "Sidebar"
|
msgid "Sidebar"
|
||||||
msgstr ""
|
msgstr "サイドバー"
|
||||||
|
|
||||||
msgid "Note list"
|
msgid "Note list"
|
||||||
msgstr ""
|
msgstr "ノートの一覧"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Note title"
|
msgid "Note title"
|
||||||
msgstr "ノートブックの題名:"
|
msgstr "ノートの題名:"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Note body"
|
msgid "Note body"
|
||||||
msgstr "ノートブック"
|
msgstr "ノートの本文"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
msgid "Importing from \"%s\" as \"%s\" format. Please wait..."
|
||||||
|
@ -622,45 +622,43 @@ msgid "Web clipper options"
|
||||||
msgstr "Webクリッパーのオプション"
|
msgstr "Webクリッパーのオプション"
|
||||||
|
|
||||||
msgid "Create note from template"
|
msgid "Create note from template"
|
||||||
msgstr ""
|
msgstr "テンプレートからノートを作成"
|
||||||
|
|
||||||
msgid "Create to-do from template"
|
msgid "Create to-do from template"
|
||||||
msgstr ""
|
msgstr "テンプレートからto-doを作成"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Insert template"
|
msgid "Insert template"
|
||||||
msgstr "日付の入力"
|
msgstr "テンプレートを挿入"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Open template directory"
|
msgid "Open template directory"
|
||||||
msgstr "Joplin エクスポートディレクトリ"
|
msgstr "テンプレートディレクトリを開く"
|
||||||
|
|
||||||
msgid "Refresh templates"
|
msgid "Refresh templates"
|
||||||
msgstr ""
|
msgstr "テンプレートの更新"
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "Revision: %s (%s)"
|
msgid "Revision: %s (%s)"
|
||||||
msgstr "%s %s (%s)"
|
msgstr "リビジョン: %s (%s)"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s %s (%s, %s)"
|
msgid "%s %s (%s, %s)"
|
||||||
msgstr "%s %s (%s, %s)"
|
msgstr "%s %s (%s, %s)"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "&File"
|
msgid "&File"
|
||||||
msgstr "ファイル"
|
msgstr "&ファイル"
|
||||||
|
|
||||||
msgid "About Joplin"
|
msgid "About Joplin"
|
||||||
msgstr "Joplinについて"
|
msgstr "Joplinについて"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid "Preferences..."
|
msgid "Preferences..."
|
||||||
msgstr ""
|
msgstr "環境設定"
|
||||||
|
|
||||||
msgid "Check for updates..."
|
msgid "Check for updates..."
|
||||||
msgstr "アップデートのチェック..."
|
msgstr "アップデートのチェック..."
|
||||||
|
|
||||||
msgid "Templates"
|
msgid "Templates"
|
||||||
msgstr ""
|
msgstr "テンプレート"
|
||||||
|
|
||||||
msgid "Import"
|
msgid "Import"
|
||||||
msgstr "インポート"
|
msgstr "インポート"
|
||||||
|
@ -679,11 +677,10 @@ msgid "Quit"
|
||||||
msgstr "終了"
|
msgstr "終了"
|
||||||
|
|
||||||
msgid "Close Window"
|
msgid "Close Window"
|
||||||
msgstr ""
|
msgstr "ウィンドウを閉じる"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "&Edit"
|
msgid "&Edit"
|
||||||
msgstr "編集"
|
msgstr "&編集"
|
||||||
|
|
||||||
msgid "Copy"
|
msgid "Copy"
|
||||||
msgstr "コピー"
|
msgstr "コピー"
|
||||||
|
@ -704,7 +701,7 @@ msgid "Italic"
|
||||||
msgstr "斜体"
|
msgstr "斜体"
|
||||||
|
|
||||||
msgid "Link"
|
msgid "Link"
|
||||||
msgstr ""
|
msgstr "リンク"
|
||||||
|
|
||||||
msgid "Code"
|
msgid "Code"
|
||||||
msgstr "コード"
|
msgstr "コード"
|
||||||
|
@ -724,9 +721,8 @@ msgstr "すべてのノートを検索"
|
||||||
msgid "Search in current note"
|
msgid "Search in current note"
|
||||||
msgstr "現在のノートを検索"
|
msgstr "現在のノートを検索"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "&View"
|
msgid "&View"
|
||||||
msgstr "表示"
|
msgstr "&表示"
|
||||||
|
|
||||||
msgid "Toggle sidebar"
|
msgid "Toggle sidebar"
|
||||||
msgstr "サイドバーの表示切り替え"
|
msgstr "サイドバーの表示切り替え"
|
||||||
|
@ -734,17 +730,14 @@ msgstr "サイドバーの表示切り替え"
|
||||||
msgid "Toggle editor layout"
|
msgid "Toggle editor layout"
|
||||||
msgstr "エディターレイアウトの表示切り替え"
|
msgstr "エディターレイアウトの表示切り替え"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Focus"
|
msgid "Focus"
|
||||||
msgstr "本文にフォーカス"
|
msgstr "フォーカス"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "&Tools"
|
msgid "&Tools"
|
||||||
msgstr "ツール"
|
msgstr "&ツール"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "&Help"
|
msgid "&Help"
|
||||||
msgstr "ヘルプ"
|
msgstr "&ヘルプ"
|
||||||
|
|
||||||
msgid "Website and documentation"
|
msgid "Website and documentation"
|
||||||
msgstr "Webサイトとドキュメント"
|
msgstr "Webサイトとドキュメント"
|
||||||
|
@ -753,7 +746,7 @@ msgid "Make a donation"
|
||||||
msgstr "寄付する"
|
msgstr "寄付する"
|
||||||
|
|
||||||
msgid "Toggle development tools"
|
msgid "Toggle development tools"
|
||||||
msgstr ""
|
msgstr "開発者ツールのオンオフを切り替える"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Open %s"
|
msgid "Open %s"
|
||||||
|
@ -773,18 +766,18 @@ msgstr "現在のバージョンは最新版です。"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%s (pre-release)"
|
msgid "%s (pre-release)"
|
||||||
msgstr ""
|
msgstr "%s (プレリリース)"
|
||||||
|
|
||||||
msgid "An update is available, do you want to download it now?"
|
msgid "An update is available, do you want to download it now?"
|
||||||
msgstr "アップデートがあります。すぐにダウンロードしますか?"
|
msgstr "アップデートがあります。すぐにダウンロードしますか?"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Your version: %s"
|
msgid "Your version: %s"
|
||||||
msgstr ""
|
msgstr "あなたのバージョン: %s"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "New version: %s"
|
msgid "New version: %s"
|
||||||
msgstr ""
|
msgstr "新バージョン: %s"
|
||||||
|
|
||||||
msgid "Yes"
|
msgid "Yes"
|
||||||
msgstr "Yes"
|
msgstr "Yes"
|
||||||
|
@ -867,7 +860,7 @@ msgid "Check synchronisation configuration"
|
||||||
msgstr "同期の設定を確認する"
|
msgstr "同期の設定を確認する"
|
||||||
|
|
||||||
msgid "Browse..."
|
msgid "Browse..."
|
||||||
msgstr ""
|
msgstr "参照..."
|
||||||
|
|
||||||
msgid "Apply"
|
msgid "Apply"
|
||||||
msgstr "適用"
|
msgstr "適用"
|
||||||
|
@ -960,9 +953,8 @@ msgstr "状態"
|
||||||
msgid "Encryption is:"
|
msgid "Encryption is:"
|
||||||
msgstr "暗号化の状態:"
|
msgstr "暗号化の状態:"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Usage"
|
msgid "Usage"
|
||||||
msgstr "使用方法: %s"
|
msgstr "使い方"
|
||||||
|
|
||||||
msgid "Back"
|
msgid "Back"
|
||||||
msgstr "戻る"
|
msgstr "戻る"
|
||||||
|
@ -996,7 +988,7 @@ msgid "Set alarm:"
|
||||||
msgstr "アラームをセット:"
|
msgstr "アラームをセット:"
|
||||||
|
|
||||||
msgid "Template file:"
|
msgid "Template file:"
|
||||||
msgstr ""
|
msgstr "テンプレートファイル:"
|
||||||
|
|
||||||
msgid "Layout"
|
msgid "Layout"
|
||||||
msgstr "レイアウト"
|
msgstr "レイアウト"
|
||||||
|
@ -1010,9 +1002,8 @@ msgstr "いくつかの項目は同期されませんでした。"
|
||||||
msgid "View them now"
|
msgid "View them now"
|
||||||
msgstr "今すぐ表示"
|
msgstr "今すぐ表示"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "One or more master keys need a password."
|
msgid "One or more master keys need a password."
|
||||||
msgstr "マスターパスワードを入力してください:"
|
msgstr "パスワードに1つ以上のマスターキーが必要です"
|
||||||
|
|
||||||
msgid "Set the password"
|
msgid "Set the password"
|
||||||
msgstr "パスワードの設定"
|
msgstr "パスワードの設定"
|
||||||
|
@ -1030,35 +1021,35 @@ msgstr "場所"
|
||||||
msgid "URL"
|
msgid "URL"
|
||||||
msgstr "URL"
|
msgstr "URL"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Note History"
|
msgid "Note History"
|
||||||
msgstr "ノートブック"
|
msgstr "ノートの履歴"
|
||||||
|
|
||||||
msgid "Markup"
|
msgid "Markup"
|
||||||
msgstr ""
|
msgstr "マークアップ"
|
||||||
|
|
||||||
msgid "Previous versions of this note"
|
msgid "Previous versions of this note"
|
||||||
msgstr ""
|
msgstr "このノートの以前のバージョン"
|
||||||
|
|
||||||
msgid "Note properties"
|
msgid "Note properties"
|
||||||
msgstr "ノートのプロパティ"
|
msgstr "ノートのプロパティ"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The note \"%s\" has been successfully restored to the notebook \"%s\"."
|
msgid "The note \"%s\" has been successfully restored to the notebook \"%s\"."
|
||||||
msgstr ""
|
msgstr "ノート \"%s\" のノートブック \"%s\"への復元は成功しました。"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "This note has no history"
|
msgid "This note has no history"
|
||||||
msgstr "ノートは変更されています:"
|
msgstr "こののーとに履歴はありません"
|
||||||
|
|
||||||
msgid "Restore"
|
msgid "Restore"
|
||||||
msgstr ""
|
msgstr "復元"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Click \"%s\" to restore the note. It will be copied in the notebook named "
|
"Click \"%s\" to restore the note. It will be copied in the notebook named "
|
||||||
"\"%s\". The current version of the note will not be replaced or modified."
|
"\"%s\". The current version of the note will not be replaced or modified."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"\"%s\"をクリックすると復元を行います。復元されるノートは\"%s\"というノート"
|
||||||
|
"ブックにコピーされます。現在のバージョンのノートの置換や変更は行われません。"
|
||||||
|
|
||||||
msgid "Open..."
|
msgid "Open..."
|
||||||
msgstr "開く..."
|
msgstr "開く..."
|
||||||
|
@ -1092,7 +1083,7 @@ msgstr ""
|
||||||
"ノートを編集してください。"
|
"ノートを編集してください。"
|
||||||
|
|
||||||
msgid "Only one note can be printed or exported to PDF at a time."
|
msgid "Only one note can be printed or exported to PDF at a time."
|
||||||
msgstr ""
|
msgstr "一度に一つのノートだけPDFに印刷もしくはエクスポートができます。"
|
||||||
|
|
||||||
msgid "strong text"
|
msgid "strong text"
|
||||||
msgstr "文字を太字に"
|
msgstr "文字を太字に"
|
||||||
|
@ -1174,18 +1165,19 @@ msgstr "暗号化のオプション"
|
||||||
msgid "Clipper Options"
|
msgid "Clipper Options"
|
||||||
msgstr "Clipperのオプション"
|
msgstr "Clipperのオプション"
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid ""
|
msgid ""
|
||||||
"Delete notebook \"%s\"?\n"
|
"Delete notebook \"%s\"?\n"
|
||||||
"\n"
|
"\n"
|
||||||
"All notes and sub-notebooks within this notebook will also be deleted."
|
"All notes and sub-notebooks within this notebook will also be deleted."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"ノートブックを削除しますか? このノートブックにあるノートとサブノートはすべ"
|
"ノートブック \"%s\" を削除しますか?\n"
|
||||||
"て消えてしまいます。"
|
"\n"
|
||||||
|
"このノートブックにあるノートとサブノートはすべて消えてしまいます。"
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "Remove tag \"%s\" from all notes?"
|
msgid "Remove tag \"%s\" from all notes?"
|
||||||
msgstr "すべてのノートからこのタグを削除しますか?"
|
msgstr "すべてのノートからタグ \"%s\" を削除しますか?"
|
||||||
|
|
||||||
msgid "Remove this search from the sidebar?"
|
msgid "Remove this search from the sidebar?"
|
||||||
msgstr "サイドバーからこの検索を削除しますか?"
|
msgstr "サイドバーからこの検索を削除しますか?"
|
||||||
|
@ -1200,7 +1192,7 @@ msgid "Please select where the sync status should be exported to"
|
||||||
msgstr "同期状況の出力先を選択してください"
|
msgstr "同期状況の出力先を選択してください"
|
||||||
|
|
||||||
msgid "Retry"
|
msgid "Retry"
|
||||||
msgstr ""
|
msgstr "再実行"
|
||||||
|
|
||||||
msgid "Add or remove tags"
|
msgid "Add or remove tags"
|
||||||
msgstr "タグの追加と削除"
|
msgstr "タグの追加と削除"
|
||||||
|
@ -1224,21 +1216,23 @@ msgstr "ToDoに切り替え"
|
||||||
msgid "Copy Markdown link"
|
msgid "Copy Markdown link"
|
||||||
msgstr "Markdownのリンクをコピー"
|
msgstr "Markdownのリンクをコピー"
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "Delete note \"%s\"?"
|
msgid "Delete note \"%s\"?"
|
||||||
msgstr "ノートを削除しますか?"
|
msgstr "ノート \"%s\" を削除しますか?"
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "Delete these %d notes?"
|
msgid "Delete these %d notes?"
|
||||||
msgstr "ノートを削除しますか?"
|
msgstr "ノート \"%d\" を削除しますか?"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Type a note title to jump to it. Or type # followed by a tag name, or @ "
|
"Type a note title to jump to it. Or type # followed by a tag name, or @ "
|
||||||
"followed by a notebook name."
|
"followed by a notebook name."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"ノートタイトルを入力すると、そのノートに移動します。または#につづいてタグ名も"
|
||||||
|
"しくは@につづいてノートブック名を使うこともできます。"
|
||||||
|
|
||||||
msgid "Goto Anything..."
|
msgid "Goto Anything..."
|
||||||
msgstr ""
|
msgstr "Goto Anything..."
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Usage: %s"
|
msgid "Usage: %s"
|
||||||
|
@ -1355,6 +1349,8 @@ msgstr "同期作業はすでに実行中です。状態: %s"
|
||||||
msgid ""
|
msgid ""
|
||||||
"Unknown item type downloaded - please upgrade Joplin to the latest version"
|
"Unknown item type downloaded - please upgrade Joplin to the latest version"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"不明なアイテムタイプをダウンロードしました - 最新のJoplinにアップデートしてく"
|
||||||
|
"ださい"
|
||||||
|
|
||||||
msgid "Encrypted"
|
msgid "Encrypted"
|
||||||
msgstr "暗号化済"
|
msgstr "暗号化済"
|
||||||
|
@ -1436,25 +1432,28 @@ msgid "WebDAV password"
|
||||||
msgstr "WevDAV パスワード"
|
msgstr "WevDAV パスワード"
|
||||||
|
|
||||||
msgid "Attachment download behaviour"
|
msgid "Attachment download behaviour"
|
||||||
msgstr ""
|
msgstr "添付ファイルのダウンロードの動作"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"In \"Manual\" mode, attachments are downloaded only when you click on them. "
|
"In \"Manual\" mode, attachments are downloaded only when you click on them. "
|
||||||
"In \"Auto\", they are downloaded when you open the note. In \"Always\", all "
|
"In \"Auto\", they are downloaded when you open the note. In \"Always\", all "
|
||||||
"the attachments are downloaded whether you open the note or not."
|
"the attachments are downloaded whether you open the note or not."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"\"手動\"モードは添付ファイルをクリックしたときのみダウンロードをします。\"自"
|
||||||
|
"動\"はノートを開いたときにダウンロードをします。\"いつも\"はノートを開いてい"
|
||||||
|
"るか閉じているかにかかわらずダウンロードをします。"
|
||||||
|
|
||||||
msgid "Always"
|
msgid "Always"
|
||||||
msgstr ""
|
msgstr "いつも"
|
||||||
|
|
||||||
msgid "Manual"
|
msgid "Manual"
|
||||||
msgstr ""
|
msgstr "手動"
|
||||||
|
|
||||||
msgid "Auto"
|
msgid "Auto"
|
||||||
msgstr ""
|
msgstr "自動"
|
||||||
|
|
||||||
msgid "Max concurrent connections"
|
msgid "Max concurrent connections"
|
||||||
msgstr ""
|
msgstr "最大同時接続数"
|
||||||
|
|
||||||
msgid "Language"
|
msgid "Language"
|
||||||
msgstr "言語"
|
msgstr "言語"
|
||||||
|
@ -1492,9 +1491,8 @@ msgstr "ノートのソート方法"
|
||||||
msgid "Reverse sort order"
|
msgid "Reverse sort order"
|
||||||
msgstr "逆順に並び替え"
|
msgstr "逆順に並び替え"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Sort notebooks by"
|
msgid "Sort notebooks by"
|
||||||
msgstr "ノートのソート方法"
|
msgstr "ノートブックのソート方法"
|
||||||
|
|
||||||
msgid "Save geo-location with notes"
|
msgid "Save geo-location with notes"
|
||||||
msgstr "ノートに位置情報を保存"
|
msgstr "ノートに位置情報を保存"
|
||||||
|
@ -1512,41 +1510,40 @@ msgid "When creating a new note:"
|
||||||
msgstr "新しいノートを作成した際:"
|
msgstr "新しいノートを作成した際:"
|
||||||
|
|
||||||
msgid "Enable soft breaks"
|
msgid "Enable soft breaks"
|
||||||
msgstr ""
|
msgstr "ソフトブレークを有効にする"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Enable math expressions"
|
msgid "Enable math expressions"
|
||||||
msgstr "暗号化を有効にする"
|
msgstr "数式表現を有効にする"
|
||||||
|
|
||||||
msgid "Enable ==mark== syntax"
|
msgid "Enable ==mark== syntax"
|
||||||
msgstr ""
|
msgstr "==ハイライト==構文を有効にする"
|
||||||
|
|
||||||
msgid "Enable footnotes"
|
msgid "Enable footnotes"
|
||||||
msgstr ""
|
msgstr "脚注を有効にする"
|
||||||
|
|
||||||
msgid "Enable table of contents extension"
|
msgid "Enable table of contents extension"
|
||||||
msgstr ""
|
msgstr "目次拡張を有効にする"
|
||||||
|
|
||||||
msgid "Enable ~sub~ syntax"
|
msgid "Enable ~sub~ syntax"
|
||||||
msgstr ""
|
msgstr "~下付きテキスト~構文を有効にする"
|
||||||
|
|
||||||
msgid "Enable ^sup^ syntax"
|
msgid "Enable ^sup^ syntax"
|
||||||
msgstr ""
|
msgstr "^上付きテキスト^構文を有効にする"
|
||||||
|
|
||||||
msgid "Enable deflist syntax"
|
msgid "Enable deflist syntax"
|
||||||
msgstr ""
|
msgstr "定義リスト構文を有効にする"
|
||||||
|
|
||||||
msgid "Enable abbreviation syntax"
|
msgid "Enable abbreviation syntax"
|
||||||
msgstr ""
|
msgstr "略語構文を有効にする"
|
||||||
|
|
||||||
msgid "Enable markdown emoji"
|
msgid "Enable markdown emoji"
|
||||||
msgstr ""
|
msgstr "マークダウン絵文字を有効にする"
|
||||||
|
|
||||||
msgid "Enable ++insert++ syntax"
|
msgid "Enable ++insert++ syntax"
|
||||||
msgstr ""
|
msgstr "++追加++構文を有効にする"
|
||||||
|
|
||||||
msgid "Enable multimarkdown table extension"
|
msgid "Enable multimarkdown table extension"
|
||||||
msgstr ""
|
msgstr "MultiMarkdownのテーブル拡張を有効にする"
|
||||||
|
|
||||||
msgid "Show tray icon"
|
msgid "Show tray icon"
|
||||||
msgstr "トレイアイコンの表示"
|
msgstr "トレイアイコンの表示"
|
||||||
|
@ -1633,45 +1630,40 @@ msgstr ""
|
||||||
msgid "Ignore TLS certificate errors"
|
msgid "Ignore TLS certificate errors"
|
||||||
msgstr "TLS証明書のエラーを無視"
|
msgstr "TLS証明書のエラーを無視"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Enable note history"
|
msgid "Enable note history"
|
||||||
msgstr "暗号化を有効にする"
|
msgstr "ノートの履歴を有効にする"
|
||||||
|
|
||||||
msgid "days"
|
msgid "days"
|
||||||
msgstr ""
|
msgstr "日"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "%d days"
|
msgid "%d days"
|
||||||
msgstr ""
|
msgstr "%d 日"
|
||||||
|
|
||||||
msgid "Keep note history for"
|
msgid "Keep note history for"
|
||||||
msgstr ""
|
msgstr "ノート履歴の保存期間"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
msgid "Invalid option value: \"%s\". Possible values are: %s."
|
||||||
msgstr "無効な設定値: \"%s\"。有効な値は: %sです。"
|
msgstr "無効な設定値: \"%s\"。有効な値は: %sです。"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "General"
|
msgid "General"
|
||||||
msgstr "全般のオプション"
|
msgstr "全般"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Synchronisation"
|
msgid "Synchronisation"
|
||||||
msgstr "同期状況"
|
msgstr "同期"
|
||||||
|
|
||||||
msgid "Appearance"
|
msgid "Appearance"
|
||||||
msgstr ""
|
msgstr "スタイル"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Note"
|
msgid "Note"
|
||||||
msgstr "ノートブック"
|
msgstr "ノート"
|
||||||
|
|
||||||
msgid "Plugins"
|
msgid "Plugins"
|
||||||
msgstr ""
|
msgstr "プラグイン"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Application"
|
msgid "Application"
|
||||||
msgstr "場所"
|
msgstr "アプリケーション"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "The tag \"%s\" already exists. Please choose a different name."
|
msgid "The tag \"%s\" already exists. Please choose a different name."
|
||||||
|
@ -1721,7 +1713,7 @@ msgid "Please specify the notebook where the notes should be imported to."
|
||||||
msgstr "ノートをどのノートブックにインポートするのか指定してください。"
|
msgstr "ノートをどのノートブックにインポートするのか指定してください。"
|
||||||
|
|
||||||
msgid "Restored Notes"
|
msgid "Restored Notes"
|
||||||
msgstr ""
|
msgstr "復元されたノート"
|
||||||
|
|
||||||
msgid "Items that cannot be synchronised"
|
msgid "Items that cannot be synchronised"
|
||||||
msgstr "同期ができなかったアイテム"
|
msgstr "同期ができなかったアイテム"
|
||||||
|
@ -1735,23 +1727,25 @@ msgstr ""
|
||||||
"のようなアイテムを探すには、タイトルまたはID(上記の括弧内に表示されている)で"
|
"のようなアイテムを探すには、タイトルまたはID(上記の括弧内に表示されている)で"
|
||||||
"検索してください。"
|
"検索してください。"
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "%s (%s) could not be uploaded: %s"
|
msgid "%s (%s) could not be uploaded: %s"
|
||||||
msgstr "次のファイルは開くことができません:%s"
|
msgstr "%s (%s)はアップロードできませんでした:%s"
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "Item \"%s\" could not be downloaded: %s"
|
msgid "Item \"%s\" could not be downloaded: %s"
|
||||||
msgstr "次のファイルは開くことができません:%s"
|
msgstr "アイテム \"%s\" はダウンロードできませんでした:%s"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Items that cannot be decrypted"
|
msgid "Items that cannot be decrypted"
|
||||||
msgstr "同期ができなかったアイテム"
|
msgstr "復号ができなかったアイテム"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Joplin failed to decrypt these items multiple times, possibly because they "
|
"Joplin failed to decrypt these items multiple times, possibly because they "
|
||||||
"are corrupted or too large. These items will remain on the device but Joplin "
|
"are corrupted or too large. These items will remain on the device but Joplin "
|
||||||
"will no longer attempt to decrypt them."
|
"will no longer attempt to decrypt them."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"Joplinはアイテムが破損もしくは大きすぎるため、これらのアイテムの復号化に複数"
|
||||||
|
"回失敗しました。これらのアイテムはデバイス上に残りますが、Joplinはこれらの復"
|
||||||
|
"号化は行いません。"
|
||||||
|
|
||||||
msgid "Sync status (synced items / total items)"
|
msgid "Sync status (synced items / total items)"
|
||||||
msgstr "同期状況 (同期済/総数)"
|
msgstr "同期状況 (同期済/総数)"
|
||||||
|
@ -1820,15 +1814,13 @@ msgstr "日付の選択"
|
||||||
msgid "Confirm"
|
msgid "Confirm"
|
||||||
msgstr "確認"
|
msgstr "確認"
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "Notebook: %s"
|
msgid "Notebook: %s"
|
||||||
msgstr "ノートブック"
|
msgstr "ノートブック: %s"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Encrypted notebooks cannot be renamed"
|
msgid "Encrypted notebooks cannot be renamed"
|
||||||
msgstr "暗号化したアイテムは修正できません"
|
msgstr "暗号化したアイテムはリネームできません"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "New Notebook"
|
msgid "New Notebook"
|
||||||
msgstr "新しいノートブック"
|
msgstr "新しいノートブック"
|
||||||
|
|
||||||
|
@ -1843,9 +1835,8 @@ msgstr "復号中のアイテム: %d/%d"
|
||||||
msgid "Fetching resources: %d/%d"
|
msgid "Fetching resources: %d/%d"
|
||||||
msgstr "取得中のリソース: %d/%d"
|
msgstr "取得中のリソース: %d/%d"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "All notes"
|
msgid "All notes"
|
||||||
msgstr "ノート"
|
msgstr "すべてのノート"
|
||||||
|
|
||||||
msgid "Notebooks"
|
msgid "Notebooks"
|
||||||
msgstr "ノートブック"
|
msgstr "ノートブック"
|
||||||
|
@ -1891,52 +1882,50 @@ msgid "Type new tags or select from list"
|
||||||
msgstr "新しいタグを入力するか、リストから選択してください"
|
msgstr "新しいタグを入力するか、リストから選択してください"
|
||||||
|
|
||||||
msgid "Warning"
|
msgid "Warning"
|
||||||
msgstr ""
|
msgstr "警告"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"In order to use file system synchronisation your permission to write to "
|
"In order to use file system synchronisation your permission to write to "
|
||||||
"external storage is required."
|
"external storage is required."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"ファイルシステムの同期を使うには、外部ストレージへの書き込み権限が必要です。"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Information"
|
msgid "Information"
|
||||||
msgstr "設定"
|
msgstr "情報"
|
||||||
|
|
||||||
msgid "Encryption Config"
|
msgid "Encryption Config"
|
||||||
msgstr "暗号化の設定"
|
msgstr "暗号化の設定"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Tools"
|
msgid "Tools"
|
||||||
msgstr "ツール"
|
msgstr "ツール"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Sync Status"
|
msgid "Sync Status"
|
||||||
msgstr "状態"
|
msgstr "同期の状態"
|
||||||
|
|
||||||
msgid "Log"
|
msgid "Log"
|
||||||
msgstr "ログ"
|
msgstr "ログ"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Creating report..."
|
msgid "Creating report..."
|
||||||
msgstr "新しい %s を作成中..."
|
msgstr "レポート を作成中..."
|
||||||
|
|
||||||
msgid "Export Debug Report"
|
msgid "Export Debug Report"
|
||||||
msgstr "デバッグレポートの出力"
|
msgstr "デバッグレポートの出力"
|
||||||
|
|
||||||
msgid "Fixing search index..."
|
msgid "Fixing search index..."
|
||||||
msgstr ""
|
msgstr "検索インデックスの修正中..."
|
||||||
|
|
||||||
msgid "Fix search index"
|
msgid "Fix search index"
|
||||||
msgstr ""
|
msgstr "検索インデックスの修正"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Use this to rebuild the search index if there is a problem with search. It "
|
"Use this to rebuild the search index if there is a problem with search. It "
|
||||||
"may take a long time depending on the number of notes."
|
"may take a long time depending on the number of notes."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
"検索に問題がある場合は、これを利用して検索インデックスの再構築を行います。"
|
||||||
|
"ノートの数に依存して、時間がかかる場合があります。"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "More information"
|
msgid "More information"
|
||||||
msgstr "設定"
|
msgstr "詳細情報"
|
||||||
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"To work correctly, the app needs the following permissions. Please enable "
|
"To work correctly, the app needs the following permissions. Please enable "
|
||||||
|
@ -1963,18 +1952,17 @@ msgstr "JoplinのWebサイト"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Database v%s"
|
msgid "Database v%s"
|
||||||
msgstr ""
|
msgstr "データベース v%s"
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "FTS enabled: %d"
|
msgid "FTS enabled: %d"
|
||||||
msgstr "削除予定: %d"
|
msgstr "FTS有効: %d"
|
||||||
|
|
||||||
msgid "Login with Dropbox"
|
msgid "Login with Dropbox"
|
||||||
msgstr "Dropboxでログイン"
|
msgstr "Dropboxでログイン"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Enter code here"
|
msgid "Enter code here"
|
||||||
msgstr "コマンドラインモードに入る"
|
msgstr "コードをここに入力"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Master Key %s"
|
msgid "Master Key %s"
|
||||||
|
@ -2000,9 +1988,8 @@ msgstr "ノートブックは保存できませんでした:%s"
|
||||||
msgid "Edit notebook"
|
msgid "Edit notebook"
|
||||||
msgstr "ノートブックの編集"
|
msgstr "ノートブックの編集"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Enter notebook title"
|
msgid "Enter notebook title"
|
||||||
msgstr "ノートブックの題名:"
|
msgstr "ノートブックのタイトルを入力"
|
||||||
|
|
||||||
msgid "Show all"
|
msgid "Show all"
|
||||||
msgstr "すべて表示"
|
msgstr "すべて表示"
|
||||||
|
@ -2029,15 +2016,15 @@ msgstr "Joplinモバイルアプリは次のタイプのリンクをまだサポ
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Links with protocol \"%s\" are not supported"
|
msgid "Links with protocol \"%s\" are not supported"
|
||||||
msgstr ""
|
msgstr "プロトコル \"%s\" でのリンクはサポートされていません"
|
||||||
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Unsupported image type: %s"
|
msgid "Unsupported image type: %s"
|
||||||
msgstr "サポートされていない画像の形式: %s"
|
msgstr "サポートされていない画像の形式: %s"
|
||||||
|
|
||||||
#, fuzzy, javascript-format
|
#, javascript-format
|
||||||
msgid "Updated: %s"
|
msgid "Updated: %s"
|
||||||
msgstr "アップデート: %d."
|
msgstr "アップデート: %s"
|
||||||
|
|
||||||
msgid "View on map"
|
msgid "View on map"
|
||||||
msgstr "地図上に表示"
|
msgstr "地図上に表示"
|
||||||
|
@ -2047,11 +2034,10 @@ msgstr "ソースURLに行く"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Attach..."
|
msgid "Attach..."
|
||||||
msgstr "検索..."
|
msgstr "添付..."
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Choose an option"
|
msgid "Choose an option"
|
||||||
msgstr "詳細な設定の表示"
|
msgstr "オプションを選択"
|
||||||
|
|
||||||
msgid "Take photo"
|
msgid "Take photo"
|
||||||
msgstr "写真を撮影する"
|
msgstr "写真を撮影する"
|
||||||
|
@ -2071,19 +2057,19 @@ msgstr "ノートに変換"
|
||||||
msgid "Convert to todo"
|
msgid "Convert to todo"
|
||||||
msgstr "ToDoに変換"
|
msgstr "ToDoに変換"
|
||||||
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Properties"
|
msgid "Properties"
|
||||||
msgstr "ノートのプロパティ"
|
msgstr "プロパティ"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
msgid "Add body"
|
msgid "Add body"
|
||||||
msgstr ""
|
msgstr "ボディを追加"
|
||||||
|
|
||||||
msgid "Edit"
|
msgid "Edit"
|
||||||
msgstr "編集"
|
msgstr "編集"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
msgid "Add title"
|
msgid "Add title"
|
||||||
msgstr "タイトル"
|
msgstr "タイトルを追加"
|
||||||
|
|
||||||
msgid "Login with OneDrive"
|
msgid "Login with OneDrive"
|
||||||
msgstr "OneDriveログイン"
|
msgstr "OneDriveログイン"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
require('app-module-path').addPath(__dirname);
|
require('app-module-path').addPath(__dirname);
|
||||||
|
|
||||||
const { extractExecutablePath, quotePath, unquotePath, friendlySafeFilename } = require('lib/path-utils.js');
|
const { extractExecutablePath, quotePath, unquotePath, friendlySafeFilename, toFileProtocolPath} = require('lib/path-utils.js');
|
||||||
const { fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
const { fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
||||||
|
|
||||||
process.on('unhandledRejection', (reason, p) => {
|
process.on('unhandledRejection', (reason, p) => {
|
||||||
|
@ -73,4 +73,28 @@ describe('pathUtils', function() {
|
||||||
done();
|
done();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should create correct fileURL syntax', async (done) => {
|
||||||
|
const testCases_win32 = [
|
||||||
|
['C:\\handle\\space test', 'file:///C:/handle/space+test'],
|
||||||
|
['C:\\escapeplus\\+', 'file:///C:/escapeplus/%2B'],
|
||||||
|
['C:\\handle\\single quote\'', 'file:///C:/handle/single+quote%27'],
|
||||||
|
];
|
||||||
|
const testCases_unixlike = [
|
||||||
|
['/handle/space test', 'file:///handle/space+test'],
|
||||||
|
['/escapeplus/+', 'file:///escapeplus/%2B'],
|
||||||
|
['/handle/single quote\'', 'file:///handle/single+quote%27'],
|
||||||
|
];
|
||||||
|
|
||||||
|
for (let i = 0; i < testCases_win32.length; i++) {
|
||||||
|
const t = testCases_win32[i];
|
||||||
|
expect(toFileProtocolPath(t[0], 'win32')).toBe(t[1]);
|
||||||
|
}
|
||||||
|
for (let i = 0; i < testCases_unixlike.length; i++) {
|
||||||
|
const t = testCases_unixlike[i];
|
||||||
|
expect(toFileProtocolPath(t[0], 'linux')).toBe(t[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
done();
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
|
@ -175,6 +175,7 @@ class NoteTextComponent extends React.Component {
|
||||||
|
|
||||||
this.onDrop_ = async (event) => {
|
this.onDrop_ = async (event) => {
|
||||||
const dt = event.dataTransfer;
|
const dt = event.dataTransfer;
|
||||||
|
const createFileURL = event.altKey;
|
||||||
|
|
||||||
if (dt.types.indexOf("text/x-jop-note-ids") >= 0) {
|
if (dt.types.indexOf("text/x-jop-note-ids") >= 0) {
|
||||||
const noteIds = JSON.parse(dt.getData("text/x-jop-note-ids"));
|
const noteIds = JSON.parse(dt.getData("text/x-jop-note-ids"));
|
||||||
|
@ -198,7 +199,7 @@ class NoteTextComponent extends React.Component {
|
||||||
filesToAttach.push(file.path);
|
filesToAttach.push(file.path);
|
||||||
}
|
}
|
||||||
|
|
||||||
await this.commandAttachFile(filesToAttach);
|
await this.commandAttachFile(filesToAttach, createFileURL);
|
||||||
}
|
}
|
||||||
|
|
||||||
const updateSelectionRange = () => {
|
const updateSelectionRange = () => {
|
||||||
|
@ -1076,7 +1077,7 @@ class NoteTextComponent extends React.Component {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async commandAttachFile(filePaths = null) {
|
async commandAttachFile(filePaths = null, createFileURL = false) {
|
||||||
if (!filePaths) {
|
if (!filePaths) {
|
||||||
filePaths = bridge().showOpenDialog({
|
filePaths = bridge().showOpenDialog({
|
||||||
properties: ['openFile', 'createDirectory', 'multiSelections'],
|
properties: ['openFile', 'createDirectory', 'multiSelections'],
|
||||||
|
@ -1093,7 +1094,7 @@ class NoteTextComponent extends React.Component {
|
||||||
const filePath = filePaths[i];
|
const filePath = filePaths[i];
|
||||||
try {
|
try {
|
||||||
reg.logger().info('Attaching ' + filePath);
|
reg.logger().info('Attaching ' + filePath);
|
||||||
note = await shim.attachFileToNote(note, filePath, position);
|
note = await shim.attachFileToNote(note, filePath, position, createFileURL);
|
||||||
reg.logger().info('File was attached.');
|
reg.logger().info('File was attached.');
|
||||||
this.setState({
|
this.setState({
|
||||||
note: Object.assign({}, note),
|
note: Object.assign({}, note),
|
||||||
|
|
|
@ -158,6 +158,7 @@ const solarizedLightStyle = {
|
||||||
urlColor: "#268bd2",
|
urlColor: "#268bd2",
|
||||||
|
|
||||||
backgroundColor2: "#002b36",
|
backgroundColor2: "#002b36",
|
||||||
|
depthColor: 'rgb(100, 182, 253, OPACITY)',
|
||||||
color2: "#eee8d5",
|
color2: "#eee8d5",
|
||||||
selectedColor2: "#6c71c4",
|
selectedColor2: "#6c71c4",
|
||||||
colorError2: "#cb4b16",
|
colorError2: "#cb4b16",
|
||||||
|
@ -194,6 +195,7 @@ const solarizedDarkStyle = {
|
||||||
urlColor: "#268bd2",
|
urlColor: "#268bd2",
|
||||||
|
|
||||||
backgroundColor2: "#073642",
|
backgroundColor2: "#073642",
|
||||||
|
depthColor: 'rgb(200, 200, 200, OPACITY)',
|
||||||
color2: "#eee8d5",
|
color2: "#eee8d5",
|
||||||
selectedColor2: "#6c71c4",
|
selectedColor2: "#6c71c4",
|
||||||
colorError2: "#cb4b16",
|
colorError2: "#cb4b16",
|
||||||
|
|
27
README.md
27
README.md
|
@ -107,17 +107,17 @@ Joplin was designed as a replacement for Evernote and so can import complete Eve
|
||||||
|
|
||||||
To import Evernote data, first export your Evernote notebooks to ENEX files as described [here](https://help.evernote.com/hc/en-us/articles/209005557-How-to-back-up-export-and-restore-import-notes-and-notebooks). Then follow these steps:
|
To import Evernote data, first export your Evernote notebooks to ENEX files as described [here](https://help.evernote.com/hc/en-us/articles/209005557-How-to-back-up-export-and-restore-import-notes-and-notebooks). Then follow these steps:
|
||||||
|
|
||||||
On the **desktop application**, open File > Import > ENEX and select your file. The notes will be imported into a new separate notebook. If needed they can then be moved to a different notebook, or the notebook can be renamed, etc.
|
In the **desktop application**, open File > Import > ENEX and select your file. The notes will be imported into a new separate notebook. If needed they can then be moved to a different notebook, or the notebook can be renamed, etc.
|
||||||
|
|
||||||
On the **terminal application**, in [command-line mode](https://joplinapp.org/terminal/#command-line-mode), type `import /path/to/file.enex`. This will import the notes into a new notebook named after the filename.
|
In the **terminal application**, in [command-line mode](https://joplinapp.org/terminal/#command-line-mode), type `import /path/to/file.enex`. This will import the notes into a new notebook named after the filename.
|
||||||
|
|
||||||
## Importing from Markdown files
|
## Importing from Markdown files
|
||||||
|
|
||||||
Joplin can import notes from plain Markdown file. You can either import a complete directory of Markdown files or individual files.
|
Joplin can import notes from plain Markdown file. You can either import a complete directory of Markdown files or individual files.
|
||||||
|
|
||||||
On the **desktop application**, open File > Import > MD and select your Markdown file or directory.
|
In the **desktop application**, open File > Import > MD and select your Markdown file or directory.
|
||||||
|
|
||||||
On the **terminal application**, in [command-line mode](https://joplinapp.org/terminal/#command-line-mode), type `import --format md /path/to/file.md` or `import --format md /path/to/directory/`.
|
In the **terminal application**, in [command-line mode](https://joplinapp.org/terminal/#command-line-mode), type `import --format md /path/to/file.md` or `import --format md /path/to/directory/`.
|
||||||
|
|
||||||
## Importing from other applications
|
## Importing from other applications
|
||||||
|
|
||||||
|
@ -142,9 +142,9 @@ Currently, synchronisation is possible with Nextcloud, Dropbox (by default), One
|
||||||
|
|
||||||
<img src="https://joplinapp.org/images/nextcloud-logo-background.png" width="100" align="left"> <a href="https://nextcloud.com/">Nextcloud</a> is a self-hosted, private cloud solution. It can store documents, images and videos but also calendars, passwords and countless other things and can sync them to your laptop or phone. As you can host your own Nextcloud server, you own both the data on your device and infrastructure used for synchronisation. As such it is a good fit for Joplin. The platform is also well supported and with a strong community, so it is likely to be around for a while - since it's open source anyway, it is not a service that can be closed, it can exist on a server for as long as one chooses.
|
<img src="https://joplinapp.org/images/nextcloud-logo-background.png" width="100" align="left"> <a href="https://nextcloud.com/">Nextcloud</a> is a self-hosted, private cloud solution. It can store documents, images and videos but also calendars, passwords and countless other things and can sync them to your laptop or phone. As you can host your own Nextcloud server, you own both the data on your device and infrastructure used for synchronisation. As such it is a good fit for Joplin. The platform is also well supported and with a strong community, so it is likely to be around for a while - since it's open source anyway, it is not a service that can be closed, it can exist on a server for as long as one chooses.
|
||||||
|
|
||||||
On the **desktop application** or **mobile application**, go to the config screen and select Nextcloud as the synchronisation target. Then input the WebDAV URL (to get it, click on Settings in the bottom left corner of the page, in Nextcloud), this is normally `https://example.com/nextcloud/remote.php/webdav/Joplin` (**make sure to create the "Joplin" directory in Nextcloud**), and set the username and password. If it does not work, please [see this explanation](https://github.com/laurent22/joplin/issues/61#issuecomment-373282608) for more details.
|
In the **desktop application** or **mobile application**, go to the config screen and select Nextcloud as the synchronisation target. Then input the WebDAV URL (to get it, click on Settings in the bottom left corner of the page, in Nextcloud), this is normally `https://example.com/nextcloud/remote.php/webdav/Joplin` (**make sure to create the "Joplin" directory in Nextcloud**), and set the username and password. If it does not work, please [see this explanation](https://github.com/laurent22/joplin/issues/61#issuecomment-373282608) for more details.
|
||||||
|
|
||||||
On the **terminal application**, you will need to set the `sync.target` config variable and all the `sync.5.path`, `sync.5.username` and `sync.5.password` config variables to, respectively the Nextcloud WebDAV URL, your username and your password. This can be done from the command line mode using:
|
In the **terminal application**, you will need to set the `sync.target` config variable and all the `sync.5.path`, `sync.5.username` and `sync.5.password` config variables to, respectively the Nextcloud WebDAV URL, your username and your password. This can be done from the command line mode using:
|
||||||
|
|
||||||
:config sync.5.path https://example.com/nextcloud/remote.php/webdav/Joplin
|
:config sync.5.path https://example.com/nextcloud/remote.php/webdav/Joplin
|
||||||
:config sync.5.username YOUR_USERNAME
|
:config sync.5.username YOUR_USERNAME
|
||||||
|
@ -157,9 +157,9 @@ If synchronisation does not work, please consult the logs in the app profile dir
|
||||||
|
|
||||||
When syncing with Dropbox, Joplin creates a sub-directory in Dropbox, in `/Apps/Joplin` and read/write the notes and notebooks from it. The application does not have access to anything outside this directory.
|
When syncing with Dropbox, Joplin creates a sub-directory in Dropbox, in `/Apps/Joplin` and read/write the notes and notebooks from it. The application does not have access to anything outside this directory.
|
||||||
|
|
||||||
On the **desktop application** or **mobile application**, select "Dropbox" as the synchronisation target in the config screen (it is selected by default). Then, to initiate the synchronisation process, click on the "Synchronise" button in the sidebar and follow the instructions.
|
In the **desktop application** or **mobile application**, select "Dropbox" as the synchronisation target in the config screen (it is selected by default). Then, to initiate the synchronisation process, click on the "Synchronise" button in the sidebar and follow the instructions.
|
||||||
|
|
||||||
On the **terminal application**, to initiate the synchronisation process, type `:sync`. You will be asked to follow a link to authorise the application. It is possible to also synchronise outside of the user interface by typing `joplin sync` from the terminal. This can be used to setup a cron script to synchronise at regular interval. For example, this would do it every 30 minutes:
|
In the **terminal application**, to initiate the synchronisation process, type `:sync`. You will be asked to follow a link to authorise the application. It is possible to also synchronise outside of the user interface by typing `joplin sync` from the terminal. This can be used to setup a cron script to synchronise at regular interval. For example, this would do it every 30 minutes:
|
||||||
|
|
||||||
*/30 * * * * /path/to/joplin sync
|
*/30 * * * * /path/to/joplin sync
|
||||||
|
|
||||||
|
@ -186,9 +186,9 @@ WebDAV-compatible services that are known to work with Joplin:
|
||||||
|
|
||||||
When syncing with OneDrive, Joplin creates a sub-directory in OneDrive, in /Apps/Joplin and read/write the notes and notebooks from it. The application does not have access to anything outside this directory.
|
When syncing with OneDrive, Joplin creates a sub-directory in OneDrive, in /Apps/Joplin and read/write the notes and notebooks from it. The application does not have access to anything outside this directory.
|
||||||
|
|
||||||
On the **desktop application** or **mobile application**, select "OneDrive" as the synchronisation target in the config screen. Then, to initiate the synchronisation process, click on the "Synchronise" button in the sidebar and follow the instructions.
|
In the **desktop application** or **mobile application**, select "OneDrive" as the synchronisation target in the config screen. Then, to initiate the synchronisation process, click on the "Synchronise" button in the sidebar and follow the instructions.
|
||||||
|
|
||||||
On the **terminal application**, to initiate the synchronisation process, type `:sync`. You will be asked to follow a link to authorise the application (simply input your Microsoft credentials - you do not need to register with OneDrive).
|
In the **terminal application**, to initiate the synchronisation process, type `:sync`. You will be asked to follow a link to authorise the application (simply input your Microsoft credentials - you do not need to register with OneDrive).
|
||||||
|
|
||||||
# Encryption
|
# Encryption
|
||||||
|
|
||||||
|
@ -212,7 +212,8 @@ Joplin notes can be opened and edited using an external editor of your choice. I
|
||||||
|
|
||||||
Any kind of file can be attached to a note. In Markdown, links to these files are represented as a simple ID to the attachment. In the note viewer, these files, if they are images, will be displayed or, if they are other files (PDF, text files, etc.) they will be displayed as links. Clicking on this link will open the file in the default application.
|
Any kind of file can be attached to a note. In Markdown, links to these files are represented as a simple ID to the attachment. In the note viewer, these files, if they are images, will be displayed or, if they are other files (PDF, text files, etc.) they will be displayed as links. Clicking on this link will open the file in the default application.
|
||||||
|
|
||||||
On the **desktop application**, images can be attached either by clicking on "Attach file" or by pasting (with Ctrl+V) an image directly in the editor, or by drag and dropping an image.
|
In the **desktop application**, files can be attached either by clicking the "Attach file" icon in the editor or via drag and drop. If you prefer to create a link to a local file instead, hold the ALT key while performing the drag and drop operation.
|
||||||
|
If the OS-clipboard contains an image you can directly paste it in the editor via Ctrl+V.
|
||||||
|
|
||||||
Resources that are not attached to any note will be automatically deleted after 10 days (see [rationale](https://github.com/laurent22/joplin/issues/154#issuecomment-356582366)).
|
Resources that are not attached to any note will be automatically deleted after 10 days (see [rationale](https://github.com/laurent22/joplin/issues/154#issuecomment-356582366)).
|
||||||
|
|
||||||
|
@ -224,7 +225,7 @@ The way the attachments are downloaded during synchronisation can be customised
|
||||||
|
|
||||||
# Notifications
|
# Notifications
|
||||||
|
|
||||||
On the desktop and mobile apps, an alarm can be associated with any to-do. It will be triggered at the given time by displaying a notification. How the notification will be displayed depends on the operating system since each has a different way to handle this. Please see below for the requirements for the desktop applications:
|
In the desktop and mobile apps, an alarm can be associated with any to-do. It will be triggered at the given time by displaying a notification. How the notification will be displayed depends on the operating system since each has a different way to handle this. Please see below for the requirements for the desktop applications:
|
||||||
|
|
||||||
- **Windows**: >= 8. Make sure the Action Center is enabled on Windows. Task bar balloon for Windows < 8. Growl as fallback. Growl takes precedence over Windows balloons.
|
- **Windows**: >= 8. Make sure the Action Center is enabled on Windows. Task bar balloon for Windows < 8. Growl as fallback. Growl takes precedence over Windows balloons.
|
||||||
- **macOS**: >= 10.8 or Growl if earlier.
|
- **macOS**: >= 10.8 or Growl if earlier.
|
||||||
|
@ -242,7 +243,7 @@ Sub-notebooks allow organising multiple notebooks into a tree of notebooks. For
|
||||||
|
|
||||||
![](https://joplinapp.org/images/SubNotebooks.png)
|
![](https://joplinapp.org/images/SubNotebooks.png)
|
||||||
|
|
||||||
- On the **desktop application**, to create a subnotebook, drag and drop it onto another notebook. To move it back to the root, drag and drop it on the "Notebooks" header. Currently only the desktop app can be used to organise the notebooks.
|
- In the **desktop application**, to create a subnotebook, drag and drop it onto another notebook. To move it back to the root, drag and drop it on the "Notebooks" header. Currently only the desktop app can be used to organise the notebooks.
|
||||||
- The **mobile application** supports displaying and collapsing/expanding the tree of notebooks, however it does not currently support moving the subnotebooks to different notebooks.
|
- The **mobile application** supports displaying and collapsing/expanding the tree of notebooks, however it does not currently support moving the subnotebooks to different notebooks.
|
||||||
- The **terminal app** supports displaying the tree of subnotebooks but it does not support collapsing/expanding them or moving the subnotebooks around.
|
- The **terminal app** supports displaying the tree of subnotebooks but it does not support collapsing/expanding them or moving the subnotebooks around.
|
||||||
|
|
||||||
|
|
|
@ -101,9 +101,18 @@ function friendlySafeFilename(e, maxLength = null) {
|
||||||
return output.substr(0, maxLength);
|
return output.substr(0, maxLength);
|
||||||
}
|
}
|
||||||
|
|
||||||
function toFileProtocolPath(path) {
|
function toFileProtocolPath(filePathEncode, os = null) {
|
||||||
const output = path.replace(/\\/g, "/");
|
if (os === null) os = process.platform;
|
||||||
return 'file://' + escape(output);
|
|
||||||
|
if (os === 'win32') {
|
||||||
|
filePathEncode = filePathEncode.replace(/\\/g, '/'); // replace backslash in windows pathname with slash e.g. c:\temp to c:/temp
|
||||||
|
filePathEncode = "/" + filePathEncode; // put slash in front of path to comply with windows fileURL syntax
|
||||||
|
}
|
||||||
|
|
||||||
|
filePathEncode = encodeURI(filePathEncode);
|
||||||
|
filePathEncode = filePathEncode.replace(/\+/g, '%2B'); // escape '+' with unicode
|
||||||
|
filePathEncode = filePathEncode.replace(/%20/g, '+'); // switch space (%20) with '+'. To comply with syntax used by joplin, see urldecode_(str) in MdToHtml.js
|
||||||
|
return "file://" + filePathEncode.replace(/\'/g, '%27'); // escape '(single quote) with unicode, to prevent crashing the html view
|
||||||
}
|
}
|
||||||
|
|
||||||
function toSystemSlashes(path, os = null) {
|
function toSystemSlashes(path, os = null) {
|
||||||
|
|
|
@ -10,6 +10,7 @@ const Note = require('lib/models/Note.js');
|
||||||
const Resource = require('lib/models/Resource.js');
|
const Resource = require('lib/models/Resource.js');
|
||||||
const urlValidator = require('valid-url');
|
const urlValidator = require('valid-url');
|
||||||
|
|
||||||
|
|
||||||
function shimInit() {
|
function shimInit() {
|
||||||
shim.fsDriver = () => { throw new Error('Not implemented') }
|
shim.fsDriver = () => { throw new Error('Not implemented') }
|
||||||
shim.FileApiDriverLocal = FileApiDriverLocal;
|
shim.FileApiDriverLocal = FileApiDriverLocal;
|
||||||
|
@ -168,8 +169,16 @@ function shimInit() {
|
||||||
return await Resource.save(resource, { isNew: true });
|
return await Resource.save(resource, { isNew: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
shim.attachFileToNote = async function(note, filePath, position = null) {
|
shim.attachFileToNote = async function(note, filePath, position = null, createFileURL = false) {
|
||||||
const resource = await shim.createResourceFromPath(filePath);
|
|
||||||
|
const { basename } = require('path');
|
||||||
|
const { escapeLinkText } = require('lib/markdownUtils');
|
||||||
|
const { toFileProtocolPath } = require('lib/path-utils');
|
||||||
|
|
||||||
|
let resource = [];
|
||||||
|
if (!createFileURL) {
|
||||||
|
resource = await shim.createResourceFromPath(filePath);
|
||||||
|
}
|
||||||
|
|
||||||
const newBody = [];
|
const newBody = [];
|
||||||
|
|
||||||
|
@ -178,7 +187,15 @@ function shimInit() {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (note.body && position) newBody.push(note.body.substr(0, position));
|
if (note.body && position) newBody.push(note.body.substr(0, position));
|
||||||
|
|
||||||
|
if (!createFileURL) {
|
||||||
newBody.push(Resource.markdownTag(resource));
|
newBody.push(Resource.markdownTag(resource));
|
||||||
|
} else {
|
||||||
|
let filename = escapeLinkText(basename(filePath)); // to get same filename as standard drag and drop
|
||||||
|
let fileURL = "[" + filename + "]("+ toFileProtocolPath(filePath) +")"
|
||||||
|
newBody.push(fileURL);
|
||||||
|
}
|
||||||
|
|
||||||
if (note.body) newBody.push(note.body.substr(position));
|
if (note.body) newBody.push(note.body.substr(position));
|
||||||
|
|
||||||
const newNote = Object.assign({}, note, {
|
const newNote = Object.assign({}, note, {
|
||||||
|
|
Loading…
Reference in New Issue