生物模板本地化表为不同语言的客户端提供生物名称和子名称的翻译。这个表允许服务器为不同语言的玩家显示本地化的生物信息。
字段名 | 类型 | 属性 | 键 | 默认值 | 描述 |
---|---|---|---|---|---|
entry | int(10) unsigned | 不为空 | 主键 | 0 | 生物模板ID,对应creature_template.entry |
locale | varchar(4) | 不为空 | 主键 | 语言代码 | |
Name | text | 可为空 | NULL | 本地化的生物名称 | |
Title | text | 可为空 | NULL | 本地化的生物称号/子名称 | |
VerifiedBuild | int(11) | 可为空 | NULL | 验证的客户端版本号 |
生物模板的唯一标识符,必须对应creature_template表中的entry字段。
示例值: 1, 100, 1234, 50000
语言代码,指定此本地化文本适用的语言版本。
常见语言代码:
生物在指定语言中的名称。这个名称会覆盖creature_template表中的name字段。
示例翻译:
生物在指定语言中的称号或子名称。通常显示在生物名称下方。
示例称号:
记录验证此本地化文本的客户端版本号。
AzerothCore支持多种语言的本地化:
当玩家客户端请求特定语言时:
-- 为暴风城守卫添加中文名称
INSERT INTO creature_template_locale (entry, locale, Name, Title, VerifiedBuild)
VALUES (1423, 'zhCN', '暴风城守卫', '城市守护者', 12340);
-- 为铁炉堡守卫添加中文名称
INSERT INTO creature_template_locale (entry, locale, Name, Title, VerifiedBuild)
VALUES (5595, 'zhCN', '铁炉堡守卫', '矮人战士', 12340);
-- 为同一个生物添加多种语言的翻译
INSERT INTO creature_template_locale (entry, locale, Name, Title, VerifiedBuild) 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;
-- 批量添加守卫类NPC的中文翻译
INSERT INTO creature_template_locale (entry, locale, Name, Title, VerifiedBuild)
SELECT ct.entry, 'zhCN',
CASE
WHEN ct.name LIKE '%Guard%' THEN REPLACE(ct.name, 'Guard', '守卫')
WHEN ct.name LIKE '%Defender%' THEN REPLACE(ct.name, 'Defender', '守护者')
ELSE CONCAT(ct.name, '(需翻译)')
END,
CASE
WHEN ct.subname LIKE '%Weapon Master%' THEN '武器大师'
WHEN ct.subname LIKE '%Innkeeper%' THEN '旅店老板'
ELSE ct.subname
END,
12340
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 LIKE '%Guard%' OR ct.name LIKE '%Defender%');
Guard → 守卫
Warrior → 战士
Mage → 法师
Priest → 牧师
Rogue → 盗贼
Hunter → 猎人
Paladin → 圣骑士
Warlock → 术士
Shaman → 萨满
Druid → 德鲁伊
Vendor → 商人
Trainer → 训练师
Innkeeper → 旅店老板
Flight Master → 飞行管理员
Banker → 银行家
Auctioneer → 拍卖师
Repair → 修理商
Blacksmith → 铁匠
检查以下几点:
可以通过以下方式确定:
建议优先翻译: