黄色电影一区二区,韩国少妇自慰A片免费看,精品人妻少妇一级毛片免费蜜桃AV按摩师 ,超碰 香蕉

CakePHP 國(guó)際化

cakephp 國(guó)際化

 

像許多其他框架一樣,cakephp 也支持國(guó)際化。我們需要按照這些步驟從單一語(yǔ)言到多語(yǔ)言。

 

步驟 1

創(chuàng)建一個(gè)單獨(dú)的語(yǔ)言環(huán)境目錄資源\ 語(yǔ)言環(huán)境。

 

步驟 2

在目錄 src\locale 下為每種語(yǔ)言創(chuàng)建子目錄。子目錄的名稱可以是語(yǔ)言的兩個(gè)字母 iso 代碼或完整的語(yǔ)言環(huán)境名稱,如 en_us、fr_fr 等。

 

步驟 3

在每個(gè)語(yǔ)言子目錄下創(chuàng)建單獨(dú)的 default.po 文件。該文件包含 msgidmsgstr形式的條目,如下程序所示。

msgid "msg"
msgstr "cakephp internationalization example."

這里, msgid 是將在視圖模板文件中使用的鍵, msgstr 是存儲(chǔ)翻譯的值。

 

步驟 4

在查看模板文件,我們可以使用上面的 msgid,如下圖,會(huì)根據(jù)locale的設(shè)置值進(jìn)行翻譯。

 echo __('msg'); 

可以通過(guò)以下行在 config/app.php 文件中設(shè)置默認(rèn)語(yǔ)言環(huán)境。

'defaultlocale' => env('app_default_locale', 'en_us')

要在運(yùn)行時(shí)更改本地,我們可以使用以下幾行。

use cake\i18n\i18n;
i18n::locale('de_de');

 

示例

在 config/routes.php 文件中進(jìn)行更改,如以下程序所示。

config/routes.php

use cake\http\middleware\csrfprotectionmiddleware;
use cake\routing\route\dashedroute;
use cake\routing\routebuilder;
$routes--->setrouteclass(dashedroute::class);
$routes->scope('/', function (routebuilder $builder) {
   $builder->registermiddleware('csrf', new csrfprotectionmiddleware([
      'httponly' => true,
   ]));
   $builder->applymiddleware('csrf');
   //$builder->connect('/pages',
      ['controller'=>'pages','action'=>'display', 'home']);
   $builder->connect('locale',
      ['controller'=>'localizations','action'=>'index']);
   $builder->fallbacks();
});

src/controller/localizationscontroller.php 中創(chuàng)建一個(gè) localizationscontroller.php 文件。 將以下代碼復(fù)制到控制器文件中。

src/controller/localizationscontroller.php

   namespace app\controller;
   use app\controller\appcontroller;
   use cake\i18n\i18n;
   class localizationscontroller extends appcontroller {
      public function index() {
         if($this--->request->is('post')) {
            $locale = $this->request->getdata('locale');
            i18n::setlocale($locale);
         }
      }
   }
?>

在資源\ locales 中創(chuàng)建一個(gè) locales 目錄。在 locales 目錄下創(chuàng)建 3 個(gè)名為 en_us, fr_fr, de_de 的目錄。在每個(gè)目錄下創(chuàng)建一個(gè)名為 default.po 的文件。 將以下代碼復(fù)制到相應(yīng)文件中。

resources/locales/en_us/default.po

msgid "msg"
msgstr "cakephp internationalization example."

resources/locales/fr_fr/default.po

msgid "msg"
msgstr "exemple cakephp internationalisation."

resources/locales/de_de/default.po

msgid "msg"
msgstr "cakephp internationalisierung beispiel."

src/template 中創(chuàng)建一個(gè) localizations 目錄,然后在該目錄下創(chuàng)建一個(gè)名為 index.php 的 view 文件。 在該文件中復(fù)制以下代碼。

src/template/localizations/index.php

   echo $this--->form->create(null,array('url'=>'/locale'));
   echo $this->form->radio("locale",
      [
         ['value'=>'en_us','text'=>'english'],
         ['value'=>'de_de','text'=>'german'],
         ['value'=>'fr_fr','text'=>'french'],
      ]
   );
   echo $this->form->button('change language');
   echo $this->form->end();
?>
 echo __('msg'); 

通過(guò)訪問(wèn)以下 url 執(zhí)行上述示例。 http://localhost/cakephp4/locale

 

輸出

