2014-02-14 2 views
2

Я создал новый модуль с использованием MVC.prestashop displayFieldName() перегрузка для перевода полей

В моем классе ObjectModel я перегружаю функцию displayFieldName(), чтобы получить ошибки чтения полей в человеке, когда пользователи не заполняют форму хорошо.

Например: «Поле« Дата начала »требуется» вместо «Поле« Начало »требуется».

Я не нашел, как перевести это поле в этой функции

/* Overload */ 
public static function displayFieldName($field, $class = __CLASS__, $htmlentities = true, Context $context = null) 
{ 
    $fieldname = array(
     'date_start' => 'Start date', 
     'title' => 'Title', 
    ); 
    if ($fieldname[$field]) 
     return $fieldname[$field]; 
    else 
     return $field; 
} 

Я пытался много вещей, но не может найти функцию обычного л() отсюда. Любая идея?

ответ

1

Вам не нужно это делать вообще. Он уже реализован в PrestaShop.

BackOffice> Локализация> Перевод> Полевые переводы имен

Обратите внимание, что во время установки необходимо скопировать файл модели объекта в папке классов.

Так что, если вы объектная модель называется MyDataObject вы должны иметь:

классы/MyDataObject.php, в которых вы должны

<?php 

class MyDataObjectCore extends ObjectModel 
{ 

} 

Не забудьте суффикс «ядро», потому что поля перевода функциональность нуждается в ней.

+0

Спасибо, он работает после копирования класса, как вы сказали, и очистки файла cache/class_index.php. Я вижу, что переводы, отредактированные таким образом, переходят в /translations/lang/fields.php, любым способом скопировать существующий перевод поля во время установки? – Axi

+0

Вы можете открыть /translations/lang/fields.php и добавить после последнего присвоения нового: $ _FIELDS ['Zone_b068931cc450442b63f5b3d276ea4297'] = 'name'; индекс массива - «ClassName» + подчеркивание + MD5 поля. $ key = $ class .'_ '. Md5 (поле $); – PrestaShopDeveloper

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