saowirricardo / laravel-translation-loader
使用现代化的包将您的翻译存储在数据库或其他来源
Requires
- php: ^8.1
- illuminate/contracts: ^10.0
- spatie/laravel-package-tools: ^1.14.0
- spatie/laravel-translatable: ^6.5
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.9
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
This package is auto-updated.
Last update: 2024-09-09 03:35:56 UTC
README
在纯Laravel或Lumen安装中,您可以使用语言文件来本地化应用程序。此包将使翻译存储在数据库中。您仍然可以使用您熟悉和喜爱的trans函数的所有功能。
trans('messages.welcome', ['name' => 'dayle']);
您甚至可以混合使用语言文件和数据库。如果翻译同时存在于文件和数据库中,将返回数据库版本。
支持我们
我们投入了大量资源来创建一流的开放源代码包。您可以通过购买我们的付费产品之一来支持我们。
我们非常感谢您从家乡寄给我们明信片,并说明您正在使用我们的哪个包。您可以在我们的联系页面上找到我们的地址。我们在我们的虚拟明信片墙上公布所有收到的明信片。
安装
您可以通过composer安装此包
composer require sawirricardo/laravel-translation-loader
您可以使用以下命令发布和运行迁移
php artisan vendor:publish --tag="laravel-translation-loader-migrations"
php artisan migrate
您可以使用以下命令发布配置文件
php artisan vendor:publish --tag="laravel-translation-loader-config"
这是发布配置文件的内容
'translation_loaders' => [ \Sawirricardo\LaravelTranslationLoader\TranslationLoaders\Db::class, ], 'model' => \Sawirricardo\LaravelTranslationLoader\Models\Translation::class, 'translation_manager' => \Sawirricardo\LaravelTranslationLoader\TranslationLoaderManager::class, 'locals' => [ 'en' => 'English', 'ar' => 'Arabic', 'pt_BR' => 'Português (Brasil)', 'my' => 'Burmese', 'id' => 'Bahasa Indonesia', ], 'paths' => [ app_path(), resource_path('views'), base_path('vendor'), ], 'excluded_paths' => [ // ],
用法
use Sawirricardo\LaravelTranslationLoader\Models\Translation; Translation::create([ 'group' => 'validation', 'key' => 'required', 'text' => ['en' => 'This is a required field', 'nl' => 'Dit is een verplicht veld'], ]);
您可以使用Laravel的默认trans函数获取翻译
trans('validation.required'); // returns 'This is a required field' app()->setLocale('nl'); trans('validation.required'); // returns 'Dit is een verplicht veld'
创建自己的翻译提供者
此包附带一个翻译提供者,可以从数据库中检索翻译。如果您将翻译存储在yaml文件、csv文件中等,您可以轻松通过创建自己的翻译提供者来扩展此包。
翻译提供者可以是任何实现了Sawirricardo\LaravelTranslationLoader\TranslationLoaders\TranslationLoader接口的类。它仅包含一个方法
namespace Sawirricardo\LaravelTranslationLoader\TranslationLoaders;
interface TranslationLoader { public function loadTranslations($locale, $group); } 翻译提供者可以在配置文件的translation_loaders键中注册。
测试
composer test
变更日志
有关最近更改的更多信息,请参阅CHANGELOG。
贡献
有关详细信息,请参阅CONTRIBUTING。
安全漏洞
有关如何报告安全漏洞的详细信息,请参阅我们的安全策略。
鸣谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。