Laravel 學習筆記(20) - 多國語言 (Localication)

Localization

Laravel 提供 Lang 類別讓你方便取用不同語言的字串。檔案存放在 app/lang 目錄下,在依不同語言各自建立目錄。例如:
app/lang/en
app/lang/tw
app/lang/jp
app/lang/fr
語言目錄名稱可自訂。目錄中可放置多個 php 檔,每個 php 內都是做回傳一個陣列的動作。

建立語系檔

我們先在預設的 app/lang/en 中新增一個 default.php:
<?php

return array(
    'title' => 'My Blog'
);
然後建立一個 app/lang/tw 的目錄,把 en/default.php 複製到 tw 目錄中,修改 app/lang/tw/default.php:
<?php

return array(
    'title' => '我的部落格'
);
現在我們有兩種語言的文字了。兩個檔案裡的陣列除了 key 是一樣的,value 就換成該語系的內容。

使用語系檔

你可以在 app/config/app.php 中修改整個網站預設的語系:
'locale' => 'en',
'fallback_locale' => 'en',
或是在 HomeController@index 中使用
App::setLocale('tw');
來更改某一次請求的語系。

在 HomeController@index Controller 的方法中取得語系文字:
public function index()
{
    App::setLocale('tw');
    $title = Lang::get('default.title');

    $posts = Post::all();

    return View::make('site.home')
            ->with('title', $title)
            ->with('posts', $posts);
}
使用 Lang::get(檔案名稱.key); 就能取得某一檔案內的某 key 的值。

你也可以在 view 裡面使用
@lang('default.title')
來取得。
本文網址:http://blog.tonycube.com/2015/01/laravel-20-localication.html
Tony Blog 撰寫,轉載時請註明出處及文章連結,謝謝 😀

1 則留言

留言小提醒:
1.回覆時間通常在晚上,如果太忙可能要等幾天。
2.請先瀏覽一下其他人的留言,也許有人問過同樣的問題。
3.程式碼請先將它編碼後再貼上。(線上編碼:http://bit.ly/1DL6yog)
4.文字請加上標點符號及斷行,難以閱讀者恕難回覆。
5.感謝您的留言,您的問題也可能幫助到其他有相同問題的人。