- Add Google OAuth token verification and user lookup/creation - Add GoogleAuthRequest and GoogleAuthResponse DTOs - Add GoogleLogin handler in auth_handler.go - Add google_auth.go service for token verification - Add FindByGoogleID repository method for user lookup - Add GoogleID field to User model - Add Google OAuth configuration (client ID, enabled flag) - Add i18n translations for Google auth error messages - Add Google verification email template support 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
191 lines
12 KiB
JSON
191 lines
12 KiB
JSON
{
|
|
"error.invalid_request_body": "無効なリクエスト本文です",
|
|
"error.invalid_credentials": "認証情報が無効です",
|
|
"error.account_inactive": "アカウントが無効です",
|
|
"error.username_taken": "このユーザー名は既に使用されています",
|
|
"error.email_taken": "このメールアドレスは既に登録されています",
|
|
"error.email_already_taken": "このメールアドレスは既に使用されています",
|
|
"error.registration_failed": "登録に失敗しました",
|
|
"error.not_authenticated": "認証されていません",
|
|
"error.failed_to_get_user": "ユーザー情報の取得に失敗しました",
|
|
"error.failed_to_update_profile": "プロフィールの更新に失敗しました",
|
|
"error.invalid_verification_code": "無効な認証コードです",
|
|
"error.verification_code_expired": "認証コードの有効期限が切れています",
|
|
"error.email_already_verified": "メールアドレスは既に認証済みです",
|
|
"error.verification_failed": "認証に失敗しました",
|
|
"error.failed_to_resend_verification": "認証メールの再送信に失敗しました",
|
|
"error.rate_limit_exceeded": "パスワードリセットのリクエストが多すぎます。後でもう一度お試しください。",
|
|
"error.too_many_attempts": "試行回数が多すぎます。新しいコードをリクエストしてください。",
|
|
"error.invalid_reset_token": "無効または期限切れのリセットトークンです",
|
|
"error.password_reset_failed": "パスワードのリセットに失敗しました",
|
|
"error.apple_signin_not_configured": "Apple サインインが設定されていません",
|
|
"error.apple_signin_failed": "Apple サインインに失敗しました",
|
|
"error.invalid_apple_token": "無効な Apple ID トークンです",
|
|
"error.google_signin_not_configured": "Google サインインが設定されていません",
|
|
"error.google_signin_failed": "Google サインインに失敗しました",
|
|
"error.invalid_google_token": "無効な Google ID トークンです",
|
|
|
|
"error.invalid_task_id": "無効なタスクIDです",
|
|
"error.invalid_residence_id": "無効な物件IDです",
|
|
"error.invalid_contractor_id": "無効な業者IDです",
|
|
"error.invalid_document_id": "無効な書類IDです",
|
|
"error.invalid_completion_id": "無効な完了記録IDです",
|
|
"error.invalid_user_id": "無効なユーザーIDです",
|
|
"error.invalid_notification_id": "無効な通知IDです",
|
|
"error.invalid_device_id": "無効なデバイスIDです",
|
|
|
|
"error.task_not_found": "タスクが見つかりません",
|
|
"error.residence_not_found": "物件が見つかりません",
|
|
"error.contractor_not_found": "業者が見つかりません",
|
|
"error.document_not_found": "書類が見つかりません",
|
|
"error.completion_not_found": "タスクの完了記録が見つかりません",
|
|
"error.user_not_found": "ユーザーが見つかりません",
|
|
"error.share_code_invalid": "無効な共有コードです",
|
|
"error.share_code_expired": "共有コードの有効期限が切れています",
|
|
|
|
"error.task_access_denied": "このタスクへのアクセス権がありません",
|
|
"error.residence_access_denied": "この物件へのアクセス権がありません",
|
|
"error.contractor_access_denied": "この業者へのアクセス権がありません",
|
|
"error.document_access_denied": "この書類へのアクセス権がありません",
|
|
"error.not_residence_owner": "この操作は物件のオーナーのみが実行できます",
|
|
"error.cannot_remove_owner": "物件のオーナーを削除することはできません",
|
|
"error.user_already_member": "このユーザーは既にこの物件のメンバーです",
|
|
"error.properties_limit_reached": "サブスクリプションで許可されている物件の最大数に達しました",
|
|
|
|
"error.task_already_cancelled": "タスクは既にキャンセルされています",
|
|
"error.task_already_archived": "タスクは既にアーカイブされています",
|
|
|
|
"error.failed_to_parse_form": "マルチパートフォームの解析に失敗しました",
|
|
"error.task_id_required": "task_id は必須です",
|
|
"error.invalid_task_id_value": "無効な task_id です",
|
|
"error.failed_to_upload_image": "画像のアップロードに失敗しました",
|
|
"error.residence_id_required": "residence_id は必須です",
|
|
"error.invalid_residence_id_value": "無効な residence_id です",
|
|
"error.title_required": "タイトルは必須です",
|
|
"error.failed_to_upload_file": "ファイルのアップロードに失敗しました",
|
|
|
|
"message.logged_out": "ログアウトしました",
|
|
"message.email_verified": "メールアドレスの認証が完了しました",
|
|
"message.verification_email_sent": "認証メールを送信しました",
|
|
"message.password_reset_email_sent": "該当するアカウントが存在する場合、パスワードリセットコードが送信されました。",
|
|
"message.reset_code_verified": "コードの認証が完了しました",
|
|
"message.password_reset_success": "パスワードのリセットが完了しました。新しいパスワードでログインしてください。",
|
|
|
|
"message.task_deleted": "タスクを削除しました",
|
|
"message.task_in_progress": "タスクを進行中に設定しました",
|
|
"message.task_cancelled": "タスクをキャンセルしました",
|
|
"message.task_uncancelled": "タスクのキャンセルを解除しました",
|
|
"message.task_archived": "タスクをアーカイブしました",
|
|
"message.task_unarchived": "タスクのアーカイブを解除しました",
|
|
"message.completion_deleted": "完了記録を削除しました",
|
|
|
|
"message.residence_deleted": "物件を削除しました",
|
|
"message.user_removed": "ユーザーを物件から削除しました",
|
|
"message.tasks_report_generated": "タスクレポートを生成しました",
|
|
"message.tasks_report_sent": "タスクレポートを生成し、{{.Email}} に送信しました",
|
|
"message.tasks_report_email_failed": "タスクレポートは生成されましたが、メールの送信に失敗しました",
|
|
|
|
"message.contractor_deleted": "業者を削除しました",
|
|
|
|
"message.document_deleted": "書類を削除しました",
|
|
"message.document_activated": "書類を有効化しました",
|
|
"message.document_deactivated": "書類を無効化しました",
|
|
|
|
"message.notification_marked_read": "通知を既読にしました",
|
|
"message.all_notifications_marked_read": "すべての通知を既読にしました",
|
|
"message.device_removed": "デバイスを削除しました",
|
|
|
|
"message.subscription_upgraded": "サブスクリプションをアップグレードしました",
|
|
"message.subscription_cancelled": "サブスクリプションをキャンセルしました。請求期間終了まで Pro 機能をご利用いただけます。",
|
|
"message.subscription_restored": "サブスクリプションを復元しました",
|
|
|
|
"message.file_deleted": "ファイルを削除しました",
|
|
"message.static_data_refreshed": "静的データを更新しました",
|
|
|
|
"error.notification_not_found": "通知が見つかりません",
|
|
"error.invalid_platform": "無効なプラットフォームです",
|
|
|
|
"error.upgrade_trigger_not_found": "アップグレードトリガーが見つかりません",
|
|
"error.receipt_data_required": "iOS の場合、receipt_data は必須です",
|
|
"error.purchase_token_required": "Android の場合、purchase_token は必須です",
|
|
|
|
"error.no_file_provided": "ファイルが提供されていません",
|
|
|
|
"error.failed_to_fetch_residence_types": "物件タイプの取得に失敗しました",
|
|
"error.failed_to_fetch_task_categories": "タスクカテゴリの取得に失敗しました",
|
|
"error.failed_to_fetch_task_priorities": "タスク優先度の取得に失敗しました",
|
|
"error.failed_to_fetch_task_frequencies": "タスク頻度の取得に失敗しました",
|
|
"error.failed_to_fetch_task_statuses": "タスクステータスの取得に失敗しました",
|
|
"error.failed_to_fetch_contractor_specialties": "業者専門分野の取得に失敗しました",
|
|
|
|
"push.task_due_soon.title": "タスクの期限が近づいています",
|
|
"push.task_due_soon.body": "{{.TaskTitle}} の期限は {{.DueDate}} です",
|
|
"push.task_overdue.title": "期限切れのタスク",
|
|
"push.task_overdue.body": "{{.TaskTitle}} の期限が過ぎています",
|
|
"push.task_completed.title": "タスク完了",
|
|
"push.task_completed.body": "{{.UserName}} が {{.TaskTitle}} を完了しました",
|
|
"push.task_assigned.title": "新しいタスクが割り当てられました",
|
|
"push.task_assigned.body": "{{.TaskTitle}} に割り当てられました",
|
|
"push.residence_shared.title": "物件が共有されました",
|
|
"push.residence_shared.body": "{{.UserName}} が {{.ResidenceName}} を共有しました",
|
|
|
|
"email.welcome.subject": "Casera へようこそ!",
|
|
"email.verification.subject": "メールアドレスの認証",
|
|
"email.password_reset.subject": "パスワードリセットコード",
|
|
"email.tasks_report.subject": "{{.ResidenceName}} のタスクレポート",
|
|
|
|
"lookup.residence_type.house": "一戸建て",
|
|
"lookup.residence_type.apartment": "アパート",
|
|
"lookup.residence_type.condo": "マンション",
|
|
"lookup.residence_type.townhouse": "タウンハウス",
|
|
"lookup.residence_type.mobile_home": "移動式住宅",
|
|
"lookup.residence_type.other": "その他",
|
|
|
|
"lookup.task_category.plumbing": "配管",
|
|
"lookup.task_category.electrical": "電気",
|
|
"lookup.task_category.hvac": "空調",
|
|
"lookup.task_category.appliances": "家電",
|
|
"lookup.task_category.exterior": "外装",
|
|
"lookup.task_category.interior": "内装",
|
|
"lookup.task_category.landscaping": "造園",
|
|
"lookup.task_category.safety": "安全",
|
|
"lookup.task_category.cleaning": "清掃",
|
|
"lookup.task_category.pest_control": "害虫駆除",
|
|
"lookup.task_category.seasonal": "季節",
|
|
"lookup.task_category.other": "その他",
|
|
|
|
"lookup.task_priority.low": "低",
|
|
"lookup.task_priority.medium": "中",
|
|
"lookup.task_priority.high": "高",
|
|
"lookup.task_priority.urgent": "緊急",
|
|
|
|
"lookup.task_status.pending": "保留中",
|
|
"lookup.task_status.in_progress": "進行中",
|
|
"lookup.task_status.completed": "完了",
|
|
"lookup.task_status.cancelled": "キャンセル",
|
|
"lookup.task_status.archived": "アーカイブ",
|
|
|
|
"lookup.task_frequency.once": "一度のみ",
|
|
"lookup.task_frequency.daily": "毎日",
|
|
"lookup.task_frequency.weekly": "毎週",
|
|
"lookup.task_frequency.biweekly": "2週間ごと",
|
|
"lookup.task_frequency.monthly": "毎月",
|
|
"lookup.task_frequency.quarterly": "四半期ごと",
|
|
"lookup.task_frequency.semiannually": "半年ごと",
|
|
"lookup.task_frequency.annually": "毎年",
|
|
|
|
"lookup.contractor_specialty.plumber": "配管工",
|
|
"lookup.contractor_specialty.electrician": "電気工事士",
|
|
"lookup.contractor_specialty.hvac_technician": "空調技術者",
|
|
"lookup.contractor_specialty.handyman": "便利屋",
|
|
"lookup.contractor_specialty.landscaper": "造園業者",
|
|
"lookup.contractor_specialty.roofer": "屋根職人",
|
|
"lookup.contractor_specialty.painter": "塗装工",
|
|
"lookup.contractor_specialty.carpenter": "大工",
|
|
"lookup.contractor_specialty.pest_control": "害虫駆除業者",
|
|
"lookup.contractor_specialty.cleaning": "清掃業者",
|
|
"lookup.contractor_specialty.pool_service": "プールサービス",
|
|
"lookup.contractor_specialty.general_contractor": "総合建設業者",
|
|
"lookup.contractor_specialty.other": "その他"
|
|
}
|