Cet article décrit la méthode de mise en œuvre de l'internationalisation du didacticiel du framework YII Framework. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Une application Web publiée sur Internet est destinée aux utilisateurs du monde entier. Les utilisateurs du monde entier peuvent accéder à votre application Web. Bien sûr, cela dépend de votre site Web et de la discorde. Dans une société harmonieuse, vous ne serez pas autorisé à accéder à des applications Web disharmonieuses.
YII fournit un support international, permettant aux applications que nous créons d'être adaptées aux personnes dans différentes langues.
L'internationalisation est une chose très sophistiquée, et aucun grand site Web ne peut véritablement réaliser l'internationalisation. La plupart d’entre eux sont conçus pour des langues qui ne sont pas comprises, et différents sites Web sont conçus dans différentes régions. Si votre application est relativement petite et ne traite pas beaucoup de choses, alors l'internationalisation est tout à fait acceptable.
L'internationalisation commence par les aspects suivants :
Locale
Traduction des ressources de texte et de fichiers d'information
Date/heure, symboles monétaires et chiffres Format
Les classes impliquées dans l'internationalisation dans YII se trouvent dans le répertoire /yii_dev/yii/framework/i18n :
/yii_dev/yii/framework/i18n# tree
.
├── CChoiceFormat.php
├── CDateFormatter.php
├── CDbMessageSource.php
├── CGettextMessageSource.php
├── CLocale.php
├── CMessageSource php<.>├── CNumberFormatter.php
├── CPhpMessageSource.php
├── data
│ ├── fr_us.php
│ ├── ..... ..... ........
│ ├── zh_hk.php
│ ├── zh_mo.php
│ ├── zh.php
│ ├── zh_sg.php
│ ├── zh_tw.php
│ ├── zu.php
│ └── zu_za.php
└── gettext
├── CGettextFile.php
├ ── CGettextMoFile.php
└── CGettextPoFile.php
/** * Translates a message to the specified language. * Starting from version 1.0.2, this method supports choice format (see {@link CChoiceFormat}), * i.e., the message returned will be chosen from a few candidates according to the given * number value. This feature is mainly used to solve plural format issue in case * a message has different plural forms in some languages. * @param string $category message category. Please use only word letters. Note, category 'yii' is * reserved for Yii framework core code use. See {@link CPhpMessageSource} for * more interpretation about message category. * @param string $message the original message * @param array $params parameters to be applied to the message using <code>strtr</code>. * Starting from version 1.0.2, the first parameter can be a number without key. * And in this case, the method will call {@link CChoiceFormat::format} to choose * an appropriate message translation. * Starting from version 1.1.6 you can pass parameter for {@link CChoiceFormat::format} * or plural forms format without wrapping it with array. * @param string $source which message source application component to use. * Defaults to null, meaning using 'coreMessages' for messages belonging to * the 'yii' category and using 'messages' for the rest messages. * @param string $language the target language. If null (default), the {@link CApplication::getLanguage application language} will be used. * This parameter has been available since version 1.0.3. * @return string the translated message * @see CMessageSource */ public static function t($category,$message,$params=array(),$source=null,$language=null) {
$mesage langue cible
$params est le tableau de $mesage à faire correspondre pour la traduction.
Yii::t('app', 'Path alias "{alias}" is redefined.', array('{alias}'=>$alias))
Référence spécifique (/yii_dev/yii/framework/i18n/CDateFormatter.php) fichier de classe
Spécifique Reportez-vous au fichier de classe (/yii_dev/yii/framework/i18n/CNumberFormatter.php)