2010-12-09 15 views
6

Me pregunto si el marco Yii usa los atributos de Etiquetas definidos en un proceso de varios idiomas.Cómo crear una etiqueta multilenguaje en Yii

Así que si tengo

public function attributeLabels() { 
     return array(
      'email' => 'Email address', 
      'rememberMe' => 'Remember me next time', 
      'password' => 'Password' 
     ); 
    } 

¿Esto será traducido a otro idioma? ¿O tengo que hacer algo manualmente para trabajar?

Respuesta

14

Yii no lo traduce automáticamente. Es necesario utilizar la i18n incorporada en Yii y añadir manualmente las traducciones y modificar las etiquetas de la siguiente manera:

public function attributeLabels() { 
    return array(
     'email' => Yii::t('account','Email address'), 
     'rememberMe' => Yii::t('account','Remember me next time'), 
     'password' => Yii::t('account','Password') 
    ); 
} 

Puede obtener más información acerca de que la internacionalización de aplicación en Quick Start to Internationalize your application in Yii Framework

1

Bueno, se puede utilizar el sistema de traducción incorporado para traducir sus etiquetas de atributos, por ejemplo:

public function attributeLabels() { 
    return array(
     'email' => Yii::t('myapp','Email address'), 
    ); 
} 

y luego en mensajes de carpetas crear un directorio para su idioma, por ejemplo:

messages\dk\myapp.php 

myapp.php debe devolver la traducción, por ejemplo:

return array('Email address' => 'TRANSLATION...'); 

Siguiente necesita configurar el idioma de su aplicación en el archivo de configuración, por ejemplo.

'language' => 'dk', 
1

había asumido que Yii AR ejecutará getAttributeLabel a través de Yii :: t. Sin querer hacer todo lo que copiar y pegar en decenas de modelos, añadí esta función para mi intermedio clase AR:

public function getAttributeLabel($attribute) 
{ 
    $baseLabel = parent::getAttributeLabel($attribute); 
    return Yii::t(get_called_class(), $baseLabel); 
} 

Ahora para escribir un comando shell que se repite a través de los modelos y agrega sus etiquetas al archivo de mensajes .

Cuestiones relacionadas