赵斯奇 / laravel-localization-helpers
一款用于简化Laravel项目中翻译管理的 artisan 命令包
Requires
Requires (Dev)
- orchestra/testbench: 3.5.*
- phpunit/phpunit: ^6.0
- satooshi/php-coveralls: dev-master
- dev-master
- 5.7.x-dev
- 5.6.x-dev
- 5.4.x-dev
- 5.3.x-dev
- 5.2.x-dev
- 5.1.x-dev
- 5.0.x-dev
- 4.2.x-dev
- v2.6.6
- v2.5.5
- v2.5.4
- v2.4.5
- v2.4.4.1
- v2.4.4
- v2.3.5
- v2.3.4
- v2.3.3
- v2.3.2
- v2.3.1
- v2.3.0
- v2.2.5
- v2.2.4
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.5
- v2.1.4
- v2.1.3
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.3.3
- v1.3.2
- v1.3.1
- 1.3.0
- v1.2.2
- v1.2.1
- v1.2
- v1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- dev-dev
- dev-deprecated
This package is not auto-updated.
Last update: 2024-09-14 14:46:41 UTC
README
这个分支是当前的开发分支
LLH 是一套 artisan 命令,用于管理 Laravel 项目的翻译。主要功能
- 解析您的代码并生成语言文件
- 自动翻译您的句子,得益于 Microsoft Translator API
- 根据您的代码风格配置输出
目录
1. 安装
- 根据版本兼容性矩阵选择您的版本
-
在
composer.json
文件的require-dev
数组中添加以下行,并根据您的 Laravel 版本替换版本(如有需要)"potsky/laravel-localization-helpers" : "2.6.*"
-
更新您的安装:
composer update
-
对于 Laravel,在
config/app.php
配置文件的AppServiceProvider
数组中添加以下行Potsky\LaravelLocalizationHelpers\LaravelLocalizationHelpersServiceProvider::class,
在 Laravel 5.5 中,如果您在生产环境中不使用此包,请禁用自动加载,并且仅在
local
或dev
上注册它-
在
AppServiceProvider
的register
方法中添加以下行public function register() { if ($this->app->environment() === 'dev') { // or local or whatever $this->app->register(\Potsky\LaravelLocalizationHelpers\LaravelLocalizationHelpersServiceProvider::class); } }
-
通过在
composer.json
文件中添加以下行来禁用自动注册提供者"extra" : { "laravel" : { "dont-discover" : [ "potsky/laravel-localization-helpers" ] } }
-
-
对于 Lumen,在
bootstrap/app.php
文件中添加以下行$app->register( Potsky\LaravelLocalizationHelpers\LaravelLocalizationHelpersServiceProvider::class ); $app->configure('laravel-localization-helpers');
-
现在执行
php artisan list
,您应该能看到新的 localization 命令... localization localization:clear Remove lang backup files localization:find Display all files where the argument is used as a lemma localization:missing Parse all translations in app directory and build all lang files ...
在 Laravel 中,如果您需要在代码中管理翻译,可以在别名中添加 facade
'LocalizationHelpers' => Potsky\LaravelLocalizationHelpers\Facade\LocalizationHelpers::class
2. 配置
为了配置您的新安装包,请通过执行以下命令创建一个配置文件
php artisan vendor:publish
然后您可以在文件中修改配置
config/laravel-localization-helpers.php
添加新的文件夹以搜索,添加您自己的语言方法或函数,...
对于 Lumen,请手动将配置文件复制为
config/laravel-localization-helpers.php
。
备份文件
您不应该将备份语言文件包含在 GIT 或其他版本控制系统中。
在您的 laravel
文件夹中,在 .gitignore
文件中添加以下内容
# Do not include backup lang files resources/lang/*/[a-zA-Z]*20[0-9][0-9][0-1][0-9][0-3][0-9]_[0-2][0-9][0-5][0-9][0-5][0-9].php
3. 使用方法
3.1 命令 localization:missing
此命令解析所有您的代码,并根据所有 lang/XXX/
目录中的语言文件生成翻译。
使用 php artisan help localization:missing
获取有关选项的更多信息。
示例
生成所有语言文件
php artisan localization:missing
生成所有语言文件而不提示
php artisan localization:missing -n
生成所有语言文件而不备份旧文件
php artisan localization:missing -b
生成所有语言文件并自动翻译
php artisan localization:missing -t
您需要设置您的 Microsoft Bing Translator 凭据。更多信息请参阅:https://github.com/potsky/microsoft-translator-php-sdk#user-content-2-configuration
生成所有语言文件而不保留过时的词项
php artisan localization:missing -o
生成所有语言文件而不为新发现的词项添加任何注释
php artisan localization:missing -c
生成所有语言文件而不添加头部注释
php artisan localization:missing -d
生成所有语言文件并设置新的词项值
以下 3 个命令会产生相同的输出
php artisan localization:missing
php artisan localization:missing -l
php artisan localization:missing -l "TODO: %LEMMA"
您可以自定义未知词项的默认生成值。
以下命令让新值留空
php artisan localization:missing -l ""
以下命令在所有词项值前添加 "请翻译此:"
php artisan localization:missing -l "Please translate this : %LEMMA"
以下命令将所有词项值设置为 null,以提供所有缺失值的回退翻译。
php artisan localization:missing -l null
以下命令将所有词元值设置为 "请翻译此内容!"
php artisan localization:missing -l 'Please translate this !'
用于shell集成的静默选项
#!/bin/bash php artisan localization:missing -s if [ $? -eq 0 ]; then echo "Nothing to do dude, GO for release" else echo "I will not release in production, lang files are not clean" fi
模拟所有操作(不写入任何内容)进行干运行
php artisan localization:missing -r
在处理结束后打开所有必须编辑的文件
php artisan localization:missing -e
您可以在配置文件中编辑编辑器路径。默认情况下,在 Mac OS X 上编辑器为 Sublime Text
'editor_command_line' => '/Applications/Sublime\\ Text.app/Contents/SharedSupport/bin/subl'
对于 PHPStorm 在 Mac OS X
'editor_command_line' => '/usr/local/bin/phpstorm'
3.2 命令 localization:find
此命令将在您的所有代码中搜索作为词元的参数。
使用 php artisan help localization:find
获取有关选项的更多信息。
示例
查找常规词元
php artisan localization:find Search
以详细模式查找常规词元
php artisan localization:find -v Search
显示短路径查找常规词元
php artisan localization:find -s "Search me"
使用正则表达式查找词元
php artisan localization:find -s -r "@Search.*@" php artisan localization:find -s -r "/.*me$/"
使用PCRE函数
3.3 命令 localization:clear
此命令将删除所有备份语言文件。
使用 php artisan help localization:clear
获取有关选项的更多信息。
示例
删除所有备份
php artisan localization:clear
删除7天以上的备份
php artisan localization:clear -d 7
4. 支持
使用 GitHub问题工具 打开问题或提出要求。
5. 升级通知
从 v2.x.5
到 v2.x.6
- PHPCSFixer 已更改。不再支持以前的修复程序。请查看包中的 配置文件 以检查新规则。
从 v2.x.4
到 v2.x.5
- 在 配置文件 中添加了参数
dot_notation_split_regex
。请将其添加到您的配置文件中。
从 v2.x.1
到 v2.x.2
- 在 配置文件 中添加了参数
obsolete_array_key
。请将其添加到您的配置文件中。
从 v1.x.x
到 v2.x.x
- 首先,您需要更新您的composer文件以设置正确的版本
- 请查看包中的 配置文件 以添加您当前配置文件中不存在的参数。
6. 更新日志
v2.x.6
- 变更:支持 Laravel 5.5
- 变更:更新 PHPCSFixer,规则已更改!
- 变更:翻译包已更新
v2.x.5
- 新增:添加了
dot_notation_split_regex
以自动处理词元中的点(#59) - 修复:忽略供应商语言文件夹(#59)
- 新增:现在可以忽略特定的语言文件,而不仅仅是语言家族(#44)
- 修复:在干运行模式下,仍然创建了语言文件(#54)
- 变更:尝试处理动态词元错误(#53)
- 变更:更改composer要求以最小化lumen要求(#49)
- 变更:处理间接翻译调用(#47)
v2.x.4
- 新增:从
2.4.4
分支支持 Laravel 5.3(#41) - 新增:跟踪多行函数调用(#33)
- 新功能:通过在新值中提供null来支持翻译的回退(#38)
- 更改:使用包
friendsofphp/php-cs-fixer
而不是fabpot/php-cs-fixer
(#28)
v2.x.3
v2.x.2
v2.x.1
- 修复使用备份文件时以及在laravel安装路径中有点时的问题(#20)
v2.x.0
- 添加新命令
localization:clear
以删除备份 - 添加指定输出格式的选项(#17)
- 添加指定扁平数组样式输出的选项(#18)
- 添加使用Bing翻译命令翻译句子的选项
- 新翻译现在是
- 默认使用
TODO:
前缀标记(如果你两次运行了缺少的artisan命令而没有在第一次运行时翻译旁边的词项,你的丢失翻译就会在lang文件中丢失。现在默认情况下,只需在lang文件中搜索TODO即可!) - 如果使用选项
t
,则进行翻译 - 缩短到它们的最小值(
trans( 'message.child.this is a text' )
现在将生成['child'] => 'TODO: this is a text',
而不是['child'] => 'TODO: child.this is a text',
)
- 默认使用
内部
- 完全重构
- 单元测试
- 测试覆盖率
- 外观以允许你在代码中使用本地化助手(翻译、查找丢失的翻译等...)
v1.3.3
- 生命结束。1.x版本不再受支持且不再工作。请根据您的laravel版本使用正确的版本。
v1.3.2
- 修复与Laravel 5.2的不兼容性(#16)
v1.3.1
- 添加Laravel 5的资源文件夹
v1.3
- 添加对Laravel 5的完全支持
v1.2.2
- 添加对Blade模板中的 @lang 和 @choice 的支持(由Jesper Ekstrand提供)
v1.2.1
- 在配置文件中添加
lang_folder_path
参数以配置自定义的lang文件位置 - 默认情况下检查Laravel 4.x中的
app/lang
中的lang文件 - 默认情况下检查Laravel 5中的
app/resources/lang
中的lang文件
v1.2
- 支持Laravel 5(4.3)
- 在配置文件中添加
ignore_lang_files
参数以忽略lang文件(例如,对于validation
文件很有用)
7. 贡献
- 分叉它
- 创建你的功能分支(
git checkout -b my-new-feature
) - 提交你的更改(
git commit -am 'Added some feature'
) - 推送到分支(
git push origin my-new-feature
) - 创建新的Pull Request
测试在 tests
中。要运行测试: vendor/bin/phpunit
。
合并后覆盖率不能下降。要跟踪文件覆盖率,请运行 vendor/bin/phpunit --coverage-html coverage
并打开 coverage/index.html
检查未覆盖的代码行。