validus/translation

为您的 Expressive 项目提供翻译。

2.0.0 2019-05-11 05:25 UTC

This package is auto-updated.

Last update: 2024-09-19 08:51:24 UTC


README

为 zend expressive 项目提供翻译。

SensioLabsInsight

Packagist GitHub license Build Status Scrutinizer Code Quality Code Intelligence Status Coverage Status

PSR-11 的 Symfony 翻译工厂,与 Zend 配置提供者。

安装

安装此包的最简单方法是使用 composer

$ composer require validus/translation

配置

完整的配置示例可以在 example/full-config.php 中找到。请注意,其中的值是默认值,且在您不更改它们的情况下无需提供。尽量保持您自己的配置尽可能简单。一个简单的配置示例可以在 example/simple-config.php 中找到

如果您的应用程序使用 zend-component-installer Composer 插件,则配置已完成;提供的 Validus\Translation\ConfigProvider 已注册翻译服务。

用法

Validus Translation 通过实现 PSR-15 接口,提供消耗 PSR-7 HTTP 消息实例的中间件。

将中间件添加到您的应用程序中

您可以在应用程序中的任何位置管道此中间件。如果您想使其在任何地方都可用,请在应用程序的早期管道它,在路由之前。例如,在 Expressive 中,您可以在 config/pipeline.php 文件中管道它

$app->pipe(\Validus\Translation\Middleware\TranslatorMiddleware::class);

在 Expressive 中,您可以在 config/routes.php 文件中路由时,或在 delegator factory 中这样做

$app->post('/login', [
    \Validus\Translation\Middleware\TranslatorMiddleware::class,
    \User\Middleware\LoginHandler::class
]);

访问翻译器

如果您已将中间件添加到您的应用程序中,您可以从请求属性访问翻译器

     public function handle(ServerRequestInterface $request): ResponseInterface
     {
        $translator = $request->getAttribute(TranslatorMiddleware::TRANSLATOR_ATTRIBUTE);
        // or simply 
        $translator = $request->getAttribute('translator');
        
        // do your thing 
        
        return $response;
     }

或通过容器

use Symfony\Component\Translation\TranslatorInterface;

$translator = $container->get(TranslatorInterface::class);