peteraba / foo-translate
用于在Opulence中轻松创建国际应用的库。
dev-scrutinizer-patch-2
2017-04-19 21:08 UTC
Requires
- mikey179/vfsstream: ^1.6
- opulence/opulence: ^1.0
Requires (Dev)
- phpunit/phpunit: ^6.1
This package is auto-updated.
Last update: 2024-09-09 21:50:17 UTC
README
在Opulence中轻松创建多语言应用的库。
设置
通过composer安装库
composer install peteraba/foo-translate
将引导程序添加到您的应用程序中
# config/bootstrappers.php return [ // ... Foo\Translate\Bootstrapper\TranslatorBootstrapper::class, ];
在resources/lang
中添加您的翻译,因为它已经存在以进行验证。
在您的.env.app.php
中添加您的默认语言
Environment::setVar('DEAFULT_LANGUAGE', "hu");
用法
位于resources/lang/${DEFAULT_LANG}
下的文件将被自动加载。在语言文件中定义的值通过一个:
字符进行命名空间,因此application.php
中定义的mainPageTitle值可以引用为application:mainPageTitle
用户类可以通过从IOC容器加载为ITranslator来访问翻译器。
在Fortune中,您可以调用助手tr来获取翻译。
示例
resources/lang/en/form.php
<?php return [ 'createNewLabel' => 'Create new %s', ];
src/Project/Form/Login.php
class Login { /** * @param ITranslator $translator * @param string $entityName */ public function __construct(ITranslator $translator, string $entityName) { $this->translator = $translator; $this->entityName = $entityName; } /** * @return Button */ public function createSaveButton(): Button { return new Button($this->translator->translate('form:createNewLabel', $this->entityName)); } }
resources/views/forms/login.fortune.php
<button>{{ tr("form:createNewLabel", $entityName) }}</button>
注意
- 如果没有提供,库将默认使用英语(en)作为默认语言。
- 引导程序不是懒加载的,因为国际应用通常需要在整个应用程序中使用翻译。
- 目前翻译没有缓存,但这是一个计划中的功能。