2016-08-01 14 views
4

Laravel 5.2でのローカリゼーション翻訳の再利用が可能かどうか疑問に思っています。だから、このような何か、または実際のグローバルaccessableキーbrandを直接使用する代わりに、フォルダやファイル名(この例ではglobal)を入力します。Laravel 5.2での翻訳の再利用5.2

// resources/lang/en/global.php 
return [ 
'brand' => 'Stackoverflow', 
'my' => 'My :attribute', 
'my_brand' => trans('global.my', ['attribute' => trans('global.brand')]) 
]; 

希望は、Laravelでの翻訳を再利用する方法です。

答えて

0

View Composerを使用して、翻訳をアプリケーションのすべてのビューにグローバルに挿入することができます。あなたが従うべき手順は次のとおりです。

  • 作曲にあなたの翻訳を注入し、ワイルドカード演算子を使用して、すべてのビューにバインドするサービスプロバイダ
  • へのView Composerを登録するView Composerの
  • を作成します。あなたが取得するためにループを使用することができ作曲クラスは次のようになりますと、それは名前空間のApp \のHttp \ ViewComposersでなければなりません

(アプリケーションは、アプリケーションの名前空間に基づいて異なる場合があります)

class TranslationsComposer 
    { 
     protected $translations; 

     public function __construct() 
     { 
      $this->translations = [ 
       'brand' => trans('global.brand'), 
       'my' => trans('global.my'), 
      ]; 
     } 

     public function compose(View $view) 
     { 
      $view->with('translations', $this->translations); 
     } 
    } 

翻訳をしていますが、これは方法を示すための単純な例です。あなたがあなたのブレードテンプレートで{{translations.brand}}として、これらの変数を使用することができるはずそうした後、この

namespace App\Http\ViewComposers; 

use Illuminate\Contracts\View\View; 
use Illuminate\Users\Repository as UserRepository; 
class ComposerServiceProvider extends ServiceProvider 
{ 
    public function boot() 
    { 
     view()->composer(
      '*','App\Http\ViewComposers\TranslationsComposer' 
     ); 
    } 

    public function register() 
    { 
     // 
    } 
} 

のようなものを使用する必要があり、サービスプロバイダのための今すぐ

あなたはLANG変数を解決するために、独自のヘルパーファイルを作成することができ、公式Laravelのドキュメント https://laravel.com/docs/5.1/views

+0

これはアイデアのように聞こえますが、私は 'trans( 'brand')'のように言いたいと思います。私はこれが翻訳ファイルの翻訳を再利用する方法を提供できるかどうかは分かりません。 –

0

でビューの作曲についての詳細を見つけることができます。

手順1:App \ Helpersに拡張子.phpのファイルを作成します。任意のファイル名(拡張子.php)は、Helper ServiceProviderによって自動的にロードされます。

if(! function_exists('my_trans')){ 
    function my_trans($key){ 
     // load all the lang variable as an array here which should look like as below 
     $lang = [ 
      'key1'=>'value1', 
      'key2'=>'value2', 
      'key3'=>'value3', 
      'key4'=>'value4', 
      'key5'=>'value5' 
     ]; 

     return $lang[$key]; 
    } 
} 

ステップ3:次のようにあなたの新しいヘルパーファイル内の関数を作成します。

public function register() 
    { 
     foreach (glob(app_path().'/Helpers/*.php') as $filename){ 
      require_once($filename); 
     } 

    } 

ステップ2:あなたのHelperServiceProviderでは、以下のようにいくつかのコードを見つける必要があり、あなたのブレードからのキーで関数を呼び出しますファイル:

{{my_trans('key2')}} 

これは実際の例であり、あなたの考えを拡張するのに役立ちます。