tomatophp / filament-translations
使用数据库和缓存管理您的翻译,您可以扫描语言标签,如trans()、__(),获取其中的字符串并使用UI进行翻译。
Requires
- php: ^8.1|^8.2
- filament/filament: ^3.0.0
- filament/notifications: ^3.0.0
- maatwebsite/excel: ^3.1
- spatie/laravel-translation-loader: ^2.7
- tomatophp/console-helpers: ^1.1
- tomatophp/filament-developer-gate: ^1.0
- tomatophp/filament-translation-component: ^1.0
This package is auto-updated.
Last update: 2024-09-17 17:03:17 UTC
README
文档
Filament 翻译
使用数据库和缓存管理您的翻译,您可以扫描语言标签,如trans()
、__()
,获取其中的字符串并使用UI进行翻译。
此插件是在spatie/laravel-translation-loader上构建的
屏幕截图
安装
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