ahmedessam/laravel-autotranslate

Laravel AutoTranslate 是一个包,它可以自动收集 Laravel 项目中的所有翻译键并将它们组织到相应的翻译文件中。该工具通过确保所有翻译键都得到有效管理和更新,简化了多语言开发。

v1.2.1 2024-09-11 20:56 UTC

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 构建您的多语言应用程序吧!