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.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;
| Cú pháp | Từ (string | array | null $ email null, string | null $ name null) |
| Thông số | Chuỗi với email Tên |
| Trả lại | mảng | $ this |
| Sự miêu tả | Nó chỉ định từ địa chỉ email nào; email sẽ được gửi |
| Cú pháp | To (string | array | null $ email null, string | null $ name null) |
| Thông số | Chuỗi với email Tên |
| Trả lại | mảng | $ this |
| Sự miêu tả | Nó chỉ định ai gửi email đến |
| Cú pháp | Gử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ại | mả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áp | Chủ đề (string | null $ subject null) |
| Thông số | Chuỗi chủ đề |
| Trả lại | mảng | $ this |
| Sự miêu tả | Lấy / Đặt chủ đề. |
| Cú pháp | Tệ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ại | mảng | $ this |
| Sự miêu tả | Thêm tệp đính kèm vào thư email |
| Cú pháp | Bcc (string | array | null $ email null, string | null $ name null) |
| Thông số | Chuỗi với email Tên |
| Trả lại | mảng | $ this |
| Sự miêu tả | Bcc |
| Cú pháp | cc (string | array | null $ email null, string | null $ name null) |
| Thông số | Chuỗi với email Tên |
| Trả lại | mả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 |
Đầ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