runique 2.1.1-alpha.2

A Django-inspired web framework for Rust with ORM, templates, and comprehensive security middleware
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
{
  "forms": {
    "upload_dir_error": "アップロードディレクトリの作成エラー",
    "file_create_error": "ファイルの作成エラー",
    "multipart_stream_error": "マルチパートストリームエラー",
    "file_write_error": "ファイル書き込みエラー",
    "required": "このフィールドは必須です",
    "too_short": "短すぎます(最小 {})",
    "too_long": "長すぎます(最大 {})",
    "email_invalid": "無効なメールアドレス形式です",
    "url_invalid": "有効なURLを入力してください",
    "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": {
    "validation_failed": "ビルド検証に失敗しました: {}",
    "check_failed": "ビルドが {} 個のチェックエラーで失敗しました",
    "template_failed": "テンプレートの読み込みに失敗しました: {}",
    "db_missing": "'orm' 機能が有効な場合、データベース接続が必要です",
    "component_not_ready": "コンポーネント '{}' の準備ができていません"
  },
  "middleware": {
    "host_invalid": "無効なホスト: '{}' (許可されたホスト: {})",
    "host_debug": "無効なホスト: '{}'。RUNIQUE_ALLOWED_HOSTS に追加してください。",
    "bad_request": "不正なリクエスト"
  },
  "html": {
    "404_title": "404",
    "404_text": "ページが見つかりません",
    "500_title": "500",
    "500_text": "内部サーバーエラー",
    "500_notice": "チームに通知され、問題に取り組んでいます。",
    "429_title": "429",
    "429_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": "これはエラーメッセージです。"
  },
  "log": {
    "db_connecting": "{} データベースに接続中...",
    "db_connected": "データベースへの接続に成功しました ({})",
    "db_failed": "データベースへの接続に失敗しました",
    "db_engine": "エンジン: {}",
    "template_render_error": "テンプレートレンダリングエラー",
    "error_handler": "重大なエラーが発生しました",
    "error_handled": "エラーを処理しました",
    "files_count": "JSファイルをフォームに追加",
    "js_file_skip": "JSファイルをスキップしています",
    "already_initialized": "ロガーはすでに初期化されています"
  },
  "cli": {
    "creating_project": "プロジェクト '{}' を作成中...",
    "admin_detected": "Admin を検出 → デーモンを起動中",
    "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"
  },
  "daemon": {
    "modification_detected": "変更を検出 → 再生成中...",
    "unable_read": "読み取れません: {}",
    "parse_error": "解析エラー: {}",
    "no_resource": "admin!{{}} にリソースがありません — 生成するものがありません",
    "with_admin_disabled": "with_admin が無効 → デーモン停止",
    "operational": "デーモン稼働中 → src/admin/generated.rs",
    "generation_error": "生成エラー: {}",
    "watcher_error": "ウォッチャーエラー: {}",
    "unable_create": "ウォッチャーを作成できません: {}",
    "unable_watch": "{} を監視できません: {}"
  },
  "macro": {
    "named_fields_only": "名前付きフィールドを持つ構造体のみ",
    "structs_only": "構造体にのみ機能します",
    "forms_field_required": "構造体 '{}' には 'Forms' フィールドが必要です",
    "field_no_name": "名前のないフィールド",
    "model_form_named_only": "DeriveModelForm: 名前付きフィールドを持つ構造体のみ",
    "model_form_structs_only": "DeriveModelForm: 構造体のみ"
  },
  "parser": {
    "string_expected": "文字列リテラルを期待していましたが、見つかったもの: {}",
    "string_eof": "文字列リテラルを期待していましたが、ファイルの終端に達しました",
    "array_expected": "権限のための [...] を期待していましたが、見つかったもの: {}",
    "array_eof": "権限のための [...] を期待していましたが、ファイルの終端に達しました",
    "role_required": "permissions: [...] には少なくとも1つのロールが必要です",
    "punct_expected": "'{}' を期待していましたが、見つかったもの: {}",
    "punct_eof": "'{}' を期待していましたが、ファイルの終端に達しました",
    "title_required": "admin!: 'title' は必須です",
    "permissions_required": "admin!: 'permissions' は必須です",
    "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": "作成",
      "empty_title": "登録されたリソースがありません",
      "empty_desc": "src/admin.rsでadmin!{{}}マクロを使用してリソースを宣言し、runique startを実行してください"
    },
    "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": "このエントリを削除しますか?"
    },
    "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": "ログアウト"
    },
    "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": "\"{}\" という名前のグループは既に存在します。"
    }
  },
  "makemigrations": {
    "scanning": "'{}'のエンティティをスキャン中...",
    "found_schema": "-> スキーマが見つかりました: {}",
    "found_extend": "-> フレームワークテーブルの拡張が見つかりました: {}",
    "no_schema": "'{}'にschema()関数が見つかりません。",
    "schema_count": "{}個のスキーマが見つかりました。",
    "updated_lib": "更新しました: {}",
    "no_changes": "変更は検出されませんでした。スキーマは最新です。",
    "destructive_detected": "破壊的な変更が検出されました:",
    "generated": "生成しました: {}",
    "snapshot_updated": "スナップショットを更新しました: {}",
    "seaorm_alter": "SeaORM ALTERマイグレーションを生成しました: {}",
    "batch_up": "バッチアップを生成しました: {}",
    "batch_down": "バッチダウンを生成しました: {}",
    "apply_hint": "'sea-orm-cli migrate up'を実行して適用してください。",
    "extend_unknown_table": "extend!{{}} : \"{}\"は既知のフレームワークテーブルではありません。許可されたテーブル: {}。アプリテーブルを拡張するには、model!{{}}を直接変更してください。",
    "extend_invalid_syntax": "extend!{{}} : 構文が無効です。期待される形式: table: \"テーブル名\", fields: {{ ... }}",
    "admin_positioned": "AdminTableMigrationを'{}'マイグレーションの後に配置しました",
    "files_ready": "{}個のファイルが移行の準備ができています。"
  },
  "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_mismatch": "パスワードが一致しません。",
    "check_inbox": "このアドレスがアカウントに関連付けられている場合、リセットメールが届きます。",
    "email_subject": "パスワードリセットのご案内",
    "email_body": "<p>{0} 様、</p><p>以下のリンクをクリックしてパスワードをリセットしてください(1時間有効):</p><p><a href=\"{1}\">{2}</a></p>"
  },
  "permission": {
    "col.id": "ID",
    "col.can_create": "作成",
    "col.can_delete": "削除",
    "col.can_delete_own": "削除(自分の)",
    "col.can_read": "閲覧",
    "col.can_update": "更新",
    "col.can_update_own": "更新(自分の)",
    "col.groupes": "グループ",
    "col.resource_key": "リソース",
    "col.actions": "操作"
  }
}