ahmedessam / laravel-autotranslate
Laravel AutoTranslate 是一个包,它可以自动收集 Laravel 项目中的所有翻译键并将它们组织到相应的翻译文件中。该工具通过确保所有翻译键都得到有效管理和更新,简化了多语言开发。
Requires
- php: ^8.2
- illuminate/support: ^11.0|^10.0|^9.0|^8.0
This package is auto-updated.
Last update: 2024-09-11 21:03:19 UTC
README
Laravel AutoTranslate 是一个包,它可以自动收集 Laravel 项目中的所有翻译键并将它们组织到相应的翻译文件中。该工具通过确保所有翻译键都得到有效管理和更新,简化了多语言开发。
安装
您可以通过 Composer 安装此包
composer require ahmedessam/laravel-autotranslate
使用方法
步骤 1:发布翻译文件
在运行 AutoTranslate 命令之前,您必须使用 Laravel 的内置命令发布翻译文件
php artisan lang:publish
这将创建 lang 目录中必要的语言文件。
步骤 2:同步翻译键
一旦发布了翻译文件,您就可以运行 AutoTranslate 命令来自动收集和组织翻译键
php artisan sync:translations
此命令将扫描您的整个 Laravel 项目以查找翻译键,并确保它们在相应的翻译文件中正确放置。
配置
AutoTranslate 包提供了一个配置文件,允许您自定义翻译同步过程的行为。您可以使用以下命令发布配置文件
php artisan vendor:publish --tag=autotranslate-config
这将创建一个名为 autotranslate.php
的配置文件,位于 config
目录中。配置文件包含以下选项
- reset_patterns:如果设置为 true,则仅使用您的额外模式。如果设置为 false,则同时使用默认和额外模式。
- patterns:一个包含在 PHP 文件中搜索翻译键的额外模式数组。您可以在不同的格式中添加自己的模式以捕获翻译键。
自定义模式
您可以为在 PHP 文件中搜索翻译键定义自定义模式。要添加自定义模式,只需将其添加到 autotranslate.php
配置文件中的 patterns
数组中。每个模式都应该是一个正则表达式,用于捕获翻译键。
以下是一个添加自定义模式以捕获格式为 trans('key')
的翻译键的示例
'patterns' => [ '/trans\([\'\"](.*?)[\'\"]\)/', ],
此模式将捕获格式为 trans('key')
的翻译键并提取键值。
自定义目录
默认情况下,AutoTranslate 包会扫描默认的 Laravel 目录以查找翻译键。如果您有包含翻译键的其他目录,您可以在 autotranslate.php
配置文件中的 directories
数组中指定它们。
以下是一个添加自定义目录以搜索翻译键的示例
'directories' => [ 'custom_directory', ],
这将包括 custom_directory
以在搜索翻译键中,并移除默认的 Laravel 目录。
保存翻译的目录
默认情况下,AutoTranslate 包将翻译键保存到 resources/lang
目录。如果您想将翻译键保存到不同的目录,您可以在 autotranslate.php
配置文件中的 default_directory
选项中指定该目录。
以下是一个将翻译键保存到名为 custom_lang
的自定义目录的示例
'default_directory' => 'custom_lang',
这将把翻译键保存到 custom_lang
目录,而不是默认的 lang
目录。
功能
翻译键提取
AutoTranslate 包会扫描您的 Laravel 项目以查找翻译键,并从各种来源中提取它们,包括
- 刀片模板
- PHP 文件
该包通过 Laravel 的 __()
、trans()
辅助函数和 Blade 的 @lang
指令识别翻译键。
要求
- PHP 8.2 或更高版本
- Laravel 10.0 或更高版本
- Composer
许可证
Laravel AutoTranslate 包是开源软件,使用 MIT 许可证授权。
作者
- 艾哈迈德·艾萨姆
贡献
欢迎贡献!请随时提交一个 Pull Request。
问题
如果您发现该包有任何问题或有任何疑问,请随时在 GitHub 仓库中打开一个问题。
享受使用 Laravel AutoTranslate 构建您的多语言应用程序吧!