2010-06-16 3 views
0

Я использую CakePHP версии 1.3. В документации говорится, что если я хочу использовать поведение перевода для своего динамического контента, никаких изменений в моем представлении не требуется. Проблема в том, что переведенные поля есть, но пусты. Перевод появляется только в [ «»] I18n массив как этотФормат массива преобразования CakePHP не так, как ожидалось

Array 
(
    [0] => Array 
     (
      [Category] => Array 
       (
        [id] => 1 
        [locale] => de_de 
        [name] => 
       ) 

      [I18n] => Array 
       (
        [name] => Anlagenkomponenten 
       ) 

     ).... 

Я ожидал массив как этот

Array 
(
    [0] => Array 
     (
      [Category] => Array 
       (
        [id] => 1 
        [locale] => de_de 
        [name] => Anlagenkomponenten 
       ) 

      [I18n] => Array 
       (
        [name] => Anlagenkomponenten 
       ) 

     ).... 

Is мои ожидания не так, или это ошибка?

ответ

0

В cakephp 1.2.6 ... В Translate Bahaviorперейти к строке 243 и прокомментировать до 245. Я думаю, его же в CakePHP 1.3

//if (!empty($results[$key]['I18n__'.$field]['content'])) { 
// $value = $results[$key]['I18n__'.$field}['content']; 
//} 

Затем добавить код:

if (!empty($results[$key]['I18n'][$field])) { 
    $value = $results[$key]['I18n'][$field]; 
} 
0

вы могли бы разместить свой FIND-вызов для ваших данных (и, возможно, несколько строк выше и вне этого вызова)?

Как правило, перевод-поведение работает следующим образом:

$this->Model->locale = 'de_de'; 
$result = $this->Model->find('all', array(...); 

Языковой обычно устанавливается с помощью глобальной языковой переменной (один подход заключается в хранении локаль пользователя в сессии и установить глобальный locale-var в вашем приложении-контроллере).

Если языковая установка не установлена, и вы используете read() с параметром $ recursive = 1 в своей модели, Cake извлекает ВСЕ доступные переводы для каждого существующего языка.

Как вы настроили поведение перевода для своей модели? Это может помочь, если вы опубликуете раздел перевода вашего $ actAs-переменной из вашей модели.

Также проверьте свою таблицу i18n, если локаль сохранена правильно (de_de, NOT de-de!).

 Смежные вопросы

  • Нет связанных вопросов^_^