webklex/translator

基于 .CSV 语言文件的灵活 Laravel 翻译器

1.0.5.1 2017-04-25 14:55 UTC

This package is auto-updated.

Last update: 2024-09-13 10:28:32 UTC


README

Latest Version on Packagist Software License Build Status Total Downloads

这是一个翻译包,提供了开始使用基于快速 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 而不是使用问题跟踪器。

鸣谢

许可

MIT 许可证(MIT)。请参阅 许可文件 以获取更多信息。