修改原有框架中英文映射
This commit is contained in:
@@ -2,151 +2,38 @@
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* API 英文文案(请求头 lang=en 时使用)
|
||||
* key 为中文原文,value 为英文
|
||||
* API 英文文案(对外接口推荐:英文 key)
|
||||
* 请求头 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',
|
||||
// PlayStartLogic / GameLogic
|
||||
'抽奖券不足' => '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',
|
||||
// Dice / pool config
|
||||
'奖池配置不存在(需 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',
|
||||
// Dice / wallet & tickets
|
||||
'参数错误:需要有效的 player_id 和 type(3=加点,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',
|
||||
// Dice / reward config record
|
||||
'测试记录不存在' => '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',
|
||||
'付费未选择奖池配置时,请填写付费自定义档位概率(T1~T5)' => 'When paid pool is not selected, please fill paid custom tier probabilities (T1–T5)',
|
||||
'付费档位概率每档只能 0-100%' => 'Paid tier probability must be between 0 and 100%',
|
||||
'付费档位概率 T1~T5 之和不能超过 100%' => 'Paid tier probabilities (T1–T5) sum cannot exceed 100%',
|
||||
'免费未选择奖池配置时,请填写免费自定义档位概率(T1~T5)' => 'When free pool is not selected, please fill free custom tier probabilities (T1–T5)',
|
||||
'免费档位概率每档只能 0-100%' => 'Free tier probability must be between 0 and 100%',
|
||||
'免费档位概率 T1~T5 之和不能超过 100%' => 'Free tier probabilities (T1–T5) sum cannot exceed 100%',
|
||||
// Dice / reward
|
||||
'存在无效的配置ID' => 'Invalid config ID exists',
|
||||
'存在无效的 DiceReward id' => 'Invalid DiceReward id exists',
|
||||
'奖励配置为空,请先维护 dice_reward_config' => 'Reward config is empty, please maintain dice_reward_config first',
|
||||
// Dice / reward_config
|
||||
'测试次数仅支持 100、500、1000、5000、10000' => 'Test count only supports 100, 500, 1000, 5000, 10000',
|
||||
// SaiAdmin permissions & auth
|
||||
'没有权限操作该部门数据' => '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',
|
||||
// Saipackage install
|
||||
'插件的基础配置信息错误' => 'Plugin base config is invalid',
|
||||
'插件已经存在' => 'Plugin already exists',
|
||||
'该插件的安装目录已经被占用' => 'Plugin install directory is already occupied',
|
||||
'文件不存在' => 'File not found',
|
||||
// UserLogic
|
||||
'手机号格式错误,仅支持 +60 开头的马来西亚号码(如 +60123456789)' => 'Invalid phone format, only +60 Malaysia numbers supported (e.g. +60123456789)',
|
||||
// TokenMiddleware / Auth (api/user/*, api/game/*)
|
||||
'请携带 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)',
|
||||
// DiceRewardLogic 动态文案(占位符)
|
||||
'奖励配置需覆盖 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',
|
||||
// SystemUserLogic / BaseController 等(validate 等动态 message 无 key,保留原文)
|
||||
// CheckLogin
|
||||
// BaseLogic / Crontab / Menu / Post / Role / Dict / Config / Category / Attachment / Database
|
||||
'数据不存在' => '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 set parent to self',
|
||||
'该分类下存在子分类,请先删除子分类' => 'This category has sub-categories, please delete them first',
|
||||
'无法打开文件,或者文件创建失败' => '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',
|
||||
'SUCCESS' => 'Success',
|
||||
'FAIL' => 'Fail',
|
||||
'TOKEN_REQUIRED' => 'Please provide token',
|
||||
'TOKEN_INVALID' => 'Invalid or expired token',
|
||||
'TOKEN_EXPIRED_RELOGIN' => 'Token expired, please login again',
|
||||
'TOKEN_FORMAT_INVALID' => 'Token format invalid',
|
||||
'AUTH_TOKEN_REQUIRED' => 'Please provide auth-token',
|
||||
'AUTH_TOKEN_EXPIRED' => 'auth-token expired',
|
||||
'AUTH_TOKEN_INVALID' => 'auth-token invalid',
|
||||
'AUTH_TOKEN_FORMAT_INVALID' => 'auth-token format invalid',
|
||||
'AUTH_TOKEN_INVALID_OR_EXPIRED' => 'auth-token invalid or expired',
|
||||
'USER_NOT_FOUND' => 'User not found',
|
||||
'USERNAME_REQUIRED' => 'username is required',
|
||||
'USERNAME_PASSWORD_REQUIRED' => 'username and password are required',
|
||||
'PASSWORD_WRONG' => 'Wrong password',
|
||||
'ACCOUNT_DISABLED' => 'Account is disabled and cannot log in',
|
||||
'BUY_TICKET_ERROR' => 'Invalid lottery ticket purchase',
|
||||
'INSUFFICIENT_BALANCE' => 'Insufficient balance',
|
||||
'INSUFFICIENT_TICKETS' => 'Insufficient lottery tickets',
|
||||
'DIRECTION_INVALID' => 'direction must be 0 or 1',
|
||||
'BALANCE_LESS_THAN_MIN' => 'Balance %s is less than %s, cannot continue',
|
||||
'LOTTERY_CONFIG_NOT_FOUND' => 'Lottery config not found',
|
||||
'LOTTERY_POOL_CONFIG_NOT_FOUND_DEFAULT' => 'Lottery pool config not found (name=default required)',
|
||||
'LOTTERY_POOL_CONFIG_DEFAULT_NOT_FOUND' => 'No name=default pool config found, please create one first',
|
||||
'NO_AVAILABLE_REWARD_CONFIG' => 'No available reward config',
|
||||
'CONFIG_ID_NOT_FOUND_OR_TIER_EMPTY' => 'Config ID %s not found or tier is empty',
|
||||
'DATA_NOT_FOUND' => 'Data not found',
|
||||
'BATCH_DELETE_FORBIDDEN' => 'Batch delete is not allowed',
|
||||
'SUPER_ADMIN_CANNOT_DELETE' => 'Super admin cannot be deleted',
|
||||
'OLD_PASSWORD_WRONG' => 'Old password is incorrect',
|
||||
];
|
||||
|
||||
150
server/app/api/lang/legacy_en.php
Normal file
150
server/app/api/lang/legacy_en.php
Normal file
@@ -0,0 +1,150 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* 旧版兼容:中文 => 英文 映射表
|
||||
* 历史代码中大量直接抛中文/返回中文 message,lang=en 时用于兼容翻译。
|
||||
* 新版推荐使用英文错误码(key)+ resource/translations/api/{zh,en}.php。
|
||||
*/
|
||||
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',
|
||||
// PlayStartLogic / GameLogic
|
||||
'抽奖券不足' => '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',
|
||||
// Dice / pool config
|
||||
'奖池配置不存在(需 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',
|
||||
// Dice / wallet & tickets
|
||||
'参数错误:需要有效的 player_id 和 type(3=加点,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',
|
||||
// Dice / reward config record
|
||||
'测试记录不存在' => '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',
|
||||
'付费未选择奖池配置时,请填写付费自定义档位概率(T1~T5)' => 'When paid pool is not selected, please fill paid custom tier probabilities (T1–T5)',
|
||||
'付费档位概率每档只能 0-100%' => 'Paid tier probability must be between 0 and 100%',
|
||||
'付费档位概率 T1~T5 之和不能超过 100%' => 'Paid tier probabilities (T1–T5) sum cannot exceed 100%',
|
||||
'免费未选择奖池配置时,请填写免费自定义档位概率(T1~T5)' => 'When free pool is not selected, please fill free custom tier probabilities (T1–T5)',
|
||||
'免费档位概率每档只能 0-100%' => 'Free tier probability must be between 0 and 100%',
|
||||
'免费档位概率 T1~T5 之和不能超过 100%' => 'Free tier probabilities (T1–T5) sum cannot exceed 100%',
|
||||
// Dice / reward
|
||||
'存在无效的配置ID' => 'Invalid config ID exists',
|
||||
'存在无效的 DiceReward id' => 'Invalid DiceReward id exists',
|
||||
'奖励配置为空,请先维护 dice_reward_config' => 'Reward config is empty, please maintain dice_reward_config first',
|
||||
// Dice / reward_config
|
||||
'测试次数仅支持 100、500、1000、5000、10000' => 'Test count only supports 100, 500, 1000, 5000, 10000',
|
||||
// SaiAdmin permissions & auth
|
||||
'没有权限操作该部门数据' => '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',
|
||||
// Saipackage install
|
||||
'插件的基础配置信息错误' => 'Plugin base config is invalid',
|
||||
'插件已经存在' => 'Plugin already exists',
|
||||
'该插件的安装目录已经被占用' => 'Plugin install directory is already occupied',
|
||||
'文件不存在' => 'File not found',
|
||||
// UserLogic
|
||||
'手机号格式错误,仅支持 +60 开头的马来西亚号码(如 +60123456789)' => 'Invalid phone format, only +60 Malaysia numbers supported (e.g. +60123456789)',
|
||||
// TokenMiddleware / Auth (api/user/*, api/game/*)
|
||||
'请携带 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)',
|
||||
// DiceRewardLogic 动态文案(占位符)
|
||||
'奖励配置需覆盖 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',
|
||||
// 通用
|
||||
'数据不存在' => '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',
|
||||
'该分类下存在子分类,请先删除子分类' => 'This category has sub-categories, please delete them first',
|
||||
'无法打开文件,或者文件创建失败' => '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',
|
||||
];
|
||||
40
server/app/api/lang/zh.php
Normal file
40
server/app/api/lang/zh.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
/**
|
||||
* API 中文文案(对外接口推荐:英文 key)
|
||||
* 请求头 lang=zh 时使用,key 为英文错误码,value 为中文展示文案
|
||||
*/
|
||||
return [
|
||||
'SUCCESS' => '成功',
|
||||
'FAIL' => '失败',
|
||||
'TOKEN_REQUIRED' => '请携带 token',
|
||||
'TOKEN_INVALID' => 'token 无效',
|
||||
'TOKEN_EXPIRED_RELOGIN' => 'token 已过期,请重新登录',
|
||||
'TOKEN_FORMAT_INVALID' => 'token 格式无效',
|
||||
'AUTH_TOKEN_REQUIRED' => '请携带 auth-token',
|
||||
'AUTH_TOKEN_EXPIRED' => 'auth-token 已过期',
|
||||
'AUTH_TOKEN_INVALID' => 'auth-token 无效',
|
||||
'AUTH_TOKEN_FORMAT_INVALID' => 'auth-token 格式无效',
|
||||
'AUTH_TOKEN_INVALID_OR_EXPIRED' => 'auth-token 无效或已失效',
|
||||
'USER_NOT_FOUND' => '用户不存在',
|
||||
'USERNAME_REQUIRED' => 'username 不能为空',
|
||||
'USERNAME_PASSWORD_REQUIRED' => 'username、password 不能为空',
|
||||
'PASSWORD_WRONG' => '密码错误',
|
||||
'ACCOUNT_DISABLED' => '账号已被禁用,无法登录',
|
||||
'BUY_TICKET_ERROR' => '购买抽奖券错误',
|
||||
'INSUFFICIENT_BALANCE' => '平台币不足',
|
||||
'INSUFFICIENT_TICKETS' => '抽奖券不足',
|
||||
'DIRECTION_INVALID' => 'direction 必须为 0 或 1',
|
||||
'BALANCE_LESS_THAN_MIN' => '当前玩家余额%s小于%s无法继续游戏',
|
||||
'LOTTERY_CONFIG_NOT_FOUND' => '奖池配置不存在',
|
||||
'LOTTERY_POOL_CONFIG_NOT_FOUND_DEFAULT' => '奖池配置不存在(需 name=default)',
|
||||
'LOTTERY_POOL_CONFIG_DEFAULT_NOT_FOUND' => '未找到 name=default 的奖池配置,请先创建',
|
||||
'NO_AVAILABLE_REWARD_CONFIG' => '暂无可用奖励配置',
|
||||
'CONFIG_ID_NOT_FOUND_OR_TIER_EMPTY' => '配置ID %s 不存在或档位为空',
|
||||
'DATA_NOT_FOUND' => '数据不存在',
|
||||
'BATCH_DELETE_FORBIDDEN' => '禁止批量删除操作',
|
||||
'SUPER_ADMIN_CANNOT_DELETE' => '超级管理员禁止删除',
|
||||
'OLD_PASSWORD_WRONG' => '原密码错误',
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user