PHP Conference Japan 2024

Locale 类

(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)

简介

"Locale" 是一个标识符,用于从 API 获取语言、文化或特定于区域的行为。PHP 区域设置的组织和标识方式与 ICU(以及许多类 Unix 操作系统、Mac、Java 等供应商)使用的 CLDR 区域设置相同。区域设置使用 RFC 4646 语言标签(使用连字符而不是下划线)以及更传统的带下划线的标识符进行标识。除非另有说明,否则此类中的函数对这两种格式都兼容。

标识符示例包括

  • en-US(英语,美国)
  • zh-Hant-TW(中文,繁体,台湾)
  • fr-CA、fr-FR(分别代表加拿大和法国的法语)

Locale 类(以及相关的过程函数)用于与区域设置标识符交互——以验证 ID 是否格式正确、有效等。CLDR 中 UAX #35 中使用的扩展(并由 ICU 继承)在 ICU 中通常有效且使用。

区域设置不能实例化为对象。提供的所有函数/方法都是静态的。

空字符串或空字符串获取“根”区域设置。“根”区域设置在 CLDR 中等效于“en_US_POSIX”。语言标签(以及区域设置标识符)不区分大小写。存在一个规范化函数来使大小写与规范匹配。

类概要

class Locale {
/* 常量 */
public const int ACTUAL_LOCALE;
public const int VALID_LOCALE;
public const null DEFAULT_LOCALE = null;
public const string LANG_TAG;
public const string EXTLANG_TAG;
public const string SCRIPT_TAG;
public const string REGION_TAG;
public const string VARIANT_TAG;
public const string PRIVATE_TAG;
/* 方法 */
public static acceptFromHttp(string $header): string|false
public static canonicalize(string $locale): ?string
public static composeLocale(array $subtags): string|false
public static filterMatches(string $languageTag, string $locale, bool $canonicalize = false): ?bool
public static getAllVariants(string $locale): ?array
public static getDefault(): string
public static getDisplayLanguage(string $locale, ?string $displayLocale = null): string|false
public static getDisplayName(string $locale, ?string $displayLocale = null): string|false
public static getDisplayRegion(string $locale, ?string $displayLocale = null): string|false
public static getDisplayScript(string $locale, ?string $displayLocale = null): string|false
public static getDisplayVariant(string $locale, ?string $displayLocale = null): string|false
public static getKeywords(字符串 $locale): 数组|false|null
public static getPrimaryLanguage(字符串 $locale): ?字符串
public static getRegion(字符串 $locale): ?字符串
public static getScript(字符串 $locale): ?字符串
public static lookup(
    数组 $languageTag,
    字符串 $locale,
    布尔值 $canonicalize = false,
    ?字符串 $defaultLocale = null
): ?字符串
public static parseLocale(字符串 $locale): ?数组
public static setDefault(字符串 $locale): true
}

预定义常量

Locale::DEFAULT_LOCALE null
用作各种受区域设置影响的类的(例如 NumberFormatter)方法的区域设置参数。此常量将使方法使用默认区域设置。

这些常量描述了不同类 getLocale 方法的区域设置选择。

Locale::ACTUAL_LOCALE 整数
这是数据实际来源的区域设置。
Locale::VALID_LOCALE 整数
这是 ICU 支持的最具体的区域设置。

区域设置子标签

这些常量定义了如何解析或组合区域设置。它们应作为 locale_compose() 的参数数组中的键使用,并作为从 locale_parse() 返回的关联 数组 的键返回。

Locale::LANG_TAG 字符串
语言子标签
Locale::EXTLANG_TAG 字符串
扩展语言子标签
Locale::SCRIPT_TAG 字符串
脚本子标签
Locale::REGION_TAG 字符串
区域子标签
Locale::VARIANT_TAG 字符串
变体子标签
Locale::GRANDFATHERED_LANG_TAG 字符串
祖传语言子标签
Locale::PRIVATE_TAG 字符串
私有子标签

变更日志

版本 描述
8.4.0 类常量现在已进行类型化。

目录

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top