basteyy/php-localization-middleware

处理应用中语言的中间件

0.0.3 2023-11-20 19:22 UTC

This package is auto-updated.

Last update: 2024-09-20 21:22:18 UTC


README

PHP中间件,用于处理Web应用中的本地化和语言偏好。

安装

您可以通过Composer安装此软件包。运行以下命令

composer require basteyy/php-localization-middleware

用法

要在您的PHP应用程序中使用此中间件,请按照以下步骤操作

创建一个带有您所需配置的LocalizationMiddleware类的实例,并将其作为中间件添加。例如

    $app->add(new \basteyy\LocalizationMiddleware\LocalizationMiddleware(
        default_language: 'de',                     // Default language
        available_languages: ['de', 'ua', 'en'],    // Supported languages
        patch_requested_url: true,                  // Patch the requested url to remove the language in case there is one
        browser_overwrite_url: false,               // Overwrite the url language with the browser language
        patch_only_exactly_match: false             // Patch requested url only if the language is exactly matched (only when url contain a supported language)
    ));

中间件将自动根据请求确定首选语言,并将其设置为请求对象上的一个属性。您可以使用$request->getAttribute('language')访问语言属性。

配置

LocalizationMiddleware类可以使用以下选项进行配置

  • $default_language:在未检测到首选语言时使用的默认语言。它应该是两个字母的语言代码(例如,'en')。
  • $available_languages:支持的语言数组,每个语言都由两个字母的语言代码表示(例如,'en', 'de', 'fr')。
  • $patch_requested_url:设置为true以通过删除语言前缀(例如,'/en/...')来修复请求的URL。
  • $browser_overwrite_url:设置为true以用浏览器的首选语言覆盖URL,即使URL指定了不同的语言。
  • $patch_only_exactly_match:设置为true时,仅从URL(路径)中去除支持的语言。

许可证

ISC许可证

版权所有 (c) 2023 basteyy sebastian@xzit.online

允许以任何目的使用、复制、修改和/或分发此软件,无论是否收费,前提是上述版权声明和本许可声明出现在所有副本中。

软件按“原样”提供,且作者放弃与此软件相关的所有保证,包括所有暗示的保证,包括适销性和适用性保证。在任何情况下,作者均不对任何特殊、直接、间接或后果性损害或任何损害承担责任,无论这些损害是由于合同、疏忽或其他侵权行为引起的,无论这些损害是否与使用或执行此软件有关。