2015-05-07 16 views
8

Web sitesinin ön uç çevirisini i18l öğesini kullanarak kurmaya çalışıyorum. İşte benim i18l.php dosya ön/yapılandırmasına buradaYii2 - Çoklu dil

<?php 
return [ 
    'sourcePath' => 'frontend', 
    'languages' => ['en-US', 'pt-BR'] , //Add languages to the array for the language files to be generated. 
    'translator' => 'Yii::t', 
    'sort' => false, 
    'removeUnused' => false, 
    'only' => ['*.php'], 
    'except' => [ 
     '.svn', 
     '.git', 
     '.gitignore', 
     '.gitkeep', 
     '.hgignore', 
     '.hgkeep', 
     '/messages', 
     '/vendor', 
    ], 
    'format' => 'php', 
    'messagePath' => 'frontend' . DIRECTORY_SEPARATOR . 'translations', 
    'overwrite' => true, 
]; 

ve yerleştirilir ben siteleri ve düzenleri ve ne zaman çalıştırmak üzerinde <?= Yii::t('app', 'some string') ?> kullanıyorum

(...) 
'language' => 'en-US', 
'components' => [ 
     'i18n' => [ 
      'translations' => [ 
      'app*' => [ 
       'class' => 'yii\i18n\PhpMessageSource', 
       'basePath' => 'frontend/translations', 

       'fileMap' => [ 
        'app' => 'app.php', 
        'app/error' => 'error.php', 
       ], 
      ], 
     ], 
] 

önyüz da benim Main.php . /yii message/extract @ frontend/config/i18n.php komutu bana 'çeviriler' olarak adlandırılan bir klasör oluşturuyordu diğer iki klasörü 'en-US' ve 'pt-BR' her ikisi de vardı app.php ile bazı çevirilerle dolu. Ama yine de, main.php'deki dili değiştirdiğimde (sanırım) çeviri yapılmaz. Eğer birisi bana bu konuda yardım edebilirse memnun olurum.

Teşekkürler.

+1

Great post. Sadece bir şeyi işaret etmek istedim. ' Gogol

+0

Bunun olup olmadığından emin değilim, Fakat hedef ve kaynak hedeflerinin aynı olsaydı, çeviriyi Yii :: den param girişi yerine dosyaya uyması için çevirmeye zorlamanız gerektiğini buldum. t '. http://www.yiiframework.com/doc-2.0/yii-i18n-messagesource.html#$forceTranslation-detail –

cevap

4

Tüm gerekli ayrıntılarla harika bir yazı.

Aynı şeylerle uğraşıyordum ama çok iyi yaptın.

Böylece, komutu çalıştırabilir ve dosyayı oluşturursa, sourcePathdeğeri'dır.

sizin BasePath yapılandırmasına, kullanmayı deneyin, aşağıdaki: sizin ayar değişikliklerine rağmen zamanında çeviri mesajları, göstermiyorsa , o zaman, ben senin basePath üzerinde olabilir sorunu tahmin

'basePath' => '@frontend/translations',