Thứ Hai, 29 tháng 10, 2018

CakePHP - Quốc tế hóa

Giống như nhiều khung công tác khác, PHP cũng hỗ trợ Quốc tế hóa. Chúng ta cần phải làm theo các bước sau để chuyển từ ngôn ngữ đơn sang nhiều ngôn ngữ.

Bước 1 - Tạo một thư mục Locale riêng biệt src \ Locale .

Bước 2 - Tạo thư mục con cho mỗi ngôn ngữ trong thư mục src \ Locale. Tên của thư mục con có thể là hai mã ISO của ngôn ngữ hoặc tên miền địa phương đầy đủ như en_US, fr_FR, v.v.

Bước 3 - Tạo tệp default.po riêng biệt trong từng thư mục con ngôn ngữ. Tập tin này có chứa mục trong hình thức msgid và msgstr như thể hiện trong chương trình sau đây.

msgid "msg"
msgstr "CakePHP Internationalization example."

Ở đây, msgid là chìa khóa đó sẽ được sử dụng trong Xem mẫu tập tin và msgstr là giá trị mà các cửa hàng dịch.

Bước 4 - Trong Xem mẫu tập tin, chúng ta có thể sử dụng trên msgstr như hình dưới đây sẽ được dịch dựa trên giá trị bộ locale.

<?php echo __('msg'); ?>

Ngôn ngữ mặc định có thể được đặt trong tệp config / bootstrap.php bằng dòng sau.

'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_US')

Để thay đổi cục bộ khi chạy, chúng ta có thể sử dụng các dòng sau.

use Cake\I18n\I18n;
I18n::locale('de_DE'); 

Thí dụ

Thực hiện các thay đổi trong tệp config / routes.php như được hiển thị trong chương trình sau.

config / routes.php
<?php
   use Cake\Core\Plugin;
   use Cake\Routing\RouteBuilder;
   use Cake\Routing\Router;

   Router::defaultRouteClass('DashedRoute');
   Router::scope('/', function (RouteBuilder $routes) {
      $routes->connect('locale',['controller'=>'Localizations','action'=>'index']);
      $routes->fallbacks('DashedRoute');
   });
   Plugin::routes();
Tạo một tệp LocalizationsController.php tại src / Controller / LocalizationsController.php . Sao chép mã sau trong tệp bộ điều khiển.

src / Controller / LocalizationsController.php
<?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->data('locale');
            I18n::locale($locale);
         }
      }
   }
?>
Tạo một thư mục Locale tại src \ Locale . Tạo 3 thư mục có tên en_US, fr_FR, de_DE trong thư mục Locale. Tạo một tệp theo từng thư mục có tên default.po . Sao chép mã sau vào tệp tương ứng.

src / Locale / en_US / default.po

msgid "msg"
msgstr "CakePHP Internationalization example."

src / Locale / fr_FR / default.po

msgid "msg"
msgstr "Exemple CakePHP internationalisation."

src / Locale / de_DE / default.po

msgid "msg"
msgstr "CakePHP Internationalisierung Beispiel."

Tạo một thư mục Các bản địa hóa tại src / Template và dưới thư mục đó tạo một tệp Xem có tên là index.ctp . Sao chép mã sau vào tệp đó.

