easyswoole-tool / hyperf-translation
easyswoole hyperf 翻译
dev-master
2021-09-12 14:14 UTC
Requires
- php: >=7.2.0
- hyperf/translation: ^2.0|^2.1|^2.2
This package is auto-updated.
Last update: 2024-09-12 20:32:22 UTC
README
EasySwoole Hyperf Translation
安装
安装此扩展的首选方式是通过 composer.
运行以下命令之一
composer require easyswoole-tool/hyperf-translation dev-master
或者在您的 composer.json
文件的 require 部分添加
"easyswoole-tool/hyperf-translation": "dev-master"
到
配置
// dev.php
<?php return [ 'locale' => 'zh_CN', 'fallback_locale' => 'en', 'path' => EASYSWOOLE_ROOT . '/storage/languages', ];
依赖注入
// Container.php
<?php declare(strict_types=1); use EasySwoole\Component\Di; use EasySwoole\Component\Singleton; use Psr\Container\ContainerInterface; use Throwable; class Container implements ContainerInterface { use Singleton; /** * @param string $id * @return callable|mixed|string|null * @throws Throwable */ public function get($id) { return Di::getInstance()->get($id); } /** * @param string $id * @return callable|mixed|string|null * @throws Throwable */ public function has($id) { return Di::getInstance()->get($id) != null; } /** * @param string $name * @param array $parameters * * @return null * @throws Throwable */ public function make(string $name, array $parameters = []) { $data = Di::getInstance($parameters)->get($name); if (is_null($data)) { $parameters = array_values($parameters); $data = new $name(...$parameters); } return $data; } }
// EasySwooleEvent.php
use Hyperf\Contract\TranslatorInterface; use EasySwoole\Hyperf\Translation\Translator; use EasySwoole\Component\Di; use Hyperf\Utils\ApplicationContext; use Psr\Container\ContainerInterface; Di::getInstance()->set(ContainerInterface::class, Container::class); ApplicationContext::setContainer(Di::getInstance()->get(ContainerInterface::class)); Di::getInstance()->set(TranslatorInterface::class, Translator::class);
使用
echo __('messages.welcome', [], 'zh_CN');
参见 翻译其他文档.