itizawa 6 лет назад
Родитель
Сommit
0053c6bd69

+ 59 - 0
resource/locales/en-US/admin/customize_setting.json

@@ -0,0 +1,59 @@
+{
+  "recommended": "Recommended",
+  "layout": "Layout",
+  "theme": "Theme",
+  "layout_desc": {
+    "growi_title": "Simple and Clear",
+    "growi_text1": "Full screen layout and thin margins/paddings",
+    "growi_text2": "Show and post comments at the bottom of the page",
+    "growi_text3": "Affix Table-of-contents",
+    "kibela_title": "Easy Viewing Structure",
+    "kibela_text1": "Center aligned contents",
+    "kibela_text2": "Show and post comments at the bottom of the page",
+    "kibela_text3": "Affix Table-of-contents",
+    "crowi_title": "Separated Functions",
+    "crowi_text1": "Collapsible Sidebar",
+    "crowi_text2": "Show and post comments in Sidebar",
+    "crowi_text3": "Collapsible Table-of-contents"
+  },
+  "behavior": "Behavior",
+  "behavior_desc": {
+    "growi_text1": "Both of <code>/page</code> and <code>/page/</code> shows the same page。",
+    "growi_text2": "<code>/nonexistent_page</code> shows editing form",
+    "growi_text3": "All pages shows the list of sub pages <b>if using GROWI Enhanced Layout</b>",
+    "crowi_text1": "<code>/page</code> shows the page",
+    "crowi_text2": "<code>/page/</code> shows the list of sub pages",
+    "crowi_text3": "If portal is applied to <code>/page/</code> , the portal and the list of sub pages are shown",
+    "crowi_text4": "<code>/nonexistent_page</code> shows editing form<",
+    "crowi_text5": "<code>/nonexistent_page/</code> the list of sub pages"
+  },
+  "function": "Function",
+  "function_desc": "You can choose Valid/Invalid of the function",
+  "function_options": {
+    "timeline": "Timeline function",
+    "timeline_desc1": "You can show the timeline of the subpages.",
+    "timeline_desc2": "If there are many subpages, performance decreases while page loading.",
+    "timeline_desc3": "You can speed up list page display by invalidating.",
+    "tab_switch": "Save tab-switching in the browser",
+    "tab_switch_desc1": "Save edit tab and history tab switching in the browser and make it object for forward/back command of the browser.",
+    "tab_switch_desc2": "By invalidating, you can make page transition as the only object for forward/back command of the browser.",
+    "attach_title_header": "Add h1 section when create new page automatically",
+    "attach_title_header_desc": "Add page path to the first line as h1 section when create new page",
+    "recent_created__n_draft_num_desc": "Number of Recently Created Pages & Drafts Displayed",
+    "recently_created_n_draft_num_desc": "Number of recently created pages and drafts displayed on user page",
+    "stale_notification": "Display Notification on Stale Pages",
+    "stale_notification_desc": "Displays the notification to pages more than 1 year since the last update."
+  },
+  "code_highlight": "Code Highlight",
+  "nocdn_desc": "This function is disabled when the environment variable <code>NO_CDN=true</code>.<br>Github style has been forcibly applied.",
+  "custom_title": "Custom Title",
+  "custom_title_detail": "You can customize <code>&lt;title&gt;</code> tag.<br><code>&#123;&#123;sitename&#125;&#125;</code> will be automatically replaced with the app name, and <code>&#123;&#123;page&#125;&#125;</code> will be replaced with the page name/path.",
+  "custom_header": "Custom HTML Header",
+  "custom_header_detail": "You can customize HTML header that applies all pages. Your custom script will be inserted in <code>&lt;header&gt;</code> but above other <code>&lt;script&gt;</code> tags.<br>Relaod page to see changes.",
+  "custom_css": "Custom CSS",
+  "write_css": "You can write CSS that is applied to whole system.",
+  "ctrl_space": "Ctrl+Space to Autocomplete",
+  "custom_script": "Custom script",
+  "write_java": "You can write Javascript that is applied to whole system.",
+  "reflect_change": "You need to reload the page to reflect the change."
+}

+ 0 - 65
resource/locales/en-US/translation.json

@@ -579,71 +579,6 @@
       "ifttt_link": "Create a new IFTTT applet with Email trigger"
     }
   },
