2012-05-20 9 views
3

내가 CakePHP는 2.0CakePHP는 2.0 현지화

문서 내 모델에서 문자열을 추출하는 국제화를 얻기 위해 노력하고 는 "CakePHP를 자동으로 가정 할 것이다한다고 당신의 $의 유효성을 배열의 모든 모델 유효성 검사 오류 메시지 i18n 셸을 실행할 때 이러한 문자열도 추출됩니다. " http://book.cakephp.org/2.0/en/core-libraries/internationalization-and-localization.html 그러나 케이크 i18n을 실행하고 데이터를 추출 할 때 내 모델의 내 메시지가 내 po 파일로 추출되지 않습니다.

누구나 메시지 파일을 po 파일로 가져 오는 방법을 알고 있습니까?

App::uses('AuthComponent', 'Controller/Component'); 
class User extends AppModel { 
public $validate = array(
     'username' => array(
      'required' => array(
       'rule' => array('notEmpty'), 
       'message' => 'A Username is required', 
       'rule' => 'isUnique', 
       'message' => 'This username has already been taken' 
      ) 
); 
} 

답변

9

이렇게하면 문제를 해결할 수 있습니다.

App::uses('AuthComponent', 'Controller/Component'); 
     class User extends AppModel { 
     function __construct() { 
       parent::__construct(); 
       $this->validate = array(
       'username' => array(
        'required' => array(
         'rule' => array('notEmpty')) 
         'message' => __('A Username is required', true)), 
         'unique' => array(
         'rule' => 'isUnique', 
         'message' => _('This username has already been taken', true) 
        ) 
     );} 
     } 
+0

합니까' App :: uses ... '유효성 검사에 필요합니까? – ozanmuyes

-1

$ validate 구조가 약간 엉망이되어서 필요한 키 아래에 두 개의 동일한 배열 키 (규칙, 메시지)가 있습니다. 그것은해야한다 :

public $validate = array(
    'username' => array(
     'required' => array(
      'rule' => array('notEmpty'), 
      'message' => __('A Username is required', true), 
     ), 
     'unique'=>array(
      'rule' => 'isUnique', 
      'message' => __('This username has already been taken', true) 
     ) 
    ) 
); 
+1

클래스 정의에서'__()'을 사용할 수 없기 때문에 이것은 작동하지 않을 것입니다. O F의 대답처럼'__construct()'로 들어가야합니다. –

+0

죄송합니다. n00b 실수였습니다. 더 많은 커피가 필요합니다. :-) – RichardAtHome

+0

고마워요! 그게 제게 어색 했어요. –

4

이 달성의 올바른 방법은 다음과 같습니다

class AppModel extends Model { 

    public $validationDomain = 'validation_errors'; 
. 
. 
. 
} 

내부적으로 케이크를 호출합니다 :

__d('validation_errors', 'Username should be more fun bla bla'); 

http://book.cakephp.org/2.0/en/console-and-shells/i18n-shell.html#model-validation-messages

http://book.cakephp.org/2.0/en/core-libraries/internationalization-and-localization.html#translating-model-validation-errors