wedesignit / laravel-translations-import
从您的Laravel翻译文件导入翻译到数据库。
Requires
- php: ^7.4|^8.0
Requires (Dev)
- orchestra/testbench: ^3.8
- phpunit/phpunit: ^7.5
Suggests
- spatie/laravel-translation-loader: Retrieve translations seemless from the database or language file
README
此包为您提供了处理语言文件和数据库的命令。您不必手动将翻译添加到数据库中,这个命令集提供了导入和导出翻译、查找php/twig文件中的未导入翻译、从数据库中清理空翻译以及一次性删除所有翻译的工具!
有用性和信用
在您使用类似
Spatie的Laravel翻译加载器 的包的情况下,尤其有用。在这种情况下,语言文件可以作为 '默认值' 导入到项目中。当您想添加新的默认值时,只需将它们添加到您的语言文件中,重新运行导入命令,新添加的翻译将被添加以供使用,而现有的翻译不会被修改。如果您想使用更新的翻译作为默认值,可以导出文件。
感谢 Barryvdh的翻译管理器 创建了这个包,我们可以在其基础上构建。
升级
有关详细信息,请参阅 升级。
用法
导入命令
php artisan translations:import
此命令将导入在设置的语言文件夹中找到的所有翻译文件。
该命令提供6个选项
ignore-locales
:允许您设置不应导入的区域设置。
示例:--ignore-locales=fr,de
。ignore-groups
:允许您设置不应导入的组。
示例:--ignore-groups=routes,admin/dashboard,frontend/employer
。only-groups
:允许您设置应仅导入的组。不会导入其他组。与ignore-groups
类似。overwrite
:启用覆盖数据库中现有翻译的选项。快捷键o
。allow-vendor
:允许导入供应商翻译覆盖。快捷键a
。(语言文件位于lang/vendor/{package}/
)。allow-json
:允许导入JSON翻译。快捷键j
。
命令选项应以逗号分隔。
对于组,可以在末尾使用通配符(*)来允许处理所有子目录(对于ignore
或only
)。示例:--only-groups=admin/*
。
导出命令
php artisan translations:export
此命令将数据库中的所有翻译写入语言文件夹。现有翻译将被覆盖(除了数据库中不存在的文件)。
该命令提供4个选项
ignore-groups
only-groups
allow-vendor
allow-json
这些选项与导入命令中解释的相同
查找命令
php artisan translations:find
此命令将找到您的php/twig文件中的所有翻译,并在它们不存在于数据库中时导入它们。
请注意,应谨慎处理此命令,想象一下我们在blade和trans文件中有这个:
@foreach(__('admin/employers.datatables.filter.statuses') as $value => $translation) <option value="{{$value}}">{{$translation}}</option> @endforeach
// admin/employers.php 'datatables' => [ 'filter' => [ 'statuses' => [ 'active' => 'Actief', 'not-active' => 'Inactief', 'approved' => 'Goedgekeurd', 'declined' => 'Afgekeurd', ], ], ];
该命令将找到这个翻译并导入它,它将编码'statuses'的值。
该命令提供1个选项
path
:默认情况下,查找命令从根目录开始。使用此选项,您可以指定命令仅搜索子目录。
示例:--path=resources/lang
。force-confirm
:选项用于自动确认所有找到的翻译。如果没有此选项,您需要手动确认每个导入。快捷键c
。
清洁命令
php artisan translations:clean
此命令将删除所有没有存储值的翻译。
该命令没有选项。
删除命令
php artisan translations:nuke
此命令将删除所有翻译。
该命令有1个选项
only-groups
此选项的作用与导入命令中解释的相同
安装
您可以通过composer安装此软件包
composer require wedesignit/laravel-translations-import
配置
默认情况下,配置会设置表和列,遵循来自Spatie的Laravel Translation Loader迁移的language_lines
表,结构如下
group
:存储组(string
)。key
:存储键(string
)。text
:存储翻译(JSON格式)(text
)。
可选地,您可以将配置文件发布以更改表和列名。
php artisan vendor:publish --provider="WeDesignIt\LaravelTranslationsImport\TranslationsImportServiceProvider" --tag="config"
这是已发布配置文件的内容
<?php return [ /** * The table where the translations are stored */ 'table' => 'language_lines', /** * The column where the translations group should be stored */ 'group' => 'group', /** * The column where the translation key should be stored */ 'key' => 'key', /** * The column where the translation text itself should be stored */ 'translations' => 'text', /** * Array of functions which are used to get translations */ 'trans_functions' => [ 'trans', 'trans_choice', 'Lang::get', 'Lang::choice', 'Lang::trans', 'Lang::transChoice', '@lang', '@choice', '__', '$trans.get', ], ];