執(zhí)行后,您將收到以下輸出。

 

電子郵件

cakephp 提供電子郵件類來(lái)管理電子郵件相關(guān)功能。要在任何控制器中使用電子郵件功能,我們首先需要通過(guò)編寫以下行來(lái)加載電子郵件類。

use cake\mailer\email;

email 類提供了各種有用的方法,如下所述。

語(yǔ)法

from(string|array|null $email null, string|null $name null )

參數(shù)
  • 帶電子郵件的字符串
  • 姓名
  • 返回

    數(shù)組|$this

    描述

    它指定來(lái)自哪個(gè)電子郵件地址;電子郵件將被發(fā)送

    語(yǔ)法

    to(string|array|null $emailnull, string|null $namenull)

    參數(shù)
  • 帶電子郵件的字符串
  • 姓名
  • 返回

    數(shù)組|$this

    描述

    它指定電子郵件將發(fā)送給誰(shuí)

    語(yǔ)法

    發(fā)送(string|array|null $contentnull)

    參數(shù)
  • 帶有消息的字符串或帶有消息的數(shù)組。
  • 退貨 數(shù)組
    描述

    使用指定的內(nèi)容、模板和布局發(fā)送電子郵件

    語(yǔ)法

    subject(string|null $subjectnull)

    參數(shù)
  • 主題字符串
  • 返回

    數(shù)組|$this

    說(shuō)明

    獲取/設(shè)置主題

    語(yǔ)法

    attachments(string|array|null $attachmentsnull)

    參數(shù)
  • 帶有文件名的字符串或帶有文件名的數(shù)組
  • 退貨

    數(shù)組|$this

    說(shuō)明

    在電子郵件中添加附件

    語(yǔ)法

    bcc(string|array|null $emailnull, string|null $namenull)

    參數(shù)
  • 帶電子郵件的字符串
  • 姓名
  • 退貨

    數(shù)組|$this

    說(shuō)明

    密件抄送

    語(yǔ)法

    cc( string|array|null $emailnull , string|null $namenull )

    參數(shù)
  • 帶電子郵件的字符串
  • 姓名
  • 退貨

    數(shù)組|$this

    說(shuō)明

    抄送

     

    示例

    在 config/routes.php 文件中進(jìn)行更改,如以下程序所示。

    config/routes.php

    use cake\http\middleware\csrfprotectionmiddleware;
    use cake\routing\route\dashedroute;
    use cake\routing\routebuilder;
    $routes--->setrouteclass(dashedroute::class);
    $routes->scope('/', function (routebuilder $builder) {
       $builder->registermiddleware('csrf', new csrfprotectionmiddleware([
          'httponly' => true,
       ]));
       $builder->applymiddleware('csrf');
       //$builder->connect('/pages',['controller'=>'pages','action'=>'display', 'home']);
       $builder->connect('/email',['controller'=>'emails','action'=>'index']);
       $builder->fallbacks();
    });

    src/controller/emailscontroller.php 中創(chuàng)建一個(gè) emailscontroller.php 文件。 將以下代碼復(fù)制到控制器文件中。

    src/controller/emailscontroller.php

       namespace app\controller;
       use app\controller\appcontroller;
       use cake\mailer\email;
       class emailscontroller extends appcontroller{
          public function index(){
             $email = new email('default');
             $email--->to('abc@gmail.com')
               ->subject('about')
               ->send('my message');
          }
       }
    ?>

    src/template 創(chuàng)建一個(gè)目錄 emails 并在該目錄下創(chuàng)建一個(gè)名為 index.php 的視圖文件。 復(fù)制以下代碼在那個(gè)文件中。

    src/template/emails/index.php

    email sent.

    在發(fā)送任何電子郵件之前,我們需要對(duì)其進(jìn)行配置。在下面的屏幕截圖中,您可以看到有兩種傳輸方式,default 和 gmail。我們使用了 gmail 傳輸。

    您需要將"gmail username"替換為您的 gmail 用戶名,將"app password"替換為您的應(yīng)用程序密碼。您需要在 gmail 中開啟兩步驗(yàn)證并創(chuàng)建新的 app 密碼才能發(fā)送電子郵件。

    config/app.php

    通過(guò)訪問(wèn)以下 url 執(zhí)行上述示例-http://localhost/cakephp/email

     

    輸出

    執(zhí)行后,您將收到以下輸出。

    下一節(jié):cakephp 會(huì)話管理

    cakephp 教程

    相關(guān)文章