<?php
declare(strict_types=1);

return [
    'ACCOUNT_DISABLED' => '账号已被禁用，无法登录',
    'API_AUTH_TOKEN_SECRET is not configured' => '服务端未配置 API_AUTH_TOKEN_SECRET',
    'API_KEY is not configured' => '服务端未配置 API_KEY',
    'Please provide api-key' => '请携带 api-key',
    'Invalid api-key' => 'api-key 无效',
    'AUTH_TOKEN_EXPIRED' => 'auth-token 已过期',
    'AUTH_TOKEN_FORMAT_INVALID' => 'auth-token 格式无效',
    'AUTH_TOKEN_INVALID' => 'auth-token 无效',
    'AUTH_TOKEN_INVALID_OR_EXPIRED' => 'auth-token 无效或已失效',
    'AUTH_TOKEN_REQUIRED' => '请携带 auth-token',
    'Account is disabled and cannot log in' => '账号已被禁用，无法登录',
    'App type must be plugin or app' => '应用类型必须为plugin或者app',
    'BALANCE_LESS_THAN_MIN' => '当前玩家余额%s小于%s无法继续游戏',
    'BATCH_DELETE_FORBIDDEN' => '禁止批量删除操作',
    'BUY_TICKET_ERROR' => '购买抽奖券错误',
    'Balance %s is less than %s, cannot continue' => '当前玩家余额%s小于%s无法继续游戏',
    'Batch delete is not allowed' => '禁止批量删除操作',
    'CONFIG_ID_NOT_FOUND_OR_TIER_EMPTY' => '配置ID %s 不存在或档位为空',
    'Cannot open file or create file failed' => '无法打开文件，或者文件创建失败',
    'Cannot operate roles with higher level than current account' => '不能操作比当前账户职级高的角色',
    'Cannot set parent category as child of current' => '不能将上级分类设置为当前分类的子分类',
    'Cannot set parent department to a child of current department' => '不能将上级部门设置为当前部门的子部门',
    'Cannot set parent to self' => '不能设置父级为自身',
    'Chunk file not found, please upload again' => '切片文件查找失败，请重新上传',
    'Chunk upload must be called in HTTP request context' => '切片上传服务必须在 HTTP 请求环境下调用',
    'Coin change must be greater than 0' => '平台币变动必须大于 0',
    'Config data not found' => '配置数据未找到',
    'Config group not found' => '配置组未找到',
    'Counts only support 0, 100, 500, 1000, 5000' => '各抽奖次数仅支持 0、100、500、1000、5000',
    'Current table does not support recycle bin' => '当前表不支持回收站功能',
    'DATA_NOT_FOUND' => '数据不存在',
    'DIRECTION_INVALID' => 'direction 必须为 0 或 1',
    'Data not found' => '数据不存在',
    'Deduct amount cannot exceed current balance' => '扣点数量不能大于当前余额',
    'Delete data error, please check' => '删除数据异常，请检查',
    'Dict type not found' => '字典类型不存在',
    'FAIL' => '失败',
    'Failed to create image resource' => '创建图片资源失败',
    'Failed to generate token' => '生成 token 失败',
    'Failed to get file resource' => '获取文件资源失败',
    'Failed to get login credential, please check' => '登录凭获取失败，请检查',
    'Failed to read database config' => '数据库配置读取失败',
    'Failed to save file' => '文件保存失败',
    'File format not supported for upload' => '不支持该格式的文件上传',
    'File generation not allowed in non-debug mode' => '非调试模式下，不允许生成文件',
    'File not found' => '文件不存在',
    'File size exceeds limit' => '文件大小超过限制',
    'Free pool config not found' => '免费奖池配置不存在',
    'Free tier probabilities (T1–T5) sum cannot exceed 100%' => '免费档位概率 T1～T5 之和不能超过 100%',
    'Free tier probability must be between 0 and 100%' => '免费档位概率每档只能 0-100%',
    'Frontend directory not found, must be same level as backend' => '前端目录查找失败，必须与后端目录为同级目录！',
    'INSUFFICIENT_BALANCE' => '平台币不足',
    'INSUFFICIENT_TICKETS' => '抽奖券不足',
    'Import file error, please upload correct xlsx file' => '导入文件错误，请上传正确的文件格式xlsx',
    'Insufficient balance' => '平台币不足',
    'Insufficient balance to transfer' => '余额不足，无法转出',
    'Insufficient lottery tickets' => '抽奖券不足',
    'Invalid DiceReward id exists' => '存在无效的 DiceReward id',
    'Invalid config ID exists' => '存在无效的配置ID',
    'Invalid file format' => '文件格式错误',
    'Invalid file type, cannot generate file' => '文件类型异常，无法生成指定文件！',
    'Invalid lottery ticket purchase' => '购买抽奖券错误',
    'Invalid or expired token' => 'token 无效',
    'Invalid parameters' => '参数错误',
    'Invalid params: player_id and type are required (3=add, 4=deduct)' => '参数错误：需要有效的 player_id 和 type（3=加点，4=扣点）',
    'Invalid phone format, only +60 Malaysia numbers supported (e.g. +60123456789)' => '手机号格式错误，仅支持 +60 开头的马来西亚号码（如 +60123456789）',
    'Invalid secret' => '密钥错误',
    'Invalid task type' => '任务类型异常',
    'LOTTERY_CONFIG_NOT_FOUND' => '奖池配置不存在',
    'LOTTERY_POOL_CONFIG_DEFAULT_NOT_FOUND' => '未找到 name=default 的奖池配置，请先创建',
    'LOTTERY_POOL_CONFIG_NOT_FOUND_DEFAULT' => '奖池配置不存在（需 name=default）',
    'Logged out successfully' => '已退出登录',
    'Login credential verification failed' => '登录凭证校验失败',
    'Lottery pool config not found (name=default required)' => '奖池配置不存在（需 name=default）',
    'MSG_022FA411' => '应用类型必须为plugin或者app',
    'MSG_04BF8179' => '数据不存在',
    'MSG_06F06DA6' => 'token 无效',
    'MSG_0A17D195' => '付费档位概率每档只能 0-100%',
    'MSG_0A9A3E28' => '禁止批量删除操作',
    'MSG_0BCF9CBC' => '测试次数仅支持 100、500、1000、5000、10000',
    'MSG_0CBB8FF6' => '服务超时，',
    'MSG_0D49B785' => '原密码错误',
    'MSG_0FE75E2C' => '切片上传服务必须在 HTTP 请求环境下调用',
    'MSG_146A3F0D' => '字典类型不存在',
    'MSG_17740DB3' => 'token 格式无效',
    'MSG_1798E4D4' => '模板不存在',
    'MSG_19E651B8' => 'coin 不能为空',
    'MSG_1A499109' => '文件不存在',
    'MSG_1BB27051' => 'auth-token 已过期',
    'MSG_1C1718A6' => '插件已经存在',
    'MSG_2240AD6D' => 'auth-token 无效',
    'MSG_2273437E' => '当前玩家余额%s小于%s无法继续游戏',
    'MSG_22C6787F' => '切片文件查找失败，请重新上传',
    'MSG_25BF8A8D' => '扣点数量不能大于当前余额',
    'MSG_2830AE01' => '服务超时，没有原因',
    'MSG_2ED0C7A8' => '插件的基础配置信息错误',
    'MSG_2EE75A5E' => '系统生成文件错误',
    'MSG_2EFE74EE' => '非调试模式下，不允许生成文件',
    'MSG_2F100DB4' => '不能操作比当前账户职级高的角色',
    'MSG_334CE26A' => '没有权限操作该数据',
    'MSG_35FB9BA0' => '不支持该格式的文件上传',
    'MSG_381A19AE' => '该上传模式不存在',
    'MSG_3A4A6DE6' => 'username 不能为空',
    'MSG_3A4FF81F' => '没有权限操作该部门数据',
    'MSG_3C99F7F7' => '奖励配置为空，请先维护 dice_reward_config',
    'MSG_3DBFEA33' => '文件格式错误',
    'MSG_43C4D703' => '该部门下存在用户，请先删除或者转移用户',
    'MSG_47FDBDD0' => '配置组未找到',
    'MSG_4CA58C61' => '修改数据异常，请检查',
    'MSG_4F1D271A' => '存在无效的 DiceReward id',
    'MSG_521593FB' => '请先设置应用名称',
    'MSG_557E5109' => '获取文件资源失败',
    'MSG_559AAE0E' => '没有权限操作该角色数据',
    'MSG_560E6D91' => '该方向下暂无可用路径配置',
    'MSG_5643EE10' => '生成 token 失败',
    'MSG_569EC863' => '当前表不支持回收站功能',
    'MSG_56B44907' => '目标分类不存在',
    'MSG_5CE17D6B' => 'auth-token 无效或已失效',
    'MSG_5FF3A2BE' => '数据库配置读取失败',
    'MSG_609A300B' => '平台币不足',
    'MSG_60B9FC38' => '登录凭获取失败，请检查',
    'MSG_64A3C830' => '用户不存在',
    'MSG_67C66962' => '未找到 name=default 的奖池配置，请先创建',
    'MSG_6C16260B' => '免费未选择奖池配置时，请填写免费自定义档位概率（T1～T5）',
    'MSG_6CA924A1' => '奖池配置不存在（需 name=default）',
    'MSG_6F00DFB2' => 'success',
    'MSG_7310FDB8' => '前端目录查找失败，必须与后端目录为同级目录！',
    'MSG_74E3CB84' => '暂无可用奖励配置',
    'MSG_75C6A69F' => '请携带 auth-token',
    'MSG_7845F2E9' => '删除数据异常，请检查',
    'MSG_86272B49' => 'fail',
    'MSG_8865D363' => 'coin 不能为 0',
    'MSG_8B6AA32A' => '不能将上级分类设置为当前分类的子分类',
    'MSG_8C2E3CE6' => '请重新登录（当前账号已在其他处登录）',
    'MSG_8FDBA3F1' => '该字典标识已存在',
    'MSG_91272513' => '购买抽奖券错误',
    'MSG_94EE6593' => '该插件的安装目录已经被占用',
    'MSG_9501E2EF' => '余额不足，无法转出',
    'MSG_950B6072' => '配置数据未找到',
    'MSG_9A01DFBF' => '该插件的基础配置信息不完善',
    'MSG_9D195F25' => '账号已被禁用，无法登录',
    'MSG_9EE0801C' => '无法打开文件，或者文件创建失败',
    'MSG_9F6B51C8' => '文件类型异常，无法生成指定文件！',
    'MSG_A049A679' => '该分类下存在子分类，请先删除子分类',
    'MSG_A3165463' => '仅超级管理员能够操作',
    'MSG_A4FB6212' => '文件保存失败',
    'MSG_A6A8EA8F' => '插件目录不存在',
    'MSG_A72A7DC6' => '该部门下存在子部门，请先删除子部门',
    'MSG_A778ABB9' => 'auth-token 格式无效',
    'MSG_ADA80442' => '请重新登录',
    'MSG_AE73E6F3' => '服务端未配置 API_AUTH_TOKEN_SECRET',
    'MSG_B387239D' => '付费档位概率 T1～T5 之和不能超过 100%',
    'MSG_B5C2F2F6' => '各抽奖次数仅支持 0、100、500、1000、5000',
    'MSG_B5CD5C51' => '测试记录不存在',
    'MSG_B720629D' => 'username、password 不能为空',
    'MSG_BA173F12' => '付费或免费至少一种方向次数之和大于 0',
    'MSG_BAC2EFB0' => '上级部门和当前部门不能相同',
    'MSG_BB3C5A3F' => 'direction 必须为 0 或 1',
    'MSG_BBD3198A' => '参数错误：需要有效的 player_id 和 type（3=加点，4=扣点）',
    'MSG_BD8AD1D3' => '手机号格式错误，仅支持 +60 开头的马来西亚号码（如 +60123456789）',
    'MSG_BEB15D55' => '参数错误',
    'MSG_C2E4B3DC' => '任务类型异常',
    'MSG_C2F02095' => '抽奖券不足',
    'MSG_C3CB20DC' => '免费档位概率每档只能 0-100%',
    'MSG_C43809BC' => '操作失败：',
    'MSG_C548E557' => '缺少参数：agent_id、secret、time、signature 不能为空',
    'MSG_C5D5D5E1' => '不能将上级部门设置为当前部门的子部门',
    'MSG_C803EA6F' => '请注册',
    'MSG_C80C5EF5' => '创建图片资源失败',
    'MSG_C9BFC7E9' => '奖池配置不存在',
    'MSG_CDEA9DD8' => '您的登录凭证错误或者已过期，请重新登录',
    'MSG_D15C0759' => '密钥错误',
    'MSG_D1D1C0A0' => '模板目录不存在！',
    'MSG_D1E7769C' => '上级分类和当前分类不能相同',
    'MSG_D224020F' => '免费奖池配置不存在',
    'MSG_D75845B2' => '免费档位概率 T1～T5 之和不能超过 100%',
    'MSG_DB560C68' => '请执行 composer require phpmailer/phpmailer 并重启',
    'MSG_DEE31D19' => '时间戳已过期或无效，请同步时间',
    'MSG_DF93D5F9' => 'token 已过期，请重新登录',
    'MSG_E12FF883' => '文件大小超过限制',
    'MSG_E15B47C6' => '超级管理员禁止删除',
    'MSG_E1BFE655' => '未设置邮件配置',
    'MSG_E5849544' => '密码错误',
    'MSG_E66BC216' => '该菜单下存在子菜单，请先删除子菜单',
    'MSG_E6E6288B' => '系统默认分组，无法删除',
    'MSG_E84B2B0A' => '已退出登录',
    'MSG_E8C8EC80' => '存在无效的配置ID',
    'MSG_E96B26B9' => '平台币变动必须大于 0',
    'MSG_EEDAAC44' => '等待依赖安装',
    'MSG_F0F5F561' => '配置ID %s 不存在或档位为空',
    'MSG_F12E5DBA' => '奖励配置需覆盖 26 个格位（id 0-25 或 1-26），当前仅 %s 条，无法完整生成 5-30 共26个点数、顺时针与逆时针的奖励对照',
    'MSG_F2643E83' => '登录凭证校验失败',
    'MSG_F58CB5C8' => '该部门下存在子分类，请先删除子分类',
    'MSG_F5F9FF11' => '付费奖池配置不存在',
    'MSG_F7BBA776' => '没有原因',
    'MSG_F8EB5084' => '签名验证失败',
    'MSG_FA5FF202' => '不能设置父级为自身',
    'MSG_FB4C0ADF' => '请选择要生成的表',
    'MSG_FBC50B18' => '玩家不存在',
    'MSG_FC1E3345' => '导入文件错误，请上传正确的文件格式xlsx',
    'MSG_FDADA275' => '付费未选择奖池配置时，请填写付费自定义档位概率（T1～T5）',
    'MSG_FE1B67CA' => '请携带 token',
    'Mail config not set' => '未设置邮件配置',
    'Missing parameters: agent_id, secret, time, signature are required' => '缺少参数：agent_id、secret、time、signature 不能为空',
    'NO_AVAILABLE_REWARD_CONFIG' => '暂无可用奖励配置',
    'No available reward config' => '暂无可用奖励配置',
    'No name=default pool config found, please create one first' => '未找到 name=default 的奖池配置，请先创建',
    'No permission to operate department data' => '没有权限操作该部门数据',
    'No permission to operate role data' => '没有权限操作该角色数据',
    'No permission to operate this data' => '没有权限操作该数据',
    'OLD_PASSWORD_WRONG' => '原密码错误',
    'Old password is incorrect' => '原密码错误',
    'Only super admin can perform this action' => '仅超级管理员能够操作',
    'Operation failed: ' => '操作失败：',
    'PASSWORD_WRONG' => '密码错误',
    'Paid pool config not found' => '付费奖池配置不存在',
    'Paid tier probabilities (T1–T5) sum cannot exceed 100%' => '付费档位概率 T1～T5 之和不能超过 100%',
    'Paid tier probability must be between 0 and 100%' => '付费档位概率每档只能 0-100%',
    'Parent category cannot be the same as current' => '上级分类和当前分类不能相同',
    'Parent department cannot be the same as current department' => '上级部门和当前部门不能相同',
    'Player not found' => '玩家不存在',
    'Please login again' => '请重新登录',
    'Please login again (account logged in elsewhere)' => '请重新登录（当前账号已在其他处登录）',
    'Please provide auth-token' => '请携带 auth-token',
    'Please provide token' => '请携带 token',
    'Please register' => '请注册',
    'Please run composer require phpmailer/phpmailer and restart' => '请执行 composer require phpmailer/phpmailer 并重启',
    'Please select tables to generate' => '请选择要生成的表',
    'Please set app name first' => '请先设置应用名称',
    'Plugin already exists' => '插件已经存在',
    'Plugin base config is incomplete' => '该插件的基础配置信息不完善',
    'Plugin base config is invalid' => '插件的基础配置信息错误',
    'Plugin directory not found' => '插件目录不存在',
    'Plugin install directory is already occupied' => '该插件的安装目录已经被占用',
    'Reward config is empty, please maintain dice_reward_config first' => '奖励配置为空，请先维护 dice_reward_config',
    'SUCCESS' => '成功',
    'SUPER_ADMIN_CANNOT_DELETE' => '超级管理员禁止删除',
    'Service timeout: ' => '服务超时，',
    'Signature verification failed' => '签名验证失败',
    'Sum of paid/free direction counts must be greater than 0' => '付费或免费至少一种方向次数之和大于 0',
    'Super admin cannot be deleted' => '超级管理员禁止删除',
    'System default group cannot be deleted' => '系统默认分组，无法删除',
    'System file generation error' => '系统生成文件错误',
    'TOKEN_EXPIRED_RELOGIN' => 'token 已过期，请重新登录',
    'TOKEN_FORMAT_INVALID' => 'token 格式无效',
    'TOKEN_INVALID' => 'token 无效',
    'TOKEN_REQUIRED' => '请携带 token',
    'Target category not found' => '目标分类不存在',
    'Template directory not found' => '模板目录不存在！',
    'Template not found' => '模板不存在',
    'Test count only supports 100, 500, 1000, 5000, 10000' => '测试次数仅支持 100、500、1000、5000、10000',
    'Test record not found' => '测试记录不存在',
    'This category has sub-categories, please delete them first' => '该部门下存在子分类，请先删除子分类',
    'This department has sub-departments, please delete them first' => '该部门下存在子部门，请先删除子部门',
    'This department has users, please delete or transfer them first' => '该部门下存在用户，请先删除或者转移用户',
    'This channel has users, please delete or transfer them first' => '该渠道下存在用户，请先删除或者转移用户',
    'This dict code already exists' => '该字典标识已存在',
    'This menu has sub-menus, please delete them first' => '该菜单下存在子菜单，请先删除子菜单',
    'Timestamp expired or invalid, please sync time' => '时间戳已过期或无效，请同步时间',
    'Token expired, please login again' => 'token 已过期，请重新登录',
    'Token format invalid' => 'token 格式无效',
    'USERNAME_PASSWORD_REQUIRED' => 'username、password 不能为空',
    'USERNAME_REQUIRED' => 'username 不能为空',
    'USER_NOT_FOUND' => '用户不存在',
    'Update data error, please check' => '修改数据异常，请检查',
    'Upload mode not found' => '该上传模式不存在',
    'User not found' => '用户不存在',
    'Waiting for dependencies to be installed' => '等待依赖安装',
    'When free pool is not selected, please fill free custom tier probabilities (T1–T5)' => '免费未选择奖池配置时，请填写免费自定义档位概率（T1～T5）',
    'When paid pool is not selected, please fill paid custom tier probabilities (T1–T5)' => '付费未选择奖池配置时，请填写付费自定义档位概率（T1～T5）',
    'Wrong password' => '密码错误',
    'Your login credential is invalid or expired, please login again' => '您的登录凭证错误或者已过期，请重新登录',
    'add failed' => '添加失败',
    'add success' => '添加成功',
    'admin already installed, to reinstall please delete env file and restart' => '管理后台已经安装！如需重新安装，请删除根目录env配置文件并重启',
    'all test data cleared' => '已清空所有测试数据',
    'auth-token expired' => 'auth-token 已过期',
    'auth-token format invalid' => 'auth-token 格式无效',
    'auth-token invalid' => 'auth-token 无效',
    'auth-token invalid or expired' => 'auth-token 无效或已失效',
    'captcha error' => '验证码错误',
    'clean success' => '清理成功',
    'clear cache success' => '清除缓存成功!',
    'clear failed: ' => '清空失败：',
    'coin cannot be 0' => 'coin 不能为 0',
    'coin is required' => 'coin 不能为空',
    'connection refused, please check database ip/port and ensure database is running' => 'Connection refused. 请确认数据库IP端口是否正确，数据库已经启动',
    'create reward mapping success' => '创建奖励对照成功',
    'database SQL file not found' => '数据库SQL文件不存在',
    'database already installed, please do not install again' => '数据库已经安装，请勿重复安装',
    'database connection timeout, please check ip/port and firewall/security group rules' => '数据库连接超时，请确认数据库IP端口是否正确，安全组及防火墙已经放行端口',
    'database username or password is incorrect' => '数据库用户名或密码错误',
    'delete failed' => '删除失败',
    'delete success' => '删除成功',
    'direction must be 0 (clockwise) or 1 (counterclockwise)' => 'direction 必须为 0（顺时针）或 1（逆时针）',
    'direction must be 0 or 1' => 'direction 必须为 0 或 1',
    'download failed' => '下载失败',
    'download success, please install in plugin list' => '下载成功，请在插件列表中安装',
    'execute success' => '执行成功',
    'execution failed' => '执行失败',
    'file size cannot exceed 5M' => '文件大小不能超过5M',
    'import success' => '导入成功',
    'import success, refreshed DiceReward, DiceRewardConfig(BIGWIN), and pool config' => '导入成功，已刷新 DiceReward、DiceRewardConfig(BIGWIN)、奖池配置',
    'install success' => '安装成功',
    'invalid parameters, please check' => '参数错误，请检查',
    'login expired or invalid, please login again' => '登录已过期或用户信息无效，请重新登录',
    'missing parameter id' => '缺少参数 id',
    'missing parameter status' => '缺少参数 status',
    'missing player_id' => '缺少 player_id',
    'no permission to delete selected data' => '无权限删除所选数据',
    'no permission to operate this player' => '无权限操作该玩家',
    'no permission to update this record' => '无权限修改该记录',
    'no permission to view this record' => '无权限查看该记录',
    'not found' => '未查找到信息',
    'not logged in' => '未登录',
    'operation failed' => '操作失败',
    'operation success' => '操作成功',
    'operation type must be 3 (add) or 4 (deduct)' => '操作类型必须为 3=加点 或 4=扣点',
    'optimize success' => '优化成功',
    'parameter items must be an array' => '参数 items 必须为数组',
    'please input email' => '请输入邮箱',
    'please login first' => '请先登录',
    'please provide direction (0=clockwise, 1=counterclockwise)' => '请传入 direction（0=顺时针 1=逆时针）',
    'please provide record_id' => '请传入 record_id',
    'please select cache to delete' => '请选择要删除的缓存',
    'please select data to delete' => '请选择要删除的数据',
    'please select player' => '请选择玩家',
    'please specify test record' => '请指定测试记录',
    'record not found' => '记录不存在',
    'reload success' => '重载成功',
    'reset success' => '重置成功',
    'save success' => '保存成功',
    'send failed, please check logs' => '发送失败，请查看日志',
    'send success' => '发送成功',
    'super admin cannot reset password' => '超级管理员不允许重置密码',
    'test data cleared' => '已清空测试数据',
    'too many requests, please try again later' => '请求过于频繁，请稍后再试',
    'uninstall plugin success' => '卸载插件成功',
    'update failed' => '修改失败',
    'update success' => '修改成功',
    'upload failed, please upload zip file' => '文件格式上传失败,请选择zip格式文件上传',
    'upload file validation failed' => '上传文件校验失败',
    'uploaded file not found' => '未找到上传文件',
    'username is required' => 'username 不能为空',
    'version id is required' => '版本ID不能为空',
];
