99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

服務(wù) ―― 本地化

2018-02-24 15:38 更新

服務(wù) —— 本地化

1、簡(jiǎn)介

Laravel的本地化特性提供了一個(gè)方便的方式從多個(gè)語言文件中獲取字符串,從而允許你在應(yīng)用中輕松支持多種語言。

語言字符串存放在resources/lang目錄中,在該目錄中應(yīng)該包含應(yīng)用支持的每種語言的子目錄:

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

所有語言文件都返回一個(gè)鍵值對(duì)數(shù)組,例如:

<?php

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

1.1 配置Locale選項(xiàng)

應(yīng)用默認(rèn)語言存放在配置文件config/app.php中,當(dāng)然,你可以修改該值來匹配應(yīng)用需要。你還可以在運(yùn)行時(shí)使用App門面上的setLocale方法改變當(dāng)前語言:

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

    //
});

你還可以配置一個(gè)“備用語言”,當(dāng)當(dāng)前語言不包含給定語言行時(shí)備用語言被返回。和默認(rèn)語言一樣,備用語言也在配置文件config/app.php中配置:

'fallback_locale' => 'en',

2、基本使用

你可以使用幫助函數(shù)trans從語言文件中獲取行,該方法接收文件和語言行的鍵作為第一個(gè)參數(shù),例如,讓我們?cè)谡Z言文件resources/lang/messages.php中獲取語言行welcome

echo trans('messages.welcome');

當(dāng)然如果你使用Blade模板引擎,可以使用{{?}}語法打印語言行:

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

如果指定的語言行不存在,trans函數(shù)將返回語言行的鍵,所以,使用上面的例子,如果語言行不存在的話,trans函數(shù)將返回messages.welcome

替換語言行中的參數(shù)

如果需要的話,你可以在語言行中定義占位符,所有的占位符都有一個(gè):前綴,例如,你可以用占位符名稱定義一個(gè)welcome消息:

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

要在獲取語言行的時(shí)候替換占位符,傳遞一個(gè)替換數(shù)組作為trans函數(shù)的第二個(gè)參數(shù):

echo trans('messages.welcome', ['name' => 'Dayle']);

2.1 多元化

多元化是一個(gè)復(fù)雜的問題,因?yàn)椴煌Z言對(duì)多元化有不同的規(guī)則,通過使用管道字符“|”,你可以區(qū)分一個(gè)字符串的單數(shù)和復(fù)數(shù)形式:

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

然后,你可以使用trans_choice函數(shù)獲取給定行數(shù)的語言行,在本例中,由于行數(shù)大于1,將會(huì)返回語言行的復(fù)數(shù)形式:

echo trans_choice('messages.apples', 10);

由于Laravel翻譯器由Symfony翻譯組件提供,你可以創(chuàng)建更復(fù)雜的多元化規(guī)則:

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

3、覆蓋Vendor包中語言文件

有些包可以處理自己的語言文件。你可以通過將自己的文件放在resources/lang/vendor/{package}/{locale}目錄下來覆蓋它們而不是破壞這些包的核心文件來調(diào)整這些句子。

所以,舉個(gè)例子,如果你需要覆蓋名為skyrim/hearthfire的包中的messages.php文件里的英文句子,可以創(chuàng)建一個(gè)resources/lang/vendor/hearthfire/en/messages.php文件。在這個(gè)文件中只需要定義你想要覆蓋的句子,你沒有覆蓋的句子仍然從該包原來的語言文件中加載。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)