0
나는 여러 언어로 내 응용 프로그램을 작성하려고합니다. 내가 선택한 default.pot를 만들 때 내 선택 옵션이 번역되지 않습니다. CakePHP3의 선택 옵션을 번역하는 방법
//UsersTable
<?php
class UsersTable extends Table {
public $userRoles = ['admin' => 'Administrator', 'author' => 'Author' ...];
}
// UsersController
public function edit($userId = 0) {
$user = $this->Users->newEntity();
$this->set("user", $user);
$this->set("userRoles", $this->Users->userRoles);
}
//edit.ctp
<?php
echo $this->Form->create($user);
echo $this->Form->input("role",["type" => "select","options" => $userRoles,"label" => __("Userrole")]);
나는이 같은 시도 :
$_userRoles = [];
foreach ($userRoles as $key => $value) {
$_userRoles[$key] = __($value); // tried also __($value, true)
}
을하지만이 국제화 추출물 중에 오류를 생성합니다.
이 항목에 대한 번역은 어떻게받을 수 있습니까?
난 당신이 엔티티 클래스 대신 표 클래스 UsersController의namespace App\Model\Entity;
use Cake\ORM\Entity;
use Cake\I18n\I18n; //important to use this
class User extends Entity {
.....
private $userRoles = ['admin' => 'Administrator', 'author' => 'Author' ...];
......
protected function _getUserRoles() {
$return=();
foreach($this->userRoles as $k=>$val)
{
$return[$k]=__($value);
}
return $return;
}
......
}
편집 방법을 아래와 같이 법인의
만들기 변화의 옵션을 정의한다고 생각하면
매트
안녕에 도움을 주셔서 감사합니다. "App \ Model \ Table \ UsersTable"테이블이 "userRoles"와 관련이 없습니다. "라는 오류 메시지가 나타납니다. UserTable에 줄을 추가해도 효과가 없습니다. –
Sry, 내 잘못. 내 탁자 반에는 나쁜 남은 것이 있었어. 런타임 중에 오류가 남아 있지만 냄비 파일을 추출하려고하면 "유효하지 않은 마커 내용 __ ($ val)"이 표시됩니다. –