修改原有框架中英文映射

This commit is contained in:
2026-03-17 18:09:10 +08:00
parent e7b8f4cae9
commit bdf50e61f5
81 changed files with 1956 additions and 735 deletions

View File

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