webklex / translator
基于 .CSV 语言文件的灵活 Laravel 翻译器
Requires
- php: >=5.5.9
- illuminate/config: >=5.2
- illuminate/console: >=5.2
- illuminate/contracts: >=5.2
- illuminate/support: >=5.2
- illuminate/translation: >=5.2
Requires (Dev)
- phpunit/phpunit: 4.*
- scrutinizer/ocular: ~1.1
- squizlabs/php_codesniffer: ~2.3
README
这是一个翻译包,提供了开始使用基于快速 CSV 文件翻译服务的所有所需内容。
安装
通过 Composer
$ composer require webklex/translator
设置
将服务提供者添加到 config/app.php
中的 providers 数组。
'providers' => [ Webklex\Translator\Providers\TranslatorServiceProvider::class, Webklex\Translator\Providers\TranslatorBladeServiceProvider::class, ];
中间件
您可能想要使用中间件来控制 app/Http/Kernel.php
中的全局语言设置。
protected $routeMiddleware = [ 'translator' => Webklex\Translator\Middleware\TranslatorMiddleware::class, ];
路由和语言切换
如果您想通过点击链接来更改系统语言,可以使用类似以下的方法
在您的控制器中
/** * Change the current language * * @param string $locale * @return \Illuminate\Http\RedirectResponse */ public function changeLanguage($locale){ if(in_array($locale, config('translator.available'))){ Session::put('locale', $locale); Session::save(); app()->setLocale($locale); } return redirect()->back(); }
在您的路由文件中
Route::get('/language/{locale}', 'YourControllerName@changeLanguage');
发布
您可以一次性发布所有内容
php artisan vendor:publish --provider="Webklex\Translator\Providers\TranslatorServiceProvider"
或者您可以单独发布组。
php artisan vendor:publish --provider="Webklex\Translator\Providers\TranslatorServiceProvider" --tag="config"
使用方法
这是一个翻译包,提供了开始使用基于快速 CSV 文件翻译服务的所有所需内容。您的翻译文件将默认存储在 resources/lang/
中,您的语言代码(例如 en
)/default.csv
。
通过其外观(Webklex\Translator\Facades\TranslatorFacade)访问翻译器。因此,您可能想在 config/app.php
文件中的 aliases 数组中添加一个别名。
'aliases' => [ 'Lang' => Webklex\Translator\Facades\TranslatorFacade::class ];
如果您注册了 TranslatorBladeServiceProvider,您甚至可以使用这个简单的简写指令。
@t('My translation') @t('My translation', 'en')
如果您使用像我其他的包 webklex/helpers
一样的东西,您可以使用一个辅助函数来使访问更加简单。
因此,创建一个新的辅助程序: php artisan make:helper translator
并编辑 app/Helpers/translator.php
。
if (!function_exists('_t')) { /** * Shorthand translation * @param string $string * @param string $locale * * @return string */ function _t($string, $locale = null) { return Webklex\Translator\Facades\TranslatorFacade::get($string, $locale); } }
变更日志
请参阅 CHANGELOG 以获取更多有关最近更改的信息。
测试
$ composer test
安全
如果您发现任何安全相关的问题,请通过电子邮件 github@webklex.com 而不是使用问题跟踪器。
鸣谢
- Webklex
- 所有贡献者
许可
MIT 许可证(MIT)。请参阅 许可文件 以获取更多信息。