Автор Тема: Для чего служит файл fields.php  (Прочитано 1352 раз)

30 Ноябрь 2013, 09:50:45
  • Фрилансер
  • *
  • Сообщений: 181
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Для чего служит файл \translations\ru\fields.php ?  Понял только, что это вроде бы перевод названий полей таблиц в базе данных Prestashop.

Но где этот перевод используется и где он виден?

Нашел в русском fields.php много смысловых и орфографических ошибок. Хотел бы скорректировать, но есть предположение, что это может нарушить работу магазина.

Если переводить через бэк-офис есть "подозрительные" варианты переводов. Например,

id_customer = id покупателя      в переводе убран символ подчеркивания.

id_warehouse = id_warehouse     стринги не переведен вообще

id_attribute_group = ID группы атрибутов       в переводе id Заменен на ID

id_cms_category = № категории                     в переводе id Заменен на №

и т.д.

Вопросы:
1. Влияет ли содержание переведенных стрингов на работу магазина?

2. Можно ли переводить их произвольным образом или надо сохранять подчеркивания, регистр, id в переводе и т.д.

3. Где выводятся этот перевод?

 
30 Ноябрь 2013, 16:08:11
Ответ #1
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Файл перевода полей для сайта, а не для базы данных. Название полей в бд не меняются.
Редактировать можно в админке:
Локализация > Переводы > Перевод названий полей
Изменять перевод можно. Проблем не будет. Соблюдать нужно только правило
Цитировать
Некоторые предложения требующие перевода используют синтаксис вида: %d, %s, %1$s, %2$d... Это переменные, PrestaShop автоматически заменяет их перед отображением вашего перевода. Необходимо оставить эти переменные в исходном виде и подставить их в правильную часть предложения.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
01 Декабрь 2013, 23:24:14
Ответ #2
  • Фрилансер
  • *
  • Сообщений: 181
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Файл перевода полей для сайта, а не для базы данных. Название полей в бд не меняются.
Редактировать можно в админке:
Локализация > Переводы > Перевод названий полей
Изменять перевод можно. Проблем не будет. Соблюдать нужно только правило
Цитировать
Некоторые предложения требующие перевода используют синтаксис вида: %d, %s, %1$s, %2$d... Это переменные, PrestaShop автоматически заменяет их перед отображением вашего перевода. Необходимо оставить эти переменные в исходном виде и подставить их в правильную часть предложения.


Спасибо за разъяснение. Вот только не понял, где именно эти переводы полей показываются на сайте? Можно пример странички/раздела и поля?
02 Декабрь 2013, 12:05:25
Ответ #3
  • Администратор
  • Ветеран
  • *****
  • Сообщений: 102503
  • Репутация: +34219/-0
    • Просмотр профиля
Файлы перевода в Prestashop

Цитировать
Вот только не понял, где именно эти переводы полей показываются на сайте?
Там где вы используете классы.
Файлы перевода находящиеся в папке
/translations/iso_code/fields.php
Используются для перевода файлов
/classes/...
04 Декабрь 2013, 11:38:59
Ответ #4
  • Фрилансер
  • *
  • Сообщений: 181
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Файлы перевода в Prestashop

Цитировать
Вот только не понял, где именно эти переводы полей показываются на сайте?
Там где вы используете классы.
Файлы перевода находящиеся в папке
/translations/iso_code/fields.php
Используются для перевода файлов
/classes/...

Спасибо - понял, ГДЕ находятся переводимые данные. Я, правильно понимаю, что клиенты и администраторы эти переводы не видят ни в бэк-офисе, ни во фронт-офисе? А зачем тогда нужен это перевод?

Не пинайте ногами, но никак не могу понять, ГДЕ ПОКАЗЫВАЕТСЯ этот перевод и кто его видит. Если это бэк-офис, то просто укажите какой-нибудь пункт меню и где выскакивает фраза из переведенного fields.php.
04 Декабрь 2013, 12:29:15
Ответ #5
  • Партнер
  • Ветеран
  • ****
  • Сообщений: 22816
  • Репутация: +17143/-1
  • Разработка веб-сайтов и веб-программирование
    • Просмотр профиля
Это перевод используется только там, гда вы применяете метод displayFieldName класса ObjectModel.
Может использовать в описании ошибок, предупреждений, записей в лог и т.д.
Можно вызвать в модуле, контроллере. Например, при ошибке заполнения поля "Attachment : file_name ", выдать предупреждение с переводом поля "Название загружаемого файла".
Можно не использовать этот файл, а перевод загружать из файла перевода модуля, темы.
Т.е все зависит от того, как сделана тема, модуль.

Пример использования можно увидеть в файле ObjectModel.php в методе validateField
public function validateField($field, $value, $id_lang = null, $skip = array(), $human_errors = false)
{...
        if ($human_errors)
return sprintf(Tools::displayError('The %s field is required.'), $this->displayFieldName($field, get_class($this)));
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.
05 Декабрь 2013, 23:52:37
Ответ #6
  • Фрилансер
  • *
  • Сообщений: 181
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо mAgency,  Виктору Демидову и остальным - теперь все четко и понятно.