enricobono / localizator
Localizator 是一个为 Laravel 提供提取项目文件中未翻译字符串的小工具。它通过 artisan 命令行和提供的本地化命令工作。
Requires
- php: ^7.2.5|^8.0
- ext-json: *
- illuminate/config: ^6.0|^8.0|^9.0|^10.0
- illuminate/console: ^6.0|^8.0|^9.0|^10.0
- illuminate/filesystem: ^6.0|^8.0|^9.0|^10.0
- illuminate/support: ^6.0|^8.0|^9.0|^10.0
- symfony/finder: ^4.4|^5.1|^6.0
Requires (Dev)
- mockery/mockery: ^1.3.3
- orchestra/testbench: ^4.0|^6.6|^7.0|^8.0
- phpunit/phpunit: ^8.5|^9.5
This package is not auto-updated.
Last update: 2024-09-21 12:12:03 UTC
README
Localizator 是一个为 Laravel 提供通过一个命令从项目文件中提取未翻译字符串的小工具。
赞助商
支持
兼容性
安装
您可以通过 composer 安装此包
composer require --dev amirami/localizator
此包使用 Laravels 的包自动发现机制,这意味着如果您在生产环境中没有安装开发依赖项,它也不会被加载。
如果您出于某种原因想要手动控制此功能
- 将包添加到
composer.json
中的extra.laravel.dont-discover
键,例如:"extra": { "laravel": { "dont-discover": [ "amirami/localizator" ] } }
- 将以下类添加到
config/app.php
中的providers
数组Amirami\Localizator\ServiceProvider::class,
如果您只想在非生产环境中手动加载它,您可以将此代码添加到您的AppServiceProvider
中,使用register()
方法public function register() { if ($this->app->isLocal()) { $this->app->register(\Amirami\Localizator\ServiceProvider::class); } // ... }
注意:请避免在开发环境中缓存配置,这可能会导致安装此包后出现问题;相应地,在运行命令之前通过
php artisan cache:clear
清除缓存,如果遇到问题
您可以使用以下命令发布配置文件:
php artisan vendor:publish --provider="Amirami\Localizator\ServiceProvider" --tag="config"
这是发布配置文件的内容
<?php return [ /** * Localize types of translation strings. */ 'localize' => [ /** * Short keys. This is the default for Laravel. * They are stored in PHP files inside folders name by their locale code. * Laravel comes with default: auth.php, pagination.php, passwords.php and validation.php */ 'default' => true, /** * Translations strings as key. * They are stored in JSON file for each locale. */ 'json' => true, ], /** * Search criteria for files. */ 'search' => [ /** * Directories which should be looked inside. */ 'dirs' => ['resources/views'], /** * Subdirectories which will be excluded. * The values must be relative to the included directory paths. */ 'exclude' => [ // ], /** * Patterns by which files should be queried. * The values can be a regular expression, glob, or just a string. */ 'patterns' => ['*.php'], /** * Functions that the strings will be extracted from. * Add here any custom defined functions. * NOTE: The translation string should always be the first argument. */ 'functions' => ['__', 'trans', '@lang'] ], /** * Should the localize command sort extracted strings alphabetically? */ 'sort' => true, ];
用法
要提取所有字符串,只需运行以下命令
php artisan localize de,fr
此命令将在 resources/lang
目录内创建(如果不存在)de.json
和 fr.json
文件。如果您在文件中启用了并使用了短键(例如 pagination.next
),本地化命令将在 resources/lang
目录内创建 de
和 fr
文件夹,并使用短键的前缀(例如 pagination.php
)创建 PHP 文件。
您也可以在没有国家代码参数的情况下运行 artisan 命令。
php artisan localize
在这种情况下,翻译字符串将生成配置文件中指定的语言的字符串。
注意:已翻译的字符串不会被覆盖。
删除缺失的键
默认情况下,即使本地文件中不存在,也会保留本地文件中的字符串。如果您想要删除不再存在于文件中的那些键,可以将 --remove-missing 选项附加到本地化命令中。
php artisan localize --remove-missing
键排序
默认情况下,JSON 文件中生成的字符串将按键的字母顺序排序。如果您想关闭此功能,只需在配置文件中将 sort => false
设置即可。
搜索
字符串提取的方式很简单。
我们在 search.dirs
配置中定义的目录中查找,使用 search.patterns
中定义的模式匹配文件,最后查找提取字符串,这些字符串是 search.functions
中定义的函数的第一个参数。
您可以在配置文件中更改这些值以适应您的需求。
测试
composer test
更新日志
请参阅更新日志以获取有关最近更改的更多信息。
贡献
请参阅贡献指南以获取详细信息。
安全漏洞
请查阅我们的安全策略了解如何报告安全漏洞。
致谢
许可证
MIT许可证(MIT)。请参阅许可证文件以获取更多信息。