src / Mẫu / Localizations / index.ctp
<?php
   echo $this->Form->create("Localizations",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();
?>
<?php echo __('msg'); ?>
Thực hiện ví dụ trên bằng cách truy cập URL sau.
Phần mềm lập trình PHP chuyên nghiệp

Link đăng ký khóa học : Phần mềm lập trình PHP chuyên nghiệp.

http: // localhost: 85 / PHP / ngôn ngữ

Đầu ra

Khi thực hiện, bạn sẽ nhận được kết quả sau.

E-mail

PHP cung cấp lớp Email để quản lý các chức năng liên quan đến email. Để sử dụng chức năng email trong bất kỳ bộ điều khiển nào, trước tiên chúng tôi cần tải lớp Email bằng cách viết dòng sau.

use Cake\Mailer\Email;

Lớp Email cung cấp các phương thức hữu ích khác nhau được mô tả dưới đây.

Cú phápTừ (string | array | null $ email null, string | null $ name null)
Thông sốChuỗi với email

Tên
Trả lạimảng | $ this
Sự miêu tảNó chỉ định từ địa chỉ email nào; email sẽ được gửi
Cú phápTo (string | array | null $ email null, string | null $ name null)
Thông sốChuỗi với email

Tên
Trả lạimảng | $ this
Sự miêu tảNó chỉ định ai gửi email đến
Cú phápGửi (string | array | null $ content null)
Thông sốChuỗi có tin nhắn hoặc mảng có tin nhắn.
Trả lạimảng
Sự miêu tảGửi email bằng cách sử dụng nội dung, mẫu và bố cục được chỉ định
Cú phápChủ đề (string | null $ subject null)
Thông sốChuỗi chủ đề
Trả lạimảng | $ this
Sự miêu tảLấy / Đặt chủ đề.
Cú phápTệp đính kèm (chuỗi | mảng | null $ tệp đính kèm null)
Thông sốChuỗi với tên tệp hoặc mảng có tên tệp
Trả lạimảng | $ this
Sự miêu tảThêm tệp đính kèm vào thư email
Cú phápBcc (string | array | null $ email null, string | null $ name null)
Thông sốChuỗi với email

Tên
Trả lạimảng | $ this
Sự miêu tảBcc
Cú phápcc (string | array | null $ email null, string | null $ name null)
Thông sốChuỗi với email

Tên
Trả lạimảng | $ this
Sự miêu tảCc

Thí dụ

Thực hiện các thay đổi trong tệp config / routes.php như được hiển thị trong chương trình sau.

config / routes.php
<?php
   use Cake\Core\Plugin;
   use Cake\Routing\RouteBuilder;
   use Cake\Routing\Router;

   Router::defaultRouteClass('DashedRoute');
   Router::scope('/', function (RouteBuilder $routes) {
      $routes->connect('/email',['controller'=>'Emails','action'=>'index']);
      $routes->fallbacks('DashedRoute');
   });
   Plugin::routes();
Tạo một tập tin EmailsController.php tại src / Controller / EmailsController.php . Sao chép mã sau trong tệp bộ điều khiển.

src / Controller / EmailsController.php
<?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');
      }
   }
?>
Tạo một thư mục Các email tại src / Template và dưới thư mục đó tạo ra một tệp Xem có tên là index.ctp. Sao chép mã sau vào tệp đó.

src / Mẫu / Email / index.ctp

Email Sent.

Trước khi chúng tôi gửi bất kỳ email nào, chúng tôi cần định cấu hình nó. Trong ảnh chụp màn hình bên dưới, bạn có thể thấy rằng có hai phương tiện, mặc định và Gmail.

Chúng tôi đã sử dụng Gmail transport. Bạn cần phải thay thế “GMAIL USERNAME” bằng tên người dùng Gmail của mình và “APP PASSWORD” bằng mật khẩu ứng dụng của bạn. Bạn cần bật xác minh 2 bước trong Gmail và tạo mật khẩu APP mới để gửi email.

config / app.php
Phần mềm lập trình PHP chuyên nghiệp
Phần mềm lập trình PHP chuyên nghiệp
Thực hiện ví dụ trên bằng cách truy cập URL sau: http: // localhost: 85 / PHP / email

Đầu ra

Khi thực hiện, bạn sẽ nhận được kết quả sau.

Không có nhận xét nào:

Đăng nhận xét

lập trình PHP cho các nhà phát triển PERL

Chương này sẽ liệt kê những điểm tương đồng và khác biệt chính giữa PHP và PERL. Điều này sẽ giúp các nhà phát triển PERL hiểu PHP rất nhanh...