Phalcon - Hỗ trợ đa ngôn ngữ

Phalcon bao gồm một thành phần Phalcon\Translate cung cấp hỗ trợ đa ngôn ngữ và rất hữu ích khi tạo các trang web, được dịch sang nhiều ngôn ngữ.

Nó bao gồm một bộ điều hợp giúp liên kết các mảng và hỗ trợ đọc các thông báo dịch.

Thí dụ

Hãy để chúng tôi tạo đầu ra với sự trợ giúp của thành phần Dịch trong Phalcon, điều này sẽ giúp hiển thị đầu ra theo ngôn ngữ được đề xuất.

Step 1- Phalcon cho phép mọi nhà phát triển tự do sắp xếp các chuỗi dịch. Cân nhắc giữ hai tệp khác nhau, cụ thể là:en.php (đối với chuỗi tiếng Anh) và fr.php (đối với dây tiếng Pháp).

Tệp sẽ chứa một mảng cặp khóa-giá trị, trong đó các khóa là duy nhất và các giá trị sẽ khác nhau tùy theo bản dịch cần thiết.

en.php

<?php  

// app/messages/en.php 

$messagesContent = [ 
   "bye"     => "Good Bye", 
   "hi-name" => "Hello %name%", 
   "song"    => "Your favorite song is %song%", 
];

fr.php

<?php 

// app/messages/fr.php 

$messagesContent = [ 
   "bye"        => "Au revoir", 
   "hello-name" => "Bonjour %name%", 
   "song"       => "Votre chanson préférée est %song%", 
];

Step 2 - Trong một ứng dụng, hãy tạo một UserController sẽ nhận các tham số về tệp nào nên được sử dụng để dịch.

<?php 

use Phalcon\Translate\Adapter\NativeArray; 

class UserController extends \Phalcon\Mvc\Controller {  
   protected function getMessageTransalation() { 
      // Ask for the best language 
      // Display the output in desired language 
      require "en.php";   
      
      // Return a translation object 
      return new NativeArray( ["content" => $messagesContent,]); 
   }  
   public function indexAction() { 
      $this->view->name = "Radhika"; 
      $this->view->song= "Ton sourire m'ensorcelle Je suis fou de toi Le désir coule dans mes veines Guidé par ta voix"; 
      $this->view->t    = $this->getMessageTransalation(); 
   } 
}

Đối với phương thức mặc định, hai tham số được lấy, đầu tiên là tên và thứ hai là bài hát yêu thích của người dùng. Về sau, hàmgetMessageTranslation đang được gọi trả về kết quả đầu ra mong muốn.

Hiện tại, chúng tôi muốn đầu ra bằng tiếng Anh.

Step 3 - Liên kết code view demo\app\views\User\index.volt sẽ bao gồm mã sau:

<p><?php echo $t->_("hello-name", ["name" => $name]); ?></p> 
<p><?php echo $t->_("song", ["song" => $song]); ?></p>

Nếu chúng ta muốn đầu ra hoàn chỉnh được hiển thị bằng tiếng Pháp, chúng ta chỉ cần thay đổi tên tệp.

require "fr.php";

Sau đây là đầu ra bằng tiếng Pháp.