kkomelin/laravel-translatable-string-exporter

Laravel 可翻译字符串导出工具

1.22.0 2024-03-13 13:44 UTC

README

Tests Status Badge PHPStan Status Badge Code Styles Check Badge

您可以使用 __('Translate me')@lang('Translate me') 与 JSON 文件中的翻译一起翻译字符串。可翻译字符串导出工具旨在收集应用程序中所有可翻译字符串,并创建相应的 JSON 格式翻译文件,以简化翻译过程。

版本

尽管我们在次要版本中放弃了对 PHP 版本的支持,但 Composer 确保使用旧版本 PHP 的用户不会接收到尚未支持的 PHP 代码。

安装

通常,将包作为开发依赖项安装就足够了。

composer require kkomelin/laravel-translatable-string-exporter --dev

配置

要更改 项目默认值,请使用以下命令在您的 config/ 文件夹中创建配置文件并做出必要的更改

php artisan vendor:publish --provider="KKomelin\TranslatableStringExporter\Providers\ExporterServiceProvider"

用法

导出可翻译字符串

php artisan translatable:export <lang>

其中 <lang> 是语言代码或以逗号分隔的语言代码列表。例如

php artisan translatable:export es
php artisan translatable:export es,bg,de

带有 "es,bg,de" 参数的命令会创建 es.jsonbg.jsonde.json 文件,包含可翻译字符串或更新项目中 lang/ 文件夹中的现有文件。

在语言文件中查找未翻译的字符串(命令)

要检查现有的语言文件(查找未翻译的字符串),请使用此命令

php artisan translatable:inspect-translations fr

该命令一次只能检查一种语言。

要导出某种语言的翻译字符串并在其中检查翻译,请使用以下命令

php artisan translatable:inspect-translations fr --export-first

在语言文件中查找未翻译的字符串(IDE)

查找语言文件中未翻译字符串的另一种方法是搜索原始字符串和翻译字符串相同的项目。您可以在大多数编辑器中使用正则表达式完成此操作。

在 PhpStorm 和 VSCode 中,您可以使用此模式:"([^"]*)": "\1"

持久字符串

某些字符串未包含在导出中,因为它们正在动态生成。例如

{{ __(sprintf('Dear customer, your order has been %s', $orderStatus)) }}

其中 $orderStatus 可以是 'approved''paid''cancelled' 等等。

在这种情况下,您可以手动将字符串添加到 <lang>.json 文件中。例如

  ...,
  "Dear customer, your order has been approved": "Dear customer, your order has been approved",
  "Dear customer, your order has been paid": "Dear customer, your order has been paid",
  ...

为了确保下一次运行导出命令时不会删除这些手动添加的字符串,您应将它们添加到名为 persistent-strings.json 的 JSON 文件中。例如

[
  ...,
  "Dear customer, your order has been approved",
  "Dear customer, your order has been paid",
  ...
]

许可证 & 版权

MIT,(c) 2017-present Konstantin Komelin 和 贡献者