Maison  >  Article  >  développement back-end  >  Comment utiliser i18n dans CakePHP ?

Comment utiliser i18n dans CakePHP ?

王林
王林original
2023-06-04 12:10:42695parcourir

CakePHP est un framework PHP open source qui prend en charge l'intégration de l'internationalisation multilingue (i18n). i18n peut rendre votre application multilingue, ce qui vous permettra d'attirer plus facilement un public international et de mieux servir les utilisateurs locaux. Dans cet article, nous examinerons en profondeur l'utilisation de CakePHP i18n.

  1. Start

Tout d'abord, vous devez activer la fonctionnalité multilingue de CakePHP. Pour cela, mettez à jour le fichier de configuration config/bootstrap.php et ajoutez le code suivant à votre application : #Ensuite, vous devez créer le fichier de langue dans le répertoire config/Locale. Ces fichiers de langue doivent être nommés locale%iso-639-1code%iso-3166-1-alpha-2 format.php. Par exemple, en_US.php, es_ES.php ou de_DE.php, etc.

    Dans un fichier de langue vous pouvez définir des chaînes de traduction. Par exemple, dans en_US.php vous pouvez écrire :
  1. Configure::write('App.defaultLocale', 'en_US'); //设置默认语言
    Configure::write('App.languages', ['en_US', 'es_ES', 'de_DE']); //可选语言
  2. Dans es_ES.php vous pouvez écrire :
return [
    'welcome' => 'Welcome',
    'hello' => 'Hello',
];

Dans de_DE.php vous pouvez écrire :

return [
    'welcome' => 'Bienvenido',
    'hello' => 'Hola',
];

ViewLayer

Dans une vue, vous pouvez utiliser la fonction __() pour traduire du texte. Par exemple, si vous souhaitez afficher « Bienvenue » dans votre vue, vous pouvez écrire :

return [
    'welcome' => 'Willkommen',
    'hello' => 'Hallo',
];
    Cela utilisera automatiquement la chaîne de traduction correcte pour les paramètres régionaux actuels. Si les paramètres régionaux sont en_US, Welcome sera affiché. Si la locale est es_ES, Bienvenido sera affiché.
  1. De même, vous pouvez utiliser __('string', array('name' => 'value')) dans le fichier de vue pour formater la sortie.
<h1><?php echo __('welcome'); ?></h1>

Output Je m'appelle Lucas.

Control Layer

Dans le contrôleur, vous pouvez utiliser Configure::write('Config.langage', 'langauge') pour modifier Paramètres régionaux actuels :

<?php echo __('My name is %name%', array('name' => 'Lucas')); ?>
    Vous pouvez définir des paramètres régionaux différents dans l'action du contrôleur, sélectionnant ainsi différentes chaînes de traduction pour chaque vue selon vos besoins. Ceci est très utile pour les sites Web dynamiques.
  1. Par exemple :
Configure::write('Config.language', 'de_DE'); //将语言环境设置为de_DE

Dans cet exemple, il chargera es_ES.php et utilisera la chaîne de traduction home_title.

Date and Time

CakePHP i18n prend également en charge les formats de date et d'heure localisés. Par exemple :

public function index()
{
    Configure::write('Config.language', 'es_ES');
    $this->set('title', __('home_title'));
}
    Cela formatera la date en fonction des paramètres régionaux actuels et affichera des résultats similaires à ceux du 20 novembre 2018. Vous pouvez modifier le format de date dans app.php.
  1. echo $this->Time->nice(new DateTime('2018-11-20')); //在控制器分配或直接用数组传递时使用
    echo $this->Time->nice($dateObject);
Summary

Comme vous pouvez le constater, le i18n de CakePHP est très simple à utiliser. En utilisant la prise en charge i18n fournie par le framework, vous pouvez rapidement et facilement fournir une prise en charge multilingue et de localisation aux utilisateurs du monde entier. N'oubliez pas de toujours fournir un texte clair et précis pour votre candidature afin de garantir la meilleure expérience utilisateur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn