zoutapps / laravel-lang-vendornamespace
使用翻译命名空间来管理多个翻译文件。
v1.0.4
2020-11-10 17:01 UTC
Requires
- illuminate/console: ~5|~6|~7|~8
- illuminate/filesystem: ~5|~6|~7|~8
- illuminate/support: ~5|~6|~7|~8
Requires (Dev)
- mockery/mockery: ^1.1
- orchestra/testbench: ~3.0
- phpunit/phpunit: ~7.0
- sempro/phpunit-pretty-print: ^1.0
README
此包旨在为希望在一个命名空间下管理多个包翻译的包开发者提供。
目前,很难将所有包的翻译放在一个命名空间下,这可能会增加对翻译的调用以及发布文件时 resources/lang/vendor 文件夹的膨胀。
例如,拥有以下包
zoutapps/awesome-package
zoutapps/nice-package
您无法注册翻译以便像这样使用它们
trans('zoutapps::awesome-package') trans('zoutapps::nice-package')
使用此包,您现在可以这样做!
安装
通过 Composer
$ composer require zoutapps/laravel-lang-vendornamespace
使用
在您的 PackageServiceProvider
中,而不是使用
$this->loadTranslationsFrom(__DIR__ . '/../resources/lang', '<your-vendor-name>')
在您的 boot()
方法中调用
VendorNamespace::loadTranslationsFrom(__DIR__ . '/../resources/lang', '<your-vendor-name>')
发布您的翻译与之前相同
$this->publishes([ __DIR__ . '/../resources/lang' => resource_path('lang/vendor/<your-vendor-name>'), ], 'lang');
它做什么
您注册的所有路径都将添加到您的翻译命名空间。
为此,我们等待应用程序启动回调,
- 并为每个命名空间创建一个文件夹
- 在命名空间文件夹中创建所有提供的翻译文件的符号链接
- 将生成的文件夹添加到 Laravel 的
TranslationLoader
命名空间
开发
当您的应用环境设置为 local
时,我们将始终重新生成链接。当您的应用程序处于任何其他环境时,我们将检查包内的 lang 文件夹是否存在,并且仅在它不存在时生成链接。
变更日志
请参阅 changelog 了解最近更改的详细信息。
测试
$ composer test
贡献
请参阅 contributing.md 了解详细信息和一个待办事项列表。
安全
如果您发现任何安全相关的问题,请通过电子邮件 oliver.ziegler@zoutapps.de 而不是使用问题跟踪器。
致谢
许可证
MIT。请参阅 许可证文件 了解更多信息。