From e02d1987c6ad7825457416bc8fe505324b43ab6e Mon Sep 17 00:00:00 2001
From: TianchengHu <3139658+tiancheng2000@users.noreply.github.com>
Date: Fri, 11 Jun 2021 12:53:09 +0800
Subject: [PATCH] feat-i18n-ja (#259)

---
 src/scripts/i18n/README.md   |   1 +
 src/scripts/i18n/_locales.ts |   2 +
 src/scripts/i18n/ja.json     | 235 +++++++++++++++++++++++++++++++++++
 3 files changed, 238 insertions(+)
 create mode 100644 src/scripts/i18n/ja.json

diff --git a/src/scripts/i18n/README.md b/src/scripts/i18n/README.md
index b4d83b9..4c8325c 100644
--- a/src/scripts/i18n/README.md
+++ b/src/scripts/i18n/README.md
@@ -8,6 +8,7 @@ Currently, Fluent Reader supports the following languages.
 | es | Español | [@kant](https://github.com/kant) |
 | fr-FR | Français | [@Toinane](https://github.com/Toinane) |
 | zh-CN | 中文(简体) | [@yang991178](https://github.com/yang991178) |
+| ja | 日本語 | [@tiancheng2000](https://github.com/tiancheng2000) |
 | de | Deutsch | [@NoNamePro0](https://github.com/NoNamePro0) |
 | sv | Svenska | [@eson57](https://github.com/eson57) |
 | tr | Türkçe | [@mustafagenc](https://github.com/mustafagenc) |
diff --git a/src/scripts/i18n/_locales.ts b/src/scripts/i18n/_locales.ts
index c2f0cb8..515b9ac 100644
--- a/src/scripts/i18n/_locales.ts
+++ b/src/scripts/i18n/_locales.ts
@@ -1,6 +1,7 @@
 import en_US from "./en-US.json"
 import zh_CN from "./zh-CN.json"
 import zh_TW from "./zh-TW.json"
+import ja from "./ja.json"
 import fr_FR from "./fr-FR.json"
 import de from "./de.json"
 import nl from "./nl.json"
@@ -12,6 +13,7 @@ const locales = {
     "en-US": en_US,
     "zh-CN": zh_CN,
     "zh-TW": zh_TW,
+    "ja": ja,
     "fr-FR": fr_FR,
     "de": de,
     "nl": nl,
diff --git a/src/scripts/i18n/ja.json b/src/scripts/i18n/ja.json
new file mode 100644
index 0000000..24359c0
--- /dev/null
+++ b/src/scripts/i18n/ja.json
@@ -0,0 +1,235 @@
+{
+    "allArticles": "全ての記事",
+    "add": "追加",
+    "create": "新規",
+    "icon": "アイコン",
+    "name": "名称",
+    "openExternal": "ブラウザで開く",
+    "emptyName": "名称を入力してください。",
+    "emptyField": "このフィールドは空にできません。",
+    "edit": "編集",
+    "delete": "削除",
+    "followSystem": "システム設定に従う",
+    "more": "さらに詳しく",
+    "close": "閉じる",
+    "search": "検索",
+    "loadMore": "もっと読み込む",
+    "dangerButton": "{action}を確認しますか?",
+    "confirmMarkAll": "全ての記事を開封済みにしますか?",
+    "confirm": "確認",
+    "cancel": "キャンセル",
+    "time": {
+        "now": "now",
+        "m": "m",
+        "h": "h",
+        "d": "d",
+        "minute": "{m}分",
+        "hour": "{h}時間",
+        "day": "{d}日"
+    },
+    "log": {
+        "empty": "通知なし",
+        "fetchFailure": "フィード“{name}”の読み込みに失敗しました。",
+        "fetchSuccess": "{count} 件の記事をロードしました。",
+        "networkError": "フィードの接続にエラーが発生しました。",
+        "parseError": "XMLストリームの解析にエラーが発生しました。",
+        "syncFailure": "サービスの同期に失敗しました。"
+    },
+    "nav": {
+        "menu": "メニュー",
+        "refresh": "更新",
+        "markAllRead": "一括で開封済み",
+        "notifications": "通知",
+        "view": "ビュー",
+        "settings": "設定",
+        "minimize": "最小化",
+        "maximize": "最大化"
+    },
+    "menu": {
+        "close": "メニューを閉じる",
+        "subscriptions": "購読"
+    },
+    "article": {
+        "error": "記事の読み込みに失敗しました。",
+        "reload": "リロード",
+        "empty": "記事なし",
+        "untitled": "(無題)",
+        "hide": "記事を非表示",
+        "unhide": "記事を再表示",
+        "markRead": "開封済みにする",
+        "markUnread": "未開封にする",
+        "markAbove": "上記の記事を開封済みに",
+        "markBelow": "下記の記事を開封済みに",
+        "star": "星マーク",
+        "unstar": "星マークを外す",
+        "fontSize": "フォントサイズ",
+        "loadWebpage": "ウェブページを読み込む",
+        "loadFull": "全体を読み込む",
+        "notify": "バックグラウンドで取得された場合に通知する",
+        "dontNotify": "通知しない"
+    },
+    "context": {
+        "share": "共有",
+        "read": "読む",
+        "copyTitle": "タイトルをコピー",
+        "copyURL": "URLをコピー",
+        "copy": "コピー",
+        "search": "{engine} を使って“{text}”を検索する",
+        "view": "ビュー",
+        "cardView": "カードビュー",
+        "listView": "リストビュー",
+        "magazineView": "雑誌ビュー",
+        "compactView": "コンパクトビュー",
+        "filter": "フィルター",
+        "unreadOnly": "未開封のみ",
+        "starredOnly": "星付けのみ",
+        "fullSearch": "全文検索",
+        "showHidden": "非表示記事を表示",
+        "manageSources": "フィードを管理",
+        "saveImageAs": "イメージを保存",
+        "copyImage": "イメージをコピー",
+        "copyImageURL": "イメージリンクをコピー",
+        "caseSensitive": "大文字と小文字を区別",
+        "showCover": "表紙を表示",
+        "showSnippet": "スニペットを表示",
+        "fadeRead": "開封済みをフェード表示"
+    },
+    "searchEngine": {
+        "name": "検索エンジン",
+        "google": "Google",
+        "bing": "Bing",
+        "baidu": "Baidu",
+        "duckduckgo": "DuckDuckGo"
+    },
+    "settings": {
+        "writeError": "ファイルの書き込みにエラーが発生しました。",
+        "name": "オプション",
+        "fetching": "フィードを更新中、しばらくお待ちください…",
+        "exit": "終了",
+        "sources": "フィード",
+        "grouping": "グルーピングとソーティング",
+        "rules": "ルール",
+        "service": "サービス",
+        "app": "環境設定",
+        "about": "本アプリについて",
+        "version": "バージョン",
+        "shortcuts": "ショートカット",
+        "openSource": "オープンソース",
+        "feedback": "フィードバック"
+    },
+    "sources": {
+        "serviceWarning": "ここでインポートか追加されるフィードはサーバ側と同期しません。",
+        "serviceManaged": "このフィードはサーバ側で管理されます。",
+        "untitled": "フィード",
+        "errorAdd": "フィードの追加にエラーが発生しました。",
+        "errorParse": "OPMLファイルの解析にエラーが発生しました。",
+        "errorParseHint": "OPMLファイルが破損しておらず、UTF-8 でエンコードされていることを確認してください。",
+        "errorImport": "{count}件のフィードのインポート中にエラーが発生しました。",
+        "exist": "このフィードは既に存在します。",
+        "opmlFile": "OPMLファイル",
+        "name": "フィード名",
+        "editName": "名称変更",
+        "fetchFrequency": "取得頻度制限",
+        "unlimited": "無制限",
+        "openTarget": "フィード記事を開く方法",
+        "delete": "フィードを削除",
+        "add": "フィードを追加",
+        "import": "インポート",
+        "export": "エクスポート",
+        "rssText": "RSSテキスト",
+        "loadWebpage": "ウェブページを読み込む",
+        "inputUrl": "URLを入力",
+        "badIcon": "無効なアイコン",
+        "badUrl": "無効なURL",
+        "deleteWarning": "フィード及び保管している記事を削除することになります。",
+        "selected": "選択されたフィード",
+        "selectedMulti": "選択されたフィード(複数)"
+    },
+    "groups": {
+        "exist": "このグループは既に存在します。",
+        "type": "区分",
+        "group": "グループ",
+        "source": "フィード",
+        "capacity": "容量",
+        "exitGroup": "グループ一覧に戻る",
+        "deleteSource": "グループからフィードを削除",
+        "sourceHint": "フィードをドラッグ アンド ドロップして並べ替えます。",
+        "create": "新規グループ",
+        "selectedGroup": "選択されたグループ",
+        "selectedSource": "選択されたフィード",
+        "enterName": "名称を入力ください",
+        "editName": "名称を編集ください",
+        "deleteGroup": "グループを削除",
+        "chooseGroup": "グループを選択",
+        "addToGroup": "グループに追加",
+        "groupHint": "グループをダブルクリックしてフィードを編集します。フィードをドラッグ アンド ドロップして並べ替えます。"
+    },
+    "rules": {
+        "intro": "正規表現で記事を自動的にマークするか、通知を送信します",
+        "help": "さらに詳しく",
+        "source": "フィード",
+        "selectSource": "フィードを選ぶ",
+        "new": "新規ルール",
+        "if": "もし",
+        "then": "なら",
+        "title": "タイトル",
+        "content": "コンテンツ",
+        "fullSearch": "タイトルかコンテンツ",
+        "creator": "著者",
+        "match": "一致する",
+        "notMatch": "一致しない",
+        "regex": "正規表現",
+        "badRegex": "無効な正規表現",
+        "action": "アクション",
+        "selectAction": "アクションを選択",
+        "hint": "ルールは順番に適用されます。ドラッグ アンド ドロップして並べ替えます。",
+        "test": "テスト用ルール"
+    },
+    "service": {
+        "intro": "RSSサービスを使用してディバイス間で同期します",
+        "select": "サービスを選択",
+        "suggest": "新たなサービスを推薦",
+        "overwriteWarning": "ローカルフィードがサーバ側に既存する場合に無視されます。",
+        "groupsWarning": "グループはサーバ側と自動的に同期されません。",
+        "rateLimitWarning": "レート制限を回避するには、独自のAPI キーを作成する必要があります。",
+        "removeAd": "広告を削除",
+        "endpoint": "エンドポイント",
+        "username": "ユーザー名",
+        "password": "パスワード",
+        "unchanged": "変更なし",
+        "fetchLimit": "同期数制限",
+        "fetchLimitNum": "{count} 件の最新記事",
+        "importGroups": "グループをエクスポート",
+        "failure": "サーバ接続中にエラーが発生しました。",
+        "failureHint": "サーバ設定とネットワーク接続を確認ください",
+        "fetchUnlimited": "無制限(非推奨)",
+        "exportToLite": "Fluent Reader Liteにエクスポート"
+    },
+    "app": {
+        "cleanup": "一括削除",
+        "cache": "キャッシュを削除",
+        "cacheSize": "{size}のデータをキャッシュしている",
+        "deleteChoices": "… 日前の記事を削除",
+        "confirmDelete": "記事を削除",
+        "daysAgo": "{days} 日前",
+        "deleteAll": "全ての記事を削除",
+        "calculatingSize": "占めるスペースを計算中…",
+        "itemSize": "ローカル記事は{size}のスペースを占める",
+        "confirmImport": "バックアップファイルからデータを導入しますか?全ての既存データを削除することになります。",
+        "data": "アプリデータ",
+        "backup": "バックアップ",
+        "restore": "リストア",
+        "frData": "Fluent Readerデータ",
+        "language": "表示言語",
+        "theme": "アプリテーマ",
+        "lightTheme": "明るいテーマ",
+        "darkTheme": "暗いテーマ",
+        "enableProxy": "プロキシを使う",
+        "badUrl": "正しいURLを入力ください",
+        "pac": "PACアドレス",
+        "setPac": "PACを設定",
+        "pacHint": "Sockプロキシの場合にPACが“SOCKS5”を返すことをお勧めします。プロキシを停止してから再起動する必要があります。",
+        "fetchInterval": "フェッチ間隔",
+        "never": "しない"
+    }
+}
\ No newline at end of file