この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:3
ページ更新者:guest
更新日時:2018-04-25 17:45:43

タイトル: 多言語化

Laravelの多言語化に関する記事です。

メッセージファイルの配置

メッセージのファイルを「resources/lang」ディレクトリに配置しましょう。

以下の構成を参考にして下さい。

/resources
    /lang
        /en
            messages.php
        /jp
            messages.php

上記の例では「message.php」としていますが、用途によりファイルを分割して任意の名前を付けて下さい。

メッセージファイルの中身は以下の様に連想配列として格納します。

<?php
return [
    'password' => 'Passwords must be at least six characters and match the confirmation.',
    'reset' => 'Your password has been reset!',
];

 

言語設定

デフォルトの言語は「config/app.php」の「locale」にて指定されていますが、今回はURLにより言語を分離させます。

以下のように実装してみましょう。

Route::get('index/{locale}', function ($locale) {
    App::setLocale($locale);
});

「index」の後に指定されたロケールにより使用する言語が異なるようになります。

言語が存在しない場合のデフォルト言語は以下の様に設定します。

'fallback_locale' => 'en',

 

言語の表示

Bladeテンプレートエンジンを使用している場合は以下の表記で翻訳文字を表示できます。

{{ __('messages.password') }}

@lang('messages.password')

 

Bladeテンプレートエンジンを使用していない場合は以下の表記を。

echo __('messages.password');