netcore / translations
Laravel 数据库存储翻译,方便CRUD操作
Requires
- illuminate/cache: ^5.3
- illuminate/console: ^5.3
- illuminate/database: ^5.3
- illuminate/routing: ^5.3
- illuminate/support: ^5.3
- illuminate/translation: ^5.3
- rmccue/requests: ^1.7
Requires (Dev)
- phpunit/phpunit: ^6.0
- dev-master
- v1.0.50
- v1.0.49
- v1.0.48
- v1.0.47
- v1.0.46
- v1.0.45
- v1.0.44
- v1.0.43
- v1.0.42
- v1.0.41
- v1.0.40
- v1.0.39
- v1.0.38
- v1.0.37
- v1.0.36
- v1.0.35
- v1.0.34
- v1.0.33
- v1.0.32
- v1.0.31
- v1.0.30
- v1.0.29
- v1.0.28
- v1.0.27
- v1.0.26
- v1.0.25
- v1.0.24
- v1.0.23
- v1.0.22
- v1.0.21
- v1.0.20
- v1.0.19
- v1.0.18
- v1.0.17
- v1.0.16
- v1.0.15
- v1.0.14
- v1.0.13
- v1.0.12
- v1.0.11
- v1.0.10
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.2
- v1.0.1
- v1.0.0
This package is not auto-updated.
Last update: 2024-09-20 22:54:03 UTC
README
默认情况下,Laravel的翻译保存在resources文件夹下的语言文件中。这使得标准的CRUD操作非常繁琐,因此我们决定最好将所有翻译存储在数据库中。这样做的好处有
- 方便的CRUD操作和优秀的后台UI
- 如果编辑了文件系统中的语言文件,可以避免GIT冲突
- 性能仍然很出色。数据库只访问一次,然后翻译被缓存
- 可以将翻译导入/导出为Excel文件,以便存储在Google表格或本地
安装
使用composer安装此包
composer require netcore/translations --dev
将我们的服务提供者添加到config/app.php文件中的"providers"数组
\Netcore\Translator\ServiceProvider::class
运行迁移以创建"translations"和"languages"表
php artisan migrate
将路由添加到Src/Route/RouteServiceProvider.php。选择允许管理员编辑翻译的中介
Route::group([
'middleware' => ['web', 'isAdmin'],
'namespace' => null,
'prefix' => 'admin',
'as' => 'admin.'
], function (Router $router) {
\Netcore\Translator\Router::adminRoutes($router);
});
该包使用缓存标签。您可以查看Laravel文档以了解更多有关缓存标签的信息。https://laravel.net.cn/docs/5.4/cache#cache-tags
其中一个选项是使用redis。
首先,通过运行以下composer命令安装redis包。
composer require predis/predis
然后您需要将.env文件中的缓存驱动程序更改为redis,如下所示
CACHE_DRIVER=redis
发布配置文件以定义您的Admin布局以扩展,翻译ACP UI等
php artisan vendor:publish --tag=config
如何从实时服务器下载翻译到开发环境
我们经常希望从实时服务器获取翻译的精确副本,无论是到开发环境还是我们的本地服务器。为了做到这一点,我们必须在Src/Route/RouteServiceProvider.php中公开API路由
Route::group([
'middleware' => ['api'],
'namespace' => null,
'prefix' => 'api',
'as' => 'api.'
], function ($router) {
Router::apiRoutes($router);
});
之后,将此.env变量指向您的实时服务器
NETCORE_TRANSLATIONS_DOWNLOAD_FROM=https://project.eu/api/translations/index
然后在您的开发或本地机器上运行 php artisan translations:download
是否经过实战测试?
此包已经在许多Netcore项目中经过实战测试。我们终于厌倦了将代码复制到新项目中,因此代码已被提取为可安装的包。
未来计划
- 单元测试
- 为不同的Laravel版本创建不同的分支
- 使用Vue.js重写ACP UI