wedesignit/laravel-translations-import

从您的Laravel翻译文件导入翻译到数据库。

v1.1.0 2023-05-02 11:10 UTC

This package is auto-updated.

Last update: 2024-08-31 00:52:04 UTC


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

命令选项应以逗号分隔。
对于组,可以在末尾使用通配符(*)来允许处理所有子目录(对于ignoreonly)。示例:--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',
    ],
];