aktiweb / laravel-translations-db
Laravel 5 的数据库翻译实现
Requires
- php: >=5.4.0
- illuminate/cache: 5.*
- illuminate/database: 5.*
- illuminate/translation: 5.*
- stichoza/google-translate-php: ~3.1
README
此包是为了替换默认的 TranslationServiceProvider 而创建的,为那些厌倦了收集语言文件并维护数十个包含大量键的数组的每个人而设计。键将自动添加到数据库中,因此您无需再费力地将键添加到翻译文件中。您再也不会忘记翻译一个键了!在生产环境中,您的键将被 缓存,以确保本地化保持快速!
安装
使用 composer 需要此包
composer require aktiweb/laravel-translation-db
喜欢走在前端?使用:
composer require 'aktiweb/laravel-translations-db:*@dev'
更新 composer 后,我们需要在 config/app.php 中替换 TranslationServiceProvider 为我们的 ServiceProvider。
查找
'Illuminate\Translation\TranslationServiceProvider',
并用以下内容替换
'Aktiweb\Translation\ServiceProvider',
现在将加载 ServiceProvider。要正确使用此包,您还需要在数据库中创建一个表,这可以通过发布此包的配置和迁移来实现。
运行以下命令
php artisan vendor:publish --provider='Aktiweb\Translation\ServiceProvider'
然后运行您的迁移
php artisan migrate
就是这样!
用法
您可以直接开始使用翻译,就像您通常使用 Laravels 默认包一样。函数 trans()
和 Lang::get()
可以像通常一样使用。
有关本地化和这些函数的使用的更多信息,请参阅 文档。
文件仍然是可能的
虽然仍然可以使用翻译文件。所有以命名空间前缀开头的翻译都将通过旧的 TranslationServiceProvider 解析。这是为带有自己的翻译文件的外部包所需的。但通常您不需要为此而烦恼。
导入和导出
为了简化迁移到数据库翻译的过程,自 0.3 版本以来提供了两个命令。
导入
要导入所有当前语言文件中的翻译,可以使用以下命令
php artisan translation:fetch
这将把所有可用的翻译从语言文件导入到数据库中。
要导入特定的翻译,也可以使用
--locale
和--group
选项。
导出
要将数据库中的翻译导回到文件系统,使用以下命令
php artisan translation:dump
php artisan translate:export