niirrty/niirrty.locale

PHP 本地化库。

0.6.1 2024-02-16 11:41 UTC

This package is auto-updated.

Last update: 2024-09-16 13:02:53 UTC


README

Locale 类和一些辅助函数

安装

composer.json

{
   "require": {
      "php": ">=8.1",
      "niirrty/niirrty.locale": "^0.6"
   }
}

使用方法

如果您想在应用程序中使用此包,请包含依赖的 composer autoload.php

Locale

创建一个新的 Locale 实例

use \Niirrty\Locale\Locale;

Locale::Create(
   // The fallback locale if no other was found
   new Locale( 'de', 'AT', 'UTF-8' ),
   // Check also the URL path for an locale or language part?
   true,
   // This are the names of the parameters, accepted from $_POST, $_GET and $_SESSION
   [ 'locale', 'language', 'lang' ]
)
   ->registerAsGlobalInstance();

这会通过检查以下位置来创建新的 Locale 并获取所需的信息:

  • 首先检查当前 URL 部分,如果它包含一个有效的本地化字符串,则使用它(您可以通过将第二个创建参数设置为 FALSE 来禁用它)。
  • 接下来检查是否有一个定义好的请求参数(第三个参数)被 $_POST、$_GET 或 $_SESSION 定义。
  • 然后检查浏览器是否发送了关于首选本地化/语言的信息。
  • 最后检查系统是否提供了可用的本地化信息。

如果所有这些方法都失败,则返回声明的后备本地化。您也可以称它为主本地化。

最后但同样重要的是,创建的本地化被注册为全局可用的 Locale 实例。它可以通过以下方式在其他地方访问:

if ( Locale::HasGlobalInstance() )
{
   $locale = Locale::GetGlobalInstance();
}
else
{
   // Create the locale
   //$locale = Locale::Create( … )->registerAsGlobalInstance();
}