优化抽奖接口/api/game/playStart翻译问题
This commit is contained in:
@@ -62,6 +62,17 @@ class ApiLang
|
||||
return (string) $map[$key];
|
||||
}
|
||||
|
||||
// 兼容旧版:历史代码直接抛中文 message,lang=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 占位)
|
||||
|
||||
Reference in New Issue
Block a user