dyankiev / laravel-translatable-string-exporter
Laravel 的可翻译字符串导出工具
Requires
- php: >=5.4.0
- ext-json: *
- illuminate/support: ^5.4|^6|^7|^8|^9|^10
- illuminate/translation: ^5.4|^6|^7|^8|^9|^10
- symfony/finder: ^3.2|^4|^5|^6
Requires (Dev)
- orchestra/testbench: ^3.4|^4.0|^5.0|^6.0
README
众所周知,Laravel 5.4 引入了一种“新的”字符串翻译方式。现在您可以使用 __('Translate me')
或 @lang('Translate me')
,结合 JSON 文件中的翻译,来翻译字符串。可翻译字符串导出工具旨在收集应用程序中所有可翻译的字符串,并以 JSON 格式创建相应的翻译文件,以简化翻译过程。
安装
- 将 kkomelin/laravel-translatable-string-exporter 添加到您的项目中
composer require kkomelin/laravel-translatable-string-exporter
- [Laravel < 5.5 仅限] 将
ExporterServiceProvider
添加到 config/app.php 中的 providers 数组
KKomelin\TranslatableStringExporter\Providers\ExporterServiceProvider::class,
配置
要更改 项目默认值,请使用以下命令在您的 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.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
可以是 '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 Konstantin Komelin