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

Codacy Badge Latest Stable Version Total Downloads Latest Unstable Version License

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,
];

用法

在后台,此包创建了两个额外的模型表(TranslationGroupTranslation)(translation_groupstranslations)。

您可以使用它们像使用Laravel中的模型一样。相关的命名空间是:Brotzka\TranslationManager\Module

您可以使用以下方式查询关系

  • $translation->getParent:如果存在,返回父实例(如果不存在,返回NULL)
  • $translation->children:返回所有子实例
  • $translation->getGroup:返回当前翻译的翻译组
  • $translationGroup->entries:返回属于当前翻译组的所有条目

未来计划

  • 处理JSON文件
  • 提供一些GUI元素(例如,语言切换器,翻译管理器)