Browse Source

fix: i18n support for tutorial and dummy-notes

sosuisen 3 years ago
parent
commit
fd6e9a9512
3 changed files with 66 additions and 2 deletions
  1. 21 2
      src/main/frontend/handler/repo.cljs
  2. 14 0
      templates/dummy-notes-ja.md
  3. 31 0
      templates/tutorial-ja.md

+ 21 - 2
src/main/frontend/handler/repo.cljs

@@ -534,6 +534,25 @@
   (state/set-current-repo! repo)
   (db/start-db-conn! nil repo option))
 
+; Add translate function t in src/main/frontend/context/i18n.cljs without shortcut-dict/dict 
+; to avoid circular dependency
+(defn fetch-local-language []
+  (.. js/window -navigator -language))
+
+(defonce translate-dicts (atom {}))
+
+(defn t
+  [& args]
+  (let [preferred-language (keyword (state/sub :preferred-language))
+        _ (when (nil? preferred-language)
+            (state/set-preferred-language! (fetch-local-language)))
+        dicts (or (get @translate-dicts preferred-language)
+                  (let [result (some-> dicts/dicts
+                                       dicts/translate)]
+                    (swap! translate-dicts assoc preferred-language result)
+                    result))]
+    (apply (partial dicts preferred-language) args)))
+
 (defn setup-local-repo-if-not-exists!
   []
   (if js/window.pfs
@@ -542,10 +561,10 @@
              (state/set-current-repo! repo)
              (db/start-db-conn! nil repo)
              (when-not config/publishing?
-               (let [dummy-notes (get-in dicts/dicts [:en :tutorial/dummy-notes])]
+                (let [dummy-notes (t :tutorial/dummy-notes)]
                  (create-dummy-notes-page repo dummy-notes)))
              (when-not config/publishing?
-               (let [tutorial (get-in dicts/dicts [:en :tutorial/text])
+                (let [tutorial (t :tutorial/text)
                      tutorial (string/replace-first tutorial "$today" (date/today))]
                  (create-today-journal-if-not-exists repo {:content tutorial})))
              (create-config-file-if-not-exists repo)

+ 14 - 0
templates/dummy-notes-ja.md

@@ -0,0 +1,14 @@
+---
+title: 見本のノートの作り方
+---
+
+- これはブロックです!
+:PROPERTIES:
+:id: 5f713e91-8a3c-4b04-a33a-c39482428e2d
+:END:
+    - これは子ブロックです!
+    - これは別の子ブロックです!
+- これは別のブロックです!
+:PROPERTIES:
+:id: 5f713ea8-8cba-403d-ac00-9964b1ec7190
+:END:

+ 31 - 0
templates/tutorial-ja.md

@@ -0,0 +1,31 @@
+## こんにちは、Logseq へようこそ!
+- Logseq はプライバシーファーストで知識管理とコラボレーションを実現するオープンソースプラットフォームです。
+- 以下は Logseq の使い方が3分で判るチュートリアルです。ぜひやってみましょう!
+- 役に立つヒントがありますよ。
+#+BEGIN_TIP
+・ブロック(段落)を編集するにはクリックしてください。
+・新しいブロックを作成するには `Enter` キーを押してください。
+・ブロック内で新しい行を入力するには、`Shift+Enter` キーを押してください。
+・`/` キーを押すと全てのコマンドが表示されます。
+#+END_TIP
+- 1. [[見本のノートの作り方]]というページを開きましょう. 左のリンクをクリックすると開くことができます。`Shift+クリック` すると右のサイドバーで開くことができます!
+クリックで開いた場合は「Linked References」と「Unlinked References」も表示されているはずです。Linked References はこのページへリンクしているページのリストです。Unlinked References はこのページのタイトルを本文中に含むページのリストです。
+
+- 2. [[見本のノートの作り方]]上で「参照」をやってみましょう。下のブロック参照(リンク)を `Shift+クリック` して、右のサイドバーで開いてください。サイドバー側でブロックを修正すると、ブロック参照の側も同じように修正されます!
+    - ((5f713e91-8a3c-4b04-a33a-c39482428e2d)) : これはブロック参照です。
+    - ((5f713ea8-8cba-403d-ac00-9964b1ec7190)) : これは別のブロック参照です。
+
+- 3. タグは使えますか?
+    - もちろん。これは #ダミー のタグです。
+
+- 4. 「ToDo」「作業中」(Doing)「完了」(Done)や優先度のようなタスク管理はサポートしていますか?
+    - はい。キーボードで`/`とタイプし、表示されるメニューからToDo管理のための TODO、DOING、DONE、NOW、LATER や優先度の A、B、Cという語をタイプするか選んでください。(下はその例です)
+    - NOW [#A] "見本のノートの作り方" のチュートリアル
+    - LATER [#A] [:a {:href "https://twitter.com/TechWithEd" :target "_blank"} "@TechWithEd"] の作ったこちらのビデオを見てください(※ビデオは英語です。)これは Logseq でローカルフォルダを開く方法を示しています。
+
+    {{tutorial-video}}
+
+    - DONE ページ作成
+    - CANCELED [#C] 1000ブロック以上のページを作成する
+- 以上です!ここから、さらにブロックを作成したり、ローカルディレクトリを開いてノートをインポートすることができます!
+- デスクトップアプリをダウンロードするならこちら: https://github.com/logseq/logseq/releases