stepovenko/laravel-nova-chained-translation-manager

Laravel Nova Chained Translation Manager 允许您轻松编辑和自定义当前 Laravel 环境的翻译。

1.4.2 2021-07-12 16:09 UTC

This package is not auto-updated.

Last update: 2024-10-02 23:30:06 UTC


README

Laravel Nova Chained Translation Manager 允许您轻松编辑当前 Laravel 环境的翻译。此翻译管理器使用 Laravel Chained Translator,它允许您覆盖默认翻译以使用特定环境的翻译,例如,内容管理器可以独立编辑并覆盖生产环境中由开发人员提供的翻译文件。

通常在开发阶段某个时候,内容管理器想要翻译或微调开发人员添加的翻译字符串。这通常会导致合并和版本控制问题,当开发人员和内容管理器同时在工作翻译文件上时。

Chained Translator 包允许开发人员创建的翻译与内容管理器(自定义翻译)在单独的 lang 目录中独立存在。库合并了两个语言目录的翻译,其中内容管理器的翻译(自定义翻译)覆盖了开发人员的翻译(默认翻译)。有关更多信息,请参阅 Laravel Chained Translator 的文档。

功能

  • 将当前环境的翻译保存到单独的语言目录中的单独翻译文件,以避免版本冲突。
  • 立即保存翻译
  • 搜索翻译和翻译键
  • 过滤特定组和语言的翻译
  • 仅显示缺失翻译的键

目前,此工具不提供添加新翻译键的功能,因为我们的目标用户是翻译人员和内容管理器,我们希望避免他们添加不必要的翻译键。

安装

该软件包可以通过 Composer 安装。

composer require statikbe/laravel-nova-chained-translation-manager

接下来在 Nova 中启用此工具。转到 app/Providers/NovaServiceProvider.php 并将 TranslationManager 添加到工具中。

use Statikbe\NovaTranslationManager\TranslationManager;

    public function tools()
    {
        return [
            new TranslationManager,
        ];
    }

配置

您可以配置自定义语言目录名称并扩展或调整 Laravel Chained Translator 的服务提供程序。查看 Laravel Chained Translator 库 的配置选项。

支持的地区

有两种方法可以更改支持的地区。

选项 1

使用以下命令发布配置文件,并使用您支持的地区和编辑器首选项进行配置。

php artisan vendor:publish --tag=nova-chained-translation-manager

例如。

    /*
    |--------------------------------------------------------------------------
    | Application Supported Locale Configuration
    |--------------------------------------------------------------------------
    |
    | The application locale determines the possible locales that can be used.
    | You are free to fill this array with any of the locales which will be 
    | supported by the application.
    |
    */

    'supported_locales' => [
        'en',
        'nl'
    ],

选项 2

如果您的应用程序已经有一个配置文件声明了您的地区,那么您可以在任何服务提供程序中设置支持的地区。创建一个新的或使用 app/Providers/AppServiceProvider.php 并在 boot 函数中将支持的地区作为数组设置,如下所示

use Statikbe\NovaTranslationManager\TranslationManager;

public function boot()
{
    TranslationManager::setLocales(['en', 'nl']);
}

更改编辑器

您还可以更改编辑器,有时翻译值可能很大,如果您有一个更大的区域来编辑它们或在编辑时添加一些粗体/下划线效果,那就很好了。您可以使用 3 个支持值:input、textarea、trix。它们的名字是自我解释的。请记住,当使用 Trix 时,您还应该配置允许的 HTML 标签。不要忘记更改这些设置后清除缓存并刷新页面以查看结果 :)

例如。

    /*
    |--------------------------------------------------------------------------
    | Editor to use
    |--------------------------------------------------------------------------
    |
    | Choose what type of editor you want to use while editing your translations
    | input - For really dead simple input
    | textarea - For a larger textarea to deal with
    | trix - Will use Trix Editor for editing locales supporting some HTML on it.
    |
    | Note : Please keep in mind while using Trix to configure your allowed HTML
    | tags. Otherwise it may pose XSS attacks risk if field could be edited by the end user.
    |
    | Values : trix, input, textarea
    |
    */

    'editor' => 'input',
    'trix_allowed_tags' => '<code><p><b><u><a><br><ul><li><ol><pre><h2><h3><h4><h5><del><blockquote><dl><dd><strong>',

忽略组

您还可以忽略某些翻译组在 Nova UI 中显示。创建一个包含您要忽略的键的数组

例如。

    /*
    |--------------------------------------------------------------------------
    | Ignore Groups
    |--------------------------------------------------------------------------
    | This will ignore certain groups from the translations UI
    | Supports an array of keys
    |
    */

    'ignore_groups' => ['auth','pagination','passwords','routes','nova','nova/validation'],

合并翻译

您可以通过运行由 Laravel Chained Translator 库 提供的命令,将当前环境的自定义翻译与默认翻译文件合并。

致谢

我们使用了 Joe Dixon 的 翻译库作为技术专长和灵感的来源。

非常感谢你们做出的出色工作!

许可证

MIT 许可证(MIT)。更多信息请参阅 许可证文件

截图

Overview

Select different languages

Select different groups

Only show missing translations