フロントエンドの開発 - ローカライズ

簡単な紹介

   Laravelのローカライズ機能を使用すると、簡単にアプリケーションに多言語サポートを実装することができます。保存されているデフォルトの言語の文字列  resources/lang ディレクトリは、ディレクトリには、サポートされる言語ごとにアプリケーションのサブディレクトリが含まれています。

/ リソース
     / LANG
         / 
            のメッセージPHP
         / ES 
            メッセージの.php

   すべての言語ファイル例えば、キーと値のペアの配列を返します。

<?PHPの

リターン[
     '歓迎' => 'LaravelAcademy.orgへようこそ' 
];

ロケールの設定オプション

   保存されたアプリケーション構成ファイル内のデフォルトの言語  config/app.php で、もちろん、あなたがアプリケーションのニーズを満たすために値を変更することができます。また、ランタイムを使用することができ  App ファサードに  setLocale 現在の言語の方法を変更します。

ルート::( '歓迎/ {ロケール}'、取得機能$ロケール){ 
    のApp :: あるsetLocale$ロケール);
     //
 });

   現在の言語が別の言語が返された特定の言語の行が含まれていないときにも、「代替言語」を構成することができます。そして、デフォルトの言語は、言語はまた別の設定ファイルで  config/app.php 設定:

'fallback_locale' => 'en' と、

   現在のローカル言語を決定します

     あなたは使用することができ  App ファサード  getLocale や  isLocale 現在のローカル言語を取得したり、特定の地域の言語と一致するかどうかを確認する方法を:

$ロケール =のApp :: のgetLocale(); 

もし(APP :: isLocale( 'en'と)){
     //
 }

翻訳文字列の定義

   略語キーを使用

     一般的に、に保存されている翻訳文字列  resources/lang ディレクトリ内のファイルは、このディレクトリには、サポートされている各言語に対応するサブディレクトリのためのアプリケーションが含まれています。

/ リソース
     / LANG
         / 
            のメッセージPHP
         / ES 
            メッセージの.php

   対応する略語のキーを持つすべての言語ファイルは、例えば、文字列の配列を返します。

<?PHP 

// リソース/ LANG / EN / messages.php 

戻る[
     '歓迎は' => 'LaravelAcademy.orgへようこそ' 
];

   キーとして翻訳文字列を使用します

     詳細を見ると理解することがより困難になり、さらに混乱を引き起こすで参照する場合、翻訳要件の厳しいアプリケーションとのそれらのために、各文字列の定義は、「短いキー」です。このため、Laravelはまた、「デフォルト」の翻訳文字列を定義するためのキーとして翻訳された文字列の使用をサポートしています。

     保存されている方法のJSONファイル内のドキュメントの鍵翻訳翻訳などの文字列を使用して  resources/lang ディレクトリ。アプリケーションは、翻訳のスペイン語バージョンを持っている場合たとえば、私たちが作成する必要がある  resources/lang/es.json ファイルを:

{
     "私はプログラミングが大好きです。": "私ENCANTAラprogramación。" 
}

翻訳文字列を取得します。

     あなたはヘルパーを使用することができます  __ 方法は言語ファイルから、例えば、最初のパラメータとしてファイルのキーと翻訳文字列を受け取り、取得した言語ファイルの行から  resources/lang/messages.php で取得しwelcome 、対応する翻訳文字列:

エコー __( 'messages.welcome' ); 

エコー __( '私はプログラミングが大好きです。');

     ブレード・テンプレートエンジンを使用する場合はもちろん、あなたが使用することができ  {{ }} 文法翻訳文字列または使用の印刷  @lang コマンドを:

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

@lang( 'messages.welcome')

     指定された翻訳文字列が存在しない場合、__関数は、文字列変換キーを返し翻訳が存在しない場合は、そのため、上記の例を使用して、その文字列、__関数が返されます  messages.welcome

注意:@lang 指示は任意の出力をエスケープしません、あなたが自分自身の出力を操作するための全責任をエスケープする必要があり、このコマンドを使用します。

   翻訳文字列パラメータを交換

     必要であれば、あなたは翻訳文字列でプレースホルダを定義することができ、すべてのプレースホルダがあり:、プレフィックスを、例えば、あなたが、プレースホルダを使用することができます  name 定義する  welcome メッセージを:

'歓迎' => 'ようこそ、:名'、

     などの代替配列を渡す際に翻訳文字列を取得するために、プレースホルダを交換するには、  __ 関数の第二引数:

エコー __( 'messages.welcome'、[ '名前' => 'laravel'])。

     プレースホルダが大文字であるか、または最初の文字が大文字にされている場合、対応する入力値は、一貫性を維持し、プレースホルダ・フォーマット:

'歓迎' => 'ようこそ、:NAME'、// ようこそ、LARAVEL 
'さようなら' => 'さようなら、:名前'、// さようなら、Laravel

   複数

     「|」異なる言語がパイプ文字を使用することにより、複素数の異なるルールを持っているので、複合体は、複雑な問題であり、あなたは文字列の単数形と複数形を区別することができます。

「りんご」=>「1個のリンゴがあります|多くのリンゴがあります」

     また、翻訳文字列、より複雑な複数のルールを指定した番号の複数の範囲を作成することができます。

'リンゴ' => 'どれもありません。{0} | [1,19]いくつかがある| [20、*]多く存在します'、

     その後、使用できる  trans_choice 行数が1よりも大きいので、本実施形態では、所与の行の言語の行数を取得する機能を、それが複数の翻訳のストリングを返します。

エコー trans_choice( 'messages.apples'、10);

     また、複数のストリングを定義することができる特性をプレースホルダ、これらのプレースホルダは、に渡されることになる  trans_choice 第3のアレイパラメータ置換の機能:

'minutes_ago' => '{1}値分前| [2,1 *]:値分前'、エコー trans_choice( 'time.minutes_ago'、5、[ '値を' => 5])。

     あなたはに配信表示したい場合は  trans_choice 、関数の整数値は、使用することができます  :count プレースホルダを:

'リンゴ' => '{0}がありなし| {1} 1がある| [2,1 *]がありますカウント'、

カバレッジ拡張パッケージの言語ファイル

   いくつかの拡張パックは、言語ファイルそのものを処理することができます。あなたは自分のファイルをにすることができ  resources/lang/vendor/{package}/{locale} 、これらの文章を調整するために、これらのコアファイルパッケージを弱体化させるそれらをカバーしていないためにダウンディレクトリ。

   したがって、たとえば、あなたが呼ば無効にする必要がある場合に  skyrim/hearthfire 拡張パッケージの  messages.php 英語の文章のファイルを、あなたが作成することができ  resources/lang/vendor/hearthfire/en/messages.php 、ファイルを。このファイルでのみ拡張パックからロードされ、あなたが覆われた文は、文はまだ元の言語ファイルによって覆われていない欲しいものを定義する必要があります。

 

おすすめ

転載: www.cnblogs.com/mzhaox/p/11276750.html