-  "customize_page": {
-    "recommended": "Recommended",
-    "Behavior": "Behavior",
-    "Layout": "Layout",
-    "Function": "Function",
-    "function_choose": "You can choose Valid/Invalid of the function",
-    "Timeline function": "Timeline function",
-    "Code Highlight": "Code Highlight",
-    "Theme": "Theme",
-    "subpage_display": "You can show the timeline of the subpages.",
-    "performance_decrease": "If there are many subpages, performance decreases while page loading.",
-    "list_page_display": "You can speed up list page display by invalidating.",
-    "tab_switch": "Save tab-switching in the browser",
-    "save_edit": "Save edit tab and history tab switching in the browser and make it object for forward/back command of the browser.",
-    "by_invalidating": "By invalidating, you can make page transition as the only object for forward/back command of the browser.",
-    "nocdn_desc": "This function is disabled when the environment variable <code>NO_CDN=true</code>.<br>Github style has been forcibly applied.",
-    "custom_title": "Custom Title",
-    "custom_title_detail": "You can customize <code>%s</code> tag.<br><code>%s</code> will be automatically replaced with the app name, and <code>%s</code> will be replaced with the page name/path.",
-    "custom_header": "Custom HTML Header",
-    "custom_header_detail": "You can customize HTML header that applies all pages. Your custom script will be inserted in <code>&lt;header&gt;</code> but above other <code>&lt;script&gt;</code> tags.<br>Relaod page to see changes.",
-    "Custom CSS": "Custom CSS",
-    "write_CSS": "You can write CSS that is applied to whole system.",
-    "reflect_change": "You need to reload the page to reflect the change.",
-    "ctrl_space": "Ctrl+Space to Autocomplete",
-    "Custom script": "Custom script",
-    "write_java": "You can write Javascript that is applied to whole system.",
-    "attach_title_header": "Add h1 section when create new page automatically",
-    "attach_title_header_desc": "Add page path to the first line as h1 section when create new page",
-    "recent_created__n_draft_num_desc": "Number of Recently Created Pages & Drafts Displayed",
-    "recently_created_n_draft_num_desc": "Number of recently created pages and drafts displayed on user page",
-    "stale_notification": "Display Notification on Stale Pages",
-    "stale_notification_desc": "Displays the notification to pages more than 1 year since the last update.",
-    "update_layout_success": "Succeeded to update layout",
-    "update_behavior_success": "Succeeded to update behavior",
-    "update_function_success": "Succeeded to update function",
-    "update_highlight_success": "Succeeded to update code highlight",
-    "update_customTitle_success": "Succeeded to update customize title",
-    "update_customHeader_success": "Succeeded to update customize html header",
-    "update_customCss_success": "Succeeded to update customize css",
-    "update_script_success": "Succeeded to update custom script",
-    "layout_description": {
-      "growi_title": "Simple and Clear",
-      "growi_text1": "Full screen layout and thin margins/paddings",
-      "growi_text2": "Show and post comments at the bottom of the page",
-      "growi_text3": "Affix Table-of-contents",
-      "kibela_title": "Easy Viewing Structure",
-      "kibela_text1": "Center aligned contents",
-      "kibela_text2": "Show and post comments at the bottom of the page",
-      "kibela_text3": "Affix Table-of-contents",
-      "crowi_title": "Separated Functions",
-      "crowi_text1": "Collapsible Sidebar",
-      "crowi_text2": "Show and post comments in Sidebar",
-      "crowi_text3": "Collapsible Table-of-contents"
-    },
-    "behavior_description": {
-      "growi_text1": "Both of <code>/page</code> and <code>/page/</code> shows the same page。",
-      "growi_text2": "<code>/nonexistent_page</code> shows editing form",
-      "growi_text3": "All pages shows the list of sub pages <b>if using GROWI Enhanced Layout</b>",
-      "crowi_text1": "<code>/page</code> shows the page",
-      "crowi_text2": "<code>/page/</code> shows the list of sub pages",
-      "crowi_text3": "If portal is applied to <code>/page/</code> , the portal and the list of sub pages are shown",
-      "crowi_text4": "<code>/nonexistent_page</code> shows editing form<",
-      "crowi_text5": "<code>/nonexistent_page/</code> the list of sub pages"
-    }
-  },
   "user_management": {
     "target_user": "Target User",
     "new_password": "New Password",

+ 35 - 39
resource/locales/ja/admin/customize_setting.json

@@ -1,42 +1,8 @@
 {
   "recommended": "おすすめ",
-  "Behavior": "動作",
-  "Layout": "レイアウト",
-  "Function": "機能",
-  "function_choose": "機能の有効/無効を選択できます。",
-  "Timeline function": "タイムライン機能",
-  "Code Highlight": "コードハイライト",
-  "Theme": "テーマ",
-  "subpage_display": "配下ページのタイムラインを表示できます。",
-  "performance_decrease": "配下ページが多い場合はページロード時のパフォーマンスが落ちます。",
-  "list_page_display": "無効化することでリストページの表示を高速化できます。",
-  "tab_switch": "タブ変更をブラウザ履歴に保存",
-  "save_edit": "編集タブやヒストリータブ等の切り替えをブラウザ履歴に保存し、ブラウザの戻る/進む操作の対象にします。",
-  "by_invalidating": "無効化することで、ページ遷移のみを戻る/進む操作の対象にすることができます。",
-  "nocdn_desc": "この機能は、環境変数 <code>NO_CDN=true</code> の時は無効化されます。<br>GitHub スタイルが適用されています。",
-  "custom_title": "カスタム Title",
-  "custom_title_detail": "<code>%s</code>タグのコンテンツをカスタマイズできます。<br><code>%s</code>がサイト名、<code>%s</code>がページ名またはページパスに置換されます。",
-  "custom_header": "カスタム HTML Header",
-  "custom_header_detail": "システム全体に適用される HTML を記述できます。<code>&lt;header&gt;</code> タグ内の他の <code>&lt;script&gt;</code> タグ読み込み前に展開されます。<br>変更の反映はページの更新が必要です。",
-  "Custom CSS": "カスタム CSS",
-  "write_CSS": " システム全体に適用されるCSSを記述できます。",
-  "reflect_change": "変更の反映はページの更新が必要です。",
-  "ctrl_space": "Ctrl+Space でコード補完",
-  "Custom script": "カスタムスクリプト",
-  "write_java": "システム全体に適用されるJavaScriptを記述できます。",
-  "attach_title_header": "新規ページ作成時の h1 セクション自動挿入",
-  "attach_title_header_desc": "新規作成したページの1行目に、ページのパスを h1 セクションとして挿入します。",
-  "recent_created__n_draft_num_desc": "最近作成したページと下書きの表示数",
-  "recently_created_n_draft_num_desc": "ホーム画面の Recently Created での、1ページの表示数を設定します。",
-  "update_layout_success": "レイアウトを更新しました",
-  "update_behavior_success": "動作を更新しました",
-  "update_function_success": "機能を更新しました",
-  "update_highlight_success": "コードハイライトを更新しました",
-  "update_customTitle_success": "カスタムタイトルを更新しました",
-  "update_customHeader_success": "カスタムHTMLヘッダーを更新しました",
-  "update_customCss_success": "カスタムCSSを更新しました",
-  "update_script_success": "カスタムスクリプトを更新しました",
-  "layout_description": {
+  "layout": "レイアウト",
+  "theme": "テーマ",
+  "layout_desc": {
     "growi_title": "シンプル・明瞭",
     "growi_text1": "全画面レイアウトで、余白は少なくなります。",
     "growi_text2": "コメントはページの下部に表示されます。",
@@ -50,7 +16,8 @@
     "crowi_text2": "コメントはサイドバーに表示されます。",
     "crowi_text3": "ページ情報はサイドバーに表示されます。"
   },
-  "behavior_description": {
+  "behavior": "動作",
+  "behavior_desc": {
     "growi_text1": "<code>/page</code>と<code>/page/</code>どちらのパスも同じページを表示します。",
     "growi_text2": "<code>/nonexistent_page</code> では編集フォームを表示します",
     "growi_text3": "<b>GROWI Enhanced Layout</b>では全てのページが配下のページリストを表示します",
@@ -59,5 +26,34 @@
     "crowi_text3": "<code>/page/</code>がポータルに適応している場合、ポータルページと配下のページリストを表示します。",
     "crowi_text4": "<code>/nonexistent_page</code> では編集フォームを表示します",
     "crowi_text5": "<code>/nonexistent_page</code> では配下のページリストを表示します。"
-  }
+  },
+  "function": "機能",
+  "function_desc": "機能の有効/無効を選択できます。",
+  "function_options": {
+    "timeline": "タイムライン機能",
+    "timeline_desc1": "配下ページのタイムラインを表示できます。",
+    "timeline_desc2": "配下ページが多い場合はページロード時のパフォーマンスが落ちます。",
+    "timeline_desc3": "無効化することでリストページの表示を高速化できます。",
+    "tab_switch": "タブ変更をブラウザ履歴に保存",
+    "tab_switch_desc1": "編集タブやヒストリータブ等の切り替えをブラウザ履歴に保存し、ブラウザの戻る/進む操作の対象にします。",
+    "tab_switch_desc2": "無効化することで、ページ遷移のみを戻る/進む操作の対象にすることができます。",
+    "attach_title_header": "新規ページ作成時の h1 セクション自動挿入",
+    "attach_title_header_desc": "新規作成したページの1行目に、ページのパスを h1 セクションとして挿入します。",
+    "recent_created__n_draft_num_desc": "最近作成したページと下書きの表示数",
+    "recently_created_n_draft_num_desc": "ホーム画面の Recently Created での、1ページの表示数を設定します。",
+    "stale_notification": "古いページに通知を表示する",
+    "stale_notification_desc": "最後の更新から1年を超えるページへの通知を表示します。"
+  },
+  "code_highlight": "コードハイライト",
+  "nocdn_desc": "この機能は、環境変数 <code>NO_CDN=true</code> の時は無効化されます。<br>GitHub スタイルが適用されています。",
+  "custom_title": "カスタム Title",
+  "custom_title_detail": "<code>&lt;title&gt;</code>タグのコンテンツをカスタマイズできます。<br><code>&#123;&#123;sitename&#125;&#125;</code>がサイト名、<code>&#123;&#123;page&#125;&#125;</code>がページ名またはページパスに置換されます。",
+  "custom_header": "カスタム HTML Header",
+  "custom_header_detail": "システム全体に適用される HTML を記述できます。<code>&lt;header&gt;</code> タグ内の他の <code>&lt;script&gt;</code> タグ読み込み前に展開されます。<br>変更の反映はページの更新が必要です。",
+  "custom_css": "カスタム CSS",
+  "write_css": " システム全体に適用されるCSSを記述できます。",
+  "ctrl_space": "Ctrl+Space でコード補完",
+  "custom_script": "カスタムスクリプト",
+  "write_java": "システム全体に適用されるJavaScriptを記述できます。",
+  "reflect_change": "変更の反映はページの更新が必要です。"
 }

+ 0 - 65
resource/locales/ja/translation.json

@@ -562,71 +562,6 @@
       "ifttt_link": "IFTTT でメールトリガの新しいアプレットを作る"
     }
   },
-  "customize_page": {
-    "recommended": "おすすめ",
-    "Behavior": "動作",
-    "Layout": "レイアウト",
-    "Function": "機能",
-    "function_choose": "機能の有効/無効を選択できます。",
-    "Timeline function": "タイムライン機能",
-    "Code Highlight": "コードハイライト",
-    "Theme": "テーマ",
-    "subpage_display": "配下ページのタイムラインを表示できます。",
-    "performance_decrease": "配下ページが多い場合はページロード時のパフォーマンスが落ちます。",
-    "list_page_display": "無効化することでリストページの表示を高速化できます。",
-    "tab_switch": "タブ変更をブラウザ履歴に保存",
-    "save_edit": "編集タブやヒストリータブ等の切り替えをブラウザ履歴に保存し、ブラウザの戻る/進む操作の対象にします。",
-    "by_invalidating": "無効化することで、ページ遷移のみを戻る/進む操作の対象にすることができます。",
-    "nocdn_desc": "この機能は、環境変数 <code>NO_CDN=true</code> の時は無効化されます。<br>GitHub スタイルが適用されています。",
-    "custom_title": "カスタム Title",
-    "custom_title_detail": "<code>%s</code>タグのコンテンツをカスタマイズできます。<br><code>%s</code>がサイト名、<code>%s</code>がページ名またはページパスに置換されます。",
-    "custom_header": "カスタム HTML Header",
-    "custom_header_detail": "システム全体に適用される HTML を記述できます。<code>&lt;header&gt;</code> タグ内の他の <code>&lt;script&gt;</code> タグ読み込み前に展開されます。<br>変更の反映はページの更新が必要です。",
-    "Custom CSS": "カスタム CSS",
-    "write_CSS": " システム全体に適用されるCSSを記述できます。",
-    "reflect_change": "変更の反映はページの更新が必要です。",
-    "ctrl_space": "Ctrl+Space でコード補完",
-    "Custom script": "カスタムスクリプト",
-    "write_java": "システム全体に適用されるJavaScriptを記述できます。",
-    "attach_title_header": "新規ページ作成時の h1 セクション自動挿入",
-    "attach_title_header_desc": "新規作成したページの1行目に、ページのパスを h1 セクションとして挿入します。",
-    "recent_created__n_draft_num_desc": "最近作成したページと下書きの表示数",
-    "recently_created_n_draft_num_desc": "ホーム画面の Recently Created での、1ページの表示数を設定します。",
-    "stale_notification": "更新されていないページに通知を表示",
-    "stale_notification_desc": "最終更新から1年以上が経過しているページに通知を表示します。",
-    "update_layout_success": "レイアウトを更新しました",
-    "update_behavior_success": "動作を更新しました",
-    "update_function_success": "機能を更新しました",
-    "update_highlight_success": "コードハイライトを更新しました",
-    "update_customTitle_success": "カスタムタイトルを更新しました",
-    "update_customHeader_success": "カスタムHTMLヘッダーを更新しました",
-    "update_customCss_success": "カスタムCSSを更新しました",
-    "update_script_success": "カスタムスクリプトを更新しました",
-    "layout_description": {
-      "growi_title": "シンプル・明瞭",
-      "growi_text1": "全画面レイアウトで、余白は少なくなります。",
-      "growi_text2": "コメントはページの下部に表示されます。",
-      "growi_text3": "ページ情報は下部に表示されます。",
-      "kibela_title": "閲覧重視の構造",
-      "kibela_text1": "コンテンツが中心に表示されます。",
-      "kibela_text2": "コメントはページの下部に表示されます。",
-      "kibela_text3": "ページ情報は下部に表示されます。",
-      "crowi_title": "ビュー・コントロールの分離",
-      "crowi_text1": "サイドバーを開くと情報が表示されます。",
-      "crowi_text2": "コメントはサイドバーに表示されます。",
-      "crowi_text3": "ページ情報はサイドバーに表示されます。"
-    },
-    "behavior_description": {
-      "growi_text1": "<code>/page</code>と<code>/page/</code>どちらのパスも同じページを表示します。",
-      "growi_text2": "<code>/nonexistent_page</code> では編集フォームを表示します",
-      "growi_text3": "<b>GROWI Enhanced Layout</b>では全てのページが配下のページリストを表示します",
-      "crowi_text1": "<code>/page</code> ではページを表示します。",
-      "crowi_text2": "<code>/page/</code> では配下のページを表示します。",
-      "crowi_text3": "<code>/page/</code>がポータルに適応している場合、ポータルページと配下のページリストを表示します。",
-      "crowi_text4": "<code>/nonexistent_page</code> では編集フォームを表示します",
-      "crowi_text5": "<code>/nonexistent_page</code> では配下のページリストを表示します。"
-    }
-  },
   "user_management": {
     "target_user": "対象ユーザー",
     "new_password": "新しいパスワード",

+ 11 - 11
src/client/js/components/Admin/Customize/CustomizeBehaviorSetting.jsx

@@ -29,7 +29,7 @@ class CustomizeBehaviorSetting extends React.Component {
 
     try {
       await adminCustomizeContainer.updateCustomizeBehavior();
-      toastSuccess(t('customize_page.update_behavior_success'));
+      toastSuccess(t('toaster:update_successed', { target: 'Behavior' }));
     }
     catch (err) {
       toastError(err);
@@ -42,19 +42,19 @@ class CustomizeBehaviorSetting extends React.Component {
 
     return (
       <React.Fragment>
-        <h2 className="admin-setting-header">{t('customize_page.Behavior')}</h2>
+        <h2 className="admin-setting-header">{t('customize_setting:behavior')}</h2>
         <div className="row">
           <div className="col-xs-6">
             <CustomizeBehaviorOption
               behaviorType="growi"
               isSelected={adminCustomizeContainer.state.currentBehavior === 'growi'}
               onSelected={() => adminCustomizeContainer.switchBehaviorType('growi')}
-              labelHtml={`GROWI Simplified Behavior <small class="text-success">${t('customize_page.recommended')}</small>`}
+              labelHtml={`GROWI Simplified Behavior <small class="text-success">${t('customize_setting:recommended')}</small>`}
             >
               <ul>
-                <li><span dangerouslySetInnerHTML={{ __html: t('customize_page.behavior_description.growi_text1') }} /></li>
-                <li><span dangerouslySetInnerHTML={{ __html: t('customize_page.behavior_description.growi_text2') }} /></li>
-                <li><span dangerouslySetInnerHTML={{ __html: t('customize_page.behavior_description.growi_text3') }} /></li>
+                <li><span dangerouslySetInnerHTML={{ __html: t('customize_setting:behavior_desc.growi_text1') }} /></li>
+                <li><span dangerouslySetInnerHTML={{ __html: t('customize_setting:behavior_desc.growi_text2') }} /></li>
+                <li><span dangerouslySetInnerHTML={{ __html: t('customize_setting:behavior_desc.growi_text3') }} /></li>
               </ul>
             </CustomizeBehaviorOption>
           </div>
@@ -67,13 +67,13 @@ class CustomizeBehaviorSetting extends React.Component {
               labelHtml="Crowi Classic Behavior"
             >
               <ul>
-                <li><span dangerouslySetInnerHTML={{ __html: t('customize_page.behavior_description.crowi_text1') }} /></li>
-                <li><span dangerouslySetInnerHTML={{ __html: t('customize_page.behavior_description.crowi_text2') }} /></li>
+                <li><span dangerouslySetInnerHTML={{ __html: t('customize_setting:behavior_desc.crowi_text1') }} /></li>
+                <li><span dangerouslySetInnerHTML={{ __html: t('customize_setting:behavior_desc.crowi_text2') }} /></li>
                 <ul>
-                  <li><span dangerouslySetInnerHTML={{ __html: t('customize_page.behavior_description.crowi_text3') }} /></li>
+                  <li><span dangerouslySetInnerHTML={{ __html: t('customize_setting:behavior_desc.crowi_text3') }} /></li>
                 </ul>
-                <li><span dangerouslySetInnerHTML={{ __html: t('customize_page.behavior_description.crowi_text4') }} /></li>
-                <li><span dangerouslySetInnerHTML={{ __html: t('customize_page.behavior_description.crowi_text5') }} /></li>
+                <li><span dangerouslySetInnerHTML={{ __html: t('customize_setting:behavior_desc.crowi_text4') }} /></li>
+                <li><span dangerouslySetInnerHTML={{ __html: t('customize_setting:behavior_desc.crowi_text5') }} /></li>
               </ul>
             </CustomizeBehaviorOption>
           </div>

+ 5 - 5
src/client/js/components/Admin/Customize/CustomizeCssSetting.jsx

@@ -37,7 +37,7 @@ class CustomizeCssSetting extends React.Component {
 
     try {
       await adminCustomizeContainer.updateCustomizeCss();
-      toastSuccess(t('customize_page.update_customCss_success'));
+      toastSuccess(t('toaster:update_successed', { target: 'CustomCss' }));
     }
     catch (err) {
       toastError(err);
@@ -50,10 +50,10 @@ class CustomizeCssSetting extends React.Component {
 
     return (
       <React.Fragment>
-        <h2 className="admin-setting-header">{t('customize_page.Custom CSS')}</h2>
+        <h2 className="admin-setting-header">{t('customize_setting:custom_css')}</h2>
         <p className="well">
-          { t('customize_page.write_CSS') }<br />
-          { t('customize_page.reflect_change') }
+          {t('customize_setting:write_css')}<br />
+          {t('customize_setting:reflect_change')}
         </p>
         <div className="form-group">
           <div className="col-xs-12">
@@ -66,7 +66,7 @@ class CustomizeCssSetting extends React.Component {
           <div className="col-xs-12">
             <p className="help-block text-right">
               <i className="fa fa-fw fa-keyboard-o" aria-hidden="true" />
-              { t('customize_page.ctrl_space') }
+              {t('customize_setting:ctrl_space')}
             </p>
           </div>
         </div>

+ 16 - 16
src/client/js/components/Admin/Customize/CustomizeFunctionSetting.jsx

@@ -28,7 +28,7 @@ class CustomizeBehaviorSetting extends React.Component {
 
     try {
       await adminCustomizeContainer.updateCustomizeFunction();
-      toastSuccess(t('customize_page.update_function_success'));
+      toastSuccess(t('toaster:update_successed', { target: 'Function' }));
     }
     catch (err) {
       toastError(err);
@@ -41,21 +41,21 @@ class CustomizeBehaviorSetting extends React.Component {
 
     return (
       <React.Fragment>
-        <h2 className="admin-setting-header">{t('customize_page.Function')}</h2>
-        <p className="well">{ t('customize_page.function_choose') }</p>
+        <h2 className="admin-setting-header">{t('customize_setting:function')}</h2>
+        <p className="well">{t('customize_setting:function_desc')}</p>
 
         <div className="form-group row">
           <div className="col-xs-offset-3 col-xs-6 text-left">
             <CustomizeFunctionOption
               optionId="isEnabledTimeline"
-              label={t('customize_page.Timeline function')}
+              label={t('customize_setting:function_options.timeline')}
               isChecked={adminCustomizeContainer.state.isEnabledTimeline}
               onChecked={() => { adminCustomizeContainer.switchEnableTimeline() }}
             >
               <p className="help-block">
-                { t('customize_page.subpage_display') }<br />
-                { t('customize_page.performance_decrease') }<br />
-                { t('customize_page.list_page_display') }
+                {t('customize_setting:function_options.timeline_desc1')}<br />
+                {t('customize_setting:function_options.timeline_desc2')}<br />
+                {t('customize_setting:function_options.timeline_desc3')}
               </p>
             </CustomizeFunctionOption>
           </div>
@@ -65,13 +65,13 @@ class CustomizeBehaviorSetting extends React.Component {
           <div className="col-xs-offset-3 col-xs-6 text-left">
             <CustomizeFunctionOption
               optionId="isSavedStatesOfTabChanges"
-              label={t('customize_page.tab_switch')}
+              label={t('customize_setting:function_options.tab_switch')}
               isChecked={adminCustomizeContainer.state.isSavedStatesOfTabChanges}
               onChecked={() => { adminCustomizeContainer.switchSavedStatesOfTabChanges() }}
             >
               <p className="help-block">
-                { t('customize_page.save_edit') }<br />
-                { t('customize_page.by_invalidating') }
+                {t('customize_setting:function_options.tab_switch_desc1')}<br />
+                {t('customize_setting:function_options.tab_switch_desc2')}
               </p>
             </CustomizeFunctionOption>
           </div>
@@ -81,12 +81,12 @@ class CustomizeBehaviorSetting extends React.Component {
           <div className="col-xs-offset-3 col-xs-6 text-left">
             <CustomizeFunctionOption
               optionId="isEnabledAttachTitleHeader"
-              label={t('customize_page.attach_title_header')}
+              label={t('customize_setting:function_options.attach_title_header')}
               isChecked={adminCustomizeContainer.state.isEnabledAttachTitleHeader}
               onChecked={() => { adminCustomizeContainer.switchEnabledAttachTitleHeader() }}
             >
               <p className="help-block">
-                { t('customize_page.attach_title_header_desc') }
+                {t('customize_setting:function_options.attach_title_header_desc')}
               </p>
             </CustomizeFunctionOption>
           </div>
@@ -95,7 +95,7 @@ class CustomizeBehaviorSetting extends React.Component {
         <div className="form-group row">
           <div className="col-xs-offset-3 col-xs-6 text-left">
             <div className="my-0 btn-group">
-              <label>{t('customize_page.recent_created__n_draft_num_desc')}</label>
+              <label>{t('customize_setting:function_options.recent_created__n_draft_num_desc')}</label>
               <div className="dropdown">
                 <button className="btn btn-default dropdown-toggle w-100" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                   <span className="pull-left">{adminCustomizeContainer.state.currentRecentCreatedLimit}</span>
@@ -117,7 +117,7 @@ class CustomizeBehaviorSetting extends React.Component {
                 </ul>
               </div>
               <p className="help-block">
-                { t('customize_page.recently_created_n_draft_num_desc') }
+                {t('customize_setting:function_options.recently_created_n_draft_num_desc')}
               </p>
             </div>
           </div>
@@ -127,12 +127,12 @@ class CustomizeBehaviorSetting extends React.Component {
           <div className="col-xs-offset-3 col-xs-6 text-left">
             <CustomizeFunctionOption
               optionId="isEnabledStaleNotification"
-              label={t('customize_page.stale_notification')}
+              label={t('customize_setting:function_options.stale_notification')}
               isChecked={adminCustomizeContainer.state.isEnabledStaleNotification}
               onChecked={() => { adminCustomizeContainer.switchEnableStaleNotification() }}
             >
               <p className="help-block">
-                { t('customize_page.stale_notification_desc') }
+                {t('customize_setting:function_options.stale_notification_desc')}
               </p>
             </CustomizeFunctionOption>
           </div>

+ 5 - 5
src/client/js/components/Admin/Customize/CustomizeHeaderSetting.jsx

@@ -37,7 +37,7 @@ class CustomizeHeaderSetting extends React.Component {
 
     try {
       await adminCustomizeContainer.updateCustomizeHeader();
-      toastSuccess(t('customize_page.update_customHeader_success'));
+      toastSuccess(t('toaster:update_successed', { target: 'CustomHeader' }));
     }
     catch (err) {
       toastError(err);
@@ -50,16 +50,16 @@ class CustomizeHeaderSetting extends React.Component {
 
     return (
       <React.Fragment>
-        <h2 className="admin-setting-header">{t('customize_page.custom_header')}</h2>
+        <h2 className="admin-setting-header">{t('customize_setting:custom_header')}</h2>
 
         <p
           className="well"
           // eslint-disable-next-line react/no-danger
-          dangerouslySetInnerHTML={{ __html: t('customize_page.custom_header_detail') }}
+          dangerouslySetInnerHTML={{ __html: t('customize_setting:custom_header_detail') }}
         />
 
         <div className="help-block">
-          { t('Example') }:
+          {t('Example')}:
           <pre className="hljs">
             {/* eslint-disable-next-line react/no-unescaped-entities */}
             <code>&lt;script src="https://cdn.jsdelivr.net/gh/highlightjs/cdn-release@9.13.0/build/languages/yaml.min.js" defer&gt;&lt;/script&gt;</code>
@@ -76,7 +76,7 @@ class CustomizeHeaderSetting extends React.Component {
         <div className="col-xs-12">
           <p className="help-block text-right">
             <i className="fa fa-fw fa-keyboard-o" aria-hidden="true"></i>
-            { t('customize_page.ctrl_space') }
+            {t('customize_setting:ctrl_space')}
           </p>
         </div>
 

+ 4 - 4
src/client/js/components/Admin/Customize/CustomizeHighlightSetting.jsx

@@ -28,7 +28,7 @@ class CustomizeHighlightSetting extends React.Component {
 
     try {
       await adminCustomizeContainer.updateHighlightJsStyle();
-      toastSuccess(t('customize_page.update_highlight_success'));
+      toastSuccess(t('toaster:update_successed', { target: 'Highlight' }));
     }
     catch (err) {
       toastError(err);
@@ -72,12 +72,12 @@ class CustomizeHighlightSetting extends React.Component {
 
     return (
       <React.Fragment>
-        <h2 className="admin-setting-header">{t('customize_page.Code Highlight')}</h2>
+        <h2 className="admin-setting-header">{t('customize_setting:code_highlight')}</h2>
 
         <div className="form-group row">
           <div className="col-xs-offset-3 col-xs-6 text-left">
             <div className="my-0 btn-group">
-              <label>{t('customize_page.Theme')}</label>
+              <label>{t('customize_setting:theme')}</label>
               <div className="dropdown">
                 <button className="btn btn-default dropdown-toggle w-100" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                   <span className="pull-left">{adminCustomizeContainer.state.currentHighlightJsStyleName}</span>
@@ -91,7 +91,7 @@ class CustomizeHighlightSetting extends React.Component {
                 </ul>
               </div>
               {/* eslint-disable-next-line react/no-danger */}
-              <p className="help-block text-warning"><span dangerouslySetInnerHTML={{ __html:  t('customize_page.nocdn_desc') }} /></p>
+              <p className="help-block text-warning"><span dangerouslySetInnerHTML={{ __html: t('customize_setting:nocdn_desc') }} /></p>
             </div>
           </div>
         </div>

+ 13 - 13
src/client/js/components/Admin/Customize/CustomizeLayoutOptions.jsx

@@ -20,13 +20,13 @@ class CustomizeLayoutOptions extends React.Component {
             layoutType="crowi-plus"
             isSelected={adminCustomizeContainer.state.currentLayout === 'growi'}
             onSelected={() => adminCustomizeContainer.switchLayoutType('growi')}
-            labelHtml={`GROWI Enhanced Layout <small class="text-success">${t('customize_page.recommended')}</small>`}
+            labelHtml={`GROWI Enhanced Layout <small class="text-success">${t('customize_setting:recommended')}</small>`}
           >
-            <h4>{t('customize_page.layout_description.growi_title')}</h4>
+            <h4>{t('customize_setting:layout_desc.growi_title')}</h4>
             <ul>
-              <li>{t('customize_page.layout_description.growi_text1')}</li>
-              <li>{t('customize_page.layout_description.growi_text2')}</li>
-              <li>{t('customize_page.layout_description.growi_text3')}</li>
+              <li>{t('customize_setting:layout_desc.growi_text1')}</li>
+              <li>{t('customize_setting:layout_desc.growi_text2')}</li>
+              <li>{t('customize_setting:layout_desc.growi_text3')}</li>
             </ul>
           </CustomizeLayoutOption>
         </div>
@@ -38,11 +38,11 @@ class CustomizeLayoutOptions extends React.Component {
             onSelected={() => adminCustomizeContainer.switchLayoutType('kibela')}
             labelHtml="Kibela Like Layout"
           >
-            <h4>{t('customize_page.layout_description.kibela_title')}</h4>
+            <h4>{t('customize_setting:layout_desc.kibela_title')}</h4>
             <ul>
-              <li>{t('customize_page.layout_description.kibela_text1')}</li>
-              <li>{t('customize_page.layout_description.kibela_text2')}</li>
-              <li>{t('customize_page.layout_description.kibela_text3')}</li>
+              <li>{t('customize_setting:layout_desc.kibela_text1')}</li>
+              <li>{t('customize_setting:layout_desc.kibela_text2')}</li>
+              <li>{t('customize_setting:layout_desc.kibela_text3')}</li>
             </ul>
           </CustomizeLayoutOption>
         </div>
@@ -54,11 +54,11 @@ class CustomizeLayoutOptions extends React.Component {
             onSelected={() => adminCustomizeContainer.switchLayoutType('crowi')}
             labelHtml="Crowi Classic Layout"
           >
-            <h4>{t('customize_page.layout_description.crowi_title')}</h4>
+            <h4>{t('customize_setting:layout_desc.crowi_title')}</h4>
             <ul>
-              <li>{t('customize_page.layout_description.crowi_text1')}</li>
-              <li>{t('customize_page.layout_description.crowi_text2')}</li>
-              <li>{t('customize_page.layout_description.crowi_text3')}</li>
+              <li>{t('customize_setting:layout_desc.crowi_text1')}</li>
+              <li>{t('customize_setting:layout_desc.crowi_text2')}</li>
+              <li>{t('customize_setting:layout_desc.crowi_text3')}</li>
             </ul>
           </CustomizeLayoutOption>
         </div>

+ 3 - 3
src/client/js/components/Admin/Customize/CustomizeLayoutSetting.jsx

@@ -30,7 +30,7 @@ class CustomizeLayoutSetting extends React.Component {
 
     try {
       await adminCustomizeContainer.updateCustomizeLayoutAndTheme();
-      toastSuccess(t('customize_page.update_layout_success'));
+      toastSuccess(t('toaster:update_successed', { target: 'Layout' }));
     }
     catch (err) {
       toastError(err);
@@ -54,9 +54,9 @@ class CustomizeLayoutSetting extends React.Component {
 
     return (
       <React.Fragment>
-        <h2 className="admin-setting-header">{t('customize_page.Layout')}</h2>
+        <h2 className="admin-setting-header">{t('customize_setting:layout')}</h2>
         <CustomizeLayoutOptions />
-        <h2 className="admin-setting-header">{t('customize_page.Theme')}</h2>
+        <h2 className="admin-setting-header">{t('customize_setting:theme')}</h2>
         {this.renderDevAlert()}
         <CustomizeThemeOptions />
         <AdminUpdateButtonRow onClick={this.onClickSubmit} disabled={adminCustomizeContainer.state.retrieveError != null} />

+ 5 - 5
src/client/js/components/Admin/Customize/CustomizeScriptSetting.jsx

@@ -37,7 +37,7 @@ class CustomizeScriptSetting extends React.Component {
 
     try {
       await adminCustomizeContainer.updateCustomizeScript();
-      toastSuccess(t('customize_page.update_script_success'));
+      toastSuccess(t('toaster:update_successed', { target: 'CustomScript' }));
     }
     catch (err) {
       toastError(err);
@@ -58,10 +58,10 @@ class CustomizeScriptSetting extends React.Component {
 
     return (
       <React.Fragment>
-        <h2 className="admin-setting-header">{t('customize_page.Custom script')}</h2>
+        <h2 className="admin-setting-header">{t('customize_setting:custom_script')}</h2>
         <p className="well">
-          { t('customize_page.write_java') }<br />
-          { t('customize_page.reflect_change') }
+          {t('customize_setting:write_java')}<br />
+          {t('customize_setting:reflect_change')}
         </p>
 
         <div className="help-block">
@@ -97,7 +97,7 @@ class CustomizeScriptSetting extends React.Component {
           <div className="col-xs-12">
             <p className="help-block text-right">
               <i className="fa fa-fw fa-keyboard-o" aria-hidden="true" />
-              { t('customize_page.ctrl_space') }
+              {t('customize_setting:ctrl_space')}
             </p>
           </div>
         </div>

+ 3 - 3
src/client/js/components/Admin/Customize/CustomizeTitle.jsx

@@ -25,7 +25,7 @@ class CustomizeTitle extends React.Component {
 
     try {
       await adminCustomizeContainer.updateCustomizeTitle();
-      toastSuccess(t('customize_page.update_customTitle_success'));
+      toastSuccess(t('toaster:update_successed', { target: 'CustomTitle' }));
     }
     catch (err) {
       toastError(err);
@@ -39,11 +39,11 @@ class CustomizeTitle extends React.Component {
 
     return (
       <React.Fragment>
-        <h2 className="admin-setting-header">{t('customize_page.custom_title')}</h2>
+        <h2 className="admin-setting-header">{t('customize_setting:custom_title')}</h2>
         <p
           className="well"
           // eslint-disable-next-line react/no-danger, max-len
-          dangerouslySetInnerHTML={{ __html: '<code>&lt;title&gt;</code>タグのコンテンツをカスタマイズできます。<br><code>&#123;&#123;sitename&#125;&#125;</code>がサイト名、<code>&#123;&#123;page&#125;&#125;</code>がページ名またはページパスに置換されます。' }}
+          dangerouslySetInnerHTML={{ __html: t('customize_setting:custom_title_detail') }}
         />
         {/* TODO i18n */}
         <div className="help-block">