diff --git a/webui/messages/en.json b/webui/messages/en.json index 57b72e67..92a5c59a 100644 --- a/webui/messages/en.json +++ b/webui/messages/en.json @@ -19,8 +19,12 @@ "add_plan_modal_validation_plan_name_pattern": "Name must be alphanumeric with dashes or underscores as separators", "add_plan_modal_field_repository": "Repository", "add_plan_modal_field_repository_tooltip": "The repo that backrest will store your snapshots in.", + "add_plan_modal_field_repository_select": "Select repository", "add_plan_modal_validation_repository_required": "Please select repository", "add_plan_modal_field_paths": "Paths", + "add_plan_modal_field_add": "Add", + "add_plan_modal_field_add_hook": "Add Hook", + "add_plan_modal_field_paths_tooltip": "Paths to include in snapshots created by this plan", "add_plan_modal_validation_paths_required": "Please enter at least one path to backup", "add_plan_modal_validation_paths_valid_required": "Please enter at least one valid path to backup", "add_plan_modal_field_excludes": "Excludes", @@ -41,6 +45,11 @@ "add_plan_modal_see_guide_link": "backrest getting started guide", "add_plan_modal_see_guide_suffix": " for plan configuration instructions.", "add_plan_modal_field_hooks": "Hooks", + "hooks_from_list_a": "Hooks let you configure actions e.g. notifications and scripts that run in response to the backup lifecycle. See ", + "hooks_from_list_b": "the hook documentation", + "hooks_from_list_c": " for available options, or ", + "hooks_from_list_d": "the cookbook", + "hooks_from_list_e": " for scripting examples.", "settings_success_updated": "Settings updated", "settings_error_operation": "Operation error: ", "button_cancel": "Cancel", @@ -115,6 +124,12 @@ "repo_tab_list": "List View", "repo_history_title": "Backup Action History", "repo_tab_stats": "Stats", + "repo_tab_stats_no": "No stats available", + "repo_tab_stats_yet": "Have you run a stats operation yet?", + "repo_tab_stats_size": "Total Size", + "repo_tab_stats_ratio": "Compression Ratio", + "repo_tab_stats_count": "Snapshot Count", + "repo_tab_stats_blob": "Total Blob Count", "loading": "Loading...", "repo_button_run_command": "Run Command", "repo_tooltip_run_command": "Advanced users: open a restic shell to run commands on the repository. Re-index snapshots to reflect any changes in Backrest.", @@ -128,6 +143,49 @@ "repo_tooltip_check": "Runs a check operation on the repository that will verify the integrity of the repository", "repo_button_stats": "Compute Stats", "repo_tooltip_stats": "Runs restic stats on the repository, this may be a slow operation", + "repo_command_run": "Run Command in repo", + "repo_command_tooltip": "Run a restic command e.g. 'help' to print help text", + "repo_command_button_execute": "Execute", + "repo_command_no": "No operations yet", + "repo_command_no_op": "Operations will appear here once they start.", + "repo_hooks_command_label": "Command", + "repo_hooks_healthchecks_label": "Healthchecks", + "repo_hooks_command_runs_when": "Runs when...", + "repo_hooks_command_script_label": "Script:", + "repo_hooks_command_error_label": "Error Behavior:", + "repo_hooks_command_error_tooltip": "Error behavior...", + "repo_hooks_command_template_label": "Text Template:", + "repo_hooks_command_error_info_what": "What happens when the hook fails", + "repo_hooks_command_error_info_only": "(only effective on start hooks e.g. backup start)", + "repo_hooks_command_error_info_ignore": "IGNORE - failure is ignored", + "repo_hooks_command_error_info_fatal": "FATAL - stops operation with error", + "repo_hooks_command_error_info_cancel": "CANCEL - stops operation (cancelled)", + "repo_hooks_command_runs_info_available": "Available conditions", + "repo_hooks_command_runs_info_any_error": "CONDITION_ANY_ERROR - error executing any task", + "repo_hooks_command_runs_info_start": "CONDITION_SNAPSHOT_START - start of a backup operation", + "repo_hooks_command_runs_info_end": "CONDITION_SNAPSHOT_END - end of backup operation", + "repo_hooks_command_runs_info_success": "CONDITION_SNAPSHOT_SUCCESS - end of successful backup", + "repo_hooks_command_runs_info_error": "CONDITION_SNAPSHOT_ERROR - end of failed backup", + "repo_hooks_command_runs_info_warning": "CONDITION_SNAPSHOT_WARNING - end of partial backup", + "repo_hooks_command_runs_info_prune_start": "CONDITION_PRUNE_START - start of prune operation", + "repo_hooks_command_runs_info_docs": "... see docs for more", + "repo_hooks_command_runs_condition_snapshot_start": "Triggered when a backup operation begins and must complete successfully before the snapshot will begin.", + "repo_hooks_command_runs_condition_snapshot_end": "Triggered when a backup operation completes (regardless of success/failure)", + "repo_hooks_command_runs_condition_snapshot_success": "Triggered when a backup operation completes successfully", + "repo_hooks_command_runs_condition_snapshot_error": "Triggered when a backup operation fails", + "repo_hooks_command_runs_condition_snapshot_warning": "Triggered when a backup operation encounters non-fatal issues", + "repo_hooks_command_runs_condition_snapshot_skipped": "Triggered when a backup operation skips", + "repo_hooks_command_runs_condition_prune_start": "Triggered when a prune operation begins", + "repo_hooks_command_runs_condition_prune_success": "Triggered when a prune operation completes successfully", + "repo_hooks_command_runs_condition_prune_error": "Triggered when a prune operation fails", + "repo_hooks_command_runs_condition_check_start": "Triggered when a check operation begins", + "repo_hooks_command_runs_condition_check_success": "Triggered when a check operation completes successfully", + "repo_hooks_command_runs_condition_check_error": "Triggered when a check operation fails", + "repo_hooks_command_runs_condition_forget_start": "Triggered when a forget operation begins", + "repo_hooks_command_runs_condition_forget_success": "Triggered when a forget operation completes successfully", + "repo_hooks_command_runs_condition_forget_error": "Triggered when a forget operation fails", + "repo_hooks_command_runs_condition_any_error": "Triggered when any operation fails", + "repo_hooks_command_runs_condition_unknown": "Triggered when unknown", "settings_modal_title": "Settings", "app_breadcrumb_repo": "Repo", "app_breadcrumb_peer": "Peer", @@ -141,6 +199,7 @@ "app_unknown_repo": "Unknown Repo", "app_remote_repo_title": "Remote Repo: {id}", "app_logout": "Logout", + "app_menu_menu": "Menu", "app_menu_plans": "Plans", "app_menu_add_plan": "Add Plan", "app_menu_repos": "Repositories", @@ -156,9 +215,12 @@ "login_username_placeholder": "Username", "login_password_required": "Please input your password!", "login_password_placeholder": "Password", + "login_password_invalid": "Password is invalid", "login_button": "Log in", "add_repo_modal_title_edit": "Edit Restic Repository", "add_repo_modal_title_add": "Add Restic Repository", + "add_repo_modal_repo_details": "Repo Details", + "add_repo_modal_env_and_flags": "Environment & Flags", "add_repo_modal_success_deleted": "Deleted repo {id} from config but files remain. To release storage delete the files manually. URI: {uri}", "add_repo_modal_success_updated": "Updated repo configuration {uri}", "add_repo_modal_success_added": "Added repo {uri}", @@ -331,6 +393,22 @@ "dashboard_peer_public_key_id": "Public Key ID", "dashboard_peer_last_state_update": "Last State Update", "dashboard_peer_ago": "ago", + "dashboard_getting_started_title": "Getting Started", + "dashboard_getting_started_check": "Check for new Backrest releases on GitHub", + "dashboard_getting_started_overview": "Overview", + "dashboard_getting_started_overview_a": "Repos map directly to restic repositories, start by configuring your backup locations.", + "dashboard_getting_started_overview_b": "Plans are where you configure directories to backup, and backup scheduling. Multiple plans can backup to a single restic repository.", + "dashboard_getting_started_overview_c_a": "See ", + "dashboard_getting_started_overview_c_b": "the restic docs on preparing a new repository", + "dashboard_getting_started_overview_c_c": " for details about available repository types and how they can be configured.", + "dashboard_getting_started_overview_d_a": "See ", + "dashboard_getting_started_overview_d_b": "the Backrest wiki", + "dashboard_getting_started_overview_d_c": " for instructions on how to configure Backrest.", + "dashboard_getting_started_tips": "Tips", + "dashboard_getting_started_tips_a": "Backup your Backrest configuration: your Backrest config holds all of your repos, plans, and the passwords to decrypt them. When you have Backrest configured to your liking make sure to store a copy of your config (or minimally a copy of your passwords) in a safe location e.g. a secure note in your password manager.", + "dashboard_getting_started_tips_b": "Configure hooks: Backrest can deliver notifications about backup events. It's strongly recommended that you configure an on error hook that will notify you in the event that backups start failing (e.g. an issue with storage or network connectivity). Hooks can be configured either at the plan or repo level.", + "dashboard_getting_started_config_view": "Config View", + "dashboard_getting_started_config_json": "Config JSON hidden for security", "op_row_removed_header": "Removed snapshots", "op_row_removed_none": "No snapshots were removed.", "op_row_removed_id_col": "Snapshot ID", @@ -351,8 +429,25 @@ "add_plan_modal_retention_policy_weekly_label": "Weekly", "add_plan_modal_retention_policy_daily_label": "Daily", "add_plan_modal_retention_policy_hourly_label": "Hourly", + "add_plan_modal_retention_policy_latest_label": "Latest (Count)", "add_plan_modal_retention_policy_keep_regardless_label": "Latest snapshots to keep regardless of age", "add_plan_modal_retention_policy_subhourly_helper": "Schedule runs frequently; keep some recent snapshots.", + "add_plan_modal_advanced_label": "Advanced", + "add_plan_modal_schedule_type_label": "Schedule Type", + "add_plan_modal_schedule_disabled_label": "Disabled", + "add_plan_modal_schedule_disabled_description": "Automatic snapshots are disabled for this plan. You can still run backups manually.", + "add_plan_modal_schedule_interval_hours": "Interval (Hours)", + "add_plan_modal_schedule_interval_days": "Interval (Days)", + "add_plan_modal_schedule_interval_in_hours": "Interval in Hours", + "add_plan_modal_schedule_interval_in_days": "Interval in Days", + "add_plan_modal_schedule_cron": "Cron", + "add_plan_modal_schedule_cron_expression": "Cron Expression", + "add_plan_modal_schedule_invalid_cron": "Invalid cron expression", + "add_plan_modal_schedule_reference_clock": "Reference Clock", + "add_plan_modal_schedule_time_zone": "Time zone or reference point for the schedule.", + "add_plan_modal_schedule_time_local": "Local", + "add_plan_modal_schedule_time_utc": "UTC", + "add_plan_modal_schedule_time_last": "Last Run Time", "op_row_error_path": "Path", "op_row_error_message": "Message", "add_repo_modal_env_vars_placeholder": "KEY=VALUE (One per line)", diff --git a/webui/messages/ja.json b/webui/messages/ja.json index 0e4df235..94003872 100644 --- a/webui/messages/ja.json +++ b/webui/messages/ja.json @@ -3,62 +3,71 @@ "example_message": "こんにちは、{username}", "add_plan_modal_error_template_not_found": "テンプレートは見つかりませんでした", "add_plan_modal_error_plan_delete_not_found": "構成の更新に失敗し、削除対象は見つかりませんでした", - "add_plan_modal_success_plan_deleted": "プランが構成から削除されましたが、Restic リポジトリからは未処理です。スナップショットはストレージに保持され、手動で消去されるまで操作履歴も記録されます。バックアップが既に実施されている場合、破棄された計画 ID の再利用は避けてください。", - "add_plan_modal_error_destroy_prefix": "破壊エラー:", - "add_plan_modal_error_operation_prefix": "操作エラー:", + "add_plan_modal_success_plan_deleted": "プランが構成から削除されましたが、restic リポジトリからは未処理です。スナップショットはストレージに保持され、手動で消去されるまで操作履歴も記録されます。バックアップが既に実施されている場合、破棄された計画 ID の再利用は避けてください。", + "add_plan_modal_error_destroy_prefix": "破壊エラー", + "add_plan_modal_error_operation_prefix": "操作エラー", "add_plan_modal_title_update": "プランを更新", "add_plan_modal_title_add": "プランを追加", "add_plan_modal_button_cancel": "キャンセル", "add_plan_modal_button_delete": "削除", "add_plan_modal_button_confirm_delete": "本当に削除しますか", - "add_plan_modal_button_submit": "送信", + "add_plan_modal_button_submit": "決定", "add_plan_modal_field_plan_name": "プラン名", - "add_plan_modal_field_plan_name_tooltip": "Backrest UI でこのプランを識別する一意の ID(例:s3-myplan )。作成後は変更できません。", + "add_plan_modal_field_plan_name_tooltip": "Backrest UI でこのプランを識別する一意の ID(例:s3-myplan)。作成後は変更できません。", "add_plan_modal_validation_plan_name_required": "プラン名を入力してください", "add_plan_modal_validation_plan_exists": "名前の重複するプランが既に存在します", "add_plan_modal_validation_plan_name_pattern": "名前には英数字と区切り文字としてハイフンまたはアンダースコアを使用する必要があります", "add_plan_modal_field_repository": "リポジトリ", - "add_plan_modal_field_repository_tooltip": "どの Backrest のリポジトリにスナップショットを保存するか。", + "add_plan_modal_field_repository_tooltip": "どの Backrest リポジトリにスナップショットを保存するかを選択してください。", + "add_plan_modal_field_repository_select": "リポジトリを選択", "add_plan_modal_validation_repository_required": "リポジトリを選択してください", "add_plan_modal_field_paths": "パス", + "add_plan_modal_field_add": "追加", + "add_plan_modal_field_add_hook": "フックを追加", + "add_plan_modal_field_paths_tooltip": "このプランでスナップショットに含めるパス", "add_plan_modal_validation_paths_required": "バックアップ用のパスを少なくとも1つは入力してください", "add_plan_modal_validation_paths_valid_required": "バックアップ用の有効なパスを少なくとも1つは入力してください", - "add_plan_modal_field_excludes": "除外項目:", + "add_plan_modal_field_excludes": "除外項目", "add_plan_modal_field_excludes_tooltip_prefix": "バックアップから除外するパスを指定します。詳細については", - "add_plan_modal_field_excludes_tooltip_link": "Restic のドキュメント", + "add_plan_modal_field_excludes_tooltip_link": "restic のドキュメント(英語)", "add_plan_modal_field_excludes_tooltip_suffix": "をご覧ください。", "add_plan_modal_field_excludes_add": "除外グロブを追加", - "add_plan_modal_field_iexcludes": "除外対象(大文字と小文字の区別をしない)", - "add_plan_modal_field_iexcludes_tooltip_prefix": "バックアップから除外するパスで大文字と小文字の区別をしたくない場合。詳細については", - "add_plan_modal_field_iexcludes_add": "Restic のドキュメント", + "add_plan_modal_field_iexcludes": "除外項目(大文字と小文字の区別をしない)", + "add_plan_modal_field_iexcludes_tooltip_prefix": "バックアップから除外するパス。詳細については", + "add_plan_modal_field_iexcludes_add": "restic のドキュメント(英語)", "add_plan_modal_field_schedule": "バックアップスケジュール", "add_plan_modal_field_backup_flags": "バックアップフラグ", - "add_plan_modal_field_backup_flags_tooltip": "'restic backup' コマンドから追加するフラグ", + "add_plan_modal_field_backup_flags_tooltip": "restic backup コマンドより追加するフラグ", "add_plan_modal_field_backup_flags_add": "フラグ設定", - "add_plan_modal_validation_flag_pattern": "値は「CLI フラグ」である必要があります。詳細は 'restic backup --help' を参照してください", + "add_plan_modal_validation_flag_pattern": "値は「CLI フラグ」である必要があります。詳細は restic backup --help を参照してください", "add_plan_modal_preview_json": "JSON 形式でのプラン構成設定", "add_plan_modal_see_guide_prefix": "詳しくは ", - "add_plan_modal_see_guide_link": "Backrest の使い方", + "add_plan_modal_see_guide_link": "Backrest の使い方(英語)", "add_plan_modal_see_guide_suffix": "をご覧ください。", "add_plan_modal_field_hooks": "フック", - "settings_success_updated": "設定が更新されました", + "hooks_from_list_a": "フックを使用すると、バックアップのライフサイクルに応じて通知やスクリプトなどのアクションを設定出来ます。利用可能なオプションについては ", + "hooks_from_list_b": "フックのドキュメント(英語)", + "hooks_from_list_c": " を、スクリプトの例については ", + "hooks_from_list_d": "料理本(英語)", + "hooks_from_list_e": " をご覧ください。", + "settings_success_updated": "設定を更新しました", "settings_error_operation": "操作エラー:", "button_cancel": "キャンセル", "button_close": "閉じる", "button_save": "保存", "settings_initial_setup_title": "Backrest の初期設定が完了しました!", - "settings_initial_setup_message": "Backrest はユーザーが1人も設定されてないを確認しました。Web インターフェースを保護するため、少なくとも1人のユーザを追加してください。", - "settings_initial_setup_hint": "後からユーザーを追加することや、パスワードを忘れた場合に設定ファイル(通常は $HOME/.backrest/config.json にあります)を編集してユーザーにリセットをかけることも可能です。", - "settings_field_instance_id": "インスタンス ID", - "settings_validation_instance_id_required": "インスタンス ID が必要です", - "settings_validation_instance_id_pattern": "インスタンス ID は英数字と区切り文字として「_-.」を使用する必要があります", - "settings_field_instance_id_tooltip": "インスタンス名は、Backrest のインストールを識別するために使用されます。後からは変更できないため、慎重に決定してください。", - "settings_field_instance_id_placeholder": "このインスタンスの一意な識別子(例:my-backrest-server )", + "settings_initial_setup_message": "ユーザーが1人も設定されてない事を確認しました。Web インターフェースを保護するため、少なくとも1人のユーザーを追加してください。", + "settings_initial_setup_hint": "後からユーザーを追加することや、パスワードを忘れた場合に設定ファイル(通常は $HOME/.config/backrest/config.json にあります)を編集してユーザーをリセットすることも可能です。", + "settings_field_instance_id": "インスタンス名", + "settings_validation_instance_id_required": "インスタンス名が必要です", + "settings_validation_instance_id_pattern": "インスタンス名は英数字と区切り文字として「_-.」を使用する必要があります", + "settings_field_instance_id_tooltip": "インスタンス名は Backrest のインストールを識別するために使用されます。後から変更できないため、慎重に命名をしてください。", + "settings_field_instance_id_placeholder": "このインスタンスの一意な識別子(例えば:my-backrest-server)", "settings_section_authentication": "認証方法", "settings_section_user_settings": "ユーザー設定", "settings_section_multihost": "マルチホスト ID と共有機能", "settings_section_preview": "プレビュー", - "settings_field_language": "表示言語:", + "settings_field_language": "表示言語", "settings_auth_disable": "認証を無効にする", "settings_auth_users": "ユーザー", "settings_auth_name_required": "名前は必須です", @@ -96,14 +105,14 @@ "settings_permission_edit_repo": "リポジトリの設定を編集", "settings_permission_read_ops": "読み取り操作", "settings_permission_type_placeholder": "アクセス権限の種類を選択します", - "settings_peer_permission_scopes": "スコープ", + "settings_peer_permission_scopes": "バックアップのスコープ", "settings_peer_permission_scopes_required": "少なくとも1つのスコープが必要です", "settings_permission_scope_all": "すべてのリポジトリー( * )", "settings_permission_scope_placeholder": "リポジトリを選択または * ですべて使用します:", "settings_peer_add_permission": "権限を追加", "settings_peer_add_button": "{itemTypeName} を追加します", "peer_default_name": "ピア", - "repo_error_index": "スナップショットのインデックス作成に失敗しました:", + "repo_error_index": "スナップショットの索引作成に失敗しました:", "repo_info_unlocking": "リポジトリのロックを解除しています...", "repo_success_unlocked": "リポジトリがロック解除されました。", "repo_error_unlock": "リポジトリのロック解除に失敗しました:", @@ -115,19 +124,68 @@ "repo_tab_list": "リストを表示", "repo_history_title": "バックアップの操作履歴", "repo_tab_stats": "統計情報", + "repo_tab_stats_no": "まだ統計は利用できません", + "repo_tab_stats_yet": "まだ統計量を計算していませんか?", + "repo_tab_stats_size": "総サイズ", + "repo_tab_stats_ratio": "圧縮比率", + "repo_tab_stats_count": "スナップショット数", + "repo_tab_stats_blob": "総ブロブ数", "loading": "読み込み中...", "repo_button_run_command": "コマンドを実行", - "repo_tooltip_run_command": "上級ユーザー向け:リポジトリ上でコマンドを実行するために制限付きシェルを起動します。Backrest での変更を反映させるためにスナップショットを再インデックスします。", - "repo_button_index": "インデックスナップショット", - "repo_tooltip_index": "リポジトリ内のスナップショットを索引付けします。バックアップ実行後も、各操作ごとに自動的にインデックスが更新されます。", - "repo_button_unlock": "リポジトリのロックを解除する", + "repo_tooltip_run_command": "上級ユーザー向け:リポジトリ上でコマンドを実行するために制限付きシェルを起動します。Backrest での変更を反映させるためにスナップショットを再索引します。", + "repo_button_index": "スナップショットを索引", + "repo_tooltip_index": "リポジトリ内のスナップショットを索引付けします。バックアップ実行後も、各操作ごとに自動的に索引が更新されます。", + "repo_button_unlock": "リポジトリのロックを解除", "repo_tooltip_unlock": "ロックファイルを削除し、リポジトリにエラーがないか確認します。他のシステムからこのリポジトリがアクセスされていないことを確実に把握している場合にのみ実行してください。", - "repo_button_prune": "今すぐ剪定する", + "repo_button_prune": "今すぐ剪定", "repo_tooltip_prune": "リポジトリに対して剪定操作を実行し、古いスナップショットを削除して空き容量を確保します", - "repo_button_check": "今すぐ確認する", + "repo_button_check": "今すぐ確認", "repo_tooltip_check": "リポジトリの整合性を検証するチェック操作を実行します", - "repo_button_stats": "統計量を計算する", + "repo_button_stats": "統計量を計算", "repo_tooltip_stats": "リポジトリに対して統計情報を集計します。この処理は時間がかかる場合があります。", + "repo_command_run": "コマンドを実行", + "repo_command_tooltip": "例えば help と入力して restic のヘルプコマンドを実行する", + "repo_command_button_execute": "実行", + "repo_command_no": "まだ操作がありません", + "repo_command_no_op": "操作が行われるとここに表示されます。", + "repo_hooks_command_label": "コマンド", + "repo_hooks_healthchecks_label": "健康確認", + "repo_hooks_command_runs_when": "いつ走るか...", + "repo_hooks_command_script_label": "スクリプト:", + "repo_hooks_command_error_label": "エラー時の行動:", + "repo_hooks_command_error_tooltip": "エラー時にすること...", + "repo_hooks_command_template_label": "テキストテンプレート:", + "repo_hooks_command_error_info_what": "フックが失敗した時にすること", + "repo_hooks_command_error_info_only": "(バックアップを始めた等のフックの開始時のみ有効)", + "repo_hooks_command_error_info_ignore": "IGNORE - 失敗を無視する", + "repo_hooks_command_error_info_fatal": "FATAL - エラーとして操作を停止する", + "repo_hooks_command_error_info_cancel": "CANCEL - 操作を停止する(やめる)", + "repo_hooks_command_runs_info_available": "利用可能な状態", + "repo_hooks_command_runs_info_any_error": "CONDITION_ANY_ERROR - 何らかのタスクの実行エラー", + "repo_hooks_command_runs_info_start": "CONDITION_SNAPSHOT_START - バックアップの操作の開始", + "repo_hooks_command_runs_info_end": "CONDITION_SNAPSHOT_END - バックアップの操作の終了", + "repo_hooks_command_runs_info_success": "CONDITION_SNAPSHOT_SUCCESS - バックアップの正常な終了", + "repo_hooks_command_runs_info_error": "CONDITION_SNAPSHOT_ERROR - バックアップの不正な終了", + "repo_hooks_command_runs_info_warning": "CONDITION_SNAPSHOT_WARNING - バックアップの部分的な終了", + "repo_hooks_command_runs_info_prune_start": "CONDITION_PRUNE_START - 剪定操作の開始", + "repo_hooks_command_runs_info_docs": "... ドキュメントでもっと見る", + "repo_hooks_command_runs_condition_snapshot_start": "バックアップの操作が開始され、スナップショットの作成前に正常に完了させたい場合", + "repo_hooks_command_runs_condition_snapshot_end": "バックアップの操作が完了した後(成功・失敗に関係なく)", + "repo_hooks_command_runs_condition_snapshot_success": "バックアップの操作が正常に完了した後", + "repo_hooks_command_runs_condition_snapshot_error": "バックアップの操作が失敗した後", + "repo_hooks_command_runs_condition_snapshot_warning": "バックアップの操作で非致命的な問題が起きた後", + "repo_hooks_command_runs_condition_snapshot_skipped": "バックアップの操作がスキップされた後", + "repo_hooks_command_runs_condition_prune_start": "剪定作業が開始した後", + "repo_hooks_command_runs_condition_prune_success": "剪定作業が正常に完了した後", + "repo_hooks_command_runs_condition_prune_error": "剪定作業が失敗した後", + "repo_hooks_command_runs_condition_check_start": "確認作業が開始した後", + "repo_hooks_command_runs_condition_check_success": "確認作業が正常に完了した後", + "repo_hooks_command_runs_condition_check_error": "確認作業が失敗した後", + "repo_hooks_command_runs_condition_forget_start": "忘却作業が開始した後", + "repo_hooks_command_runs_condition_forget_success": "忘却作業が成功した後", + "repo_hooks_command_runs_condition_forget_error": "忘却作業が失敗した後", + "repo_hooks_command_runs_condition_any_error": "何らかの操作で失敗した後", + "repo_hooks_command_runs_condition_unknown": "未知の状態になった後", "settings_modal_title": "設定", "app_breadcrumb_repo": "リポジトリ", "app_breadcrumb_peer": "ピア", @@ -141,6 +199,7 @@ "app_unknown_repo": "不明なリポジトリです", "app_remote_repo_title": "リモートリポジトリ:{id}", "app_logout": "ログアウト", + "app_menu_menu": "メニュー", "app_menu_plans": "プラン", "app_menu_add_plan": "プランを追加", "app_menu_repos": "リポジトリ", @@ -149,47 +208,50 @@ "app_menu_settings": "設定", "app_menu_dashboard": "ダッシュボード", "app_error_initial_config": "初期構成を取得できませんでした。これは通常 UI がバックエンドに接続できなかったことを示します", - "login_success": "ログインに成功", - "login_error": "ログインに失敗:", + "login_success": "ログイン成功", + "login_error": "ログイン失敗", "login_title": "ログイン", "login_username_required": "ユーザー名を入力してください", "login_username_placeholder": "ユーザー名", - "login_password_required": "パスワードを入力してください!", + "login_password_required": "パスワードを入力してください", "login_password_placeholder": "パスワード", + "login_password_invalid": "パスワードが間違っています", "login_button": "ログイン", "add_repo_modal_title_edit": "Restic リポジトリを編集", - "add_repo_modal_title_add": "Resitc リポジトリを追加", + "add_repo_modal_title_add": "Restic リポジトリを追加", + "add_repo_modal_repo_details": "リポジトリの詳細", + "add_repo_modal_env_and_flags": "環境変数とフラグ", "add_repo_modal_success_deleted": "設定からリポジトリ {id} を削除しましたが、ファイルは残っています。ストレージを解放するには、ファイルを手動で削除してください。 URI:{uri}", - "add_repo_modal_success_updated": "リポジトリ設定 {URI} を更新しました", - "add_repo_modal_success_added": "リポジトリ {URI} を追加しました", + "add_repo_modal_success_updated": "リポジトリ設定 {uri} を更新しました", + "add_repo_modal_success_added": "リポジトリ {uri} を追加しました", "add_repo_modal_error_list_snapshots": "更新または追加されたリポジトリのスナップショット一覧取得に失敗しました:", "add_repo_modal_delete_tooltip": "リポジトリを設定から削除しますが、制限付きレポジトリ自体は消去しません", - "add_repo_modal_test_config": "テスト構成設定", - "add_repo_modal_test_success_existing": "{URI} への接続に成功し、既存のリポジトリが見つかりました。", - "add_repo_modal_test_success_new": "{URI} への接続に成功しました。この場所には既存のリポジトリが存在しないため、新規作成されます", - "add_repo_modal_test_error": "エラーを確認:", - "add_repo_modal_guide_text_p1": "参照:", - "add_repo_modal_guide_link_text": "Restic の使い方", - "add_repo_modal_guide_text_p2": "リポジトリ設定の手順を確認するか、", - "add_repo_modal_guide_restic_link_text": "Restic の使い方", - "add_repo_modal_guide_text_p3": "をご覧ください。", + "add_repo_modal_test_config": "この設定でテスト", + "add_repo_modal_test_success_existing": "{uri} への接続に成功し、既存のリポジトリが見つかりました。", + "add_repo_modal_test_success_new": "{uri} への接続に成功しました。この場所には既存のリポジトリが存在しないため、新規作成されます", + "add_repo_modal_test_error": "エラーを確認", + "add_repo_modal_guide_text_p1": "詳しくは", + "add_repo_modal_guide_link_text": "Backrest の使い方(英語)", + "add_repo_modal_guide_text_p2": "でリポジトリの設定の手順を", + "add_repo_modal_guide_restic_link_text": "restic のドキュメント(英語)", + "add_repo_modal_guide_text_p3": "で restic の概要をご覧ください。", "add_repo_modal_field_repo_name": "リポジトリ名", - "add_repo_modal_field_repo_name_tooltip": "バックエンド UI でこのリポジトリを一意に識別する ID(例:s3-mybucket )。この値は作成後に変更できません。", + "add_repo_modal_field_repo_name_tooltip": "バックエンド UI でこのリポジトリを一意に識別する ID(例:s3-mybucket)。この値は作成後に変更できません。", "add_repo_modal_error_repo_name_required": "リポジトリ名を入力してください", "add_repo_modal_error_repo_exists": "リポジトリ名は既に存在します", - "add_repo_modal_field_uri": "リポジトリの URL", - "add_repo_modal_field_uri_tooltip_title": "有効なリポジトリーの URL は以下の通りです:", + "add_repo_modal_field_uri": "リポジトリの URI", + "add_repo_modal_field_uri_tooltip_title": "有効なリポジトリの URI は以下の通りです:", "add_repo_modal_field_uri_tooltip_local": "ローカルファイルシステムのパス名", "add_repo_modal_field_uri_tooltip_s3": "S3 の場合:s3:// ...", "add_repo_modal_field_uri_tooltip_sftp": "SFTP の場合:sftp:user@host:/repo-path", - "add_repo_modal_field_uri_tooltip_see": "参照:", - "add_repo_modal_field_uri_tooltip_restic_docs": "Restic のドキュメント", + "add_repo_modal_field_uri_tooltip_see": "詳しくは", + "add_repo_modal_field_uri_tooltip_restic_docs": "restic のドキュメント(英語)", "add_repo_modal_field_uri_tooltip_info": "をご覧ください", - "add_repo_modal_error_uri_required": "リポジトリの URL を入力してください", + "add_repo_modal_error_uri_required": "リポジトリの URI を入力してください。", "add_repo_modal_field_password": "パスワード", "add_repo_modal_field_password_tooltip_intro": "リポジトリ内のデータを暗号化するパスワードです。", "add_repo_modal_field_password_tooltip_entropy": "エントロピーが128ビット(32文字以上)の値を選択することをお勧めします。", - "add_repo_modal_field_password_tooltip_env": "代わりに認証情報の環境変数( RESTIC_PASSWORD 、RESTIC_PASSWORD_FILE 、または RESTIC_PASSWORD_COMMAND )を指定することも可能です。", + "add_repo_modal_field_password_tooltip_env": "代わりに認証情報の環境変数(RESTIC_PASSWORD、RESTIC_PASSWORD_FILE、または RESTIC_PASSWORD_COMMAND)を指定することも可能です。", "add_repo_modal_field_password_tooltip_generate": "[生成]をクリックして、ブラウザの暗号用乱数ジェネレーター API からランダムなパスワードを生成します。", "add_repo_modal_button_generate": "[生成]", "add_repo_modal_field_env_vars": "環境変数", @@ -206,8 +268,8 @@ "op_row_details": "詳細", "op_row_snapshot_browser": "スナップショットブラウザ", "op_row_removed_snapshots": "{count} 個のスナップショットを削除しました", - "op_row_prune_output": "出力を剪定する", - "op_row_check_output": "出力を確認する", + "op_row_prune_output": "剪定の出力結果", + "op_row_check_output": "確認の出力結果", "op_row_command_output": "コマンド出力結果", "op_row_restore_details": "詳細を復元する", "op_row_hook_output": "フック出力", @@ -215,9 +277,9 @@ "op_row_snapshot_id": "スナップショット ID:", "op_row_user_host": "ユーザー名とホスト名", "op_row_tags": "タグ", - "op_row_files_added": "追加したファイル:", - "op_row_files_changed": "変更されたファイル:", - "op_row_files_unmodified": "ファイルは変更されていません", + "op_row_files_added": "追加したファイル", + "op_row_files_changed": "変更されたファイル", + "op_row_files_unmodified": "変更されてないファイル", "op_row_bytes_added": "追加したバイト数", "op_row_total_bytes": "処理された総バイト数", "op_row_total_files": "処理されたファイル総数", @@ -235,19 +297,19 @@ "op_row_fetch_download_error": "ダウンロード URL の取得に失敗しました:", "plan_backup_scheduled": "バックアップがスケジュールされました。", "plan_error_backup": "バックアップのスケジュール設定に失敗しました:", - "plan_clearing_history": "決済履歴を掃除しています...", + "plan_clearing_history": "エラー履歴を掃除しています...", "plan_history_cleared": "エラー履歴が消去されました。", "plan_error_clear_history": "エラー履歴のクリアに失敗しました:", "plan_repo_not_found": "リポジトリ {repo} のプラン {planId} が見つかりませんでした", "plan_button_backup": "今すぐバックアップを作成", - "plan_button_clear_history": "エラー履歴をクリアする", + "plan_button_clear_history": "エラー履歴をクリア", "plan_tooltip_clear_history": "失敗した操作をリストから削除します", "op_type_backup": "バックアップ作成中...", "op_type_snapshot": "スナップショット", - "op_type_forget": "忘れる", - "op_type_prune": "剪定する", - "op_type_check": "確認する", - "op_type_restore": "復元する", + "op_type_forget": "忘却", + "op_type_prune": "剪定", + "op_type_check": "確認", + "op_type_restore": "復元", "op_type_stats": "統計情報", "op_type_run_hook": "フックを実行します", "op_type_run_command": "コマンド実行", @@ -277,15 +339,15 @@ "add_repo_modal_error_flag_format": "値は CLI フラグである必要があります。詳細は restic --help をご覧ください", "add_repo_modal_button_set_flag": "フラグの設定", "add_repo_modal_field_prune_policy": "剪定ポリシー", - "add_repo_modal_field_prune_policy_tooltip_p1": "このリポジトリで剪定作業を実行するスケジュールです。以下を参照してください:", + "add_repo_modal_field_prune_policy_tooltip_p1": "このリポジトリで剪定作業を実行するスケジュールです。詳しくは", "add_repo_modal_field_prune_policy_tooltip_link": "剪定操作のカスタマイズについて", "add_repo_modal_field_prune_policy_tooltip_p2": "をご覧ください。", "add_repo_modal_field_max_unused": "剪定後の最大未使用容量", "add_repo_modal_field_max_unused_tooltip": "剪定処理が完了した後に使用可能なリポジトリサイズの最大割合。値を高く設定すると、ストレージ容量は増加しますが、コピー作業が減少します。", "add_repo_modal_field_check_policy": "ポリシーを確認してください", - "add_repo_modal_field_check_policy_tooltip": "このリポジトリでチェック操作を実行するスケジュールです。Restic の検証処理では、バックアップデータを構成するディスク上の構造体をスキャンすることで、ストレージ内のファイルシステムの状態を確認します。オプションで、データを再読み込みしてハッシュを再計算するように設定することも可能です。この方法は時間がかかり、帯域幅を消費しますが、メディア自体に発生しているビットエラーやサイレントな破損を確実に検出できます。", - "add_repo_modal_field_read_data": "データを読み込む%:", - "add_repo_modal_field_read_data_tooltip": "このリポジトリで読み込まれ検証されるパックデータの割合。値が大きいほど帯域幅を多く消費します(例:100%の場合、各チェック時に全レポジトリを再読み込みするため)。", + "add_repo_modal_field_check_policy_tooltip": "このリポジトリでチェック操作を実行するスケジュールです。restic の検証処理では、バックアップデータを構成するディスク上の構造体をスキャンすることで、ストレージ内のファイルシステムの状態を確認します。オプションで、データを再読み込みしてハッシュを再計算するように設定することも可能です。この方法は時間がかかり、帯域幅を消費しますが、メディア自体に発生しているビットエラーやサイレントな破損を確実に検出できます。", + "add_repo_modal_field_read_data": "読み込むデータの割合", + "add_repo_modal_field_read_data_tooltip": "このリポジトリで読み込まれ検証されるパックデータの割合。値が大きいほど帯域幅を多く消費します(例えば、100%の場合は各チェック時に全レポジトリを再読み込みするため)。", "add_repo_modal_field_command_modifiers": "コマンド修飾子", "add_repo_modal_field_command_modifiers_tooltip": "バックアップ操作の修飾子(例:CPU または I/O 優先度を設定)。", "add_repo_modal_field_io_priority": "I/O 優先度:", @@ -301,17 +363,17 @@ "add_repo_modal_field_cpu_priority_low": "CPU 使用率がデフォルトの優先度より低い場合:低負荷状態を示す指標です。", "add_repo_modal_field_cpu_priority_placeholder": "CPU 優先度を選択します", "add_repo_modal_field_auto_unlock": "自動ロック解除機能を有効にする", - "add_repo_modal_preview_json": "リポジトリ設定を JSON 形式で出力する", + "add_repo_modal_preview_json": "JSON 形式でプレビュー", "add_repo_modal_error_missing_password": "リポジトリのパスワードが不足しています。以下のいずれかを指定してください:パスワードを入力するか、環境変数 RESTIC_PASSWORD 、RESTIC_PASSWORD_COMMAND 、または RESTIC_PASSWORD_FILE を設定してください。", "dashboard_error_fetch": "概要データの取得に失敗しました:", "dashboard_repos_title": "リポジトリ", "dashboard_repos_empty": "リポジトリが見つかりませんでした", - "dashboard_plans_title": "プラン案", + "dashboard_plans_title": "プラン", "dashboard_plans_empty": "プランは見つかりませんでした", "dashboard_system_info_title": "システム情報", - "dashboard_config_path": "設定パス", - "dashboard_data_dir": "データディレクトリのパスを指定します。", - "dashboard_config_json": "JSON 形式で設定する", + "dashboard_config_path": "設定ファイルのパス", + "dashboard_data_dir": "データディレクトリのパス", + "dashboard_config_json": "JSON 形式の設定", "dashboard_backup_tooltip_time": "{time} にバックアップを作成しました", "dashboard_backup_tooltip_pending": "予定済み、待機中。", "dashboard_backup_tooltip_finished": "{time} かかり、データ量:{bytes} を追加しました", @@ -321,16 +383,32 @@ "dashboard_card_backups_warning": "警告", "dashboard_card_bytes_scanned_30d": "スキャンされたバイト数(過去 30 日間)", "dashboard_card_bytes_added_30d": "追加バイト数(過去 30 日間)", - "dashboard_card_next_backup": "次の定期バックアップ予定日時:", + "dashboard_card_next_backup": "次の定期バックアップ予定日時", "dashboard_card_none_scheduled": "予定なし", "dashboard_card_bytes_scanned_avg": "スキャンされたバイト数の平均値", "dashboard_card_bytes_added_avg": "追加バイト数の平均値", "dashboard_remote_hosts_title": "リモートホスト", "dashboard_remote_clients_title": "リモートクライアント", - "dashboard_peer_instance_id": "インスタンス ID", + "dashboard_peer_instance_id": "インスタンス名", "dashboard_peer_public_key_id": "公開鍵 ID", "dashboard_peer_last_state_update": "最終状態の更新日時", "dashboard_peer_ago": "前々日", + "dashboard_getting_started_title": "はじめに", + "dashboard_getting_started_check": "GitHub で Backrest の新しいリリースがあるかを確認する", + "dashboard_getting_started_overview": "概要", + "dashboard_getting_started_overview_a": "Backrest のリポジトリは restic のリポジトリに直接紐付いています。そのため、まずはバックアップ先の設定から始めてください。", + "dashboard_getting_started_overview_b": "プランではバックアップするディレクトリやスケジュールを設定できます。複数のプランを1つの restic リポジトリでバックアップすることも可能です。", + "dashboard_getting_started_overview_c_a": "利用可能なリポジトリの種類や設定方法の詳細については ", + "dashboard_getting_started_overview_c_b": "新しいリポジトリの作成に関する restic のドキュメント(英語)", + "dashboard_getting_started_overview_c_c": " を参照してください。", + "dashboard_getting_started_overview_d_a": "Backrest の設定方法については ", + "dashboard_getting_started_overview_d_b": "Backrest の Wiki(英語)", + "dashboard_getting_started_overview_d_c": " をご覧ください。", + "dashboard_getting_started_tips": "ヒント", + "dashboard_getting_started_tips_a": "Backrest の設定をバックアップする:Backrest の設定には、全てのリポジトリ、プラン、そしてそれらを復号化するためのパスワードを格納されています。Backrest の設定を好みに合わせて設定している場合は、設定のコピー(または最低限パスワードのコピー)を安全な場所で保管してください。例えばパスワードマネージャーで安全なメモとして保存するなど。", + "dashboard_getting_started_tips_b": "フックの設定:Backrest はバックアップイベントに関する通知を配信できます。もしバックアップが上手くいかなかった場合(ストレージやネットワーク接続の問題など)に通知されるエラーフックを設定することを強く推奨します。フックはプランまたはリポジトリレベルで設定できます。", + "dashboard_getting_started_config_view": "設定を見る", + "dashboard_getting_started_config_json": "JSON 形式での設定(セキュリティのため非表示)", "op_row_removed_header": "スナップショットを削除しました", "op_row_removed_none": "スナップショットは削除されませんでした。", "op_row_removed_id_col": "スナップショット ID", @@ -339,20 +417,37 @@ "op_row_restore_target": "出力先パス", "add_plan_modal_retention_policy_label": "保持ポリシー", "add_plan_modal_retention_policy_mode_count_label": "個数別集計", - "add_plan_modal_retention_policy_mode_time_label": "期間別で表示する場合:", + "add_plan_modal_retention_policy_mode_time_label": "期間別集計", "add_plan_modal_retention_policy_mode_none_label": "なし", - "add_plan_modal_retention_policy_keep_last_n_tooltip": "最後の N 個のスナップショットは Restic によって保持されます。各バックアップ実行後、古いスナップショットを削除するための保存ポリシーが適用されます。", - "add_plan_modal_retention_policy_time_bucketed_tooltip": "各時間帯の最後からN個のスナップショットはrestricによって保持されます。バックアップ実行ごとに、古いスナップショットを削除するための保存ポリシーが適用されます。", + "add_plan_modal_retention_policy_keep_last_n_tooltip": "最後の N 個のスナップショットは restic によって保持されます。各バックアップ実行後、古いスナップショットを削除するための保存ポリシーが適用されます。", + "add_plan_modal_retention_policy_time_bucketed_tooltip": "各時間帯の最後から N 個のスナップショットは restic によって保持されます。バックアップ実行ごとに、古いスナップショットを削除するための保存ポリシーが適用されます。", "add_plan_modal_retention_policy_keep_all_tooltip": "すべてのバックアップは保持されます。ただし、スナップショットセットが非常に大きくなると、処理速度が低下する可能性がある点にご注意ください。", "add_plan_modal_retention_policy_keep_all_warning": "すべてのバックアップが保持されます。注意:リポジトリが非常に大きくなると、処理速度が低下する可能性があります。", "add_plan_modal_retention_policy_keep_last_n_snapshots_label": "最後の N 個のスナップショットを保持する", - "add_plan_modal_retention_policy_yearly_label": "年次で表示する場合のオプション設定です。", - "add_plan_modal_retention_policy_monthly_label": "月次", - "add_plan_modal_retention_policy_weekly_label": "週次", + "add_plan_modal_retention_policy_yearly_label": "毎年", + "add_plan_modal_retention_policy_monthly_label": "毎月", + "add_plan_modal_retention_policy_weekly_label": "毎週", "add_plan_modal_retention_policy_daily_label": "毎日", - "add_plan_modal_retention_policy_hourly_label": "時間単位の料金計算方式で表示する場合、以下に示すように各時間帯ごとに異なる価格が表示されます。", + "add_plan_modal_retention_policy_hourly_label": "毎時", + "add_plan_modal_retention_policy_latest_label": "最新(数)", "add_plan_modal_retention_policy_keep_regardless_label": "年齢に関係なく保持する最新のスナップショット数を指定します", "add_plan_modal_retention_policy_subhourly_helper": "頻繁に実行されるため、最近のスナップショットを保持しておく。", + "add_plan_modal_advanced_label": "高度な設定", + "add_plan_modal_schedule_type_label": "スケジュールの種類", + "add_plan_modal_schedule_disabled_label": "無効", + "add_plan_modal_schedule_disabled_description": "このプランでは自動スナップショットは無効になっています。手動でバックアップすることは可能です。", + "add_plan_modal_schedule_interval_hours": "間隔(時)", + "add_plan_modal_schedule_interval_days": "間隔(日)", + "add_plan_modal_schedule_interval_in_hours": "何時間おきに", + "add_plan_modal_schedule_interval_in_days": "何日おきに", + "add_plan_modal_schedule_cron": "コロン", + "add_plan_modal_schedule_cron_expression": "コロンの式", + "add_plan_modal_schedule_invalid_cron": "不正なコロンの式", + "add_plan_modal_schedule_reference_clock": "参照時間", + "add_plan_modal_schedule_time_zone": "タイムゾーンまたは参照ポイントによってスケジュールされます。", + "add_plan_modal_schedule_time_local": "ローカル", + "add_plan_modal_schedule_time_utc": "協定世界時(UTC)", + "add_plan_modal_schedule_time_last": "最後に走った時間", "op_row_error_path": "パス", "op_row_error_message": "メッセージ", "add_repo_modal_env_vars_placeholder": "KEY=VALUE(1行に1つずつ)", diff --git a/webui/project.inlang/settings.json b/webui/project.inlang/settings.json index 078a13ee..a03f4d38 100644 --- a/webui/project.inlang/settings.json +++ b/webui/project.inlang/settings.json @@ -1,21 +1,7 @@ { "$schema": "https://inlang.com/schema/project-settings", "baseLocale": "en", - "locales": [ - "en", - "de", - "zh", - "hi", - "es", - "ar", - "fr", - "bn", - "pt", - "ru", - "id", - "it", - "ja" - ], + "locales": ["en", "de", "zh", "hi", "es", "ar", "fr", "bn", "pt", "ru", "id", "it", "ja"], "modules": [ "https://cdn.jsdelivr.net/npm/@inlang/plugin-message-format@4/dist/index.js", "https://cdn.jsdelivr.net/npm/@inlang/plugin-m-function-matcher@2/dist/index.js" diff --git a/webui/src/app/App.tsx b/webui/src/app/App.tsx index 6c74a2ed..48f209fd 100644 --- a/webui/src/app/App.tsx +++ b/webui/src/app/App.tsx @@ -687,7 +687,7 @@ const MobileNavTrigger = () => { - Menu + {m.app_menu_menu()} diff --git a/webui/src/components/common/DynamicList.tsx b/webui/src/components/common/DynamicList.tsx index 45cb6887..12a370e9 100644 --- a/webui/src/components/common/DynamicList.tsx +++ b/webui/src/components/common/DynamicList.tsx @@ -47,6 +47,7 @@ interface DynamicListProps { required?: boolean; autocompleteType?: "uri" | "flag" | "none"; } +import * as m from "../../paraglide/messages" const RESTIC_FLAGS = [ { label: "--cacert ", value: "--cacert" }, @@ -274,7 +275,7 @@ export const DynamicList = ({ onClick={handleAdd} flex={1} > - Add + {m.add_plan_modal_field_add()} {/* Placeholder for remove button */} diff --git a/webui/src/components/common/HooksFormList.tsx b/webui/src/components/common/HooksFormList.tsx index 42eea350..e44e9f12 100644 --- a/webui/src/components/common/HooksFormList.tsx +++ b/webui/src/components/common/HooksFormList.tsx @@ -29,6 +29,7 @@ import { import { Tooltip } from "../ui/tooltip"; import { Link } from "../ui/link"; import { EnumSelector, EnumOption } from "./EnumSelector"; +import * as m from "../../paraglide/messages"; export interface HookFields { conditions: string[]; @@ -45,50 +46,44 @@ export interface HookFields { export const hooksListTooltipText = ( - Hooks let you configure actions e.g. notifications and scripts that run in - response to the backup lifecycle. See{" "} + {m.hooks_from_list_a()} - the hook documentation - {" "} - for available options, or{" "} + {m.hooks_from_list_b()} + + {m.hooks_from_list_c()} - the cookbook - {" "} - for scripting examples. + {m.hooks_from_list_d()} + + {m.hooks_from_list_e()} ); const hookConditionDescriptions: Record = { - CONDITION_SNAPSHOT_START: - "Triggered when a backup operation begins and must complete successfully before the snapshot will begin.", - CONDITION_SNAPSHOT_END: - "Triggered when a backup operation completes (regardless of success/failure)", - CONDITION_SNAPSHOT_SUCCESS: - "Triggered when a backup operation completes successfully", - CONDITION_SNAPSHOT_ERROR: "Triggered when a backup operation fails", - CONDITION_SNAPSHOT_WARNING: - "Triggered when a backup operation encounters non-fatal issues", - CONDITION_PRUNE_START: "Triggered when a prune operation begins", - CONDITION_PRUNE_SUCCESS: - "Triggered when a prune operation completes successfully", - CONDITION_PRUNE_ERROR: "Triggered when a prune operation fails", - CONDITION_CHECK_START: "Triggered when a check operation begins", - CONDITION_CHECK_SUCCESS: - "Triggered when a check operation completes successfully", - CONDITION_CHECK_ERROR: "Triggered when a check operation fails", - CONDITION_FORGET_START: "Triggered when a forget operation begins", - CONDITION_FORGET_SUCCESS: - "Triggered when a forget operation completes successfully", - CONDITION_FORGET_ERROR: "Triggered when a forget operation fails", - CONDITION_ANY_ERROR: "Triggered when any operation fails", + CONDITION_SNAPSHOT_START: m.repo_hooks_command_runs_condition_snapshot_start(), + CONDITION_SNAPSHOT_END: m.repo_hooks_command_runs_condition_snapshot_end(), + CONDITION_SNAPSHOT_SUCCESS: m.repo_hooks_command_runs_condition_snapshot_success(), + CONDITION_SNAPSHOT_ERROR: m.repo_hooks_command_runs_condition_snapshot_error(), + CONDITION_SNAPSHOT_WARNING: m.repo_hooks_command_runs_condition_snapshot_warning(), + CONDITION_SNAPSHOT_SKIPPED: m.repo_hooks_command_runs_condition_snapshot_skipped(), + CONDITION_PRUNE_START: m.repo_hooks_command_runs_condition_prune_start(), + CONDITION_PRUNE_SUCCESS: m.repo_hooks_command_runs_condition_prune_success(), + CONDITION_PRUNE_ERROR: m.repo_hooks_command_runs_condition_prune_error(), + CONDITION_CHECK_START: m.repo_hooks_command_runs_condition_check_start(), + CONDITION_CHECK_SUCCESS: m.repo_hooks_command_runs_condition_check_success(), + CONDITION_CHECK_ERROR: m.repo_hooks_command_runs_condition_check_error(), + CONDITION_FORGET_START: m.repo_hooks_command_runs_condition_forget_start(), + CONDITION_FORGET_SUCCESS: m.repo_hooks_command_runs_condition_forget_success(), + CONDITION_FORGET_ERROR: m.repo_hooks_command_runs_condition_forget_error(), + CONDITION_ANY_ERROR: m.repo_hooks_command_runs_condition_any_error(), + CONDITION_UNKNOWN: m.repo_hooks_command_runs_condition_unknown(), }; const conditionOptions: EnumOption[] = Hook_ConditionSchema.values.map( @@ -159,7 +154,7 @@ export const HooksFormList = ({ {/* @ts-ignore */} {/* @ts-ignore */} @@ -236,7 +231,7 @@ const HookItem = ({ options={conditionOptions} value={hook.conditions} onChange={handleConditionChange} - placeholder="Runs when..." + placeholder={m.repo_hooks_command_runs_when()} size="sm" /> @@ -260,306 +255,306 @@ const hookTypes: { onChange: (h: HookFields) => void; }) => React.ReactNode; }[] = [ - { - name: "Command", - template: { - actionCommand: { - command: "echo {{ .ShellEscape .Summary }}", + { + name: m.repo_hooks_command_label(), + template: { + actionCommand: { + command: "echo {{ .ShellEscape .Summary }}", + }, + conditions: [], }, - conditions: [], - }, - oneofKey: "actionCommand", - component: ({ hook, onChange }) => { - const updateCommand = (val: string) => { - onChange({ - ...hook, - actionCommand: { ...hook.actionCommand, command: val }, - }); - }; - return ( - - - Script: - -