3

私の問題は、日付を英語からロシア語に翻訳できないことです。私はこのガイドに従いました:

  1. 国際化とローカリゼーション CakePHP
  2. I18N シェル

私は AppController.php にこのコードを書きました:

function beforeFilter() {
    parent::beforeFilter();
    setlocale(LC_ALL, "ru_RU.utf8");
    Configure::write('Config.language', 'rus');
    CakeSession::write('Config.language', 'rus');
}

「Locale\rus\LC_MESSAGES」フォルダーを追加し、default.po ファイル内に配置します。ところで、すべてのメッセージを単一のファイルに抽出しました。

しかし実際には:

<?php echo $this->Time->timeAgoInWords($feedback['Feedback']['created']); ?> 

何もしませんでした。

<?php echo __d('default', $this->Time->timeAgoInWords($feedback['Feedback']['created']), true); ?>

文字列 'just now' のみをロシア語に翻訳しますが、他の時間形式は英語のままです。default.po からの翻訳の例を以下に示します。

成功

#: Lib\Cake\Utility\CakeTime.php:842
#: Utility\CakeTime.php:842
msgid "just now"
msgstr "translate"

不合格

#: Lib\Cake\Utility\CakeTime.php:829
#: Utility\CakeTime.php:829
msgid "%d week"
msgid_plural "%d weeks"
msgstr[0] "%d translate"
msgstr[1] "%d translate"

私が間違っていることを理解できません。

4

1 に答える 1