表概述

module_string_locale表是module_string的多语言扩展,存储各语言版本的翻译文本。module和id必须对应module_string中已存在的记录,locale为语言代码枚举。

主键为 (module, id, locale),支持8种语言:koKR/frFR/deDE/zhCN/zhTW/esES/esMX/ruRU。

表结构

字段名数据类型默认值说明
moduleVARCHAR(255)NOT NULL模块目录名(主键,对应module_string.module)
idINT UNSIGNEDNOT NULL模块内字符串编号(主键)
localeENUMNOT NULL语言代码(主键)
stringTEXTNOT NULL对应语言的翻译文本

重要字段详解

locale (语言枚举)

支持的语言代码:

  • koKR - 韩文
  • frFR - 法文
  • deDE - 德文
  • zhCN - 简体中文
  • zhTW - 繁体中文
  • esES - 西班牙文
  • esMX - 墨西哥西班牙文
  • ruRU - 俄文

实战案例

为模块字符串添加中文翻译
INSERT INTO module_string_locale (module, id, locale, string)
VALUES ('mod-cfbg', 1, 'zhCN', '欢迎来到跨阵营战场!');
查询某模块字符串的所有翻译
SELECT ms.module, ms.id, ms.string AS default_text,
       msl.locale, msl.string AS translated_text
FROM module_string ms
LEFT JOIN module_string_locale msl ON ms.module = msl.module AND ms.id = msl.id
WHERE ms.module = 'mod-cfbg'
ORDER BY ms.id, msl.locale;

常见问题

Q: 翻译未生效?

A: 确认三要素:(1) module_string中存在对应记录;(2) locale语言代码完全匹配;(3) 客户端语言设置与该locale对应。使用.reload module_string_locale热加载。

Q: 是否需要为所有语言提供翻译?

A: 不需要。如果某语言没有翻译记录,系统回退使用module_string.string(默认英文文本)。