brotzka / laravel-translation-manager
通过数据库管理您的Laravel翻译文件。
v1.1.0
2018-02-13 07:59 UTC
This package is not auto-updated.
Last update: 2024-09-14 14:57:18 UTC
README
Laravel Translation Manager
此包提供了一种简单的方法来在数据库中管理您的翻译。它从默认的本地文件夹(例如 resources/lang/de)中获取所有文件,并创建翻译组(例如,auth.php 变为翻译组 auth),这些翻译组存储在 translation_groups-表中。然后,每个文件中的每个条目都将保存到 translations-表中(是的,它会处理任意深度的多维数组)。
翻译完成后,该包会将所有条目写回资源文件夹。所有条目都将保留在数据库中,因此您可以继续翻译。
更新是单向的。这意味着对文件所做的更改不会替换数据库中的值。相反,翻译文件的完整内容将被数据库中的值替换。
优点
- Laravel的默认翻译加载器不会被替换,所以一切照常工作
- 与所有Laravel版本(5.*)兼容
- 要添加新语言,只需将其添加到您的
config/app.php中,然后重新运行php artisan translations:toDatabse,进行翻译,然后运行php artisan translations:toFile - 不再需要数据库导出!在本地开发时无需使用导出功能。只需使用您的默认语言。
安装
- 使用Composer要求
composer require brotzka/translation-manager - 将可用的语言列表添加到您的
config/app.php
'available_locales' => ['de', 'en', 'sv'],
- 运行迁移
php artisan migrate
命令
translations:toDatabase
通过
php artisan translations:toDatabase
收集 resources/lang/ 文件夹内的所有文件和条目,并生成翻译组和翻译,并将它们写入数据库。现有文件将不会更新。
translations:toFile
通过
php artisan translations:toFile
从数据库获取所有条目,生成缺失的语言文件夹和翻译组文件,并将值放入文件中。
注意:如果您想通过 Artisan::call('translations.toDatabase') 调用命令,您必须在 app/Console/Kernel.php 中注册这两个命令。
protected $commands = [
// .. other commands
\Brotzka\TranslationManager\Module\Console\Commands\TranslationToDatabase::class,
\Brotzka\TranslationManager\Module\Console\Commands\TranslationToFile::class,
];
用法
在后台,此包创建了两个额外的模型表(TranslationGroup 和 Translation)(translation_groups 和 translations)。
您可以使用它们像使用Laravel中的模型一样。相关的命名空间是:Brotzka\TranslationManager\Module。
您可以使用以下方式查询关系
$translation->getParent:如果存在,返回父实例(如果不存在,返回NULL)$translation->children:返回所有子实例$translation->getGroup:返回当前翻译的翻译组$translationGroup->entries:返回属于当前翻译组的所有条目
未来计划
- 处理JSON文件
- 提供一些GUI元素(例如,语言切换器,翻译管理器)