| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247 |
- <?php
- namespace App\Console\Commands;
- use App\Module\System\Models\AdminMenu;
- use Illuminate\Console\Command;
- use Illuminate\Support\Str;
- class TranslateMenuTitles extends Command
- {
- /**
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'admin:translate-menu-titles {--fix : 是否修复菜单标题}';
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = '将菜单标题翻译为中文';
- /**
- * 英文标题到中文标题的映射
- *
- * @var array
- */
- protected $titleMap = [
- // 系统菜单
- '👑 Admin' => '👑 管理员',
- '🔰 Roles' => '🔰 角色管理',
- '🔒 Permission' => '🔒 权限管理',
- '📜 Menu' => '📜 菜单管理',
- '🧩 Extensions' => '🧩 扩展管理',
- '🔀 router' => '🔀 路由管理',
- '🔑 OAuth' => '🔑 OAuth认证',
- 'Tool' => '🛠️ 工具',
- 'Action Log' => '📝 操作日志',
- 'Notice Templete' => '📢 通知模板',
- // Activity模块
- 'Activity Condition' => '🔍 活动条件',
- 'Activity' => '🎯 活动',
- 'Activity Participation' => '👥 活动参与',
- 'User Activity Data' => '📊 用户活动数据',
- // Fund模块
- 'Fund Admin' => '💼 资金管理员',
- 'Fund Circulation' => '🔄 资金流通',
- 'Fund2' => '💰 资金2',
- // Farm模块
- 'Farm Crop' => '🌾 作物管理',
- 'Farm God Buff' => '🔮 神灵加持管理',
- 'Farm Harvest Log' => '📝 收获记录管理',
- 'Farm House Config' => '🏠 房屋等级配置',
- 'Farm Land' => '🌱 土地管理',
- 'Farm Land Type' => '🏞️ 土地类型配置',
- 'Farm Land Upgrade Config' => '⬆️ 土地升级配置',
- 'Farm Seed' => '🌱 种子配置管理',
- 'Farm Seed Output' => '🌽 种子产出配置',
- 'Farm Team Profit' => '💰 团队收益记录',
- 'Farm Upgrade Log' => '📈 升级记录管理',
- 'Farm User' => '👨🌾 用户农场管理',
- // Pet模块
- 'Pet Battle Log' => '⚔️ 宠物战斗记录',
- 'Pet Battle Season' => '🏆 争霸赛-赛季',
- 'Pet Battle Team' => '👥 争霸赛-队伍',
- 'Pet Battle Team Member' => '👤 争霸赛-队伍成员',
- 'Pet Config' => '🐾 宠物配置',
- 'Pet Level Config' => '📊 宠物-等级配置',
- 'Pet Remould Log' => '🔄 宠物洗髓记录',
- 'Pet Skill' => '✨ 宠物-技能配置',
- 'Pet Skill Log' => '📝 宠物-技能使用日志',
- 'Pet User' => '🐶 宠物管理',
- // Task模块
- 'Task Achievement Condition' => '✅ 任务达成条件',
- 'Task Category' => '📂 任务分类',
- 'Task Completion Log' => '📝 任务完成日志',
- 'Task Condition' => '🔍 任务条件',
- 'Task' => '📋 任务',
- 'Task Cost' => '💰 任务消耗',
- 'Task Cost Log' => '📝 任务消耗日志',
- 'Task Reset Log' => '🔄 任务重置日志',
- 'Task Reward' => '🏆 任务奖励',
- 'Task Reward Log' => '📝 任务奖励日志',
- 'Task User Progress' => '📊 用户进度',
- 'Task User Task' => '📋 用户任务',
- // Team模块
- 'Team Invite Reward' => '🎁 邀请奖励记录',
- 'Team Profit' => '💰 团队收益记录',
- 'Team Profit Rule' => '💰 收益规则配置',
- 'Team Referral Change' => '🔄 推荐关系变更记录',
- 'Team Referral Code' => '🔗 推荐码管理',
- 'Team Referral Code Usage' => '📊 推荐码使用记录',
- 'Team Talent Config' => '🌟 达人等级配置',
- 'Team User Referral' => '👥 用户推荐关系',
- 'Team User Relation Cache' => '🔄 用户关系缓存',
- 'Team User Talent' => '🌟 达人等级管理',
- // GameItems模块
- 'Category' => '📁 物品分类',
- 'Chest Content' => '📦 宝箱内容',
- 'Chest Open Log' => '📝 宝箱开启记录',
- 'Craft Log' => '📝 物品合成记录',
- 'Dismantle Log' => '📝 物品分解记录',
- 'Dismantle Rule' => '⚙️ 物品分解规则',
- 'Group' => '📚 物品组管理',
- 'Group Item' => '📋 物品组内容',
- 'Instance' => '🔍 单独属性物品管理',
- 'Item Chest Open Cost' => '💰 宝箱消耗配置',
- 'Item' => '🎁 物品设置',
- 'Output Limit' => '⛔ 物品产出限制',
- 'Pity Time' => '🔄 用户宝箱保底计数',
- 'Recipe' => '📜 合成配方管理',
- 'Transaction Log' => '📝 物品记录',
- 'User Item' => '👤 用户物品',
- 'User Output Counter' => '📊 用户产出限制计数',
- 'User Recipe' => '👤 用户配方解锁状态',
- // Article模块
- 'Article Cate' => '📂 文章分类',
- 'Article' => '📝 文章',
- // File模块
- 'File' => '📁 文件',
- 'Image' => '🖼️ 图片',
- 'Storage' => '💾 存储',
- 'Temporary' => '⏱️ 临时文件',
- // Fund模块
- 'Fund' => '💰 资金',
- 'Fund Log' => '📝 资金日志',
- 'Fund Order' => '🧾 资金订单',
- 'Fund Transfer' => '💸 转账记录',
- // Game模块
- 'Game Config' => '⚙️ 游戏配置',
- 'Game Reward Group' => '🎁 游戏奖励组',
- 'Game Reward Item' => '🎁 游戏奖励项',
- 'Game Reward Log' => '📝 游戏奖励日志',
- // OAuth模块
- 'O Auth Client' => '🔑 OAuth客户端',
- // Sms模块
- 'My Gateway' => '📨 短信网关',
- 'Smscode Log' => '🔢 短信验证码',
- // System模块
- 'Admin Grid View' => '📊 管理员视图',
- 'Config A' => '⚙️ 配置A',
- 'Config Admin' => '⚙️ 管理员配置',
- 'Config' => '⚙️ 配置',
- 'System Log' => '📝 系统日志',
- 'View Config' => '👁️ 视图配置',
- // User模块
- 'User Action' => '🔍 用户行为',
- 'User' => '👤 用户',
- 'User Info' => '📋 用户信息',
- 'User Phone' => '📱 用户手机',
- 'User Secret Password' => '🔒 用户密码'
- ];
- /**
- * Execute the console command.
- *
- * @return int
- */
- public function handle()
- {
- $this->info("开始检查菜单标题...");
- // 获取所有菜单项
- $menus = AdminMenu::all();
- $englishMenus = [];
- $translatedCount = 0;
- foreach ($menus as $menu) {
- // 检查标题是否包含中文字符
- if (!preg_match('/[\x{4e00}-\x{9fa5}]/u', $menu->title) && !empty($menu->title)) {
- // 检查是否有对应的中文标题
- if (isset($this->titleMap[$menu->title])) {
- $englishMenus[] = [
- 'menu' => $menu,
- 'chinese_title' => $this->titleMap[$menu->title]
- ];
- } else {
- $englishMenus[] = [
- 'menu' => $menu,
- 'chinese_title' => null
- ];
- }
- }
- }
- if (count($englishMenus) > 0) {
- $this->info("\n发现 " . count($englishMenus) . " 个英文标题的菜单项:");
- $table = [];
- foreach ($englishMenus as $item) {
- $menu = $item['menu'];
- $chineseTitle = $item['chinese_title'] ?? '未提供翻译';
- $table[] = [
- 'id' => $menu->id,
- 'title' => $menu->title,
- 'chinese_title' => $chineseTitle,
- 'uri' => $menu->uri,
- 'parent_id' => $menu->parent_id
- ];
- }
- $this->table(['ID', '英文标题', '中文标题', 'URI', '父ID'], $table);
- if ($this->option('fix') || $this->confirm('是否要将这些菜单标题翻译为中文?')) {
- foreach ($englishMenus as $item) {
- $menu = $item['menu'];
- $chineseTitle = $item['chinese_title'];
- if ($chineseTitle) {
- $oldTitle = $menu->title;
- $menu->title = $chineseTitle;
- $menu->save();
- $this->info(" - 已翻译菜单标题: ID = {$menu->id}, {$oldTitle} -> {$chineseTitle}");
- $translatedCount++;
- } else {
- $this->warn(" - 未提供翻译: ID = {$menu->id}, 标题 = {$menu->title}");
- }
- }
- $this->info("\n已翻译 {$translatedCount} 个菜单标题");
- }
- } else {
- $this->info("\n所有菜单标题都是中文!");
- }
- return 0;
- }
- }
|