Laravel 5.0 ローカリゼーション

イントロダクション

LaravelのLangファサードは、アプリケーションを多言語に対応させるため、様々な言語の翻訳済み文字列を取得する方法を提供します。

言語ファイル

言語の文字列はresources/langディレクトリー下のファイルに保存します。このディレクトリーの中にアプリケーションでサポートする言語のディレクトリーを設置します。

/resources
    /lang
        /en
            messages.php
        /es
            messages.php

言語ファイルのサンプル

言語ファイルはキーと文字列の配列をリターンします。例えば:

<?php

return [
    'welcome' => 'Welcome to our application'
];

実行中のデフォルト言語変更

デフォルトの言語はconfig/app.php設定ファイルで指定されています。App::setLocaleメソッドを使用し、現時点で有効な言語を変更することができます。

App::setLocale('es');

フォールバック言語の設定

指定された言語行がアクティブな言語で存在しない場合に使用される、「フォールバック言語」を設定することもできます。デフォルト言語と同様に、フォールバック言語もconfig/app.php設定ファイルで指定されます。

'fallback_locale' => 'en',

基本的な使用法

言語ファイルから文字列の取得

echo Lang::get('messages.welcome');

getメソッドに渡している文字列の、最初の部分は言語ファイルの名前です。2番めの部分は取得しようとしている行の名前です。

注目: もし言語行が存在していない場合、getメソッドはキーの値をリターンします。

Lang::getメソッドのエイリアスである、transヘルパ関数も使用できます。

echo trans('messages.welcome');

行の一部の置き換え

言語行の中にプレースホルダーを定義することもできます。

'welcome' => 'Welcome, :name',

それから、Lang::getメソッドの第2引数として置換文字列を渡してください。

echo Lang::get('messages.welcome', ['name' => 'Dayle']);

言語ファイルに対する行の存在チェック

if (Lang::has('messages.welcome'))
{
    //
}

複数形化

複数形化は複雑な問題であり、異なった言語において多種複雑な複数形化のルールが存在しています。あなたの言語ファイルでこれを簡単に管理できます。「パイプ」記号、縦線の文字を使うことで、単数形の文字列と、複数形の文字列を分けることができます。

'apples' => 'There is one apple|There are many apples',

この形式の行を取得するにはLang::choiceメソッドを使用します。

echo Lang::choice('messages.apples', 10);

言語を指定するために、ロケール引数を渡すこともできます。例えば、ロシア語(ru)を利用したい場合は:

echo Lang::choice('товар|товара|товаров', $count, [], 'ru');

Laravelの翻訳にはSymfony Translationコンポーネントを使用しているため、もっと便利な複数形化のルールも簡単に作成できます。

'apples' => '{0} There are none|[1,19] There are some|[20,Inf] There are many',

バリデーション

バリデーションのエラーとメッセージをローカライズする方法は、バリデーションのドキュメントを参照してください。

パッケージの言語ファイルをオーバーライドする

多くのパッケージがそれ自身の言語ファイルと共に提供されています。出力される文言を調整するために、パッケージのコアをハックする代わりに、resources/lang/packages/{ロケールコード}/{パッケージ}ディレクトリーにファイルを設置することで、オーバーライドできます。例えば、skyrim/hearthfireパッケージの英語の言語行をオーバーライドする必要があるなら、resources/lang/packages/en/hearthfire/messages.phpに言語ファイルを設置します。このファイルには置き換えたい言語行の定義だけを設置することができます。オーバーライドしなかった言語行は、パッケージの言語ファイル中の定義のままロードされます。

ドキュメント章別ページ

Artisan CLI

ヘッダー項目移動

注目:アイコン:ページ内リンク設置(リンクがないヘッダーへの移動では、リンクがある以前のヘッダーのハッシュをURLへ付加します。

移動

クリックで即時移動します。

設定

適用ボタンクリック後に、全項目まとめて適用されます。

カラーテーマ
和文指定 Pagination
和文指定 Scaffold
Largeスクリーン表示幅
インデント
本文フォント
コードフォント
フォント適用確認

フォントの指定フィールドから、フォーカスが外れると、当ブロックの内容に反映されます。EnglishのDisplayもPreviewしてください。

フォント設定時、表示に不具合が出た場合、当サイトのクッキーを削除してください。

バックスラッシュを含むインライン\Code\Blockの例です。

以下はコードブロックの例です。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    /**
     * ユーザに関連する電話レコードを取得
     */
    public function phone()
    {
        return $this->hasOne('App\Phone');
    }
}

設定を保存する前に、表示が乱れないか必ず確認してください。CSSによるフォントファミリー指定の知識がない場合は、フォントを変更しないほうが良いでしょう。

キーボード・ショートカット

オープン操作

PDC

ページ(章)移動の左オフキャンバスオープン

HA

ヘッダー移動モーダルオープン

MS

移動/設定の右オフキャンバスオープン

ヘッダー移動

T

最初のヘッダーへ移動

E

最後のヘッダーへ移動

NJ

次ヘッダー(H2〜H4)へ移動

BK

前ヘッダー(H2〜H4)へ移動

その他

?

このヘルプページ表示
閉じる