Phalcon - 多語言支援



Phalcon 包含一個元件 Phalcon\Translate,它提供多語言支援,對於建立可翻譯成多種語言的網頁非常有用。

它包括一個介面卡,有助於繫結陣列並協助讀取翻譯訊息。

示例

讓我們使用 Phalcon 中的 Translate 元件建立一個輸出,這將有助於根據建議的語言顯示輸出。

步驟 1 - Phalcon 允許每個開發者自由組織翻譯字串。考慮建立兩個不同的檔案:en.php(用於英文字串)和 fr.php(用於法文字串)。

該檔案將包含一個鍵值對陣列,其中鍵是唯一的,值將根據所需的翻譯而有所不同。

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%", 
]; 

步驟 2 - 在應用程式中,建立一個 UserController,它將接收用於翻譯的檔名作為引數。

<?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(); 
   } 
}   

對於預設方法,接收兩個引數,第一個是姓名,第二個是使用者的喜愛歌曲。稍後,將呼叫 getMessageTranslation 函式,該函式返回所需的輸出。

目前,我們希望輸出為英文。

步驟 3 - 關聯的 程式碼檢視 demo\app\views\User\index.volt 將包含以下程式碼 -

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

Index

如果我們希望整個輸出以法語顯示,我們只需要更改檔名。

require "fr.php"; 

以下是法語輸出。

Output in French
廣告