twister3x/laravel-nova-translation-manager

Laravel Nova 连锁翻译管理器允许您轻松编辑和自定义当前Laravel环境的翻译。

v3.0.7 2023-02-07 07:50 UTC

README

Card of Laravel Nova Chained Translation Manager

Laravel Nova 连锁翻译管理器

Latest Version on Packagist Total Downloads

注意:如果您正在寻找nova 3,请查看分支 3.0

Laravel Nova 连锁翻译管理器允许您轻松编辑当前Laravel环境的翻译。此翻译管理器使用Laravel连锁翻译器,允许您用特定环境的翻译覆盖默认翻译,例如,内容管理器可以独立编辑并覆盖生产环境中的翻译文件,而无需考虑开发者提供的翻译。

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

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

特性

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

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

安装

可以通过Composer安装此包。

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

Nova 4支持从v3.0.0版本开始。如果您仍在使用Nova 3,请使用v2版本

composer require statikbe/laravel-nova-chained-translation-manager:~2

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

use Statikbe\NovaTranslationManager\TranslationManager;

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

配置

您可以配置自定义语言目录名称并扩展或微调Laravel连锁翻译器的服务提供者。查看Laravel 连锁翻译器库的配置选项。

支持的区域设置

有两种方法可以更改支持的区域设置。

选项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个支持值:inputtextareatrix。它们的名称是自解释的。

注意:我们不推荐使用Trix作为编辑器,因为如果您在HTML翻译中使用变量,例如锚标签的url,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的翻译库作为技术专业知识和灵感的来源。

@nelumoraru@FrittenKeeZ为Nova 4升级了库。

非常感谢大家的出色工作!

许可证

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

屏幕截图

Overview

Select different languages

Select different groups

Only show missing translations