inweb / metadata
实体元数据
9.0.0
2021-12-13 23:45 UTC
Requires
- php: ^7.1|^8.0
README
解析您的文件并抽取可翻译短语。
需求
- PHP >= 7.1
安装
您可以通过 composer 安装此包
composer require inwebcomp/translations-parser
允许访问 ./lang 文件夹
chmod 0777 -R ./resources/lang
将外观添加到您的 config/app.php 文件中
'aliases' => [ // ... 'TranslationsParser' => InWeb\TranslationsParser\TranslationsParserFacade::class ],
配置
运行以发布 translations-parser.php 配置文件
php artisan vendor:publish --provider="InWeb\TranslationsParser\TranslationsParserServiceProvider"
在那里您可以更改 artisan 命令使用的区域设置和文件夹
// Locales to save phrases 'locales' => [ 'ru', 'en' ], // Directories in which phrases are searched 'directories' => [ base_path('app'), resource_path('views'), resource_path('js') ], // Excluded directories or files 'excluded' => [ base_path('app/Nova') ], // Where is your folder with translations 'lang_files_directory' => resource_path('lang')
有时您会在应用程序运行期间收到区域设置列表。您可以直接在代码中覆盖此设置
\Config::set('translations-parser.locales', [ 'en', 'fr ]);
用法
Artisan 命令
使用 artisan 命令解析翻译
php artisan translations:parse
强制解析翻译。 旧翻译将被删除
php artisan translations:parse --force
方法
从字符串获取短语
TranslationsParser::parse('<div>@lang("Phrase")</div>'); // ['Phrase']
从目录中的文件获取短语
TranslationsParser::parse([ resouce_path('views'), resouce_path('js') ]); // ['Phrase 1', 'Phrase 2', ...]
可以排除列表中的目录或文件
TranslationsParser::parse([ resouce_path('views') ], [ resouce_path('views/layouts') // Exclude 'views/layouts' directory ]);
从 {locale}.json 文件获取短语
TranslationsParser::getParsed('en');
将短语保存到 .json 文件
TranslationsParser::save('en', [ 'Phrase' ]); // Or with values TranslationsParser::save('en', [ 'Phrase' => 'Value' ]);
默认情况下,短语将 不会覆盖。只有在您的 .json 文件中没有短语,或者短语翻译为空时,才会覆盖
将最后一个参数设置为 true 以强制写入 .json。 您将丢失旧数据
TranslationsParser::save('en', [ 'Phrase' => 'Value' ], true);
保存一个短语翻译
TranslationsParser::translate('en', 'Phrase', 'Translation');
测试
composer test
鸣谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。