saowirricardo/laravel-translation-loader

使用现代化的包将您的翻译存储在数据库或其他来源

0.0.3 2023-07-03 04:52 UTC

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

在纯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)。有关更多信息,请参阅许可证文件