' (Copy)', 'categories' => [ 'list_retrieved' => 'Category list retrieved successfully.', 'retrieved' => 'Category information retrieved successfully.', 'not_found' => 'Category not found.', 'created' => 'Category has been created.', 'updated' => 'Category has been updated.', 'deleted' => 'Category has been deleted.', 'has_products' => '(:count linked products)', 'fetch_success' => 'Category list retrieved successfully.', 'fetch_failed' => 'Failed to retrieve the category list.', 'status_changed' => 'Category status has been changed.', 'order_updated' => 'Category order has been changed.', ], 'settings' => [ 'fetch_success' => 'Settings retrieved successfully.', 'fetch_failed' => 'Failed to retrieve settings.', 'save_success' => 'Settings have been saved.', 'save_failed' => 'Failed to save settings.', 'save_error' => 'An error occurred while saving settings.', 'update_success' => 'Settings have been updated.', 'update_failed' => 'Failed to update settings.', 'update_error' => 'An error occurred while updating settings.', 'cache_clear_success' => 'Settings cache has been cleared.', 'cache_clear_error' => 'An error occurred while clearing the settings cache.', ], 'payment' => [ 'provider_not_found' => 'Payment method not found.', 'client_config_success' => 'Payment configuration retrieved successfully.', ], 'products' => [ 'not_found' => 'Product not found.', 'created' => 'Product has been created.', 'updated' => 'Product has been updated.', 'deleted' => 'Product has been deleted.', 'fetch_success' => 'Product information retrieved successfully.', 'fetch_failed' => 'Failed to retrieve product information.', 'create_failed' => 'Failed to create product.', 'update_failed' => 'Failed to update product.', 'delete_failed' => 'Failed to delete product.', 'can_delete_checked' => 'Checked if product can be deleted.', 'can_delete_check_failed' => 'Failed to check if product can be deleted.', 'has_order_history' => 'This product has :count order(s) and cannot be deleted.', 'bulk_updated' => ':count products have been updated.', 'bulk_price_updated' => 'Prices of :count products have been updated.', 'bulk_stock_updated' => 'Stock of :count products have been updated.', 'bulk_price_update_failed' => 'Failed to update product prices.', 'bulk_stock_update_failed' => 'Failed to update product stock.', 'stock_mismatch' => 'Product stock (:product_stock) does not match option stock sum (:option_stock_sum).', 'bulk_update_success' => ':products_count products and :options_count options have been updated.', 'bulk_update_failed' => 'Bulk update failed.', 'code_generated' => 'Product code has been generated.', 'code_generation_failed' => 'Failed to generate product code.', 'logs_fetch_success' => 'Product activity logs retrieved successfully.', 'logs_fetch_failed' => 'Failed to retrieve product activity logs.', 'options_fetch_success' => 'Product options retrieved successfully.', 'options_fetch_failed' => 'Failed to retrieve product options.', ], 'presets' => [ 'created' => 'Search preset has been saved.', 'updated' => 'Search preset has been updated.', 'deleted' => 'Search preset has been deleted.', 'name_exists' => 'A preset with the same name already exists.', 'not_owner' => 'You do not have permission to modify this preset.', 'fetch_success' => 'Search preset list retrieved successfully.', ], 'product_image' => [ 'not_found' => 'Product image not found.', ], 'product_images' => [ 'uploaded' => 'Image has been uploaded.', 'deleted' => 'Image has been deleted.', 'reordered' => 'Image order has been changed.', 'thumbnail_set' => 'Thumbnail has been set.', 'not_found' => 'Product image not found.', ], 'category_images' => [ 'uploaded' => 'Image has been uploaded.', 'deleted' => 'Image has been deleted.', 'reordered' => 'Image order has been changed.', 'not_found' => 'Category image not found.', ], 'brands' => [ 'list_retrieved' => 'Brand list retrieved successfully.', 'retrieved' => 'Brand information retrieved successfully.', 'not_found' => 'Brand not found.', 'created' => 'Brand has been created.', 'updated' => 'Brand has been updated.', 'deleted' => 'Brand has been deleted.', 'status_changed' => 'Brand status has been changed.', 'has_products' => '(:count linked products)', ], 'options' => [ 'bulk_price_updated' => 'Prices of :count options have been updated.', 'bulk_price_update_failed' => 'Failed to update option prices.', 'bulk_stock_updated' => 'Stock of :count options have been updated.', 'bulk_stock_update_failed' => 'Failed to update option stock.', 'bulk_update_success' => ':count options have been updated.', 'bulk_update_failed' => 'Option bulk update failed.', 'has_order_history' => 'Options with order history cannot be deleted.', 'bulk_updated' => ':count option(s) have been updated.', ], // Order (singular) - User-facing order messages 'order' => [ // 주문 생성 'created' => 'Your order has been placed.', 'create_failed' => 'Failed to create order.', // 주문 상태 'status_changed' => 'Order status has been changed.', 'cancelled' => 'Order has been cancelled.', 'cancel_failed' => 'Failed to cancel order.', // 자동 취소 'auto_cancel_expired_reason' => 'Automatically cancelled due to payment deadline expiration.', // 결제 'payment_pending' => 'Awaiting payment.', 'payment_completed' => 'Payment has been completed.', 'payment_failed' => 'Payment has failed.', // 재고 'stock_insufficient' => 'Insufficient stock.', 'stock_restored' => 'Stock has been restored.', // 검증 'not_found' => 'Order not found.', 'invalid_status' => 'Invalid order status.', 'amount_mismatch' => 'Payment amount does not match.', 'estimate_refund_success' => 'Refund estimate retrieved successfully.', 'payment_cancelled' => 'Payment has been cancelled.', 'confirmed' => 'Purchase has been confirmed.', 'cannot_confirm' => 'Cannot confirm purchase in current status.', ], // Coupon Messages 'coupons' => [ 'list_retrieved' => 'Coupon list retrieved successfully.', 'retrieved' => 'Coupon information retrieved successfully.', 'not_found' => 'Coupon not found.', 'created' => 'Coupon has been created.', 'updated' => 'Coupon has been updated.', 'deleted' => 'Coupon has been deleted.', 'status_changed' => 'Issue status of :count coupons has been updated.', 'direct_issued' => 'Coupon issued to :issued member(s).', 'direct_issued_with_skip' => 'Coupon issued to :issued member(s). (:skipped excluded for not meeting issue conditions)', 'issue_cancelled' => 'Coupon issuance has been cancelled.', 'issues_retrieved' => 'Coupon issue history retrieved successfully.', 'has_issues' => '(:count issues)', // Formatting (for Coupon model accessors) 'benefit_fixed_format' => ':amount off', 'benefit_rate_format' => ':rate% off', 'benefit_rate_with_max_format' => ':rate% off (max :max)', 'valid_days_format' => ':days days from issue date', 'issue_period_unlimited' => 'Always available', 'unlimited' => 'Unlimited', ], // Order Messages 'orders' => [ 'list_retrieved' => 'Order list retrieved successfully.', 'retrieved' => 'Order information retrieved successfully.', 'not_found' => 'Order not found.', 'updated' => 'Order has been updated.', 'deleted' => 'Order has been deleted.', 'bulk_updated' => ':count orders have been updated.', 'bulk_status_updated' => 'Status of :count orders has been updated.', 'bulk_shipping_updated' => 'Shipping information of :count orders has been updated.', 'bulk_update_failed' => 'Bulk update failed.', 'status_changed' => 'Order status has been changed to :status.', 'update_failed' => 'Failed to update the order.', 'delete_failed' => 'Failed to delete the order.', 'shipping_registered' => 'Shipping information has been registered.', 'export_success' => 'Excel file has been created.', 'export_failed' => 'Failed to create Excel file.', 'export_no_data' => 'No orders to export.', 'cannot_cancel' => 'This order cannot be cancelled.', 'cannot_refund' => 'This order cannot be refunded.', 'statistics_retrieved' => 'Order statistics retrieved successfully.', 'option_status_changed' => 'Status of :count options has been changed.', 'option_status_change_failed' => 'Failed to change option status.', 'shipping_address_updated' => 'Shipping address has been updated.', 'cannot_modify_address' => 'Shipping address can only be changed before shipping.', 'logs_fetch_success' => 'Order process logs retrieved successfully.', 'logs_fetch_failed' => 'Failed to retrieve order process logs.', 'log_status_changed' => 'Order status changed: :old → :new', 'log_updated' => 'Order information has been updated.', 'log_bulk_updated' => ':count orders have been bulk updated.', 'email_sent' => 'Email has been sent successfully.', 'email_send_failed' => 'Failed to send email.', 'email_subject' => '[:app_name] Regarding Order :order_number', 'fetch_success' => 'Order information retrieved successfully.', 'fetch_failed' => 'Failed to retrieve order information.', 'cancelled' => 'Order has been cancelled.', 'cancel_failed' => 'Failed to cancel order.', 'estimate_refund_success' => 'Refund estimate retrieved successfully.', 'estimate_refund_failed' => 'Failed to calculate refund estimate.', 'guest_password_reset_success' => 'Guest lookup password has been reset.', 'guest_password_reset_failed' => 'Failed to reset guest lookup password.', 'guest_password_reset_not_guest' => 'Only guest orders can have their lookup password reset.', 'deposit_confirmed' => 'Deposit confirmed and the order has been marked as paid.', 'deposit_confirm_failed' => 'Failed to confirm the deposit.', 'deposit_amount_mismatch' => 'The deposit amount does not match the amount due.', 'deposit_not_dbank' => 'Only bank transfer (manual deposit) orders can be confirmed.', 'deposit_not_pending' => 'Only unpaid orders can have their deposit confirmed.', 'payment_name_summary' => ':name and :count more', 'deposit' => [ 'amount' => 'Deposit amount', 'depositor_name' => 'Depositor name', ], ], // Product Label Messages 'labels' => [ 'fetch_success' => 'Label list retrieved successfully.', 'retrieved' => 'Label information retrieved successfully.', 'not_found' => 'Label not found.', 'created' => 'Label has been created.', 'updated' => 'Label has been updated.', 'deleted' => 'Label has been deleted.', 'toggle_success' => 'Label status has been changed.', // Controller message keys 'create_success' => 'Label has been created.', 'update_success' => 'Label has been updated.', 'delete_success' => 'Label has been deleted.', 'status_changed' => 'Label status has been changed.', 'update_failed' => 'Failed to update label.', 'delete_failed' => 'Failed to delete label.', ], // Currency units (for price formatting) 'currency' => [ 'suffix' => [ 'KRW' => '', 'JPY' => '', 'CNY' => '', 'USD' => '', 'EUR' => '', ], 'prefix' => [ 'KRW' => '₩', 'JPY' => '¥', 'CNY' => '元', 'USD' => '$', 'EUR' => '€', ], ], // Cart Messages 'cart' => [ 'list_retrieved' => 'Cart items retrieved successfully.', 'added' => 'Item has been added to cart.', 'bulk_added' => ':count items have been added to cart.', 'quantity_updated' => 'Quantity has been updated.', 'option_changed' => 'Option has been changed.', 'deleted' => 'Item has been removed from cart.', 'bulk_deleted' => ':count items have been removed.', 'merged' => ':count items have been merged to cart.', 'empty' => 'Cart is empty.', 'cart_key_issued' => 'Cart key has been issued.', 'item_count' => 'You have :count items in your cart.', 'key_issued' => 'Cart key has been issued.', 'key_issue_failed' => 'Failed to issue cart key.', 'fetched' => 'Cart items retrieved successfully.', 'fetch_failed' => 'Failed to retrieve cart items.', 'add_failed' => 'Failed to add item to cart.', 'reorder_added' => 'Items from your past order have been added to the cart.', 'reorder_failed' => 'Reorder failed.', 'reorder_option_not_found' => 'Product option no longer exists.', 'unknown_product' => 'Unknown product', 'update_failed' => 'Failed to update cart.', 'delete_failed' => 'Failed to delete cart item.', 'deleted_multiple' => ':deleted_count items have been removed.', 'deleted_all' => 'Cart has been cleared. :deleted_count items removed.', 'login_required' => 'Login is required.', 'cart_key_required' => 'Cart key is required.', 'invalid_cart_key' => 'Invalid cart key format.', 'merge_failed' => 'Failed to merge cart.', 'count_fetched' => 'Cart count retrieved successfully.', // Order Summary UI i18n 'order_summary' => 'Order Summary', 'selected_items' => 'Selected Items', 'selected_count' => ':selected / :total items', 'product_amount' => 'Product Amount', 'taxable_amount' => 'Taxable Amount', 'tax_free_amount' => 'Tax-free Amount', 'discount_total' => 'Discount', 'coupon_discount' => 'Coupon Discount', 'code_discount' => 'Discount Code', 'order_discount' => 'Order Discount', 'shipping_fee' => 'Shipping', 'base_shipping' => 'Base Shipping', 'extra_shipping' => 'Extra Shipping', 'shipping_discount' => 'Shipping Discount', 'payment_amount' => 'Payment Amount', 'expected_mileage' => 'Mileage Earned', 'total' => 'Total', 'select_items_message' => 'Please select items', 'checkout' => 'Checkout', 'continue_shopping' => 'Continue Shopping', ], // Checkout Messages 'checkout' => [ 'created' => 'Checkout has been created.', 'fetched' => 'Checkout information retrieved successfully.', 'updated' => 'Checkout has been updated.', 'deleted' => 'Checkout has been deleted.', 'extended' => 'Checkout validity has been extended.', 'create_failed' => 'Failed to create checkout.', 'fetch_failed' => 'Failed to retrieve checkout.', 'update_failed' => 'Failed to update checkout.', 'delete_failed' => 'Failed to delete checkout.', 'extend_failed' => 'Failed to extend checkout validity.', 'free_shipping' => 'Free shipping', ], // User Coupon Messages (마이페이지/체크아웃용) 'coupon' => [ 'list_fetched' => 'Coupon list retrieved successfully.', 'list_fetch_failed' => 'Failed to retrieve coupon list.', 'available_fetched' => 'Available coupons retrieved successfully.', 'available_fetch_failed' => 'Failed to retrieve available coupons.', 'download_success' => 'Coupon downloaded successfully.', 'download_failed' => 'Failed to download coupon.', 'downloadable_fetched' => 'Downloadable coupons fetched.', 'downloadable_fetch_failed' => 'Failed to fetch downloadable coupons.', 'already_downloaded' => 'Coupon already downloaded.', 'download_limit_exceeded' => 'Download limit exceeded.', 'not_downloadable' => 'This coupon is not available for download.', 'quantity_exhausted' => 'Coupon quantity exhausted.', 'issue_period_expired' => 'Coupon issue period has ended.', 'validity_not_configured' => 'This coupon cannot be issued because its validity period is not configured. Please contact the administrator.', // Coupon validation errors (DTO/ValidationError) 'expired' => 'This coupon has expired.', 'min_amount_not_met' => 'Minimum order amount not met.', 'not_combinable' => 'This coupon cannot be used with other coupons.', 'invalid_target' => 'This coupon is not applicable to the selected products.', 'already_used' => 'This coupon has already been used.', 'not_found' => 'Coupon not found.', 'per_user_limit_exceeded' => 'You have exceeded the usage limit for this coupon.', ], // User Mileage Messages (마이페이지/체크아웃용) 'mileage' => [ 'balance_fetched' => 'Mileage balance retrieved successfully.', 'balance_fetch_failed' => 'Failed to retrieve mileage balance.', 'max_usable_fetched' => 'Maximum usable mileage retrieved successfully.', 'max_usable_fetch_failed' => 'Failed to retrieve usable mileage.', 'list_retrieved' => 'Mileage history retrieved successfully.', 'transaction_created' => 'Mileage transaction processed successfully.', 'transaction_updated' => 'Mileage transaction updated successfully.', 'expiry_extended' => 'Mileage expiry extended successfully.', 'linked_retrieved' => 'Linked transactions retrieved successfully.', 'not_found' => 'Mileage transaction not found.', 'validation_failed' => 'Failed to process mileage.', 'not_earning' => 'Only earning transactions can be edited.', 'expiry_not_editable' => 'Expiry cannot be changed for already-expired or fully-used earnings.', 'expiry_before_earned' => 'Expiry cannot be earlier than the earned date.', ], // Temporary Order Messages 'temp_order' => [ 'created' => 'Order form has been created.', 'retrieved' => 'Order form retrieved successfully.', 'updated' => 'Order form has been updated.', 'deleted' => 'Order form has been deleted.', 'expired' => 'Order form has expired. Please try again.', 'extended' => 'Order form validity has been extended.', 'not_found' => 'Order form not found.', 'cleanup_completed' => ':count expired order forms have been cleaned up.', ], // Product Notice Template Messages 'notice_templates' => [ 'fetch_success' => 'Product notice template list retrieved successfully.', 'created' => 'Product notice template has been created.', 'updated' => 'Product notice template has been updated.', 'deleted' => 'Product notice template has been deleted.', 'copied' => 'Product notice template has been copied.', 'activated' => 'Product notice template has been activated.', 'deactivated' => 'Product notice template has been deactivated.', 'not_found' => 'Product notice template not found.', ], // Common Info Messages 'common_infos' => [ 'fetch_success' => 'Common info list retrieved successfully.', 'created' => 'Common info has been created.', 'updated' => 'Common info has been updated.', 'deleted' => 'Common info has been deleted.', 'not_found' => 'Common info not found.', 'activated' => 'Common info has been activated.', 'deactivated' => 'Common info has been deactivated.', ], // Shipping Carrier Messages 'shipping_carriers' => [ 'list_retrieved' => 'Shipping carrier list retrieved successfully.', 'retrieved' => 'Shipping carrier retrieved successfully.', 'not_found' => 'Shipping carrier not found.', 'created' => 'Shipping carrier has been created.', 'updated' => 'Shipping carrier has been updated.', 'deleted' => 'Shipping carrier has been deleted.', 'toggled' => 'Shipping carrier status has been changed.', 'status_changed' => 'Shipping carrier status has been changed.', 'delete_failed_in_use' => 'Cannot delete a carrier in use by orders. We recommend deactivating it instead.', 'type_domestic' => 'Domestic', 'type_international' => 'International', // Shipping Settings Tab - Carrier Management Section 'section_title' => 'Carrier Management', 'add_button' => 'Add Carrier', 'empty' => 'No carriers registered.', 'columns' => [ 'code' => 'Code', 'name' => 'Name', 'type' => 'Type', 'tracking_url' => 'Tracking URL', 'is_active' => 'Active', 'actions' => 'Actions', ], 'form' => [ 'code' => 'Carrier Code', 'code_placeholder' => 'Lowercase letters, numbers, hyphens (e.g., cj, fedex)', 'name' => 'Carrier Name', 'type' => 'Type', 'type_domestic' => 'Domestic', 'type_international' => 'International', 'tracking_url' => 'Tracking URL', 'tracking_url_placeholder' => 'https://example.com/track?no={tracking_number}', 'tracking_url_help' => '{tracking_number} will be replaced with the tracking number.', 'is_active' => 'Active', 'sort_order' => 'Sort Order', 'cancel' => 'Cancel', 'save' => 'Save', ], 'confirm_delete' => 'Are you sure you want to delete this carrier?', ], // Claim Reason Messages 'claim_reasons' => [ 'list_retrieved' => 'Claim reason list retrieved successfully.', 'retrieved' => 'Claim reason retrieved successfully.', 'not_found' => 'Claim reason not found.', 'created' => 'Claim reason has been created.', 'updated' => 'Claim reason has been updated.', 'deleted' => 'Claim reason has been deleted.', 'toggled' => 'Claim reason status has been changed.', 'delete_failed_in_use' => 'Cannot delete a reason in use by order cancellations. We recommend deactivating it instead.', ], // Shipping Policy Messages 'shipping_policy' => [ 'list_retrieved' => 'Shipping policy list retrieved successfully.', 'retrieved' => 'Shipping policy retrieved successfully.', 'not_found' => 'Shipping policy not found.', 'created' => 'Shipping policy has been created.', 'updated' => 'Shipping policy has been updated.', 'deleted' => 'Shipping policy has been deleted.', 'toggled' => 'Shipping policy status has been changed.', 'copied' => 'Shipping policy has been copied.', 'bulk_deleted' => ':count shipping policies have been deleted.', 'active_list_retrieved' => 'Active shipping policy list retrieved successfully.', 'bulk_toggled' => ':count shipping policies status have been changed.', 'set_default_success' => 'Default shipping policy has been set.', 'api_test_done' => 'Calculation API test call completed.', 'fee_summary' => [ 'free' => 'Free Shipping', 'fixed' => 'Shipping: :fee', 'conditional' => 'Under :threshold: :fee / Over :threshold: Free', 'api' => 'External API (Real-time calculation)', 'per_quantity' => ':fee per :unit items', 'per_weight' => ':fee per :unit kg', 'per_volume' => ':fee per :unit L', 'per_volume_weight' => ':fee per :unit kg', 'per_amount' => ':fee per :unit', // Tier boundary units for range policies (derived from the charge policy, not stored data) 'range_unit' => [ 'quantity' => ' items', 'weight' => ' kg', 'volume' => ' L', ], ], 'fee_details' => [ 'base_fee' => 'Shipping Fee', 'free_threshold' => 'Free Shipping Threshold', 'range_header' => 'Tiered Shipping Fees', 'extra_fee' => 'Extra Fee (Remote Areas)', ], ], // Admin UI i18n (for layouts) 'admin' => [ 'order' => [ 'title' => 'Order Management', 'description' => 'Manage customer orders.', // Action buttons 'action' => [ 'excel_download' => 'Download Excel', 'reset' => 'Reset', 'save_preset' => 'Save Preset', 'search' => 'Search', 'search_by_orderer' => 'Search by Orderer', 'view_detail' => 'View Detail', 'view_member' => 'View Member', ], // Batch change 'batch' => [ 'batch_change' => 'Batch Change', 'carrier' => 'Carrier', 'selected_count' => ':count selected', 'shipping_process' => 'Process Shipping', 'status_change' => 'Change Status', 'tracking_number' => 'Tracking Number', ], // Bulk action 'bulk' => [ 'apply' => 'Apply', 'apply_full' => 'Apply All', 'courier_placeholder' => 'Select Carrier', 'selected_count' => ':count selected', 'shipping_label' => 'Shipping Info', 'status_placeholder' => 'Select Status', 'success' => 'Bulk action completed successfully.', 'tracking_placeholder' => 'Enter Tracking Number', ], // Claim status 'claim' => [ 'exchange' => [ 'approved' => 'Exchange Approved', 'completed' => 'Exchange Completed', 'hold' => 'Exchange Hold', 'payment_pending' => 'Additional Payment Pending', 'pickup_completed' => 'Pickup Completed', 'pickup_in_progress' => 'Pickup In Progress', 'rejected' => 'Exchange Rejected', 'requested' => 'Exchange Requested', 'reshipping' => 'Reshipping', 'reshipping_completed' => 'Reshipping Completed', ], 'refund' => [ 'approved' => 'Refund Approved', 'completed' => 'Refund Completed', 'hold' => 'Refund Hold', 'rejected' => 'Refund Rejected', 'requested' => 'Refund Requested', ], 'return' => [ 'approved' => 'Return Approved', 'completed' => 'Return Completed', 'hold' => 'Return Hold', 'payment_pending' => 'Additional Payment Pending', 'pickup_completed' => 'Pickup Completed', 'pickup_in_progress' => 'Pickup In Progress', 'rejected' => 'Return Rejected', 'requested' => 'Return Requested', ], ], // Columns 'column' => [ 'country' => 'Country', 'delivery_method' => 'Delivery Method', 'order_amount' => 'Order Amount', 'order_date' => 'Order Date', 'order_number' => 'Order Number', 'order_status' => 'Order Status', 'orderer' => 'Orderer', 'payment_method' => 'Payment Method', 'product' => 'Product Info', ], // DataGrid 'datagrid' => [ 'total_count' => 'Total :count', ], // Detail page 'detail' => [ 'title' => 'Order Detail', 'description' => 'View order details.', 'order_date' => 'Order Date', 'order_number' => 'Order Number', 'status' => 'Order Status', // Claim history 'claim_history' => [ 'title' => 'Claim History', 'items_count' => ':count items', 'per_page' => ':count per page', 'view_exchange_management' => 'View Exchange Management', 'view_refund_management' => 'View Refund Management', 'view_return_management' => 'View Return Management', 'tabs' => [ 'exchange' => 'Exchange', 'refund' => 'Refund', 'return' => 'Return', ], 'columns' => [ 'amount_info' => 'Amount Info', 'exchange_number' => 'Exchange No.', 'exchange_reason' => 'Exchange Reason', 'exchange_status' => 'Exchange Status', 'product_info' => 'Product Info', 'quantity' => 'Qty', 'refund_method' => 'Refund Method', 'refund_number' => 'Refund No.', 'refund_reason' => 'Refund Reason', 'refund_status' => 'Refund Status', 'request_date' => 'Request Date', 'return_number' => 'Return No.', 'return_reason' => 'Return Reason', 'return_status' => 'Return Status', ], 'amount' => [ 'actual_price' => 'Actual Price', 'actual_refund' => 'Actual Refund', 'difference' => 'Difference', 'expected_refund' => 'Expected Refund', 'original_order' => 'Original Amount', 'return_request' => 'Return Request Amount', ], 'delivery' => [ 'carrier' => 'Carrier', 'pickup_fee' => 'Pickup Fee', 'round_trip_fee' => 'Round Trip Fee', 'tracking_number' => 'Tracking Number', ], 'method' => [ 'deposit' => 'Bank Deposit', 'direct_refund' => 'Direct Refund', ], 'product' => [ 'color' => 'Color', 'exchange_product' => 'Exchange Product', 'original_product' => 'Original Product', 'same_product' => 'Same Product', 'size' => 'Size', ], 'reason' => [ 'customer_fault' => 'Customer Request', 'defective_product' => 'Defective', 'seller_fault' => 'Seller Fault', 'simple_change' => 'Simple Change', 'size_exchange' => 'Size Exchange', 'wrong_color' => 'Wrong Color', ], 'sort' => [ 'label' => 'Sort', 'request_date_desc' => 'Latest Request', ], 'status' => [ 'exchange_completed' => 'Exchange Completed', 'exchange_shipping' => 'Exchange Shipping', 'refund_hold' => 'Refund Hold', 'refund_rejected' => 'Refund Rejected', 'return_completed' => 'Return Completed', 'return_pickup_in_progress' => 'Return Pickup In Progress', ], ], // Modal 'modal' => [ 'batch_change' => [ 'cancel' => 'Cancel', 'carrier_label' => 'Carrier', 'confirm' => 'Confirm', 'confirm_prefix' => 'Are you sure you want to batch change', 'confirm_suffix' => 'orders?', 'title' => 'Batch Change', 'tracking_label' => 'Tracking Number', ], 'send_email' => [ 'cancel' => 'Cancel', 'char_count' => ':count chars', 'description' => 'Send email to customer.', 'email' => 'Email', 'email_placeholder' => 'Enter email address', 'message' => 'Message', 'message_placeholder' => 'Enter email message', 'send' => 'Send', 'title' => 'Send Email', ], 'send_sms' => [ 'cancel' => 'Cancel', 'char_count' => ':count chars', 'description' => 'Send SMS to customer.', 'message' => 'Message', 'message_placeholder' => 'Enter SMS message', 'phone' => 'Phone', 'phone_placeholder' => 'Enter phone number', 'plugin_label' => 'SMS Plugin', 'send' => 'Send', 'title' => 'Send SMS', ], 'cancel' => [ 'title' => 'Cancel Order', 'description' => 'Cancel the order for selected products. Please review the estimated refund amount before proceeding.', 'cancel_pg' => 'Cancel PG payment as well', 'cancel_pg_hint' => 'If unchecked, only the order status will be changed without PG cancellation.', 'reason' => 'Cancel Reason', 'reason_placeholder' => 'Select a cancel reason', 'reason_detail' => 'Detailed Reason', 'reason_detail_placeholder' => 'Enter detailed reason (optional)', 'refund_estimate' => 'Estimated Refund', 'refund_loading' => 'Calculating refund amount...', 'refund_product_amount' => 'Product Refund', 'refund_shipping_diff' => 'Shipping Difference', 'refund_discount_diff' => 'Discount Adjustment', 'refund_points' => 'Points Refund', 'refund_total' => 'Total Estimated Refund', 'confirm' => 'Cancel Order', 'close' => 'Close', 'product_name' => 'Product', 'unit_price' => 'Unit Price', 'cancel_quantity' => 'Cancel Qty', 'current_status' => 'Status', 'pg_error_title' => 'PG Refund Error', 'validation_error_title' => 'Validation Error', 'cancel_success' => 'Order has been cancelled.', 'cancel_failed' => 'Failed to cancel order.', 'estimate_failed' => 'Failed to calculate estimated refund.', ], ], // Order info 'order_info' => [ 'title' => 'Order Information', 'order_products' => 'Order Products', 'save' => 'Save', 'select_all' => 'Select All', 'selected_count' => ':count selected', 'batch_change' => 'Batch Change', 'carrier' => 'Carrier', 'change_status' => 'Change Status', 'tracking_number' => 'Tracking Number', 'admin_memo' => [ 'placeholder' => 'Enter admin memo', 'title' => 'Admin Memo', ], 'columns' => [ 'actual_price' => 'Actual Price', 'delivery' => 'Delivery Info', 'discount' => 'Discount', 'points' => 'Points', 'price' => 'Price', 'product_info' => 'Product Info', 'quantity' => 'Qty', 'status' => 'Status', 'subtotal' => 'Subtotal', ], 'orderer_info' => [ 'email' => 'Email', 'name' => 'Name', 'phone' => 'Phone', 'send' => 'Send', 'tel' => 'Tel', 'title' => 'Orderer Info', ], 'receiver_info' => [ 'address' => 'Address', 'address_detail' => 'Address Detail', 'delivery_message' => 'Delivery Message', 'find_zipcode' => 'Find Zipcode', 'name' => 'Recipient', 'phone' => 'Phone', 'send' => 'Send', 'tel' => 'Tel', 'title' => 'Recipient Info', 'zipcode' => 'Zipcode', ], 'summary' => [ 'total' => 'Total', ], ], // Payment info 'payment_info' => [ 'title' => 'Payment Information', 'coupon' => 'Coupon Discount', 'deposit_used' => 'Deposit Used', 'discount_code' => 'Discount Code', 'due_date' => 'Due Date', 'event' => 'Event', 'expected_points' => 'Expected Points', 'final_amount' => 'Final Amount', 'mileage_used' => 'Mileage Used', 'order_amount' => 'Order Amount', 'payment_date' => 'Payment Date', 'payment_method' => 'Payment Method', 'payment_request_date' => 'Payment Request Date', 'referral' => 'Referral', 'shipping_fee' => 'Shipping Fee', 'taxable_amount' => 'Taxable Amount', 'total_discount' => 'Total Discount', 'vat' => 'VAT', 'method' => [ 'bank_transfer' => 'Bank Transfer', 'credit_card' => 'Credit Card', 'virtual_account' => 'Virtual Account', ], 'status' => [ 'completed' => 'Completed', 'pending' => 'Pending', ], 'type' => [ 'additional_shipping' => 'Additional Shipping', 'admin_manual' => 'Admin Adjustment', 'original' => 'Original Order', ], ], // Activity log 'activity_log' => [ 'title' => 'Activity Log', 'items_count' => ':count items', 'per_page_option' => ':count items', 'sort' => [ 'date_desc' => 'Latest', 'date_asc' => 'Oldest', 'label' => 'Sort', ], ], ], // Excel download 'excel' => [ 'title' => 'Download Excel', 'description' => 'Download order list as Excel file.', 'download' => 'Download', 'download_success' => 'Excel file has been created.', 'option_search' => 'Search Results', 'option_search_desc' => 'Download orders matching current search criteria.', 'option_selected' => 'Selected Items', 'option_selected_desc' => 'Download selected orders only.', ], // Filter 'filter' => [ 'category' => 'Category', 'category_level' => 'Level :level', 'category_placeholder' => 'Select Category', 'claim_exchange' => 'Exchange Status', 'claim_exchange_options' => [ 'approved' => 'Approved', 'completed' => 'Completed', 'hold' => 'Hold', 'payment_pending' => 'Payment Pending', 'pickup_completed' => 'Pickup Completed', 'pickup_in_progress' => 'Pickup In Progress', 'rejected' => 'Rejected', 'requested' => 'Requested', 'reshipping' => 'Reshipping', 'reshipping_completed' => 'Reshipping Completed', ], 'claim_mode' => 'Claim Mode', 'claim_module_link' => 'Go to Claim Module', 'claim_refund' => 'Refund Status', 'claim_refund_options' => [ 'approved' => 'Approved', 'completed' => 'Completed', 'hold' => 'Hold', 'rejected' => 'Rejected', 'requested' => 'Requested', ], 'claim_return' => 'Return Status', 'claim_return_options' => [ 'approved' => 'Approved', 'completed' => 'Completed', 'hold' => 'Hold', 'payment_pending' => 'Payment Pending', 'pickup_completed' => 'Pickup Completed', 'pickup_in_progress' => 'Pickup In Progress', 'rejected' => 'Rejected', 'requested' => 'Requested', ], 'claim_status' => 'Claim Status', 'country' => 'Country', 'country_options' => [ 'cn' => 'China', 'jp' => 'Japan', 'kr' => 'South Korea', 'ru' => 'Russia', 'tw' => 'Taiwan', 'us' => 'United States', ], 'currency' => 'Currency', 'date' => 'Date', 'date_quick' => [ '1_month' => '1 Month', '1_year' => '1 Year', '3_months' => '3 Months', '6_months' => '6 Months', 'today' => 'Today', 'week' => '1 Week', ], 'date_type' => [ 'order_date' => 'Order Date', 'payment_date' => 'Payment Date', 'shipping_date' => 'Shipping Date', ], 'delivery_method' => 'Delivery Method', 'delivery_options' => [ 'direct' => 'Direct Delivery', 'mail' => 'Registered Mail', 'parcel' => 'Parcel', 'pickup' => 'Pickup', 'quick' => 'Quick Delivery', ], 'detail_title' => 'Advanced Search', 'device' => 'Device', 'device_options' => [ 'mobile' => 'Mobile', 'pc' => 'PC', ], 'end_date' => 'End Date', 'max_price' => 'Max Price', 'min_price' => 'Min Price', 'order_status' => 'Order Status', 'order_status_options' => [ 'cancelled' => 'Cancelled', 'confirmed' => 'Confirmed', 'delivered' => 'Delivered', 'payment_complete' => 'Payment Complete', 'payment_pending' => 'Payment Pending', 'preparing' => 'Preparing', 'shipping' => 'Shipping', 'shipping_hold' => 'Shipping Hold', 'shipping_ready' => 'Shipping Ready', 'waiting' => 'Order Received', ], 'payment_method' => 'Payment Method', 'payment_options' => [ 'bank' => 'Bank Transfer', 'card' => 'Credit Card', 'kakao' => 'Kakao Pay', 'naver' => 'Naver Pay', 'toss' => 'Toss Pay', 'virtual' => 'Virtual Account', ], 'price' => 'Order Amount', 'start_date' => 'Start Date', ], // Message 'message' => [ 'no_orders' => 'No orders found.', ], // Mobile 'mobile' => [ 'country' => 'Country', 'orderer' => 'Orderer', 'payment_delivery' => 'Payment/Delivery', ], // Modal 'modal' => [ 'excel_download' => [ 'cancel' => 'Cancel', 'description' => 'Download order list as Excel file.', 'download' => 'Download', 'option_search' => 'Search Results', 'option_search_desc' => 'Download orders matching current search criteria.', 'option_selected' => 'Selected Items', 'option_selected_desc' => 'Download selected orders only.', 'title' => 'Download Excel', ], 'preset_delete' => [ 'confirm' => 'Are you sure you want to delete ":name" preset?', 'title' => 'Delete Preset', ], 'preset_edit' => [ 'title' => 'Edit Preset', ], 'preset_manage' => [ 'add_new' => 'Add New Preset', 'add_preset' => 'Add Preset', 'description' => 'Save and manage frequently used search conditions.', 'empty' => 'No saved presets.', 'title' => 'Manage Presets', ], 'preset_save' => [ 'description' => 'Save current search conditions as a preset.', 'placeholder' => 'Enter preset name', 'save' => 'Save', 'title' => 'Save Preset', ], ], // Preset 'preset' => [ 'applied' => ':name preset has been applied.', 'bank_pending' => 'Bank Transfer Pending', 'label' => 'Presets', 'more' => 'More', 'save_title' => 'Save Preset', 'today_payment' => 'Today Payment Complete', ], // Search 'search' => [ 'column_select' => 'Select Columns', 'detail_search' => 'Advanced Search', 'edit_search' => 'Edit Search', 'field' => [ 'all' => 'All', 'email' => 'Email', 'order_number' => 'Order Number', 'orderer_name' => 'Orderer Name', 'phone' => 'Phone', 'product_name' => 'Product Name', 'receiver_name' => 'Recipient Name', ], 'placeholder' => 'Enter search keyword', 'preset_manage' => 'Manage Presets', ], // Sort 'sort' => [ 'highest_amount' => 'Highest Amount', 'latest_order' => 'Latest Order', 'latest_payment' => 'Latest Payment', 'latest_shipping' => 'Latest Shipping', 'lowest_amount' => 'Lowest Amount', 'oldest_order' => 'Oldest Order', 'oldest_payment' => 'Oldest Payment', 'oldest_shipping' => 'Oldest Shipping', ], // Status 'status' => [ 'cancelled' => 'Cancelled', 'confirmed' => 'Confirmed', 'delivered' => 'Delivered', 'payment_complete' => 'Payment Complete', 'payment_pending' => 'Payment Pending', 'preparing' => 'Preparing', 'shipping' => 'Shipping', 'shipping_hold' => 'Shipping Hold', 'shipping_ready' => 'Shipping Ready', 'waiting' => 'Order Received', ], // Table 'table' => [ 'columns' => [ 'actions' => 'Actions', 'country' => 'Country', 'delivery_method' => 'Delivery Method', 'order_amount' => 'Order Amount', 'order_date' => 'Order Date', 'order_number' => 'Order Number', 'order_status' => 'Order Status', 'orderer' => 'Orderer', 'payment_method' => 'Payment Method', 'product' => 'Product Info', ], 'excel_download' => 'Download Excel', 'per_page' => ':count per page', 'sort' => [ 'amount_high' => 'Highest Amount', 'amount_low' => 'Lowest Amount', 'latest' => 'Latest', 'oldest' => 'Oldest', ], 'total_count' => 'Total :count', ], ], 'shipping_policy' => [ 'table' => [ 'column' => [ 'is_default' => 'Default', 'is_default_header' => 'Default', ], ], 'modal' => [ 'set_default' => [ 'title' => 'Set Default Shipping Policy', 'message' => 'Set :name as default shipping policy?', 'confirm' => 'Set', 'cancel' => 'Cancel', 'success' => 'Default shipping policy has been set.', ], ], ], 'product' => [ 'bulk' => [ 'no_selection' => 'No items selected.', 'update_success' => ':products products and :options options have been updated.', 'update_error' => 'Bulk update failed.', 'option_update_success' => ':count options have been updated.', 'option_update_error' => 'Option bulk update failed.', ], 'messages' => [ 'bulk_summary_sales_status' => 'Sales status: :status', 'bulk_summary_display_status' => 'Display status: :status', 'bulk_summary_name_changed' => 'Name changed', 'bulk_summary_list_price' => 'List price: :price', 'bulk_summary_selling_price' => 'Selling price: :price', 'bulk_summary_inline_modified' => 'Inline modified', 'bulk_summary_bulk_applied' => 'Bulk changes applied', 'bulk_summary_price_adjustment' => 'Price adjustment: :method :value', 'bulk_summary_stock' => 'Stock: :method :value', 'bulk_summary_option_name' => 'Option name: :name', 'bulk_summary_sku' => 'SKU: :sku', 'bulk_summary_selected' => 'Selected', ], ], ], // Activity Log Messages 'logs' => [ 'product_created' => 'Product Created', 'product_deleted' => 'Product Deleted', 'description_changed' => 'Description changed: :old_length chars → :new_length chars', 'category_changed' => 'Category changed', 'options_changed' => 'Product options changed', 'additional_options_changed' => 'Additional options changed', 'images_added' => ':count image(s) added', 'images_removed' => ':count image(s) removed', 'set' => 'set', 'removed' => 'removed', 'changed' => 'changed', ], // Stock messages 'stock' => [ 'insufficient' => 'Insufficient stock for :product_name (:option_name). (Available: :available, Requested: :requested)', 'option_not_found' => 'Product option not found. (Option ID: :option_id)', ], // Product Review Messages 'reviews' => [ 'fetch_success' => 'Reviews retrieved successfully.', 'fetch_failed' => 'Failed to retrieve reviews.', 'created' => 'Review has been created.', 'create_failed' => 'Failed to create review.', 'can_write_checked' => 'Review eligibility checked.', 'can_write_check_failed' => 'Failed to check review eligibility.', 'cannot_write' => 'Cannot write a review. (Reason: :reason)', 'forbidden' => 'You do not have permission.', 'deleted' => 'Review has been deleted.', 'delete_failed' => 'Failed to delete review.', 'updated' => 'Review has been updated.', 'update_failed' => 'Failed to update review.', 'reply_saved' => 'Reply has been saved.', 'reply_save_failed' => 'Failed to save reply.', 'reply_deleted' => 'Reply has been deleted.', 'reply_delete_failed' => 'Failed to delete reply.', 'bulk_deleted' => 'Selected reviews have been deleted.', 'bulk_updated' => 'Status of selected reviews has been changed.', 'bulk_failed' => 'Bulk operation failed.', 'image_uploaded' => 'Review image has been uploaded.', 'image_upload_failed' => 'Failed to upload review image.', 'image_deleted' => 'Review image has been deleted.', 'image_delete_failed' => 'Failed to delete review image.', 'image_not_found' => 'Image not found.', ], 'wishlist' => [ 'added' => 'Product has been added to wishlist.', 'removed' => 'Product has been removed from wishlist.', 'retrieved' => 'Wishlist retrieved successfully.', 'not_found' => 'Wishlist item not found.', 'toggle_failed' => 'Failed to toggle wishlist.', 'retrieve_failed' => 'Failed to retrieve wishlist.', 'delete_failed' => 'Failed to delete wishlist item.', ], 'extra_fee_template' => [ 'list_retrieved' => 'Extra fee templates retrieved successfully.', 'retrieved' => 'Extra fee template retrieved successfully.', 'not_found' => 'Extra fee template not found.', 'created' => 'Extra fee template has been created.', 'updated' => 'Extra fee template has been updated.', 'deleted' => 'Extra fee template has been deleted.', 'toggled' => 'Extra fee template status has been changed.', 'bulk_deleted' => ':count extra fee templates have been deleted.', 'bulk_toggled' => ':count extra fee templates status have been changed.', 'bulk_created' => ':count extra fee templates have been created.', 'settings_retrieved' => 'Active extra fee template settings retrieved successfully.', ], // Product 1:1 Inquiries 'inquiries' => [ 'fetch_success' => 'Inquiry list retrieved successfully.', 'fetch_failed' => 'Failed to retrieve inquiry list.', 'created' => 'Your inquiry has been submitted.', 'create_failed' => 'Failed to submit inquiry.', 'updated' => 'Your inquiry has been updated.', 'update_failed' => 'Failed to update inquiry.', 'deleted' => 'Inquiry has been deleted.', 'delete_failed' => 'Failed to delete inquiry.', 'not_found' => 'Inquiry not found.', 'forbidden' => 'You do not have permission for this inquiry.', 'board_not_configured' => 'Inquiry board is not configured.', 'board_unavailable' => 'Board module is unavailable. Please contact the administrator.', 'board_changed' => 'The board configuration has changed and the post could not be found. Please contact the administrator.', 'reply_created' => 'Reply has been submitted.', 'reply_failed' => 'Failed to submit reply.', 'reply_updated' => 'Reply has been updated.', 'reply_update_failed' => 'Failed to update reply.', 'reply_deleted' => 'Reply has been deleted.', 'reply_delete_failed' => 'Failed to delete reply.', 'reply_not_found' => 'Reply not found.', // 서비스가 던진 사유를 그대로 덧붙여, 실패 원인을 서버 기록 없이도 알 수 있게 한다 'operation_failed_reason' => ':reason', ], // User addresses 'address' => [ 'created' => 'Address has been added.', 'create_failed' => 'Failed to add address.', 'updated' => 'Address has been updated.', 'update_failed' => 'Failed to update address.', 'deleted' => 'Address has been deleted.', 'delete_failed' => 'Failed to delete address.', 'not_found' => 'Address not found.', 'fetched' => 'Address retrieved.', 'fetch_failed' => 'Failed to retrieve address.', 'list_fetched' => 'Address list retrieved.', 'list_fetch_failed' => 'Failed to retrieve address list.', 'set_default' => 'Set as default address.', 'default_set' => 'Set as default address.', 'set_default_failed' => 'Failed to set default address.', 'name_duplicate' => 'An address with the same name already exists. Do you want to overwrite it?', 'auto_saved_label' => 'New Address', ], // Payment currency settings (A3) 'user_currency' => [ 'fetched' => 'Payment currency retrieved.', 'updated' => 'Payment currency updated.', 'update_failed' => 'Failed to update payment currency.', ], 'user_shipping_country' => [ 'fetched' => 'Shipping country retrieved.', 'updated' => 'Shipping country updated.', 'update_failed' => 'Failed to update shipping country.', ], // Dashboard 'dashboard' => [ 'fetch_success' => 'Dashboard data loaded.', ], ];