deargonauten/translaravel

一个可以将所有路由、模型(特性)和字符串(gettext风格)进行翻译的Laravel包。

1.0.3 2016-07-05 10:23 UTC

This package is not auto-updated.

Last update: 2024-09-14 19:31:11 UTC


README

[![Packagist上的最新版本][ico-version]][link-packagist] ![软件许可][ico-license] [![构建状态][ico-travis]][link-travis] [![覆盖率状态][ico-scrutinizer]][link-scrutinizer] [![质量评分][ico-code-quality]][link-code-quality] [![总下载量][ico-downloads]][link-downloads]

安装

通过Composer

$ composer require deArgonauten/TransLaravel

config/app.php中添加ServiceProvider

deArgonauten\TransLaravel\TransLaravelServiceProvider::class,

现在有一个Artisan命令可用。运行它。

$ php artisan translaravel:install

然后... 完成!

用法

首先通过以下方式添加语言:

Lang::addLanguage('locale');
// en, nl, de, fr, et cetera

查看完整列表:https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes

字符串翻译

trans('A string, even with <b>some</b> HTML');
Lang::get('A string, even with <b>some</b> HTML');

模型翻译

在模型中使用Translation特性如下:

use deArgonauten\TransLaravel\Translations;

class YourModel extends Model
{
	use Translations;
	
	private $translatable = ['attribute1', 'attribute2']
}

使用变量$translatable填充一个包含可翻译属性的数组。

现在您可以使用

$model->name; // It will automaticly fetch the translation set in Application.
$model->getTranslationFor('attribute', 'locale');

路由翻译

在路由文件中,您可以如此使用翻译:

Route::get(
	Lang::route('/this-is-a-page'), function()
	{
		return view('pages.contact');
	});

辅助函数

我们为您提供了一些辅助函数

translateURL('url', 'locale');
// Returns a link in the requested locale.
// By omiting the locale parameter it will fetch the current set language.

untranslateURL('url');
// Returns a link in the default language

translateLink('url', 'name', [parameters], locale);
// Returns something like this: <a href="translateURL('url')" class="this and that">trans('name')</a>

## Change log

Please see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.

## Contributing

Please see [CONTRIBUTING](CONTRIBUTING.md) and [CONDUCT](CONDUCT.md) for details.

## Security

If you discover any security related issues, please email mail@deargonauten.com instead of using the issue tracker.

## Credits

- [Jason de Ridder][http://deargonauten.com]

## License

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

[ico-version]: https://img.shields.io/packagist/v/deArgonauten/TransLaravel.svg?style=flat-square
[ico-license]: https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square
[ico-travis]: https://img.shields.io/travis/deArgonauten/TransLaravel/master.svg?style=flat-square
[ico-scrutinizer]: https://img.shields.io/scrutinizer/coverage/g/deArgonauten/TransLaravel.svg?style=flat-square
[ico-code-quality]: https://img.shields.io/scrutinizer/g/deArgonauten/TransLaravel.svg?style=flat-square
[ico-downloads]: https://img.shields.io/packagist/dt/deArgonauten/TransLaravel.svg?style=flat-square

[link-packagist]: https://packagist.org.cn/packages/deArgonauten/TransLaravel
[link-travis]: https://travis-ci.org/deArgonauten/TransLaravel
[link-scrutinizer]: https://scrutinizer-ci.com/g/deArgonauten/TransLaravel/code-structure
[link-code-quality]: https://scrutinizer-ci.com/g/deArgonauten/TransLaravel
[link-downloads]: https://packagist.org.cn/packages/deArgonauten/TransLaravel