therichardw/translate-scanner

Laravel无双重转义的可翻译字符串导出器

dev-master 2022-09-12 12:26 UTC

This package is auto-updated.

Last update: 2024-09-12 16:52:22 UTC


README

https://github.com/kkomelin/laravel-translatable-string-exporter

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

版本

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

安装

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

composer require therichardw/translate-scanner --dev

配置

要更改项目默认值,请使用以下命令在您的config文件夹中创建一个配置文件,并在其中进行必要的更改

php artisan vendor:publish --provider="TheRichardW\TranslateScanner\Providers\ExporterServiceProvider"

使用方法

导出可翻译字符串

php artisan translatable:export <lang>

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

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

带有“es,bg,de”参数的命令将创建es.json、bg.json、de.json文件,其中包含可翻译字符串或更新项目中resources/lang文件夹中现有的文件。

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

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

php artisan translatable:inspect-translations fr

一次只处理一种语言。

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

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

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

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

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

持久字符串

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

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

其中$orderStatus可以是'批准'、'已支付'、'已取消'等。

在这种情况下,您可以手动将字符串添加到<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 Konstantin Komelin和贡献者