Files
mrbs-equbao-2026/web/lib/MRBS/Intl/Locale.php
T
人事系统开发 48092cab42
Docker image / push (push) Canceled after 0s
MRBS 1.12.2 等保2.0二级整改完整提交
包含:登录失败锁定、90天密码有效期、30分钟会话超时、
强制改密、登录审计日志、屏幕水印、企业背景图、
备案信息固定底部、favicon、登录页JS修复等全部改动
2026-09-08 21:19:47 +08:00

38 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
namespace MRBS\Intl;
/**
* A wrapper for the Locale class, that uses the PHP method if available, otherwise falling
* back to the emulator.
*/
class Locale
{
public const LANG_TAG = 'language';
public const EXTLANG_TAG = 'extlang';
public const SCRIPT_TAG = 'script';
public const REGION_TAG = 'region';
public const VARIANT_TAG = 'variant';
public const GRANDFATHERED_LANG_TAG = 'grandfathered';
public const PRIVATE_TAG = 'private';
public const ACTUAL_LOCALE = 0;
public const VALID_LOCALE = 1;
public static function __callStatic(string $name, array $arguments)
{
// Use the PHP method if it exists, unless it's the acceptFromHttp() method. Until we stop using setlocale(), we
// can't rely on PHP's acceptFromHttp() to tell us whether the locale is valid for setlocale() and have to use
// the emulator, which does further checks.
if (($name !== 'acceptFromHttp') && method_exists('\Locale', $name))
{
// Check that the method we're calling also exists in the emulator class, in case the 'intl' extension is not enabled.
assert(method_exists(__NAMESPACE__ . '\LocaleEmulator', $name), "Call to \Locale::$name which hasn't been emulated.");
return \Locale::$name(...$arguments);
}
return LocaleEmulator::$name(...$arguments);
}
}