From e28ec80dcfcec3a160f2b5a981c8a9f8e9960f69 Mon Sep 17 00:00:00 2001
From: Darko Gjorgjijoski <5760249+gdarko@users.noreply.github.com>
Date: Fri, 12 Jun 2026 14:49:15 +0200
Subject: [PATCH] New translations en.json (Japanese)
[ci skip]
---
lang/ja.json | 324 +++++++++++++++++++++++++++++++++++++++++++--------
1 file changed, 278 insertions(+), 46 deletions(-)
diff --git a/lang/ja.json b/lang/ja.json
index ded31461..cc1a5178 100644
--- a/lang/ja.json
+++ b/lang/ja.json
@@ -12,7 +12,13 @@
"settings": "設定",
"logout": "ログアウト",
"users": "ユーザー",
- "modules": "モジュール"
+ "members": "Members",
+ "modules": "モジュール",
+ "documents": "Documents",
+ "admin": "Administration",
+ "administration": "Administration",
+ "companies": "Companies",
+ "all_users": "Users"
},
"general": {
"add_company": "会社を追加",
@@ -22,15 +28,16 @@
"save": "保存",
"create": "作成",
"cancel": "取消",
+ "accept": "Accept",
+ "decline": "Decline",
+ "welcome": "Welcome",
+ "no_company_description": "You are not a member of any company yet. Accept an invitation below or contact your administrator.",
+ "app_version": "Application Version",
+ "database": "Database",
+ "collapse": "Collapse",
"update": "更新",
"deselect": "選択を解除",
"download": "ダウンロード",
- "export": "Export",
- "export_csv": "Export CSV",
- "export_one_line_per_invoice": "One line per invoice",
- "export_one_line_per_invoice_item": "One line per invoice item",
- "export_one_line_per_estimate": "One line per estimate",
- "export_one_line_per_estimate_item": "One line per estimate item",
"from_date": "開始日",
"to_date": "終了日",
"from": "From",
@@ -97,6 +104,7 @@
"street_2": "番地2",
"action_failed": "操作に失敗しました",
"retry": "再試行",
+ "unable_to_load_pdf": "Unable to load document preview",
"choose_note": "ノートを選択",
"no_note_found": "ノートが見つかりません",
"insert_note": "ノートの挿入",
@@ -446,6 +454,7 @@
"update_expense": "費用の更新",
"edit_invoice": "請求書を編集",
"new_invoice": "新規請求書",
+ "one_time": "One-time",
"save_invoice": "請求書を保存",
"update_invoice": "請求書を更新",
"add_new_tax": "新規税金の追加",
@@ -460,6 +469,8 @@
"cloned_successfully": "請求書の複製に成功しました",
"clone_invoice": "請求書を複製",
"confirm_clone": "この請求書は新しい請求書に複製されます",
+ "convert_to_estimate": "Convert to Estimate",
+ "confirm_convert_to_estimate": "This invoice will be converted into a new Estimate",
"item": {
"title": "項目名",
"description": "説明",
@@ -545,6 +556,7 @@
"update_expense": "費用の更新",
"edit_invoice": "定期請求書を編集",
"new_invoice": "新しい定期請求書",
+ "recurring": "Recurring",
"send_automatically": "自動的に送信",
"send_automatically_desc": "請求書が作成されたときに顧客に自動的に送信する場合は、これを有効にします。",
"save_invoice": "定期請求書を保存",
@@ -589,7 +601,13 @@
"every_hour": "1時間毎",
"every_2_hour": "2時間毎",
"every_day_at_midnight": "毎日真夜中に",
+ "every_day": "Every Day",
"every_week": "毎週",
+ "every_2_weeks": "Every 2 Weeks",
+ "every_month": "Every Month",
+ "every_2_months": "Every 2 Months",
+ "every_quarter": "Every 3 Months (Quarterly)",
+ "every_year": "Every Year",
"every_15_days_at_midnight": "15日毎に真夜中",
"on_the_first_day_of_every_month_at_midnight": "毎月初日の00:00",
"every_6_month": "6ヶ月毎",
@@ -608,7 +626,8 @@
"none": "なし",
"date": "日付",
"count": "数"
- }
+ },
+ "make_recurring": "Make Recurring"
},
"payments": {
"title": "支払い",
@@ -683,10 +702,6 @@
"no_expenses": "支出はまだありません!",
"list_of_expenses": "このセクションには支出のリストが含まれます。",
"confirm_delete": "この支出は復元できません | この支出は復元できません",
- "duplicate_expense": "Duplicate",
- "duplicate_expense_title": "Duplicate expense",
- "duplicate_expense_modal_hint": "Change the date if you need to. (copy) is added to the note.",
- "duplicated_message": "Expense duplicated successfully",
"created_message": "支出が正常に作成されました",
"updated_message": "支出の更新に成功しました",
"deleted_message": "支出が正常に削除されました | 支出が正常に削除されました",
@@ -760,35 +775,61 @@
"no_modules_installed": "モジュールはまだインストールされていません!",
"disable_warning": "この特定の設定はすべて元に戻ります。",
"what_you_get": "できること",
- "sign_up_and_get_token": "サインアップしてトークンを入手"
+ "screenshots": "Screenshots",
+ "sign_up_and_get_token": "サインアップしてトークンを入手",
+ "index": {
+ "description": "Modules activated by your administrator on this instance. Each company configures its own settings independently.",
+ "empty_title": "No active modules",
+ "empty_description": "Your administrator hasn't activated any modules on this instance yet. Once they do, modules will appear here with a settings shortcut."
+ },
+ "settings": {
+ "title": "Module Settings",
+ "open": "Settings",
+ "saved": "Module settings saved successfully.",
+ "not_found": "This module has not registered a settings schema.",
+ "none": "No settings"
+ },
+ "sidebar": {
+ "section_title": "Modules"
+ }
},
- "users": {
- "title": "ユーザー",
- "users_list": "ユーザーリスト",
- "name": "名前",
- "description": "説明",
- "added_on": "追加日",
- "date_of_creation": "作成日",
- "action": "アクション",
- "add_user": "ユーザーの追加",
- "save_user": "ユーザーの保存",
- "update_user": "ユーザーを更新",
- "user": "ユーザー",
- "add_new_user": "新規ユーザーを追加する",
- "new_user": "新規ユーザー",
- "edit_user": "ユーザーの編集",
- "no_users": "まだユーザーがいません!",
- "list_of_users": "このセクションにはユーザーのリストが含まれます。",
- "email": "メール",
- "phone": "電話",
- "password": "パスワード",
- "user_attached_message": "すでに使用されている項目は削除できません",
- "confirm_delete": "このユーザーを復元することはできません | これらのユーザーを復元することはできません",
- "created_message": "ユーザーの作成に成功しました",
- "updated_message": "ユーザーの更新に成功しました",
- "deleted_message": "ユーザーが正常に削除されました | ユーザーが正常に削除されました",
- "select_company_role": "{company} のロールを選択",
- "companies": "会社"
+ "members": {
+ "title": "Members",
+ "members_list": "Members List",
+ "name": "Name",
+ "description": "Description",
+ "added_on": "Added On",
+ "date_of_creation": "Date Of Creation",
+ "action": "Action",
+ "invite_member": "Invite Member",
+ "select_role": "Select Role",
+ "add_member": "Add Member",
+ "save_member": "Save Member",
+ "update_member": "Update Member",
+ "member": "Member | Members",
+ "add_new_member": "Add New Member",
+ "new_member": "New Member",
+ "edit_member": "Edit Member",
+ "no_members": "No members yet!",
+ "list_of_members": "This section will contain the list of company members.",
+ "email": "Email",
+ "phone": "Phone",
+ "password": "Password",
+ "member_attached_message": "Cannot delete an item which is already in use",
+ "confirm_delete": "You will not be able to recover this Member | You will not be able to recover these Members",
+ "created_message": "Member added successfully",
+ "updated_message": "Member updated successfully",
+ "deleted_message": "Member removed successfully | Members removed successfully",
+ "invited_message": "Invitation sent successfully",
+ "invitation_cancelled": "Invitation cancelled",
+ "select_company_role": "Select Role for {company}",
+ "companies": "Companies",
+ "pending_invitations": "Pending Invitations",
+ "no_pending_invitations": "No pending invitations",
+ "cancel_invitation": "Cancel Invitation",
+ "role": "Role",
+ "invited_by": "Invited By",
+ "sent_at": "Sent At"
},
"reports": {
"title": "レポート",
@@ -867,12 +908,65 @@
"update_app": "アプリの更新",
"backup": "バックアップ",
"file_disk": "ファイルディスク",
+ "fonts": "Font Packages",
"custom_fields": "カスタムフィールド",
"payment_modes": "支払い方法",
"notes": "ノート",
"exchange_rate": "為替レート",
"address_information": "住所情報",
- "pdf_generation": "PDF Generation"
+ "pdf_generation": "PDF Generation",
+ "appearance": "Appearance",
+ "module_configuration": "Module Configuration",
+ "ai_configuration": "AI Configuration"
+ },
+ "appearance": {
+ "title": "Appearance",
+ "description": "Customize how the application looks and feels.",
+ "sidebar_group_labels": "Show sidebar group labels",
+ "sidebar_group_labels_desc": "Display section headers like Documents, Administration, and Modules in the sidebar navigation."
+ },
+ "ai": {
+ "title": "AI Configuration",
+ "description": "Configure the AI provider used for chat assistance and text generation. AI is opt-in — leave disabled if you don't want these features.",
+ "openrouter": "OpenRouter",
+ "enable": "Enable AI features",
+ "enable_help": "When disabled, the AI chat drawer and WYSIWYG text-generation button are hidden everywhere in the app.",
+ "driver": "AI Provider",
+ "api_key": "API Key",
+ "api_key_help": "Your API key is encrypted before being stored.",
+ "base_url": "Base URL",
+ "base_url_help": "Leave blank to use the provider's default endpoint.",
+ "roles": "AI Roles",
+ "roles_help": "Pick which AI capabilities are available. Each role uses a specific model.",
+ "chat": "Chat Assistant",
+ "chat_help": "Natural-language Q&A over your company's data via tool-calling.",
+ "chat_model": "Chat model",
+ "text_generation": "Text Generation",
+ "text_generation_help": "One-shot text generation for invoice notes and email bodies.",
+ "text_generation_model": "Text generation model",
+ "suggested_models": "Suggested models",
+ "test_connection": "Test Connection",
+ "test_success": "Connection successful.",
+ "test_failed": "Connection test failed: {error}",
+ "saved": "AI configuration saved successfully.",
+ "use_custom_ai_config": "Use custom AI configuration",
+ "use_custom_ai_config_desc": "Enable this to override the global AI configuration for this company.",
+ "using_global_ai_config": "This company is using the global AI configuration. Enable the toggle above to configure a custom provider.",
+ "company_enabled": "AI enabled for this company",
+ "company_enabled_desc": "Turn off to disable all AI features for this company regardless of the global setting.",
+ "installer_title": "AI Assistant",
+ "installer_description": "Optionally enable AI chat and text generation now. You can change this later in Admin → Settings → AI Configuration.",
+ "errors": {
+ "invalid_key": "The API key is invalid.",
+ "rate_limited": "The provider rate limit was hit. Please try again shortly.",
+ "server_error": "The AI provider returned an error. Check your configuration and try again.",
+ "model_not_found": "The requested model is not available on this provider.",
+ "missing_api_key": "An API key is required to test the connection.",
+ "ai_disabled": "AI is not enabled for this company.",
+ "chat_disabled": "The chat assistant is not enabled for this company.",
+ "text_generation_disabled": "Text generation is not enabled for this company.",
+ "missing_model": "No model is configured."
+ }
},
"address_information": {
"section_description": " 以下のフォームを使用して、住所情報を更新できます。"
@@ -908,19 +1002,48 @@
"port": "メールポート",
"driver": "メールドライバ",
"secret": "シークレット",
+ "scheme": "Scheme",
+ "url": "URL",
+ "timeout": "Timeout",
+ "local_domain": "EHLO Domain",
"mailgun_secret": "Mailgunシークレット",
"mailgun_domain": "ドメイン",
"mailgun_endpoint": "Mailgun エンドポイント",
+ "mailgun_scheme": "Mailgun Scheme",
"ses_secret": "SESシークレット",
"ses_key": "SESキー",
"ses_region": "AWS Region",
+ "postmark_token": "Postmark Token",
+ "postmark_message_stream_id": "Message Stream ID",
+ "sendmail_path": "Sendmail Path",
"password": "メールのパスワード",
"username": "メールのユーザー名",
"mail_config": "メール設定",
+ "mail_config_updated": "Mail configuration updated successfully",
"from_name": "送信者名",
"from_mail": "差出人メールアドレス",
"encryption": "メール暗号化",
- "mail_config_desc": "以下は、アプリからメールを送信するためのメール ドライバーを構成するためのフォームです。Sendgrid、SES などのサードパーティ プロバイダーを構成することもできます。"
+ "mail_config_desc": "以下は、アプリからメールを送信するためのメール ドライバーを構成するためのフォームです。Sendgrid、SES などのサードパーティ プロバイダーを構成することもできます。",
+ "company_mail_config": "Mail Configuration",
+ "company_mail_config_desc": "Configure a custom mail driver for this company. When enabled, this overrides the global mail configuration.",
+ "company_mail_config_updated": "Company mail configuration updated successfully",
+ "use_custom_mail_config": "Use Custom Mail Configuration",
+ "use_custom_mail_config_desc": "Enable this to use a company-specific mail configuration instead of the global settings.",
+ "using_global_mail_config": "This company is using the global mail configuration. Enable the toggle above to configure a custom mail driver.",
+ "basic_settings": "Basic Settings",
+ "advanced_settings": "Advanced Settings",
+ "show_advanced_settings": "Show Advanced Settings",
+ "hide_advanced_settings": "Hide Advanced Settings",
+ "native_mail_desc": "Use PHP's native mail transport. Delivery is handled by the server's PHP mail configuration.",
+ "sendmail_desc": "Use the system sendmail binary for delivery. You can override the command path in Advanced Settings.",
+ "drivers": {
+ "smtp": "SMTP",
+ "mail": "PHP Mail",
+ "sendmail": "Sendmail",
+ "ses": "Amazon SES",
+ "mailgun": "Mailgun",
+ "postmark": "Postmark"
+ }
},
"pdf": {
"title": "PDFの設定",
@@ -953,6 +1076,7 @@
"updated_message": "会社情報の更新に成功しました",
"delete_company": "会社を削除",
"delete_company_description": "会社を削除すると、関連するすべてのデータとファイルが永久に失われます。",
+ "danger_zone": "Danger Zone",
"are_you_absolutely_sure": "本当によろしいですか?",
"delete_company_modal_desc": "この操作は元に戻せません。 {company} と関連するすべてのデータが永久に削除されます。",
"delete_company_modal_label": "確認するには {company} を入力してください"
@@ -1141,9 +1265,15 @@
"password": "パスワード",
"confirm_password": "パスワードの確認",
"account_settings": "アカウント設定",
+ "general": "General",
+ "general_description": "Update your name, email and language preference.",
+ "security": "Security",
+ "security_description": "Change your password.",
+ "profile_picture_description": "Upload or remove your profile photo.",
"save": "保存",
"section_description": "以下のフォームを使用して、名前、メールアドレス、パスワードを更新できます。",
- "updated_message": "アカウント設定が正常に更新されました"
+ "updated_message": "アカウント設定が正常に更新されました",
+ "default_language": "Default (Company Language)"
},
"user_profile": {
"name": "名前",
@@ -1168,6 +1298,7 @@
"description": "この会社のロールと権限を管理",
"save": "保存",
"add_new_role": "新しいロールを追加する",
+ "system_role": "System Role",
"role_name": "ロール名",
"added_on": "追加日",
"add_role": "ロールの追加",
@@ -1315,6 +1446,19 @@
"december_november": "12月-11月"
}
},
+ "fonts": {
+ "title": "Font Packages",
+ "description": "These font packages are used exclusively when generating PDF documents. The bundled Noto Sans covers Latin, Greek and Cyrillic scripts. Install the packages below to render Hebrew, Arabic, Persian, Urdu, Hindi (Devanagari), Thai or East Asian (CJK) characters in your PDFs.",
+ "bundled_info": "Bundled font: Noto Sans (Latin / Greek / Cyrillic). Install additional packages below for Hebrew, Arabic, Persian, Hindi, Thai or CJK support.",
+ "installed": "Installed",
+ "bundled": "Bundled",
+ "install": "Install",
+ "downloading": "Downloading...",
+ "download_started": "Downloading {name}. This may take a moment.",
+ "download_complete": "{name} installed successfully. PDFs will now use this font.",
+ "download_failed": "Failed to download {name}. Please try again.",
+ "no_packages": "No additional font packages available."
+ },
"update_app": {
"title": "アプリの更新",
"description": "下のボタンをクリックするとInvoiceShelfを簡単にアップデートできます。",
@@ -1333,6 +1477,7 @@
"unzipping_package": "パッケージの展開中",
"copying_files": "ファイルのコピー中",
"deleting_files": "未使用のファイルの削除",
+ "cleaning_stale_files": "Cleaning stale files",
"running_migrations": "移行を実行中",
"finishing_update": "アップデート完了",
"update_failed": "アップデートに失敗しました",
@@ -1425,7 +1570,18 @@
"deleted_message": "ファイルディスクは正常に削除されました",
"disk_variables_save_successfully": "ディスクの設定が完了しました",
"disk_variables_save_error": "ディスクの設定に失敗しました。",
- "invalid_disk_credentials": "選択したディスクの認証情報が無効です"
+ "invalid_disk_credentials": "選択したディスクの認証情報が無効です",
+ "disk_assignments": "Disk Assignments",
+ "disk_assignments_description": "Configure which disk is used for different types of file storage.",
+ "media_storage": "Media Storage",
+ "media_storage_description": "Used for expense receipts, avatars, and company logos.",
+ "pdf_storage": "PDF Storage",
+ "pdf_storage_description": "Used for generated invoice, estimate, and payment PDFs.",
+ "backup_storage": "Backup Storage",
+ "backup_storage_description": "Used for application backups.",
+ "purposes_saved": "Disk assignments saved successfully",
+ "local_root_hint": "Path is relative to storage/app/. For example, entering \"backups\" will store files in storage/app/backups/.",
+ "change_disk_warning": "Changing disk assignments will only affect new uploads. Existing files will remain on their original disk and will continue to be accessible. If you need to move existing files, use the command: php artisan media:secure"
},
"taxations": {
"add_billing_address": "請求先住所を入力",
@@ -1491,6 +1647,7 @@
"db_name": "データベース名",
"db_path": "データベースのパス",
"overwrite": "既存のデータベースを上書きして続行します",
+ "overwrite_confirm_desc": "This will permanently wipe the selected database before installation continues. Make sure you do not need any existing data.",
"desc": "サーバーにデータベースを作成し、以下のフォームを使用して資格情報を設定します。"
},
"permissions": {
@@ -1520,18 +1677,41 @@
"port": "メールポート",
"driver": "メールドライバ",
"secret": "シークレット",
+ "scheme": "Scheme",
+ "url": "URL",
+ "timeout": "Timeout",
+ "local_domain": "EHLO Domain",
"mailgun_secret": "Mailgunシークレット",
"mailgun_domain": "ドメイン",
"mailgun_endpoint": "Mailgunエンドポイント",
+ "mailgun_scheme": "Mailgun Scheme",
"ses_secret": "SESシークレット",
+ "ses_region": "AWS Region",
"ses_key": "SESキー",
+ "postmark_token": "Postmark Token",
+ "postmark_message_stream_id": "Message Stream ID",
+ "sendmail_path": "Sendmail Path",
"password": "メールのパスワード",
"username": "メールのユーザー名",
"mail_config": "メール設定",
"from_name": "送信者名",
"from_mail": "差出人アドレス",
"encryption": "メールの暗号化",
- "mail_config_desc": "以下は、アプリからメールを送信するためのメールドライバーを構成するためのフォームです。Sendgrid、SES などのサードパーティ プロバイダーを構成することもできます。"
+ "mail_config_desc": "以下は、アプリからメールを送信するためのメールドライバーを構成するためのフォームです。Sendgrid、SES などのサードパーティ プロバイダーを構成することもできます。",
+ "basic_settings": "Basic Settings",
+ "advanced_settings": "Advanced Settings",
+ "show_advanced_settings": "Show Advanced Settings",
+ "hide_advanced_settings": "Hide Advanced Settings",
+ "native_mail_desc": "Use PHP's native mail transport. Delivery is handled by the server's PHP mail configuration.",
+ "sendmail_desc": "Use the system sendmail binary for delivery. You can override the command path in Advanced Settings.",
+ "drivers": {
+ "smtp": "SMTP",
+ "mail": "PHP Mail",
+ "sendmail": "Sendmail",
+ "ses": "Amazon SES",
+ "mailgun": "Mailgun",
+ "postmark": "Postmark"
+ }
},
"req": {
"system_req": "システム要件",
@@ -1677,5 +1857,57 @@
"mail_view_payment": "支払いを表示",
"notification_view_estimate": "[通知] 見積りを閲覧しました",
"notification_view_invoice": "[通知] 請求書を閲覧しました",
- "You have received a new invoice from {COMPANY_NAME}. Please download using the button below:": "{COMPANY_NAME}から新しい請求書を受け取りました。以下のボタンを使用してダウンロードしてください。"
+ "You have received a new invoice from {COMPANY_NAME}. Please download using the button below:": "{COMPANY_NAME}から新しい請求書を受け取りました。以下のボタンを使用してダウンロードしてください。",
+ "administration": {
+ "companies": {
+ "title": "All Companies",
+ "edit_company": "Edit Company",
+ "company_name": "Company Name",
+ "owner": "Owner",
+ "address": "Address",
+ "updated_message": "Company updated successfully",
+ "no_companies": "No companies found",
+ "list_description": "Manage all companies across the system"
+ },
+ "settings": {
+ "title": "Global Settings"
+ },
+ "users": {
+ "title": "All Users",
+ "edit_user": "Edit User",
+ "role": "Role",
+ "no_users": "No users found",
+ "list_description": "View all users across the system",
+ "updated_message": "User updated successfully",
+ "impersonate": "Impersonate",
+ "impersonate_confirm": "You are about to impersonate {name}. You will be logged in as this user with a temporary session that expires in 2 hours. This action is logged.",
+ "impersonating_banner": "You are currently impersonating a user. All actions are logged.",
+ "stop_impersonating": "Stop Impersonating"
+ }
+ },
+ "ai": {
+ "chat": {
+ "title": "AI Assistant",
+ "new_conversation": "New conversation",
+ "no_conversations": "No conversations yet.",
+ "untitled": "Untitled",
+ "empty_state": "Ask me anything about your invoices, customers, payments, or expenses.",
+ "thinking": "Thinking…",
+ "send": "Send",
+ "sending": "Sending…",
+ "input_placeholder": "Ask about your invoices, customers, or payments…"
+ },
+ "generate": {
+ "title": "AI Text Generation",
+ "prompt_label": "What should the AI write?",
+ "prompt_placeholder": "e.g. a polite late-payment reminder for an invoice that's 10 days overdue",
+ "use_current_as_context": "Use current content as context",
+ "use_context_help": "When enabled, the AI will see the editor's current text and can rewrite or extend it.",
+ "preview": "Preview",
+ "generate": "Generate",
+ "regenerate": "Regenerate",
+ "insert": "Insert",
+ "replace": "Replace"
+ }
+ }
}