Phalcon - Dukungan Multi-Bahasa

Phalcon menyertakan sebuah komponen Phalcon\Translate yang menyediakan dukungan multi-bahasa dan sangat membantu untuk membuat halaman web, yang diterjemahkan ke dalam berbagai bahasa.

Ini termasuk adaptor yang membantu dalam mengikat array dan membantu dalam membaca pesan terjemahan.

Contoh

Mari kita buat output dengan bantuan komponen Translate di Phalcon, yang akan membantu menampilkan output sesuai bahasa yang disarankan.

Step 1- Phalcon memberikan kebebasan kepada setiap pengembang untuk mengatur string terjemahan. Pertimbangkan untuk menyimpan dua file berbeda yaitu:en.php (untuk string bahasa Inggris) dan fr.php (untuk string Prancis).

File akan berisi larik pasangan nilai kunci, di mana kuncinya unik dan nilainya akan berbeda sesuai terjemahan yang dibutuhkan.

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 - Dalam sebuah aplikasi, buat file UserController yang akan mengambil parameter file mana yang harus digunakan untuk terjemahan.

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

Untuk metode default, dua parameter diambil, pertama adalah nama dan yang kedua adalah lagu favorit pengguna. Nanti, fungsinyagetMessageTranslation sedang dipanggil yang mengembalikan keluaran yang diinginkan.

Untuk saat ini, kami ingin hasilnya dalam bahasa Inggris.

Step 3 - Terkait code view demo\app\views\User\index.volt akan menyertakan kode berikut -

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

Jika kita ingin hasil lengkapnya ditampilkan dalam bahasa Prancis, kita hanya perlu mengubah nama file.

require "fr.php";

Berikut adalah keluaran dalam bahasa Prancis.