inweb/metadata

9.0.0 2021-12-13 23:45 UTC

This package is auto-updated.

Last update: 2024-09-24 23:11:06 UTC


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)。有关更多信息,请参阅 许可文件