tomatophp/filament-translations

使用数据库和缓存管理您的翻译,您可以扫描语言标签,如trans()、__(),获取其中的字符串并使用UI进行翻译。

v1.0.28 2024-09-17 17:02 UTC

README

Screenshot of Login

文档

  1. Filament 翻译
  2. 屏幕截图
  3. 安装
  4. 使用语言切换器
  5. 用法
  6. 其他 Filament 包
  7. 支持
  8. 文档
  9. 变更日志
  10. 安全性
  11. 鸣谢
  12. 许可证

Filament 翻译

Latest Stable Version License Downloads

使用数据库和缓存管理您的翻译,您可以扫描语言标签,如trans()__(),获取其中的字符串并使用UI进行翻译。

此插件是在spatie/laravel-translation-loader上构建的

屏幕截图

Screenshot of list Screenshot of edit Screenshot of settings

安装

composer require tomatophp/filament-translations

最后在/app/Providers/Filament/AdminPanelProvider.php上注册插件

$panel->plugin(\TomatoPHP\FilamentTranslations\FilamentTranslationsPlugin::make())

允许 ChatGPT 自动翻译

如果您想使用 ChatGPT 自动翻译您的语言,您需要运行以下命令安装OpenAI包:

composer require openai-php/laravel

现在您需要在您的.env文件中添加以下内容:

OPENAI_API_KEY=
OPENAI_ORGANIZATION=

通过添加以下内容在面板提供者上启用此功能:

$panel->plugin(\TomatoPHP\FilamentTranslations\FilamentTranslationsPlugin::make()->allowGPTScan())

允许 Google Translate 自动翻译

如果您想使用 Google Translate 自动翻译您的语言,您需要运行以下命令安装stichoza/google-translate包:

composer require stichoza/google-translate-php

通过在管理员面板提供者文件中添加以下内容来启用此功能:

$panel->plugin(\TomatoPHP\FilamentTranslations\FilamentTranslationsPlugin::make()->allowGoogleTranslateScan())

允许创建按钮创建新语言

如果您想允许用户创建新语言,您需要在面板提供者中添加以下内容:

$panel->plugin(\TomatoPHP\FilamentTranslations\FilamentTranslationsPlugin::make()->allowCreate())

允许清除所有翻译按钮

如果您想允许用户清除所有翻译,您需要在面板提供者中添加以下内容:

$panel->plugin(\TomatoPHP\FilamentTranslations\FilamentTranslationsPlugin::make()->allowClearTranslations())

发布资源

您可以使用以下命令将资源发布到您的项目中:

php artisan vendor:publish --tag="filament-translations-migrations"

如果您需要发布配置,请运行:

php artisan vendor:publish --tag="filament-translations-config"

运行迁移

php artisan migrate

现在运行缓存清理:

php artisan optimize:clear

发布资产

您可以使用以下命令发布视图文件:

php artisan vendor:publish --tag="filament-translations-views"

您可以使用以下命令发布语言文件:

php artisan vendor:publish --tag="filament-translations-lang"

您可以使用以下命令发布迁移文件:

php artisan vendor:publish --tag="filament-translations-migrations"

使用语言切换器

您可以使用以下插件在面板中使用语言切换器:

$panel->plugin(\TomatoPHP\FilamentTranslations\FilamentTranslationsSwitcherPlugin::make())

注意您的认证用户表必须在表中具有lang字段以使此切换正常工作。

用法

使用命令行扫描

您可以通过扫描项目以获取所有语言标签并将它们保存到数据库中。

php artisan filament-translations:import

更改扫描以在队列上工作

在您的配置文件中,只需将use_queue_on_scan更改为true

'use_queue_on_scan' => true,

自定义导入命令

您可以为导入翻译创建自己的命令,将自定义导入类添加到配置文件中,如下所示:

'path_to_custom_import_command' => ImportTranslations::class,

此命令将在您在 UI 中单击“扫描新语言”按钮时自动运行。

自定义 Excel 导入

您可以创建自己的 Excel 导入以导入翻译,将自定义导入类添加到配置文件中,如下所示:

'path_to_custom_excel_import' => CustomTranslationImport::class,

导入类基于 Laravel Excel 包。您可以在此处检查文档。此导入将在您在 UI 中单击“导入”按钮时自动运行。

自定义 Excel 导出

您可以根据自己的格式创建自己的Excel导出,将自定义导出类添加到配置文件中,如下所示

'path_to_custom_excel_export' => CustomTranslationExport::class,

导出类基于Laravel Excel包。您可以在这里查看文档。在UI中点击“导出”按钮时,此导入将自动运行。

在 UI 中显示或隐藏按钮

您可以通过更改配置文件来显示或隐藏UI中的按钮。默认情况下,所有按钮都显示。

    'show_import_button' => true,
    'show_export_button' => false,
    'show_scan_button' => false ,

自定义资源

您可以根据自己的需求创建资源来在UI中显示翻译,将自定义资源类添加到配置文件中,如下所示

    'translation_resource' => CustomResource::class,

这在您想要完全控制UI但仍然想使用翻译包时特别有用。考虑在自定义资源中实现对用户角色的检查,当使用shouldRegisterNavigation时。

其他 Filament 包

查看我们的令人惊叹的 TomatoPHP