优化抽奖接口/api/game/playStart翻译问题
This commit is contained in:
@@ -62,6 +62,17 @@ class ApiLang
|
|||||||
return (string) $map[$key];
|
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;
|
return $message;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -108,6 +119,22 @@ class ApiLang
|
|||||||
return 'MSG_' . strtoupper(sprintf('%08X', crc32($trim)));
|
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])
|
* 带占位符的翻译,如 translateParams('当前玩家余额%s小于%s无法继续游戏', [$coin, $minCoin])
|
||||||
* 先翻译再替换(en 文案使用 %s 占位)
|
* 先翻译再替换(en 文案使用 %s 占位)
|
||||||
|
|||||||
Reference in New Issue
Block a user