📋 表结构
| 字段名 | 数据类型 | 默认值 | 说明 |
|---|---|---|---|
| entry | INT UNSIGNED | 0 | 生物模板ID |
| locale | VARCHAR(4) | 语言代码 | |
| Name | TEXT | NULL | 本地化的生物名称 |
| Title | TEXT | NULL | 本地化的生物称号/子名称 |
| VerifiedBuild | INT | NULL | 验证的客户端版本号 |
🔍 核心字段详解
entry - 生物模板ID
字段说明:生物模板的唯一标识符
取值范围:1 - 16777215
关联关系:必须对应creature_template表中的entry字段
主键:与locale字段组成复合主键
取值范围:1 - 16777215
关联关系:必须对应creature_template表中的entry字段
主键:与locale字段组成复合主键
locale - 语言代码
字段说明:指定此本地化文本适用的语言版本
取值范围:标准语言代码字符串
主键:与entry字段组成复合主键
取值范围:标准语言代码字符串
主键:与entry字段组成复合主键
| 语言代码 | 语言 |
|---|---|
| zhCN | 简体中文 |
| zhTW | 繁体中文 |
| enUS | 美式英语 |
| enGB | 英式英语 |
| frFR | 法语 |
| deDE | 德语 |
| esES | 西班牙语 |
| ruRU | 俄语 |
| koKR | 韩语 |
Name - 本地化名称
字段说明:生物在指定语言中的名称
作用:覆盖creature_template表中的name字段
注意事项:确保使用正确的UTF-8编码保存中文文本
作用:覆盖creature_template表中的name字段
注意事项:确保使用正确的UTF-8编码保存中文文本
示例翻译:
| 英文 | 中文 |
|---|---|
| Stormwind Guard | 暴风城守卫 |
| Kobold Miner | 狗头人矿工 |
| Forest Bear | 森林熊 |
Title - 本地化称号
字段说明:生物在指定语言中的称号或子名称
显示位置:通常显示在生物名称下方
对应字段:覆盖creature_template表中的subname字段
显示位置:通常显示在生物名称下方
对应字段:覆盖creature_template表中的subname字段
示例称号:
| 英文 | 中文 |
|---|---|
| Weapon Master | 武器大师 |
| Innkeeper | 旅店老板 |
| Flight Master | 飞行管理员 |
VerifiedBuild - 验证版本号
字段说明:记录验证此本地化文本的客户端版本号
用途:确保翻译在目标客户端版本中正确显示
常见值:12340(经典版), 8606(TBC), 12340(WotLK)
用途:确保翻译在目标客户端版本中正确显示
常见值:12340(经典版), 8606(TBC), 12340(WotLK)
💡 实际案例
基础 添加单个中文本地化
为暴风城守卫添加中文名称
INSERT INTO creature_template_locale VALUES(
1423, 'zhCN', '暴风城守卫', '城市守护者', 12340);批量 批量添加多语言支持
为同一个生物添加多种语言的翻译
INSERT INTO creature_template_locale VALUES
(1234, 'zhCN', '森林守护者', '自然之友', 12340),
(1234, 'zhTW', '森林守護者', '自然之友', 12340),
(1234, 'frFR', 'Gardien de la Forêt', 'Ami de la Nature', 12340),
(1234, 'deDE', 'Waldhüter', 'Freund der Natur', 12340);查询 查找特定语言的本地化文本
查找所有中文翻译的生物
SELECT ctl.entry, ct.name AS original_name, ctl.Name AS localized_name, ctl.Title
FROM creature_template_locale ctl
JOIN creature_template ct ON ctl.entry = ct.entry
WHERE ctl.locale = 'zhCN'
ORDER BY ctl.entry;缺失 查找缺少中文翻译的生物
查找还没有中文本地化的生物
SELECT ct.entry, ct.name, ct.subname
FROM creature_template ct
LEFT JOIN creature_template_locale ctl ON ct.entry = ctl.entry AND ctl.locale = 'zhCN'
WHERE ctl.entry IS NULL
AND ct.name IS NOT NULL
ORDER BY ct.entry;统计 统计各语言的翻译数量
查看每种语言有多少生物翻译
SELECT locale, COUNT(*) AS translation_count
FROM creature_template_locale
GROUP BY locale
ORDER BY translation_count DESC;⚙️ 语言优先级机制
显示优先级
当玩家客户端请求特定语言时:
- 首先查找对应语言的本地化文本
- 如果没有找到,使用默认的英语文本
- 如果英语文本也没有,使用creature_template中的原始文本
语言代码匹配
-- 客户端语言设置与locale字段必须完全匹配
-- 例如:客户端设置为zhCN,则查找locale='zhCN'的记录
-- 常见错误:语言代码写错
-- 错误:locale='zh' (不完整)
-- 正确:locale='zhCN' (完整)📖 翻译指南
名称翻译原则
- 保持一致性 - 相同类型的生物使用统一的翻译
- 符合语境 - 翻译应该符合游戏世界的背景
- 简洁明了 - 避免过长或复杂的翻译
- 易于理解 - 使用玩家容易理解的词汇
称号翻译建议
| 类型 | 示例 |
|---|---|
| 职业称号 | "武器大师"、"法师训练师" |
| 地位称号 | "队长"、"首领"、"长老" |
| 功能称号 | "商人"、"铁匠"、"飞行管理员" |
| 描述性称号 | "勇敢者"、"智者"、"强大者" |
常见翻译对照表
-- 职业类
Guard → 守卫
Warrior → 战士
Mage → 法师
Priest → 牧师
Rogue → 盗贼
Hunter → 猎人
Paladin → 圣骑士
Warlock → 术士
Shaman → 萨满
Druid → 德鲁伊
-- 功能类
Vendor → 商人
Trainer → 训练师
Innkeeper → 旅店老板
Flight Master → 飞行管理员
Banker → 银行家
Auctioneer → 拍卖师
Repair → 修理师
Blacksmith → 铁匠❓ 常见问题
本地化文本不显示怎么办?
检查以下几点:
- locale字段是否与客户端语言匹配
- entry是否对应正确的生物模板
- Name字段是否为空
- 客户端是否支持该语言
- 文件编码是否为UTF-8
如何确定客户端使用的语言代码?
可以通过以下方式确定:
- 检查客户端的语言设置
- 查看客户端目录中的语言文件
- 使用GM命令查看玩家的语言设置
是否需要为所有生物添加本地化?
建议优先翻译:
- 重要的NPC(商人、训练师、任务NPC)
- 主要城市的守卫和居民
- 副本和团队副本中的BOSS
- 任务相关的怪物
⚡ 快速参考
语言代码
| zhCN | 简体中文 |
| zhTW | 繁体中文 |
| enUS | 美式英语 |
| frFR | 法语 |
字段对应
| Name | 对应name |
| Title | 对应subname |
优先翻译
| 重要NPC | 商人/训练师 |
| 城市守卫 | 主要城市 |
| BOSS | 副本BOSS |
🔗 相关表格
- creature_template - 生物模板
- gameobject_template_locale - 游戏对象模板本地化表
- item_template_locale - 物品模板本地化表
- quest_template_locale - 任务模板本地化表