we-are-neopix /laravel-model-translation
本包是一个基于驱动程序的 Laravel 模型翻译解决方案。它包含两个驱动程序,用于在数据库和 JSON 文件中存储翻译,同时还提供了一个即插即用的系统,允许用户实现自定义驱动程序来存储翻译,并与包一起使用。
1.2.0
2021-04-28 10:16 UTC
Requires
- php: ^7.4|^8.0
- ext-json: *
- laravel/framework: ~6.0|~7.0|~8.0
Requires (Dev)
- laravel/homestead: ^12.2
- orchestra/testbench: ~6.0
- phpunit/phpunit: ~9.0
README
对于 Laravel 7 和 8,请使用版本 ~1.2
本包旨在简化 Eloquent 模型可翻译的过程。目标是尽可能少地偏离 Laravel 的 Eloquent API,但仍提供令人满意的功能灵活性。这是通过利用基于驱动程序的存储翻译方法以及一个允许模型实例无缝与翻译存储交互的特质来实现的。
配置本包后,使用带有翻译的模型所需的所有操作如下
$post = BlogPost::find(1); // An instance of the BlogPost model App::setLocale('sr'); $post->title = 'Naslov na srpskom'; $post->save(); $post->setLanguage('en'); $post->title = 'Title in English'; $post->save(); $post->title; // Returns 'Title in English'; $post->setLanguage('sr')->title; // Returns 'Naslov na srpskom'
由于这是一个基于驱动程序的解决方案,您可以完全自行实现存储翻译的架构。当然,本包附带两个内置驱动程序,即 JSON 和 MySQL,但您可以根据自己的喜好实现自己的驱动程序。
有关本包的工作原理和使用方法的更详细说明,请访问我们的 维基页面。