CakePHP автоматически предполагает, что все сообщения об ошибках проверки модели в вашем массиве $ validate предназначены для локализации. Но я не хочу переводить сообщения проверки модели. Как добиться этого, любое предложение?Как отключить перевод сообщений проверки модели только в cakePHP?
ответ
Самый простой самый простой способ - просто не переводить эти строки. Итак, если в вашем файле .po
Mistake here -> Error aqui //don't do that
Mistake here -> Mistake here
И ваши ошибки проверки «переведены» на один и тот же язык.
Если вы просто не хотите фильтровать себя, какие строки от проверки и которые являются «нормальными» строками, измените модели validation domain (сделайте это в AppModel, так что вам нужно будет сделать это только один раз) ,
class User extends AppModel {
public $validationDomain = 'validation_errors';
}
и теперь ваши сообщения проверки будут в новой области проверки, а не в default.pot, так что вы можете просто не переводить весь файл «validation_errors.pot» и вы будете в порядке.
Эта часть только действительно справедлив для торта 2.5, я не могу быть уверен, если это относится и к другим версиям
Теперь, если вы хотите на самом деле «трудный» путь и просто стереть эту функциональность с лица Земля, вам придется перезаписать некоторые функции в Cake lib. Я не рекомендую изменять код непосредственно в папке lib, просто расширяя классы и заменяя их в приложении/lib, иначе обновление версий будет больно.
Класс и функции, которые вы должны будете модифицировать должны быть CakeValidationSet
в lib/Cake/Model/Validator
и функция _processValidationResponse
Все части, которые имеют что-то вроде этого
__d($this->_validationDomain, $result, $args);
следует заменить с vsprintf($result, $args)
или аналогично (в зависимости от названия параметров). Эта функция __d
называется 4 раза внутри этой функции, поэтому замените их все.
Лично я бы просто изменил домен проверки, не переведет файл и не буду с ним работать. Поиск кода, который переводил эти сообщения, действительно не стоил усилий (за исключением, вы знаете, просто знать, как это делается).
Hi @Nunser, спасибо за ответ, ваше решение хорошо, но оно работает только в том случае, если я поддерживаю отдельные файлы для сообщений об ошибках проверки модели и обычных сообщений. Это их другое решение, так что им не нужно управлять двумя отдельными файлами? – Vikramraj
Привет. Да, третий вариант, где вам нужно изменить код lib (на самом деле, продлить класс и изменить его), и заменить код, описанный в ответе, позволит вам иметь только один файл и сказать торт не переводить * любое * подтверждение. – Nunser
- 1. cakephp перевод запроса на запрос модели cakephp
- 2. CakePHP: Добавить/изменить/отключить проверки только в контексте администратора
- 3. Перевод сообщений проверки в режиме исполнения
- 4. CakePHP 3 перевод служебных сообщений не работает
- 5. Проблема проверки модели в Cakephp
- 6. CakePHP 3 перевод выпуск
- 7. Symfony2 перевод сообщений валидации сообщений
- 8. CakePHP Как переопределить уже объявленные сообщения об ошибках проверки модели?
- 9. Как отключить перевод Symfony для определенных пакетов
- 10. CakePHP: правила проверки модели, поля формы, ===
- 11. Отключить проверки Условно в модели частичного класса
- 12. CakePHP проверки
- 13. перевод атрибутов модели rails
- 14. Перевод свойств модели
- 15. cakephp получить весь перевод
- 16. Неверное правило проверки модели загрузки CakePHP
- 17. CakePHP: Лучшая практика для проверки входных данных, отсутствующих в модели
- 18. CakePHP 2,0 Локализации модельных сообщений
- 19. Перевод сообщений между системами
- 20. Перевод cakephp не работает
- 21. Отключить сброс всей модели данных при возникновении ошибки в cakephp
- 22. I18n перевод данных модели
- 23. Отключить перевод элементов Zend_Navigation
- 24. Yii2 Интернационализация перевод не работает для проверки модели
- 25. Порядка сообщений проверки из пользовательских атрибутов в модели представления MVC3
- 26. Cakephp 3.x перевод трасс
- 27. Ошибка синтаксиса в массиве проверки в модели cakephp
- 28. Отключить проверки ACL/ACO CakePHP в локальной среде dev
- 29. Перевод модели XNA - bizzarre
- 30. Cakephp i18n перевод форматирования U_ILLEGAL_ARGUMENT_ERROR
Всегда указывайте свою точную версию CakePHP и соответствующим образом помечайте свой вопрос! – ndm