{
"forms": {
"upload_dir_error": "アップロードディレクトリの作成エラー",
"file_create_error": "ファイルの作成エラー",
"multipart_stream_error": "マルチパートストリームエラー",
"file_write_error": "ファイル書き込みエラー",
"required": "このフィールドは必須です",
"too_short": "短すぎます(最小 {})",
"too_long": "長すぎます(最大 {})",
"email_invalid": "無効なメールアドレス形式です",
"url_invalid": "有効なURLを入力してください",
"phone_invalid": "無効な電話番号(数字、+、スペース、ハイフン可、7〜15桁)",
"hash_error": "ハッシュエラー: {}",
"password_empty": "パスワードは空にできません",
"filter_invalid_value": "static/media フィルターが無効な値 ({}) を受け取りました。ファイルパスが必要です。",
"number_invalid": "無効な数値です",
"number_required": "必須です",
"integer_required": "整数である必要があります",
"decimal_required": "小数形式である必要があります",
"min_value": "最小 {} が必要です",
"max_value": "最大 {} を超えています",
"precision_max": "小数点以下の最大桁数は {} 桁です",
"precision_min": "小数点以下の最小桁数は {} 桁です",
"color_invalid": "無効なカラーです(形式: #RRGGBB または #RGB)",
"color_no_hash": "カラーは # で始まる必要があります",
"color_bad_hex": "16進数以外の文字が含まれています",
"slug_invalid": "無効なスラッグです",
"slug_no_dash": "スラッグはハイフンで始まったり終わったりしてはいけません",
"uuid_invalid": "無効なUUID形式です(期待値: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)",
"json_invalid": "無効なJSONです: {}",
"ipv4_only": "IPv4アドレスのみ使用できます",
"ipv6_only": "IPv6アドレスのみ使用できます",
"ip_invalid": "無効なIPアドレスです",
"date_invalid": "無効な日付形式です",
"date_too_old": "古すぎます(最小: {})",
"date_too_far": "遠すぎます(最大: {})",
"time_invalid": "無効な時間形式です",
"file_required": "少なくとも1つのファイルを選択してください",
"file_extension_blocked": "ファイル '{}' は許可されていません。拡張子: {}",
"finalize_error": "フィールド '{}' の確定中にエラーが発生しました: {}",
"template_missing": "テンプレートが見つかりません: {}",
"render_js_error": "JSレンダリングエラー: {}",
"tera_not_configured": "Tera が設定されていません",
"config_not_found": "拡張機能内に設定が見つかりません",
"hint_slug": "形式: 文字-数字-ハイフン",
"hint_uuid": "形式: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"hint_json": "有効なJSON形式が必要です",
"hint_ip_v4": "IPv4形式: 192.168.1.1",
"hint_ip_v6": "IPv6形式: 2001:0db8:85a3::8a2e:0370:7334",
"hint_ip": "IPv4 または IPv6 形式",
"validation_overflow": "スタックオーバーフローを検出しました:検証中に無限再帰が発生しています",
"choice_invalid": "無効な選択です",
"choice_invalid_value": "無効な選択: {}",
"select_required": "オプションを選択してください",
"checkbox_required": "少なくとも1つのオプションを選択してください",
"multipart_error": "フォームアップロードエラー",
"body_error": "ボディ読み取りエラー",
"aegis_query_error": "クエリ文字列の解析に失敗: {}",
"aegis_urlencoded_error": "URLエンコードボディの解析に失敗: {}",
"aegis_json_error": "JSONボディの解析に失敗: {}",
"auth_required": "認証が必要です",
"role_insufficient": "権限が不足しています",
"time_too_old": "早すぎます(最小: {})",
"time_too_far": "遅すぎます(最大: {})",
"datetime_too_old": "早すぎます(最小: {})",
"datetime_too_far": "遅すぎます(最大: {})",
"duration_invalid": "無効な期間です(秒数が必要です)",
"duration_too_short": "最小期間: {} 秒",
"duration_too_long": "最大期間: {} 秒",
"file_max_count": "最大 {} 個のファイルまで許可されています",
"file_too_large": "ファイル '{}' は大きすぎます ({}MB > {}MB 最大)",
"file_invalid_image": "ファイル '{}' は有効な画像ではありません",
"image_too_wide": "画像 '{}' は幅が大きすぎます ({}px > {}px)",
"image_too_tall": "画像 '{}' は高さが大きすぎます ({}px > {}px)",
"boolean_required": "このフィールドに同意する必要があります",
"slug_unicode_invalid": "使用できるのは文字、数字、ハイフン、アンダースコアのみです",
"unique_field_taken": "{} はすでに使用されています。",
"unique_value_taken": "フィールド '{}' の値はすでに使用されています。",
"unique_constraint_violated": "一意制約が違反されました。",
"db_error": "データベースエラー: {}",
"text_field_too_large": "テキストフィールドが大きすぎます(最大1MB)",
"upload_too_large": "ファイルが大きすぎます(最大{}MB)"
},
"csrf": {
"missing": "CSRFトークンがありません",
"invalid": "無効なCSRFトークン",
"invalid_or_missing": "CSRFトークンが無効または存在しません",
"forbidden": "無効なCSRFトークン",
"session_write_error": "セッション書き込みエラー"
},
"error": {
"source": "ソース: {}",
"AppError": "アプリケーションエラー",
"build": "ビルドエラー: {}",
"internal": "内部エラー",
"forbidden": "アクセス禁止",
"not_found": "リソースが見つかりません",
"validation": "検証エラー: {}",
"database": "データベースエラー: {}",
"io": "IOエラー: {}",
"template": "テンプレートエラー: {}",
"custom": "カスタムエラー: {}",
"title": {
"not_found": "ページが見つかりません",
"forbidden": "アクセス禁止",
"validation": "検証エラー",
"database": "データベースエラー",
"template": "テンプレートレンダリングエラー",
"internal": "内部サーバーエラー"
},
"path_not_found": "要求されたパス '{}' は見つかりませんでした",
"internal_occurred": "内部エラーが発生しました",
"context_occurred": "AppError が発生しました"
},
"title": {
"template": "'{}' のテンプレートエラー"
},
"build": {
"subscriber_already_installed": "tracing subscriber は既にインストールされています。Runique のログ設定は無効です(RUST_LOG / with_log は効果がありません)",
"external_outputs_ignored": "`with_log(|l| l.external())` が設定されています。設定されたログ出力は無視されます(アプリケーションが subscriber を所有します)",
"validation_failed": "ビルド検証に失敗しました: {}",
"check_failed": "ビルドが {} 個のチェックエラーで失敗しました",
"template_failed": "テンプレートの読み込みに失敗しました: {}",
"db_missing": "'orm' 機能が有効な場合、データベース接続が必要です",
"component_not_ready": "コンポーネント '{}' の準備ができていません"
},
"server": {
"operational": "Runique は稼働中です",
"launched": "サーバーを {} で起動しました",
"connected_db": "データベースに接続しました {} -> {}",
"stop_hint": "停止するには Ctrl + C",
"shutting_down": "Runique サーバーをシャットダウンしています...",
"acme_not_compiled": "ACME_ENABLED=true ですが、`acme` フィーチャーがコンパイルされていません。",
"acme_add_feature": "Cargo.toml に `acme` フィーチャーを追加してください。"
},
"middleware": {
"bad_request": "不正なリクエスト",
"slot_collision": "Runiqueミドルウェアスロットの衝突: '{}' と '{}' が両方ともスロット {} を要求しています。カスタムミドルウェアの登録数を減らすか、明示的なスロットを指定してください。"
},
"html": {
"404_title": "404",
"404_text": "ページが見つかりません",
"500_title": "500",
"500_text": "内部サーバーエラー",
"500_notice": "チームに通知され、問題に取り組んでいます。",
"429_title": "429",
"429_text": "リクエストが多すぎます。しばらくお待ちください。",
"503_title": "503",
"503_text": "高負荷のためサービスを一時的に利用できません。しばらくしてから再度お試しください。",
"back_home": "ホームに戻る",
"critical_error_title": "重大なエラー",
"critical_error_text": "エラー処理システム自体がエラーに遭遇しました。",
"critical_error_contact": "この状況は発生すべきではありません。システム管理者に連絡してください。"
},
"debug": {
"stack_trace_title": "詳細なエラートレース",
"stack_trace_tip": "最上位のエラー(レベル 0)が通常は根本原因です。後続のエラーはエラーがコード内でどのように伝播したかを示しています。"
},
"flash": {
"welcome": "ようこそ {}、アカウントが作成されました!",
"fix_errors": "エラーを修正してください",
"success_demo": "これは成功メッセージです。",
"info_demo": "これは情報メッセージです。",
"warning_demo": "これは警告メッセージです。",
"error_demo": "これはエラーメッセージです。"
},
"cli": {
"creating_project": "プロジェクト '{}' を作成中...",
"admin_detected": "管理画面を検出 → 管理コードを生成中",
"add_admin_hint": "管理パネルを有効にするには、ビルダーに .with_admin(...) を追加してください。",
"daemon_error": "[Daemon] エラー: {}",
"cargo_run_failed": "アプリケーションサーバーが正常に起動しませんでした (cargo run)",
"file_not_found": "ファイルが見つかりません: {}\\nRunique プロジェクトのルートにいることを確認してください。",
"admin_not_found": "Admin ファイルが見つかりません: {}\\nadmin!{} マクロを使用して src/admin.rs を作成してください。",
"name_empty": "プロジェクト名は空にできません",
"name_invalid": "プロジェクト名には文字、数字、_ または - のみ使用できます",
"name_dash": "プロジェクト名は - で始めることができません",
"folder_exists": "フォルダー '{}' はすでに存在します",
"cargo_run_expect": "cargo run の起動に失敗しました",
"project_created": "プロジェクト '{}' を作成しました!",
"getting_started": "始めるには:",
"cd_hint": "cd {}",
"cargo_run_hint": "cargo run",
"fmt_failed": "cargo fmt が失敗しました — フォーマットをスキップします: {}"
},
"daemon": {
"unable_read": "読み取れません: {}",
"parse_error": "解析エラー: {}",
"no_resource": "admin!{} にリソースがありません — 生成するものがありません",
"operational": "デーモン稼働中 → src/admins/admin.rs",
"generation_error": "生成エラー: {}",
"generated_header": "自動生成 — 手動で編集しないでください",
"generated_notice": "`runique start` により src/admin.rs から生成されました。変更は上書きされます。"
},
"macro": {
"named_fields_only": "名前付きフィールドを持つ構造体のみ",
"structs_only": "構造体にのみ機能します",
"forms_field_required": "構造体 '{}' には 'Forms' フィールドが必要です",
"field_no_name": "名前のないフィールド",
"model_form_named_only": "DeriveModelForm: 名前付きフィールドを持つ構造体のみ",
"model_form_structs_only": "DeriveModelForm: 構造体のみ"
},
"parser": {
"multiple_admin_blocks": "admin!: 1ファイルにつき admin! ブロックは1つだけです(1つ目は{}行目、2つ目は{}行目)— 統合してください",
"title_required": "admin!: 'title' は必須です",
"list_display_exclude_exclusive": "admin!: 'list_display' と 'list_exclude' は同時に使用できません"
},
"TemplateMessage": {
"debug_info_title": "デバッグ情報",
"debug_field_title": "タイトル",
"debug_field_count": "フィールド数",
"debug_error_count": "エラー数",
"debug_main_message": "メインメッセージ",
"debug_root_cause": "根本原因",
"debug_details": "追加詳細",
"debug_request_info": "リクエスト情報",
"debug_http_method": "HTTPメソッド",
"debug_path": "パス",
"debug_query_params": "クエリパラメータ",
"debug_http_headers": "HTTPヘッダー",
"debug_template_info": "テンプレート情報",
"debug_template_name": "テンプレート名",
"debug_error_line": "エラー行",
"debug_template_source": "テンプレートソースコード",
"debug_available_templates": "利用可能なテンプレート",
"debug_stack_trace_title": "詳細なエラートレース",
"debug_stack_trace_tip": "最上位のエラー(レベル0)が通常根本原因です。後続のエラーは、エラーがコード内でどのように伝播したかを示します。",
"debug_environment": "環境",
"debug_debug_mode": "デバッグモード",
"debug_enabled": "有効",
"debug_disabled": "無効",
"debug_rust_version": "Rustバージョン",
"debug_app_version": "アプリバージョン",
"debug_status_code": "ステータスコード",
"debug_header_name": "名前",
"debug_header_value": "値"
},
"admin": {
"group": "グループ",
"groups": "グループ",
"resource": "リソース",
"resources": "リソース",
"can_create": "作成",
"can_read": "閲覧",
"can_update": "更新",
"can_delete": "削除",
"can_update_own": "更新",
"can_delete_own": "削除",
"name": "名前",
"username": "ユーザー名",
"email": "メールアドレス",
"staff": "スタッフ",
"superuser": "スーパーユーザー",
"active": "有効",
"user": {
"username_too_short": "ユーザー名が短すぎます(最小3文字以上)",
"invalid_email": "無効なメールアドレス形式です"
},
"login": {
"title": "ログイン",
"subtitle": "管理パネルにアクセスするにはログインしてください",
"label_username": "ユーザー名",
"label_password": "パスワード",
"btn_submit": "ログイン",
"error_session": "セッションの開始中にエラーが発生しました。",
"error_credentials": "認証情報が正しくないか、権限が不足しています。",
"error_locked": "試行回数が多すぎます。アカウントが一時的にロックされています。{}秒後に再試行してください。"
},
"logout": {
"success": "ログアウトしました。"
},
"access": {
"no_auth_handler": "認証ハンドラーが設定されていません。AdminConfigで.auth(MyAuth)を呼び出してください。",
"insufficient_rights": "管理画面へのアクセス権限が不足しています"
},
"dashboard": {
"title": "ダッシュボード",
"subtitle": "アプリケーションの概要",
"card_resources": "リソース",
"th_resource": "リソース",
"th_key": "キー",
"th_permissions": "権限",
"th_actions": "アクション",
"btn_list": "一覧",
"btn_create": "作成",
"see_list": "リストを見る →",
"empty_title": "登録されたリソースがありません",
"empty_desc": "src/admin.rsでadmin!{{}}マクロを使用してリソースを宣言し、runique startを実行してください",
"kpi_resources": "リソース",
"kpi_entries": "エントリー総数",
"kpi_largest": "最大",
"th_count": "エントリー"
},
"list": {
"breadcrumb_admin": "管理",
"entries_count_one": "件",
"entries_count_many": "件",
"btn_create": "作成",
"th_id": "id",
"th_actions": "アクション",
"bool_true": "はい",
"bool_false": "いいえ",
"btn_detail": "詳細",
"btn_edit": "編集",
"btn_delete": "削除",
"confirm_delete": "本当に削除しますか?",
"empty_title": "エントリがありません",
"empty_desc": "最初に項目を作成してください。",
"btn_create_first": "最初の項目を作成",
"search_placeholder": "検索..."
},
"create": {
"title": "作成",
"breadcrumb": "作成",
"card_info": "情報",
"no_fields": "現在使用可能なフィールドはありません。",
"btn_cancel": "キャンセル",
"btn_submit": "作成",
"success": "エントリが正常に作成されました!"
},
"edit": {
"title": "編集",
"breadcrumb": "編集",
"card_info": "情報",
"no_fields": "現在使用可能なフィールドはありません。",
"btn_cancel": "キャンセル",
"btn_submit": "保存",
"success": "エントリが正常に更新されました!"
},
"detail": {
"title": "詳細",
"breadcrumb": "詳細",
"entry_label": "エントリ",
"btn_list": "← 一覧",
"btn_edit": "編集",
"btn_delete": "削除",
"confirm_delete": "このエントリを削除しますか?",
"btn_reset_password": "パスワードをリセット",
"btn_reset_password_short": "リセット"
},
"reset_password": {
"btn": "パスワードをリセット",
"success_email": "Reset link sent to {}.",
"success_link": "Reset link (mailer not configured): {}",
"error_no_email": "No email field found for this user.",
"error_send": "Error sending email: {}",
"email_subject": "パスワードのリセット",
"email_title": "パスワードのリセット",
"email_greeting": "こんにちは、",
"email_body": "以下のリンクをクリックしてパスワードをリセットしてください(1時間有効):",
"email_btn": "パスワードをリセット",
"email_ignore": "このリセットを要求していない場合は、このメッセージを無視してください。"
},
"user_created": {
"email_subject": "ようこそ — パスワードを設定してください",
"email_sent": "{} にウェルカムメールを送信しました。",
"email_greeting": "ようこそ、",
"email_body": "アカウントが作成されました。以下のリンクをクリックしてパスワードを設定してください:",
"email_btn": "パスワードを設定",
"email_validity": "このリンクは1時間有効です。このメッセージを予期していなかった場合は、無視してください。"
},
"delete": {
"title": "削除",
"breadcrumb": "削除",
"heading": "削除の確認",
"btn_cancel": "← キャンセル",
"success": "エントリが正常に削除されました!",
"btn_confirm": "はい、完全に削除します",
"warning": {
"title": "警告!",
"desc": "エントリを削除しようとしています",
"of": "リソース",
"irreversible": "この操作は元に戻せません。"
},
"not_found": "リソースが見つかりませんでした。"
},
"bulk": {
"no_selection": "項目が選択されていません。",
"no_field_selected": "変更するフィールドがありません。",
"delete_success": "件削除しました。",
"update_success": "件更新しました。"
},
"base": {
"title": "管理",
"breadcrumb": "管理",
"toggle": "メニューを折りたたむ",
"logout_title": "ログアウト",
"theme_toggle": "テーマを切り替え",
"back_to_site": "← サイト"
},
"superuser_wizard": {
"title": "=== スーパーユーザー作成 ===",
"algo_prompt": "[1/5] ハッシュアルゴリズム",
"algo_argon2": "Argon2(推奨)",
"algo_bcrypt": "Bcrypt",
"algo_scrypt": "Scrypt",
"algo_custom": "カスタムプロバイダー",
"provider_path": "プロバイダーパス",
"invalid_path": "無効なパスです。",
"username_prompt": "[2/5] ユーザー名",
"username_empty": "ユーザー名は空にできません。",
"username_taken": "このユーザー名は既に使用されています。",
"email_prompt": "[3/5] メール",
"email_invalid": "無効なメールアドレスです。",
"email_taken": "このメールアドレスは既に使用されています。",
"password_prompt": "[4/5] パスワード",
"password_too_short": "パスワードは10文字以上必要です。",
"confirm_prompt": "[5/5] パスワード確認",
"password_mismatch": "パスワードが一致しません。もう一度お試しください。",
"review_algo": " アルゴリズム: {}",
"review_username": " ユーザー名 : {}",
"review_email": " メール : {}",
"review_password": " パスワード : ••••••••",
"review_action": "アクション",
"confirm_create": "確認して作成",
"change_algo": "アルゴリズムを変更",
"modify_password": "パスワードを変更",
"success": "✓ スーパーユーザーが正常に作成されました!",
"id_line": " ID : {}",
"username_line": " ユーザー名 : {}",
"email_line": " メール : {}"
},
"builtin": {
"invalid_id": "IDが無効です。",
"droit_resource_required": "少なくとも1つのリソースを選択してください。",
"droit_exists": "\"{}\" の権限は既に存在します。",
"groupe_exists": "\"{}\" という名前のグループは既に存在します。",
"user_username_exists": "ユーザー名「{}」は既に使用されています。",
"user_email_exists": "メールアドレス「{}」は既に登録されています。"
}
},
"makemigrations": {
"destructive_detected": "破壊的な変更が検出されました:",
"destructive_require_force": "--force を使用してこれらの破壊的な変更を適用してください。",
"files_ready": "{}個のファイルが移行の準備ができています。",
"unknown_dsl_type": "警告: 不明なフィールド型 '{}' — デフォルトの '{}' を使用します。モデルにタイプミスがないか確認してください。",
"unknown_db_engine": "警告: 認識されない DB_ENGINE '{}' — SQLite形式のマイグレーションにフォールバックします(enum/トリガーのネイティブサポートなし)。サポートされる値: postgres, mysql/mariadb, sqlite。"
},
"migrate": {
"applying": "'{}'からマイグレーションを適用中...",
"run_hint": "実行: sea-orm-cli migrate up",
"complete_up": "マイグレーションが完了しました。",
"complete": "ロールバックが完了しました。",
"available_for": "'{}'の利用可能なロールバックファイル:",
"rolling_back_batch": "バッチをロールバック中: {}",
"done": "完了: {}",
"rolling_back": "ロールバック中: {}",
"no_applied_dir": "applied/ディレクトリが見つかりません。",
"by_time_header": "by_time (フルバッチ):",
"none_available": "ロールバックファイルがありません。",
"usage": "使用方法:",
"usage_files": "runique migration down --files <table/timestamp> [<table/timestamp> ...]",
"usage_batch": "runique migration down --batch <timestamp>",
"no_down": "Downステートメントが見つかりません。",
"executing": "実行中: {}"
},
"reset": {
"forgot_title": "パスワードを忘れた",
"reset_title": "新しいパスワード",
"success_title": "パスワードがリセットされました",
"email_label": "メールアドレス",
"new_password_label": "新しいパスワード",
"confirm_label": "パスワードの確認",
"email_mismatch": "メールアドレスがリンクと一致しません。",
"invalid_link": "無効なリンクです。",
"invalid_or_expired": "リセットリンクが無効または期限切れです。",
"password_min_length": "パスワードは{}文字以上である必要があります。",
"password_weak": "パスワードには大文字、小文字、数字、特殊文字(!@#$%...)をそれぞれ1つ以上含める必要があります。",
"password_mismatch": "パスワードが一致しません。",
"check_inbox": "このアドレスがアカウントに関連付けられている場合、リセットメールが届きます。",
"email_subject": "パスワードリセットのご案内",
"email_body": "<p>{} 様、</p><p>以下のリンクをクリックしてパスワードをリセットしてください(1時間有効):</p><p><a href=\"{}\">{}</a></p>"
},
"permission": {
"col": {
"id": "ID",
"can_create": "作成",
"can_delete": "削除",
"can_delete_own": "削除(自分の)",
"can_read": "閲覧",
"can_update": "更新",
"can_update_own": "更新(自分の)",
"groupes": "グループ",
"resource_key": "リソース",
"actions": "操作"
}
}
}