优化抽奖接口/api/game/playStart翻译问题

This commit is contained in:
2026-04-08 17:37:20 +08:00
parent 765f50963a
commit d3ee3faec4

View File

@@ -62,6 +62,17 @@ class ApiLang
return (string) $map[$key];
}
// 兼容旧版:历史代码直接抛中文 messagelang=en 时从 legacy_en.php 映射到英文
if ($lang === self::LANG_EN) {
$legacy = self::loadLegacyEnMessages();
if (isset($legacy[$message])) {
return (string) $legacy[$message];
}
if ($key !== null && isset($legacy[$key])) {
return (string) $legacy[$key];
}
}
return $message;
}
@@ -108,6 +119,22 @@ class ApiLang
return 'MSG_' . strtoupper(sprintf('%08X', crc32($trim)));
}
/**
* 加载中文原文 => 英文 的兼容映射(仅 lang=en 使用)
* @return array<string, string>
*/
private static function loadLegacyEnMessages(): array
{
$path = dirname(__DIR__) . DIRECTORY_SEPARATOR . 'lang' . DIRECTORY_SEPARATOR . 'legacy_en.php';
if (is_file($path)) {
$data = require $path;
if (is_array($data)) {
return $data;
}
}
return [];
}
/**
* 带占位符的翻译,如 translateParams('当前玩家余额%s小于%s无法继续游戏', [$coin, $minCoin])
* 先翻译再替换en 文案使用 %s 占位)